auftragfunkt.p 250 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v9r12
  2. &ANALYZE-RESUME
  3. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS Procedure
  4. USING src.ch.adprime.algorithm.NumberSystems FROM PROPATH.
  5. /*------------------------------------------------------------------------
  6. File :
  7. Purpose :
  8. Syntax :
  9. Description :
  10. Author(s) :
  11. Created :
  12. Notes :
  13. ----------------------------------------------------------------------*/
  14. /* This .W file was created with the Progress AppBuilder. */
  15. /*----------------------------------------------------------------------*/
  16. /* *************************** Definitions ************************** */
  17. DEFINE VARIABLE AbhAufnr AS INTEGER NO-UNDO.
  18. DEFINE VARIABLE Firma AS CHARACTER NO-UNDO.
  19. DEFINE VARIABLE AdFirma AS CHARACTER NO-UNDO.
  20. DEFINE VARIABLE fBatch AS LOG INIT FALSE NO-UNDO.
  21. DEFINE VARIABLE lRueckstand AS LOG NO-UNDO.
  22. DEFINE VARIABLE lEpProzBetr AS LOG NO-UNDO.
  23. DEFINE VARIABLE lSummGrpSpPr AS LOG NO-UNDO.
  24. DEFINE VARIABLE Benutzer AS CHARACTER NO-UNDO.
  25. DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
  26. DEFINE TEMP-TABLE tArtst LIKE Artst .
  27. DEFINE TEMP-TABLE tAufko LIKE Aufko .
  28. DEFINE TEMP-TABLE tAufze LIKE Aufze
  29. FIELD Knr AS INTEGER
  30. FIELD Datum AS DATE
  31. FIELD lAktion AS LOGICAL INIT TRUE
  32. .
  33. DEFINE TEMP-TABLE tSavze LIKE Savze .
  34. DEFINE TEMP-TABLE tArtbw LIKE Artbw .
  35. DEFINE TEMP-TABLE tAufGKon LIKE AufGKon .
  36. DEFINE TEMP-TABLE tAufSpRab LIKE AufSpRab.
  37. DEFINE TEMP-TABLE tAufRabSu LIKE AufRabSu.
  38. DEFINE TEMP-TABLE rRuestAuf NO-UNDO LIKE RuestAuf.
  39. DEFINE TEMP-TABLE tVerlauf
  40. FIELD FakArt AS INTEGER
  41. FIELD AufSta AS INTEGER
  42. FIELD wFakArt AS INTEGER
  43. FIELD wAufSta AS INTEGER
  44. FIELD zFakArt AS INTEGER
  45. FIELD zAufSta AS INTEGER
  46. FIELD dFakArt AS INTEGER
  47. FIELD dAufSta AS INTEGER
  48. FIELD wDruck AS LOG
  49. FIELD zDruck AS LOG
  50. FIELD dDruck AS LOG
  51. INDEX tVerlauf-k1 IS PRIMARY
  52. FakArt
  53. AufSta.
  54. DEFINE TEMP-TABLE tPreis
  55. FIELD iArt AS INTEGER
  56. FIELD Preis AS DECIMAL DECIMALS 4
  57. FIELD Rab_Proz AS DECIMAL DECIMALS 4
  58. FIELD Rab_Wert AS DECIMAL DECIMALS 4
  59. FIELD Zus_Proz AS DECIMAL DECIMALS 4
  60. FIELD Zus_Wert AS DECIMAL DECIMALS 4
  61. FIELD Spe_Proz AS DECIMAL DECIMALS 4
  62. FIELD Spe_Wert AS DECIMAL DECIMALS 4
  63. FIELD Netto AS DECIMAL DECIMALS 4
  64. FIELD cAkt_Text AS CHARACTER
  65. INDEX tPreis-k1
  66. Netto
  67. iArt.
  68. DEFINE BUFFER btPreis FOR tPreis.
  69. DEFINE TEMP-TABLE tParam
  70. FIELD Firma AS CHARACTER
  71. FIELD Knr AS INTEGER
  72. FIELD Kond_Datum AS DATE
  73. FIELD Mwst AS INTEGER
  74. FIELD Preis_Grp AS INTEGER
  75. FIELD Ku_Grp AS INTEGER
  76. FIELD Rab_Grp AS INTEGER
  77. FIELD Sprcd AS INTEGER
  78. FIELD Frw AS CHARACTER
  79. FIELD Kurs AS DECIMAL DECIMALS 4
  80. FIELD Faktor AS INTEGER
  81. FIELD Lager AS INTEGER
  82. FIELD Geb_Rg AS LOG
  83. FIELD Zei_Rab_Art AS INTEGER
  84. FIELD Zei_Rab_Wert AS DECIMAL
  85. FIELD Auf_Rab_Art AS INTEGER
  86. FIELD Auf_Rab_Wert AS DECIMAL
  87. FIELD Abh_Rab_Art AS INTEGER
  88. FIELD Abh_Rab_Wert AS DECIMAL
  89. FIELD Zuschl_Art AS INTEGER
  90. FIELD Zuschl_Wert AS DECIMAL
  91. .
  92. { properties.i }
  93. { incl/tmwstcalc.i }
  94. /* _UIB-CODE-BLOCK-END */
  95. &ANALYZE-RESUME
  96. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  97. /* ******************** Preprocessor Definitions ******************** */
  98. &Scoped-define PROCEDURE-TYPE Procedure
  99. &Scoped-define DB-AWARE no
  100. /* _UIB-PREPROCESSOR-BLOCK-END */
  101. &ANALYZE-RESUME
  102. /* ************************ Function Prototypes ********************** */
  103. &IF DEFINED(EXCLUDE-buchenArtikel) = 0 &THEN
  104. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD buchenArtikel Procedure
  105. FUNCTION buchenArtikel RETURNS LOGICAL
  106. ( ipKnr AS INTEGER,
  107. ipBuffer AS HANDLE ) FORWARD.
  108. /* _UIB-CODE-BLOCK-END */
  109. &ANALYZE-RESUME
  110. &ENDIF
  111. &IF DEFINED(EXCLUDE-calculateAuftragsTotal) = 0 &THEN
  112. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD calculateAuftragsTotal Procedure
  113. FUNCTION calculateAuftragsTotal RETURNS CHARACTER
  114. ( ipcFirma AS CHARACTER, ipiAufnr AS INTEGER, OUTPUT opnTotal AS DECIMAL EXTENT 15 ) FORWARD.
  115. /* _UIB-CODE-BLOCK-END */
  116. &ANALYZE-RESUME
  117. &ENDIF
  118. &IF DEFINED(EXCLUDE-calculateGebindeAusMenge) = 0 &THEN
  119. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD calculateGebindeAusMenge Procedure
  120. FUNCTION calculateGebindeAusMenge RETURNS LOGICAL
  121. (ipcFirma AS CHARACTER,
  122. ipiArtnr AS INTEGER,
  123. ipiInhalt AS INTEGER,
  124. ipiJahr AS INTEGER,
  125. ipiMenge AS INTEGER,
  126. OUTPUT opiGGebinde AS INTEGER,
  127. OUTPUT opiVGebinde AS INTEGER,
  128. OUTPUT opiKGebinde AS INTEGER) FORWARD.
  129. /* _UIB-CODE-BLOCK-END */
  130. &ANALYZE-RESUME
  131. &ENDIF
  132. &IF DEFINED(EXCLUDE-calculateZeilenTotal) = 0 &THEN
  133. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD calculateZeilenTotal Procedure
  134. FUNCTION calculateZeilenTotal RETURNS LOGICAL
  135. ( INPUT-OUTPUT iphAufze AS HANDLE ) FORWARD.
  136. /* _UIB-CODE-BLOCK-END */
  137. &ANALYZE-RESUME
  138. &ENDIF
  139. &IF DEFINED(EXCLUDE-createAktionspreis) = 0 &THEN
  140. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createAktionspreis Procedure
  141. FUNCTION createAktionspreis RETURNS LOGICAL
  142. ( ipiAktGrp AS INTEGER, iplAbweich AS LOG, ipiAktKuPr_Grp AS INTEGER, ipiKuPreisGrp AS INTEGER) FORWARD.
  143. /* _UIB-CODE-BLOCK-END */
  144. &ANALYZE-RESUME
  145. &ENDIF
  146. &IF DEFINED(EXCLUDE-createAufGebKo) = 0 &THEN
  147. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createAufGebKo Procedure
  148. FUNCTION createAufGebKo RETURNS LOGICAL
  149. ( ipAufnr AS INTEGER ) FORWARD.
  150. /* _UIB-CODE-BLOCK-END */
  151. &ANALYZE-RESUME
  152. &ENDIF
  153. &IF DEFINED(EXCLUDE-createAufkoParam) = 0 &THEN
  154. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createAufkoParam Procedure
  155. FUNCTION createAufkoParam RETURNS LOGICAL
  156. ( ipFirma AS CHARACTER, ipAufnr AS INTEGER, ipKnr AS INTEGER, ipDatum AS DATE ) FORWARD.
  157. /* _UIB-CODE-BLOCK-END */
  158. &ANALYZE-RESUME
  159. &ENDIF
  160. &IF DEFINED(EXCLUDE-createAufnr) = 0 &THEN
  161. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createAufnr Procedure
  162. FUNCTION createAufnr RETURNS INTEGER
  163. ( ipFirma AS CHARACTER ) FORWARD.
  164. /* _UIB-CODE-BLOCK-END */
  165. &ANALYZE-RESUME
  166. &ENDIF
  167. &IF DEFINED(EXCLUDE-createEpPreis) = 0 &THEN
  168. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createEpPreis Procedure
  169. FUNCTION createEpPreis RETURNS LOGICAL
  170. ( iphbArtst AS HANDLE ) FORWARD.
  171. /* _UIB-CODE-BLOCK-END */
  172. &ANALYZE-RESUME
  173. &ENDIF
  174. &IF DEFINED(EXCLUDE-createFaknr) = 0 &THEN
  175. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createFaknr Procedure
  176. FUNCTION createFaknr RETURNS INTEGER
  177. ( ipFirma AS CHARACTER ) FORWARD.
  178. /* _UIB-CODE-BLOCK-END */
  179. &ANALYZE-RESUME
  180. &ENDIF
  181. &IF DEFINED(EXCLUDE-createManuellerPreis) = 0 &THEN
  182. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createManuellerPreis Procedure
  183. FUNCTION createManuellerPreis RETURNS LOGICAL
  184. ( /* parameter-definitions */ ) FORWARD.
  185. /* _UIB-CODE-BLOCK-END */
  186. &ANALYZE-RESUME
  187. &ENDIF
  188. &IF DEFINED(EXCLUDE-createSammnr) = 0 &THEN
  189. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createSammnr Procedure
  190. FUNCTION createSammnr RETURNS INTEGER
  191. ( ipFirma AS CHARACTER ) FORWARD.
  192. /* _UIB-CODE-BLOCK-END */
  193. &ANALYZE-RESUME
  194. &ENDIF
  195. &IF DEFINED(EXCLUDE-deleteArtbw) = 0 &THEN
  196. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD deleteArtbw Procedure
  197. FUNCTION deleteArtbw RETURNS LOGICAL
  198. (ipiTrnr AS INTEGER,
  199. iprArtbw AS RECID) FORWARD.
  200. /* _UIB-CODE-BLOCK-END */
  201. &ANALYZE-RESUME
  202. &ENDIF
  203. &IF DEFINED(EXCLUDE-deleteAuflot) = 0 &THEN
  204. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD deleteAuflot Procedure
  205. FUNCTION deleteAuflot RETURNS LOGICAL
  206. (iprAufze AS RECID) FORWARD.
  207. /* _UIB-CODE-BLOCK-END */
  208. &ANALYZE-RESUME
  209. &ENDIF
  210. &IF DEFINED(EXCLUDE-deleteAuftrag) = 0 &THEN
  211. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD deleteAuftrag Procedure
  212. FUNCTION deleteAuftrag RETURNS LOGICAL
  213. ( ipRecid AS RECID ) FORWARD.
  214. /* _UIB-CODE-BLOCK-END */
  215. &ANALYZE-RESUME
  216. &ENDIF
  217. &IF DEFINED(EXCLUDE-deleteAufzeile) = 0 &THEN
  218. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD deleteAufzeile Procedure
  219. FUNCTION deleteAufzeile RETURNS LOGICAL
  220. (ipRecid AS RECID) FORWARD.
  221. /* _UIB-CODE-BLOCK-END */
  222. &ANALYZE-RESUME
  223. &ENDIF
  224. &IF DEFINED(EXCLUDE-deleteRuestAuf) = 0 &THEN
  225. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD deleteRuestAuf Procedure
  226. FUNCTION deleteRuestAuf RETURNS LOGICAL
  227. (iprRuestAuf AS RECID) FORWARD.
  228. /* _UIB-CODE-BLOCK-END */
  229. &ANALYZE-RESUME
  230. &ENDIF
  231. &IF DEFINED(EXCLUDE-fillArtbwFromAufze) = 0 &THEN
  232. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD fillArtbwFromAufze Procedure
  233. FUNCTION fillArtbwFromAufze RETURNS LOGICAL
  234. ( INPUT-OUTPUT iohtAufze AS HANDLE ) FORWARD.
  235. /* _UIB-CODE-BLOCK-END */
  236. &ANALYZE-RESUME
  237. &ENDIF
  238. &IF DEFINED(EXCLUDE-fillAufko) = 0 &THEN
  239. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD fillAufko Procedure
  240. FUNCTION fillAufko RETURNS LOGICAL
  241. ( ipArt AS INTEGER, INPUT-OUTPUT iphAufko AS HANDLE ) FORWARD.
  242. /* _UIB-CODE-BLOCK-END */
  243. &ANALYZE-RESUME
  244. &ENDIF
  245. &IF DEFINED(EXCLUDE-fillAufRabSu) = 0 &THEN
  246. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD fillAufRabSu Procedure
  247. FUNCTION fillAufRabSu RETURNS LOGICAL
  248. ( /* parameter-definitions */ ) FORWARD.
  249. /* _UIB-CODE-BLOCK-END */
  250. &ANALYZE-RESUME
  251. &ENDIF
  252. &IF DEFINED(EXCLUDE-FillAufSpRab) = 0 &THEN
  253. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD FillAufSpRab Procedure
  254. FUNCTION FillAufSpRab RETURNS LOGICAL
  255. ( ) FORWARD.
  256. /* _UIB-CODE-BLOCK-END */
  257. &ANALYZE-RESUME
  258. &ENDIF
  259. &IF DEFINED(EXCLUDE-fillAufze) = 0 &THEN
  260. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD fillAufze Procedure
  261. FUNCTION fillAufze RETURNS INTEGER
  262. ( INPUT-OUTPUT iphAufze AS HANDLE ) FORWARD.
  263. /* _UIB-CODE-BLOCK-END */
  264. &ANALYZE-RESUME
  265. &ENDIF
  266. &IF DEFINED(EXCLUDE-getAbholSeite) = 0 &THEN
  267. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getAbholSeite Procedure
  268. FUNCTION getAbholSeite RETURNS INTEGER
  269. ( /* parameter-definitions */ ) FORWARD.
  270. /* _UIB-CODE-BLOCK-END */
  271. &ANALYZE-RESUME
  272. &ENDIF
  273. &IF DEFINED(EXCLUDE-getAufstatus) = 0 &THEN
  274. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getAufstatus Procedure
  275. FUNCTION getAufstatus RETURNS CHARACTER
  276. ( ipAufstatus AS INTEGER ) FORWARD.
  277. /* _UIB-CODE-BLOCK-END */
  278. &ANALYZE-RESUME
  279. &ENDIF
  280. &IF DEFINED(EXCLUDE-getDokumentArt) = 0 &THEN
  281. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getDokumentArt Procedure
  282. FUNCTION getDokumentArt RETURNS CHARACTER
  283. ( ipFakart AS INTEGER ) FORWARD.
  284. /* _UIB-CODE-BLOCK-END */
  285. &ANALYZE-RESUME
  286. &ENDIF
  287. &IF DEFINED(EXCLUDE-getEpProz_Betr) = 0 &THEN
  288. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getEpProz_Betr Procedure
  289. FUNCTION getEpProz_Betr RETURNS LOGICAL
  290. ( ipFirma AS CHARACTER ) FORWARD.
  291. /* _UIB-CODE-BLOCK-END */
  292. &ANALYZE-RESUME
  293. &ENDIF
  294. &IF DEFINED(EXCLUDE-getFakart) = 0 &THEN
  295. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getFakart Procedure
  296. FUNCTION getFakart RETURNS CHARACTER
  297. ( ipFakart AS INTEGER ) FORWARD.
  298. /* _UIB-CODE-BLOCK-END */
  299. &ANALYZE-RESUME
  300. &ENDIF
  301. &IF DEFINED(EXCLUDE-getHoReLagerId) = 0 &THEN
  302. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getHoReLagerId Procedure
  303. FUNCTION getHoReLagerId RETURNS INTEGER
  304. (ipiArtnr AS INTEGER,
  305. ipiInhalt AS INTEGER,
  306. ipiJahr AS INTEGER,
  307. ipiLager AS INTEGER) FORWARD.
  308. /* _UIB-CODE-BLOCK-END */
  309. &ANALYZE-RESUME
  310. &ENDIF
  311. &IF DEFINED(EXCLUDE-getPreisAufze) = 0 &THEN
  312. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getPreisAufze Procedure
  313. FUNCTION getPreisAufze RETURNS INTEGER
  314. ( INPUT-OUTPUT iohtAufze AS HANDLE ) FORWARD.
  315. /* _UIB-CODE-BLOCK-END */
  316. &ANALYZE-RESUME
  317. &ENDIF
  318. &IF DEFINED(EXCLUDE-getSummGrpSpPr) = 0 &THEN
  319. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getSummGrpSpPr Procedure
  320. FUNCTION getSummGrpSpPr RETURNS LOGICAL
  321. ( ipFirma AS CHARACTER ) FORWARD.
  322. /* _UIB-CODE-BLOCK-END */
  323. &ANALYZE-RESUME
  324. &ENDIF
  325. &IF DEFINED(EXCLUDE-GET_ABH_AUFNR) = 0 &THEN
  326. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD GET_ABH_AUFNR Procedure
  327. FUNCTION GET_ABH_AUFNR RETURNS INTEGER
  328. ( /* parameter-definitions */ ) FORWARD.
  329. /* _UIB-CODE-BLOCK-END */
  330. &ANALYZE-RESUME
  331. &ENDIF
  332. &IF DEFINED(EXCLUDE-getVerbuchtTotale) = 0 &THEN
  333. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getVerbuchtTotale Procedure
  334. FUNCTION getVerbuchtTotale RETURNS CHARACTER
  335. (ipcFirma AS CHARACTER,
  336. ipiAufnr AS INTEGER,
  337. OUTPUT opnTotal AS DECIMAL EXTENT 15) FORWARD.
  338. /* _UIB-CODE-BLOCK-END */
  339. &ANALYZE-RESUME
  340. &ENDIF
  341. &IF DEFINED(EXCLUDE-isFestAuftrag) = 0 &THEN
  342. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD isFestAuftrag Procedure
  343. FUNCTION isFestAuftrag RETURNS LOGICAL
  344. ( ipFirma AS CHARACTER, ipFak_Art AS INTEGER ) FORWARD.
  345. /* _UIB-CODE-BLOCK-END */
  346. &ANALYZE-RESUME
  347. &ENDIF
  348. &IF DEFINED(EXCLUDE-setAufkoDruckFlag) = 0 &THEN
  349. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setAufkoDruckFlag Procedure
  350. FUNCTION setAufkoDruckFlag RETURNS LOGICAL
  351. ( ipFirma AS CHARACTER, ipAufnr AS INTEGER, ipFlag AS LOG ) FORWARD.
  352. /* _UIB-CODE-BLOCK-END */
  353. &ANALYZE-RESUME
  354. &ENDIF
  355. &IF DEFINED(EXCLUDE-setAufzePreis) = 0 &THEN
  356. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setAufzePreis Procedure
  357. FUNCTION setAufzePreis RETURNS INTEGER
  358. ( ipiSpezPreis AS INTEGER, iplNettoArtikel AS LOG, iplRabAufNetto AS LOG ) FORWARD.
  359. /* _UIB-CODE-BLOCK-END */
  360. &ANALYZE-RESUME
  361. &ENDIF
  362. &IF DEFINED(EXCLUDE-SET_ABH_AUFNR) = 0 &THEN
  363. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD SET_ABH_AUFNR Procedure
  364. FUNCTION SET_ABH_AUFNR RETURNS LOGICAL
  365. ( ipAufnr AS INTEGER ) FORWARD.
  366. /* _UIB-CODE-BLOCK-END */
  367. &ANALYZE-RESUME
  368. &ENDIF
  369. &IF DEFINED(EXCLUDE-_getPreis) = 0 &THEN
  370. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD _getPreis Procedure
  371. FUNCTION _getPreis RETURNS LOGICAL
  372. ( ipKnr AS INTEGER, ipDatum AS DATE, INPUT-OUTPUT iohAufze AS HANDLE ) FORWARD.
  373. /* _UIB-CODE-BLOCK-END */
  374. &ANALYZE-RESUME
  375. &ENDIF
  376. &IF DEFINED(EXCLUDE-updateRuestauftrag) = 0 &THEN
  377. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD updateRuestauftrag Procedure
  378. FUNCTION updateRuestauftrag RETURNS LOGICAL
  379. (ipiStatus AS INTEGER,
  380. iprAufze AS RECID) FORWARD.
  381. /* _UIB-CODE-BLOCK-END */
  382. &ANALYZE-RESUME
  383. &ENDIF
  384. /* *********************** Procedure Settings ************************ */
  385. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  386. /* Settings for THIS-PROCEDURE
  387. Type: Procedure
  388. Allow:
  389. Frames: 0
  390. Add Fields to: Neither
  391. Other Settings: CODE-ONLY COMPILE
  392. */
  393. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  394. /* ************************* Create Window ************************** */
  395. &ANALYZE-SUSPEND _CREATE-WINDOW
  396. /* DESIGN Window definition (used by the UIB)
  397. CREATE WINDOW Procedure ASSIGN
  398. HEIGHT = 32
  399. WIDTH = 82.
  400. /* END WINDOW DEFINITION */
  401. */
  402. &ANALYZE-RESUME
  403. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Procedure
  404. /* *************************** Main Block *************************** */
  405. SUBSCRIBE TO 'NEUERMANDANT' ANYWHERE.
  406. DO WHILE TRUE:
  407. EMPTY TEMP-TABLE tArtst.
  408. EMPTY TEMP-TABLE tAufko.
  409. EMPTY TEMP-TABLE tAufze.
  410. EMPTY TEMP-TABLE tArtbw.
  411. CREATE tArtst.
  412. CREATE tAufko.
  413. CREATE tAufze.
  414. CREATE tArtbw.
  415. LEAVE.
  416. END.
  417. /* _UIB-CODE-BLOCK-END */
  418. &ANALYZE-RESUME
  419. /* ********************** Internal Procedures *********************** */
  420. &IF DEFINED(EXCLUDE-ALSOFFERTE_CHANGED) = 0 &THEN
  421. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ALSOFFERTE_CHANGED Procedure
  422. PROCEDURE ALSOFFERTE_CHANGED :
  423. /*------------------------------------------------------------------------------*/
  424. /* Purpose: */
  425. /* Parameters: <none> */
  426. /* Notes: */
  427. /*------------------------------------------------------------------------------*/
  428. DEFINE INPUT PARAMETER ipAufnr AS INTEGER NO-UNDO.
  429. DEFINE INPUT PARAMETER ipOfferte AS LOG NO-UNDO.
  430. DEFINE VARIABLE VMenge AS DECIMAL NO-UNDO.
  431. DEFINE BUFFER bAufze FOR Aufze .
  432. DEFINE BUFFER bArtst FOR Artst .
  433. DEFINE BUFFER bArtLager FOR ArtLager.
  434. DEFINE BUFFER bArtbw FOR Artbw .
  435. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  436. FOR EACH bAufze
  437. WHERE bAufze.Firma = Firma
  438. AND bAufze.Aufnr = ipAufnr
  439. AND bAufze.Artnr > 0:
  440. FIND bArtst NO-LOCK
  441. WHERE bArtst.Firma = bAufze.Firma
  442. AND bArtst.Artnr = bAufze.Artnr
  443. AND bArtst.Inhalt = bAufze.Inhalt
  444. AND bArtst.Jahr = bAufze.Jahr NO-ERROR.
  445. bAufze.Lag_Buch = ( IF ipOfferte THEN FALSE ELSE bArtst.Lager ).
  446. FIND bArtbw OF bAufze.
  447. bArtbw.Lag_Buch = bAufze.Lag_Buch.
  448. RELEASE bArtst.
  449. RELEASE bArtbw.
  450. RELEASE bAufze.
  451. RELEASE bArtLager.
  452. END.
  453. LEAVE.
  454. END.
  455. END PROCEDURE.
  456. /* _UIB-CODE-BLOCK-END */
  457. &ANALYZE-RESUME
  458. &ENDIF
  459. &IF DEFINED(EXCLUDE-ARTBWMUT) = 0 &THEN
  460. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTBWMUT Procedure
  461. PROCEDURE ARTBWMUT :
  462. /*------------------------------------------------------------------------------*/
  463. /* Purpose: */
  464. /* Parameters: <none> */
  465. /* Notes: */
  466. /*------------------------------------------------------------------------------*/
  467. DEFINE INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  468. FIND FIRST tAufze.
  469. FIND Artbw WHERE RECID(Artbw) = ipRecid.
  470. FIND Aufko OF tAufze NO-LOCK NO-ERROR.
  471. BUFFER-COPY tAufze TO Artbw
  472. ASSIGN
  473. Artbw.Menge = tAufze.MGeli
  474. Artbw.Datum = Aufko.Auf_Dat
  475. Artbw.Faktor = 1
  476. Artbw.Kurs = Aufko.Kurs
  477. Artbw.Faknr = Aufko.Faknr
  478. Artbw.Fak_Dat = Aufko.Fak_Dat
  479. Artbw.Fak_Art = Aufko.Fak_Art
  480. Artbw.Knr = Aufko.Knr
  481. Artbw.Fak_Knr = Aufko.Fak_Knr
  482. Artbw.Abhol = Aufko.Abhol
  483. Artbw.Vertr = Aufko.Vertr.
  484. RELEASE Artbw.
  485. END PROCEDURE.
  486. /* _UIB-CODE-BLOCK-END */
  487. &ANALYZE-RESUME
  488. &ENDIF
  489. &IF DEFINED(EXCLUDE-AUFTRAGFUNKTIONENINIT) = 0 &THEN
  490. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAGFUNKTIONENINIT Procedure
  491. PROCEDURE AUFTRAGFUNKTIONENINIT :
  492. /*------------------------------------------------------------------------------*/
  493. /* Purpose: */
  494. /* Parameters: <none> */
  495. /* Notes: */
  496. /*------------------------------------------------------------------------------*/
  497. Firma = DYNAMIC-FUNCTION('GETMANDANT':U ) NO-ERROR.
  498. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
  499. lEpProzBetr = DYNAMIC-FUNCTION('getEpProz_Betr':U, Firma ) NO-ERROR.
  500. lSummGrpSpPr = DYNAMIC-FUNCTION('getSummGrpSpPr':U, Firma ) NO-ERROR.
  501. RUN LADEN_DOKVERLAUF.
  502. END PROCEDURE.
  503. /* _UIB-CODE-BLOCK-END */
  504. &ANALYZE-RESUME
  505. &ENDIF
  506. &IF DEFINED(EXCLUDE-AUFTRAGSTOTAL) = 0 &THEN
  507. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAGSTOTAL Procedure
  508. PROCEDURE AUFTRAGSTOTAL :
  509. /*------------------------------------------------------------------------------*/
  510. /* Purpose: */
  511. /* Parameters: <none> */
  512. /* Notes: */
  513. /*------------------------------------------------------------------------------*/
  514. DEFINE INPUT PARAMETER ipAufnr AS INTEGER NO-UNDO.
  515. DEFINE OUTPUT PARAMETER ipTotal AS CHARACTER NO-UNDO.
  516. DEFINE VARIABLE VTotal AS DECIMAL DECIMALS 4 EXTENT 15 NO-UNDO.
  517. DEFINE VARIABLE zz AS INTEGER NO-UNDO.
  518. ipTotal = ''.
  519. DYNAMIC-FUNCTION('calculateAuftragsTotal':U, Firma, ipAufnr, OUTPUT VTotal ).
  520. DO zz = 1 TO 15:
  521. ipTotal = ipTotal
  522. + (IF ipTotal = '' THEN '' ELSE CHR(01))
  523. + STRING(VTotal[zz]).
  524. END.
  525. RETURN ''.
  526. END PROCEDURE.
  527. /* _UIB-CODE-BLOCK-END */
  528. &ANALYZE-RESUME
  529. &ENDIF
  530. &IF DEFINED(EXCLUDE-AUFTRAG_GEDRUCKT) = 0 &THEN
  531. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAG_GEDRUCKT Procedure
  532. PROCEDURE AUFTRAG_GEDRUCKT :
  533. /*------------------------------------------------------------------------------*/
  534. /* Purpose: */
  535. /* Parameters: <none> */
  536. /* Notes: */
  537. /*------------------------------------------------------------------------------*/
  538. DEFINE INPUT PARAMETER ipAufnr AS INTEGER NO-UNDO.
  539. DEFINE VARIABLE AltSammFak AS LOG NO-UNDO.
  540. DEFINE VARIABLE NeuSammFak AS LOG NO-UNDO.
  541. DEFINE VARIABLE AltFakArt AS INTEGER NO-UNDO.
  542. DEFINE VARIABLE iSammNr AS INTEGER NO-UNDO.
  543. DEFINE VARIABLE lAltFest AS LOG NO-UNDO.
  544. DEFINE VARIABLE lNeuFest AS LOG NO-UNDO.
  545. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  546. DEFINE BUFFER xAufko FOR Aufko.
  547. STATUSAENDERUNG:
  548. REPEAT TRANSACTION:
  549. FIND Aufko EXCLUSIVE-LOCK USE-INDEX Aufko-k1
  550. WHERE Aufko.Firma = Firma
  551. AND Aufko.Aufnr = ipAufnr NO-WAIT NO-ERROR.
  552. IF NOT AVAILABLE Aufko THEN
  553. DO:
  554. RELEASE Aufko.
  555. RETURN 'Fehler'.
  556. END.
  557. IF Aufko.AlsOfferte THEN
  558. DO:
  559. RELEASE Aufko.
  560. MESSAGE 'Auftrag ist Offerte! WEITER geht hier nicht! '
  561. VIEW-AS ALERT-BOX INFORMATION.
  562. RETURN 'Fehler'.
  563. END.
  564. ASSIGN
  565. iRecid = RECID(Aufko)
  566. Firma = Aufko.Firma
  567. Aufko.Gedruckt = TRUE.
  568. FIND FIRST tVerlauf NO-LOCK USE-INDEX tVerlauf-k1
  569. WHERE tVerlauf.FakArt = Aufko.Fak_Art
  570. AND tVerlauf.AufSta = Aufko.Auf_Sta NO-ERROR.
  571. IF NOT AVAILABLE tVerlauf THEN
  572. DO:
  573. RELEASE Aufko.
  574. RETURN 'ERROR'.
  575. END.
  576. IF Aufko.Fak_Art = tVerlauf.dFakArt AND
  577. Aufko.Auf_Sta = tVerlauf.dAufSta THEN
  578. DO:
  579. RELEASE Aufko.
  580. RETURN ''.
  581. END.
  582. FIND Tabel NO-LOCK USE-INDEX Tabel-k1
  583. WHERE Tabel.Firma = Firma
  584. AND Tabel.RecArt = 'FAKART'
  585. AND Tabel.CodeC = ''
  586. AND Tabel.CodeI = Aufko.Fak_Art
  587. AND Tabel.Sprcd = 1 NO-ERROR.
  588. IF Tabel.Int_3 = 4 THEN AltSammFak = TRUE.
  589. ELSE AltSammFak = FALSE.
  590. ASSIGN
  591. AltFakArt = Aufko.Fak_Art
  592. lAltFest = Tabel.Flag_1
  593. Aufko.Fak_Art = tVerlauf.dFakArt
  594. Aufko.Auf_Sta = tVerlauf.dAufSta
  595. Aufko.Gedruckt = (IF tVerlauf.dDruck = TRUE THEN FALSE ELSE TRUE).
  596. IF AltFakArt <> Aufko.Fak_Art THEN
  597. DO:
  598. FIND Tabel NO-LOCK USE-INDEX Tabel-k1
  599. WHERE Tabel.Firma = Firma
  600. AND Tabel.RecArt = 'FAKART'
  601. AND Tabel.CodeC = ''
  602. AND Tabel.CodeI = Aufko.Fak_Art
  603. AND Tabel.Sprcd = 1 NO-ERROR.
  604. IF Tabel.Int_3 = 4 THEN NeuSammFak = TRUE.
  605. ELSE NeuSammFak = FALSE.
  606. lNeuFest = Tabel.Flag_1.
  607. END.
  608. ELSE
  609. DO:
  610. ASSIGN
  611. lNeufest = lAltFest
  612. NeuSammFak = AltSammFak.
  613. END.
  614. DO WHILE TRUE:
  615. IF lAltFest OR
  616. lNeuFest THEN
  617. DO:
  618. RELEASE Aufko.
  619. RUN PROCESSFESTAUFTRAG ( Firma, ipAufnr, lAltFest, lNeuFest ) NO-ERROR.
  620. FIND Aufko NO-LOCK WHERE RECID(Aufko) = iRecid.
  621. IF NeuSammFak AND
  622. NOT AltSammFak AND
  623. Aufko.Samm_Nr = 0 THEN
  624. DO:
  625. FIND FIRST xAufko NO-LOCK
  626. WHERE xAufko.Firma = Aufko.Firma
  627. AND xAufko.Fak_Art = Aufko.Fak_Art
  628. AND xAufko.Samm_Nr > 0
  629. AND xAufko.Aufnr <> Aufko.Aufnr NO-ERROR.
  630. IF AVAILABLE xAufko THEN
  631. DO:
  632. FIND Aufko WHERE RECID(Aufko) = iRecid.
  633. ASSIGN
  634. Aufko.Samm_Nr = xAufko.Samm_Nr.
  635. RELEASE Aufko.
  636. END.
  637. FIND Aufko NO-LOCK WHERE RECID(Aufko) = iRecid.
  638. END.
  639. IF NeuSammFak AND
  640. tVerlauf.dDruck THEN
  641. DO:
  642. FOR EACH xAufko
  643. WHERE xAufko.Firma = Aufko.Firma
  644. AND xAufko.Fak_Art = Aufko.Fak_Art
  645. AND xAufko.Samm_Nr = Aufko.Samm_Nr
  646. AND xAufko.Aufnr <> Aufko.Aufnr:
  647. ASSIGN
  648. xAufko.Gedruckt = FALSE.
  649. END.
  650. END.
  651. LEAVE.
  652. END.
  653. IF NOT AltSammFak AND
  654. NOT NeuSammFak THEN LEAVE.
  655. IF AltSammFak AND
  656. NOT NeuSammFak THEN
  657. DO:
  658. ASSIGN
  659. Aufko.Samm_Nr = 0
  660. Aufko.Faknr = 0.
  661. LEAVE.
  662. END.
  663. IF AltSammFak AND
  664. NeuSammFak THEN
  665. DO:
  666. FOR EACH xAufko USE-INDEX Aufko-k5
  667. WHERE xAufko.Firma = Aufko.Firma
  668. AND xAufko.Fak_Art = AltFakArt
  669. AND xAufko.Samm_Nr = Aufko.Samm_Nr :
  670. ASSIGN
  671. xAufko.Fak_Art = Aufko.Fak_Art
  672. xAufko.Auf_Sta = Aufko.Auf_Sta.
  673. END.
  674. LEAVE.
  675. END.
  676. RUN SETSAMMELNUMMER ( INPUT RECID(Aufko) ).
  677. IF RETURN-VALUE = 'ERROR' THEN
  678. DO:
  679. UNDO STATUSAENDERUNG, RETURN 'ERROR'.
  680. END.
  681. LEAVE.
  682. END.
  683. RELEASE xAufko.
  684. RELEASE Aufko.
  685. LEAVE.
  686. END.
  687. RETURN ''.
  688. END PROCEDURE.
  689. /* _UIB-CODE-BLOCK-END */
  690. &ANALYZE-RESUME
  691. &ENDIF
  692. &IF DEFINED(EXCLUDE-BUFFER_TO_TAUFZE) = 0 &THEN
  693. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BUFFER_TO_TAUFZE Procedure
  694. PROCEDURE BUFFER_TO_TAUFZE :
  695. /*------------------------------------------------------------------------------*/
  696. /* Purpose: */
  697. /* Parameters: <none> */
  698. /* Notes: */
  699. /*------------------------------------------------------------------------------*/
  700. DEFINE INPUT-OUTPUT PARAMETER ipBuffer AS HANDLE NO-UNDO.
  701. DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
  702. DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
  703. DEFINE VARIABLE hRAufze AS HANDLE NO-UNDO.
  704. DEFINE VARIABLE hFAufze AS HANDLE NO-UNDO.
  705. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  706. DEFINE VARIABLE ex AS INTEGER NO-UNDO.
  707. FIND FIRST tAufze.
  708. IF NOT AVAILABLE tAufze THEN CREATE tAufze.
  709. hRAufze = BUFFER tAufze:HANDLE NO-ERROR.
  710. hRAufze:BUFFER-COPY(ipBuffer).
  711. END PROCEDURE.
  712. /* _UIB-CODE-BLOCK-END */
  713. &ANALYZE-RESUME
  714. &ENDIF
  715. &IF DEFINED(EXCLUDE-COMBO_BEIFAHRER) = 0 &THEN
  716. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE COMBO_BEIFAHRER Procedure
  717. PROCEDURE COMBO_BEIFAHRER :
  718. /*------------------------------------------------------------------------------*/
  719. /* Purpose: */
  720. /* Parameters: <none> */
  721. /* Notes: */
  722. /*------------------------------------------------------------------------------*/
  723. DEFINE INPUT PARAMETER IHandle AS HANDLE NO-UNDO.
  724. DEFINE VARIABLE RecArt AS CHARACTER INIT 'BEIFAHR' NO-UNDO.
  725. DEFINE VARIABLE CodeC AS CHARACTER INIT '' NO-UNDO.
  726. DEFINE VARIABLE CodeI AS INTEGER INIT 0 NO-UNDO.
  727. DEFINE VARIABLE Sprcd AS INTEGER INIT 1 NO-UNDO.
  728. DEFINE VARIABLE Art AS INTEGER INIT 1 NO-UNDO.
  729. RUN COMBO_TABELLE ( INPUT iHandle ,
  730. INPUT RecArt ,
  731. INPUT CodeC ,
  732. INPUT CodeI ,
  733. INPUT Sprcd ,
  734. INPUT Art ).
  735. END PROCEDURE.
  736. /* _UIB-CODE-BLOCK-END */
  737. &ANALYZE-RESUME
  738. &ENDIF
  739. &IF DEFINED(EXCLUDE-COMBO_FAHRER) = 0 &THEN
  740. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE COMBO_FAHRER Procedure
  741. PROCEDURE COMBO_FAHRER :
  742. /*------------------------------------------------------------------------------*/
  743. /* Purpose: */
  744. /* Parameters: <none> */
  745. /* Notes: */
  746. /*------------------------------------------------------------------------------*/
  747. DEFINE INPUT PARAMETER IHandle AS HANDLE NO-UNDO.
  748. DEFINE VARIABLE RecArt AS CHARACTER INIT 'FAHRER' NO-UNDO.
  749. DEFINE VARIABLE CodeC AS CHARACTER INIT '' NO-UNDO.
  750. DEFINE VARIABLE CodeI AS INTEGER INIT 0 NO-UNDO.
  751. DEFINE VARIABLE Sprcd AS INTEGER INIT 1 NO-UNDO.
  752. DEFINE VARIABLE Art AS INTEGER INIT 1 NO-UNDO.
  753. RUN COMBO_TABELLE ( INPUT iHandle ,
  754. INPUT RecArt ,
  755. INPUT CodeC ,
  756. INPUT CodeI ,
  757. INPUT Sprcd ,
  758. INPUT Art ).
  759. END PROCEDURE.
  760. /* _UIB-CODE-BLOCK-END */
  761. &ANALYZE-RESUME
  762. &ENDIF
  763. &IF DEFINED(EXCLUDE-COMBO_IBESTELLUNG) = 0 &THEN
  764. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE COMBO_IBESTELLUNG Procedure
  765. PROCEDURE COMBO_IBESTELLUNG :
  766. /*------------------------------------------------------------------------------*/
  767. /* Purpose: */
  768. /* Parameters: <none> */
  769. /* Notes: */
  770. /*------------------------------------------------------------------------------*/
  771. DEFINE INPUT PARAMETER IHandle AS HANDLE NO-UNDO.
  772. DEFINE VARIABLE RecArt AS CHARACTER INIT 'IBEST' NO-UNDO.
  773. DEFINE VARIABLE CodeC AS CHARACTER INIT '' NO-UNDO.
  774. DEFINE VARIABLE CodeI AS INTEGER INIT 0 NO-UNDO.
  775. DEFINE VARIABLE Sprcd AS INTEGER INIT 1 NO-UNDO.
  776. DEFINE VARIABLE Art AS INTEGER INIT 4 NO-UNDO.
  777. RUN COMBO_TABELLE ( INPUT iHandle ,
  778. INPUT RecArt ,
  779. INPUT CodeC ,
  780. INPUT CodeI ,
  781. INPUT Sprcd ,
  782. INPUT Art ).
  783. END PROCEDURE.
  784. /* _UIB-CODE-BLOCK-END */
  785. &ANALYZE-RESUME
  786. &ENDIF
  787. &IF DEFINED(EXCLUDE-COMBO_LIEFBEDINGUNG) = 0 &THEN
  788. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE COMBO_LIEFBEDINGUNG Procedure
  789. PROCEDURE COMBO_LIEFBEDINGUNG :
  790. /*------------------------------------------------------------------------------*/
  791. /* Purpose: */
  792. /* Parameters: <none> */
  793. /* Notes: */
  794. /*------------------------------------------------------------------------------*/
  795. DEFINE INPUT PARAMETER IHandle AS HANDLE NO-UNDO.
  796. DEFINE VARIABLE RecArt AS CHARACTER INIT 'LIEFBED' NO-UNDO.
  797. DEFINE VARIABLE CodeC AS CHARACTER INIT '' NO-UNDO.
  798. DEFINE VARIABLE CodeI AS INTEGER INIT 0 NO-UNDO.
  799. DEFINE VARIABLE Sprcd AS INTEGER INIT 1 NO-UNDO.
  800. DEFINE VARIABLE Art AS INTEGER INIT 1 NO-UNDO.
  801. RUN COMBO_TABELLE ( INPUT iHandle ,
  802. INPUT RecArt ,
  803. INPUT CodeC ,
  804. INPUT CodeI ,
  805. INPUT Sprcd ,
  806. INPUT Art ).
  807. END PROCEDURE.
  808. /* _UIB-CODE-BLOCK-END */
  809. &ANALYZE-RESUME
  810. &ENDIF
  811. &IF DEFINED(EXCLUDE-COMBO_LKW) = 0 &THEN
  812. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE COMBO_LKW Procedure
  813. PROCEDURE COMBO_LKW :
  814. /*------------------------------------------------------------------------------*/
  815. /* Purpose: */
  816. /* Parameters: <none> */
  817. /* Notes: */
  818. /*------------------------------------------------------------------------------*/
  819. DEFINE INPUT PARAMETER IHandle AS HANDLE NO-UNDO.
  820. DEFINE VARIABLE RecArt AS CHARACTER INIT 'LKW' NO-UNDO.
  821. DEFINE VARIABLE CodeC AS CHARACTER INIT '' NO-UNDO.
  822. DEFINE VARIABLE CodeI AS INTEGER INIT 0 NO-UNDO.
  823. DEFINE VARIABLE Sprcd AS INTEGER INIT 1 NO-UNDO.
  824. DEFINE VARIABLE Art AS INTEGER INIT 1 NO-UNDO.
  825. RUN COMBO_TABELLE ( INPUT iHandle ,
  826. INPUT RecArt ,
  827. INPUT CodeC ,
  828. INPUT CodeI ,
  829. INPUT Sprcd ,
  830. INPUT Art ).
  831. END PROCEDURE.
  832. /* _UIB-CODE-BLOCK-END */
  833. &ANALYZE-RESUME
  834. &ENDIF
  835. &IF DEFINED(EXCLUDE-CREATE_AUFKO) = 0 &THEN
  836. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_AUFKO Procedure
  837. PROCEDURE CREATE_AUFKO :
  838. /*------------------------------------------------------------------------------*/
  839. /* Purpose: */
  840. /* Parameters: <none> */
  841. /* Notes: */
  842. /*------------------------------------------------------------------------------*/
  843. DEFINE INPUT PARAMETER ipBuffer AS HANDLE NO-UNDO.
  844. DEFINE VARIABLE cBenDaten AS CHARACTER NO-UNDO.
  845. DEFINE VARIABLE Aufnr AS INTEGER NO-UNDO.
  846. DEFINE VARIABLE Knr AS INTEGER NO-UNDO.
  847. DEFINE VARIABLE FwFakArt AS INTEGER NO-UNDO.
  848. DEFINE VARIABLE FwAufSta AS INTEGER NO-UNDO.
  849. DEFINE VARIABLE FwFahrer AS INTEGER NO-UNDO.
  850. DEFINE VARIABLE FwLKW AS INTEGER NO-UNDO.
  851. DEFINE VARIABLE FwBeiFahr AS INTEGER NO-UNDO.
  852. DEFINE VARIABLE FwSprcd AS INTEGER NO-UNDO.
  853. DEFINE VARIABLE retValue AS CHARACTER NO-UNDO.
  854. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  855. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  856. DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
  857. DEFINE VARIABLE iLager AS INTEGER NO-UNDO.
  858. DEFINE VARIABLE cBemerk AS CHARACTER NO-UNDO.
  859. FwSprcd = DYNAMIC-FUNCTION('GETFWSPRCD':U) NO-ERROR.
  860. cBenDaten = DYNAMIC-FUNCTION('GETBENUTZERDATEN':U) NO-ERROR.
  861. iLager = DYNAMIC-FUNCTION('getBenLager':U) NO-ERROR.
  862. FIND FIRST tAufko.
  863. hBuffer = TEMP-TABLE tAufko:DEFAULT-BUFFER-HANDLE.
  864. hBuffer:BUFFER-COPY(ipBuffer).
  865. FIND Adresse NO-LOCK USE-INDEX Adresse-k1
  866. WHERE Adresse.Firma = AdFirma
  867. AND Adresse.Knr = tAufko.Knr NO-ERROR.
  868. FIND Debst NO-LOCK USE-INDEX Debst-k1
  869. WHERE Debst.Firma = Firma
  870. AND Debst.Knr = Adresse.Knr NO-ERROR.
  871. FIND Steuer NO-LOCK
  872. WHERE Steuer.Firma = Firma NO-ERROR.
  873. cBemerk = ''.
  874. CASE Steuer.St05:
  875. WHEN 0 THEN
  876. IF Debst.Bemerk <> '' THEN cBemerk = Debst.Bemerk.
  877. WHEN 1 THEN
  878. IF Adresse.Bem <> '' THEN cBemerk = Adresse.Bem.
  879. WHEN 2 THEN
  880. IF Debst.Auf_Text <> '' THEN cBemerk = Debst.Auf_Text.
  881. END CASE.
  882. IF tAufko.Abhol THEN
  883. DO:
  884. FwFakArt = DYNAMIC-FUNCTION('getAbholFakart':U) NO-ERROR.
  885. FwAufSta = DYNAMIC-FUNCTION('getAbholAufstatus':U) NO-ERROR.
  886. END.
  887. ELSE
  888. DO:
  889. FwFakArt = Debst.Fak_Art.
  890. FwAufSta = 0.
  891. END.
  892. FwLKW = 0.
  893. FwFahrer = 0.
  894. FwBeiFahr = 0.
  895. GET-KEY-VALUE SECTION 'FwAuftrag' KEY 'FwLKW' VALUE retValue.
  896. IF retValue <> ? THEN FwLKW = INTEGER(retValue).
  897. GET-KEY-VALUE SECTION 'FwAuftrag' KEY 'FwFahrer' VALUE retValue.
  898. IF retValue <> ? THEN FwFahrer = INTEGER(retValue).
  899. GET-KEY-VALUE SECTION 'FwAuftrag' KEY 'FwBeiFahr' VALUE retValue.
  900. IF retValue <> ? THEN FwBeiFahr = INTEGER(retValue).
  901. DO WHILE TRUE:
  902. IF Debst.KnrLie <> 0 AND
  903. Debst.KnrLie <> Debst.Knr THEN
  904. DO:
  905. ASSIGN
  906. tAufko.Knr = Debst.KnrLie
  907. tAufko.Fak_Knr = Debst.Knr.
  908. LEAVE.
  909. END.
  910. IF Debst.KnrFak <> 0 AND
  911. Debst.KnrFak <> Debst.Knr THEN
  912. DO:
  913. ASSIGN
  914. tAufko.Knr = Debst.KnrLie
  915. tAufko.Fak_Knr = Debst.KnrFak.
  916. LEAVE.
  917. END.
  918. ASSIGN
  919. tAufko.Knr = Debst.Knr
  920. tAufko.Fak_Knr = Debst.Knr.
  921. LEAVE.
  922. END.
  923. FIND Waehrung NO-LOCK
  924. WHERE Waehrung.Firma = Debst.Firma
  925. AND Waehrung.FRW = Debst.FRW NO-ERROR.
  926. Aufnr = DYNAMIC-FUNCTION('createAufnr':U, Firma) NO-ERROR.
  927. ASSIGN
  928. tAufko.Aufnr = Aufnr
  929. tAufko.Auf_Datum = TODAY
  930. tAufko.Lief_Datum = TODAY
  931. tAufko.Kond_Datum = TODAY
  932. tAufko.Fak_Datum = ?
  933. tAufko.Fak_Art = FwFakArt
  934. tAufko.I_Best = ''
  935. tAufko.U_Ref = ENTRY(2, cBenDaten, CHR(01))
  936. /*
  937. tAufko.Abhol = FALSE
  938. */
  939. tAufko.Vertr = Debst.Vertr
  940. tAufko.Rabatt = 0
  941. tAufko.Preis_Grp = Debst.Preis_Grp
  942. tAufko.Ku_Grp = Debst.Ku_Grp
  943. tAufko.Rab_Grp = Debst.Rab_Grp
  944. tAufko.Lief_Bed = Debst.Lief_Bed
  945. tAufko.Avis = Debst.Avis
  946. tAufko.Frw = Debst.FRW
  947. tAufko.Kurs = Waehrung.Kurs
  948. tAufko.Faktor = Waehrung.Faktor
  949. tAufko.Gedruckt = FALSE
  950. tAufko.WW = 0
  951. tAufko.Wpfl = 0
  952. tAufko.Wust = 0
  953. tAufko.Auf_Tot = 0
  954. tAufko.Faknr = 0
  955. tAufko.Bar_Fak = FALSE
  956. tAufko.Bar_Betr = 0
  957. tAufko.Bar_Skonto = 0
  958. tAufko.Bar_Konto = ''
  959. tAufko.GG_Berech = Debst.Geb_rg
  960. tAufko.Kopf_Text = ''
  961. tAufko.Fuss_Text = ''
  962. tAufko.Samm_Nr = 0
  963. tAufko.SK_Ber = 0
  964. tAufko.Verbucht = FALSE
  965. tAufko.Rueckst = FALSE
  966. tAufko.Fak_KTnr = 0
  967. tAufko.Fak_FTnr = 0
  968. tAufko.Filiale = 0
  969. tAufko.Tour_Nr1 = Debst.Tour_Nr1
  970. tAufko.Tour_Nr2 = Debst.Tour_Nr2
  971. tAufko.Konto = Debst.Konto
  972. tAufko.Geb_Rg = Debst.Geb_Rg
  973. tAufko.MWST_Nr = ''
  974. tAufko.Passant = Debst.Passant
  975. tAufko.Auf_Text = Debst.Auf_Text
  976. tAufko.Bar_Text = Debst.Bar_Text
  977. tAufko.Abh_Text = cBemerk
  978. tAufko.Zei_Rab_Art = Debst.Zei_Rab_Art
  979. tAufko.Zei_Rab_Wert = Debst.Zei_Rab_Wert
  980. tAufko.Auf_Rab_Art = Debst.Auf_Rab_Art
  981. tAufko.Auf_Rab_Wert = Debst.Auf_Rab_Wert
  982. /*
  983. tAufko.Abh_Rab_Art = Debst.Abh_Rab_Art
  984. tAufko.Abh_Rab_Wert = Debst.Abh_Rab_Wert
  985. */
  986. tAufko.Zuschl_Art = Debst.Zuschl_Art
  987. tAufko.Zuschl_Wert = Debst.Zuschl_Wert
  988. tAufko.Ablad_Vor = Debst.Ablad_Vor
  989. tAufko.Wirt_So = Debst.Wirt_So
  990. tAufko.Ablad_Vor_Text = Debst.Ablad_Vor_Text
  991. tAufko.Wirt_So_Text = Debst.Wirt_So_Text
  992. tAufko.MWST = Debst.MWST
  993. tAufko.Kond = Debst.Kond
  994. tAufko.LKW = FwLKW
  995. tAufko.Fahrer = FwFahrer
  996. tAufko.BeiFahrer = FwBeiFahr
  997. tAufko.Gewicht = 0
  998. tAufko.Transp = 0
  999. tAufko.Verpack = 0
  1000. tAufko.Porto = 0
  1001. tAufko.Lager = iLager
  1002. .
  1003. IF tAufko.Konto = '' THEN
  1004. DO:
  1005. FIND SteuNr USE-INDEX SteuNr-k1
  1006. WHERE SteuNr.Firma = Firma NO-LOCK.
  1007. tAufko.Konto = SteuNr.Konto_Debi.
  1008. END.
  1009. ipBuffer:BUFFER-COPY(hBuffer) NO-ERROR.
  1010. RELEASE Adresse.
  1011. RELEASE Debst.
  1012. END PROCEDURE.
  1013. /* _UIB-CODE-BLOCK-END */
  1014. &ANALYZE-RESUME
  1015. &ENDIF
  1016. &IF DEFINED(EXCLUDE-CREATE_TABTEXTE) = 0 &THEN
  1017. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_TABTEXTE Procedure
  1018. PROCEDURE CREATE_TABTEXTE :
  1019. /*------------------------------------------------------------------------------*/
  1020. /* Purpose: */
  1021. /* Parameters: <none> */
  1022. /* Notes: */
  1023. /*------------------------------------------------------------------------------*/
  1024. DEFINE INPUT PARAMETER iphAufko AS HANDLE.
  1025. DEFINE INPUT-OUTPUT PARAMETER iphTabTexte AS HANDLE.
  1026. iphTabTexte:EMPTY-TEMP-TABLE().
  1027. FIND Tabel NO-LOCK USE-INDEX Tabel-k1
  1028. WHERE Tabel.Firma = Firma
  1029. AND Tabel.RecArt = 'FAKART'
  1030. AND Tabel.CodeC = ''
  1031. AND Tabel.CodeI = iphAufko::Fak_Art
  1032. AND Tabel.Sprcd = 1 NO-ERROR.
  1033. IF AVAILABLE Tabel THEN
  1034. DO:
  1035. iphTabTexte:BUFFER-CREATE().
  1036. ASSIGN
  1037. iphTabTexte::cRecArt = Tabel.RecArt
  1038. iphTabTexte::iZeile = 1
  1039. iphTabTexte::cFeld1 = Tabel.Bez1
  1040. iphTabTexte::cFeld2 = Tabel.Bez2
  1041. iphTabTexte::cFeld3 = Tabel.BezL
  1042. iphTabTexte::iFeld1 = Tabel.Int_1
  1043. iphTabTexte::iFeld2 = Tabel.Int_2
  1044. iphTabTexte::iFeld3 = Tabel.Int_3.
  1045. END.
  1046. FIND Tabel NO-LOCK USE-INDEX Tabel-k1
  1047. WHERE Tabel.Firma = Firma
  1048. AND Tabel.RecArt = 'AUFSTATUS'
  1049. AND Tabel.CodeC = ''
  1050. AND Tabel.CodeI = iphAufko::Auf_Sta
  1051. AND Tabel.Sprcd = 1 NO-ERROR.
  1052. IF AVAILABLE Tabel THEN
  1053. DO:
  1054. iphTabTexte:BUFFER-CREATE().
  1055. ASSIGN
  1056. iphTabTexte::cRecArt = Tabel.RecArt
  1057. iphTabTexte::iZeile = 1
  1058. iphTabTexte::cFeld1 = Tabel.Bez1
  1059. iphTabTexte::cFeld2 = Tabel.Bez2
  1060. iphTabTexte::cFeld3 = Tabel.BezL.
  1061. END.
  1062. FIND Tabel NO-LOCK USE-INDEX Tabel-k1
  1063. WHERE Tabel.Firma = Firma
  1064. AND Tabel.RecArt = 'LIEFART'
  1065. AND Tabel.CodeC = ''
  1066. AND Tabel.CodeI = iphAufko::Lief_Bed
  1067. AND Tabel.Sprcd = 1 NO-ERROR.
  1068. IF AVAILABLE Tabel THEN
  1069. DO:
  1070. iphTabTexte:BUFFER-CREATE().
  1071. ASSIGN
  1072. iphTabTexte::cRecArt = Tabel.RecArt
  1073. iphTabTexte::iZeile = 1
  1074. iphTabTexte::cFeld1 = Tabel.Bez1
  1075. iphTabTexte::cFeld2 = Tabel.Bez2
  1076. iphTabTexte::cFeld3 = Tabel.BezL.
  1077. END.
  1078. FIND Tabel NO-LOCK USE-INDEX Tabel-k1
  1079. WHERE Tabel.Firma = Firma
  1080. AND Tabel.RecArt = 'TOUR1'
  1081. AND Tabel.CodeC = ''
  1082. AND Tabel.CodeI = iphAufko::Tour_Nr1
  1083. AND Tabel.Sprcd = 1 NO-ERROR.
  1084. IF AVAILABLE Tabel THEN
  1085. DO:
  1086. iphTabTexte:BUFFER-CREATE().
  1087. ASSIGN
  1088. iphTabTexte::cRecArt = Tabel.RecArt
  1089. iphTabTexte::iZeile = 1
  1090. iphTabTexte::cFeld1 = Tabel.Bez1
  1091. iphTabTexte::cFeld2 = Tabel.Bez2
  1092. iphTabTexte::cFeld3 = Tabel.BezL.
  1093. END.
  1094. FIND Tabel NO-LOCK USE-INDEX Tabel-k1
  1095. WHERE Tabel.Firma = Firma
  1096. AND Tabel.RecArt = 'FAHRER'
  1097. AND Tabel.CodeC = ''
  1098. AND Tabel.CodeI = iphAufko::Fahrer
  1099. AND Tabel.Sprcd = 1 NO-ERROR.
  1100. IF AVAILABLE Tabel THEN
  1101. DO:
  1102. iphTabTexte:BUFFER-CREATE().
  1103. ASSIGN
  1104. iphTabTexte::cRecArt = Tabel.RecArt
  1105. iphTabTexte::iZeile = 1
  1106. iphTabTexte::cFeld1 = Tabel.Bez1
  1107. iphTabTexte::cFeld2 = Tabel.Bez2
  1108. iphTabTexte::cFeld3 = Tabel.BezL.
  1109. END.
  1110. FIND Tabel NO-LOCK USE-INDEX Tabel-k1
  1111. WHERE Tabel.Firma = Firma
  1112. AND Tabel.RecArt = 'WISO'
  1113. AND Tabel.CodeC = ''
  1114. AND Tabel.CodeI = iphAufko::Wirt_So
  1115. AND Tabel.Sprcd = 1 NO-ERROR.
  1116. IF NOT AVAILABLE Tabel THEN
  1117. DO:
  1118. iphTabTexte:BUFFER-CREATE().
  1119. ASSIGN
  1120. iphTabTexte::cRecArt = 'WISO'
  1121. iphTabTexte::iZeile = 1
  1122. iphTabTexte::cFeld1 = iphAufko::Wirt_So
  1123. iphTabTexte::cFeld2 = iphAufko::Wirt_So_Text
  1124. iphTabTexte::cFeld3 = ''.
  1125. END.
  1126. ELSE
  1127. DO:
  1128. iphTabTexte:BUFFER-CREATE().
  1129. ASSIGN
  1130. iphTabTexte::cRecArt = Tabel.RecArt
  1131. iphTabTexte::iZeile = 1
  1132. iphTabTexte::cFeld1 = (IF LENGTH(Tabel.Bez1) > 4 THEN Tabel.Bez1 ELSE '')
  1133. iphTabTexte::cFeld2 = iphAufko::Wirt_So_Text
  1134. iphTabTexte::cFeld3 = (IF LENGTH(Tabel.Bez1) > 4 THEN Tabel.Bez1 ELSE '').
  1135. END.
  1136. iphTabTexte::cFeld3 = iphTabTexte::cFeld1.
  1137. IF iphTabTexte::cFeld2 <> '' THEN iphTabTexte::cFeld3 =
  1138. iphTabTexte::cFeld3 +
  1139. (IF iphTabTexte::cFeld3 <> '' THEN ' / ' ELSE '') +
  1140. iphTabTexte::cFeld2.
  1141. FIND Tabel NO-LOCK USE-INDEX Tabel-k1
  1142. WHERE Tabel.Firma = Firma
  1143. AND Tabel.RecArt = 'ABLAD'
  1144. AND Tabel.CodeC = ''
  1145. AND Tabel.CodeI = iphAufko::Ablad_Vor
  1146. AND Tabel.Sprcd = 1 NO-ERROR.
  1147. IF NOT AVAILABLE Tabel THEN
  1148. DO:
  1149. iphTabTexte:BUFFER-CREATE().
  1150. ASSIGN
  1151. iphTabTexte::cRecArt = 'ABLAD'
  1152. iphTabTexte::iZeile = 1
  1153. iphTabTexte::cFeld1 = iphAufko::Ablad_Vor
  1154. iphTabTexte::cFeld2 = iphAufko::Ablad_Vor_Text
  1155. iphTabTexte::cFeld3 = ''.
  1156. END.
  1157. ELSE
  1158. DO:
  1159. iphTabTexte:BUFFER-CREATE().
  1160. ASSIGN
  1161. iphTabTexte::cRecArt = Tabel.RecArt
  1162. iphTabTexte::iZeile = 1
  1163. iphTabTexte::cFeld1 = (IF LENGTH(Tabel.Bez1) > 4 THEN Tabel.Bez1 ELSE '')
  1164. iphTabTexte::cFeld2 = iphAufko::Ablad_Vor_Text
  1165. iphTabTexte::cFeld3 = (IF LENGTH(Tabel.Bez1) > 4 THEN Tabel.Bez1 ELSE '').
  1166. END.
  1167. iphTabTexte::cFeld3 = iphTabTexte::cFeld1.
  1168. IF iphTabTexte::cFeld2 <> '' THEN iphTabTexte::cFeld3 = iphTabTexte::cFeld3
  1169. + (IF iphTabTexte::cFeld3 <> '' THEN ' / ' ELSE '')
  1170. + iphTabTexte::cFeld2.
  1171. END PROCEDURE.
  1172. /* _UIB-CODE-BLOCK-END */
  1173. &ANALYZE-RESUME
  1174. &ENDIF
  1175. &IF DEFINED(EXCLUDE-FIND_IHREBESTELLUNG) = 0 &THEN
  1176. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FIND_IHREBESTELLUNG Procedure
  1177. PROCEDURE FIND_IHREBESTELLUNG :
  1178. /*------------------------------------------------------------------------------*/
  1179. /* Purpose: */
  1180. /* Parameters: <none> */
  1181. /* Notes: */
  1182. /*------------------------------------------------------------------------------*/
  1183. DEFINE INPUT-OUTPUT PARAMETER iocString AS CHARACTER NO-UNDO.
  1184. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  1185. cString = iocString.
  1186. FIND FIRST Tabel NO-LOCK
  1187. WHERE Tabel.FIrma = Firma
  1188. AND Tabel.RecArt = 'IBEST'
  1189. AND Tabel.CodeC = cString NO-ERROR.
  1190. IF AVAILABLE Tabel THEN iocString = Tabel.Bez1.
  1191. RELEASE Tabel.
  1192. END PROCEDURE.
  1193. /* _UIB-CODE-BLOCK-END */
  1194. &ANALYZE-RESUME
  1195. &ENDIF
  1196. &IF DEFINED(EXCLUDE-GEBINDE_AUSGANG_RECHNEN) = 0 &THEN
  1197. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_AUSGANG_RECHNEN Procedure
  1198. PROCEDURE GEBINDE_AUSGANG_RECHNEN :
  1199. /*------------------------------------------------------------------------------*/
  1200. /* Purpose: */
  1201. /* Parameters: <none> */
  1202. /* Notes: */
  1203. /*------------------------------------------------------------------------------*/
  1204. DEFINE INPUT PARAMETER ipFirma AS CHARACTER NO-UNDO.
  1205. DEFINE INPUT PARAMETER ipAufnr AS INTEGER NO-UNDO.
  1206. DEFINE INPUT PARAMETER ipGebRg AS LOG NO-UNDO.
  1207. DEFINE VARIABLE MW AS INTEGER.
  1208. DEFINE BUFFER xAufko FOR Aufko.
  1209. EMPTY TEMP-TABLE tAufGKon.
  1210. ipGebRg = TRUE. /* Neu wird Gebindekontrolle geführt, aber nicht dem Total zuaddiert */
  1211. FIND xAufko NO-LOCK
  1212. WHERE xAufko.Firma = ipFirma
  1213. AND xAufko.Aufnr = ipAufnr NO-ERROR.
  1214. FOR EACH Aufze NO-LOCK
  1215. WHERE Aufze.Firma = ipFirma
  1216. AND Aufze.Aufnr = ipAufnr:
  1217. DO WHILE Aufze.KGebKto <> '':
  1218. IF Aufze.KGeb_Me = 0 THEN LEAVE.
  1219. FIND GebKonto USE-INDEX GebKonto-k1
  1220. WHERE GebKonto.Firma = Aufze.Firma
  1221. AND GebKonto.Geb_Cd = Aufze.KGebKto NO-LOCK.
  1222. IF GebKonto.MWST_Art = 0 THEN MW = 11.
  1223. IF GebKonto.MWST_Art = 1 THEN MW = Aufze.WuCd.
  1224. IF GebKonto.MWST_Art = 2 THEN MW = GebKonto.MWST_Cd.
  1225. FIND tAufGKon USE-INDEX AufGKon-k1
  1226. WHERE tAufGKon.Firma = Aufze.Firma
  1227. AND tAufGKon.Aufnr = Aufze.Aufnr
  1228. AND tAufGKon.Geb_Cd = GebKonto.Geb_Cd
  1229. AND tAufGKon.MWSt_Cd = MW NO-ERROR.
  1230. IF NOT AVAILABLE tAufGKon THEN
  1231. DO:
  1232. CREATE tAufGKon.
  1233. ASSIGN
  1234. tAufGKon.Firma = Aufze.Firma
  1235. tAufGKon.Aufnr = Aufze.Aufnr
  1236. tAufGKon.Geb_Cd = GebKonto.Geb_Cd
  1237. tAufGKon.MWSt_Cd = MW
  1238. tAufGKon.Gebuehr = GebKonto.Gebuehr
  1239. tAufGKon.Depot = GebKonto.Depot
  1240. tAufGKon.Sort_Cd = GebKonto.Sort_Cd.
  1241. END.
  1242. DO WHILE TRUE:
  1243. IF NOT ipGebRg THEN LEAVE.
  1244. IF Aufze.Preis = 0 AND
  1245. tAufGKon.Gebuehr <> 0 THEN LEAVE.
  1246. IF xAufko.Abhol AND
  1247. tAufGKon.Gebuehr <> 0 THEN LEAVE.
  1248. tAufGKon.Ausgang = tAufGKon.Ausgang + Aufze.KGeb_Me.
  1249. tAufGKon.Betrag = (tAufGKon.Ausgang - tAufGKon.Eingang)
  1250. * (tAufGKon.Depot + tAufGKon.Gebuehr).
  1251. LEAVE.
  1252. END.
  1253. LEAVE.
  1254. END.
  1255. DO WHILE Aufze.VGebKto <> '':
  1256. IF Aufze.VGeb_Me = 0 THEN LEAVE.
  1257. FIND GebKonto USE-INDEX GebKonto-k1
  1258. WHERE GebKonto.Firma = Aufze.Firma
  1259. AND GebKonto.Geb_Cd = Aufze.VGebKto NO-LOCK.
  1260. IF GebKonto.MWST_Art = 0 THEN MW = 11.
  1261. IF GebKonto.MWST_Art = 1 THEN MW = Aufze.WuCd.
  1262. IF GebKonto.MWST_Art = 2 THEN MW = GebKonto.MWST_Cd.
  1263. FIND tAufGKon USE-INDEX AufGKon-k1
  1264. WHERE tAufGKon.Firma = Aufze.Firma
  1265. AND tAufGKon.Aufnr = Aufze.Aufnr
  1266. AND tAufGKon.Geb_Cd = GebKonto.Geb_Cd
  1267. AND tAufGKon.MWSt_Cd = MW NO-ERROR.
  1268. IF NOT AVAILABLE tAufGKon THEN
  1269. DO:
  1270. CREATE tAufGKon.
  1271. ASSIGN
  1272. tAufGKon.Firma = Aufze.Firma
  1273. tAufGKon.Aufnr = Aufze.Aufnr
  1274. tAufGKon.Geb_Cd = GebKonto.Geb_Cd
  1275. tAufGKon.MWSt_Cd = MW
  1276. tAufGKon.Gebuehr = GebKonto.Gebuehr
  1277. tAufGKon.Depot = GebKonto.Depot
  1278. tAufGKon.Sort_Cd = GebKonto.Sort_Cd.
  1279. END.
  1280. DO WHILE TRUE:
  1281. IF NOT ipGebRg THEN LEAVE.
  1282. IF Aufze.Preis = 0 AND
  1283. tAufGKon.Gebuehr <> 0 THEN LEAVE.
  1284. tAufGKon.Ausgang = tAufGKon.Ausgang + Aufze.VGeb_Me.
  1285. tAufGKon.Betrag = (tAufGKon.Ausgang - tAufGKon.Eingang)
  1286. * (tAufGKon.Depot + tAufGKon.Gebuehr).
  1287. LEAVE.
  1288. END.
  1289. LEAVE.
  1290. END.
  1291. DO WHILE Aufze.GGebKto <> '':
  1292. IF Aufze.GGeb_Me = 0 THEN LEAVE.
  1293. FIND GebKonto USE-INDEX GebKonto-k1
  1294. WHERE GebKonto.Firma = Aufze.Firma
  1295. AND GebKonto.Geb_Cd = Aufze.GGebKto NO-LOCK.
  1296. IF GebKonto.MWST_Art = 0 THEN MW = 11.
  1297. IF GebKonto.MWST_Art = 1 THEN MW = Aufze.WuCd.
  1298. IF GebKonto.MWST_Art = 2 THEN MW = GebKonto.MWST_Cd.
  1299. FIND tAufGKon USE-INDEX AufGKon-k1
  1300. WHERE tAufGKon.Firma = Aufze.Firma
  1301. AND tAufGKon.Aufnr = Aufze.Aufnr
  1302. AND tAufGKon.Geb_Cd = GebKonto.Geb_Cd
  1303. AND tAufGKon.MWSt_Cd = MW NO-ERROR.
  1304. IF NOT AVAILABLE tAufGKon THEN
  1305. DO:
  1306. CREATE tAufGKon.
  1307. ASSIGN
  1308. tAufGKon.Firma = Aufze.Firma
  1309. tAufGKon.Aufnr = Aufze.Aufnr
  1310. tAufGKon.Geb_Cd = GebKonto.Geb_Cd
  1311. tAufGKon.MWSt_Cd = MW
  1312. tAufGKon.Gebuehr = GebKonto.Gebuehr
  1313. tAufGKon.Depot = GebKonto.Depot
  1314. tAufGKon.Sort_Cd = GebKonto.Sort_Cd.
  1315. END.
  1316. DO WHILE TRUE:
  1317. IF NOT ipGebRg THEN LEAVE.
  1318. IF Aufze.Preis = 0 AND
  1319. tAufGKon.Gebuehr <> 0 THEN LEAVE.
  1320. tAufGKon.Ausgang = tAufGKon.Ausgang + Aufze.GGeb_Me.
  1321. tAufGKon.Betrag = (tAufGKon.Ausgang - tAufGKon.Eingang)
  1322. * (tAufGKon.Depot + tAufGKon.Gebuehr).
  1323. LEAVE.
  1324. END.
  1325. LEAVE.
  1326. END.
  1327. END.
  1328. FOR EACH AufGKon
  1329. WHERE AufGKon.Firma = xAufko.Firma
  1330. AND AufGKon.Aufnr = xAufko.Aufnr:
  1331. ASSIGN
  1332. AufGKon.Ausgang = 0
  1333. AufGKon.Betrag = 0.
  1334. RELEASE AufGKon.
  1335. END.
  1336. FOR EACH tAufGKon:
  1337. FIND AufGKon OF tAufGKon NO-ERROR.
  1338. IF NOT AVAILABLE AufGKon THEN
  1339. DO:
  1340. CREATE AufGKon.
  1341. BUFFER-COPY tAufGKon TO AufGKon.
  1342. NEXT.
  1343. END.
  1344. ASSIGN
  1345. AufGKon.Ausgang = tAufGKon.Ausgang.
  1346. RELEASE AufGKon.
  1347. END.
  1348. FOR EACH AufGKon
  1349. WHERE AufGKon.Firma = xAufko.Firma
  1350. AND AufGKon.Aufnr = xAufko.Aufnr:
  1351. AufGKon.Betrag = (AufGKon.Ausgang - AufGKon.Eingang)
  1352. * (AufGKon.Depot + AufGKon.Gebuehr).
  1353. RELEASE AufGKon.
  1354. END.
  1355. RETURN.
  1356. END PROCEDURE.
  1357. /* _UIB-CODE-BLOCK-END */
  1358. &ANALYZE-RESUME
  1359. &ENDIF
  1360. &IF DEFINED(EXCLUDE-GET_FORMTEXT) = 0 &THEN
  1361. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GET_FORMTEXT Procedure
  1362. PROCEDURE GET_FORMTEXT :
  1363. /*------------------------------------------------------------------------------*/
  1364. /* Purpose: */
  1365. /* Parameters: <none> */
  1366. /* Notes: */
  1367. /*------------------------------------------------------------------------------*/
  1368. DEFINE INPUT PARAMETER ipcInstall AS CHARACTER NO-UNDO.
  1369. DEFINE INPUT PARAMETER ipcDokArt AS CHARACTER NO-UNDO.
  1370. DEFINE INPUT PARAMETER ipiSprcd AS INTEGER NO-UNDO.
  1371. DEFINE OUTPUT PARAMETER opcTexte AS CHARACTER EXTENT 30 NO-UNDO.
  1372. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  1373. cString = CAPS(ipcInstall) + ':' + ipcDokArt.
  1374. opcTexte = ''.
  1375. FOR EACH LiBild NO-LOCK
  1376. WHERE LiBild.Prog = cString
  1377. AND LiBild.Sprcd = ipiSprcd:
  1378. opcTexte[LiBild.TeNr] = LiBild.LiText.
  1379. END.
  1380. END PROCEDURE.
  1381. /* _UIB-CODE-BLOCK-END */
  1382. &ANALYZE-RESUME
  1383. &ENDIF
  1384. &IF DEFINED(EXCLUDE-LADEN_DOKVERLAUF) = 0 &THEN
  1385. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LADEN_DOKVERLAUF Procedure
  1386. PROCEDURE LADEN_DOKVERLAUF :
  1387. /*------------------------------------------------------------------------------*/
  1388. /* Purpose: */
  1389. /* Parameters: <none> */
  1390. /* Notes: */
  1391. /*------------------------------------------------------------------------------*/
  1392. REPEAT TRANSACTION:
  1393. EMPTY TEMP-TABLE tVerlauf.
  1394. FOR EACH Tabel NO-LOCK USE-INDEX Tabel-k2
  1395. WHERE Tabel.Firma = Firma
  1396. AND Tabel.RecArt = 'DOKVERLAUF'
  1397. AND Tabel.CodeI = 0
  1398. AND Tabel.Sprcd = 1 :
  1399. CREATE tVerlauf.
  1400. ASSIGN
  1401. tVerlauf.FakArt = INTEGER(SUBSTRING(Tabel.CodeC,01,06))
  1402. tVerlauf.AufSta = INTEGER(SUBSTRING(Tabel.CodeC,07,06))
  1403. tVerlauf.wFakArt = INTEGER(SUBSTRING(Tabel.Bez1 ,01,06))
  1404. tVerlauf.zFakArt = INTEGER(SUBSTRING(Tabel.Bez1 ,07,06))
  1405. tVerlauf.dFakArt = INTEGER(SUBSTRING(Tabel.Bez1 ,13,06))
  1406. tVerlauf.wAufSta = INTEGER(SUBSTRING(Tabel.Bez2 ,01,06))
  1407. tVerlauf.zAufSta = INTEGER(SUBSTRING(Tabel.Bez2 ,07,06))
  1408. tVerlauf.dAufSta = INTEGER(SUBSTRING(Tabel.Bez2 ,13,06)).
  1409. IF ENTRY(1, Tabel.BezL, ';') = 'yes' THEN tVerlauf.wDruck = TRUE.
  1410. ELSE tVerlauf.wDruck = FALSE.
  1411. IF ENTRY(2, Tabel.BezL, ';') = 'yes' THEN tVerlauf.zDruck = TRUE.
  1412. ELSE tVerlauf.zDruck = FALSE.
  1413. IF ENTRY(3, Tabel.BezL, ';') = 'yes' THEN tVerlauf.dDruck = TRUE.
  1414. ELSE tVerlauf.dDruck = FALSE.
  1415. END.
  1416. RELEASE Tabel.
  1417. LEAVE.
  1418. END.
  1419. END PROCEDURE.
  1420. /* _UIB-CODE-BLOCK-END */
  1421. &ANALYZE-RESUME
  1422. &ENDIF
  1423. &IF DEFINED(EXCLUDE-NEUERMANDANT) = 0 &THEN
  1424. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUERMANDANT Procedure
  1425. PROCEDURE NEUERMANDANT :
  1426. /*------------------------------------------------------------------------------*/
  1427. /* Purpose: */
  1428. /* Parameters: <none> */
  1429. /* Notes: */
  1430. /*------------------------------------------------------------------------------*/
  1431. DEFINE INPUT PARAMETER ipBenutzer AS CHARACTER NO-UNDO.
  1432. DEFINE INPUT PARAMETER ipMandant AS CHARACTER NO-UNDO.
  1433. Benutzer = ipBenutzer.
  1434. Firma = ipMandant.
  1435. RUN AUFTRAGFUNKTIONENINIT.
  1436. END PROCEDURE.
  1437. /* _UIB-CODE-BLOCK-END */
  1438. &ANALYZE-RESUME
  1439. &ENDIF
  1440. &IF DEFINED(EXCLUDE-PROCESSFESTAUFTRAG) = 0 &THEN
  1441. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PROCESSFESTAUFTRAG Procedure
  1442. PROCEDURE PROCESSFESTAUFTRAG :
  1443. /*------------------------------------------------------------------------------*/
  1444. /* Purpose: */
  1445. /* Parameters: <none> */
  1446. /* Notes: */
  1447. /*------------------------------------------------------------------------------*/
  1448. DEFINE INPUT PARAMETER ipFirma AS CHARACTER NO-UNDO.
  1449. DEFINE INPUT PARAMETER ipAufnr AS INTEGER NO-UNDO.
  1450. DEFINE INPUT PARAMETER ipOld AS LOG NO-UNDO.
  1451. DEFINE INPUT PARAMETER ipNew AS LOG NO-UNDO.
  1452. DEFINE VARIABLE iSamm_Nr AS INTEGER NO-UNDO.
  1453. DEFINE VARIABLE iAufnr AS INTEGER NO-UNDO.
  1454. DEFINE VARIABLE iPos AS INTEGER NO-UNDO.
  1455. DEFINE VARIABLE dLief_Datum AS DATE NO-UNDO.
  1456. DEFINE VARIABLE lFirst AS LOG INIT TRUE NO-UNDO.
  1457. DEFINE VARIABLE nTotale AS DECIMAL EXTENT 15 NO-UNDO.
  1458. DEFINE BUFFER bAufko FOR Aufko.
  1459. DEFINE BUFFER bAufze FOR Aufze.
  1460. DEFINE BUFFER bSteuer FOR Steuer.
  1461. IF ipOld = ipNew THEN RETURN.
  1462. FIND bSteuer NO-LOCK
  1463. WHERE bSteuer.Firma = ipFirma.
  1464. REPEAT TRANSACTION:
  1465. FIND bAufko
  1466. WHERE bAufko.Firma = ipFirma
  1467. AND bAufko.Aufnr = ipAufnr.
  1468. IF NOT ipNew THEN
  1469. DO:
  1470. ASSIGN
  1471. bAufko.Samm_Nr = 0
  1472. bAufko.Faknr = 0.
  1473. RELEASE bAufko.
  1474. LEAVE.
  1475. END.
  1476. FIND FIRST Aufko NO-LOCK
  1477. WHERE Aufko.Firma = bAufko.Firma
  1478. AND Aufko.Knr = bAufko.Knr
  1479. AND Aufko.Fak_Art = bSteuer.Fwi22 NO-ERROR.
  1480. IF AVAILABLE Aufko THEN
  1481. DO:
  1482. ASSIGN
  1483. bAufko.Samm_Nr = Aufko.Samm_Nr
  1484. bAufko.Faknr = Aufko.Faknr.
  1485. RELEASE bAufko.
  1486. LEAVE.
  1487. END.
  1488. RUN 'g-einlesen-datum.w' ( 'Eingabe Rücknahmedatum Rücknahmeschein',
  1489. 'Rücknahmedatum',
  1490. INPUT-OUTPUT dLief_Datum ) NO-ERROR.
  1491. IF dLief_Datum = ? THEN LEAVE.
  1492. iSamm_Nr = DYNAMIC-FUNCTION('createSammNr':U, Firma) NO-ERROR.
  1493. iAufnr = DYNAMIC-FUNCTION('createAufnr':U, Firma) NO-ERROR.
  1494. EMPTY TEMP-TABLE tAufko.
  1495. CREATE tAufko.
  1496. BUFFER-COPY bAufko TO tAufko.
  1497. ASSIGN
  1498. tAufko.Aufnr = iAufnr
  1499. tAufko.Auf_Datum = dLief_Datum
  1500. tAufko.Lief_Datum = dLief_Datum
  1501. tAufko.Fak_Art = bSteuer.Fwi22
  1502. tAufko.Auf_Sta = bSteuer.Fwi23
  1503. tAufko.Samm_Nr = iSamm_Nr.
  1504. CREATE Aufko.
  1505. BUFFER-COPY tAufko TO Aufko.
  1506. RELEASE Aufko.
  1507. bAufko.Samm_Nr = iSamm_Nr.
  1508. FOR EACH bAufze NO-LOCK
  1509. WHERE bAufze.Firma = ipFirma
  1510. AND bAufze.Aufnr = ipAufnr:
  1511. IF bAufze.Artnr > 0 THEN LEAVE.
  1512. FIND LAST Aufze NO-LOCK
  1513. WHERE Aufze.Firma = ipFirma
  1514. AND Aufze.Aufnr = iAufnr NO-ERROR.
  1515. IF NOT AVAILABLE Aufze THEN iPos = 5.
  1516. ELSE iPos = Aufze.Pos - (Aufze.Pos MOD 5) + 5.
  1517. CREATE Aufze.
  1518. BUFFER-COPY bAufze
  1519. EXCEPT Aufnr Pos
  1520. TO Aufze
  1521. ASSIGN
  1522. Aufze.Aufnr = iAufnr
  1523. Aufze.Pos = iPos.
  1524. RELEASE Aufze.
  1525. END.
  1526. DYNAMIC-FUNCTION('calculateAuftragsTotal':U, Firma, iAufnr, OUTPUT nTotale ) NO-ERROR.
  1527. LEAVE.
  1528. END.
  1529. EMPTY TEMP-TABLE tAufko.
  1530. RELEASE bAufko.
  1531. RELEASE Aufko.
  1532. RELEASE bSteuer.
  1533. END PROCEDURE.
  1534. /* _UIB-CODE-BLOCK-END */
  1535. &ANALYZE-RESUME
  1536. &ENDIF
  1537. &IF DEFINED(EXCLUDE-SETSAMMELNUMMER) = 0 &THEN
  1538. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SETSAMMELNUMMER Procedure
  1539. PROCEDURE SETSAMMELNUMMER :
  1540. /*------------------------------------------------------------------------------*/
  1541. /* Purpose: */
  1542. /* Parameters: <none> */
  1543. /* Notes: */
  1544. /*------------------------------------------------------------------------------*/
  1545. DEFINE INPUT PARAMETER ipRecid AS RECID NO-UNDO.
  1546. DEFINE VARIABLE iSammFakArt AS INTEGER NO-UNDO.
  1547. DEFINE VARIABLE iSammNr AS INTEGER NO-UNDO.
  1548. DEFINE VARIABLE iAufSta AS INTEGER NO-UNDO.
  1549. DEFINE BUFFER xAufko FOR Aufko.
  1550. REPEAT TRANSACTION:
  1551. FIND Aufko WHERE RECID(Aufko) = ipRecid NO-LOCK NO-ERROR.
  1552. IF NOT AVAILABLE Aufko THEN RETURN.
  1553. iSammFakArt = DYNAMIC-FUNCTION('GETFWSAMMFAKART':U) NO-ERROR.
  1554. iAufSta = Aufko.Auf_Sta.
  1555. iSammNr = 0.
  1556. IF iSammFakArt = 0 THEN
  1557. DO: /* Rechnung pro Fakturaadresse */
  1558. FIND FIRST xAufko NO-LOCK USE-INDEX Aufko-k6
  1559. WHERE xAufko.Firma = Aufko.Firma
  1560. AND xAufko.Fak_Knr = Aufko.Fak_Knr
  1561. AND xAufko.Fak_Art = Aufko.Fak_Art
  1562. AND xAufko.Auf_Sta = Aufko.Auf_Sta
  1563. AND xAufko.Mwst = Aufko.Mwst
  1564. AND xAufko.Frw = Aufko.Frw
  1565. AND xAufko.Aufnr <> Aufko.Aufnr
  1566. AND MONTH(xAufko.Lief_Datum) = MONTH(Aufko.Lief_Datum)
  1567. AND xAufko.Samm_Nr <> 0 NO-ERROR.
  1568. END.
  1569. IF iSammFakArt = 1 THEN
  1570. DO: /* Rechnung pro Lieferadresse */
  1571. FIND FIRST xAufko NO-LOCK USE-INDEX Aufko-k6
  1572. WHERE xAufko.Firma = Aufko.Firma
  1573. AND xAufko.Fak_Knr = Aufko.Fak_Knr
  1574. AND xAufko.Fak_Art = Aufko.Fak_Art
  1575. AND xAufko.Auf_Sta = Aufko.Auf_Sta
  1576. AND xAufko.Knr = Aufko.Knr
  1577. AND xAufko.Mwst = Aufko.Mwst
  1578. AND xAufko.Frw = Aufko.Frw
  1579. AND xAufko.Aufnr <> Aufko.Aufnr
  1580. AND MONTH(xAufko.Lief_Datum) = MONTH(Aufko.Lief_Datum)
  1581. AND xAufko.Samm_Nr <> 0 NO-ERROR.
  1582. END.
  1583. IF NOT AVAILABLE xAufko THEN
  1584. DO:
  1585. RUN NUMMER_LOESEN ( INPUT 5, OUTPUT iSammNr ).
  1586. IF iSammNr = ? THEN
  1587. DO:
  1588. RELEASE Aufko.
  1589. RETURN 'ERROR'.
  1590. END.
  1591. Aufko.Samm_Nr = iSammNr.
  1592. Aufko.Faknr = 0.
  1593. Aufko.Gedruckt = FALSE.
  1594. RELEASE xAufko.
  1595. RELEASE Aufko.
  1596. LEAVE.
  1597. END.
  1598. Aufko.Samm_Nr = xAufko.Samm_Nr.
  1599. Aufko.Faknr = xAufko.Faknr.
  1600. FOR EACH xAufko USE-INDEX Aufko-k5
  1601. WHERE xAufko.Firma = Aufko.Firma
  1602. AND xAufko.Fak_Art = Aufko.Fak_Art
  1603. AND xAufko.Samm_Nr = Aufko.Samm_Nr .
  1604. xAufko.Gedruckt = FALSE.
  1605. xAufko.Auf_Sta = iAufSta.
  1606. END.
  1607. RELEASE xAufko.
  1608. RELEASE Aufko.
  1609. LEAVE.
  1610. END.
  1611. END PROCEDURE.
  1612. /* _UIB-CODE-BLOCK-END */
  1613. &ANALYZE-RESUME
  1614. &ENDIF
  1615. &IF DEFINED(EXCLUDE-TAUFZE_TO_BUFFER) = 0 &THEN
  1616. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TAUFZE_TO_BUFFER Procedure
  1617. PROCEDURE TAUFZE_TO_BUFFER :
  1618. /*------------------------------------------------------------------------------*/
  1619. /* Purpose: */
  1620. /* Parameters: <none> */
  1621. /* Notes: */
  1622. /*------------------------------------------------------------------------------*/
  1623. DEFINE INPUT-OUTPUT PARAMETER ipBuffer AS HANDLE NO-UNDO.
  1624. DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
  1625. DEFINE VARIABLE hRAufze AS HANDLE NO-UNDO.
  1626. DEFINE VARIABLE hFAufze AS HANDLE NO-UNDO.
  1627. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  1628. DEFINE VARIABLE ex AS INTEGER NO-UNDO.
  1629. FIND FIRST tAufze.
  1630. IF NOT AVAILABLE tAufze THEN CREATE tAufze.
  1631. hRAufze = BUFFER tAufze:HANDLE NO-ERROR.
  1632. ipBuffer:BUFFER-COPY(hRAufze).
  1633. END PROCEDURE.
  1634. /* _UIB-CODE-BLOCK-END */
  1635. &ANALYZE-RESUME
  1636. &ENDIF
  1637. &IF DEFINED(EXCLUDE-WEITER) = 0 &THEN
  1638. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WEITER Procedure
  1639. PROCEDURE WEITER :
  1640. /*------------------------------------------------------------------------------*/
  1641. /* Purpose: */
  1642. /* Parameters: <none> */
  1643. /* Notes: */
  1644. /*------------------------------------------------------------------------------*/
  1645. DEFINE INPUT PARAMETER ipAufnr AS INTEGER NO-UNDO.
  1646. DEFINE VARIABLE AltSammFak AS LOG NO-UNDO.
  1647. DEFINE VARIABLE NeuSammFak AS LOG NO-UNDO.
  1648. DEFINE VARIABLE AltFakArt AS INTEGER NO-UNDO.
  1649. DEFINE VARIABLE iSammNr AS INTEGER NO-UNDO.
  1650. DEFINE VARIABLE lAltFest AS LOG NO-UNDO.
  1651. DEFINE VARIABLE lNeuFest AS LOG NO-UNDO.
  1652. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  1653. DEFINE BUFFER xAufko FOR Aufko.
  1654. STATUSAENDERUNG:
  1655. REPEAT TRANSACTION:
  1656. FIND Aufko EXCLUSIVE-LOCK USE-INDEX Aufko-k1
  1657. WHERE Aufko.Firma = Firma
  1658. AND Aufko.Aufnr = ipAufnr NO-WAIT NO-ERROR.
  1659. IF NOT AVAILABLE Aufko THEN
  1660. DO:
  1661. RELEASE Aufko.
  1662. RETURN 'Fehler'.
  1663. END.
  1664. IF Aufko.AlsOfferte THEN
  1665. DO:
  1666. RELEASE Aufko.
  1667. MESSAGE 'Auftrag ist Offerte! WEITER geht hier nicht! '
  1668. VIEW-AS ALERT-BOX INFORMATION.
  1669. RETURN 'Fehler'.
  1670. END.
  1671. ASSIGN
  1672. iRecid = RECID(Aufko)
  1673. Firma = Aufko.Firma.
  1674. FIND FIRST tVerlauf NO-LOCK USE-INDEX tVerlauf-k1
  1675. WHERE tVerlauf.FakArt = Aufko.Fak_Art
  1676. AND tVerlauf.AufSta = Aufko.Auf_Sta NO-ERROR.
  1677. IF NOT AVAILABLE tVerlauf THEN
  1678. DO:
  1679. RELEASE Aufko.
  1680. RETURN 'ERROR'.
  1681. END.
  1682. IF Aufko.Fak_Art = tVerlauf.wFakArt AND
  1683. Aufko.Auf_Sta = tVerlauf.wAufSta THEN
  1684. DO:
  1685. RELEASE Aufko.
  1686. RETURN ''.
  1687. END.
  1688. FIND Tabel NO-LOCK USE-INDEX Tabel-k1
  1689. WHERE Tabel.Firma = Firma
  1690. AND Tabel.RecArt = 'FAKART'
  1691. AND Tabel.CodeC = ''
  1692. AND Tabel.CodeI = Aufko.Fak_Art
  1693. AND Tabel.Sprcd = 1 NO-ERROR.
  1694. IF Tabel.Int_3 = 4 THEN AltSammFak = TRUE.
  1695. ELSE AltSammFak = FALSE.
  1696. ASSIGN
  1697. AltFakArt = Aufko.Fak_Art
  1698. lAltFest = Tabel.Flag_1
  1699. Aufko.Fak_Art = tVerlauf.wFakArt
  1700. Aufko.Auf_Sta = tVerlauf.wAufSta
  1701. Aufko.Gedruckt = (IF tVerlauf.wDruck = TRUE THEN FALSE ELSE Aufko.Gedruckt).
  1702. IF AltFakArt <> Aufko.Fak_Art THEN
  1703. DO:
  1704. FIND Tabel NO-LOCK USE-INDEX Tabel-k1
  1705. WHERE Tabel.Firma = Firma
  1706. AND Tabel.RecArt = 'FAKART'
  1707. AND Tabel.CodeC = ''
  1708. AND Tabel.CodeI = Aufko.Fak_Art
  1709. AND Tabel.Sprcd = 1 NO-ERROR.
  1710. END.
  1711. IF Tabel.Int_3 = 4 THEN NeuSammFak = TRUE.
  1712. ELSE NeuSammFak = FALSE.
  1713. lNeuFest = Tabel.Flag_1.
  1714. DO WHILE TRUE:
  1715. IF lAltFest OR
  1716. lNeuFest THEN
  1717. DO:
  1718. RELEASE Aufko.
  1719. RUN PROCESSFESTAUFTRAG ( Firma, ipAufnr, lAltFest, lNeuFest ) NO-ERROR.
  1720. FIND Aufko NO-LOCK WHERE RECID(Aufko) = iRecid.
  1721. IF NeuSammFak AND
  1722. NOT AltSammFak AND
  1723. Aufko.Samm_Nr = 0 THEN
  1724. DO:
  1725. FIND FIRST xAufko NO-LOCK
  1726. WHERE xAufko.Firma = Aufko.Firma
  1727. AND xAufko.Fak_Art = Aufko.Fak_Art
  1728. AND xAufko.Samm_Nr > 0
  1729. AND xAufko.Aufnr <> Aufko.Aufnr NO-ERROR.
  1730. IF AVAILABLE xAufko THEN
  1731. DO:
  1732. FIND Aufko WHERE RECID(Aufko) = iRecid.
  1733. ASSIGN
  1734. Aufko.Samm_Nr = xAufko.Samm_Nr.
  1735. RELEASE Aufko.
  1736. END.
  1737. FIND Aufko NO-LOCK WHERE RECID(Aufko) = iRecid.
  1738. END.
  1739. IF NeuSammFak AND
  1740. tVerlauf.wDruck THEN
  1741. DO:
  1742. FOR EACH xAufko
  1743. WHERE xAufko.Firma = Aufko.Firma
  1744. AND xAufko.Fak_Art = Aufko.Fak_Art
  1745. AND xAufko.Samm_Nr = Aufko.Samm_Nr
  1746. AND xAufko.Aufnr <> Aufko.Aufnr:
  1747. ASSIGN
  1748. xAufko.Gedruckt = FALSE.
  1749. END.
  1750. END.
  1751. LEAVE.
  1752. END.
  1753. IF NOT AltSammFak AND
  1754. NOT NeuSammFak THEN LEAVE.
  1755. IF AltSammFak AND
  1756. NOT NeuSammFak THEN
  1757. DO:
  1758. ASSIGN
  1759. Aufko.Samm_Nr = 0
  1760. Aufko.Faknr = 0.
  1761. LEAVE.
  1762. END.
  1763. IF AltSammFak AND
  1764. NeuSammFak THEN
  1765. DO:
  1766. FOR EACH xAufko USE-INDEX Aufko-k5
  1767. WHERE xAufko.Firma = Aufko.Firma
  1768. AND xAufko.Fak_Art = AltFakArt
  1769. AND xAufko.Samm_Nr = Aufko.Samm_Nr :
  1770. ASSIGN
  1771. xAufko.Gedruckt = FALSE
  1772. xAufko.Fak_Art = Aufko.Fak_Art
  1773. xAufko.Auf_Sta = Aufko.Auf_Sta.
  1774. END.
  1775. LEAVE.
  1776. END.
  1777. RUN SETSAMMELNUMMER ( INPUT RECID(Aufko) ).
  1778. IF RETURN-VALUE = 'ERROR' THEN
  1779. DO:
  1780. UNDO STATUSAENDERUNG, RETURN 'ERROR'.
  1781. END.
  1782. LEAVE.
  1783. END.
  1784. RELEASE xAufko.
  1785. RELEASE Aufko.
  1786. LEAVE.
  1787. END.
  1788. RETURN ''.
  1789. END PROCEDURE.
  1790. /* _UIB-CODE-BLOCK-END */
  1791. &ANALYZE-RESUME
  1792. &ENDIF
  1793. &IF DEFINED(EXCLUDE-ZEILEN_BETRAEGE) = 0 &THEN
  1794. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ZEILEN_BETRAEGE Procedure
  1795. PROCEDURE ZEILEN_BETRAEGE :
  1796. /*------------------------------------------------------------------------------*/
  1797. /* Purpose: */
  1798. /* Parameters: <none> */
  1799. /* Notes: */
  1800. /*------------------------------------------------------------------------------*/
  1801. DEFINE VARIABLE Rundbetr AS DECIMAL DECIMALS 4 NO-UNDO.
  1802. FIND FIRST tAufze.
  1803. FIND FIRST Wust NO-LOCK USE-INDEX Wust-k2
  1804. WHERE Wust.Wucd = tAufze.Wucd
  1805. AND Wust.CodeA = tAufze.WC
  1806. AND Wust.CodeK < 12 .
  1807. DO WHILE TRUE:
  1808. IF tAufze.Rab_Art = 1 THEN
  1809. DO:
  1810. tAufze.Bru_Betr = tAufze.Preis * tAufze.MGeli.
  1811. tAufze.Rab_Betr = tAufze.Preis * tAufze.Rab_Wert / 100 * tAufze.MGel.
  1812. LEAVE.
  1813. END.
  1814. IF tAufze.Rab_Art = 2 THEN
  1815. DO:
  1816. tAufze.Bru_Betr = tAufze.Preis * tAufze.MGeli.
  1817. tAufze.Rab_Betr = tAufze.Rab_Wert * tAufze.MGeli.
  1818. LEAVE.
  1819. END.
  1820. IF tAufze.Rab_Art = 3 THEN
  1821. DO:
  1822. tAufze.Bru_Betr = tAufze.Preis * tAufze.MGeli.
  1823. tAufze.Rab_Betr = tAufze.Preis * tAufze.Rab_Wert / 100 * tAufze.MGeli * -1.
  1824. LEAVE.
  1825. END.
  1826. tAufze.Bru_Betr = tAufze.Preis * tAufze.MGeli.
  1827. tAufze.Rab_Betr = 0.
  1828. tAufze.Rab_Art = 0.
  1829. LEAVE.
  1830. END.
  1831. IF Wust.Incl THEN
  1832. DO:
  1833. Rundbetr = tAufze.Rab_Betr.
  1834. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
  1835. tAufze.Rab_Betr = Rundbetr.
  1836. END.
  1837. DO WHILE TRUE:
  1838. IF tAufze.Zus_Art = 1 THEN
  1839. DO:
  1840. tAufze.Zus_Betr = tAufze.Preis * tAufze.Zus_Wert / 100 * tAufze.MGel.
  1841. LEAVE.
  1842. END.
  1843. IF tAufze.Zus_Art = 2 THEN
  1844. DO:
  1845. tAufze.Zus_Betr = tAufze.Zus_Wert * tAufze.MGeli.
  1846. LEAVE.
  1847. END.
  1848. tAufze.Zus_Betr = 0.
  1849. tAufze.Zus_Wert = 0.
  1850. tAufze.Zus_Art = 0.
  1851. LEAVE.
  1852. END.
  1853. IF Wust.Incl THEN
  1854. DO:
  1855. Rundbetr = tAufze.Zus_Betr.
  1856. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
  1857. tAufze.Zus_Betr = Rundbetr.
  1858. END.
  1859. tAufze.Net_Betr = tAufze.Bru_Betr - tAufze.Rab_Betr + tAufze.Zus_Betr.
  1860. IF Wust.Incl THEN
  1861. DO:
  1862. Rundbetr = tAufze.Net_Betr.
  1863. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
  1864. tAufze.Net_Betr = Rundbetr.
  1865. END.
  1866. RELEASE Wust.
  1867. END PROCEDURE.
  1868. /* _UIB-CODE-BLOCK-END */
  1869. &ANALYZE-RESUME
  1870. &ENDIF
  1871. &IF DEFINED(EXCLUDE-ZURUECK) = 0 &THEN
  1872. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ZURUECK Procedure
  1873. PROCEDURE ZURUECK :
  1874. /*------------------------------------------------------------------------------*/
  1875. /* Purpose: */
  1876. /* Parameters: <none> */
  1877. /* Notes: */
  1878. /*------------------------------------------------------------------------------*/
  1879. DEFINE INPUT PARAMETER ipAufnr AS INTEGER NO-UNDO.
  1880. DEFINE VARIABLE AltSammFak AS LOG NO-UNDO.
  1881. DEFINE VARIABLE NeuSammFak AS LOG NO-UNDO.
  1882. DEFINE VARIABLE AltFakArt AS INTEGER NO-UNDO.
  1883. DEFINE VARIABLE iSammNr AS INTEGER NO-UNDO.
  1884. DEFINE VARIABLE lAltFest AS LOG NO-UNDO.
  1885. DEFINE VARIABLE lNeuFest AS LOG NO-UNDO.
  1886. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  1887. DEFINE BUFFER xAufko FOR Aufko.
  1888. DEFINE BUFFER bDebst FOR Debst.
  1889. STATUSAENDERUNG:
  1890. REPEAT TRANSACTION:
  1891. FIND Aufko USE-INDEX Aufko-k1
  1892. WHERE Aufko.Firma = Firma
  1893. AND Aufko.Aufnr = ipAufnr NO-ERROR.
  1894. IF NOT AVAILABLE Aufko THEN
  1895. DO:
  1896. RELEASE Aufko.
  1897. RETURN 'Fehler'.
  1898. END.
  1899. IF Aufko.AlsOfferte THEN
  1900. DO:
  1901. RELEASE Aufko.
  1902. MESSAGE 'Auftrag ist Offerte! ZURÜCK geht hier nicht! '
  1903. VIEW-AS ALERT-BOX INFORMATION.
  1904. RETURN 'Fehler'.
  1905. END.
  1906. ASSIGN
  1907. iRecid = RECID(Aufko)
  1908. Firma = Aufko.Firma.
  1909. FIND FIRST tVerlauf NO-LOCK USE-INDEX tVerlauf-k1
  1910. WHERE tVerlauf.FakArt = Aufko.Fak_Art
  1911. AND tVerlauf.AufSta = Aufko.Auf_Sta NO-ERROR.
  1912. IF NOT AVAILABLE tVerlauf THEN
  1913. DO:
  1914. RELEASE Aufko.
  1915. RETURN 'ERROR'.
  1916. END.
  1917. IF Aufko.Fak_Art = tVerlauf.zFakArt AND
  1918. Aufko.Auf_Sta = tVerlauf.zAufSta THEN
  1919. DO:
  1920. RELEASE Aufko.
  1921. RETURN ''.
  1922. END.
  1923. FIND Tabel NO-LOCK USE-INDEX Tabel-k1
  1924. WHERE Tabel.Firma = Firma
  1925. AND Tabel.RecArt = 'FAKART'
  1926. AND Tabel.CodeC = ''
  1927. AND Tabel.CodeI = Aufko.Fak_Art
  1928. AND Tabel.Sprcd = 1 NO-ERROR.
  1929. IF Tabel.Int_3 = 4 THEN AltSammFak = TRUE.
  1930. ELSE AltSammFak = FALSE.
  1931. ASSIGN
  1932. AltFakArt = Aufko.Fak_Art
  1933. lAltFest = Tabel.Flag_1
  1934. Aufko.Fak_Art = tVerlauf.zFakArt
  1935. Aufko.Auf_Sta = tVerlauf.zAufSta
  1936. Aufko.Gedruckt = (IF tVerlauf.zDruck = TRUE THEN FALSE ELSE Aufko.Gedruckt).
  1937. IF AltFakArt <> Aufko.Fak_Art THEN
  1938. DO:
  1939. FIND Tabel NO-LOCK USE-INDEX Tabel-k1
  1940. WHERE Tabel.Firma = Firma
  1941. AND Tabel.RecArt = 'FAKART'
  1942. AND Tabel.CodeC = ''
  1943. AND Tabel.CodeI = Aufko.Fak_Art
  1944. AND Tabel.Sprcd = 1 NO-ERROR.
  1945. END.
  1946. IF Tabel.Int_3 = 4 THEN NeuSammFak = TRUE.
  1947. ELSE NeuSammFak = FALSE.
  1948. lNeuFest = Tabel.Flag_1.
  1949. DO WHILE TRUE:
  1950. IF lAltFest OR
  1951. lNeuFest THEN
  1952. DO:
  1953. RELEASE Aufko.
  1954. RUN PROCESSFESTAUFTRAG ( Firma, ipAufnr, lAltFest, lNeuFest ) NO-ERROR.
  1955. FIND Aufko NO-LOCK WHERE RECID(Aufko) = iRecid.
  1956. IF NeuSammFak AND
  1957. tVerlauf.zDruck THEN
  1958. DO:
  1959. FOR EACH xAufko
  1960. WHERE xAufko.Firma = Aufko.Firma
  1961. AND xAufko.Fak_Art = AltFakArt
  1962. AND xAufko.Samm_Nr = Aufko.Samm_Nr
  1963. AND xAufko.Aufnr <> Aufko.Aufnr:
  1964. ASSIGN
  1965. xAufko.Gedruckt = FALSE
  1966. xAufko.Fak_Art = Aufko.Fak_Art
  1967. xAufko.Auf_Sta = Aufko.Auf_Sta.
  1968. END.
  1969. END.
  1970. LEAVE.
  1971. END.
  1972. IF NOT AltSammFak AND
  1973. NOT NeuSammFak THEN LEAVE.
  1974. IF AltSammFak AND
  1975. NOT NeuSammFak THEN
  1976. DO:
  1977. ASSIGN
  1978. Aufko.Samm_Nr = 0
  1979. Aufko.Faknr = 0.
  1980. FIND bDebst NO-LOCK
  1981. WHERE bDebst.Firma = Aufko.Firma
  1982. AND bDebst.Knr = Aufko.Knr NO-ERROR.
  1983. Aufko.Fak_Art = bDebst.Fak_Art.
  1984. LEAVE.
  1985. END.
  1986. IF AltSammFak AND
  1987. NeuSammFak THEN
  1988. DO:
  1989. FOR EACH xAufko USE-INDEX Aufko-k5
  1990. WHERE xAufko.Firma = Aufko.Firma
  1991. AND xAufko.Fak_Art = AltFakArt
  1992. AND xAufko.Samm_Nr = Aufko.Samm_Nr
  1993. AND xAufko.Aufnr <> Aufko.Aufnr :
  1994. ASSIGN
  1995. xAufko.Gedruckt = Aufko.Gedruckt
  1996. xAufko.Fak_Art = Aufko.Fak_Art
  1997. xAufko.Auf_Sta = Aufko.Auf_Sta.
  1998. END.
  1999. LEAVE.
  2000. END.
  2001. RUN SETSAMMELNUMMER ( INPUT RECID(Aufko) ).
  2002. IF RETURN-VALUE = 'ERROR' THEN
  2003. DO:
  2004. UNDO STATUSAENDERUNG, RETURN 'ERROR'.
  2005. END.
  2006. LEAVE.
  2007. END.
  2008. RELEASE Tabel.
  2009. RELEASE xAufko.
  2010. RELEASE Aufko.
  2011. LEAVE.
  2012. END.
  2013. RETURN ''.
  2014. END PROCEDURE.
  2015. /* _UIB-CODE-BLOCK-END */
  2016. &ANALYZE-RESUME
  2017. &ENDIF
  2018. /* ************************ Function Implementations ***************** */
  2019. &IF DEFINED(EXCLUDE-buchenArtikel) = 0 &THEN
  2020. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION buchenArtikel Procedure
  2021. FUNCTION buchenArtikel RETURNS LOGICAL
  2022. ( ipKnr AS INTEGER, ipBuffer AS HANDLE ) :
  2023. /*------------------------------------------------------------------------------*/
  2024. /* Purpose: */
  2025. /* Notes: */
  2026. /*------------------------------------------------------------------------------*/
  2027. DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
  2028. DEFINE VARIABLE MWSt_Cd AS INTEGER NO-UNDO.
  2029. DEFINE VARIABLE VBetr AS DECIMAL DECIMALS 4 NO-UNDO.
  2030. DEFINE VARIABLE VAufRab AS DECIMAL DECIMALS 4 NO-UNDO.
  2031. DEFINE VARIABLE VAbhRab AS DECIMAL DECIMALS 4 NO-UNDO.
  2032. DEFINE VARIABLE VSpeRab AS DECIMAL DECIMALS 4 NO-UNDO.
  2033. DEFINE VARIABLE VGeli AS DECIMAL DECIMALS 4 NO-UNDO.
  2034. DEFINE VARIABLE VNetto AS DECIMAL DECIMALS 4 NO-UNDO.
  2035. DEFINE VARIABLE VLiter AS DECIMAL DECIMALS 4 NO-UNDO.
  2036. DEFINE VARIABLE VEp AS DECIMAL DECIMALS 4 NO-UNDO.
  2037. DEFINE VARIABLE xFirma AS CHARACTER NO-UNDO.
  2038. DEFINE VARIABLE Aufnr AS INTEGER NO-UNDO.
  2039. DEFINE VARIABLE Artnr AS INTEGER NO-UNDO.
  2040. DEFINE VARIABLE Inhalt AS INTEGER NO-UNDO.
  2041. DEFINE VARIABLE Jahr AS INTEGER NO-UNDO.
  2042. DEFINE VARIABLE Trnr AS INTEGER NO-UNDO.
  2043. DEFINE VARIABLE Datum AS DATE NO-UNDO.
  2044. DEFINE VARIABLE JJ AS INTEGER NO-UNDO.
  2045. DEFINE VARIABLE MM AS INTEGER NO-UNDO.
  2046. DEFINE VARIABLE nKurs AS DECIMAL DECIMALS 4 NO-UNDO.
  2047. ASSIGN
  2048. hFeld = ipBuffer:BUFFER-FIELD('WuCd')
  2049. Mwst_Cd = hFeld:BUFFER-VALUE(0)
  2050. hFeld = ipBuffer:BUFFER-FIELD('Firma')
  2051. xFirma = hFeld:BUFFER-VALUE(0)
  2052. hFeld = ipBuffer:BUFFER-FIELD('Aufnr')
  2053. Aufnr = hFeld:BUFFER-VALUE(0)
  2054. hFeld = ipBuffer:BUFFER-FIELD('Artnr')
  2055. Artnr = hFeld:BUFFER-VALUE(0)
  2056. hFeld = ipBuffer:BUFFER-FIELD('Inhalt')
  2057. Inhalt = hFeld:BUFFER-VALUE(0)
  2058. hFeld = ipBuffer:BUFFER-FIELD('Jahr')
  2059. Jahr = hFeld:BUFFER-VALUE(0)
  2060. hFeld = ipBuffer:BUFFER-FIELD('Net_Betr')
  2061. VBetr = hFeld:BUFFER-VALUE(0)
  2062. hFeld = ipBuffer:BUFFER-FIELD('MGeli')
  2063. VGeli = hFeld:BUFFER-VALUE(0)
  2064. hFeld = ipBuffer:BUFFER-FIELD('Auf_Rab')
  2065. VAufRab = hFeld:BUFFER-VALUE(0)
  2066. hFeld = ipBuffer:BUFFER-FIELD('Abh_Rab')
  2067. VAbhRab = hFeld:BUFFER-VALUE(0)
  2068. hFeld = ipBuffer:BUFFER-FIELD('Auf_Sp_Rab')
  2069. VSpeRab = hFeld:BUFFER-VALUE(0)
  2070. hFeld = ipBuffer:BUFFER-FIELD('Liter')
  2071. VLiter = hFeld:BUFFER-VALUE(0)
  2072. hFeld = ipBuffer:BUFFER-FIELD('Ep')
  2073. VEp = hFeld:BUFFER-VALUE(0)
  2074. hFeld = ipBuffer:BUFFER-FIELD('Trnr')
  2075. Trnr = hFeld:BUFFER-VALUE(0)
  2076. hFeld = ipBuffer:BUFFER-FIELD('Kurs')
  2077. nKurs = hFeld:BUFFER-VALUE(0)
  2078. .
  2079. IF nKurs = ? OR
  2080. nKurs = 0 THEN nKurs = 1.00.
  2081. FIND Artbw NO-LOCK USE-INDEX Artbw-k1
  2082. WHERE Artbw.Firma = Firma
  2083. AND Artbw.Trnr = Trnr NO-ERROR.
  2084. IF NOT AVAILABLE Artbw THEN RETURN FALSE.
  2085. Datum = Artbw.Fak_Dat.
  2086. JJ = YEAR (Datum).
  2087. MM = MONTH(Datum).
  2088. FIND FIRST Wust USE-INDEX Wust-k2
  2089. WHERE Wust.WuCd = Mwst_Cd NO-LOCK NO-ERROR.
  2090. FIND LAST MWSTAns USE-INDEX MWSTAns-k1
  2091. WHERE MWSTAns.MWST_Cd = Mwst_Cd
  2092. AND MWSTAns.Datum <= Datum NO-LOCK NO-ERROR.
  2093. VNetto = VBetr - VAufRab - VAbhRab - VSpeRab.
  2094. IF Wust.Incl THEN VNetto = VNetto * 100 / (100 + MWSTAns.Ansatz).
  2095. VEp = VEp * VGeli.
  2096. FIND DebUms USE-INDEX DebUms-k1
  2097. WHERE DebUms.Firma = xFirma
  2098. AND DebUms.Jahr = JJ
  2099. AND DebUms.Knr = ipKnr
  2100. AND DebUms.Ums_Grp = 999 NO-ERROR.
  2101. IF NOT AVAILABLE DebUms THEN
  2102. DO:
  2103. CREATE DebUms.
  2104. ASSIGN
  2105. DebUms.Firma = xFirma
  2106. DebUms.Jahr = JJ
  2107. DebUms.Knr = ipKnr
  2108. DebUms.Ums_Grp = 999.
  2109. END.
  2110. ASSIGN
  2111. DebUms.Me_Mon[MM] = DebUms.Me_Mon[MM] + VGeli
  2112. DebUms.Me_Kum = DebUms.Me_Kum + VGeli
  2113. DebUms.Ep_Mon[MM] = DebUms.Ep_Mon[MM] + VEp
  2114. DebUms.Ep_Kum = DebUms.Ep_Kum + VEp
  2115. DebUms.Vp_Mon[MM] = DebUms.Vp_Mon[MM] + VNetto * nKurs
  2116. DebUms.Vp_Kum = DebUms.Vp_Kum + VNetto * nKurs
  2117. .
  2118. RELEASE DebUms.
  2119. FIND ArtUms USE-INDEX ArtUms-k1
  2120. WHERE ArtUms.Firma = xFirma
  2121. AND ArtUms.Jahr = JJ
  2122. AND ArtUms.Artnr = Artnr
  2123. AND ArtUms.Inhalt = Inhalt
  2124. AND ArtUms.Jahrg = Jahr NO-ERROR.
  2125. IF NOT AVAILABLE ArtUms THEN
  2126. DO:
  2127. CREATE ArtUms.
  2128. ASSIGN
  2129. ArtUms.Firma = xFirma
  2130. ArtUms.Jahr = JJ
  2131. ArtUms.Artnr = Artnr
  2132. ArtUms.Inhalt = Inhalt
  2133. ArtUms.Jahrg = Jahr.
  2134. END.
  2135. ASSIGN
  2136. ArtUms.Me_Mon[MM] = ArtUms.Me_Mon[MM] + VGeli
  2137. ArtUms.Me_Kum = ArtUms.Me_Kum + VGeli
  2138. ArtUms.Ep_Mon[MM] = ArtUms.Ep_Mon[MM] + VEp
  2139. ArtUms.Ep_Kum = ArtUms.Ep_Kum + VEp
  2140. ArtUms.Li_Mon[MM] = ArtUms.Li_Mon[MM] + VLiter
  2141. ArtUms.Li_Kum = ArtUms.Li_Kum + VLiter
  2142. ArtUms.Vp_Mon[MM] = ArtUms.Vp_Mon[MM] + VNetto * nKurs
  2143. ArtUms.Vp_Kum = ArtUms.Vp_Kum + VNetto * nKurs
  2144. .
  2145. RELEASE ArtUms.
  2146. FIND DeArUms USE-INDEX DeArUms-k1
  2147. WHERE DeArUms.Firma = xFirma
  2148. AND DeArUms.Jahr = JJ
  2149. AND DeArUms.Knr = ipKnr
  2150. AND DeArUms.Artnr = Artnr
  2151. AND DeArUms.Inhalt = Inhalt
  2152. AND DeArUms.Jahrg = Jahr NO-ERROR.
  2153. IF NOT AVAILABLE DeArUms THEN
  2154. DO:
  2155. CREATE DeArUms.
  2156. ASSIGN
  2157. DeArUms.Firma = xFirma
  2158. DeArUms.Jahr = JJ
  2159. DeArUms.Knr = ipKnr
  2160. DeArUms.Artnr = Artnr
  2161. DeArUms.Inhalt = Inhalt
  2162. DeArUms.Jahrg = Jahr.
  2163. END.
  2164. ASSIGN
  2165. DeArUms.Me_Mon[MM] = DeArUms.Me_Mon[MM] + VGeli
  2166. DeArUms.Me_Kum = DeArUms.Me_Kum + VGeli
  2167. DeArUms.Ep_Mon[MM] = DeArUms.Ep_Mon[MM] + VEp
  2168. DeArUms.Ep_Kum = DeArUms.Ep_Kum + VEp
  2169. DeArUms.Li_Mon[MM] = DeArUms.Li_Mon[MM] + VLiter
  2170. DeArUms.Li_Kum = DeArUms.Li_Kum + VLiter
  2171. DeArUms.Vp_Mon[MM] = DeArUms.Vp_Mon[MM] + VNetto * nKurs
  2172. DeArUms.Vp_Kum = DeArUms.Vp_Kum + VNetto * nKurs
  2173. .
  2174. RELEASE DeArUms.
  2175. FIND Umsatz
  2176. WHERE Umsatz.Firma = xFirma
  2177. AND Umsatz.Ums_Art = 'TOTAL'
  2178. AND Umsatz.Jahr = JJ
  2179. AND Umsatz.Grp_01 = 0 NO-ERROR.
  2180. IF NOT AVAILABLE Umsatz THEN
  2181. DO:
  2182. CREATE Umsatz.
  2183. ASSIGN
  2184. Umsatz.Firma = xFirma
  2185. Umsatz.Ums_Art = 'TOTAL'
  2186. Umsatz.Jahr = JJ
  2187. Umsatz.Grp_01 = 0.
  2188. END.
  2189. ASSIGN
  2190. Umsatz.VP_Mon[MM] = Umsatz.Vp_Mon[MM] + (VNetto * nKurs)
  2191. Umsatz.VP_Kum = Umsatz.Vp_Kum + (VNetto * nKurs)
  2192. Umsatz.EP_Mon[MM] = Umsatz.EP_Mon[MM] + VEp
  2193. Umsatz.EP_Kum = Umsatz.EP_Kum + VEp
  2194. .
  2195. RELEASE Umsatz.
  2196. RETURN TRUE.
  2197. END FUNCTION.
  2198. /* _UIB-CODE-BLOCK-END */
  2199. &ANALYZE-RESUME
  2200. &ENDIF
  2201. &IF DEFINED(EXCLUDE-calculateAuftragsTotal) = 0 &THEN
  2202. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION calculateAuftragsTotal Procedure
  2203. FUNCTION calculateAuftragsTotal RETURNS CHARACTER
  2204. ( ipcFirma AS CHARACTER, ipiAufnr AS INTEGER, OUTPUT opnTotal AS DECIMAL EXTENT 15 ) :
  2205. /*------------------------------------------------------------------------------*/
  2206. /* Purpose: */
  2207. /* Notes: */
  2208. /*------------------------------------------------------------------------------*/
  2209. DEFINE VARIABLE lJa AS LOG NO-UNDO.
  2210. DEFINE VARIABLE VWpfl AS DECIMAL DECIMALS 4 EXTENT 12 NO-UNDO.
  2211. DEFINE VARIABLE VWust AS DECIMAL DECIMALS 4 EXTENT 12 NO-UNDO.
  2212. DEFINE VARIABLE NWpfl AS DECIMAL DECIMALS 4 EXTENT 12 NO-UNDO.
  2213. DEFINE VARIABLE TWpfl AS DECIMAL DECIMALS 4 EXTENT 12 NO-UNDO.
  2214. DEFINE VARIABLE VFakt AS INTEGER EXTENT 12 NO-UNDO.
  2215. DEFINE VARIABLE NFakt AS INTEGER NO-UNDO.
  2216. DEFINE VARIABLE VTotWu AS DECIMAL DECIMALS 4 NO-UNDO.
  2217. DEFINE VARIABLE VTotNK AS DECIMAL DECIMALS 4 NO-UNDO.
  2218. DEFINE VARIABLE VResNK AS DECIMAL DECIMALS 4 NO-UNDO.
  2219. DEFINE VARIABLE VMaxWC AS INTEGER NO-UNDO.
  2220. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  2221. DEFINE VARIABLE VGewicht AS DECIMAL DECIMALS 4 NO-UNDO.
  2222. DEFINE VARIABLE zz AS INTEGER NO-UNDO.
  2223. DEFINE VARIABLE Wert AS DECIMAL DECIMALS 4 NO-UNDO.
  2224. DEFINE VARIABLE VSkonto AS DECIMAL INIT 0 NO-UNDO.
  2225. DEFINE VARIABLE Rundbetr AS DECIMAL DECIMALS 4 NO-UNDO.
  2226. DEFINE VARIABLE nMenge AS DECIMAL NO-UNDO.
  2227. DEFINE VARIABLE cResult AS CHARACTER NO-UNDO.
  2228. DEFINE VARIABLE dMwstDat AS DATE NO-UNDO.
  2229. DEFINE VARIABLE nKredLimite AS DECIMAL INIT 0.00 NO-UNDO.
  2230. DEFINE VARIABLE nAufTotal AS DECIMAL INIT 0.00 NO-UNDO.
  2231. DEFINE VARIABLE htAufze AS HANDLE NO-UNDO.
  2232. DEFINE VARIABLE cMessage AS CHARACTER NO-UNDO.
  2233. DEFINE BUFFER bAufze FOR Aufze.
  2234. DEFINE BUFFER FDebst FOR Debst.
  2235. /* ------------------------------------------------------------------------- */
  2236. /* opnTotal[01] = Nettowarenwert */
  2237. /* opnTotal[02] = Skontoberechtigter Betrag */
  2238. /* opnTotal[03] = Nebenkosten */
  2239. /* opnTotal[04] = Transport */
  2240. /* opnTotal[05] = Porto */
  2241. /* opnTotal[06] = Verpackung */
  2242. /* opnTotal[07] = Total Mehrwertsteuerpflichtig */
  2243. /* opnTotal[08] = Total Mehrwertsteuerfrei */
  2244. /* opnTotal[09] = Total Mehrwertsteuer */
  2245. /* opnTotal[10] = Total Auftrag */
  2246. /* opnTotal[11] = Total Gebinde */
  2247. /* opnTotal[12] = Total Gebühren (Receycling) */
  2248. /* ------------------------------------------------------------------------- */
  2249. REPEAT TRANSACTION:
  2250. opnTotal = 0.
  2251. VWpfl = 0.
  2252. VWust = 0.
  2253. VTotWu = 0.
  2254. VTotNK = 0.
  2255. NWpfl = 0. /* Anteil Nebenkosten */
  2256. TWpfl = 0. /* Wpfl + Nebenkosten */
  2257. VGewicht = 0.
  2258. DISABLE TRIGGERS FOR LOAD OF Aufko.
  2259. FIND Steuer NO-LOCK USE-INDEX Steuer-k1
  2260. WHERE Steuer.Firma = ipcFirma.
  2261. FIND Aufko EXCLUSIVE-LOCK
  2262. WHERE Aufko.Firma = ipcFirma
  2263. AND Aufko.Aufnr = ipiAufnr NO-WAIT NO-ERROR.
  2264. IF LOCKED Aufko THEN RETURN 'LOCKED'.
  2265. IF NOT AVAILABLE Aufko THEN RETURN 'FEHLEND'.
  2266. iRecid = RECID(Aufko).
  2267. dMwstDat = (IF Aufko.Lief_Datum <> ? THEN Aufko.Lief_Datum ELSE Aufko.Fak_Datum).
  2268. IF dMwstDat = ? THEN dMwstDat = Aufko.Kond_Datum.
  2269. IF dMwstDat = ? THEN dMwstDat = TODAY.
  2270. FIND FDebst NO-LOCK
  2271. WHERE FDebst.Firma = Aufko.Firma
  2272. AND FDebst.Knr = Aufko.Fak_Knr.
  2273. nKredLimite = FDebst.Kred_Lim.
  2274. nAufTotal = FDebst.Saldo.
  2275. RUN GEBINDE_AUSGANG_RECHNEN ( ipcFirma, ipiAufnr, FDebst.Geb_Rg ).
  2276. RELEASE AufGKon.
  2277. ASSIGN
  2278. Aufko.Wpfl = 0
  2279. Aufko.Wust = 0
  2280. Aufko.WW = 0
  2281. Aufko.Sk_Ber = 0.
  2282. opnTotal[04] = Aufko.Transp.
  2283. opnTotal[05] = Aufko.Porto.
  2284. opnTotal[06] = Aufko.Verpack.
  2285. opnTotal[03] = opnTotal[04] + opnTotal[05] + opnTotal[06].
  2286. FIND Wust USE-INDEX Wust-k1
  2287. WHERE Wust.CodeK = Aufko.MWST
  2288. AND Wust.CodeA = Steuer.Fwi03 NO-LOCK.
  2289. zz = Wust.WuCd.
  2290. VWpfl[zz] = VWpfl[zz] + Aufko.Transp.
  2291. FIND Wust USE-INDEX Wust-k1
  2292. WHERE Wust.CodeK = Aufko.MWST
  2293. AND Wust.CodeA = Steuer.Fwi04 NO-LOCK.
  2294. zz = Wust.WuCd.
  2295. VWpfl[zz] = VWpfl[zz] + Aufko.Porto.
  2296. FIND Wust USE-INDEX Wust-k1
  2297. WHERE Wust.CodeK = Aufko.MWST
  2298. AND Wust.CodeA = Steuer.Fwi05 NO-LOCK.
  2299. zz = Wust.WuCd.
  2300. VWpfl[zz] = VWpfl[zz] + Aufko.Verpack.
  2301. zz = 0.
  2302. lJa = FALSE.
  2303. EMPTY TEMP-TABLE tAufze.
  2304. FOR EACH Aufze NO-LOCK
  2305. WHERE Aufze.Firma = Aufko.Firma
  2306. AND Aufze.Aufnr = Aufko.Aufnr
  2307. AND Aufze.Artnr > 0 :
  2308. CREATE tAufze.
  2309. BUFFER-COPY Aufze TO tAufze.
  2310. IF zz > 1 AND
  2311. NOT lJa THEN NEXT.
  2312. FIND Artbw NO-LOCK
  2313. WHERE Artbw.Firma = Aufze.Firma
  2314. AND Artbw.Trnr = Aufze.Trnr NO-ERROR.
  2315. IF NOT AVAILABLE Artbw THEN NEXT.
  2316. zz = zz + 1.
  2317. IF Artbw.Datum = Aufko.Lief_Datum THEN NEXT.
  2318. lJa = TRUE.
  2319. FIND Artbw EXCLUSIVE-LOCK
  2320. WHERE Artbw.Firma = Aufze.Firma
  2321. AND Artbw.Trnr = Aufze.Trnr NO-WAIT NO-ERROR.
  2322. IF NOT AVAILABLE Artbw THEN NEXT.
  2323. Artbw.Datum = Aufko.Lief_Datum.
  2324. RELEASE Artbw.
  2325. END.
  2326. FIND FIRST tAufze NO-ERROR.
  2327. IF AVAILABLE tAufze THEN
  2328. DO:
  2329. DYNAMIC-FUNCTION('fillAufRabSu':U) NO-ERROR.
  2330. DYNAMIC-FUNCTION('fillAufSpRab':U) NO-ERROR.
  2331. END.
  2332. FOR EACH tAufze:
  2333. zz = tAufze.WuCd.
  2334. IF Aufko.Auf_Sta < 2 THEN nMenge = tAufze.MBest.
  2335. ELSE nMenge = tAufze.MGeli.
  2336. nMenge = tAufze.MGeli.
  2337. DO WHILE TRUE:
  2338. ASSIGN
  2339. tAufze.Auf_Rab = 0
  2340. tAufze.Abh_Rab = 0.
  2341. IF tAufze.Rab_Su_Grp = 0 THEN LEAVE.
  2342. IF tAufze.Rab_Su_Art = 0 THEN LEAVE.
  2343. FIND AufRabSu NO-LOCK
  2344. WHERE AufRabSu.Firma = tAufze.Firma
  2345. AND AufRabSu.Aufnr = tAufze.Aufnr
  2346. AND AufRabSu.Rab_Summ = tAufze.Rab_Su_Grp
  2347. AND AufRabSu.MWST_Cd = tAufze.WuCd.
  2348. Wert = AufRabSu.F_Wert.
  2349. DO WHILE Wert <> 0:
  2350. IF AufRabSu.F_Proz_Betr THEN
  2351. DO:
  2352. tAufze.Auf_Rab = tAufze.Net_Betr * AufRabSu.F_Wert / 100.
  2353. LEAVE.
  2354. END.
  2355. IF AufRabSu.F_Art = 0 THEN
  2356. DO:
  2357. tAufze.Auf_Rab = nMenge * AufRabSu.F_Wert.
  2358. LEAVE.
  2359. END.
  2360. IF AufRabSu.F_Art = 2 THEN
  2361. DO:
  2362. tAufze.Auf_Rab = tAufze.Liter * AufRabSu.F_Wert / 100.
  2363. LEAVE.
  2364. END.
  2365. LEAVE.
  2366. END.
  2367. IF Aufko.Abhol = FALSE THEN Wert = 0.
  2368. ELSE Wert = AufRabSu.A_Wert.
  2369. DO WHILE Wert <> 0:
  2370. IF AufRabSu.A_Proz_Betr THEN
  2371. DO:
  2372. tAufze.Abh_Rab = tAufze.Net_Betr * AufRabSu.A_Wert / 100.
  2373. LEAVE.
  2374. END.
  2375. IF AufRabSu.A_Art = 0 THEN
  2376. DO:
  2377. tAufze.Abh_Rab = nMenge * AufRabSu.A_Wert.
  2378. LEAVE.
  2379. END.
  2380. IF AufRabSu.A_Art = 2 THEN
  2381. DO:
  2382. tAufze.Abh_Rab = tAufze.Liter * AufRabSu.A_Wert / 100.
  2383. LEAVE.
  2384. END.
  2385. LEAVE.
  2386. END.
  2387. DO WHILE TRUE:
  2388. IF tAufze.Abh_Rab = 0 AND
  2389. tAufze.Auf_Rab = 0 THEN LEAVE.
  2390. FIND FIRST Wust NO-LOCK USE-INDEX Wust-k2
  2391. WHERE Wust.WuCd = zz.
  2392. IF Wust.Incl = TRUE THEN
  2393. DO:
  2394. Rundbetr = tAufze.Abh_Rab.
  2395. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
  2396. tAufze.Abh_Rab = Rundbetr.
  2397. Rundbetr = tAufze.Auf_Rab.
  2398. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
  2399. tAufze.Auf_Rab = Rundbetr.
  2400. END.
  2401. LEAVE.
  2402. END.
  2403. RELEASE AufRabSu.
  2404. LEAVE.
  2405. END.
  2406. DO WHILE TRUE:
  2407. IF tAufze.Auf_Sp_Grp = 0 THEN LEAVE.
  2408. FIND AufSpRab NO-LOCK
  2409. WHERE AufSpRab.Firma = tAufze.Firma
  2410. AND AufSpRab.Aufnr = tAufze.Aufnr
  2411. AND AufSpRab.Rab_Grp = tAufze.Auf_Sp_Grp NO-ERROR.
  2412. IF NOT AVAILABLE AufSpRab THEN LEAVE.
  2413. ASSIGN
  2414. tAufze.Auf_Sp_Proz_Betr = AufSpRab.Auf_Proz_Betr
  2415. tAufze.Auf_Sp_Wert = AufSpRab.Auf_Wert.
  2416. IF NOT tAufze.Auf_Sp_Proz_Betr
  2417. THEN tAufze.Auf_Sp_Rab = nMenge * tAufze.Auf_Sp_Wert.
  2418. ELSE tAufze.Auf_Sp_Rab = tAufze.Net_Betr * tAufze.Auf_Sp_Wert / 100.
  2419. FIND FIRST Wust USE-INDEX Wust-k2
  2420. WHERE Wust.WuCd = zz NO-LOCK.
  2421. IF Wust.Incl = TRUE THEN
  2422. DO:
  2423. Rundbetr = tAufze.Auf_Sp_Rab.
  2424. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
  2425. tAufze.Auf_Sp_Rab = Rundbetr.
  2426. END.
  2427. RELEASE AufSpRab.
  2428. LEAVE.
  2429. END.
  2430. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  2431. DYNAMIC-FUNCTION('calculateZeilenTotal':U, INPUT-OUTPUT htAufze ) NO-ERROR.
  2432. VWpfl [zz] = VWpfl [zz] + tAufze.Net_Betr
  2433. - tAufze.Auf_Rab
  2434. - tAufze.Abh_Rab
  2435. - tAufze.Auf_Sp_Rab.
  2436. Aufko.WW[zz] = Aufko.WW[zz] + tAufze.Net_Betr
  2437. - tAufze.Auf_Rab
  2438. - tAufze.Abh_Rab
  2439. - tAufze.Auf_Sp_Rab.
  2440. opnTotal[01] = opnTotal[01] + tAufze.Net_Betr
  2441. - tAufze.Auf_Rab
  2442. - tAufze.Abh_Rab
  2443. - tAufze.Auf_Sp_Rab.
  2444. IF tAufze.Sk_Ber THEN
  2445. DO:
  2446. opnTotal[02] = opnTotal[02] + tAufze.Net_Betr
  2447. - tAufze.Auf_Rab
  2448. - tAufze.Abh_Rab
  2449. - tAufze.Auf_Sp_Rab.
  2450. END.
  2451. VGewicht = VGewicht + tAufze.Gewicht.
  2452. END.
  2453. FOR EACH tAufze:
  2454. FIND Aufze NO-LOCK OF tAufze.
  2455. BUFFER-COMPARE Aufze TO tAufze SAVE RESULT IN cResult.
  2456. IF cResult = '' THEN NEXT.
  2457. FIND bAufze OF tAufze.
  2458. BUFFER-COPY tAufze TO bAufze.
  2459. RELEASE bAufze.
  2460. END.
  2461. IF FDebst.Geb_Rg THEN
  2462. DO:
  2463. FOR EACH AufGKon NO-LOCK USE-INDEX AufGKon-k1
  2464. WHERE AufGKon.Firma = Aufko.Firma
  2465. AND AufGKon.Aufnr = Aufko.Aufnr :
  2466. zz = AufGKon.MWSt_Cd.
  2467. VWpfl[zz] = VWpfl[zz] + AufGKon.Betrag.
  2468. IF AufGKon.Gebuehr = 0 THEN opnTotal[11] = opnTotal[11] + AufGKon.Betrag.
  2469. ELSE opnTotal[12] = opnTotal[12] + AufGKon.Betrag.
  2470. END.
  2471. END.
  2472. ELSE
  2473. DO:
  2474. FOR EACH AufGKon NO-LOCK USE-INDEX AufGKon-k1
  2475. WHERE AufGKon.Firma = Aufko.Firma
  2476. AND AufGKon.Aufnr = Aufko.Aufnr
  2477. AND AufGKon.Gebuehr <> 0.0
  2478. AND AufGKon.Betrag <> 0.0 :
  2479. zz = AufGKon.MWSt_Cd.
  2480. VWpfl[zz] = VWpfl[zz] + AufGKon.Betrag.
  2481. opnTotal[12] = opnTotal[12] + AufGKon.Betrag.
  2482. END.
  2483. END.
  2484. FIND FIRST Wust NO-LOCK
  2485. WHERE Wust.CodeK = Aufko.Mwst
  2486. AND Wust.CodeA = 9 NO-ERROR.
  2487. EMPTY TEMP-TABLE tMwstParam.
  2488. CREATE tMwstParam.
  2489. ASSIGN
  2490. tMwstParam.Firma = Aufko.Firma
  2491. tMwstParam.Knr = Aufko.Fak_Knr
  2492. tMwstParam.Datum = dMwstDat
  2493. tMwstParam.Frw = Aufko.Frw
  2494. tMwstParam.MwstPfl = VWpfl
  2495. tMwstParam.MwstBetr = VWust
  2496. tMwstParam.MwstCdKd = Aufko.Mwst
  2497. tMwstParam.lInklusive = (IF AVAILABLE Wust THEN Wust.Incl ELSE FALSE)
  2498. .
  2499. DYNAMIC-FUNCTION('calculateMwstFaktura':U, INPUT TABLE tMwstParam, OUTPUT TABLE tMwstCalc, OUTPUT cMessage ).
  2500. FOR EACH tMwstCalc:
  2501. zz = tMwstCalc.Mwst_Cd.
  2502. IF tMwstCalc.lInklusive THEN
  2503. ASSIGN
  2504. Aufko.Wpfl[zz] = tMwstCalc.Brutto
  2505. Aufko.Wust[zz] = 0.00
  2506. opnTotal [07] = opnTotal[07] + (IF tMwstCalc.Ansatz = 0 THEN 0 ELSE tMwstCalc.Brutto)
  2507. opnTotal [08] = opnTotal[08] + (IF tMwstCalc.Ansatz > 0 THEN 0 ELSE tMwstCalc.Brutto)
  2508. opnTotal [09] = opnTotal[09] + 0.00.
  2509. ELSE
  2510. ASSIGN
  2511. Aufko.Wpfl[zz] = tMwstCalc.Netto
  2512. Aufko.Wust[zz] = tMwstCalc.Mwst
  2513. opnTotal [07] = opnTotal[07] + (IF tMwstCalc.Ansatz = 0 THEN 0 ELSE tMwstCalc.Netto)
  2514. opnTotal [08] = opnTotal[08] + (IF tMwstCalc.Ansatz > 0 THEN 0 ELSE tMwstCalc.Netto)
  2515. opnTotal [09] = opnTotal[09] + tMwstCalc.Mwst.
  2516. END.
  2517. opnTotal[10] = DECIMAL(ENTRY(1, cMessage, ';')).
  2518. ASSIGN
  2519. Aufko.Auf_Tot = opnTotal[10]
  2520. Aufko.Gewicht = VGewicht
  2521. Aufko.Sk_Ber = opnTotal[02]
  2522. nAufTotal = nAufTotal + Aufko.Auf_Tot.
  2523. RELEASE Aufko.
  2524. RELEASE Aufze.
  2525. LEAVE.
  2526. END.
  2527. RELEASE Aufko.
  2528. RELEASE Aufze.
  2529. RELEASE AufGKon.
  2530. RELEASE AufSpRab.
  2531. RELEASE AufRabSu.
  2532. RELEASE Steuer.
  2533. RELEASE Wust.
  2534. RELEASE FDebst.
  2535. IF nKredLimite > 0 AND
  2536. nAufTotal > nKredLimite THEN RETURN 'KREDITLIMITE'.
  2537. ELSE RETURN ''.
  2538. END FUNCTION.
  2539. /* _UIB-CODE-BLOCK-END */
  2540. &ANALYZE-RESUME
  2541. &ENDIF
  2542. &IF DEFINED(EXCLUDE-calculateGebindeAusMenge) = 0 &THEN
  2543. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION calculateGebindeAusMenge Procedure
  2544. FUNCTION calculateGebindeAusMenge RETURNS LOGICAL
  2545. ( ipcFirma AS CHARACTER,
  2546. ipiArtnr AS INTEGER ,
  2547. ipiInhalt AS INTEGER ,
  2548. ipiJahr AS INTEGER ,
  2549. ipiMenge AS INTEGER ,
  2550. OUTPUT opiGGebinde AS INTEGER ,
  2551. OUTPUT opiVGebinde AS INTEGER ,
  2552. OUTPUT opiKGebinde AS INTEGER ):
  2553. /*------------------------------------------------------------------------------*/
  2554. /* Purpose: */
  2555. /* Parameters: <none> */
  2556. /* Notes: */
  2557. /*------------------------------------------------------------------------------*/
  2558. DEFINE BUFFER bArtst FOR Artst.
  2559. DEFINE BUFFER bGGebinde FOR GGebinde.
  2560. DEFINE BUFFER bVGebinde FOR VGebinde.
  2561. DEFINE BUFFER bKGebinde FOR KGebinde.
  2562. ASSIGN
  2563. opiGGebinde = 0
  2564. opiVGebinde = 0
  2565. opiKGebinde = ipiMenge.
  2566. FIND bArtst NO-LOCK
  2567. WHERE bArtst.Firma = ipcFirma
  2568. AND bArtst.Artnr = ipiArtnr
  2569. AND bArtst.Inhalt = ipiInhalt
  2570. AND bArtst.Jahr = ipiJahr NO-ERROR.
  2571. FIND bGGebinde NO-LOCK
  2572. WHERE bGGebinde.Firma = ipcFirma
  2573. AND bGGebinde.Geb_Cd = bArtst.GGeb_Cd NO-ERROR.
  2574. FIND bVGebinde NO-LOCK
  2575. WHERE bVGebinde.Firma = ipcFirma
  2576. AND bVGebinde.Geb_Cd = bArtst.VGeb_Cd NO-ERROR.
  2577. FIND bKGebinde NO-LOCK
  2578. WHERE bKGebinde.Firma = ipcFirma
  2579. AND bKGebinde.Geb_Cd = bArtst.KGeb_Cd NO-ERROR.
  2580. IF NOT AVAILABLE bVGebinde OR
  2581. bVGebinde.Inhalt = 0 THEN RETURN FALSE.
  2582. DO WHILE TRUE:
  2583. opiKGebinde = ipiMenge.
  2584. IF opiKGebinde >= bVGebinde.Inhalt THEN opiVGebinde = (opiKGebinde - (opiKGebinde MOD bVGebinde.Inhalt)) / bVGebinde.Inhalt.
  2585. IF NOT AVAILABLE bGGebinde OR
  2586. bGGebinde.Inhalt = 0 THEN LEAVE.
  2587. IF opiVGebinde >= bGGebinde.Inhalt THEN opiGGebinde = (opiVGebinde - (opiVGebinde MOD bGGebinde.Inhalt)) / bGGebinde.Inhalt.
  2588. LEAVE.
  2589. END.
  2590. RELEASE bArtst .
  2591. RELEASE bGGebinde.
  2592. RELEASE bVGebinde.
  2593. RELEASE bKGebinde.
  2594. RETURN TRUE.
  2595. END FUNCTION.
  2596. /* _UIB-CODE-BLOCK-END */
  2597. &ANALYZE-RESUME
  2598. &ENDIF
  2599. &IF DEFINED(EXCLUDE-calculateZeilenTotal) = 0 &THEN
  2600. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION calculateZeilenTotal Procedure
  2601. FUNCTION calculateZeilenTotal RETURNS LOGICAL
  2602. ( INPUT-OUTPUT iphAufze AS HANDLE ) :
  2603. /*------------------------------------------------------------------------------*/
  2604. /* Purpose: */
  2605. /* Notes: */
  2606. /*------------------------------------------------------------------------------*/
  2607. DEFINE VARIABLE Rundbetr AS DECIMAL DECIMALS 4 NO-UNDO.
  2608. DEFINE VARIABLE iMwstCd AS INTEGER NO-UNDO.
  2609. DEFINE VARIABLE iMwstArt AS INTEGER NO-UNDO.
  2610. DEFINE VARIABLE cFirma AS CHARACTER NO-UNDO.
  2611. DEFINE VARIABLE cKGeb_Cd AS CHARACTER NO-UNDO.
  2612. DEFINE VARIABLE cVGeb_Cd AS CHARACTER NO-UNDO.
  2613. DEFINE VARIABLE cGGeb_Cd AS CHARACTER NO-UNDO.
  2614. DEFINE BUFFER bKGebinde FOR KGebinde.
  2615. DEFINE BUFFER bVGebinde FOR VGebinde.
  2616. DEFINE BUFFER bGGebinde FOR GGebinde.
  2617. DEFINE BUFFER bArtst FOR Artst.
  2618. iMwstCd = iphAufze::WuCd.
  2619. iMwstArt = iphAufze::Wc.
  2620. cFirma = iphAufze::Firma.
  2621. cKGeb_Cd = iphAufze::KGeb_Cd.
  2622. cVGeb_Cd = iphAufze::VGeb_Cd.
  2623. cGGeb_Cd = iphAufze::GGeb_Cd.
  2624. FIND FIRST Wust NO-LOCK USE-INDEX Wust-k2
  2625. WHERE Wust.Wucd = iMwstCd
  2626. AND Wust.CodeA = iMwstArt
  2627. AND Wust.CodeK < 12 .
  2628. DO WHILE TRUE:
  2629. IF iphAufze::Rab_Art = 1 THEN
  2630. DO:
  2631. iphAufze::Bru_Betr = iphAufze::Preis * iphAufze::MGeli.
  2632. iphAufze::Rab_Betr = iphAufze::Preis * iphAufze::Rab_Wert / 100 * iphAufze::MGeli.
  2633. LEAVE.
  2634. END.
  2635. IF iphAufze::Rab_Art = 2 THEN
  2636. DO:
  2637. iphAufze::Bru_Betr = iphAufze::Preis * iphAufze::MGeli.
  2638. iphAufze::Rab_Betr = iphAufze::Rab_Wert * iphAufze::MGeli.
  2639. LEAVE.
  2640. END.
  2641. IF iphAufze::Rab_Art = 3 THEN
  2642. DO:
  2643. IF lEpProzBetr THEN
  2644. DO:
  2645. iphAufze::Bru_Betr = iphAufze::Preis * iphAufze::MGeli.
  2646. iphAufze::Rab_Betr = iphAufze::Preis * iphAufze::Rab_Wert / 100 * iphAufze::MGeli * -1.
  2647. END.
  2648. ELSE
  2649. DO:
  2650. iphAufze::Bru_Betr = iphAufze::Preis * iphAufze::MGeli.
  2651. iphAufze::Rab_Betr = iphAufze::Rab_Wert * iphAufze::MGeli * -1.
  2652. END.
  2653. LEAVE.
  2654. END.
  2655. iphAufze::Bru_Betr = iphAufze::Preis * iphAufze::MGeli.
  2656. iphAufze::Rab_Betr = 0.
  2657. iphAufze::Rab_Art = 0.
  2658. LEAVE.
  2659. END.
  2660. IF Wust.Incl THEN
  2661. DO:
  2662. Rundbetr = iphAufze::Rab_Betr.
  2663. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
  2664. iphAufze::Rab_Betr = Rundbetr.
  2665. END.
  2666. DO WHILE TRUE:
  2667. IF iphAufze::Zus_Art = 1 THEN
  2668. DO:
  2669. iphAufze::Zus_Betr = iphAufze::Preis * iphAufze::Zus_Wert / 100 * iphAufze::MGeli.
  2670. LEAVE.
  2671. END.
  2672. IF iphAufze::Zus_Art = 2 THEN
  2673. DO:
  2674. iphAufze::Zus_Betr = iphAufze::Zus_Wert * iphAufze::MGeli.
  2675. LEAVE.
  2676. END.
  2677. iphAufze::Zus_Betr = 0.
  2678. iphAufze::Zus_Wert = 0.
  2679. iphAufze::Zus_Art = 0.
  2680. LEAVE.
  2681. END.
  2682. IF Wust.Incl THEN
  2683. DO:
  2684. Rundbetr = iphAufze::Zus_Betr.
  2685. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
  2686. iphAufze::Zus_Betr = Rundbetr.
  2687. END.
  2688. iphAufze::Net_Betr = iphAufze::Bru_Betr - iphAufze::Rab_Betr + iphAufze::Zus_Betr.
  2689. IF Wust.Incl THEN
  2690. DO:
  2691. Rundbetr = iphAufze::Net_Betr.
  2692. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
  2693. iphAufze::Net_Betr = Rundbetr.
  2694. END.
  2695. FIND bGGebinde NO-LOCK
  2696. WHERE bGGebinde.Firma = cFirma
  2697. AND bGGebinde.Geb_Cd = cGGeb_Cd NO-ERROR.
  2698. FIND bVGebinde NO-LOCK
  2699. WHERE bVGebinde.Firma = cFirma
  2700. AND bVGebinde.Geb_Cd = cVGeb_Cd NO-ERROR.
  2701. FIND bKGebinde NO-LOCK
  2702. WHERE bKGebinde.Firma = cFirma
  2703. AND bKGebinde.Geb_Cd = cKGeb_Cd NO-ERROR.
  2704. FIND bArtst NO-LOCK
  2705. WHERE bArtst.Firma = cFirma
  2706. AND bArtst.Artnr = iphAufze::Artnr
  2707. AND bArtst.Inhalt = iphAufze::Inhalt
  2708. AND bArtst.Jahr = iphAufze::Jahr.
  2709. /* -------------------------------------------------------------- */
  2710. /* Liter und Gewicht */
  2711. /* -------------------------------------------------------------- */
  2712. iphAufze::Liter = bKGebinde.Inhalt * iphAufze::KGeb_Me / 100.
  2713. iphAufze::Gewicht = (bArtst.Gewicht * iphAufze::KGeb_Me)
  2714. + (bKGebinde.Gewicht * iphAufze::KGeb_Me)
  2715. + (bVGebinde.Gewicht * iphAufze::VGeb_Me)
  2716. + (bGGebinde.Gewicht * iphAufze::GGeb_Me).
  2717. RELEASE Wust.
  2718. RELEASE bGGebinde.
  2719. RELEASE bVGebinde.
  2720. RELEASE bKGebinde.
  2721. RELEASE bArtst.
  2722. RETURN TRUE.
  2723. END FUNCTION.
  2724. /* _UIB-CODE-BLOCK-END */
  2725. &ANALYZE-RESUME
  2726. &ENDIF
  2727. &IF DEFINED(EXCLUDE-createAktionspreis) = 0 &THEN
  2728. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createAktionspreis Procedure
  2729. FUNCTION createAktionspreis RETURNS LOGICAL
  2730. ( ipiAktGrp AS INTEGER, iplAbweich AS LOG, ipiAktKuPr_Grp AS INTEGER, ipiKuPreisGrp AS INTEGER) :
  2731. /*------------------------------------------------------------------------------*/
  2732. /* Purpose: */
  2733. /* Notes: */
  2734. /*------------------------------------------------------------------------------*/
  2735. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  2736. DEFINE VARIABLE nNetto AS DECIMAL DECIMALS 4 NO-UNDO.
  2737. DEFINE VARIABLE nKleinst AS DECIMAL DECIMALS 4 NO-UNDO.
  2738. DEFINE VARIABLE iArt AS INTEGER NO-UNDO.
  2739. DEFINE VARIABLE lAktion AS LOG INIT FALSE NO-UNDO.
  2740. DEFINE BUFFER bAktPreis FOR AktPreis.
  2741. DEFINE BUFFER btPreis FOR tPreis.
  2742. FIND FIRST tParam.
  2743. FIND FIRST tAufze.
  2744. ASSIGN
  2745. nKleinst = 999999.9999
  2746. iArt = -1.
  2747. FOR EACH tPreis BY tPreis.iArt:
  2748. nNetto = tPreis.Preis.
  2749. IF tPreis.Rab_Proz <> 0 THEN nNetto = tPreis.Preis * (100 - tPreis.Rab_Proz) / 100.
  2750. IF tPreis.Rab_Wert <> 0 THEN nNetto = tPreis.Preis - tPreis.Rab_Wert.
  2751. IF tPreis.Spe_Proz <> 0 THEN nNetto = tPreis.Preis * (100 - tPreis.Spe_Proz) / 100.
  2752. IF tPreis.Spe_Wert <> 0 THEN nNetto = tPreis.Preis - tPreis.Spe_Wert.
  2753. IF tPreis.Zus_Proz <> 0 THEN nNetto = nNetto + (tPreis.Preis * tPreis.Zus_Proz / 100).
  2754. IF tPreis.Zus_Wert <> 0 THEN nNetto = nNetto + tPreis.Zus_Wert.
  2755. IF nNetto < nKleinst THEN
  2756. DO:
  2757. ASSIGN
  2758. nKleinst = nNetto
  2759. iArt = tPreis.iArt.
  2760. END.
  2761. END.
  2762. IF iArt < 0 THEN RETURN lAktion.
  2763. FIND FIRST btPreis
  2764. WHERE btPreis.iArt = 4 NO-ERROR. /* Spezialpreis Warengruppe */
  2765. IF NOT AVAILABLE btPreis THEN
  2766. DO:
  2767. FIND FIRST btPreis NO-LOCK NO-ERROR.
  2768. END.
  2769. IF NOT AVAILABLE btPreis THEN RETURN lAktion.
  2770. DO ii = 1 TO 2:
  2771. FIND LAST bAktPreis NO-LOCK
  2772. WHERE bAktPreis.Firma = tAufze.Firma
  2773. AND bAktPreis.Artnr = tAufze.Artnr
  2774. AND bAktPreis.Inhalt = tAufze.Inhalt
  2775. AND bAktPreis.Jahr = tAufze.Jahr
  2776. AND bAktPreis.Grp = ipiAktGrp
  2777. AND bAktPreis.Ab_Datum <= tParam.Kond_Datum
  2778. AND bAktPreis.Bis_Datum >= tParam.Kond_Datum NO-ERROR.
  2779. IF AVAILABLE bAktPreis THEN
  2780. DO:
  2781. CREATE tPreis.
  2782. BUFFER-COPY btPreis
  2783. EXCEPT btPreis.iArt btPreis.Netto
  2784. TO tPreis
  2785. ASSIGN
  2786. tPreis.iArt = (IF ii = 1 THEN 5 ELSE 6)
  2787. tPreis.cAkt_Text = bAktPreis.Bemerkung.
  2788. IF bAktPreis.Art = 0 THEN tPreis.Preis = tPreis.Preis - bAktPreis.Wert.
  2789. IF bAktPreis.Art = 1 THEN tPreis.Preis = tPreis.Preis * (100 - bAktPreis.Wert) / 100.
  2790. lAktion = TRUE.
  2791. LEAVE.
  2792. END.
  2793. IF ii = 2 THEN LEAVE.
  2794. IF NOT iplAbweich THEN LEAVE. /* Keine abweichende Preisgruppe vorhanden */
  2795. IF ipiAktKuPr_Grp > 0 THEN LEAVE. /* Die Aktion ist auf die Kundengruppe bezogen */
  2796. ipiAktGrp = ipiKuPreisGrp.
  2797. END.
  2798. RELEASE bAktPreis.
  2799. RETURN lAktion.
  2800. END FUNCTION.
  2801. /* _UIB-CODE-BLOCK-END */
  2802. &ANALYZE-RESUME
  2803. &ENDIF
  2804. &IF DEFINED(EXCLUDE-createAufGebKo) = 0 &THEN
  2805. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createAufGebKo Procedure
  2806. FUNCTION createAufGebKo RETURNS LOGICAL
  2807. ( ipAufnr AS INTEGER ) :
  2808. /*------------------------------------------------------------------------------*/
  2809. /* Purpose: */
  2810. /* Notes: */
  2811. /*------------------------------------------------------------------------------*/
  2812. FOR EACH GebRueck NO-LOCK
  2813. WHERE GebRueck.Firma = Firma TRANSACTION:
  2814. FIND AufGebKo
  2815. WHERE AufGebKo.Firma = Firma
  2816. AND AufGebKo.Aufnr = ipAufnr
  2817. AND AufGebKo.Sort_Cd = GebRueck.Sort_Cd
  2818. AND AufGebKo.Geb_Cd = GebRueck.Geb_Cd NO-ERROR.
  2819. IF NOT AVAILABLE AufGebKo THEN
  2820. DO:
  2821. CREATE AufGebKo.
  2822. ASSIGN
  2823. AufGebKo.Firma = Firma
  2824. AufGebKo.Aufnr = ipAufnr
  2825. AufGebKo.Sort_Cd = GebRueck.Sort_Cd
  2826. AufGebKo.Geb_Cd = GebRueck.Geb_Cd
  2827. AufGebKo.Anz_1 = GebRueck.Anz_1
  2828. AufGebKo.Kto_Cd1 = GebRueck.Kto_Cd1
  2829. AufGebKo.Anz_2 = GebRueck.Anz_2
  2830. AufGebKo.Kto_Cd2 = GebRueck.Kto_Cd2
  2831. AufGebKo.Anz_3 = GebRueck.Anz_3
  2832. AufGebKo.Kto_Cd3 = GebRueck.Kto_Cd3.
  2833. END.
  2834. IF AufGebKo.Kto_Cd1 <> '' THEN
  2835. DO:
  2836. FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1
  2837. WHERE GebKonto.Firma = Firma
  2838. AND GebKonto.Geb_Cd = AufGebKo.Kto_Cd1 NO-ERROR.
  2839. IF AVAILABLE GebKonto THEN AufGebKo.Wert_1 = GebKonto.Depot.
  2840. END.
  2841. IF AufGebKo.Kto_Cd2 <> '' THEN
  2842. DO:
  2843. FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1
  2844. WHERE GebKonto.Firma = Firma
  2845. AND GebKonto.Geb_Cd = AufGebKo.Kto_Cd2 NO-ERROR.
  2846. IF AVAILABLE GebKonto THEN AufGebKo.Wert_2 = GebKonto.Depot.
  2847. END.
  2848. IF AufGebKo.Kto_Cd3 <> '' THEN
  2849. DO:
  2850. FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1
  2851. WHERE GebKonto.Firma = Firma
  2852. AND GebKonto.Geb_Cd = AufGebKo.Kto_Cd3 NO-ERROR.
  2853. IF AVAILABLE GebKonto THEN AufGebKo.Wert_3 = GebKonto.Depot.
  2854. END.
  2855. RELEASE GebRueck.
  2856. RELEASE AufGebKo.
  2857. RELEASE GebKonto.
  2858. END.
  2859. END FUNCTION.
  2860. /* _UIB-CODE-BLOCK-END */
  2861. &ANALYZE-RESUME
  2862. &ENDIF
  2863. &IF DEFINED(EXCLUDE-createAufkoParam) = 0 &THEN
  2864. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createAufkoParam Procedure
  2865. FUNCTION createAufkoParam RETURNS LOGICAL
  2866. ( ipFirma AS CHARACTER, ipAufnr AS INTEGER, ipKnr AS INTEGER, ipDatum AS DATE ) :
  2867. /*------------------------------------------------------------------------------*/
  2868. /* Purpose: */
  2869. /* Notes: */
  2870. /*------------------------------------------------------------------------------*/
  2871. DEFINE BUFFER bDebst FOR Debst .
  2872. DEFINE BUFFER bAufko FOR Aufko .
  2873. DEFINE BUFFER bAdresse FOR Adresse .
  2874. EMPTY TEMP-TABLE tParam.
  2875. CREATE tParam.
  2876. DO WHILE ipKnr > 0:
  2877. FIND bDebst NO-LOCK
  2878. WHERE bDebst.Firma = ipFirma
  2879. AND bDebst.Knr = ipKnr.
  2880. ASSIGN
  2881. tParam.Firma = ipFirma
  2882. tParam.Knr = ipKnr
  2883. tParam.Mwst = bDebst.Mwst
  2884. tParam.Preis_Grp = bDebst.Preis_Grp
  2885. tParam.Ku_Grp = bDebst.Ku_Grp
  2886. tParam.Frw = bDebst.Frw
  2887. tParam.Kond_Datum = ipDatum
  2888. tParam.Lager = 0
  2889. tParam.Rab_Grp = bDebst.Rab_Grp
  2890. tParam.Geb_Rg = bDebst.Geb_Rg
  2891. tParam.Zei_Rab_Art = bDebst.Zei_Rab_Art
  2892. tParam.Zei_Rab_Wert = bDebst.Zei_Rab_Wert
  2893. tParam.Auf_Rab_Art = bDebst.Auf_Rab_Art
  2894. tParam.Auf_Rab_Wert = bDebst.Auf_Rab_Wert
  2895. tParam.Abh_Rab_Art = bDebst.Abh_Rab_Art
  2896. tParam.Abh_Rab_Wert = bDebst.Abh_Rab_Wert
  2897. tParam.Zuschl_Art = bDebst.Zuschl_Art
  2898. tParam.Zuschl_Wert = bDebst.Zuschl_Wert
  2899. .
  2900. FIND bAdresse NO-LOCK USE-INDEX Adresse-k1
  2901. WHERE bAdresse.Firma = AdFirma
  2902. AND bAdresse.Knr = bDebst.Knr NO-ERROR.
  2903. tParam.Sprcd = (IF AVAILABLE bAdresse THEN bAdresse.Sprcd ELSE 1).
  2904. FIND Waehrung NO-LOCK
  2905. WHERE Waehrung.Firma = bDebst.Firma
  2906. AND Waehrung.FRW = bDebst.FRW NO-ERROR.
  2907. IF AVAILABLE Waehrung THEN
  2908. DO:
  2909. ASSIGN
  2910. tParam.Kurs = Waehrung.Kurs
  2911. tParam.Faktor = Waehrung.Faktor.
  2912. END.
  2913. ELSE
  2914. DO:
  2915. ASSIGN
  2916. tParam.Frw = 'CHF'
  2917. tParam.Kurs = 1.0
  2918. tParam.Faktor = 1.
  2919. END.
  2920. RELEASE bDebst.
  2921. RELEASE bAdresse.
  2922. RETURN TRUE.
  2923. END.
  2924. FIND bAufko NO-LOCK
  2925. WHERE bAufko.Firma = ipFirma
  2926. AND bAufko.Aufnr = ipAufnr.
  2927. ASSIGN
  2928. tParam.Firma = ipFirma
  2929. tParam.Knr = bAufko.Knr
  2930. tParam.Mwst = bAufko.Mwst
  2931. tParam.Preis_Grp = bAufko.Preis_Grp
  2932. tParam.Ku_Grp = bAufko.Ku_Grp
  2933. tParam.Kond_Datum = (IF bAufko.Kond_Datum <> ? THEN bAufko.Kond_Datum ELSE bAufko.Lief_Datum)
  2934. tParam.Rab_Grp = bAufko.Rab_Grp
  2935. tParam.Frw = bAufko.Frw
  2936. tParam.Kurs = bAufko.Kurs
  2937. tParam.Faktor = bAufko.Faktor
  2938. tParam.Lager = bAufko.Lager
  2939. tParam.Rab_Grp = bAufko.Rab_Grp
  2940. tParam.Geb_Rg = bAufko.Geb_Rg
  2941. tParam.Zei_Rab_Art = bAufko.Zei_Rab_Art
  2942. tParam.Zei_Rab_Wert = bAufko.Zei_Rab_Wert
  2943. tParam.Auf_Rab_Art = bAufko.Auf_Rab_Art
  2944. tParam.Auf_Rab_Wert = bAufko.Auf_Rab_Wert
  2945. tParam.Abh_Rab_Art = bAufko.Abh_Rab_Art
  2946. tParam.Abh_Rab_Wert = bAufko.Abh_Rab_Wert
  2947. tParam.Zuschl_Art = bAufko.Zuschl_Art
  2948. tParam.Zuschl_Wert = bAufko.Zuschl_Wert.
  2949. IF tParam.Kond_Datum = ? THEN tParam.Kond_Datum = ipDatum.
  2950. FIND bAdresse NO-LOCK USE-INDEX Adresse-k1
  2951. WHERE bAdresse.Firma = AdFirma
  2952. AND bAdresse.Knr = bAufko.Knr NO-ERROR.
  2953. tParam.Sprcd = (IF AVAILABLE bAdresse THEN bAdresse.Sprcd ELSE 1).
  2954. RELEASE bAufko.
  2955. RELEASE bAdresse.
  2956. RETURN TRUE.
  2957. END FUNCTION.
  2958. /* _UIB-CODE-BLOCK-END */
  2959. &ANALYZE-RESUME
  2960. &ENDIF
  2961. &IF DEFINED(EXCLUDE-createAufnr) = 0 &THEN
  2962. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createAufnr Procedure
  2963. FUNCTION createAufnr RETURNS INTEGER
  2964. ( ipFirma AS CHARACTER ) :
  2965. /*------------------------------------------------------------------------------*/
  2966. /* Purpose: */
  2967. /* Notes: */
  2968. /*------------------------------------------------------------------------------*/
  2969. DEFINE VARIABLE iAufnr AS INTEGER INIT 0 NO-UNDO.
  2970. REPEAT TRANSACTION:
  2971. FIND SteuNr WHERE SteuNr.Firma = ipFirma
  2972. EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
  2973. IF AVAILABLE SteuNr THEN
  2974. DO:
  2975. ASSIGN
  2976. SteuNr.Nr1 = SteuNr.Nr1 + 1
  2977. iAufnr = SteuNr.Nr1.
  2978. RELEASE SteuNr.
  2979. LEAVE.
  2980. END.
  2981. IF LOCKED SteuNr THEN
  2982. DO:
  2983. MESSAGE 'SteuNr LOCKED' VIEW-AS ALERT-BOX INFORMATION.
  2984. NEXT.
  2985. END.
  2986. LEAVE.
  2987. END.
  2988. RETURN iAufnr.
  2989. END FUNCTION.
  2990. /* _UIB-CODE-BLOCK-END */
  2991. &ANALYZE-RESUME
  2992. &ENDIF
  2993. &IF DEFINED(EXCLUDE-createEpPreis) = 0 &THEN
  2994. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createEpPreis Procedure
  2995. FUNCTION createEpPreis RETURNS LOGICAL
  2996. ( iphbArtst AS HANDLE ) :
  2997. /*------------------------------------------------------------------------------*/
  2998. /* Purpose: */
  2999. /* Notes: */
  3000. /*------------------------------------------------------------------------------*/
  3001. CREATE tPreis.
  3002. ASSIGN
  3003. tPreis.iArt = 2
  3004. tPreis.Preis = 0
  3005. tPreis.Rab_Proz = (IF lEpProzBetr THEN - tAufze.Rab_Wert ELSE 0)
  3006. tPreis.Rab_Wert = (IF lEpProzBetr THEN 0 ELSE - tAufze.Rab_Wert)
  3007. tPreis.Spe_Proz = 0
  3008. tPreis.Spe_Wert = 0
  3009. tPreis.Zus_Proz = (IF tAufze.Zus_Art = 1 THEN tAufze.Zus_Wert ELSE 0)
  3010. tPreis.Zus_Wert = (IF tAufze.Zus_Art = 2 THEN tAufze.Zus_Wert ELSE 0).
  3011. IF iphbArtst::DEP <> 0 THEN tPreis.Preis = iphbArtst::DEP.
  3012. IF iphbArtst::LEP <> 0 THEN tPreis.Preis = iphbArtst::LEP.
  3013. IF iphbArtst::Listen_EP <> 0 THEN tPreis.Preis = iphbArtst::Listen_EP.
  3014. RETURN TRUE.
  3015. END FUNCTION.
  3016. /* _UIB-CODE-BLOCK-END */
  3017. &ANALYZE-RESUME
  3018. &ENDIF
  3019. &IF DEFINED(EXCLUDE-createFaknr) = 0 &THEN
  3020. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createFaknr Procedure
  3021. FUNCTION createFaknr RETURNS INTEGER
  3022. ( ipFirma AS CHARACTER ) :
  3023. /*------------------------------------------------------------------------------*/
  3024. /* Purpose: */
  3025. /* Notes: */
  3026. /*------------------------------------------------------------------------------*/
  3027. DEFINE VARIABLE iFaknr AS INTEGER INIT 0 NO-UNDO.
  3028. REPEAT TRANSACTION:
  3029. FIND SteuNr WHERE SteuNr.Firma = ipFirma
  3030. EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
  3031. IF AVAILABLE SteuNr THEN
  3032. DO:
  3033. ASSIGN
  3034. SteuNr.Nr2 = SteuNr.Nr2 + 1
  3035. iFaknr = SteuNr.Nr2.
  3036. RELEASE SteuNr.
  3037. LEAVE.
  3038. END.
  3039. IF LOCKED SteuNr THEN
  3040. DO:
  3041. MESSAGE 'SteuNr LOCKED' VIEW-AS ALERT-BOX INFORMATION.
  3042. NEXT.
  3043. END.
  3044. RELEASE SteuNr.
  3045. LEAVE.
  3046. END.
  3047. RETURN iFaknr.
  3048. END FUNCTION.
  3049. /* _UIB-CODE-BLOCK-END */
  3050. &ANALYZE-RESUME
  3051. &ENDIF
  3052. &IF DEFINED(EXCLUDE-createManuellerPreis) = 0 &THEN
  3053. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createManuellerPreis Procedure
  3054. FUNCTION createManuellerPreis RETURNS LOGICAL
  3055. ( /* parameter-definitions */ ) :
  3056. /*------------------------------------------------------------------------------*/
  3057. /* Purpose: */
  3058. /* Notes: */
  3059. /*------------------------------------------------------------------------------*/
  3060. FIND FIRST tAufze.
  3061. EMPTY TEMP-TABLE tPreis.
  3062. CREATE tPreis.
  3063. ASSIGN
  3064. tPreis.iArt = 1
  3065. tPreis.Preis = tAufze.Preis
  3066. tPreis.Rab_Proz = 0
  3067. tPreis.Rab_Wert = 0
  3068. tPreis.Spe_Proz = 0
  3069. tPreis.Spe_Wert = 0
  3070. tPreis.Zus_Proz = (IF tAufze.Zus_Art = 1 THEN tAufze.Zus_Wert ELSE 0)
  3071. tPreis.Zus_Wert = (IF tAufze.Zus_Art = 2 THEN tAufze.Zus_Wert ELSE 0).
  3072. CASE tAufze.Rab_Art:
  3073. WHEN 1 THEN
  3074. ASSIGN
  3075. tPreis.Rab_Proz = + tAufze.Rab_Wert.
  3076. WHEN 2 THEN
  3077. ASSIGN
  3078. tPreis.Rab_Wert = + tAufze.Rab_Wert.
  3079. WHEN 3 THEN
  3080. DO:
  3081. IF lEpProzBetr THEN tPreis.Rab_Proz = - tAufze.Rab_Wert.
  3082. ELSE tPreis.Rab_Wert = - tAufze.Rab_Wert.
  3083. END.
  3084. END CASE.
  3085. ASSIGN
  3086. tAufze.Auf_Sp_Grp = 0
  3087. tAufze.Auf_Sp_Rab = 0
  3088. tAufze.Auf_Sp_Wert = 0.
  3089. RETURN TRUE.
  3090. END FUNCTION.
  3091. /* _UIB-CODE-BLOCK-END */
  3092. &ANALYZE-RESUME
  3093. &ENDIF
  3094. &IF DEFINED(EXCLUDE-createSammnr) = 0 &THEN
  3095. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createSammnr Procedure
  3096. FUNCTION createSammnr RETURNS INTEGER
  3097. ( ipFirma AS CHARACTER ) :
  3098. /*------------------------------------------------------------------------------*/
  3099. /* Purpose: */
  3100. /* Notes: */
  3101. /*------------------------------------------------------------------------------*/
  3102. DEFINE VARIABLE iSammnr AS INTEGER INIT 0 NO-UNDO.
  3103. REPEAT TRANSACTION:
  3104. FIND SteuNr EXCLUSIVE-LOCK
  3105. WHERE SteuNr.Firma = ipFirma NO-WAIT NO-ERROR.
  3106. IF AVAILABLE SteuNr THEN
  3107. DO:
  3108. ASSIGN
  3109. SteuNr.Nr5 = SteuNr.Nr5 + 1
  3110. iSammnr = SteuNr.Nr5.
  3111. RELEASE SteuNr.
  3112. LEAVE.
  3113. END.
  3114. IF LOCKED SteuNr THEN
  3115. DO:
  3116. MESSAGE 'SteuNr LOCKED' VIEW-AS ALERT-BOX INFORMATION.
  3117. NEXT.
  3118. END.
  3119. LEAVE.
  3120. END.
  3121. RETURN iSammnr.
  3122. END FUNCTION.
  3123. /* _UIB-CODE-BLOCK-END */
  3124. &ANALYZE-RESUME
  3125. &ENDIF
  3126. &IF DEFINED(EXCLUDE-deleteArtbw) = 0 &THEN
  3127. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION deleteArtbw Procedure
  3128. FUNCTION deleteArtbw RETURNS LOGICAL
  3129. ( ipiTrnr AS INTEGER, iprArtbw AS RECID ):
  3130. /*------------------------------------------------------------------------------*/
  3131. /* Purpose: */
  3132. /* Notes: */
  3133. /*------------------------------------------------------------------------------*/
  3134. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO INIT TRUE.
  3135. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  3136. IF ipiTrnr > 0 THEN
  3137. DO:
  3138. FIND Artbw NO-LOCK USE-INDEX Artbw-k1
  3139. WHERE Artbw.Firma = Firma
  3140. AND Artbw.Trnr = ipiTrnr NO-ERROR.
  3141. IF AVAILABLE Artbw THEN iprArtbw = RECID(Artbw).
  3142. RELEASE Artbw.
  3143. END.
  3144. IF iprArtbw <> ? AND
  3145. iprArtbw <> 0 THEN
  3146. DO:
  3147. FIND Artbw WHERE RECID(Artbw) = iprArtbw EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
  3148. END.
  3149. IF NOT AVAILABLE Artbw AND
  3150. NOT LOCKED Artbw THEN LEAVE.
  3151. IF LOCKED Artbw THEN
  3152. DO:
  3153. DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getLockedUser':U, iprArtbw), ?, ?) NO-ERROR.
  3154. lRetVal = FALSE.
  3155. LEAVE.
  3156. END.
  3157. DELETE Artbw.
  3158. RELEASE Artbw.
  3159. LEAVE.
  3160. END.
  3161. RETURN lRetVal.
  3162. END FUNCTION.
  3163. /* _UIB-CODE-BLOCK-END */
  3164. &ANALYZE-RESUME
  3165. &ENDIF
  3166. &IF DEFINED(EXCLUDE-deleteAuflot) = 0 &THEN
  3167. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION deleteAuflot Procedure
  3168. FUNCTION deleteAufLot RETURNS LOGICAL
  3169. ( iprAufze AS RECID ):
  3170. /*------------------------------------------------------------------------------*/
  3171. /* Purpose: */
  3172. /* Notes: */
  3173. /*------------------------------------------------------------------------------*/
  3174. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO INIT TRUE.
  3175. DEFINE VARIABLE cArtnr AS CHARACTER NO-UNDO.
  3176. DEFINE VARIABLE iHoReLager_Id AS INTEGER NO-UNDO.
  3177. DEFINE BUFFER bAufze FOR Aufze.
  3178. DEFINE BUFFER bAufLot FOR AufLot.
  3179. FIND bAufze NO-LOCK WHERE RECID(bAufze) = iprAufze NO-ERROR.
  3180. IF NOT AVAILABLE bAufze THEN RETURN lRetVal.
  3181. TRANS00:
  3182. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  3183. FOR EACH AufLot NO-LOCK OF bAufze:
  3184. FIND bAufLot WHERE RECID(bAufLot) = RECID(AufLot) EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
  3185. IF LOCKED bAufLot THEN
  3186. DO:
  3187. DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getLockedUser':U, RECID(AufLot)), ?, ?) NO-ERROR.
  3188. lRetVal = FALSE.
  3189. LEAVE TRANS00.
  3190. END.
  3191. iHoReLager_Id = DYNAMIC-FUNCTION('getHoReLagerId':U, AufLot.Artnr, AufLot.Inhalt, AufLot.Jahr, AufLot.Lager) NO-ERROR.
  3192. DO WHILE iHoReLager_Id > 0:
  3193. FIND FIRST LotLager
  3194. WHERE LotLager.Firma = AufLot.Firma
  3195. AND LotLager.Lager = AufLot.Lager
  3196. AND LotLager.Artnr = AufLot.Artnr
  3197. AND LotLager.Inhalt = AufLot.Inhalt
  3198. AND LotLager.Jahr = AufLot.Jahr
  3199. AND LotLager.Verfall = AufLot.Verfall
  3200. AND LotLager.Lotnummer = AufLot.Nummer NO-ERROR.
  3201. IF NOT AVAILABLE LotLager OR
  3202. LotLager.HoReLager_Id <> iHoReLager_Id THEN
  3203. DO:
  3204. CREATE LotLager.
  3205. ASSIGN
  3206. LotLager.Firma = AufLot.Firma
  3207. LotLager.Lager = AufLot.Lager
  3208. LotLager.Artnr = AufLot.Artnr
  3209. LotLager.Inhalt = AufLot.Inhalt
  3210. LotLager.Jahr = AufLot.Jahr
  3211. LotLager.Verfall = AufLot.Verfall
  3212. LotLager.Lotnummer = AufLot.Nummer
  3213. LotLager.HoReLager_Id = iHoReLager_Id
  3214. LotLager.Eingang = AufLot.Datum.
  3215. END.
  3216. LotLager.Bestand = LotLager.Bestand + AufLot.Menge.
  3217. RELEASE LotLager.
  3218. LEAVE.
  3219. END.
  3220. DELETE bAufLot.
  3221. RELEASE bAuflot.
  3222. END.
  3223. RELEASE LotLager.
  3224. RELEASE AufLot .
  3225. LEAVE.
  3226. END.
  3227. RETURN lRetVal.
  3228. END FUNCTION.
  3229. /* _UIB-CODE-BLOCK-END */
  3230. &ANALYZE-RESUME
  3231. &ENDIF
  3232. &IF DEFINED(EXCLUDE-deleteAuftrag) = 0 &THEN
  3233. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION deleteAuftrag Procedure
  3234. FUNCTION deleteAuftrag RETURNS LOGICAL
  3235. ( ipRecid AS RECID ) :
  3236. /*------------------------------------------------------------------------------*/
  3237. /* Purpose: */
  3238. /* Notes: */
  3239. /*------------------------------------------------------------------------------*/
  3240. DEFINE VARIABLE lSammFak AS LOG NO-UNDO.
  3241. DEFINE VARIABLE hAufko AS HANDLE NO-UNDO.
  3242. DEFINE VARIABLE hrawTable AS HANDLE NO-UNDO.
  3243. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
  3244. DEFINE VARIABLE lJa AS LOGICAL NO-UNDO.
  3245. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  3246. DEFINE BUFFER bAufko FOR Aufko.
  3247. DEFINE BUFFER xAufko FOR Aufko.
  3248. DEFINE BUFFER bAufze FOR Aufze.
  3249. hAufko = BUFFER bAufko:HANDLE.
  3250. hrawTable = BUFFER rawTable:HANDLE.
  3251. DISABLE TRIGGERS FOR LOAD OF AufLot .
  3252. DISABLE TRIGGERS FOR LOAD OF RuestAuf .
  3253. lRetVal = FALSE.
  3254. TRANS00:
  3255. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  3256. FIND Aufko WHERE RECID(Aufko) = ipRecid EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
  3257. IF NOT AVAILABLE Aufko AND
  3258. LOCKED Aufko THEN
  3259. DO:
  3260. lJa = DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getLockedUser':U, ipRecid), ?, ?) NO-ERROR.
  3261. UNDO TRANS00, LEAVE TRANS00.
  3262. END.
  3263. IF NOT AVAILABLE Aufko THEN UNDO TRANS00, LEAVE TRANS00.
  3264. FIND Tabel NO-LOCK USE-INDEX Tabel-k1
  3265. WHERE Tabel.Firma = Aufko.Firma
  3266. AND Tabel.RecArt = 'FAKART'
  3267. AND Tabel.CodeC = ''
  3268. AND Tabel.CodeI = Aufko.Fak_Art
  3269. AND Tabel.Sprcd = 1 NO-ERROR.
  3270. lSammFak = IF Tabel.Int_3 = 4 THEN TRUE ELSE FALSE.
  3271. FOR EACH bAufze NO-LOCK OF Aufko:
  3272. FIND Aufze WHERE RECID(Aufze) = RECID(bAufze) EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
  3273. IF NOT AVAILABLE Aufze AND
  3274. LOCKED Aufze THEN
  3275. DO:
  3276. lJa = DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getLockedUser':U, ipRecid), ?, ?) NO-ERROR.
  3277. UNDO TRANS00, LEAVE TRANS00.
  3278. END.
  3279. IF Aufze.Artnr = 0 THEN
  3280. DO:
  3281. DELETE Aufze.
  3282. NEXT.
  3283. END.
  3284. IF Aufze.Trnr > 0 THEN
  3285. DO:
  3286. lJa = DYNAMIC-FUNCTION ('deleteArtbw':U, Aufze.Trnr, 0) NO-ERROR.
  3287. IF NOT lJa THEN UNDO TRANS00, LEAVE TRANS00.
  3288. END.
  3289. DYNAMIC-FUNCTION ('updateRuestAuftrag':U, 9, RECID(Aufze) ) NO-ERROR.
  3290. FIND FIRST RuestAuf NO-LOCK OF Aufze NO-ERROR.
  3291. IF AVAILABLE RuestAuf THEN
  3292. DO:
  3293. lJa = DYNAMIC-FUNCTION ('deleteRuestAuf':U, RECID(RuestAuf)) NO-ERROR.
  3294. IF NOT lJa THEN UNDO TRANS00, LEAVE TRANS00.
  3295. END.
  3296. IF Aufze.lVerfall OR
  3297. Aufze.lLotnr THEN
  3298. DO:
  3299. lJa = DYNAMIC-FUNCTION ('deleteAufLot':U, RECID(Aufze)) NO-ERROR.
  3300. IF NOT lJa THEN UNDO TRANS00, LEAVE TRANS00.
  3301. END.
  3302. DELETE Aufze.
  3303. END.
  3304. DO WHILE TRUE:
  3305. IF Aufko.Samm_Nr = 0 THEN LEAVE.
  3306. IF NOT lSammFak THEN LEAVE.
  3307. FOR EACH bAufko NO-LOCK USE-INDEX Aufko-k4
  3308. WHERE bAufko.Firma = Aufko.Firma
  3309. AND bAufko.Knr = Aufko.Knr
  3310. AND bAufko.Fak_Art = Aufko.Fak_Art
  3311. AND bAufko.Samm_Nr = Aufko.Samm_Nr
  3312. AND bAufko.Aufnr <> Aufko.Aufnr:
  3313. FIND xAufko WHERE RECID(xAufko) = RECID(bAufko) EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
  3314. IF NOT AVAILABLE xAufko AND
  3315. LOCKED xAufko THEN
  3316. DO:
  3317. lJa = DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getLockedUser':U, RECID(bAufko)), ?, ?) NO-ERROR.
  3318. UNDO TRANS00, LEAVE TRANS00.
  3319. END.
  3320. xAufko.Gedruckt = FALSE.
  3321. IF Tabel.Int_2 = xAufko.Auf_Sta THEN xAufko.Auf_Sta = xAufko.Auf_Sta - 1.
  3322. RELEASE xAufko.
  3323. END.
  3324. LEAVE.
  3325. END.
  3326. FOR EACH AufGebKo OF Aufko:
  3327. DELETE AufGebKo.
  3328. END.
  3329. FOR EACH AufGKon OF Aufko:
  3330. DELETE AufGKon.
  3331. END.
  3332. FOR EACH AufRabSu OF Aufko:
  3333. DELETE AufRabSu.
  3334. END.
  3335. FOR EACH AufSpRab USE-INDEX AufSpRab-k1
  3336. WHERE AufSpRab.Firma = Aufko.Firma
  3337. AND AufSpRab.Aufnr = Aufko.Aufnr:
  3338. DELETE AufSpRab.
  3339. END.
  3340. DELETE Aufko.
  3341. RELEASE Aufko.
  3342. lRetVal = TRUE.
  3343. LEAVE.
  3344. END.
  3345. RETURN lRetVal.
  3346. END FUNCTION.
  3347. /* _UIB-CODE-BLOCK-END */
  3348. &ANALYZE-RESUME
  3349. &ENDIF
  3350. &IF DEFINED(EXCLUDE-deleteAufzeile) = 0 &THEN
  3351. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION deleteAufzeile Procedure
  3352. FUNCTION deleteAufzeile RETURNS LOGICAL
  3353. ( ipRecid AS RECID ) :
  3354. /*------------------------------------------------------------------------------*/
  3355. /* Purpose: */
  3356. /* Notes: */
  3357. /*------------------------------------------------------------------------------*/
  3358. DEFINE VARIABLE lSammFak AS LOG NO-UNDO.
  3359. DEFINE VARIABLE hAufko AS HANDLE NO-UNDO.
  3360. DEFINE VARIABLE hrawTable AS HANDLE NO-UNDO.
  3361. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
  3362. DEFINE VARIABLE lJa AS LOGICAL NO-UNDO.
  3363. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  3364. DEFINE BUFFER bAufko FOR Aufko.
  3365. DEFINE BUFFER xAufko FOR Aufko.
  3366. DISABLE TRIGGERS FOR LOAD OF AufLot .
  3367. DISABLE TRIGGERS FOR LOAD OF RuestAuf .
  3368. lRetVal = FALSE.
  3369. TRANS00:
  3370. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  3371. FIND Aufze WHERE RECID(Aufze) = ipRecid EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
  3372. IF NOT AVAILABLE Aufze AND
  3373. LOCKED Aufze THEN
  3374. DO:
  3375. lJa = DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getLockedUser':U, ipRecid), ?, ?) NO-ERROR.
  3376. UNDO TRANS00, LEAVE TRANS00.
  3377. END.
  3378. IF NOT AVAILABLE Aufze THEN UNDO TRANS00, LEAVE TRANS00.
  3379. FIND Aufko NO-LOCK OF Aufze NO-ERROR.
  3380. IF NOT AVAILABLE Aufko THEN
  3381. DO:
  3382. lJa = DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getMeldung':U, 305, 1), ?, ?) NO-ERROR.
  3383. UNDO TRANS00, LEAVE TRANS00.
  3384. END.
  3385. FIND Tabel NO-LOCK USE-INDEX Tabel-k1
  3386. WHERE Tabel.Firma = Aufko.Firma
  3387. AND Tabel.RecArt = 'FAKART'
  3388. AND Tabel.CodeC = ''
  3389. AND Tabel.CodeI = Aufko.Fak_Art
  3390. AND Tabel.Sprcd = 1 NO-ERROR.
  3391. lSammFak = (IF Tabel.Int_3 = 4 THEN TRUE ELSE FALSE).
  3392. IF Aufze.Trnr > 0 THEN
  3393. DO:
  3394. lJa = DYNAMIC-FUNCTION ('deleteArtbw':U, Aufze.Trnr, 0) NO-ERROR.
  3395. IF NOT lJa THEN UNDO TRANS00, LEAVE TRANS00.
  3396. END.
  3397. DYNAMIC-FUNCTION ('updateRuestAuftrag':U, 9, RECID(Aufze) ).
  3398. FIND FIRST RuestAuf NO-LOCK OF Aufze NO-ERROR.
  3399. IF AVAILABLE RuestAuf THEN
  3400. DO:
  3401. lJa = DYNAMIC-FUNCTION ('deleteRuestAuf':U, RECID(RuestAuf)) NO-ERROR.
  3402. IF NOT lJa THEN UNDO TRANS00, LEAVE TRANS00.
  3403. END.
  3404. IF Aufze.lVerfall OR
  3405. Aufze.lLotnr THEN
  3406. DO:
  3407. lJa = DYNAMIC-FUNCTION ('deleteAufLot':U, RECID(Aufze)) NO-ERROR.
  3408. IF NOT lJa THEN UNDO TRANS00, LEAVE TRANS00.
  3409. END.
  3410. DELETE Aufze.
  3411. DO WHILE TRUE:
  3412. IF Aufko.Samm_Nr = 0 THEN LEAVE.
  3413. IF NOT lSammFak THEN LEAVE.
  3414. FOR EACH bAufko NO-LOCK USE-INDEX Aufko-k4
  3415. WHERE bAufko.Firma = Aufko.Firma
  3416. AND bAufko.Knr = Aufko.Knr
  3417. AND bAufko.Fak_Art = Aufko.Fak_Art
  3418. AND bAufko.Samm_Nr = Aufko.Samm_Nr:
  3419. FIND xAufko WHERE RECID(xAufko) = RECID(bAufko) EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
  3420. IF NOT AVAILABLE xAufko AND
  3421. LOCKED xAufko THEN
  3422. DO:
  3423. lJa = DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getLockedUser':U, RECID(bAufko)), ?, ?) NO-ERROR.
  3424. UNDO TRANS00, LEAVE TRANS00.
  3425. END.
  3426. xAufko.Gedruckt = FALSE.
  3427. IF Tabel.Int_2 = xAufko.Auf_Sta THEN xAufko.Auf_Sta = xAufko.Auf_Sta - 1.
  3428. RELEASE xAufko.
  3429. END.
  3430. LEAVE.
  3431. END.
  3432. lRetVal = TRUE.
  3433. RELEASE Aufze .
  3434. RELEASE Aufko .
  3435. RELEASE Tabel .
  3436. RELEASE bAufko .
  3437. RELEASE xAufko .
  3438. RELEASE Artbw .
  3439. RELEASE RuestAuf.
  3440. RELEASE AufLot .
  3441. RELEASE rawTable.
  3442. LEAVE.
  3443. END.
  3444. RETURN lRetVal.
  3445. END FUNCTION.
  3446. /* _UIB-CODE-BLOCK-END */
  3447. &ANALYZE-RESUME
  3448. &ENDIF
  3449. &IF DEFINED(EXCLUDE-deleteRuestAuf) = 0 &THEN
  3450. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION deleteRuestAuf Procedure
  3451. FUNCTION deleteRuestAuf RETURNS LOGICAL
  3452. ( iprRuestAuf AS RECID ):
  3453. /*------------------------------------------------------------------------------*/
  3454. /* Purpose: */
  3455. /* Parameters: <none> */
  3456. /* Notes: */
  3457. /*------------------------------------------------------------------------------*/
  3458. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO INIT TRUE.
  3459. TRANS00:
  3460. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  3461. FIND RuestAuf WHERE RECID(RuestAuf) = iprRuestAuf EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
  3462. IF NOT AVAILABLE RuestAuf AND
  3463. NOT LOCKED RuestAuf THEN LEAVE.
  3464. IF LOCKED RuestAuf THEN
  3465. DO:
  3466. DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getLockedUser':U, iprRuestAuf), ?, ?) NO-ERROR.
  3467. lRetVal = FALSE.
  3468. LEAVE.
  3469. END.
  3470. DO WHILE lHoReLager: /* aus properties.i */
  3471. FIND FIRST HoReLager EXCLUSIVE-LOCK
  3472. WHERE HoReLager.Firma = Firma
  3473. AND HoReLager.cSort = RuestAuf.Lagerort NO-WAIT NO-ERROR.
  3474. IF NOT AVAILABLE HoReLager AND
  3475. NOT LOCKED HoReLager THEN LEAVE.
  3476. IF LOCKED HoReLager THEN
  3477. DO:
  3478. FIND FIRST HoReLager NO-LOCK
  3479. WHERE HoReLager.Firma = Firma
  3480. AND HoReLager.cSort = RuestAuf.Lagerort NO-ERROR.
  3481. DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getLockedUser':U, RECID(HoReLager)), ?, ?) NO-ERROR.
  3482. RELEASE HoReLager.
  3483. lRetVal = FALSE.
  3484. LEAVE TRANS00.
  3485. END.
  3486. HoReLager.Bestand = HoReLager.Bestand + RuestAuf.MGeli.
  3487. RELEASE HoReLager.
  3488. LEAVE.
  3489. END.
  3490. DELETE RuestAuf .
  3491. RELEASE RuestAuf .
  3492. RELEASE HoReLager.
  3493. LEAVE.
  3494. END.
  3495. RETURN lRetVal.
  3496. END FUNCTION.
  3497. /* _UIB-CODE-BLOCK-END */
  3498. &ANALYZE-RESUME
  3499. &ENDIF
  3500. &IF DEFINED(EXCLUDE-fillArtbwFromAufze) = 0 &THEN
  3501. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION fillArtbwFromAufze Procedure
  3502. FUNCTION fillArtbwFromAufze RETURNS LOGICAL
  3503. ( INPUT-OUTPUT iohtAufze AS HANDLE ) :
  3504. /*------------------------------------------------------------------------------*/
  3505. /* Purpose: */
  3506. /* Parameters: <none> */
  3507. /* Notes: */
  3508. /*------------------------------------------------------------------------------*/
  3509. DEFINE VARIABLE iAufnr AS INTEGER NO-UNDO.
  3510. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO.
  3511. DEFINE VARIABLE iTrnr AS INTEGER NO-UNDO.
  3512. DEFINE VARIABLE hArtbw AS HANDLE NO-UNDO.
  3513. DEFINE BUFFER bAufko FOR Aufko.
  3514. DEFINE BUFFER bArtbw FOR Artbw.
  3515. DEFINE BUFFER bArtst FOR Artst.
  3516. iAufnr = iohtAufze::Aufnr.
  3517. iArtnr = iohtAufze::Artnr.
  3518. iTrnr = iohtAufze::Trnr .
  3519. IF iArtnr = 0 THEN RETURN TRUE.
  3520. FIND bAufko NO-LOCK
  3521. WHERE bAufko.Firma = Firma
  3522. AND bAufko.Aufnr = iAufnr.
  3523. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  3524. FIND bArtbw
  3525. WHERE bArtbw.Firma = Firma
  3526. AND bArtbw.Trnr = iTrnr NO-ERROR.
  3527. IF NOT AVAILABLE bArtbw THEN
  3528. DO:
  3529. IF iTrnr = 0 THEN
  3530. DO:
  3531. FIND LAST bArtbw NO-LOCK USE-INDEX Artbw-k1
  3532. WHERE bArtbw.Firma = Firma NO-ERROR.
  3533. IF AVAILABLE bArtbw THEN iTrnr = bArtbw.Trnr + 1.
  3534. ELSE iTrnr = 1.
  3535. iohtAufze::Trnr = iTrnr.
  3536. END.
  3537. CREATE bArtbw.
  3538. ASSIGN
  3539. bArtbw.Tr_Art = 01.
  3540. END.
  3541. hArtbw = BUFFER bArtbw:HANDLE.
  3542. hArtbw:BUFFER-COPY(iohtAufze).
  3543. ASSIGN
  3544. bArtbw.Menge = iohtAufze::MGeli
  3545. bArtbw.Datum = bAufko.Lief_Datum
  3546. bArtbw.Faknr = bAufko.Faknr
  3547. bArtbw.Fak_Dat = bAufko.Fak_Datum
  3548. bArtbw.Knr = bAufko.Knr
  3549. bArtbw.Fak_Knr = bAufko.Fak_Knr
  3550. bArtbw.Fak_Art = bAufko.Fak_Art
  3551. bArtbw.Abhol = bAufko.Abhol
  3552. bArtbw.Vertr = bAufko.Vertr
  3553. bArtbw.Kurs = iohtAufze::Kurs
  3554. bArtbw.Faktor = iohtAufze::Faktor
  3555. .
  3556. IF bArtbw.EP = 0 THEN
  3557. DO:
  3558. FIND bArtst NO-LOCK OF bArtbw.
  3559. IF bArtst.DEP <> 0 THEN iohtAufze::EP = bArtst.DEP.
  3560. ELSE
  3561. IF bArtst.LEP <> 0 THEN iohtAufze::EP = bArtst.LEP.
  3562. ELSE iohtAufze::EP = bArtst.Listen_EP.
  3563. bArtbw.EP = iohtAufze::EP.
  3564. END.
  3565. RELEASE bAufko.
  3566. RELEASE bArtbw.
  3567. RELEASE bArtst.
  3568. LEAVE.
  3569. END.
  3570. RETURN TRUE.
  3571. END FUNCTION.
  3572. /* _UIB-CODE-BLOCK-END */
  3573. &ANALYZE-RESUME
  3574. &ENDIF
  3575. &IF DEFINED(EXCLUDE-fillAufko) = 0 &THEN
  3576. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION fillAufko Procedure
  3577. FUNCTION fillAufko RETURNS LOGICAL
  3578. ( ipArt AS INTEGER, INPUT-OUTPUT iphAufko AS HANDLE ) :
  3579. /*------------------------------------------------------------------------------*/
  3580. /* Purpose: */
  3581. /* Parameters: <none> */
  3582. /* Notes: */
  3583. /*------------------------------------------------------------------------------*/
  3584. DEFINE VARIABLE cBenDaten AS CHARACTER NO-UNDO.
  3585. DEFINE VARIABLE vFirma AS CHARACTER NO-UNDO.
  3586. DEFINE VARIABLE AufAdr AS CHARACTER EXTENT 5 NO-UNDO.
  3587. DEFINE VARIABLE Knr AS INTEGER NO-UNDO.
  3588. DEFINE VARIABLE FwFakArt AS INTEGER NO-UNDO.
  3589. DEFINE VARIABLE FwAufSta AS INTEGER NO-UNDO.
  3590. DEFINE VARIABLE FwFahrer AS INTEGER NO-UNDO.
  3591. DEFINE VARIABLE FwLKW AS INTEGER NO-UNDO.
  3592. DEFINE VARIABLE FwBeiFahr AS INTEGER NO-UNDO.
  3593. DEFINE VARIABLE FwSprcd AS INTEGER NO-UNDO.
  3594. DEFINE VARIABLE retValue AS CHARACTER NO-UNDO.
  3595. DEFINE VARIABLE hAufko AS HANDLE NO-UNDO.
  3596. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  3597. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  3598. DEFINE VARIABLE iBinary AS INTEGER NO-UNDO.
  3599. DEFINE VARIABLE cBinary AS CHARACTER NO-UNDO.
  3600. DEFINE VARIABLE iWoTag AS INTEGER NO-UNDO.
  3601. DEFINE VARIABLE cLieferZeit AS CHARACTER NO-UNDO.
  3602. DEFINE VARIABLE iTime AS INTEGER NO-UNDO.
  3603. DEFINE BUFFER FTabel FOR Tabel.
  3604. DEFINE BUFFER ATabel FOR Tabel.
  3605. iTime = 0.
  3606. vFirma = iphAufko::Firma.
  3607. Knr = iphAufko::Knr.
  3608. cBenDaten = DYNAMIC-FUNCTION('GETBENUTZERDATEN':U).
  3609. AdFirma = DYNAMIC-FUNCTION('getAdMandant':U ).
  3610. FwSprcd = DYNAMIC-FUNCTION('GETFWSPRCD':U ).
  3611. cLieferZeit = DYNAMIC-FUNCTION('getFehlwert':U, vFirma, 'LIEFERDATUM').
  3612. IF cLieferZeit <> '' AND
  3613. cLieferZeit <> ? THEN
  3614. DO:
  3615. cLieferzeit = REPLACE(cLieferzeit, '.', ':').
  3616. cLieferzeit = REPLACE(cLieferzeit, '-', ':').
  3617. cLieferzeit = REPLACE(cLieferzeit, '/', ':').
  3618. DO ii = 1 TO NUM-ENTRIES(cLieferzeit, ':'):
  3619. CASE ii:
  3620. WHEN 1 THEN
  3621. iTime = iTime + (INTEGER(ENTRY(1, cLieferzeit, ':')) * 3600).
  3622. WHEN 2 THEN
  3623. iTime = iTime + (INTEGER(ENTRY(2, cLieferzeit, ':')) * 60 ).
  3624. END CASE.
  3625. END.
  3626. END.
  3627. FIND Adresse NO-LOCK USE-INDEX Adresse-k1
  3628. WHERE Adresse.Firma = AdFirma
  3629. AND Adresse.Knr = Knr NO-ERROR.
  3630. IF NOT AVAILABLE Adresse THEN RETURN FALSE.
  3631. FIND Debst NO-LOCK USE-INDEX Debst-k1
  3632. WHERE Debst.Firma = vFirma
  3633. AND Debst.Knr = Adresse.Knr NO-ERROR.
  3634. IF NOT AVAILABLE Debst THEN RETURN FALSE.
  3635. FIND FIRST tAufko NO-ERROR.
  3636. IF NOT AVAILABLE tAufko THEN CREATE tAufko.
  3637. hAufko = TEMP-TABLE tAufko:DEFAULT-BUFFER-HANDLE.
  3638. hAufko:BUFFER-COPY(iphAufko).
  3639. IF tAufko.Aufnr = 0 THEN
  3640. DO:
  3641. RUN NUMMER_LOESEN ( 1, OUTPUT tAufko.Aufnr ) NO-ERROR.
  3642. END.
  3643. DO WHILE ipArt = 0: /* Normale Auftragsbearbeitung */
  3644. FwFakArt = Debst.Fak_Art.
  3645. FwAufSta = 0.
  3646. tAufko.Abhol = FALSE.
  3647. LEAVE.
  3648. END.
  3649. DO WHILE ipArt = 1: /* Abholverkauf ( Kasse ) */
  3650. IF Debst.Fak_Art < 99 THEN FwFakArt = DYNAMIC-FUNCTION('GETABHOLFAKART':U) NO-ERROR.
  3651. ELSE FwFakArt = Debst.Fak_Art.
  3652. FwAufSta = DYNAMIC-FUNCTION('GETABHOLAUFSTATUS':U) NO-ERROR.
  3653. tAufko.Abhol = TRUE.
  3654. LEAVE.
  3655. END.
  3656. FIND FTabel NO-LOCK USE-INDEX Tabel-k1
  3657. WHERE FTabel.Firma = vFirma
  3658. AND FTabel.RecArt = 'FAKART'
  3659. AND FTabel.Sprcd = FwSprcd
  3660. AND FTabel.CodeC = ''
  3661. AND FTabel.CodeI = FwFakArt NO-ERROR.
  3662. IF NOT AVAILABLE FTabel THEN
  3663. DO:
  3664. FIND FIRST FTabel NO-LOCK USE-INDEX Tabel-k1
  3665. WHERE FTabel.Firma = vFirma
  3666. AND FTabel.RecArt = 'FAKART'
  3667. AND FTabel.CodeC = ''
  3668. AND FTabel.CodeI = FwFakArt NO-ERROR.
  3669. END.
  3670. IF NOT AVAILABLE FTabel THEN RETURN FALSE.
  3671. FIND ATabel NO-LOCK USE-INDEX Tabel-k1
  3672. WHERE ATabel.Firma = vFirma
  3673. AND ATabel.RecArt = 'AUFSTATUS'
  3674. AND ATabel.Sprcd = FwSprcd
  3675. AND ATabel.CodeC = ''
  3676. AND ATabel.CodeI = FwAufSta NO-ERROR.
  3677. IF NOT AVAILABLE ATabel THEN
  3678. DO:
  3679. FIND FIRST ATabel NO-LOCK USE-INDEX Tabel-k1
  3680. WHERE ATabel.Firma = vFirma
  3681. AND ATabel.RecArt = 'AUFSTATUS'
  3682. AND ATabel.CodeC = ''
  3683. AND ATabel.CodeI = FwAufSta NO-ERROR.
  3684. END.
  3685. IF NOT AVAILABLE ATabel THEN RETURN FALSE.
  3686. FwLKW = 0.
  3687. FwFahrer = 0.
  3688. FwBeiFahr = 0.
  3689. GET-KEY-VALUE SECTION 'FwAuftrag' KEY 'FwLKW' VALUE retValue.
  3690. IF retValue <> ? THEN FwLKW = INTEGER(retValue).
  3691. GET-KEY-VALUE SECTION 'FwAuftrag' KEY 'FwFahrer' VALUE retValue.
  3692. IF retValue <> ? THEN FwFahrer = INTEGER(retValue).
  3693. GET-KEY-VALUE SECTION 'FwAuftrag' KEY 'FwBeiFahr' VALUE retValue.
  3694. IF retValue <> ? THEN FwBeiFahr = INTEGER(retValue).
  3695. ASSIGN
  3696. tAufko.Fak_Art = FwFakArt
  3697. tAufko.Auf_Sta = FwAufSta.
  3698. DO WHILE TRUE:
  3699. IF Debst.KnrLie <> 0 AND
  3700. Debst.KnrLie <> Debst.Knr THEN
  3701. DO:
  3702. ASSIGN
  3703. tAufko.Knr = Debst.KnrLie
  3704. tAufko.Fak_Knr = Debst.Knr.
  3705. LEAVE.
  3706. END.
  3707. IF Debst.KnrFak <> 0 AND
  3708. Debst.KnrFak <> Debst.Knr THEN
  3709. DO:
  3710. ASSIGN
  3711. tAufko.Fak_Knr = Debst.KnrFak.
  3712. LEAVE.
  3713. END.
  3714. ASSIGN
  3715. tAufko.Knr = Debst.Knr
  3716. tAufko.Fak_Knr = Debst.Knr.
  3717. LEAVE.
  3718. END.
  3719. FIND Waehrung NO-LOCK
  3720. WHERE Waehrung.Firma = Debst.Firma
  3721. AND Waehrung.FRW = Debst.FRW NO-ERROR.
  3722. ASSIGN
  3723. tAufko.Auf_Datum = TODAY
  3724. tAufko.Lief_Datum = (IF iTime = 0 THEN TODAY ELSE (IF TIME > iTime THEN TODAY + 2 ELSE TODAY + 1))
  3725. tAufko.Kond_Datum = TODAY
  3726. tAufko.Fak_Datum = ?
  3727. tAufko.I_Best = ''
  3728. tAufko.U_Ref = ENTRY(2, cBenDaten, CHR(01))
  3729. tAufko.Vertr = Debst.Vertr
  3730. tAufko.Rabatt = 0
  3731. tAufko.Preis_Grp = Debst.Preis_Grp
  3732. tAufko.Ku_Grp = Debst.Ku_Grp
  3733. tAufko.Rab_Grp = Debst.Rab_Grp
  3734. tAufko.Lief_Bed = Debst.Lief_Bed
  3735. tAufko.Avis = Debst.Avis
  3736. tAufko.Frw = Debst.FRW
  3737. tAufko.Kurs = Waehrung.Kurs
  3738. tAufko.Faktor = Waehrung.Faktor
  3739. tAufko.Gedruckt = FALSE
  3740. tAufko.WW = 0
  3741. tAufko.Wpfl = 0
  3742. tAufko.Wust = 0
  3743. tAufko.Auf_Tot = 0
  3744. tAufko.Faknr = 0
  3745. tAufko.Bar_Fak = FALSE
  3746. tAufko.Bar_Betr = 0
  3747. tAufko.Bar_Skonto = 0
  3748. tAufko.Bar_Konto = ''
  3749. tAufko.Adresse = ''
  3750. tAufko.GG_Berech = Debst.Geb_rg
  3751. tAufko.Kopf_Text = ''
  3752. tAufko.Fuss_Text = ''
  3753. tAufko.Samm_Nr = 0
  3754. tAufko.SK_Ber = 0
  3755. tAufko.Verbucht = FALSE
  3756. tAufko.Rueckst = FALSE
  3757. tAufko.Fak_KTnr = 0
  3758. tAufko.Fak_FTnr = 0
  3759. tAufko.Filiale = 0
  3760. tAufko.Tour_Nr1 = Debst.Tour_Nr1
  3761. tAufko.Tour_Nr2 = Debst.Tour_Nr2
  3762. tAufko.Konto = Debst.Konto
  3763. tAufko.Geb_Rg = Debst.Geb_Rg
  3764. tAufko.MWST_Nr = ''
  3765. tAufko.Passant = Debst.Passant
  3766. tAufko.Auf_Text = Debst.Auf_Text
  3767. tAufko.Bar_Text = Debst.Bemerk
  3768. tAufko.Abh_Text = Debst.Bar_Text
  3769. tAufko.Zei_Rab_Art = Debst.Zei_Rab_Art
  3770. tAufko.Zei_Rab_Wert = Debst.Zei_Rab_Wert
  3771. tAufko.Auf_Rab_Art = Debst.Auf_Rab_Art
  3772. tAufko.Auf_Rab_Wert = Debst.Auf_Rab_Wert
  3773. tAufko.Abh_Rab_Art = Debst.Abh_Rab_Art
  3774. tAufko.Abh_Rab_Wert = Debst.Abh_Rab_Wert
  3775. tAufko.Zuschl_Art = Debst.Zuschl_Art
  3776. tAufko.Zuschl_Wert = Debst.Zuschl_Wert
  3777. tAufko.Ablad_Vor = Debst.Ablad_Vor
  3778. tAufko.Wirt_So = Debst.Wirt_So
  3779. tAufko.Ablad_Vor_Text = Debst.Ablad_Vor_Text
  3780. tAufko.Wirt_So_Text = Debst.Wirt_So_Text
  3781. tAufko.MWST = Debst.MWST
  3782. tAufko.Kond = Debst.Kond
  3783. tAufko.LKW = FwLKW
  3784. tAufko.Fahrer = FwFahrer
  3785. tAufko.BeiFahrer = FwBeiFahr.
  3786. IF tAufko.Konto = '' THEN
  3787. DO:
  3788. FIND SteuNr USE-INDEX SteuNr-k1
  3789. WHERE SteuNr.Firma = vFirma NO-LOCK.
  3790. tAufko.Konto = SteuNr.Konto_Debi.
  3791. END.
  3792. IF tAufko.Passant THEN
  3793. DO:
  3794. i1 = 5.
  3795. DO ii = 11 TO 1 BY -1:
  3796. IF Adresse.Anschrift[ii] = '' THEN NEXT.
  3797. tAufko.Adresse[i1] = Adresse.Anschrift[ii].
  3798. i1 = i1 - 1.
  3799. IF i1 = 0 THEN LEAVE.
  3800. END.
  3801. END.
  3802. IF ipArt = 1 THEN tAufko.Lief_Datum = TODAY.
  3803. ELSE
  3804. DO:
  3805. /* -------------------------------------------------------------------------- */
  3806. /* Lieferdatum anhand eines möglichen Liefertages ermitteln */
  3807. /* -------------------------------------------------------------------------- */
  3808. DO WHILE TRUE:
  3809. FIND Kalender NO-LOCK
  3810. WHERE Kalender.Firma = Firma
  3811. AND Kalender.EreignisDatum = DATETIME-TZ (tAufko.Lief_Datum) NO-ERROR.
  3812. IF NOT AVAILABLE Kalender THEN LEAVE.
  3813. tAufko.Lief_Datum = tAufko.Lief_Datum + 1.
  3814. END.
  3815. iBinary = Debst.Liefertag.
  3816. iBinary = NumberSystems:integer2Binary(iBinary).
  3817. cBinary = STRING(iBinary,'9999999').
  3818. DO WHILE iBinary > 0:
  3819. iWoTag = WEEKDAY(tAufko.Lief_Datum).
  3820. IF SUBSTRING(cBinary, iWoTag, 01) = '1' THEN LEAVE.
  3821. tAufko.Lief_Datum = tAufko.Lief_Datum + 1.
  3822. DO WHILE TRUE:
  3823. FIND Kalender NO-LOCK
  3824. WHERE Kalender.Firma = Firma
  3825. AND Kalender.EreignisDatum = DATETIME-TZ (tAufko.Lief_Datum) NO-ERROR.
  3826. IF NOT AVAILABLE Kalender THEN LEAVE.
  3827. tAufko.Lief_Datum = tAufko.Lief_Datum + 1.
  3828. END.
  3829. END.
  3830. END.
  3831. iphAufko:BUFFER-COPY(hAufko).
  3832. RETURN TRUE.
  3833. END FUNCTION.
  3834. /* _UIB-CODE-BLOCK-END */
  3835. &ANALYZE-RESUME
  3836. &ENDIF
  3837. &IF DEFINED(EXCLUDE-fillAufRabSu) = 0 &THEN
  3838. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION fillAufRabSu Procedure
  3839. FUNCTION fillAufRabSu RETURNS LOGICAL
  3840. ( /* parameter-definitions */ ) :
  3841. /*------------------------------------------------------------------------------*/
  3842. /* Purpose: */
  3843. /* Parameters: <none> */
  3844. /* Notes: */
  3845. /*------------------------------------------------------------------------------*/
  3846. DEFINE VARIABLE nMenge AS DECIMAL NO-UNDO.
  3847. DEFINE BUFFER bRabSumm FOR RabSumm .
  3848. DEFINE BUFFER bAufRabSu FOR AufRabSu.
  3849. FIND FIRST tAufze NO-ERROR.
  3850. EMPTY TEMP-TABLE tAufRabSu.
  3851. FOR EACH bAufRabSu NO-LOCK
  3852. WHERE bAufRabSu.Firma = tAufze.Firma
  3853. AND bAufRabSu.Aufnr = tAufze.Aufnr:
  3854. CREATE tAufRabSu.
  3855. BUFFER-COPY bAufRabSu TO tAufRabSu
  3856. ASSIGN
  3857. tAufRabSu.M_Menge = 0.0
  3858. tAufRabSu.M_Betrag = 0.0
  3859. tAufRabSu.M_Inhalt = 0.0
  3860. tAufRabSu.R_Menge = 0.0
  3861. tAufRabSu.R_Betrag = 0.0
  3862. tAufRabSu.R_Inhalt = 0.0
  3863. tAufRabSu.F_Wert = 0.0
  3864. tAufRabSu.A_Wert = 0.0.
  3865. RELEASE bAufRabSu.
  3866. END.
  3867. nMenge = 0.
  3868. FOR EACH tAufze:
  3869. IF tAufze.Artnr = 0 OR
  3870. tAufze.Rab_Su_Grp = 0 OR
  3871. tAufze.Preis = 0 THEN
  3872. DO:
  3873. ASSIGN
  3874. tAufze.Auf_Rab = 0
  3875. tAufze.Abh_Rab = 0
  3876. tAufze.Rab_Su_Art = 0
  3877. tAufze.Rab_Su_Grp = 0.
  3878. NEXT.
  3879. END.
  3880. FIND tAufRabSu
  3881. WHERE tAufRabSu.Firma = tAufze.Firma
  3882. AND tAufRabSu.Aufnr = tAufze.Aufnr
  3883. AND tAufRabSu.Rab_Summ = tAufze.Rab_Su_Grp
  3884. AND tAufRabSu.MWST_Cd = tAufze.WuCd NO-ERROR.
  3885. IF NOT AVAILABLE tAufRabSu THEN
  3886. DO:
  3887. FIND FIRST bRabSumm
  3888. WHERE bRabSumm.Firma = tAufze.Firma
  3889. AND bRabSumm.Rab_Summ = tAufze.Rab_Su_Grp.
  3890. CREATE tAufRabSu.
  3891. ASSIGN
  3892. tAufRabSu.Firma = tAufze.Firma
  3893. tAufRabSu.Aufnr = tAufze.Aufnr
  3894. tAufRabSu.Rab_Summ = tAufze.Rab_Su_Grp
  3895. tAufRabSu.MWST_Cd = tAufze.WuCd
  3896. tAufRabSu.F_Art = bRabSumm.F_Rab_Art
  3897. tAufRabSu.F_Proz_Betr = bRabSumm.F_Proz_Betr
  3898. tAufRabSu.A_Art = bRabSumm.A_Rab_Art
  3899. tAufRabSu.A_Proz_Betr = bRabSumm.A_Proz_Betr.
  3900. END.
  3901. ASSIGN
  3902. tAufRabSu.M_Menge = tAufRabSu.M_Menge + tAufze.MGeli
  3903. tAufRabSu.M_Betrag = tAufRabSu.M_Betrag + tAufze.Net_Betr
  3904. tAufRabSu.M_Inhalt = tAufRabSu.M_Inhalt + tAufze.Liter.
  3905. CASE tAufRabSu.F_Art:
  3906. WHEN 0 THEN
  3907. nMenge = nMenge + tAufze.MGeli .
  3908. WHEN 1 THEN
  3909. nMenge = nMenge + tAufze.Net_Betr.
  3910. WHEN 2 THEN
  3911. nMenge = nMenge + tAufze.Liter .
  3912. END CASE.
  3913. IF tAufze.Rab_Su_Art = 0 THEN NEXT.
  3914. ASSIGN
  3915. tAufRabSu.R_Menge = tAufRabSu.R_Menge + tAufze.MGeli
  3916. tAufRabSu.R_Betrag = tAufRabSu.R_Betrag + tAufze.Net_Betr
  3917. tAufRabSu.R_Inhalt = tAufRabSu.R_Inhalt + tAufze.Liter.
  3918. END.
  3919. nMenge = ABS(nMenge).
  3920. FOR EACH tAufRabSu:
  3921. IF tAufRabSu.F_Art = 0 THEN
  3922. DO:
  3923. FIND LAST bRabSumm NO-LOCK
  3924. WHERE bRabSumm.Firma = tAufRabSu.Firma
  3925. AND bRabSumm.Rab_Summ = tAufRabSu.Rab_Summ
  3926. AND bRabSumm.Menge <= nMenge NO-ERROR.
  3927. END.
  3928. IF tAufRabSu.F_Art = 1 THEN
  3929. DO:
  3930. FIND LAST bRabSumm
  3931. WHERE bRabSumm.Firma = tAufRabSu.Firma
  3932. AND bRabSumm.Rab_Summ = tAufRabSu.Rab_Summ
  3933. AND bRabSumm.Menge = 0
  3934. AND bRabSumm.Betrag <= nMenge NO-LOCK NO-ERROR.
  3935. END.
  3936. IF tAufRabSu.F_Art = 2 THEN
  3937. DO:
  3938. FIND LAST bRabSumm
  3939. WHERE bRabSumm.Firma = tAufRabSu.Firma
  3940. AND bRabSumm.Rab_Summ = tAufRabSu.Rab_Summ
  3941. AND bRabSumm.Menge = 0
  3942. AND bRabSumm.Betrag = 0
  3943. AND bRabSumm.Inhalt <= (nMenge / 100) NO-LOCK NO-ERROR.
  3944. END.
  3945. IF NOT AVAILABLE bRabSumm THEN tAufRabSu.F_Wert = 0.
  3946. ELSE tAufRabSu.F_Wert = bRabSumm.F_Wert.
  3947. IF tAufRabSu.A_Art = 0 THEN
  3948. DO:
  3949. FIND LAST bRabSumm NO-LOCK
  3950. WHERE bRabSumm.Firma = tAufRabSu.Firma
  3951. AND bRabSumm.Rab_Summ = tAufRabSu.Rab_Summ
  3952. AND bRabSumm.Menge <= nMenge NO-ERROR.
  3953. END.
  3954. IF tAufRabSu.A_Art = 1 THEN
  3955. DO:
  3956. FIND LAST bRabSumm
  3957. WHERE bRabSumm.Firma = tAufRabSu.Firma
  3958. AND bRabSumm.Rab_Summ = tAufRabSu.Rab_Summ
  3959. AND bRabSumm.Menge = 0
  3960. AND bRabSumm.Betrag <= nMenge NO-LOCK NO-ERROR.
  3961. END.
  3962. IF tAufRabSu.A_Art = 2 THEN
  3963. DO:
  3964. FIND LAST bRabSumm
  3965. WHERE bRabSumm.Firma = tAufRabSu.Firma
  3966. AND bRabSumm.Rab_Summ = tAufRabSu.Rab_Summ
  3967. AND bRabSumm.Menge = 0
  3968. AND bRabSumm.Betrag = 0
  3969. AND bRabSumm.Inhalt <= (nMenge / 100) NO-LOCK NO-ERROR.
  3970. END.
  3971. IF NOT AVAILABLE bRabSumm THEN tAufRabSu.A_Wert = 0.
  3972. ELSE tAufRabSu.A_Wert = bRabSumm.A_Wert.
  3973. END.
  3974. FOR EACH tAufRabSu:
  3975. FIND bAufRabSu OF tAufRabSu NO-ERROR.
  3976. IF NOT AVAILABLE bAufRabSu THEN
  3977. DO:
  3978. CREATE bAufRabSu.
  3979. BUFFER-COPY tAufRabSu TO bAufRabSu.
  3980. RELEASE bAufRabSu.
  3981. NEXT.
  3982. END.
  3983. BUFFER-COPY tAufRabSu
  3984. EXCEPT Firma Aufnr /* Rab_Su_Grp WuCd */
  3985. TO bAufRabSu.
  3986. RELEASE bAufRabSu.
  3987. END.
  3988. RETURN TRUE.
  3989. END FUNCTION.
  3990. /* _UIB-CODE-BLOCK-END */
  3991. &ANALYZE-RESUME
  3992. &ENDIF
  3993. &IF DEFINED(EXCLUDE-FillAufSpRab) = 0 &THEN
  3994. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION FillAufSpRab Procedure
  3995. FUNCTION FillAufSpRab RETURNS LOGICAL
  3996. ( ) :
  3997. /*------------------------------------------------------------------------------*/
  3998. /* Purpose: */
  3999. /* Parameters: <none> */
  4000. /* Notes: */
  4001. /*------------------------------------------------------------------------------*/
  4002. DEFINE VARIABLE cFirma AS CHARACTER NO-UNDO.
  4003. DEFINE VARIABLE iAufnr AS INTEGER NO-UNDO.
  4004. DEFINE VARIABLE iPos AS INTEGER NO-UNDO.
  4005. DEFINE BUFFER bSpPrRab FOR SpPrRab .
  4006. DEFINE BUFFER bAufSpRab FOR AufSpRab.
  4007. DEFINE BUFFER bAufko FOR Aufko .
  4008. FIND FIRST tAufze.
  4009. FIND bAufko NO-LOCK
  4010. WHERE bAufko.Firma = tAufze.Firma
  4011. AND bAufko.Aufnr = tAufze.Aufnr.
  4012. EMPTY TEMP-TABLE tAufSpRab.
  4013. FOR EACH bAufSpRab
  4014. WHERE bAufSpRab.Firma = bAufko.Firma
  4015. AND bAufSpRab.Aufnr = bAufko.Aufnr:
  4016. CREATE tAufSpRab.
  4017. BUFFER-COPY bAufSpRab TO tAufSpRab
  4018. ASSIGN
  4019. tAufSpRab.Auf_Wert = 0
  4020. tAufSpRab.Menge = 0.
  4021. END.
  4022. FOR EACH tAufze
  4023. WHERE tAufze.Artnr > 0
  4024. AND tAufze.Auf_Sp_Grp > 0:
  4025. FIND tAufSpRab USE-INDEX AufSpRab-k1
  4026. WHERE tAufSpRab.Firma = tAufze.Firma
  4027. AND tAufSpRab.Aufnr = tAufze.Aufnr
  4028. AND tAufSpRab.Rab_Grp = tAufze.Auf_Sp_Grp NO-ERROR.
  4029. IF NOT AVAILABLE tAufSpRab THEN
  4030. DO:
  4031. CREATE tAufSpRab.
  4032. ASSIGN
  4033. tAufSpRab.Firma = tAufze.Firma
  4034. tAufSpRab.Aufnr = tAufze.Aufnr
  4035. tAufSpRab.Rab_Grp = tAufze.Auf_Sp_Grp.
  4036. END.
  4037. tAufSpRab.Menge = tAufSpRab.Menge + tAufze.MBest.
  4038. END.
  4039. FOR EACH tAufSpRab:
  4040. FIND LAST bSpPrRab NO-LOCK
  4041. WHERE bSpPrRab.Firma = bAufko.Firma
  4042. AND bSpPrRab.Knr = bAufko.Knr
  4043. AND bSpPrRab.Rab_Grp = tAufSpRab.Rab_Grp
  4044. AND bSpPrRab.Menge <= ABS(tAufSpRab.Menge)
  4045. AND bSpPrRab.Ab_Datum <= bAufko.Kond_Datum
  4046. AND bSpPrRab.Bis_Datum >= bAufko.Kond_Datum NO-ERROR.
  4047. IF AVAILABLE bSpPrRab THEN
  4048. DO:
  4049. ASSIGN
  4050. tAufSpRab.Auf_Proz_Betr = bSpPrRab.Auf_Proz_Betr
  4051. tAufSpRab.Auf_Wert = bSpPrRab.Auf_Wert.
  4052. END.
  4053. ELSE
  4054. DO:
  4055. FOR EACH tAufze
  4056. WHERE tAufze.Firma = bAufko.Firma
  4057. AND tAufze.Aufnr = bAufko.Aufnr
  4058. AND tAufze.Auf_Sp_Grp = tAufSpRab.Rab_Grp:
  4059. ASSIGN
  4060. tAufze.Auf_Sp_Rab = 0
  4061. tAufze.Auf_Sp_Wert = 0.
  4062. END.
  4063. END.
  4064. END.
  4065. FOR EACH tAufSpRab:
  4066. FIND bAufSpRab OF tAufSpRab NO-ERROR.
  4067. IF NOT AVAILABLE bAufSpRab THEN
  4068. DO:
  4069. CREATE bAufSpRab.
  4070. BUFFER-COPY tAufSpRab TO bAufSpRab.
  4071. END.
  4072. ELSE
  4073. DO:
  4074. ASSIGN
  4075. bAufSpRab.Auf_Proz_Betr = tAufSpRab.Auf_Proz_Betr
  4076. bAufSpRab.Auf_Wert = tAufSpRab.Auf_Wert.
  4077. END.
  4078. RELEASE bAufSpRab.
  4079. END.
  4080. RELEASE bAufko .
  4081. RELEASE bSpPrRab .
  4082. RELEASE bAufSpRab.
  4083. RETURN TRUE.
  4084. END FUNCTION.
  4085. /* _UIB-CODE-BLOCK-END */
  4086. &ANALYZE-RESUME
  4087. &ENDIF
  4088. &IF DEFINED(EXCLUDE-fillAufze) = 0 &THEN
  4089. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION fillAufze Procedure
  4090. FUNCTION fillAufze RETURNS INTEGER
  4091. ( INPUT-OUTPUT iphAufze AS HANDLE ) :
  4092. /*------------------------------------------------------------------------------*/
  4093. /* Purpose: */
  4094. /* Parameters: <none> */
  4095. /* Notes: */
  4096. /*------------------------------------------------------------------------------*/
  4097. DEFINE VARIABLE hAufze AS HANDLE NO-UNDO.
  4098. DEFINE VARIABLE xx AS INTEGER NO-UNDO.
  4099. DEFINE VARIABLE iKnr AS INTEGER NO-UNDO.
  4100. DEFINE VARIABLE hFeldKnr AS HANDLE NO-UNDO.
  4101. DEFINE VARIABLE dDatum AS DATE NO-UNDO.
  4102. DEFINE VARIABLE hFeldDatum AS HANDLE NO-UNDO.
  4103. DEFINE VARIABLE iPos AS INTEGER NO-UNDO.
  4104. DEFINE BUFFER bArtst FOR Artst .
  4105. DEFINE BUFFER bAufze FOR Aufze .
  4106. DEFINE BUFFER bArtbez FOR Artbez .
  4107. DEFINE BUFFER bWust FOR Wust .
  4108. DEFINE BUFFER bMWStAns FOR MWStAns .
  4109. DEFINE BUFFER bKGebinde FOR KGebinde.
  4110. DEFINE BUFFER bVGebinde FOR VGebinde.
  4111. DEFINE BUFFER bGGebinde FOR GGebinde.
  4112. DEFINE BUFFER bGebKonto FOR GebKonto.
  4113. EMPTY TEMP-TABLE tAufze.
  4114. CREATE tAufze.
  4115. hAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  4116. hAufze:BUFFER-COPY(iphAufze).
  4117. hFeldKnr = iphAufze:BUFFER-FIELD('Knr') NO-ERROR.
  4118. IF VALID-HANDLE ( hFeldKnr ) THEN iKnr = hFeldKnr:BUFFER-VALUE(0).
  4119. ELSE iKnr = 0.
  4120. hFeldDatum = iphAufze:BUFFER-FIELD('Datum') NO-ERROR.
  4121. IF VALID-HANDLE ( hFeldDatum ) THEN dDatum = hFeldDatum:BUFFER-VALUE(0).
  4122. ELSE dDatum = TODAY.
  4123. DYNAMIC-FUNCTION('createAufkoParam':U, tAufze.Firma, tAufze.Aufnr, iKnr, dDatum ) NO-ERROR.
  4124. FIND FIRST tParam.
  4125. IF tAufze.Artnr > 0 THEN
  4126. DO:
  4127. FIND bArtst NO-LOCK
  4128. WHERE bArtst.Firma = tAufze.Firma
  4129. AND bArtst.Artnr = tAufze.Artnr
  4130. AND bArtst.Inhalt = tAufze.Inhalt
  4131. AND bArtst.Jahr = tAufze.Jahr NO-ERROR.
  4132. IF NOT AVAILABLE bArtst THEN RETURN 213.
  4133. FIND bArtbez NO-LOCK
  4134. WHERE bArtbez.Firma = bArtst.Firma
  4135. AND bArtbez.Artnr = bArtst.Artnr
  4136. AND bArtbez.Inhalt = bArtst.Inhalt
  4137. AND bArtbez.Jahr = bArtst.Jahr
  4138. AND bArtbez.Sprcd = tParam.Sprcd NO-ERROR.
  4139. IF NOT AVAILABLE bArtbez THEN
  4140. DO:
  4141. FIND FIRST bArtbez NO-LOCK
  4142. WHERE bArtbez.Firma = bArtst.Firma
  4143. AND bArtbez.Artnr = bArtst.Artnr
  4144. AND bArtbez.Inhalt = bArtst.Inhalt
  4145. AND bArtbez.Jahr = bArtst.Jahr NO-ERROR.
  4146. END.
  4147. IF NOT AVAILABLE bArtbez THEN RETURN 222.
  4148. END.
  4149. IF tAufze.Pos = 0 THEN
  4150. DO:
  4151. FIND LAST bAufze NO-LOCK
  4152. WHERE bAufze.Firma = tAufze.Firma
  4153. AND bAufze.Aufnr = tAufze.Aufnr NO-ERROR.
  4154. IF AVAILABLE bAufze THEN iPos = bAufze.Pos + 5.
  4155. ELSE iPos = 5.
  4156. RELEASE bAufze.
  4157. tAufze.Pos = iPos.
  4158. END.
  4159. ASSIGN
  4160. tAufze.MBest = 0
  4161. tAufze.MGeli = 0
  4162. tAufze.MRuek = 0
  4163. tAufze.MKumm = 0
  4164. tAufze.KGeb_Me = 0
  4165. tAufze.VGeb_Me = 0
  4166. tAufze.GGeb_Me = 0
  4167. tAufze.KGeb_Be = 0
  4168. tAufze.VGeb_Be = 0
  4169. tAufze.GGeb_Be = 0
  4170. tAufze.KGeb_Ru = 0
  4171. tAufze.VGeb_Ru = 0
  4172. tAufze.GGeb_Ru = 0
  4173. tAufze.Preis = 0
  4174. tAufze.Rab_Art = 0
  4175. tAufze.Rab_Wert = 0
  4176. tAufze.Rab_Betr = 0
  4177. tAufze.Zus_Art = 0
  4178. tAufze.Zus_Wert = 0
  4179. tAufze.Zus_Betr = 0
  4180. tAufze.Bru_Betr = 0
  4181. tAufze.Net_Betr = 0
  4182. tAufze.WC = 0
  4183. tAufze.Alk_Gehalt = 0
  4184. tAufze.Aktion = FALSE
  4185. tAufze.TrNr = 0
  4186. tAufze.Verbucht = FALSE
  4187. tAufze.Aktion_Text = ''
  4188. tAufze.Rab_Su_Grp = 0
  4189. tAufze.Rab_Su_Art = 0
  4190. tAufze.Liter = 0
  4191. tAufze.Gewicht = 0
  4192. tAufze.Auf_Rab = 0
  4193. tAufze.Abh_Rab = 0
  4194. tAufze.KGebKto = ''
  4195. tAufze.VGebKto = ''
  4196. tAufze.GGebKto = ''
  4197. tAufze.EP = 0
  4198. tAufze.Auf_Sp_Proz_Betr = TRUE
  4199. tAufze.Auf_Sp_Wert = 0
  4200. tAufze.Auf_Sp_Rab = 0
  4201. tAufze.Auf_Sp_Grp = 0
  4202. tAufze.Frw = tParam.Frw
  4203. tAufze.Kurs = tParam.Kurs
  4204. tAufze.Faktor = tParam.Faktor
  4205. tAufze.Preis_Mut = FALSE.
  4206. IF tAufze.Artnr > 0 THEN
  4207. DO:
  4208. ASSIGN
  4209. tAufze.Bez1 = bArtbez.Bez1
  4210. tAufze.Bez2 = (IF bArtbez.Bez2_Druck THEN bArtbez.Bez2 ELSE '' )
  4211. tAufze.Rab_Art = tParam.Zei_Rab_Art
  4212. tAufze.Rab_Wert = tParam.Zei_Rab_Wert
  4213. tAufze.Zus_Art = tParam.Zuschl_Art
  4214. tAufze.Zus_Wert = tParam.Zuschl_Wert
  4215. tAufze.WC = bArtst.MWST
  4216. tAufze.Alk_Gehalt = bArtst.Alk_Gehalt
  4217. tAufze.Aktion = FALSE
  4218. tAufze.Sk_Ber = bArtst.Sk_Ber
  4219. tAufze.Netto = bArtst.Netto
  4220. tAufze.Lager = tParam.Lager
  4221. tAufze.TrNr = 0
  4222. tAufze.Verbucht = FALSE
  4223. tAufze.KGeb_Cd = bArtst.KGeb_Cd
  4224. tAufze.VGeb_Cd = bArtst.VGeb_Cd
  4225. tAufze.GGeb_Cd = bArtst.GGeb_Cd
  4226. tAufze.Lag_Buch = bArtst.Lager
  4227. tAufze.lLotnr = bArtst.lLotnr
  4228. tAufze.lVerfall = bArtst.lVerfall.
  4229. IF bArtst.DEP <> 0 THEN tAufze.EP = bArtst.DEP.
  4230. ELSE
  4231. IF bArtst.LEP <> 0 THEN tAufze.EP = bArtst.LEP.
  4232. ELSE tAufze.EP = bArtst.Listen_EP.
  4233. IF bArtst.Netto THEN
  4234. DO:
  4235. ASSIGN
  4236. tAufze.Rab_Art = 0
  4237. tAufze.Rab_Wert = 0.
  4238. END.
  4239. DO xx = 1 TO 10:
  4240. tAufze.Zustext[xx] = bArtbez.Zustext[xx].
  4241. END.
  4242. FIND bWust NO-LOCK USE-INDEX Wust-k1
  4243. WHERE bWust.CodeK = tParam.MWSt
  4244. AND bWust.CodeA = bArtst.MWSt NO-ERROR.
  4245. tAufze.WuCd = bWust.WuCd.
  4246. FIND LAST bMWSTAns NO-LOCK
  4247. WHERE bMWSTAns.MWST_Cd = tAufze.WuCd
  4248. AND bMWSTAns.Datum <= tParam.Kond_Datum.
  4249. tAufze.MWST% = bMWSTAns.Ansatz.
  4250. tAufze.MWST_Inkl = bWust.Incl.
  4251. DO WHILE TRUE:
  4252. FIND bKGebinde NO-LOCK
  4253. WHERE bKGebinde.Firma = tAufze.Firma
  4254. AND bKGebinde.Geb_Cd = tAufze.KGeb_Cd NO-ERROR.
  4255. IF NOT AVAILABLE bKGebinde THEN RETURN 1055.
  4256. IF bKGebinde.Geb_Kto = '' THEN LEAVE.
  4257. FIND bGebKonto NO-LOCK
  4258. WHERE bGebKonto.Firma = tAufze.Firma
  4259. AND bGebKonto.Geb_Cd = bKGebinde.Geb_Kto NO-ERROR.
  4260. IF NOT AVAILABLE bGebKonto THEN RETURN 1060.
  4261. tAufze.KGebKto = bGebKonto.Geb_Cd.
  4262. LEAVE.
  4263. END.
  4264. DO WHILE TRUE:
  4265. FIND bVGebinde NO-LOCK
  4266. WHERE bVGebinde.Firma = tAufze.Firma
  4267. AND bVGebinde.Geb_Cd = tAufze.VGeb_Cd NO-ERROR.
  4268. IF NOT AVAILABLE bVGebinde THEN RETURN 1056.
  4269. IF bVGebinde.Geb_Kto = '' THEN LEAVE.
  4270. FIND bGebKonto NO-LOCK
  4271. WHERE bGebKonto.Firma = tAufze.Firma
  4272. AND bGebKonto.Geb_Cd = bVGebinde.Geb_Kto NO-ERROR.
  4273. IF NOT AVAILABLE bGebKonto THEN RETURN 1061.
  4274. tAufze.VGebKto = bGebKonto.Geb_Cd.
  4275. LEAVE.
  4276. END.
  4277. DO WHILE TRUE:
  4278. FIND bGGebinde NO-LOCK
  4279. WHERE bGGebinde.Firma = tAufze.Firma
  4280. AND bGGebinde.Geb_Cd = tAufze.GGeb_Cd NO-ERROR.
  4281. IF NOT AVAILABLE bGGebinde THEN RETURN 1057.
  4282. IF bGGebinde.Geb_Kto = '' THEN LEAVE.
  4283. FIND bGebKonto NO-LOCK
  4284. WHERE bGebKonto.Firma = tAufze.Firma
  4285. AND bGebKonto.Geb_Cd = bGGebinde.Geb_Kto NO-ERROR.
  4286. IF NOT AVAILABLE bGebKonto THEN RETURN 1062.
  4287. tAufze.GGebKto = bGebKonto.Geb_Cd.
  4288. LEAVE.
  4289. END.
  4290. DO WHILE TRUE:
  4291. FIND RabTab NO-LOCK USE-INDEX RabTab-k1
  4292. WHERE RabTab.Firma = tAufze.Firma
  4293. AND RabTab.Ku_Rab = tParam.Rab_Grp
  4294. AND RabTab.Art_Rab = bArtst.Rab_Grp NO-ERROR.
  4295. IF NOT AVAILABLE RabTab THEN LEAVE.
  4296. ASSIGN
  4297. tAufze.Rab_Su_Grp = RabTab.Rab_Summ
  4298. tAufze.Rab_Su_Art = RabTab.Add_Art.
  4299. LEAVE.
  4300. END.
  4301. END.
  4302. iphAufze:BUFFER-COPY(hAufze).
  4303. RELEASE bArtst .
  4304. RELEASE bArtbez .
  4305. RELEASE bKGebinde.
  4306. RELEASE bVGebinde.
  4307. RELEASE bGGebinde.
  4308. RELEASE bGebKonto.
  4309. RELEASE bWust .
  4310. RELEASE bMWStAns .
  4311. RETURN 0.
  4312. END FUNCTION.
  4313. /* _UIB-CODE-BLOCK-END */
  4314. &ANALYZE-RESUME
  4315. &ENDIF
  4316. &IF DEFINED(EXCLUDE-getAbholSeite) = 0 &THEN
  4317. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getAbholSeite Procedure
  4318. FUNCTION getAbholSeite RETURNS INTEGER
  4319. ( /* parameter-definitions */ ) :
  4320. /*------------------------------------------------------------------------------*/
  4321. /* Purpose: */
  4322. /* Parameters: <none> */
  4323. /* Notes: */
  4324. /*------------------------------------------------------------------------------*/
  4325. FIND Steuer USE-INDEX Steuer-k1
  4326. WHERE Steuer.Firma = Firma NO-LOCK.
  4327. RETURN Steuer.Fwi18.
  4328. END FUNCTION.
  4329. /* _UIB-CODE-BLOCK-END */
  4330. &ANALYZE-RESUME
  4331. &ENDIF
  4332. &IF DEFINED(EXCLUDE-getAufstatus) = 0 &THEN
  4333. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getAufstatus Procedure
  4334. FUNCTION getAufstatus RETURNS CHARACTER
  4335. ( ipAufstatus AS INTEGER ) :
  4336. /*------------------------------------------------------------------------------*/
  4337. /* Purpose: */
  4338. /* Parameters: <none> */
  4339. /* Notes: */
  4340. /*------------------------------------------------------------------------------*/
  4341. FIND Tabel NO-LOCK USE-INDEX Tabel-k2
  4342. WHERE Tabel.Firma = Firma
  4343. AND Tabel.RecArt = 'AUFSTATUS'
  4344. AND Tabel.CodeI = ipAufstatus
  4345. AND Tabel.CodeC = ''
  4346. AND Tabel.Sprcd = 1 NO-ERROR.
  4347. IF AVAILABLE Tabel THEN RETURN Tabel.Bez1.
  4348. ELSE RETURN "??????????".
  4349. END FUNCTION.
  4350. /* _UIB-CODE-BLOCK-END */
  4351. &ANALYZE-RESUME
  4352. &ENDIF
  4353. &IF DEFINED(EXCLUDE-getDokumentArt) = 0 &THEN
  4354. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getDokumentArt Procedure
  4355. FUNCTION getDokumentArt RETURNS CHARACTER
  4356. ( ipFakart AS INTEGER ) :
  4357. /*------------------------------------------------------------------------------*/
  4358. /* Purpose: */
  4359. /* Parameters: <none> */
  4360. /* Notes: */
  4361. /*------------------------------------------------------------------------------*/
  4362. FIND Tabel NO-LOCK USE-INDEX Tabel-k2
  4363. WHERE Tabel.Firma = Firma
  4364. AND Tabel.RecArt = 'FAKART'
  4365. AND Tabel.CodeI = ipFakart
  4366. AND Tabel.CodeC = ''
  4367. AND Tabel.Sprcd = 1 NO-ERROR.
  4368. IF AVAILABLE Tabel THEN RETURN Tabel.Bez2.
  4369. ELSE RETURN "??????????".
  4370. END FUNCTION.
  4371. /* _UIB-CODE-BLOCK-END */
  4372. &ANALYZE-RESUME
  4373. &ENDIF
  4374. &IF DEFINED(EXCLUDE-getEpProz_Betr) = 0 &THEN
  4375. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getEpProz_Betr Procedure
  4376. FUNCTION getEpProz_Betr RETURNS LOGICAL
  4377. ( ipFirma AS CHARACTER ) :
  4378. /*------------------------------------------------------------------------------*/
  4379. /* Purpose: */
  4380. /* Parameters: <none> */
  4381. /* Notes: */
  4382. /*------------------------------------------------------------------------------*/
  4383. DEFINE VARIABLE lRetVal AS LOG INIT TRUE NO-UNDO.
  4384. FIND Steuer NO-LOCK
  4385. WHERE Steuer.Firma = ipFirma NO-ERROR.
  4386. IF NOT AVAILABLE Steuer THEN RETURN lRetVal.
  4387. lRetVal = (IF Steuer.Fwi09 = 0 THEN TRUE ELSE FALSE).
  4388. RELEASE Steuer.
  4389. RETURN lRetVal.
  4390. END FUNCTION.
  4391. /* _UIB-CODE-BLOCK-END */
  4392. &ANALYZE-RESUME
  4393. &ENDIF
  4394. &IF DEFINED(EXCLUDE-getFakart) = 0 &THEN
  4395. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getFakart Procedure
  4396. FUNCTION getFakart RETURNS CHARACTER
  4397. ( ipFakart AS INTEGER ) :
  4398. /*------------------------------------------------------------------------------*/
  4399. /* Purpose: */
  4400. /* Parameters: <none> */
  4401. /* Notes: */
  4402. /*------------------------------------------------------------------------------*/
  4403. FIND Tabel NO-LOCK USE-INDEX Tabel-k2
  4404. WHERE Tabel.Firma = Firma
  4405. AND Tabel.RecArt = 'FAKART'
  4406. AND Tabel.CodeI = ipFakart
  4407. AND Tabel.CodeC = ''
  4408. AND Tabel.Sprcd = 1 NO-ERROR.
  4409. IF AVAILABLE Tabel THEN RETURN Tabel.Bez1.
  4410. ELSE RETURN "??????????".
  4411. END FUNCTION.
  4412. /* _UIB-CODE-BLOCK-END */
  4413. &ANALYZE-RESUME
  4414. &ENDIF
  4415. &IF DEFINED(EXCLUDE-getHoReLagerId) = 0 &THEN
  4416. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getHoReLagerId Procedure
  4417. FUNCTION getHoReLagerId RETURNS INTEGER
  4418. ( ipiArtnr AS INTEGER, ipiInhalt AS INTEGER, ipiJahr AS INTEGER, ipiLager AS INTEGER ):
  4419. /*------------------------------------------------------------------------------*/
  4420. /* Purpose: */
  4421. /* Parameters: <none> */
  4422. /* Notes: */
  4423. /*------------------------------------------------------------------------------*/
  4424. DEFINE VARIABLE iRetVal AS INTEGER NO-UNDO INIT 0.
  4425. IF NOT lHoReLager THEN
  4426. DO:
  4427. iRetVal = INTEGER(STRING(ipiArtnr,'999999') + STRING(ipiInhalt,'9999') + STRING(ipiJahr)) NO-ERROR.
  4428. IF ERROR-STATUS:ERROR THEN RETURN 0.
  4429. RETURN iRetVal.
  4430. END.
  4431. FIND FIRST HoReLager NO-LOCK
  4432. WHERE HoReLager.Firma = Firma
  4433. AND HoReLager.Lager = ipiLager
  4434. AND HoReLager.Art = 1
  4435. AND HoReLager.Artnr = ipiArtnr
  4436. AND HoReLager.Inhalt = ipiInhalt
  4437. AND HoReLager.Jahr = ipiJahr NO-ERROR.
  4438. IF NOT AVAILABLE HoReLager THEN
  4439. DO:
  4440. FIND FIRST HoReLager NO-LOCK
  4441. WHERE HoReLager.Firma = Firma
  4442. AND HoReLager.Lager = ipiLager
  4443. AND HoReLager.Art = 1
  4444. AND HoReLager.Artnr = ipiArtnr
  4445. AND HoReLager.Inhalt = ipiInhalt NO-ERROR.
  4446. END.
  4447. IF NOT AVAILABLE HoReLager THEN
  4448. DO:
  4449. FIND FIRST HoReLager NO-LOCK
  4450. WHERE HoReLager.Firma = Firma
  4451. AND HoReLager.Lager = ipiLager
  4452. AND HoReLager.Art = 3
  4453. AND HoReLager.Artnr = ipiArtnr
  4454. AND HoReLager.Inhalt = ipiInhalt
  4455. AND HoReLager.Jahr = ipiJahr NO-ERROR.
  4456. END.
  4457. IF NOT AVAILABLE HoReLager THEN
  4458. DO:
  4459. FIND FIRST HoReLager NO-LOCK
  4460. WHERE HoReLager.Firma = Firma
  4461. AND HoReLager.Lager = ipiLager
  4462. AND HoReLager.Art = 3
  4463. AND HoReLager.Artnr = ipiArtnr
  4464. AND HoReLager.Inhalt = ipiInhalt NO-ERROR.
  4465. END.
  4466. IF AVAILABLE HoReLager THEN iRetVal = HoReLager.HoReLager_Id.
  4467. RETURN iRetVal.
  4468. END FUNCTION.
  4469. /* _UIB-CODE-BLOCK-END */
  4470. &ANALYZE-RESUME
  4471. &ENDIF
  4472. &IF DEFINED(EXCLUDE-getPreisAufze) = 0 &THEN
  4473. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getPreisAufze Procedure
  4474. FUNCTION getPreisAufze RETURNS INTEGER
  4475. ( INPUT-OUTPUT iohtAufze AS HANDLE ) :
  4476. /*------------------------------------------------------------------------------*/
  4477. /* Purpose: */
  4478. /* Parameters: <none> */
  4479. /* Notes: */
  4480. /*------------------------------------------------------------------------------*/
  4481. DEFINE VARIABLE htAufze AS HANDLE NO-UNDO.
  4482. DEFINE VARIABLE iMengeKond AS INTEGER NO-UNDO.
  4483. DEFINE VARIABLE nMengeBetr AS DECIMAL NO-UNDO.
  4484. DEFINE VARIABLE lRueckstand AS LOG NO-UNDO.
  4485. DEFINE VARIABLE lKeineAktion AS LOG NO-UNDO.
  4486. DEFINE VARIABLE iKuPreisGrp AS INTEGER NO-UNDO.
  4487. DEFINE VARIABLE iFwPreisGrp AS INTEGER NO-UNDO.
  4488. DEFINE VARIABLE iAbPreisGrp AS INTEGER NO-UNDO.
  4489. DEFINE VARIABLE iPreisGrp AS INTEGER NO-UNDO.
  4490. DEFINE VARIABLE iSpezPreis AS INTEGER NO-UNDO.
  4491. DEFINE VARIABLE lAbweich AS LOG NO-UNDO.
  4492. DEFINE VARIABLE lRabAufNetto AS LOG NO-UNDO.
  4493. DEFINE VARIABLE lAktAufSpezPr AS LOG INIT FALSE NO-UNDO.
  4494. DEFINE VARIABLE lAktion AS LOG INIT FALSE NO-UNDO.
  4495. DEFINE VARIABLE lNettoArtikel AS LOG NO-UNDO.
  4496. DEFINE VARIABLE nNormalPreis AS DECIMAL DECIMALS 4 NO-UNDO.
  4497. DEFINE VARIABLE iAktionen AS INTEGER NO-UNDO.
  4498. /* 0 = Keine Aktionen, wenn Spezpreis oder Spezrabgruppe */
  4499. /* 1 = Aktionen auch bei SpezPreisen */
  4500. /* 2 = Aktionen auch bei SpezRabAufRabgruppen */
  4501. /* 3 = Immer Aktionen berücksichtigen */
  4502. DEFINE VARIABLE iAktGrp AS INTEGER NO-UNDO.
  4503. /* Kundengruppe oder Preisgruppe (eventuell abweichend) */
  4504. /* welche für die Aktionspreisermittlung verwendet wird */
  4505. DEFINE VARIABLE iAktKuPr_Grp AS INTEGER NO-UNDO.
  4506. /* 0 = Preisgruppen */
  4507. /* 1 = Kundengruppen */
  4508. DEFINE VARIABLE cAktiontext AS CHARACTER NO-UNDO.
  4509. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  4510. DEFINE VARIABLE iKnr AS INTEGER NO-UNDO.
  4511. DEFINE VARIABLE dDatum AS DATE NO-UNDO.
  4512. DEFINE VARIABLE hFeldKnr AS HANDLE NO-UNDO.
  4513. DEFINE VARIABLE hFeldDatum AS HANDLE NO-UNDO.
  4514. DEFINE VARIABLE hbArtst AS HANDLE NO-UNDO.
  4515. /* DEFINE BUFFER bAufko FOR Aufko . */
  4516. DEFINE BUFFER bArtst FOR Artst .
  4517. DEFINE BUFFER bAbwPrGrp FOR AbwPrGrp.
  4518. DEFINE BUFFER bRabTab FOR RabTab .
  4519. DEFINE BUFFER bRabSumm FOR RabSumm .
  4520. DEFINE BUFFER bSpezPrei FOR SpezPrei.
  4521. DEFINE BUFFER bSpPrRab FOR SpPrRab .
  4522. DEFINE BUFFER bAktKeine FOR AktKeine.
  4523. DEFINE BUFFER bWust FOR Wust .
  4524. DEFINE BUFFER bArtPreis FOR ArtPreis.
  4525. DEFINE BUFFER bAktPreis FOR AktPreis.
  4526. DEFINE BUFFER bArtStaff FOR ArtStaff.
  4527. DEFINE BUFFER bMwstAns FOR MwstAns .
  4528. /* 0 = Normalpreis */
  4529. /* 1 = manueller Preis */
  4530. /* 2 = EP+ - Preis */
  4531. /* 3 = Kundenspezialpreis auf Artikel */
  4532. /* 4 = Spezialrabatt auf Artikel_Rabattgruppe */
  4533. /* 5 = Aktionspreis ohne Abweichende Preisgruppe*/
  4534. /* 6 = Aktionspreis mit abweichender Preisgruppe*/
  4535. /* 7 = Preis aus Summengruppe */
  4536. EMPTY TEMP-TABLE tAufze.
  4537. CREATE tAufze.
  4538. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  4539. htAufze:BUFFER-COPY(iohtAufze) NO-ERROR.
  4540. hFeldKnr = iohtAufze:BUFFER-FIELD('Knr') NO-ERROR.
  4541. IF VALID-HANDLE ( hFeldKnr ) THEN iKnr = hFeldKnr:BUFFER-VALUE(0).
  4542. ELSE iKnr = 0.
  4543. hFeldDatum = iohtAufze:BUFFER-FIELD('Datum') NO-ERROR.
  4544. IF VALID-HANDLE ( hFeldDatum ) THEN dDatum = hFeldDatum:BUFFER-VALUE(0).
  4545. ELSE dDatum = TODAY.
  4546. DYNAMIC-FUNCTION('createAufkoParam':U, tAufze.Firma, tAufze.Aufnr, iKnr, dDatum ) NO-ERROR.
  4547. FIND FIRST tParam.
  4548. lRueckstand = DYNAMIC-FUNCTION('isMakeRueckstand':U) NO-ERROR.
  4549. lRabAufNetto = (IF DYNAMIC-FUNCTION('getFWNettoRab':U) = 0 THEN TRUE ELSE FALSE).
  4550. iAktionen = DYNAMIC-FUNCTION('getFWAktionsrab':U) NO-ERROR.
  4551. iAktKuPr_Grp = DYNAMIC-FUNCTION('getFWAktionspreise':U) NO-ERROR.
  4552. IF NOT lRueckstand THEN
  4553. DO:
  4554. ASSIGN
  4555. tAufze.GGeb_Be = tAufze.GGeb_Me
  4556. tAufze.VGeb_Be = tAufze.VGeb_Me
  4557. tAufze.KGeb_Be = tAufze.KGeb_Me
  4558. tAufze.MBest = tAufze.MGeli
  4559. tAufze.GGeb_Ru = 0
  4560. tAufze.VGeb_Ru = 0
  4561. tAufze.KGeb_Ru = 0
  4562. tAufze.MRuek = 0.
  4563. END.
  4564. ELSE
  4565. DO:
  4566. ASSIGN
  4567. tAufze.GGeb_Ru = tAufze.GGeb_Be - tAufze.GGeb_Me
  4568. tAufze.VGeb_Ru = tAufze.VGeb_Be - tAufze.VGeb_Me
  4569. tAufze.KGeb_Ru = tAufze.KGeb_Be - tAufze.KGeb_Me
  4570. tAufze.MRuek = tAufze.KGeb_Ru.
  4571. END.
  4572. iMengeKond = ABS(tAufze.MBest).
  4573. nMengeBetr = tAufze.MGeli.
  4574. iSpezPreis = 0.
  4575. EMPTY TEMP-TABLE tPreis.
  4576. /* FIND bAufko NO-LOCK OF tAufze. */
  4577. FIND bArtst NO-LOCK
  4578. WHERE bArtst.Firma = tAufze.Firma
  4579. AND bArtst.Artnr = tAufze.Artnr
  4580. AND bArtst.Inhalt = tAufze.Inhalt
  4581. AND bArtst.Jahr = tAufze.Jahr.
  4582. lNettoArtikel = bArtst.Netto.
  4583. hbArtst = BUFFER bArtst:HANDLE.
  4584. FIND bWust NO-LOCK
  4585. WHERE bWust.CodeK = tParam.Mwst
  4586. AND bWust.CodeA = bArtst.Mwst.
  4587. FIND LAST bMwstAns NO-LOCK
  4588. WHERE bMwstAns.Mwst_Cd = bWust.WuCd
  4589. AND bMwstAns.Datum <= tParam.Kond_Datum NO-ERROR.
  4590. ASSIGN
  4591. tAufze.WC = bWust.CodeA
  4592. tAufze.WuCd = bWust.Wucd
  4593. tAufze.MWST_Inkl = bWust.Incl
  4594. tAufze.Mwst% = (IF AVAILABLE bMwstAns THEN bMwstAns.Ansatz ELSE 0.0).
  4595. FIND bWust NO-LOCK
  4596. WHERE bWust.CodeK = tParam.Mwst
  4597. AND bWust.CodeA = 99.
  4598. /* -------------------------------------------------------------- */
  4599. /* Aktionspreise auf dieser Warengruppe möglich ? */
  4600. /* -------------------------------------------------------------- */
  4601. FIND bAktKeine NO-LOCK
  4602. WHERE bAktKeine.Firma = tParam.Firma
  4603. AND bAktKeine.Knr = tParam.Knr
  4604. AND bAktKeine.Wgr = bArtst.Wg_Grp NO-ERROR.
  4605. IF AVAILABLE bAktKeine THEN lKeineAktion = TRUE.
  4606. ELSE lKeineAktion = FALSE.
  4607. /* -------------------------------------------------------------- */
  4608. /* Zu berücksichtigende Preisgruppe ermitteln */
  4609. /* -------------------------------------------------------------- */
  4610. iKuPreisGrp = tParam.Preis_Grp.
  4611. iFwPreisGrp = DYNAMIC-FUNCTION('getFwPreisgrp':U) NO-ERROR.
  4612. lAbweich = FALSE.
  4613. FIND bAbwPrGrp NO-LOCK
  4614. WHERE bAbwPrGrp.Firma = tParam.Firma
  4615. AND bAbwPrGrp.Knr = tParam.Knr
  4616. AND bAbwPrGrp.Wg_Grp = bArtst.Wg_Grp NO-ERROR.
  4617. IF AVAILABLE bAbwPrGrp THEN
  4618. DO:
  4619. iAbPreisGrp = bAbwPrGrp.Preis_Grp.
  4620. lAbweich = TRUE.
  4621. END.
  4622. IF lAbweich THEN iPreisGrp = iAbPreisGrp.
  4623. ELSE iPreisGrp = iKuPreisGrp.
  4624. iAktGrp = (IF iAktKuPr_Grp = 0 THEN iPreisGrp ELSE tParam.Ku_Grp).
  4625. /* -------------------------------------------------------------- */
  4626. /* Normalpreis / Staffelpreis ermitteln */
  4627. /* -------------------------------------------------------------- */
  4628. nNormalPreis = -1.0.
  4629. ii = (IF lAbweich THEN 0 ELSE 1).
  4630. DO WHILE TRUE:
  4631. ii = ii + 1.
  4632. FIND LAST bArtPreis NO-LOCK
  4633. WHERE bArtPreis.Firma = tAufze.Firma
  4634. AND bArtPreis.Artnr = tAufze.Artnr
  4635. AND bArtPreis.Inhalt = tAufze.Inhalt
  4636. AND bArtPreis.Jahr = tAufze.Jahr
  4637. AND bArtPreis.Preis_Grp = iPreisGrp
  4638. AND bArtPreis.Aktion = FALSE
  4639. AND bArtPreis.Ab_Datum <= tParam.Kond_Datum NO-ERROR.
  4640. IF NOT AVAILABLE bArtPreis THEN
  4641. DO:
  4642. IF ii = 1 THEN
  4643. DO:
  4644. iPreisGrp = iKuPreisGrp.
  4645. NEXT.
  4646. END.
  4647. IF ii = 2 THEN
  4648. DO:
  4649. iPreisGrp = iFwPreisGrp.
  4650. NEXT.
  4651. END.
  4652. LEAVE.
  4653. END.
  4654. IF AVAILABLE bArtPreis THEN nNormalPreis = (IF bWust.Incl THEN bArtPreis.VK_Brutto ELSE bArtPreis.VK_Netto).
  4655. FIND LAST bArtStaff NO-LOCK
  4656. WHERE bArtStaff.Firma = bArtPreis.Firma
  4657. AND bArtStaff.Artnr = bArtPreis.Artnr
  4658. AND bArtStaff.Inhalt = bArtPreis.Inhalt
  4659. AND bArtStaff.Jahr = bArtPreis.Jahr
  4660. AND bArtStaff.Preis_Grp = bArtPreis.Preis_Grp
  4661. AND bArtStaff.Ab_Datum = bArtPreis.Ab_Datum
  4662. AND bArtStaff.Menge <= INTEGER(iMengeKond) NO-ERROR.
  4663. IF NOT AVAILABLE bArtStaff THEN LEAVE.
  4664. nNormalPreis = (IF bWust.Incl THEN bArtStaff.VK_Brutto ELSE bArtStaff.VK_Netto).
  4665. LEAVE.
  4666. END.
  4667. A000:
  4668. REPEAT ON ERROR UNDO, LEAVE:
  4669. IF nNormalPreis < 0.0 THEN LEAVE.
  4670. /* -------------------------------------------------------------- */
  4671. /* Summengruppe ermitteln */
  4672. /* -------------------------------------------------------------- */
  4673. ASSIGN
  4674. tAufze.Rab_Su_Grp = 0
  4675. tAufze.Rab_Su_Art = 0
  4676. tAufze.Auf_Sp_Proz_Betr = TRUE
  4677. tAufze.Auf_Sp_Wert = 0
  4678. tAufze.Auf_Sp_Rab = 0
  4679. tAufze.Auf_Sp_Grp = 0.
  4680. FIND bRabTab NO-LOCK
  4681. WHERE bRabTab.Firma = tAufze.Firma
  4682. AND bRabTab.Ku_Rab = tParam.Rab_Grp
  4683. AND bRabTab.Art_Rab = bArtst.Rab_Grp NO-ERROR.
  4684. IF AVAILABLE bRabTab THEN
  4685. DO:
  4686. IF bRabTab.Rab_Summ > 0 THEN
  4687. DO:
  4688. FIND FIRST bRabSumm NO-LOCK
  4689. WHERE bRabSumm.Firma = bRabTab.Firma
  4690. AND bRabSumm.Rab_Summ = bRabTab.Rab_Summ NO-ERROR.
  4691. IF AVAILABLE bRabSumm THEN
  4692. DO:
  4693. ASSIGN
  4694. tAufze.Rab_Su_Grp = bRabTab.Rab_Summ
  4695. tAufze.Rab_Su_Art = bRabTab.Add_Art.
  4696. END.
  4697. END.
  4698. IF bRabTab.Wert > 0 AND
  4699. bRabTab.Rab_Art = 1 THEN
  4700. DO:
  4701. CREATE tPreis.
  4702. ASSIGN
  4703. tPreis.iArt = 7
  4704. tPreis.Preis = nNormalPreis
  4705. tPreis.Rab_Proz = (IF bRabTab.Proz_Betr THEN bRabTab.Wert ELSE 0)
  4706. tPreis.Rab_Wert = (IF bRabTab.Proz_Betr THEN 0 ELSE bRabTab.Wert)
  4707. tPreis.Spe_Proz = 0
  4708. tPreis.Spe_Wert = 0
  4709. tPreis.Zus_Proz = (IF tAufze.Zus_Art = 1 THEN tAufze.Zus_Wert ELSE 0)
  4710. tPreis.Zus_Wert = (IF tAufze.Zus_Art = 2 THEN tAufze.Zus_Wert ELSE 0).
  4711. END.
  4712. END.
  4713. /* -------------------------------------------------------------- */
  4714. /* Manuelle Preiseingabe */
  4715. /* -------------------------------------------------------------- */
  4716. IF tAufze.Preis_Mut THEN
  4717. DO:
  4718. DYNAMIC-FUNCTION('createManuellerPreis':U) NO-ERROR.
  4719. LEAVE A000.
  4720. END.
  4721. /* -------------------------------------------------------------- */
  4722. /* Kunde hat Ep + Zuschlag als Preis */
  4723. /* -------------------------------------------------------------- */
  4724. IF tAufze.Rab_Art = 3 THEN
  4725. DO:
  4726. DYNAMIC-FUNCTION('createEpPreis':U, hbArtst ) NO-ERROR.
  4727. LEAVE A000.
  4728. END.
  4729. /* -------------------------------------------------------------- */
  4730. /* Normalpreis / Staffelpreis */
  4731. /* -------------------------------------------------------------- */
  4732. CREATE tPreis.
  4733. ASSIGN
  4734. tPreis.iArt = 0
  4735. tPreis.Preis = nNormalPreis
  4736. tPreis.Rab_Proz = 0
  4737. tPreis.Rab_Wert = 0
  4738. tPreis.Spe_Proz = 0
  4739. tPreis.Spe_Wert = 0
  4740. tPreis.Zus_Proz = (IF tAufze.Zus_Art = 1 THEN tAufze.Zus_Wert ELSE 0)
  4741. tPreis.Zus_Wert = (IF tAufze.Zus_Art = 2 THEN tAufze.Zus_Wert ELSE 0).
  4742. IF nNormalPreis = 0 THEN LEAVE.
  4743. CASE tParam.Zei_Rab_Art:
  4744. WHEN 1 THEN
  4745. ASSIGN
  4746. tPreis.Rab_Proz = + tParam.Zei_Rab_Wert.
  4747. WHEN 2 THEN
  4748. ASSIGN
  4749. tPreis.Rab_Wert = + tParam.Zei_Rab_Wert.
  4750. WHEN 3 THEN
  4751. ASSIGN
  4752. tPreis.Rab_Proz = - tParam.Zei_Rab_Wert.
  4753. END CASE.
  4754. /* -------------------------------------------------------------- */
  4755. /* Kundenspezialpreis auf Artikel */
  4756. /* -------------------------------------------------------------- */
  4757. DO WHILE TRUE:
  4758. FIND LAST bSpezPrei NO-LOCK
  4759. WHERE bSpezPrei.Firma = tAufze.Firma
  4760. AND bSpezPrei.Knr = tParam.Knr
  4761. AND bSpezPrei.Artnr = tAufze.Artnr
  4762. AND bSpezPrei.Inhalt = tAufze.Inhalt
  4763. AND bSpezPrei.Jahr = tAufze.Jahr
  4764. AND bSpezPrei.Menge <= iMengeKond
  4765. AND bSpezPrei.Ab_Datum <= tParam.Kond_Datum
  4766. AND bSpezPrei.Bis_Datum >= tParam.Kond_Datum NO-ERROR.
  4767. IF NOT AVAILABLE bSpezPrei THEN LEAVE.
  4768. IF lNettoArtikel AND
  4769. NOT bSpezPrei.lNetto AND
  4770. bSpezPrei.Proz_Betr THEN
  4771. DO:
  4772. RELEASE bSpezPrei.
  4773. LEAVE.
  4774. END.
  4775. CREATE tPreis.
  4776. ASSIGN
  4777. tPreis.iArt = 3
  4778. tPreis.Preis = 0
  4779. tPreis.Rab_Proz = 0
  4780. tPreis.Rab_Wert = 0
  4781. tPreis.Spe_Proz = 0
  4782. tPreis.Spe_Wert = 0
  4783. tPreis.Zus_Proz = (IF tAufze.Zus_Art = 1 THEN tAufze.Zus_Wert ELSE 0)
  4784. tPreis.Zus_Wert = (IF tAufze.Zus_Art = 2 THEN tAufze.Zus_Wert ELSE 0).
  4785. IF bSpezPrei.Proz_Betr THEN ASSIGN tPreis.Rab_Proz = bSpezPrei.Wert
  4786. tPreis.Preis = nNormalPreis.
  4787. ELSE ASSIGN tPreis.Preis = bSpezPrei.Wert
  4788. tPreis.Rab_Proz = 0.
  4789. IF NOT lSummGrpSpPr THEN
  4790. DO:
  4791. ASSIGN
  4792. tAufze.Rab_Su_Grp = 0
  4793. tAufze.Rab_Su_Art = 0.
  4794. END.
  4795. ASSIGN
  4796. iSpezPreis = 1
  4797. lAktAufSpezPr = bSpezPrei.lAktion.
  4798. RELEASE bSpezPrei.
  4799. LEAVE.
  4800. END.
  4801. /* -------------------------------------------------------------- */
  4802. /* Kundenspezialpreis auf Artikel-Rabattgruppe (Zeilenrabatt) */
  4803. /* Nur wenn nicht schon Spezialpreis auf Artikel */
  4804. /* -------------------------------------------------------------- */
  4805. DO WHILE iSpezPreis = 0 : /* Kein Spezialpreis auf Artikel */
  4806. ASSIGN
  4807. tAufze.Auf_Sp_Grp = 0
  4808. tAufze.Auf_Sp_Rab = 0
  4809. tAufze.Auf_Sp_Wert = 0.
  4810. FIND FIRST bSpPrRab NO-LOCK
  4811. WHERE bSpPrRab.Firma = tAufze.Firma
  4812. AND bSpPrRab.Knr = tParam.Knr
  4813. AND bSpPrRab.Rab_Grp = bArtst.Rab_Grp
  4814. AND bSpPrRab.Ab_Datum <= tParam.Kond_Datum
  4815. AND bSpPrRab.Bis_Datum >= tParam.Kond_Datum NO-ERROR.
  4816. IF NOT AVAILABLE bSpPrRab THEN LEAVE.
  4817. FIND LAST bSpPrRab NO-LOCK
  4818. WHERE bSpPrRab.Firma = tAufze.Firma
  4819. AND bSpPrRab.Knr = tParam.Knr
  4820. AND bSpPrRab.Rab_Grp = bArtst.Rab_Grp
  4821. AND bSpPrRab.Menge <= iMengeKond
  4822. AND bSpPrRab.Ab_Datum <= tParam.Kond_Datum
  4823. AND bSpPrRab.Bis_Datum >= tParam.Kond_Datum NO-ERROR.
  4824. IF NOT AVAILABLE bSpPrRab THEN LEAVE.
  4825. IF lNettoArtikel AND
  4826. NOT bSpPrRab.lNetto THEN LEAVE.
  4827. ASSIGN
  4828. tAufze.Auf_Sp_Grp = bSpPrRab.Rab_Grp.
  4829. CREATE tPreis.
  4830. ASSIGN
  4831. tPreis.iArt = 4
  4832. tPreis.Preis = nNormalPreis
  4833. tPreis.Rab_Proz = 0
  4834. tPreis.Rab_Wert = 0
  4835. tPreis.Spe_Proz = 0
  4836. tPreis.Spe_Wert = 0
  4837. tPreis.Zus_Proz = (IF tAufze.Zus_Art = 1 THEN tAufze.Zus_Wert ELSE 0)
  4838. tPreis.Zus_Wert = (IF tAufze.Zus_Art = 2 THEN tAufze.Zus_Wert ELSE 0).
  4839. IF bSpPrRab.Proz_Betr THEN ASSIGN tPreis.Spe_Proz = bSpPrRab.Wert.
  4840. ELSE tPreis.Spe_Wert = bSpPrRab.Wert.
  4841. IF NOT lSummGrpSpPr THEN
  4842. DO:
  4843. ASSIGN
  4844. tAufze.Rab_Su_Grp = 0
  4845. tAufze.Rab_Su_Art = 0.
  4846. END.
  4847. ASSIGN
  4848. iSpezPreis = 2
  4849. lAktAufSpezPr = bSpPrRab.lAktion.
  4850. RELEASE bSpPrRab.
  4851. LEAVE.
  4852. END.
  4853. DO WHILE TRUE:
  4854. /* -------------------------------------------------------------- */
  4855. /* Aktionspreise */
  4856. /* -------------------------------------------------------------- */
  4857. IF lKeineAktion THEN LEAVE. /* Auf aktuelle Wgr gibt es keine Aktionen */
  4858. IF iSpezPreis = 0 THEN lAktAufSpezPr = TRUE. /* Kein Spezialpreis = immer Aktionen */
  4859. IF iAktionen = 3 THEN lAktAufSpezPr = TRUE. /* 3 = es gibt immer Aktionspreis */
  4860. IF iAktionen = 0 AND /* Auf Spezialpreis nie Aktionen ausser bei */
  4861. NOT lAktAufSpezPr THEN LEAVE. /* Beim Kunden speziell zugelassen */
  4862. IF iSpezPreis = 1 AND /* Aktionen auf Artikel-Spezialpreise */
  4863. iAktionen = 1 THEN lAktAufSpezPr = TRUE.
  4864. IF iSpezPreis = 2 AND /* Aktionen auf Artikel-Rabattgruppe */
  4865. iAktionen = 2 THEN lAktAufSpezPr = TRUE.
  4866. IF NOT lAktAufSpezPr THEN LEAVE.
  4867. hFeld = htAufze:BUFFER-FIELD('lAktion') NO-ERROR.
  4868. IF VALID-HANDLE(hFeld) THEN
  4869. DO:
  4870. IF hFeld:BUFFER-VALUE BEGINS 'n' THEN
  4871. DO:
  4872. lAktion = FALSE.
  4873. LEAVE.
  4874. END.
  4875. END.
  4876. lAktion = DYNAMIC-FUNCTION('createAktionsPreis':U, iAktGrp, lAbweich, iAktKuPr_Grp, iKuPreisGrp ) NO-ERROR.
  4877. IF lAktion THEN
  4878. DO:
  4879. FIND FIRST tPreis
  4880. WHERE tPreis.iArt >= 5
  4881. AND tPreis.iArt <= 6.
  4882. cAktiontext = tPreis.cAkt_Text.
  4883. END.
  4884. LEAVE.
  4885. END.
  4886. LEAVE A000.
  4887. END.
  4888. ii = DYNAMIC-FUNCTION('setAufzePreis':U, iSpezPreis, lNettoArtikel, lRabAufNetto) NO-ERROR.
  4889. FIND FIRST tAufze.
  4890. iohtAufze:BUFFER-COPY(htAufze).
  4891. /* RELEASE bAufko . */
  4892. RELEASE bArtst .
  4893. RELEASE bAbwPrGrp.
  4894. RELEASE bRabTab .
  4895. RELEASE bRabSumm .
  4896. RELEASE bSpezPrei.
  4897. RELEASE bSpPrRab .
  4898. RELEASE bAktKeine.
  4899. RELEASE bWust .
  4900. RELEASE bArtPreis.
  4901. RELEASE bAktPreis.
  4902. RELEASE bArtStaff.
  4903. RELEASE bMwstAns .
  4904. RETURN ii.
  4905. END FUNCTION.
  4906. /* _UIB-CODE-BLOCK-END */
  4907. &ANALYZE-RESUME
  4908. &ENDIF
  4909. &IF DEFINED(EXCLUDE-getSummGrpSpPr) = 0 &THEN
  4910. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getSummGrpSpPr Procedure
  4911. FUNCTION getSummGrpSpPr RETURNS LOGICAL
  4912. ( ipFirma AS CHARACTER ) :
  4913. /*------------------------------------------------------------------------------*/
  4914. /* Purpose: */
  4915. /* Parameters: <none> */
  4916. /* Notes: */
  4917. /*------------------------------------------------------------------------------*/
  4918. DEFINE VARIABLE lRetVal AS LOG INIT FALSE NO-UNDO.
  4919. FIND Steuer NO-LOCK
  4920. WHERE Steuer.Firma = ipFirma NO-ERROR.
  4921. IF NOT AVAILABLE Steuer THEN RETURN lRetVal.
  4922. lRetVal = (IF Steuer.Fwi24 = 0 THEN FALSE ELSE TRUE).
  4923. RELEASE Steuer.
  4924. RETURN lRetVal.
  4925. END FUNCTION.
  4926. /* _UIB-CODE-BLOCK-END */
  4927. &ANALYZE-RESUME
  4928. &ENDIF
  4929. &IF DEFINED(EXCLUDE-GET_ABH_AUFNR) = 0 &THEN
  4930. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION GET_ABH_AUFNR Procedure
  4931. FUNCTION GET_ABH_AUFNR RETURNS INTEGER
  4932. ( /* parameter-definitions */ ) :
  4933. /*------------------------------------------------------------------------------*/
  4934. /* Purpose: */
  4935. /* Parameters: <none> */
  4936. /* Notes: */
  4937. /*------------------------------------------------------------------------------*/
  4938. RETURN AbhAufnr.
  4939. END FUNCTION.
  4940. /* _UIB-CODE-BLOCK-END */
  4941. &ANALYZE-RESUME
  4942. &ENDIF
  4943. &IF DEFINED(EXCLUDE-getVerbuchtTotale) = 0 &THEN
  4944. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getVerbuchtTotale Procedure
  4945. FUNCTION getVerbuchtTotale RETURNS CHARACTER
  4946. ( ipcFirma AS CHARACTER, ipiAufnr AS INTEGER, OUTPUT opnTotal AS DECIMAL EXTENT 15 ) :
  4947. /*------------------------------------------------------------------------------*/
  4948. /* Purpose: */
  4949. /* Parameters: <none> */
  4950. /* Notes: */
  4951. /*------------------------------------------------------------------------------*/
  4952. DEFINE VARIABLE lJa AS LOG NO-UNDO.
  4953. DEFINE VARIABLE VWpfl AS DECIMAL DECIMALS 4 EXTENT 12 NO-UNDO.
  4954. DEFINE VARIABLE VWust AS DECIMAL DECIMALS 4 EXTENT 12 NO-UNDO.
  4955. DEFINE VARIABLE NWpfl AS DECIMAL DECIMALS 4 EXTENT 12 NO-UNDO.
  4956. DEFINE VARIABLE TWpfl AS DECIMAL DECIMALS 4 EXTENT 12 NO-UNDO.
  4957. DEFINE VARIABLE VFakt AS INTEGER EXTENT 12 NO-UNDO.
  4958. DEFINE VARIABLE NFakt AS INTEGER NO-UNDO.
  4959. DEFINE VARIABLE VTotWu AS DECIMAL DECIMALS 4 NO-UNDO.
  4960. DEFINE VARIABLE VTotNK AS DECIMAL DECIMALS 4 NO-UNDO.
  4961. DEFINE VARIABLE VResNK AS DECIMAL DECIMALS 4 NO-UNDO.
  4962. DEFINE VARIABLE VMaxWC AS INTEGER NO-UNDO.
  4963. DEFINE VARIABLE iRecid AS RECID NO-UNDO.
  4964. DEFINE VARIABLE VGewicht AS DECIMAL DECIMALS 4 NO-UNDO.
  4965. DEFINE VARIABLE zz AS INTEGER NO-UNDO.
  4966. DEFINE VARIABLE Wert AS DECIMAL DECIMALS 4 NO-UNDO.
  4967. DEFINE VARIABLE VSkonto AS DECIMAL INIT 0 NO-UNDO.
  4968. DEFINE VARIABLE Rundbetr AS DECIMAL DECIMALS 4 NO-UNDO.
  4969. DEFINE VARIABLE nMenge AS DECIMAL NO-UNDO.
  4970. DEFINE VARIABLE cResult AS CHARACTER NO-UNDO.
  4971. DEFINE VARIABLE dMwstDat AS DATE NO-UNDO.
  4972. DEFINE VARIABLE nKredLimite AS DECIMAL INIT 0.00 NO-UNDO.
  4973. DEFINE VARIABLE nAufTotal AS DECIMAL INIT 0.00 NO-UNDO.
  4974. DEFINE VARIABLE htSavze AS HANDLE NO-UNDO.
  4975. DEFINE BUFFER bSavze FOR Savze.
  4976. DEFINE BUFFER FDebst FOR Debst.
  4977. /* ------------------------------------------------------------------------- */
  4978. /* opnTotal[01] = Nettowarenwert */
  4979. /* opnTotal[02] = Skontoberechtigter Betrag */
  4980. /* opnTotal[03] = Nebenkosten */
  4981. /* opnTotal[04] = Transport */
  4982. /* opnTotal[05] = Porto */
  4983. /* opnTotal[06] = Verpackung */
  4984. /* opnTotal[07] = Total Mehrwertsteuerpflichtig */
  4985. /* opnTotal[08] = Total Mehrwertsteuerfrei */
  4986. /* opnTotal[09] = Total Mehrwertsteuer */
  4987. /* opnTotal[10] = Total Auftrag */
  4988. /* opnTotal[11] = Total Gebinde */
  4989. /* opnTotal[12] = Total Gebühren (Receycling) */
  4990. /* ------------------------------------------------------------------------- */
  4991. REPEAT TRANSACTION:
  4992. opnTotal = 0.
  4993. VWpfl = 0.
  4994. VWust = 0.
  4995. VTotWu = 0.
  4996. VTotNK = 0.
  4997. NWpfl = 0. /* Anteil Nebenkosten */
  4998. TWpfl = 0. /* Wpfl + Nebenkosten */
  4999. VGewicht = 0.
  5000. DISABLE TRIGGERS FOR LOAD OF Savko.
  5001. FIND Steuer NO-LOCK USE-INDEX Steuer-k1
  5002. WHERE Steuer.Firma = ipcFirma.
  5003. FIND Savko EXCLUSIVE-LOCK
  5004. WHERE Savko.Firma = ipcFirma
  5005. AND Savko.Aufnr = ipiAufnr NO-WAIT NO-ERROR.
  5006. IF LOCKED Savko THEN RETURN 'LOCKED'.
  5007. IF NOT AVAILABLE Savko THEN RETURN 'FEHLEND'.
  5008. iRecid = RECID(Savko).
  5009. dMwstDat = (IF Savko.Fak_Datum <> ? THEN Savko.Fak_Datum ELSE Savko.Kond_Datum).
  5010. IF dMwstDat = ? THEN dMwstDat = Savko.Lief_Datum.
  5011. IF dMwstDat = ? THEN dMwstDat = TODAY.
  5012. FIND FDebst NO-LOCK
  5013. WHERE FDebst.Firma = Savko.Firma
  5014. AND FDebst.Knr = Savko.Fak_Knr.
  5015. nKredLimite = FDebst.Kred_Lim.
  5016. nAufTotal = FDebst.Saldo.
  5017. opnTotal[04] = Savko.Transp.
  5018. opnTotal[05] = Savko.Porto.
  5019. opnTotal[06] = Savko.Verpack.
  5020. opnTotal[03] = opnTotal[04] + opnTotal[05] + opnTotal[06].
  5021. FIND Wust USE-INDEX Wust-k1
  5022. WHERE Wust.CodeK = Savko.MWST
  5023. AND Wust.CodeA = Steuer.Fwi03 NO-LOCK.
  5024. zz = Wust.WuCd.
  5025. VWpfl[zz] = VWpfl[zz] + Savko.Transp.
  5026. FIND Wust USE-INDEX Wust-k1
  5027. WHERE Wust.CodeK = Savko.MWST
  5028. AND Wust.CodeA = Steuer.Fwi04 NO-LOCK.
  5029. zz = Wust.WuCd.
  5030. VWpfl[zz] = VWpfl[zz] + Savko.Porto.
  5031. FIND Wust USE-INDEX Wust-k1
  5032. WHERE Wust.CodeK = Savko.MWST
  5033. AND Wust.CodeA = Steuer.Fwi05 NO-LOCK.
  5034. zz = Wust.WuCd.
  5035. VWpfl[zz] = VWpfl[zz] + Savko.Verpack.
  5036. zz = 0.
  5037. lJa = FALSE.
  5038. EMPTY TEMP-TABLE tSavze.
  5039. FOR EACH Savze NO-LOCK
  5040. WHERE Savze.Firma = Savko.Firma
  5041. AND Savze.Aufnr = Savko.Aufnr
  5042. AND Savze.Artnr > 0 :
  5043. CREATE tSavze.
  5044. BUFFER-COPY Savze TO tSavze.
  5045. END.
  5046. FOR EACH tSavze:
  5047. zz = tSavze.WuCd.
  5048. IF Savko.Auf_Sta < 2 THEN nMenge = tSavze.MBest.
  5049. ELSE nMenge = tSavze.MGeli.
  5050. nMenge = tSavze.MGeli.
  5051. DO WHILE TRUE:
  5052. ASSIGN
  5053. tSavze.Auf_Rab = 0
  5054. tSavze.Abh_Rab = 0.
  5055. IF tSavze.Rab_Su_Grp = 0 THEN LEAVE.
  5056. IF tSavze.Rab_Su_Art = 0 THEN LEAVE.
  5057. FIND SavRabSu NO-LOCK
  5058. WHERE SavRabSu.Firma = tSavze.Firma
  5059. AND SavRabSu.Aufnr = tSavze.Aufnr
  5060. AND SavRabSu.Rab_Summ = tSavze.Rab_Su_Grp
  5061. AND SavRabSu.MWST_Cd = tSavze.WuCd.
  5062. Wert = SavRabSu.F_Wert.
  5063. DO WHILE Wert <> 0:
  5064. IF SavRabSu.F_Proz_Betr THEN
  5065. DO:
  5066. tSavze.Auf_Rab = tSavze.Net_Betr * SavRabSu.F_Wert / 100.
  5067. LEAVE.
  5068. END.
  5069. IF SavRabSu.F_Art = 0 THEN
  5070. DO:
  5071. tSavze.Auf_Rab = nMenge * SavRabSu.F_Wert.
  5072. LEAVE.
  5073. END.
  5074. IF SavRabSu.F_Art = 2 THEN
  5075. DO:
  5076. tSavze.Auf_Rab = tSavze.Liter * SavRabSu.F_Wert / 100.
  5077. LEAVE.
  5078. END.
  5079. LEAVE.
  5080. END.
  5081. IF Savko.Abhol = FALSE THEN Wert = 0.
  5082. ELSE Wert = SavRabSu.A_Wert.
  5083. DO WHILE Wert <> 0:
  5084. IF SavRabSu.A_Proz_Betr THEN
  5085. DO:
  5086. tSavze.Abh_Rab = tSavze.Net_Betr * SavRabSu.A_Wert / 100.
  5087. LEAVE.
  5088. END.
  5089. IF SavRabSu.A_Art = 0 THEN
  5090. DO:
  5091. tSavze.Abh_Rab = nMenge * SavRabSu.A_Wert.
  5092. LEAVE.
  5093. END.
  5094. IF SavRabSu.A_Art = 2 THEN
  5095. DO:
  5096. tSavze.Abh_Rab = tSavze.Liter * SavRabSu.A_Wert / 100.
  5097. LEAVE.
  5098. END.
  5099. LEAVE.
  5100. END.
  5101. DO WHILE TRUE:
  5102. IF tSavze.Abh_Rab = 0 AND
  5103. tSavze.Auf_Rab = 0 THEN LEAVE.
  5104. FIND FIRST Wust NO-LOCK USE-INDEX Wust-k2
  5105. WHERE Wust.WuCd = zz.
  5106. IF Wust.Incl = TRUE THEN
  5107. DO:
  5108. Rundbetr = tSavze.Abh_Rab.
  5109. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
  5110. tSavze.Abh_Rab = Rundbetr.
  5111. Rundbetr = tSavze.Auf_Rab.
  5112. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
  5113. tSavze.Auf_Rab = Rundbetr.
  5114. END.
  5115. LEAVE.
  5116. END.
  5117. RELEASE SavRabSu.
  5118. LEAVE.
  5119. END.
  5120. VWpfl [zz] = VWpfl [zz] + tSavze.Net_Betr
  5121. - tSavze.Auf_Rab
  5122. - tSavze.Abh_Rab
  5123. - tSavze.Auf_Sp_Rab.
  5124. opnTotal[01] = opnTotal[01] + tSavze.Net_Betr
  5125. - tSavze.Auf_Rab
  5126. - tSavze.Abh_Rab
  5127. - tSavze.Auf_Sp_Rab.
  5128. IF tSavze.Sk_Ber THEN
  5129. DO:
  5130. opnTotal[02] = opnTotal[02] + tSavze.Net_Betr
  5131. - tSavze.Auf_Rab
  5132. - tSavze.Abh_Rab
  5133. - tSavze.Auf_Sp_Rab.
  5134. END.
  5135. VGewicht = VGewicht + tSavze.Gewicht.
  5136. END.
  5137. IF FDebst.Geb_Rg THEN
  5138. DO:
  5139. FOR EACH SavGKon NO-LOCK USE-INDEX SavGKon-k1
  5140. WHERE SavGKon.Firma = Savko.Firma
  5141. AND SavGKon.Aufnr = Savko.Aufnr :
  5142. zz = SavGKon.MWSt_Cd.
  5143. VWpfl[zz] = VWpfl[zz] + SavGKon.Betrag.
  5144. IF SavGKon.Gebuehr = 0 THEN opnTotal[11] = opnTotal[11] + SavGKon.Betrag.
  5145. ELSE opnTotal[12] = opnTotal[12] + SavGKon.Betrag.
  5146. END.
  5147. END.
  5148. ELSE
  5149. DO:
  5150. FOR EACH SavGKon NO-LOCK USE-INDEX SavGKon-k1
  5151. WHERE SavGKon.Firma = Savko.Firma
  5152. AND SavGKon.Aufnr = Savko.Aufnr
  5153. AND SavGKon.Gebuehr <> 0.0
  5154. AND SavGKon.Betrag <> 0.0 :
  5155. zz = SavGKon.MWSt_Cd.
  5156. VWpfl[zz] = VWpfl[zz] + SavGKon.Betrag.
  5157. opnTotal[12] = opnTotal[12] + SavGKon.Betrag.
  5158. END.
  5159. END.
  5160. VMaxWC = 0.
  5161. VTotNK = VWpfl[12].
  5162. VResNK = VWpfl[12].
  5163. DO zz = 1 TO 11:
  5164. IF VWpfl[zz] < 0 THEN VFakt[zz] = -1.
  5165. ELSE VFakt[zz] = +1.
  5166. VTotWu = VTotWu + (VWpfl[zz] * VFakt[zz]).
  5167. IF VWpfl[zz] <> 0 THEN VMaxWC = zz.
  5168. END.
  5169. NFakt = +1.
  5170. IF VTotNK < 0 THEN
  5171. DO:
  5172. VTotNK = - VTotNK.
  5173. VResNK = - VResNK.
  5174. NFakt = -1.
  5175. END.
  5176. DO zz = 1 TO 11:
  5177. IF VWpfl[zz] = 0 THEN NEXT.
  5178. IF zz = VMaxWC THEN
  5179. DO:
  5180. NWpfl[zz] = VResNK * NFakt.
  5181. TWpfl[zz] = VWpfl[zz] + (VResNK * NFakt).
  5182. LEAVE.
  5183. END.
  5184. Rundbetr = (((VWpfl[zz] * 100 * VFakt[zz]) / VTotWu) * VTotNK) / 100.
  5185. NWpfl[zz] = Rundbetr * NFakt.
  5186. TWpfl[zz] = VWpfl[zz] + (Rundbetr * NFakt).
  5187. VResNK = VResNK - Rundbetr.
  5188. END.
  5189. DO zz = 1 TO 10:
  5190. IF TWpfl[zz] = 0 THEN NEXT.
  5191. opnTotal[07] = opnTotal[07] + TWpfl[zz].
  5192. opnTotal[10] = opnTotal[10] + TWpfl[zz].
  5193. FIND FIRST Wust USE-INDEX Wust-k2
  5194. WHERE Wust.WuCd = zz NO-LOCK.
  5195. IF Wust.Incl THEN NEXT.
  5196. FIND LAST MWSTAns NO-LOCK USE-INDEX MWSTAns-k1
  5197. WHERE MWSTAns.MWST_Cd = Wust.WuCd
  5198. AND MWSTAns.Datum <= dMwstDat .
  5199. Rundbetr = TWpfl[zz] * MWSTAns.Ansatz / 100.
  5200. VWust [zz] = Rundbetr.
  5201. opnTotal[09] = opnTotal[09] + Rundbetr.
  5202. opnTotal[10] = opnTotal[10] + Rundbetr.
  5203. END.
  5204. opnTotal[08] = opnTotal[08] + TWpfl[11].
  5205. opnTotal[10] = opnTotal[10] + TWpfl[11].
  5206. Rundbetr = opnTotal[10].
  5207. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
  5208. opnTotal[10] = Rundbetr.
  5209. ASSIGN
  5210. nAufTotal = nAufTotal + Savko.Auf_Tot.
  5211. LEAVE.
  5212. END.
  5213. RELEASE Savko.
  5214. RELEASE Savze.
  5215. RELEASE SavGKon.
  5216. RELEASE SavSpRab.
  5217. RELEASE SavRabSu.
  5218. RELEASE Steuer.
  5219. RELEASE Wust.
  5220. RELEASE FDebst.
  5221. END FUNCTION.
  5222. /* _UIB-CODE-BLOCK-END */
  5223. &ANALYZE-RESUME
  5224. &ENDIF
  5225. &IF DEFINED(EXCLUDE-isFestAuftrag) = 0 &THEN
  5226. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION isFestAuftrag Procedure
  5227. FUNCTION isFestAuftrag RETURNS LOGICAL
  5228. ( ipFirma AS CHARACTER, ipFak_Art AS INTEGER ) :
  5229. /*------------------------------------------------------------------------------*/
  5230. /* Purpose: */
  5231. /* Parameters: <none> */
  5232. /* Notes: */
  5233. /*------------------------------------------------------------------------------*/
  5234. FIND FIRST Tabel NO-LOCK
  5235. WHERE Tabel.Firma = ipFirma
  5236. AND Tabel.RecArt = 'FAKART'
  5237. AND Tabel.CodeI = ipFak_Art
  5238. AND Tabel.CodeC = '' NO-ERROR.
  5239. IF NOT AVAILABLE Tabel THEN RETURN FALSE.
  5240. RETURN Tabel.Flag_1.
  5241. END FUNCTION.
  5242. /* _UIB-CODE-BLOCK-END */
  5243. &ANALYZE-RESUME
  5244. &ENDIF
  5245. &IF DEFINED(EXCLUDE-setAufkoDruckFlag) = 0 &THEN
  5246. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setAufkoDruckFlag Procedure
  5247. FUNCTION setAufkoDruckFlag RETURNS LOGICAL
  5248. ( ipFirma AS CHARACTER, ipAufnr AS INTEGER, ipFlag AS LOG ) :
  5249. /*------------------------------------------------------------------------------*/
  5250. /* Purpose: */
  5251. /* Parameters: <none> */
  5252. /* Notes: */
  5253. /*------------------------------------------------------------------------------*/
  5254. DEFINE VARIABLE iSammNr AS INTEGER NO-UNDO.
  5255. DEFINE BUFFER bAufko FOR Aufko.
  5256. REPEAT TRANSACTION:
  5257. FIND bAufko
  5258. WHERE bAufko.Firma = ipFirma
  5259. AND bAufko.Aufnr = ipAufnr.
  5260. bAufko.Gedruckt = ipFlag.
  5261. IF bAufko.Gedruckt = FALSE THEN
  5262. DO:
  5263. IF bAufko.Samm_Nr > 0 THEN
  5264. DO:
  5265. iSammnr = bAufko.Samm_Nr.
  5266. FOR EACH bAufko
  5267. WHERE bAufko.Firma = ipFirma
  5268. AND bAufko.Samm_Nr = iSammNr
  5269. AND bAufko.Gedruckt = TRUE:
  5270. bAufko.Gedruckt = FALSE.
  5271. END.
  5272. END.
  5273. END.
  5274. RELEASE bAufko.
  5275. LEAVE.
  5276. END.
  5277. RETURN FALSE. /* Function return value. */
  5278. END FUNCTION.
  5279. /* _UIB-CODE-BLOCK-END */
  5280. &ANALYZE-RESUME
  5281. &ENDIF
  5282. &IF DEFINED(EXCLUDE-setAufzePreis) = 0 &THEN
  5283. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setAufzePreis Procedure
  5284. FUNCTION setAufzePreis RETURNS INTEGER
  5285. ( ipiSpezPreis AS INTEGER, iplNettoArtikel AS LOG, iplRabAufNetto AS LOG ) :
  5286. /*------------------------------------------------------------------------------*/
  5287. /* Purpose: */
  5288. /* Parameters: <none> */
  5289. /* Notes: */
  5290. /*------------------------------------------------------------------------------*/
  5291. DEFINE VARIABLE Rundbetr AS DECIMAL DECIMALS 4 NO-UNDO.
  5292. FIND FIRST tAufze.
  5293. IF ipiSpezPreis > 0 THEN
  5294. DO:
  5295. FOR EACH tPreis:
  5296. IF tPreis.iArt < 3 OR
  5297. tPreis.iArt > 6 THEN DELETE tPreis.
  5298. END.
  5299. END.
  5300. /* Kein Rabatt auf NettoArtikel ausser mit lRabAufNetto zugelassen */
  5301. /* oder explizit auf SpezialRabtt wieder zugelassen */
  5302. IF iplNettoArtikel AND
  5303. NOT iplRabAufNetto THEN
  5304. DO:
  5305. FOR EACH tPreis
  5306. WHERE tPreis.iArt <> 2 /* Ep + %-Zuschlag */
  5307. AND tPreis.iArt <> 3: /* Kundenspezialpreis auf Artikel */
  5308. ASSIGN
  5309. tPreis.Rab_Proz = 0
  5310. tPreis.Rab_Wert = 0.
  5311. END.
  5312. END.
  5313. FOR EACH tPreis BY tPreis.iArt:
  5314. tPreis.Netto = tPreis.Preis.
  5315. IF tPreis.Rab_Proz <> 0 THEN tPreis.Netto = tPreis.Preis * (100 - tPreis.Rab_Proz) / 100.
  5316. IF tPreis.Rab_Wert <> 0 THEN tPreis.Netto = tPreis.Preis - tPreis.Rab_Wert.
  5317. IF tPreis.Spe_Proz <> 0 THEN tPreis.Netto = tPreis.Preis * (100 - tPreis.Spe_Proz) / 100.
  5318. IF tPreis.Spe_Wert <> 0 THEN tPreis.Netto = tPreis.Preis - tPreis.Spe_Wert.
  5319. IF tPreis.Zus_Proz <> 0 THEN tPreis.Netto = tPreis.Netto + (tPreis.Preis * tPreis.Zus_Proz / 100).
  5320. IF tPreis.Zus_Wert <> 0 THEN tPreis.Netto = tPreis.Netto + tPreis.Zus_Wert.
  5321. END.
  5322. FIND FIRST tPreis USE-INDEX tPreis-k1
  5323. WHERE tPreis.Netto >= 0 NO-ERROR.
  5324. DO WHILE TRUE:
  5325. IF NOT AVAILABLE tPreis THEN
  5326. DO:
  5327. ASSIGN
  5328. tAufze.Preis = 0
  5329. tAufze.Rab_Art = 0
  5330. tAufze.Rab_Wert = 0
  5331. tAufze.Rab_Betr = 0
  5332. tAufze.Bru_Betr = 0
  5333. tAufze.Net_Betr = 0.
  5334. LEAVE.
  5335. END.
  5336. ASSIGN
  5337. tAufze.Preis = tPreis.Preis
  5338. tAufze.Aktion = (IF tPreis.cAkt_Text = '' THEN FALSE ELSE TRUE)
  5339. tAufze.Aktion_Text = tPreis.cAkt_Text
  5340. tAufze.Rab_Art = 0
  5341. tAufze.Zus_Art = 0
  5342. tAufze.Rab_Wert = 0
  5343. tAufze.Zus_Wert = 0
  5344. tAufze.Rab_Betr = 0
  5345. tAufze.Zus_Betr = 0.
  5346. IF tPreis.Rab_Proz > 0 THEN
  5347. ASSIGN
  5348. tAufze.Rab_Art = 1
  5349. tAufze.Rab_Wert = + tPreis.Rab_Proz.
  5350. IF tPreis.Rab_Proz < 0 THEN
  5351. ASSIGN
  5352. tAufze.Rab_Art = 3
  5353. tAufze.Rab_Wert = - tPreis.Rab_Proz.
  5354. IF tPreis.Rab_Wert > 0 THEN
  5355. ASSIGN
  5356. tAufze.Rab_Art = 2
  5357. tAufze.Rab_Wert = + tPreis.Rab_Wert.
  5358. IF tPreis.Spe_Proz > 0 THEN
  5359. ASSIGN
  5360. tAufze.Rab_Art = 1
  5361. tAufze.Rab_Wert = + tPreis.Spe_Proz.
  5362. IF tPreis.Spe_Proz < 0 THEN
  5363. ASSIGN
  5364. tAufze.Rab_Art = 1
  5365. tAufze.Rab_Wert = + tPreis.Spe_Proz.
  5366. IF tPreis.Spe_Wert > 0 THEN
  5367. ASSIGN
  5368. tAufze.Rab_Art = 2
  5369. tAufze.Rab_Wert = + tPreis.Spe_Wert.
  5370. IF tPreis.Zus_Proz > 0 THEN
  5371. ASSIGN
  5372. tAufze.Zus_Art = 1
  5373. tAufze.Zus_Wert = + tPreis.Zus_Proz.
  5374. IF tPreis.Zus_Proz < 0 THEN
  5375. ASSIGN
  5376. tAufze.Zus_Art = 1
  5377. tAufze.Zus_Wert = + tPreis.Zus_Proz.
  5378. IF tPreis.Zus_Wert > 0 THEN
  5379. ASSIGN
  5380. tAufze.Zus_Art = 2
  5381. tAufze.Zus_Wert = + tPreis.Zus_Wert.
  5382. IF tPreis.iArt = 2 THEN
  5383. ASSIGN
  5384. tAufze.Rab_Art = 3. /* Ep-Plus */
  5385. LEAVE.
  5386. END.
  5387. IF tAufze.Rab_Art = 1 THEN tAufze.Rab_Betr = tAufze.Preis * tAufze.Rab_Wert / 100.
  5388. IF tAufze.Rab_Art = 2 THEN tAufze.Rab_Betr = tAufze.Rab_Wert .
  5389. IF tAufze.Rab_Art = 3 THEN
  5390. DO:
  5391. IF lEpProzBetr THEN tAufze.Rab_Betr = tAufze.Preis * tAufze.Rab_Wert / 100 * -1.
  5392. ELSE tAufze.Rab_Betr = tAufze.Rab_Wert.
  5393. END.
  5394. IF tAufze.Zus_Art = 1 THEN tAufze.Zus_Betr = tAufze.Preis * tAufze.Zus_Wert / 100.
  5395. IF tAufze.Zus_Art = 2 THEN tAufze.Zus_Betr = tAufze.Zus_Wert .
  5396. ASSIGN
  5397. tAufze.Rab_Betr = tAufze.Rab_Betr * tAufze.MGeli
  5398. tAufze.Zus_Betr = tAufze.Zus_Betr * tAufze.MGeli.
  5399. tAufze.Bru_Betr = tAufze.Preis * tAufze.MGeli.
  5400. tAufze.Net_Betr = tAufze.Bru_Betr - tAufze.Rab_Betr + tAufze.Zus_Betr.
  5401. IF tAufze.Mwst_Inkl THEN
  5402. DO:
  5403. Rundbetr = tAufze.Net_Betr.
  5404. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
  5405. tAufze.Net_Betr = Rundbetr.
  5406. END.
  5407. RETURN (IF AVAILABLE tPreis THEN tPreis.iArt ELSE -1).
  5408. END FUNCTION.
  5409. /* _UIB-CODE-BLOCK-END */
  5410. &ANALYZE-RESUME
  5411. &ENDIF
  5412. &IF DEFINED(EXCLUDE-SET_ABH_AUFNR) = 0 &THEN
  5413. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION SET_ABH_AUFNR Procedure
  5414. FUNCTION SET_ABH_AUFNR RETURNS LOGICAL
  5415. ( ipAufnr AS INTEGER ) :
  5416. /*------------------------------------------------------------------------------*/
  5417. /* Purpose: */
  5418. /* Parameters: <none> */
  5419. /* Notes: */
  5420. /*------------------------------------------------------------------------------*/
  5421. AbhAufnr = ipAufnr.
  5422. END FUNCTION.
  5423. /* _UIB-CODE-BLOCK-END */
  5424. &ANALYZE-RESUME
  5425. &ENDIF
  5426. &IF DEFINED(EXCLUDE-_getPreis) = 0 &THEN
  5427. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION _getPreis Procedure
  5428. FUNCTION _getPreis RETURNS LOGICAL
  5429. ( ipKnr AS INTEGER, ipDatum AS DATE, INPUT-OUTPUT iohAufze AS HANDLE ) :
  5430. /*------------------------------------------------------------------------------*/
  5431. /* Purpose: */
  5432. /* Parameters: <none> */
  5433. /* Notes: */
  5434. /*------------------------------------------------------------------------------*/
  5435. DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
  5436. DEFINE VARIABLE Firma AS CHARACTER NO-UNDO.
  5437. DEFINE VARIABLE VPreis AS DECIMAL DECIMALS 4 NO-UNDO.
  5438. DEFINE VARIABLE VRab_Betr AS DECIMAL DECIMALS 4 NO-UNDO.
  5439. DEFINE VARIABLE VRab_Proz AS DECIMAL DECIMALS 4 NO-UNDO.
  5440. DEFINE VARIABLE VZus_Betr AS DECIMAL DECIMALS 4 NO-UNDO.
  5441. DEFINE VARIABLE VZus_Proz AS DECIMAL DECIMALS 4 NO-UNDO.
  5442. DEFINE VARIABLE Rundbetr AS DECIMAL DECIMALS 4 NO-UNDO.
  5443. DEFINE VARIABLE VAktion AS LOG NO-UNDO.
  5444. DEFINE VARIABLE VAktion_Text AS CHARACTER NO-UNDO.
  5445. DEFINE VARIABLE VP_Grp AS INTEGER NO-UNDO.
  5446. DEFINE VARIABLE VGrp AS INTEGER NO-UNDO.
  5447. DEFINE VARIABLE NettoRab AS INTEGER NO-UNDO.
  5448. DEFINE VARIABLE Aktionen AS INTEGER NO-UNDO.
  5449. DEFINE VARIABLE PosMenge AS INTEGER NO-UNDO.
  5450. DEFINE VARIABLE FAbweich AS LOG NO-UNDO.
  5451. DEFINE VARIABLE KeineAkt AS LOG NO-UNDO.
  5452. DEFINE VARIABLE FSpezPreis AS INTEGER NO-UNDO.
  5453. /* 0 = Kein Spezialpreis */
  5454. /* 1 = Spezialpreis auf Artikel */
  5455. /* 2 = Spezialpreis auf Rabattgruppe */
  5456. DEFINE VARIABLE FwPreisGrp AS INTEGER NO-UNDO.
  5457. EMPTY TEMP-TABLE tAufze.
  5458. CREATE tAufze.
  5459. hBuffer = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
  5460. hBuffer:BUFFER-COPY(iohAufze).
  5461. Firma = tAufze.Firma.
  5462. FIND Steuer NO-LOCK
  5463. WHERE Steuer.Firma = Firma NO-ERROR.
  5464. ASSIGN
  5465. FwPreisGrp = Steuer.Fwi14
  5466. Aktionen = Steuer.Fwi20
  5467. NettoRab = Steuer.Fwi15
  5468. PosMenge = ABS(tAufze.MBest)
  5469. .
  5470. FIND Debst NO-LOCK
  5471. WHERE Debst.Firma = Firma
  5472. AND Debst.Knr = ipKnr NO-ERROR.
  5473. IF NOT AVAILABLE Debst THEN RETURN FALSE.
  5474. ASSIGN
  5475. tAufze.Rab_Art = Debst.Zei_Rab_Art
  5476. tAufze.Rab_Wert = Debst.Zei_Rab_Wert
  5477. tAufze.Rab_Betr = 0
  5478. tAufze.Zus_Art = Debst.Zuschl_Art
  5479. tAufze.Zus_Wert = Debst.Zuschl_Wert
  5480. tAufze.Zus_Betr = 0
  5481. tAufze.Bru_Betr = 0
  5482. tAufze.Net_Betr = 0.
  5483. FIND Artst NO-LOCK
  5484. WHERE Artst.Firma = Firma
  5485. AND Artst.Artnr = tAufze.Artnr
  5486. AND Artst.Inhalt = tAufze.Inhalt
  5487. AND Artst.Jahr = tAufze.Jahr NO-ERROR.
  5488. IF NOT AVAILABLE Artst THEN RETURN FALSE.
  5489. FIND Wust NO-LOCK USE-INDEX Wust-k1
  5490. WHERE Wust.CodeK = Debst.MWST
  5491. AND Wust.CodeA = Artst.MWST NO-ERROR.
  5492. tAufze.WuCd = Wust.WuCd.
  5493. FIND FIRST Wust NO-LOCK USE-INDEX Wust-k2
  5494. WHERE Wust.WuCd = tAufze.WuCd NO-ERROR.
  5495. FIND LAST MWSTAns NO-LOCK USE-INDEX MWSTAns-k1
  5496. WHERE MWSTAns.MWST_Cd = tAufze.WuCd
  5497. AND MWSTAns.Datum <= ipDatum NO-ERROR.
  5498. tAufze.MWST% = MWSTAns.Ansatz.
  5499. tAufze.MWST_Inkl = Wust.Incl.
  5500. VPreis = 0.
  5501. VRab_Betr = 0.
  5502. VRab_Proz = 0.
  5503. VAktion = FALSE.
  5504. VAktion_Text = ''.
  5505. VP_Grp = 0.
  5506. FAbweich = FALSE.
  5507. PosMenge = ABS(tAufze.MBest).
  5508. FIND AbwPrGrp USE-INDEX AbwPrGrp-k1
  5509. WHERE AbwPrGrp.Firma = Firma
  5510. AND AbwPrGrp.Knr = ipKnr
  5511. AND AbwPrGrp.Wg_Grp = Artst.Wg_Grp NO-LOCK NO-ERROR.
  5512. IF AVAILABLE AbwPrGrp THEN
  5513. DO:
  5514. VP_Grp = AbwPrGrp.Preis_Grp.
  5515. FAbweich = TRUE.
  5516. END.
  5517. ELSE VP_Grp = Debst.Preis_Grp.
  5518. IF Steuer.AktionsPreise = 0 THEN VGrp = VP_Grp.
  5519. IF Steuer.AktionsPreise = 1 THEN VGrp = Debst.Ku_Grp.
  5520. /* -------------------------------------------------------------- */
  5521. /* Aktionspreise auf dieser Warengruppe möglich ? */
  5522. /* -------------------------------------------------------------- */
  5523. FIND AktKeine NO-LOCK USE-INDEX AktKeine-k1
  5524. WHERE AktKeine.Firma = Firma
  5525. AND AktKeine.Knr = ipKnr
  5526. AND AktKeine.Wgr = Artst.Wg_Grp NO-ERROR.
  5527. IF AVAILABLE AktKeine THEN KeineAkt = TRUE.
  5528. ELSE KeineAkt = FALSE.
  5529. DO WHILE TRUE:
  5530. ASSIGN
  5531. tAufze.Rab_Su_Grp = 0
  5532. tAufze.Rab_Su_Art = 0.
  5533. FIND RabTab NO-LOCK USE-INDEX RabTab-k1
  5534. WHERE RabTab.Firma = Firma
  5535. AND RabTab.Ku_Rab = Debst.Rab_Grp
  5536. AND RabTab.Art_Rab = Artst.Rab_Grp NO-ERROR.
  5537. IF NOT AVAILABLE RabTab THEN LEAVE.
  5538. ASSIGN
  5539. tAufze.Rab_Su_Grp = RabTab.Rab_Summ
  5540. tAufze.Rab_Su_Art = RabTab.Add_Art.
  5541. IF tAufze.Netto THEN LEAVE.
  5542. IF RabTab.Wert = 0 THEN LEAVE.
  5543. IF RabTab.Rab_Art = 1 THEN
  5544. DO:
  5545. tAufze.Rab_Wert = RabTab.Wert.
  5546. tAufze.Rab_Art = (IF RabTab.Proz_Betr THEN 1 ELSE 2).
  5547. END.
  5548. LEAVE.
  5549. END.
  5550. DO WHILE TRUE:
  5551. IF tAufze.Rab_Art = 3 THEN
  5552. DO:
  5553. IF Artst.DEP <> 0 THEN VPreis = Artst.DEP.
  5554. IF Artst.LEP <> 0 THEN VPreis = Artst.LEP.
  5555. IF Artst.Listen_EP <> 0 THEN VPreis = Artst.Listen_EP.
  5556. LEAVE.
  5557. END.
  5558. FIND LAST ArtPreis NO-LOCK USE-INDEX ArtPreis-k1
  5559. WHERE ArtPreis.Firma = Firma
  5560. AND ArtPreis.Artnr = tAufze.Artnr
  5561. AND ArtPreis.Inhalt = tAufze.Inhalt
  5562. AND ArtPreis.Jahr = tAufze.Jahr
  5563. AND ArtPreis.Preis_Grp = VP_Grp
  5564. AND ArtPreis.Aktion = FALSE
  5565. AND ArtPreis.Ab_Datum <= ipDatum NO-ERROR.
  5566. DO WHILE TRUE:
  5567. IF AVAILABLE ArtPreis THEN LEAVE.
  5568. IF FAbweich THEN
  5569. DO:
  5570. FIND LAST ArtPreis NO-LOCK USE-INDEX ArtPreis-k1
  5571. WHERE ArtPreis.Firma = Firma
  5572. AND ArtPreis.Artnr = tAufze.Artnr
  5573. AND ArtPreis.Inhalt = tAufze.Inhalt
  5574. AND ArtPreis.Jahr = tAufze.Jahr
  5575. AND ArtPreis.Preis_Grp = Debst.Preis_Grp
  5576. AND ArtPreis.Aktion = FALSE
  5577. AND ArtPreis.Ab_Datum <= ipDatum NO-ERROR.
  5578. IF AVAILABLE ArtPreis THEN LEAVE.
  5579. END.
  5580. FIND LAST ArtPreis NO-LOCK USE-INDEX ArtPreis-k1
  5581. WHERE ArtPreis.Firma = Firma
  5582. AND ArtPreis.Artnr = tAufze.Artnr
  5583. AND ArtPreis.Inhalt = tAufze.Inhalt
  5584. AND ArtPreis.Jahr = tAufze.Jahr
  5585. AND ArtPreis.Preis_Grp = FwPreisGrp
  5586. AND ArtPreis.Aktion = FALSE
  5587. AND ArtPreis.Ab_Datum <= ipDatum NO-ERROR.
  5588. IF AVAILABLE ArtPreis THEN LEAVE.
  5589. FIND FIRST ArtPreis NO-LOCK USE-INDEX ArtPreis-k1
  5590. WHERE ArtPreis.Firma = Firma
  5591. AND ArtPreis.Artnr = tAufze.Artnr
  5592. AND ArtPreis.Inhalt = tAufze.Inhalt
  5593. AND ArtPreis.Jahr = tAufze.Jahr
  5594. AND ArtPreis.Preis_Grp = VP_Grp
  5595. AND ArtPreis.Aktion = FALSE
  5596. AND ArtPreis.Ab_Datum >= ipDatum NO-ERROR.
  5597. LEAVE.
  5598. END.
  5599. IF AVAILABLE ArtPreis THEN
  5600. DO:
  5601. FIND LAST ArtStaff NO-LOCK USE-INDEX ArtStaff-k1
  5602. WHERE ArtStaff.Firma = ArtPreis.Firma
  5603. AND ArtStaff.Artnr = ArtPreis.Artnr
  5604. AND ArtStaff.Inhalt = ArtPreis.Inhalt
  5605. AND ArtStaff.Jahr = ArtPreis.Jahr
  5606. AND ArtStaff.Preis_Grp = ArtPreis.Preis_Grp
  5607. AND ArtStaff.Ab_Datum = ArtPreis.Ab_Datum
  5608. AND ArtStaff.Menge <= PosMenge NO-ERROR.
  5609. IF AVAILABLE ArtStaff THEN
  5610. DO:
  5611. IF Wust.Incl THEN VPreis = ArtStaff.VK_Brutto.
  5612. ELSE VPreis = ArtStaff.VK_Netto.
  5613. END.
  5614. ELSE
  5615. DO.
  5616. IF Wust.Incl THEN VPreis = ArtPreis.VK_Brutto.
  5617. ELSE VPreis = ArtPreis.VK_Netto.
  5618. END.
  5619. END.
  5620. FIND LAST SpezPrei NO-LOCK USE-INDEX SpezPrei-k1
  5621. WHERE SpezPrei.Firma = Firma
  5622. AND SpezPrei.Knr = ipKnr
  5623. AND SpezPrei.Artnr = tAufze.Artnr
  5624. AND SpezPrei.Inhalt = tAufze.Inhalt
  5625. AND SpezPrei.Jahr = tAufze.Jahr
  5626. AND SpezPrei.Menge <= PosMenge
  5627. AND SpezPrei.Ab_Datum <= ipDatum
  5628. AND SpezPrei.Bis_Datum >= ipDatum NO-ERROR.
  5629. IF AVAILABLE SpezPrei THEN
  5630. DO:
  5631. IF SpezPrei.Proz_Betr THEN
  5632. DO.
  5633. VRab_Proz = SpezPrei.Wert.
  5634. VRab_Betr = 0.
  5635. END.
  5636. ELSE
  5637. DO:
  5638. VPreis = SpezPrei.Wert.
  5639. VRab_Betr = 0.
  5640. VRab_Proz = 0.
  5641. END.
  5642. tAufze.Rab_Su_Grp = 0.
  5643. tAufze.Rab_Su_Art = 0.
  5644. FSpezPreis = 1.
  5645. END.
  5646. DO WHILE TRUE:
  5647. tAufze.Auf_Sp_Proz_Betr = TRUE.
  5648. tAufze.Auf_Sp_Wert = 0.
  5649. tAufze.Auf_Sp_Rab = 0.
  5650. tAufze.Auf_Sp_Grp = 0.
  5651. IF FSpezPreis > 0 THEN LEAVE.
  5652. FIND FIRST SpPrRab NO-LOCK USE-INDEX SpPrRab-k1
  5653. WHERE SpPrRab.Firma = Firma
  5654. AND SpPrRab.Knr = ipKnr
  5655. AND SpPrRab.Rab_Grp = Artst.Rab_Grp
  5656. AND SpPrRab.Ab_Datum <= ipDatum
  5657. AND SpPrRab.Bis_Datum >= ipDatum NO-ERROR.
  5658. IF AVAILABLE SpPrRab THEN
  5659. DO:
  5660. tAufze.Auf_Sp_Grp = SpPrRab.Rab_Grp.
  5661. END.
  5662. FIND LAST SpPrRab NO-LOCK USE-INDEX SpPrRab-k1
  5663. WHERE SpPrRab.Firma = Firma
  5664. AND SpPrRab.Knr = ipKnr
  5665. AND SpPrRab.Rab_Grp = Artst.Rab_Grp
  5666. AND SpPrRab.Menge <= PosMenge
  5667. AND SpPrRab.Ab_Datum <= ipDatum
  5668. AND SpPrRab.Bis_Datum >= ipDatum NO-ERROR.
  5669. IF AVAILABLE SpPrRab THEN
  5670. DO:
  5671. IF SpPrRab.Wert <> 0 THEN
  5672. DO:
  5673. IF SpPrRab.Proz_Betr THEN
  5674. DO.
  5675. VRab_Proz = SpPrRab.Wert.
  5676. VRab_Betr = 0.
  5677. END.
  5678. ELSE
  5679. DO:
  5680. VRab_Betr = SpPrRab.Wert.
  5681. VRab_Proz = 0.
  5682. END.
  5683. /* IF tAufze.Netto = TRUE THEN*/
  5684. /* DO: */
  5685. /* IF NettoRab = 1 THEN */
  5686. /* DO: */
  5687. /* VRab_Proz = 0. */
  5688. /* VRab_Betr = 0. */
  5689. /* END. */
  5690. /* END. */
  5691. tAufze.Rab_Su_Grp = 0.
  5692. tAufze.Rab_Su_Art = 0.
  5693. FSpezPreis = 2.
  5694. END.
  5695. END.
  5696. LEAVE.
  5697. END.
  5698. DO WHILE TRUE:
  5699. IF KeineAkt THEN LEAVE.
  5700. IF FSpezpreis > 0 AND
  5701. Aktionen = 0 THEN LEAVE.
  5702. IF FSpezpreis = 1 THEN
  5703. DO:
  5704. IF Aktionen = 2 THEN LEAVE.
  5705. END.
  5706. IF FSpezpreis = 2 THEN
  5707. DO:
  5708. IF Aktionen = 1 THEN LEAVE.
  5709. END.
  5710. FIND LAST AktPreis NO-LOCK USE-INDEX AktPreis-k2
  5711. WHERE AktPreis.Firma = Firma
  5712. AND AktPreis.Artnr = tAufze.Artnr
  5713. AND AktPreis.Inhalt = tAufze.Inhalt
  5714. AND AktPreis.Jahr = tAufze.Jahr
  5715. AND AktPreis.Grp = VGrp
  5716. AND AktPreis.Ab_Datum <= ipDatum
  5717. AND AktPreis.Bis_Datum >= ipDatum NO-ERROR.
  5718. IF AVAILABLE AktPreis THEN
  5719. DO:
  5720. IF AktPreis.Art = 0 THEN VPreis = VPreis - AktPreis.Wert.
  5721. IF AktPreis.Art = 1 THEN VPreis = VPreis * (100 - AktPreis.Wert) / 100.
  5722. VAktion = TRUE.
  5723. VAktion_Text = AktPreis.Bemerkung.
  5724. LEAVE.
  5725. END.
  5726. IF NOT FAbweich THEN LEAVE.
  5727. IF Steuer.AktionsPreise > 0 THEN LEAVE.
  5728. FIND LAST AktPreis NO-LOCK USE-INDEX AktPreis-k2
  5729. WHERE AktPreis.Firma = Firma
  5730. AND AktPreis.Artnr = tAufze.Artnr
  5731. AND AktPreis.Inhalt = tAufze.Inhalt
  5732. AND AktPreis.Jahr = tAufze.Jahr
  5733. AND AktPreis.Grp = Debst.Preis_Grp
  5734. AND AktPreis.Ab_Datum <= ipDatum
  5735. AND AktPreis.Bis_Datum >= ipDatum NO-ERROR.
  5736. IF AVAILABLE AktPreis THEN
  5737. DO:
  5738. IF AktPreis.Art = 0 THEN VPreis = VPreis - AktPreis.Wert.
  5739. IF AktPreis.Art = 1 THEN VPreis = VPreis * (100 - AktPreis.Wert) / 100.
  5740. VAktion = TRUE.
  5741. VAktion_Text = AktPreis.Bemerkung.
  5742. LEAVE.
  5743. END.
  5744. LEAVE.
  5745. END.
  5746. IF tAufze.Netto THEN LEAVE.
  5747. IF FSpezPreis > 0 THEN LEAVE.
  5748. IF AVAILABLE RabTab THEN
  5749. DO:
  5750. IF RabTab.Wert = 0 THEN LEAVE.
  5751. END.
  5752. IF tAufze.Rab_Art > 0 THEN
  5753. DO:
  5754. IF tAufze.Rab_Art = 1 THEN
  5755. DO:
  5756. VRab_Proz = tAufze.Rab_Wert.
  5757. VRab_Betr = 0.
  5758. LEAVE.
  5759. END.
  5760. IF tAufze.Rab_Art = 2 THEN
  5761. DO:
  5762. VRab_Betr = tAufze.Rab_Wert.
  5763. VRab_Proz = 0.
  5764. LEAVE.
  5765. END.
  5766. END.
  5767. IF AVAILABLE RabTab THEN
  5768. DO:
  5769. IF RabTab.Rab_Art = 0 THEN VRab_Betr = RabTab.Wert.
  5770. IF RabTab.Rab_Art = 1 THEN VRab_Proz = RabTab.Wert.
  5771. END.
  5772. LEAVE.
  5773. END.
  5774. ASSIGN
  5775. tAufze.Preis = VPreis
  5776. tAufze.Aktion = VAktion
  5777. tAufze.Aktion_Text = VAktion_Text.
  5778. IF tAufze.Rab_Art <> 3 THEN
  5779. DO:
  5780. ASSIGN
  5781. tAufze.Rab_Art = 0
  5782. tAufze.Rab_Wert = 0.
  5783. END.
  5784. IF VRab_Proz <> 0 THEN
  5785. DO:
  5786. ASSIGN
  5787. tAufze.Rab_Art = 1
  5788. tAufze.Rab_Wert = VRab_Proz.
  5789. END.
  5790. IF VRab_Betr <> 0 THEN
  5791. DO:
  5792. ASSIGN
  5793. tAufze.Rab_Art = 2
  5794. tAufze.Rab_Wert = VRab_Betr.
  5795. END.
  5796. DO WHILE TRUE:
  5797. IF tAufze.Rab_Art = 1 THEN
  5798. DO:
  5799. tAufze.Bru_Betr = tAufze.Preis * tAufze.MGeli.
  5800. tAufze.Rab_Betr = tAufze.Rab_Wert * tAufze.Bru_Betr / 100.
  5801. LEAVE.
  5802. END.
  5803. IF tAufze.Rab_Art = 2 THEN
  5804. DO:
  5805. tAufze.Bru_Betr = tAufze.Preis * tAufze.MGeli.
  5806. tAufze.Rab_Betr = tAufze.Rab_Wert * tAufze.MGeli.
  5807. LEAVE.
  5808. END.
  5809. IF tAufze.Rab_Art = 3 THEN
  5810. DO:
  5811. tAufze.Bru_Betr = tAufze.Preis * tAufze.MGeli.
  5812. tAufze.Rab_Betr = tAufze.Rab_Wert * tAufze.MGeli * -1.
  5813. LEAVE.
  5814. END.
  5815. tAufze.Bru_Betr = tAufze.Preis * tAufze.MGeli.
  5816. tAufze.Rab_Betr = 0.
  5817. tAufze.Rab_Art = 0.
  5818. LEAVE.
  5819. END.
  5820. IF Wust.Incl THEN
  5821. DO:
  5822. Rundbetr = tAufze.Rab_Betr.
  5823. RUN RUNDEN ( 1, INPUT-OUTPUT Rundbetr ).
  5824. tAufze.Rab_Betr = Rundbetr.
  5825. END.
  5826. tAufze.Zus_Betr = 0.
  5827. IF tAufze.Zus_Art > 0 THEN
  5828. DO:
  5829. IF tAufze.Zus_Art = 1
  5830. THEN tAufze.Zus_Betr = tAufze.Bru_Betr * tAufze.Zus_Wert / 100.
  5831. IF tAufze.Zus_Art = 2
  5832. THEN tAufze.Zus_Betr = tAufze.MGeli * tAufze.Zus_Wert.
  5833. END.
  5834. IF Wust.Incl THEN
  5835. DO:
  5836. Rundbetr = tAufze.Zus_Betr.
  5837. RUN RUNDEN ( 1, INPUT-OUTPUT Rundbetr ).
  5838. tAufze.Zus_Betr = Rundbetr.
  5839. END.
  5840. tAufze.Net_Betr = tAufze.Bru_Betr - tAufze.Rab_Betr + tAufze.Zus_Betr.
  5841. IF Wust.Incl THEN
  5842. DO:
  5843. Rundbetr = tAufze.Net_Betr.
  5844. RUN RUNDEN ( 1, INPUT-OUTPUT Rundbetr ).
  5845. tAufze.Net_Betr = Rundbetr.
  5846. END.
  5847. iohAufze:BUFFER-COPY(hBuffer).
  5848. RETURN TRUE.
  5849. END FUNCTION.
  5850. /* _UIB-CODE-BLOCK-END */
  5851. &ANALYZE-RESUME
  5852. &ENDIF
  5853. &IF DEFINED(EXCLUDE-updateRuestauftrag) = 0 &THEN
  5854. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION updateRuestauftrag Procedure
  5855. FUNCTION updateRuestauftrag RETURNS LOGICAL
  5856. ( ipiStatus AS INTEGER, iprAufze AS RECID ):
  5857. /*------------------------------------------------------------------------------*/
  5858. /* Purpose: */
  5859. /* Notes: ipiStatus = 0 -> Zeile erfasstt */
  5860. /* Notes: ipiStatus = 1 -> Zeile mutiert */
  5861. /* Notes: ipiStatus = 9 -> Zeile geloescht */
  5862. /*------------------------------------------------------------------------------*/
  5863. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO INIT TRUE.
  5864. DEFINE BUFFER bAufze FOR Aufze.
  5865. DEFINE BUFFER bAufko FOR Aufko.
  5866. DEFINE VARIABLE hrawTable AS HANDLE NO-UNDO.
  5867. DEFINE VARIABLE hrRuestAuf AS HANDLE NO-UNDO.
  5868. hrawTable = BUFFER rawTable:HANDLE.
  5869. hrRuestAuf = TEMP-TABLE rRuestAuf:DEFAULT-BUFFER-HANDLE.
  5870. FIND bAufze NO-LOCK WHERE RECID(bAufze) = iprAufze NO-ERROR.
  5871. IF bAufze.Artnr = 0 THEN RETURN lRetVal.
  5872. FIND FIRST RuestAuf NO-LOCK
  5873. WHERE RuestAuf.Firma = bAufze.Firma
  5874. AND RuestAuf.Aufnr = bAufze.Aufnr NO-ERROR.
  5875. IF NOT AVAILABLE RuestAuf THEN RETURN lRetVal.
  5876. FIND bAufko NO-LOCK OF bAufze NO-ERROR.
  5877. IF bAufko.Faknr > 0 THEN RETURN lRetVal.
  5878. IF bAufko.Auf_Sta > 1 THEN RETURN lRetVal.
  5879. IF bAufko.Fahrer = 0 THEN RETURN lRetVal.
  5880. /* FIND FIRST RuestAuf NO-LOCK */
  5881. /* WHERE RuestAuf.Firma = bAufze.Firma */
  5882. /* AND RuestAuf.Aufnr = bAufze.Aufnr */
  5883. /* AND RuestAuf.lGeladen = TRUE NO-ERROR.*/
  5884. /* IF AVAILABLE RuestAuf THEN RETURN lRetVal. */
  5885. FIND FIRST RuestAuf NO-LOCK OF bAufze NO-ERROR.
  5886. IF NOT AVAILABLE RuestAuf AND
  5887. ipiStatus = 9 THEN
  5888. DO:
  5889. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  5890. FOR EACH rawTable
  5891. WHERE rawTable.Firma = bAufze.Firma
  5892. AND rawTable.Tabelle = 'RUESTAUF'
  5893. AND rawTable.Tabelle_Id = RECID(bAufze):
  5894. DELETE rawTable.
  5895. RELEASE rawTable.
  5896. END.
  5897. LEAVE.
  5898. END.
  5899. RETURN lRetVal. /* Löschen einer noch nicht existierenden RuestPosition */
  5900. END.
  5901. IF AVAILABLE RuestAuf AND
  5902. RuestAuf.MGeli = 0 AND
  5903. RuestAuf.MBest = bAufze.MBest THEN RETURN lRetVal.
  5904. IF NOT AVAILABLE RuestAuf AND
  5905. ipiStatus = 1 THEN ipiStatus = 0.
  5906. IF AVAILABLE RuestAuf AND
  5907. ipiStatus = 0 THEN ipiStatus = 1.
  5908. EMPTY TEMP-TABLE rRuestAuf.
  5909. CASE ipiStatus:
  5910. WHEN 0 THEN
  5911. DO:
  5912. CREATE rRuestAuf.
  5913. BUFFER-COPY bAufze
  5914. TO rRuestAuf
  5915. ASSIGN
  5916. rRuestAuf.MBest = 0
  5917. rRuestAuf.GGeb_Best = 0
  5918. rRuestAuf.VGeb_Best = 0
  5919. rRuestAuf.KGeb_Best = 0
  5920. rRuestAuf.SubPos = 0.
  5921. CREATE rRuestAuf.
  5922. BUFFER-COPY bAufze
  5923. TO rRuestAuf
  5924. ASSIGN
  5925. rRuestAuf.MBest = bAufze.MBest
  5926. rRuestAuf.GGeb_Best = bAufze.GGeb_Be
  5927. rRuestAuf.VGeb_Best = bAufze.VGeb_Be
  5928. rRuestAuf.KGeb_Best = bAufze.KGeb_Be
  5929. rRuestAuf.SubPos = 1.
  5930. END.
  5931. WHEN 1 THEN
  5932. DO:
  5933. CREATE rRuestAuf.
  5934. BUFFER-COPY RuestAuf
  5935. EXCEPT SubPos
  5936. TO rRuestAuf
  5937. ASSIGN
  5938. rRuestAuf.SubPos = 0.
  5939. CREATE rRuestAuf.
  5940. BUFFER-COPY RuestAuf
  5941. TO rRuestAuf
  5942. ASSIGN
  5943. rRuestAuf.MBest = bAufze.MBest
  5944. rRuestAuf.GGeb_Best = bAufze.GGeb_Be
  5945. rRuestAuf.VGeb_Best = bAufze.VGeb_Be
  5946. rRuestAuf.KGeb_Best = bAufze.KGeb_Be
  5947. rRuestAuf.SubPos = 1.
  5948. END.
  5949. WHEN 9 THEN
  5950. DO:
  5951. CREATE rRuestAuf.
  5952. BUFFER-COPY RuestAuf
  5953. EXCEPT SubPos
  5954. TO rRuestAuf
  5955. ASSIGN
  5956. rRuestAuf.SubPos = 0.
  5957. CREATE rRuestAuf.
  5958. BUFFER-COPY RuestAuf
  5959. EXCEPT SubPos MBest GGeb_Best VGeb_Best KGeb_Best
  5960. TO rRuestAuf
  5961. ASSIGN
  5962. rRuestAuf.SubPos = 1.
  5963. END.
  5964. END.
  5965. REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
  5966. FOR EACH rRuestAuf:
  5967. FIND FIRST rawTable
  5968. WHERE rawTable.Firma = bAufze.Firma
  5969. AND rawTable.Tabelle = 'RUESTAUF'
  5970. AND rawTable.Tabelle_Id = RECID(bAufze)
  5971. AND rawTable.Tabelle_Key = SUBSTITUTE ('&1&2&3&4', STRING(bAufze.Artnr,'999999'), STRING(bAufze.Inhalt,'999999'), STRING(bAufze.Jahr,'9999'), STRING(bAufze.Pos,'9999') )
  5972. AND rawTable.iTrans = rRuestAuf.SubPos NO-ERROR.
  5973. IF NOT AVAILABLE rawTable THEN
  5974. DO:
  5975. CREATE rawTable.
  5976. ASSIGN
  5977. rawTable.Firma = bAufze.Firma
  5978. rawTable.Tabelle = 'RUESTAUF'
  5979. rawTable.Tabelle_Id = RECID(bAufze)
  5980. rawTable.Tabelle_Key = SUBSTITUTE ('&1&2&3&4', STRING(bAufze.Artnr,'999999'), STRING(bAufze.Inhalt,'999999'), STRING(bAufze.Jahr,'9999'), STRING(bAufze.Pos,'9999') )
  5981. rawTable.iTrans = rRuestAuf.SubPos
  5982. rawTable.iStatus = ipiStatus.
  5983. hrRuestAuf:RAW-TRANSFER (TRUE, hrawTable:BUFFER-FIELD('rawData')).
  5984. RELEASE rawTable.
  5985. NEXT.
  5986. END.
  5987. IF rRuestAuf.SubPos = 0 THEN
  5988. DO:
  5989. RELEASE rawTable.
  5990. NEXT.
  5991. END.
  5992. hrRuestAuf:RAW-TRANSFER (TRUE, hrawTable:BUFFER-FIELD('rawData')).
  5993. RELEASE rawTable.
  5994. END.
  5995. RELEASE rawTable.
  5996. CREATE ASMutation.
  5997. ASSIGN
  5998. ASMutation.ASMutation_id = NEXT-VALUE(ASMutation_id)
  5999. ASMutation.MutArt = 'RUESTDRUCK'
  6000. ASMutation.Firma = bAufze.Firma
  6001. ASMutation.AdFirma = ''
  6002. ASMutation.Datum = TODAY
  6003. ASMutation.cStatus = ''
  6004. ASMutation.Aktiv = TRUE
  6005. ASMutation.iKey_1 = bAufze.Aufnr
  6006. ASMutation.iKey_2 = 01
  6007. ASMutation.iFeld_1 = bAufze.Pos
  6008. ASMutation.iFeld_2 = 0
  6009. ASMutation.iFeld_3 = TIME
  6010. ASMutation.cFeld_2 = 'TRIGGER'
  6011. ASMutation.cFeld_3 = (IF ipiStatus = 0 THEN 'CREATE' ELSE 'UPDATE').
  6012. .
  6013. IF ipiStatus = 9 THEN ASMutation.cFeld_3 = 'DELETE'.
  6014. RELEASE ASMutation.
  6015. LEAVE.
  6016. END.
  6017. RETURN lRetVal.
  6018. END FUNCTION.
  6019. /* _UIB-CODE-BLOCK-END */
  6020. &ANALYZE-RESUME
  6021. &ENDIF