| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131 |
- &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v9r12
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS Procedure
- USING src.ch.adprime.algorithm.NumberSystems FROM PROPATH.
- /*------------------------------------------------------------------------
- File :
- Purpose :
- Syntax :
- Description :
- Author(s) :
- Created :
- Notes :
- ----------------------------------------------------------------------*/
- /* This .W file was created with the Progress AppBuilder. */
- /*----------------------------------------------------------------------*/
- /* *************************** Definitions ************************** */
- DEFINE VARIABLE AbhAufnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE Firma AS CHARACTER NO-UNDO.
- DEFINE VARIABLE AdFirma AS CHARACTER NO-UNDO.
- DEFINE VARIABLE fBatch AS LOG INIT FALSE NO-UNDO.
- DEFINE VARIABLE lRueckstand AS LOG NO-UNDO.
- DEFINE VARIABLE lEpProzBetr AS LOG NO-UNDO.
- DEFINE VARIABLE lSummGrpSpPr AS LOG NO-UNDO.
- DEFINE VARIABLE Benutzer AS CHARACTER NO-UNDO.
- DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
- DEFINE TEMP-TABLE tArtst LIKE Artst .
- DEFINE TEMP-TABLE tAufko LIKE Aufko .
- DEFINE TEMP-TABLE tAufze LIKE Aufze
- FIELD Knr AS INTEGER
- FIELD Datum AS DATE
- FIELD lAktion AS LOGICAL INIT TRUE
- .
- DEFINE TEMP-TABLE tSavze LIKE Savze .
- DEFINE TEMP-TABLE tArtbw LIKE Artbw .
- DEFINE TEMP-TABLE tAufGKon LIKE AufGKon .
- DEFINE TEMP-TABLE tAufSpRab LIKE AufSpRab.
- DEFINE TEMP-TABLE tAufRabSu LIKE AufRabSu.
- DEFINE TEMP-TABLE rRuestAuf NO-UNDO LIKE RuestAuf.
- DEFINE TEMP-TABLE tVerlauf
- FIELD FakArt AS INTEGER
- FIELD AufSta AS INTEGER
- FIELD wFakArt AS INTEGER
- FIELD wAufSta AS INTEGER
- FIELD zFakArt AS INTEGER
- FIELD zAufSta AS INTEGER
- FIELD dFakArt AS INTEGER
- FIELD dAufSta AS INTEGER
- FIELD wDruck AS LOG
- FIELD zDruck AS LOG
- FIELD dDruck AS LOG
- INDEX tVerlauf-k1 IS PRIMARY
- FakArt
- AufSta.
- DEFINE TEMP-TABLE tPreis
- FIELD iArt AS INTEGER
- FIELD Preis AS DECIMAL DECIMALS 4
- FIELD Rab_Proz AS DECIMAL DECIMALS 4
- FIELD Rab_Wert AS DECIMAL DECIMALS 4
- FIELD Zus_Proz AS DECIMAL DECIMALS 4
- FIELD Zus_Wert AS DECIMAL DECIMALS 4
- FIELD Spe_Proz AS DECIMAL DECIMALS 4
- FIELD Spe_Wert AS DECIMAL DECIMALS 4
- FIELD Netto AS DECIMAL DECIMALS 4
- FIELD cAkt_Text AS CHARACTER
-
- INDEX tPreis-k1
- Netto
- iArt.
- DEFINE BUFFER btPreis FOR tPreis.
- DEFINE TEMP-TABLE tParam
- FIELD Firma AS CHARACTER
- FIELD Knr AS INTEGER
- FIELD Kond_Datum AS DATE
- FIELD Mwst AS INTEGER
- FIELD Preis_Grp AS INTEGER
- FIELD Ku_Grp AS INTEGER
- FIELD Rab_Grp AS INTEGER
- FIELD Sprcd AS INTEGER
- FIELD Frw AS CHARACTER
- FIELD Kurs AS DECIMAL DECIMALS 4
- FIELD Faktor AS INTEGER
- FIELD Lager AS INTEGER
- FIELD Geb_Rg AS LOG
- FIELD Zei_Rab_Art AS INTEGER
- FIELD Zei_Rab_Wert AS DECIMAL
- FIELD Auf_Rab_Art AS INTEGER
- FIELD Auf_Rab_Wert AS DECIMAL
- FIELD Abh_Rab_Art AS INTEGER
- FIELD Abh_Rab_Wert AS DECIMAL
- FIELD Zuschl_Art AS INTEGER
- FIELD Zuschl_Wert AS DECIMAL
- .
-
- { properties.i }
- { incl/tmwstcalc.i }
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
- /* ******************** Preprocessor Definitions ******************** */
- &Scoped-define PROCEDURE-TYPE Procedure
- &Scoped-define DB-AWARE no
- /* _UIB-PREPROCESSOR-BLOCK-END */
- &ANALYZE-RESUME
- /* ************************ Function Prototypes ********************** */
- &IF DEFINED(EXCLUDE-buchenArtikel) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD buchenArtikel Procedure
- FUNCTION buchenArtikel RETURNS LOGICAL
- ( ipKnr AS INTEGER,
- ipBuffer AS HANDLE ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-calculateAuftragsTotal) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD calculateAuftragsTotal Procedure
- FUNCTION calculateAuftragsTotal RETURNS CHARACTER
- ( ipcFirma AS CHARACTER, ipiAufnr AS INTEGER, OUTPUT opnTotal AS DECIMAL EXTENT 15 ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-calculateGebindeAusMenge) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD calculateGebindeAusMenge Procedure
- FUNCTION calculateGebindeAusMenge RETURNS LOGICAL
- (ipcFirma AS CHARACTER,
- ipiArtnr AS INTEGER,
- ipiInhalt AS INTEGER,
- ipiJahr AS INTEGER,
- ipiMenge AS INTEGER,
- OUTPUT opiGGebinde AS INTEGER,
- OUTPUT opiVGebinde AS INTEGER,
- OUTPUT opiKGebinde AS INTEGER) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-calculateZeilenTotal) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD calculateZeilenTotal Procedure
- FUNCTION calculateZeilenTotal RETURNS LOGICAL
- ( INPUT-OUTPUT iphAufze AS HANDLE ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-createAktionspreis) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createAktionspreis Procedure
- FUNCTION createAktionspreis RETURNS LOGICAL
- ( ipiAktGrp AS INTEGER, iplAbweich AS LOG, ipiAktKuPr_Grp AS INTEGER, ipiKuPreisGrp AS INTEGER) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-createAufGebKo) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createAufGebKo Procedure
- FUNCTION createAufGebKo RETURNS LOGICAL
- ( ipAufnr AS INTEGER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-createAufkoParam) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createAufkoParam Procedure
- FUNCTION createAufkoParam RETURNS LOGICAL
- ( ipFirma AS CHARACTER, ipAufnr AS INTEGER, ipKnr AS INTEGER, ipDatum AS DATE ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-createAufnr) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createAufnr Procedure
- FUNCTION createAufnr RETURNS INTEGER
- ( ipFirma AS CHARACTER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-createEpPreis) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createEpPreis Procedure
- FUNCTION createEpPreis RETURNS LOGICAL
- ( iphbArtst AS HANDLE ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-createFaknr) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createFaknr Procedure
- FUNCTION createFaknr RETURNS INTEGER
- ( ipFirma AS CHARACTER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-createManuellerPreis) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createManuellerPreis Procedure
- FUNCTION createManuellerPreis RETURNS LOGICAL
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-createSammnr) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD createSammnr Procedure
- FUNCTION createSammnr RETURNS INTEGER
- ( ipFirma AS CHARACTER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-deleteArtbw) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD deleteArtbw Procedure
- FUNCTION deleteArtbw RETURNS LOGICAL
- (ipiTrnr AS INTEGER,
- iprArtbw AS RECID) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-deleteAuflot) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD deleteAuflot Procedure
- FUNCTION deleteAuflot RETURNS LOGICAL
- (iprAufze AS RECID) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-deleteAuftrag) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD deleteAuftrag Procedure
- FUNCTION deleteAuftrag RETURNS LOGICAL
- ( ipRecid AS RECID ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-deleteAufzeile) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD deleteAufzeile Procedure
- FUNCTION deleteAufzeile RETURNS LOGICAL
- (ipRecid AS RECID) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-deleteRuestAuf) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD deleteRuestAuf Procedure
- FUNCTION deleteRuestAuf RETURNS LOGICAL
- (iprRuestAuf AS RECID) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-fillArtbwFromAufze) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD fillArtbwFromAufze Procedure
- FUNCTION fillArtbwFromAufze RETURNS LOGICAL
- ( INPUT-OUTPUT iohtAufze AS HANDLE ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-fillAufko) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD fillAufko Procedure
- FUNCTION fillAufko RETURNS LOGICAL
- ( ipArt AS INTEGER, INPUT-OUTPUT iphAufko AS HANDLE ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-fillAufRabSu) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD fillAufRabSu Procedure
- FUNCTION fillAufRabSu RETURNS LOGICAL
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-FillAufSpRab) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD FillAufSpRab Procedure
- FUNCTION FillAufSpRab RETURNS LOGICAL
- ( ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-fillAufze) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD fillAufze Procedure
- FUNCTION fillAufze RETURNS INTEGER
- ( INPUT-OUTPUT iphAufze AS HANDLE ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getAbholSeite) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getAbholSeite Procedure
- FUNCTION getAbholSeite RETURNS INTEGER
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getAufstatus) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getAufstatus Procedure
- FUNCTION getAufstatus RETURNS CHARACTER
- ( ipAufstatus AS INTEGER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getDokumentArt) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getDokumentArt Procedure
- FUNCTION getDokumentArt RETURNS CHARACTER
- ( ipFakart AS INTEGER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getEpProz_Betr) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getEpProz_Betr Procedure
- FUNCTION getEpProz_Betr RETURNS LOGICAL
- ( ipFirma AS CHARACTER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getFakart) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getFakart Procedure
- FUNCTION getFakart RETURNS CHARACTER
- ( ipFakart AS INTEGER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getHoReLagerId) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getHoReLagerId Procedure
- FUNCTION getHoReLagerId RETURNS INTEGER
- (ipiArtnr AS INTEGER,
- ipiInhalt AS INTEGER,
- ipiJahr AS INTEGER,
- ipiLager AS INTEGER) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getPreisAufze) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getPreisAufze Procedure
- FUNCTION getPreisAufze RETURNS INTEGER
- ( INPUT-OUTPUT iohtAufze AS HANDLE ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getSummGrpSpPr) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getSummGrpSpPr Procedure
- FUNCTION getSummGrpSpPr RETURNS LOGICAL
- ( ipFirma AS CHARACTER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-GET_ABH_AUFNR) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD GET_ABH_AUFNR Procedure
- FUNCTION GET_ABH_AUFNR RETURNS INTEGER
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getVerbuchtTotale) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getVerbuchtTotale Procedure
- FUNCTION getVerbuchtTotale RETURNS CHARACTER
- (ipcFirma AS CHARACTER,
- ipiAufnr AS INTEGER,
- OUTPUT opnTotal AS DECIMAL EXTENT 15) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-isFestAuftrag) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD isFestAuftrag Procedure
- FUNCTION isFestAuftrag RETURNS LOGICAL
- ( ipFirma AS CHARACTER, ipFak_Art AS INTEGER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-setAufkoDruckFlag) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setAufkoDruckFlag Procedure
- FUNCTION setAufkoDruckFlag RETURNS LOGICAL
- ( ipFirma AS CHARACTER, ipAufnr AS INTEGER, ipFlag AS LOG ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-setAufzePreis) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setAufzePreis Procedure
- FUNCTION setAufzePreis RETURNS INTEGER
- ( ipiSpezPreis AS INTEGER, iplNettoArtikel AS LOG, iplRabAufNetto AS LOG ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-SET_ABH_AUFNR) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD SET_ABH_AUFNR Procedure
- FUNCTION SET_ABH_AUFNR RETURNS LOGICAL
- ( ipAufnr AS INTEGER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-_getPreis) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD _getPreis Procedure
- FUNCTION _getPreis RETURNS LOGICAL
- ( ipKnr AS INTEGER, ipDatum AS DATE, INPUT-OUTPUT iohAufze AS HANDLE ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-updateRuestauftrag) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD updateRuestauftrag Procedure
- FUNCTION updateRuestauftrag RETURNS LOGICAL
- (ipiStatus AS INTEGER,
- iprAufze AS RECID) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- /* *********************** Procedure Settings ************************ */
- &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
- /* Settings for THIS-PROCEDURE
- Type: Procedure
- Allow:
- Frames: 0
- Add Fields to: Neither
- Other Settings: CODE-ONLY COMPILE
- */
- &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
- /* ************************* Create Window ************************** */
- &ANALYZE-SUSPEND _CREATE-WINDOW
- /* DESIGN Window definition (used by the UIB)
- CREATE WINDOW Procedure ASSIGN
- HEIGHT = 32
- WIDTH = 82.
- /* END WINDOW DEFINITION */
- */
- &ANALYZE-RESUME
-
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Procedure
- /* *************************** Main Block *************************** */
- SUBSCRIBE TO 'NEUERMANDANT' ANYWHERE.
- DO WHILE TRUE:
- EMPTY TEMP-TABLE tArtst.
- EMPTY TEMP-TABLE tAufko.
- EMPTY TEMP-TABLE tAufze.
- EMPTY TEMP-TABLE tArtbw.
-
- CREATE tArtst.
- CREATE tAufko.
- CREATE tAufze.
- CREATE tArtbw.
- LEAVE.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ********************** Internal Procedures *********************** */
- &IF DEFINED(EXCLUDE-ALSOFFERTE_CHANGED) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ALSOFFERTE_CHANGED Procedure
- PROCEDURE ALSOFFERTE_CHANGED :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipAufnr AS INTEGER NO-UNDO.
- DEFINE INPUT PARAMETER ipOfferte AS LOG NO-UNDO.
-
- DEFINE VARIABLE VMenge AS DECIMAL NO-UNDO.
-
- DEFINE BUFFER bAufze FOR Aufze .
- DEFINE BUFFER bArtst FOR Artst .
- DEFINE BUFFER bArtLager FOR ArtLager.
- DEFINE BUFFER bArtbw FOR Artbw .
-
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
- FOR EACH bAufze
- WHERE bAufze.Firma = Firma
- AND bAufze.Aufnr = ipAufnr
- AND bAufze.Artnr > 0:
- FIND bArtst NO-LOCK
- WHERE bArtst.Firma = bAufze.Firma
- AND bArtst.Artnr = bAufze.Artnr
- AND bArtst.Inhalt = bAufze.Inhalt
- AND bArtst.Jahr = bAufze.Jahr NO-ERROR.
- bAufze.Lag_Buch = ( IF ipOfferte THEN FALSE ELSE bArtst.Lager ).
- FIND bArtbw OF bAufze.
- bArtbw.Lag_Buch = bAufze.Lag_Buch.
-
- RELEASE bArtst.
- RELEASE bArtbw.
- RELEASE bAufze.
- RELEASE bArtLager.
- END.
- LEAVE.
- END.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-ARTBWMUT) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTBWMUT Procedure
- PROCEDURE ARTBWMUT :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipRecid AS RECID NO-UNDO.
- FIND FIRST tAufze.
- FIND Artbw WHERE RECID(Artbw) = ipRecid.
- FIND Aufko OF tAufze NO-LOCK NO-ERROR.
-
- BUFFER-COPY tAufze TO Artbw
- ASSIGN
- Artbw.Menge = tAufze.MGeli
- Artbw.Datum = Aufko.Auf_Dat
- Artbw.Faktor = 1
- Artbw.Kurs = Aufko.Kurs
- Artbw.Faknr = Aufko.Faknr
- Artbw.Fak_Dat = Aufko.Fak_Dat
- Artbw.Fak_Art = Aufko.Fak_Art
- Artbw.Knr = Aufko.Knr
- Artbw.Fak_Knr = Aufko.Fak_Knr
- Artbw.Abhol = Aufko.Abhol
- Artbw.Vertr = Aufko.Vertr.
-
- RELEASE Artbw.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-AUFTRAGFUNKTIONENINIT) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAGFUNKTIONENINIT Procedure
- PROCEDURE AUFTRAGFUNKTIONENINIT :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- Firma = DYNAMIC-FUNCTION('GETMANDANT':U ) NO-ERROR.
- AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
- lEpProzBetr = DYNAMIC-FUNCTION('getEpProz_Betr':U, Firma ) NO-ERROR.
- lSummGrpSpPr = DYNAMIC-FUNCTION('getSummGrpSpPr':U, Firma ) NO-ERROR.
- RUN LADEN_DOKVERLAUF.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-AUFTRAGSTOTAL) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAGSTOTAL Procedure
- PROCEDURE AUFTRAGSTOTAL :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipAufnr AS INTEGER NO-UNDO.
- DEFINE OUTPUT PARAMETER ipTotal AS CHARACTER NO-UNDO.
- DEFINE VARIABLE VTotal AS DECIMAL DECIMALS 4 EXTENT 15 NO-UNDO.
- DEFINE VARIABLE zz AS INTEGER NO-UNDO.
- ipTotal = ''.
- DYNAMIC-FUNCTION('calculateAuftragsTotal':U, Firma, ipAufnr, OUTPUT VTotal ).
- DO zz = 1 TO 15:
- ipTotal = ipTotal
- + (IF ipTotal = '' THEN '' ELSE CHR(01))
- + STRING(VTotal[zz]).
- END.
- RETURN ''.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-AUFTRAG_GEDRUCKT) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUFTRAG_GEDRUCKT Procedure
- PROCEDURE AUFTRAG_GEDRUCKT :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipAufnr AS INTEGER NO-UNDO.
-
- DEFINE VARIABLE AltSammFak AS LOG NO-UNDO.
- DEFINE VARIABLE NeuSammFak AS LOG NO-UNDO.
- DEFINE VARIABLE AltFakArt AS INTEGER NO-UNDO.
- DEFINE VARIABLE iSammNr AS INTEGER NO-UNDO.
- DEFINE VARIABLE lAltFest AS LOG NO-UNDO.
- DEFINE VARIABLE lNeuFest AS LOG NO-UNDO.
- DEFINE VARIABLE iRecid AS RECID NO-UNDO.
- DEFINE BUFFER xAufko FOR Aufko.
- STATUSAENDERUNG:
- REPEAT TRANSACTION:
- FIND Aufko EXCLUSIVE-LOCK USE-INDEX Aufko-k1
- WHERE Aufko.Firma = Firma
- AND Aufko.Aufnr = ipAufnr NO-WAIT NO-ERROR.
- IF NOT AVAILABLE Aufko THEN
- DO:
- RELEASE Aufko.
- RETURN 'Fehler'.
- END.
- IF Aufko.AlsOfferte THEN
- DO:
- RELEASE Aufko.
- MESSAGE 'Auftrag ist Offerte! WEITER geht hier nicht! '
- VIEW-AS ALERT-BOX INFORMATION.
- RETURN 'Fehler'.
- END.
- ASSIGN
- iRecid = RECID(Aufko)
- Firma = Aufko.Firma
- Aufko.Gedruckt = TRUE.
-
- FIND FIRST tVerlauf NO-LOCK USE-INDEX tVerlauf-k1
- WHERE tVerlauf.FakArt = Aufko.Fak_Art
- AND tVerlauf.AufSta = Aufko.Auf_Sta NO-ERROR.
- IF NOT AVAILABLE tVerlauf THEN
- DO:
- RELEASE Aufko.
- RETURN 'ERROR'.
- END.
-
- IF Aufko.Fak_Art = tVerlauf.dFakArt AND
- Aufko.Auf_Sta = tVerlauf.dAufSta THEN
- DO:
- RELEASE Aufko.
- RETURN ''.
- END.
- FIND Tabel NO-LOCK USE-INDEX Tabel-k1
- WHERE Tabel.Firma = Firma
- AND Tabel.RecArt = 'FAKART'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = Aufko.Fak_Art
- AND Tabel.Sprcd = 1 NO-ERROR.
- IF Tabel.Int_3 = 4 THEN AltSammFak = TRUE.
- ELSE AltSammFak = FALSE.
- ASSIGN
- AltFakArt = Aufko.Fak_Art
- lAltFest = Tabel.Flag_1
- Aufko.Fak_Art = tVerlauf.dFakArt
- Aufko.Auf_Sta = tVerlauf.dAufSta
- Aufko.Gedruckt = (IF tVerlauf.dDruck = TRUE THEN FALSE ELSE TRUE).
- IF AltFakArt <> Aufko.Fak_Art THEN
- DO:
- FIND Tabel NO-LOCK USE-INDEX Tabel-k1
- WHERE Tabel.Firma = Firma
- AND Tabel.RecArt = 'FAKART'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = Aufko.Fak_Art
- AND Tabel.Sprcd = 1 NO-ERROR.
- IF Tabel.Int_3 = 4 THEN NeuSammFak = TRUE.
- ELSE NeuSammFak = FALSE.
- lNeuFest = Tabel.Flag_1.
- END.
- ELSE
- DO:
- ASSIGN
- lNeufest = lAltFest
- NeuSammFak = AltSammFak.
- END.
- DO WHILE TRUE:
- IF lAltFest OR
- lNeuFest THEN
- DO:
- RELEASE Aufko.
- RUN PROCESSFESTAUFTRAG ( Firma, ipAufnr, lAltFest, lNeuFest ) NO-ERROR.
- FIND Aufko NO-LOCK WHERE RECID(Aufko) = iRecid.
-
- IF NeuSammFak AND
- NOT AltSammFak AND
- Aufko.Samm_Nr = 0 THEN
- DO:
- FIND FIRST xAufko NO-LOCK
- WHERE xAufko.Firma = Aufko.Firma
- AND xAufko.Fak_Art = Aufko.Fak_Art
- AND xAufko.Samm_Nr > 0
- AND xAufko.Aufnr <> Aufko.Aufnr NO-ERROR.
- IF AVAILABLE xAufko THEN
- DO:
- FIND Aufko WHERE RECID(Aufko) = iRecid.
- ASSIGN
- Aufko.Samm_Nr = xAufko.Samm_Nr.
- RELEASE Aufko.
- END.
- FIND Aufko NO-LOCK WHERE RECID(Aufko) = iRecid.
- END.
- IF NeuSammFak AND
- tVerlauf.dDruck THEN
- DO:
- FOR EACH xAufko
- WHERE xAufko.Firma = Aufko.Firma
- AND xAufko.Fak_Art = Aufko.Fak_Art
- AND xAufko.Samm_Nr = Aufko.Samm_Nr
- AND xAufko.Aufnr <> Aufko.Aufnr:
- ASSIGN
- xAufko.Gedruckt = FALSE.
- END.
- END.
- LEAVE.
- END.
-
- IF NOT AltSammFak AND
- NOT NeuSammFak THEN LEAVE.
- IF AltSammFak AND
- NOT NeuSammFak THEN
- DO:
- ASSIGN
- Aufko.Samm_Nr = 0
- Aufko.Faknr = 0.
- LEAVE.
- END.
- IF AltSammFak AND
- NeuSammFak THEN
- DO:
- FOR EACH xAufko USE-INDEX Aufko-k5
- WHERE xAufko.Firma = Aufko.Firma
- AND xAufko.Fak_Art = AltFakArt
- AND xAufko.Samm_Nr = Aufko.Samm_Nr :
- ASSIGN
- xAufko.Fak_Art = Aufko.Fak_Art
- xAufko.Auf_Sta = Aufko.Auf_Sta.
- END.
- LEAVE.
- END.
-
- RUN SETSAMMELNUMMER ( INPUT RECID(Aufko) ).
- IF RETURN-VALUE = 'ERROR' THEN
- DO:
- UNDO STATUSAENDERUNG, RETURN 'ERROR'.
- END.
- LEAVE.
- END.
- RELEASE xAufko.
- RELEASE Aufko.
- LEAVE.
- END.
- RETURN ''.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-BUFFER_TO_TAUFZE) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BUFFER_TO_TAUFZE Procedure
- PROCEDURE BUFFER_TO_TAUFZE :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT-OUTPUT PARAMETER ipBuffer AS HANDLE NO-UNDO.
- DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
- DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
- DEFINE VARIABLE hRAufze AS HANDLE NO-UNDO.
- DEFINE VARIABLE hFAufze AS HANDLE NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE ex AS INTEGER NO-UNDO.
- FIND FIRST tAufze.
- IF NOT AVAILABLE tAufze THEN CREATE tAufze.
- hRAufze = BUFFER tAufze:HANDLE NO-ERROR.
- hRAufze:BUFFER-COPY(ipBuffer).
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-COMBO_BEIFAHRER) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE COMBO_BEIFAHRER Procedure
- PROCEDURE COMBO_BEIFAHRER :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER IHandle AS HANDLE NO-UNDO.
-
- DEFINE VARIABLE RecArt AS CHARACTER INIT 'BEIFAHR' NO-UNDO.
- DEFINE VARIABLE CodeC AS CHARACTER INIT '' NO-UNDO.
- DEFINE VARIABLE CodeI AS INTEGER INIT 0 NO-UNDO.
- DEFINE VARIABLE Sprcd AS INTEGER INIT 1 NO-UNDO.
- DEFINE VARIABLE Art AS INTEGER INIT 1 NO-UNDO.
- RUN COMBO_TABELLE ( INPUT iHandle ,
- INPUT RecArt ,
- INPUT CodeC ,
- INPUT CodeI ,
- INPUT Sprcd ,
- INPUT Art ).
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-COMBO_FAHRER) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE COMBO_FAHRER Procedure
- PROCEDURE COMBO_FAHRER :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER IHandle AS HANDLE NO-UNDO.
-
- DEFINE VARIABLE RecArt AS CHARACTER INIT 'FAHRER' NO-UNDO.
- DEFINE VARIABLE CodeC AS CHARACTER INIT '' NO-UNDO.
- DEFINE VARIABLE CodeI AS INTEGER INIT 0 NO-UNDO.
- DEFINE VARIABLE Sprcd AS INTEGER INIT 1 NO-UNDO.
- DEFINE VARIABLE Art AS INTEGER INIT 1 NO-UNDO.
- RUN COMBO_TABELLE ( INPUT iHandle ,
- INPUT RecArt ,
- INPUT CodeC ,
- INPUT CodeI ,
- INPUT Sprcd ,
- INPUT Art ).
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-COMBO_IBESTELLUNG) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE COMBO_IBESTELLUNG Procedure
- PROCEDURE COMBO_IBESTELLUNG :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER IHandle AS HANDLE NO-UNDO.
-
- DEFINE VARIABLE RecArt AS CHARACTER INIT 'IBEST' NO-UNDO.
- DEFINE VARIABLE CodeC AS CHARACTER INIT '' NO-UNDO.
- DEFINE VARIABLE CodeI AS INTEGER INIT 0 NO-UNDO.
- DEFINE VARIABLE Sprcd AS INTEGER INIT 1 NO-UNDO.
- DEFINE VARIABLE Art AS INTEGER INIT 4 NO-UNDO.
- RUN COMBO_TABELLE ( INPUT iHandle ,
- INPUT RecArt ,
- INPUT CodeC ,
- INPUT CodeI ,
- INPUT Sprcd ,
- INPUT Art ).
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-COMBO_LIEFBEDINGUNG) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE COMBO_LIEFBEDINGUNG Procedure
- PROCEDURE COMBO_LIEFBEDINGUNG :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER IHandle AS HANDLE NO-UNDO.
-
- DEFINE VARIABLE RecArt AS CHARACTER INIT 'LIEFBED' NO-UNDO.
- DEFINE VARIABLE CodeC AS CHARACTER INIT '' NO-UNDO.
- DEFINE VARIABLE CodeI AS INTEGER INIT 0 NO-UNDO.
- DEFINE VARIABLE Sprcd AS INTEGER INIT 1 NO-UNDO.
- DEFINE VARIABLE Art AS INTEGER INIT 1 NO-UNDO.
- RUN COMBO_TABELLE ( INPUT iHandle ,
- INPUT RecArt ,
- INPUT CodeC ,
- INPUT CodeI ,
- INPUT Sprcd ,
- INPUT Art ).
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-COMBO_LKW) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE COMBO_LKW Procedure
- PROCEDURE COMBO_LKW :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER IHandle AS HANDLE NO-UNDO.
-
- DEFINE VARIABLE RecArt AS CHARACTER INIT 'LKW' NO-UNDO.
- DEFINE VARIABLE CodeC AS CHARACTER INIT '' NO-UNDO.
- DEFINE VARIABLE CodeI AS INTEGER INIT 0 NO-UNDO.
- DEFINE VARIABLE Sprcd AS INTEGER INIT 1 NO-UNDO.
- DEFINE VARIABLE Art AS INTEGER INIT 1 NO-UNDO.
- RUN COMBO_TABELLE ( INPUT iHandle ,
- INPUT RecArt ,
- INPUT CodeC ,
- INPUT CodeI ,
- INPUT Sprcd ,
- INPUT Art ).
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-CREATE_AUFKO) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_AUFKO Procedure
- PROCEDURE CREATE_AUFKO :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipBuffer AS HANDLE NO-UNDO.
- DEFINE VARIABLE cBenDaten AS CHARACTER NO-UNDO.
- DEFINE VARIABLE Aufnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE Knr AS INTEGER NO-UNDO.
- DEFINE VARIABLE FwFakArt AS INTEGER NO-UNDO.
- DEFINE VARIABLE FwAufSta AS INTEGER NO-UNDO.
- DEFINE VARIABLE FwFahrer AS INTEGER NO-UNDO.
- DEFINE VARIABLE FwLKW AS INTEGER NO-UNDO.
- DEFINE VARIABLE FwBeiFahr AS INTEGER NO-UNDO.
- DEFINE VARIABLE FwSprcd AS INTEGER NO-UNDO.
- DEFINE VARIABLE retValue AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ix AS INTEGER NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
- DEFINE VARIABLE iLager AS INTEGER NO-UNDO.
- DEFINE VARIABLE cBemerk AS CHARACTER NO-UNDO.
- FwSprcd = DYNAMIC-FUNCTION('GETFWSPRCD':U) NO-ERROR.
- cBenDaten = DYNAMIC-FUNCTION('GETBENUTZERDATEN':U) NO-ERROR.
- iLager = DYNAMIC-FUNCTION('getBenLager':U) NO-ERROR.
- FIND FIRST tAufko.
- hBuffer = TEMP-TABLE tAufko:DEFAULT-BUFFER-HANDLE.
- hBuffer:BUFFER-COPY(ipBuffer).
- FIND Adresse NO-LOCK USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = tAufko.Knr NO-ERROR.
- FIND Debst NO-LOCK USE-INDEX Debst-k1
- WHERE Debst.Firma = Firma
- AND Debst.Knr = Adresse.Knr NO-ERROR.
-
- FIND Steuer NO-LOCK
- WHERE Steuer.Firma = Firma NO-ERROR.
- cBemerk = ''.
- CASE Steuer.St05:
- WHEN 0 THEN
- IF Debst.Bemerk <> '' THEN cBemerk = Debst.Bemerk.
- WHEN 1 THEN
- IF Adresse.Bem <> '' THEN cBemerk = Adresse.Bem.
- WHEN 2 THEN
- IF Debst.Auf_Text <> '' THEN cBemerk = Debst.Auf_Text.
- END CASE.
-
- IF tAufko.Abhol THEN
- DO:
- FwFakArt = DYNAMIC-FUNCTION('getAbholFakart':U) NO-ERROR.
- FwAufSta = DYNAMIC-FUNCTION('getAbholAufstatus':U) NO-ERROR.
- END.
- ELSE
- DO:
- FwFakArt = Debst.Fak_Art.
- FwAufSta = 0.
- END.
-
- FwLKW = 0.
- FwFahrer = 0.
- FwBeiFahr = 0.
- GET-KEY-VALUE SECTION 'FwAuftrag' KEY 'FwLKW' VALUE retValue.
- IF retValue <> ? THEN FwLKW = INTEGER(retValue).
- GET-KEY-VALUE SECTION 'FwAuftrag' KEY 'FwFahrer' VALUE retValue.
- IF retValue <> ? THEN FwFahrer = INTEGER(retValue).
- GET-KEY-VALUE SECTION 'FwAuftrag' KEY 'FwBeiFahr' VALUE retValue.
- IF retValue <> ? THEN FwBeiFahr = INTEGER(retValue).
- DO WHILE TRUE:
- IF Debst.KnrLie <> 0 AND
- Debst.KnrLie <> Debst.Knr THEN
- DO:
- ASSIGN
- tAufko.Knr = Debst.KnrLie
- tAufko.Fak_Knr = Debst.Knr.
- LEAVE.
- END.
- IF Debst.KnrFak <> 0 AND
- Debst.KnrFak <> Debst.Knr THEN
- DO:
- ASSIGN
- tAufko.Knr = Debst.KnrLie
- tAufko.Fak_Knr = Debst.KnrFak.
- LEAVE.
- END.
- ASSIGN
- tAufko.Knr = Debst.Knr
- tAufko.Fak_Knr = Debst.Knr.
- LEAVE.
- END.
- FIND Waehrung NO-LOCK
- WHERE Waehrung.Firma = Debst.Firma
- AND Waehrung.FRW = Debst.FRW NO-ERROR.
- Aufnr = DYNAMIC-FUNCTION('createAufnr':U, Firma) NO-ERROR.
- ASSIGN
- tAufko.Aufnr = Aufnr
- tAufko.Auf_Datum = TODAY
- tAufko.Lief_Datum = TODAY
- tAufko.Kond_Datum = TODAY
- tAufko.Fak_Datum = ?
- tAufko.Fak_Art = FwFakArt
- tAufko.I_Best = ''
- tAufko.U_Ref = ENTRY(2, cBenDaten, CHR(01))
- /*
- tAufko.Abhol = FALSE
- */
- tAufko.Vertr = Debst.Vertr
- tAufko.Rabatt = 0
- tAufko.Preis_Grp = Debst.Preis_Grp
- tAufko.Ku_Grp = Debst.Ku_Grp
- tAufko.Rab_Grp = Debst.Rab_Grp
- tAufko.Lief_Bed = Debst.Lief_Bed
- tAufko.Avis = Debst.Avis
- tAufko.Frw = Debst.FRW
- tAufko.Kurs = Waehrung.Kurs
- tAufko.Faktor = Waehrung.Faktor
- tAufko.Gedruckt = FALSE
- tAufko.WW = 0
- tAufko.Wpfl = 0
- tAufko.Wust = 0
- tAufko.Auf_Tot = 0
- tAufko.Faknr = 0
- tAufko.Bar_Fak = FALSE
- tAufko.Bar_Betr = 0
- tAufko.Bar_Skonto = 0
- tAufko.Bar_Konto = ''
- tAufko.GG_Berech = Debst.Geb_rg
- tAufko.Kopf_Text = ''
- tAufko.Fuss_Text = ''
- tAufko.Samm_Nr = 0
- tAufko.SK_Ber = 0
- tAufko.Verbucht = FALSE
- tAufko.Rueckst = FALSE
- tAufko.Fak_KTnr = 0
- tAufko.Fak_FTnr = 0
- tAufko.Filiale = 0
- tAufko.Tour_Nr1 = Debst.Tour_Nr1
- tAufko.Tour_Nr2 = Debst.Tour_Nr2
- tAufko.Konto = Debst.Konto
- tAufko.Geb_Rg = Debst.Geb_Rg
- tAufko.MWST_Nr = ''
- tAufko.Passant = Debst.Passant
- tAufko.Auf_Text = Debst.Auf_Text
- tAufko.Bar_Text = Debst.Bar_Text
- tAufko.Abh_Text = cBemerk
- tAufko.Zei_Rab_Art = Debst.Zei_Rab_Art
- tAufko.Zei_Rab_Wert = Debst.Zei_Rab_Wert
- tAufko.Auf_Rab_Art = Debst.Auf_Rab_Art
- tAufko.Auf_Rab_Wert = Debst.Auf_Rab_Wert
- /*
- tAufko.Abh_Rab_Art = Debst.Abh_Rab_Art
- tAufko.Abh_Rab_Wert = Debst.Abh_Rab_Wert
- */
- tAufko.Zuschl_Art = Debst.Zuschl_Art
- tAufko.Zuschl_Wert = Debst.Zuschl_Wert
- tAufko.Ablad_Vor = Debst.Ablad_Vor
- tAufko.Wirt_So = Debst.Wirt_So
- tAufko.Ablad_Vor_Text = Debst.Ablad_Vor_Text
- tAufko.Wirt_So_Text = Debst.Wirt_So_Text
- tAufko.MWST = Debst.MWST
- tAufko.Kond = Debst.Kond
- tAufko.LKW = FwLKW
- tAufko.Fahrer = FwFahrer
- tAufko.BeiFahrer = FwBeiFahr
- tAufko.Gewicht = 0
- tAufko.Transp = 0
- tAufko.Verpack = 0
- tAufko.Porto = 0
- tAufko.Lager = iLager
- .
- IF tAufko.Konto = '' THEN
- DO:
- FIND SteuNr USE-INDEX SteuNr-k1
- WHERE SteuNr.Firma = Firma NO-LOCK.
- tAufko.Konto = SteuNr.Konto_Debi.
- END.
- ipBuffer:BUFFER-COPY(hBuffer) NO-ERROR.
- RELEASE Adresse.
- RELEASE Debst.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-CREATE_TABTEXTE) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_TABTEXTE Procedure
- PROCEDURE CREATE_TABTEXTE :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
-
- DEFINE INPUT PARAMETER iphAufko AS HANDLE.
- DEFINE INPUT-OUTPUT PARAMETER iphTabTexte AS HANDLE.
-
- iphTabTexte:EMPTY-TEMP-TABLE().
-
- FIND Tabel NO-LOCK USE-INDEX Tabel-k1
- WHERE Tabel.Firma = Firma
- AND Tabel.RecArt = 'FAKART'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = iphAufko::Fak_Art
- AND Tabel.Sprcd = 1 NO-ERROR.
- IF AVAILABLE Tabel THEN
- DO:
- iphTabTexte:BUFFER-CREATE().
- ASSIGN
- iphTabTexte::cRecArt = Tabel.RecArt
- iphTabTexte::iZeile = 1
- iphTabTexte::cFeld1 = Tabel.Bez1
- iphTabTexte::cFeld2 = Tabel.Bez2
- iphTabTexte::cFeld3 = Tabel.BezL
- iphTabTexte::iFeld1 = Tabel.Int_1
- iphTabTexte::iFeld2 = Tabel.Int_2
- iphTabTexte::iFeld3 = Tabel.Int_3.
- END.
- FIND Tabel NO-LOCK USE-INDEX Tabel-k1
- WHERE Tabel.Firma = Firma
- AND Tabel.RecArt = 'AUFSTATUS'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = iphAufko::Auf_Sta
- AND Tabel.Sprcd = 1 NO-ERROR.
- IF AVAILABLE Tabel THEN
- DO:
- iphTabTexte:BUFFER-CREATE().
- ASSIGN
- iphTabTexte::cRecArt = Tabel.RecArt
- iphTabTexte::iZeile = 1
- iphTabTexte::cFeld1 = Tabel.Bez1
- iphTabTexte::cFeld2 = Tabel.Bez2
- iphTabTexte::cFeld3 = Tabel.BezL.
- END.
- FIND Tabel NO-LOCK USE-INDEX Tabel-k1
- WHERE Tabel.Firma = Firma
- AND Tabel.RecArt = 'LIEFART'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = iphAufko::Lief_Bed
- AND Tabel.Sprcd = 1 NO-ERROR.
- IF AVAILABLE Tabel THEN
- DO:
- iphTabTexte:BUFFER-CREATE().
- ASSIGN
- iphTabTexte::cRecArt = Tabel.RecArt
- iphTabTexte::iZeile = 1
- iphTabTexte::cFeld1 = Tabel.Bez1
- iphTabTexte::cFeld2 = Tabel.Bez2
- iphTabTexte::cFeld3 = Tabel.BezL.
- END.
- FIND Tabel NO-LOCK USE-INDEX Tabel-k1
- WHERE Tabel.Firma = Firma
- AND Tabel.RecArt = 'TOUR1'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = iphAufko::Tour_Nr1
- AND Tabel.Sprcd = 1 NO-ERROR.
- IF AVAILABLE Tabel THEN
- DO:
- iphTabTexte:BUFFER-CREATE().
- ASSIGN
- iphTabTexte::cRecArt = Tabel.RecArt
- iphTabTexte::iZeile = 1
- iphTabTexte::cFeld1 = Tabel.Bez1
- iphTabTexte::cFeld2 = Tabel.Bez2
- iphTabTexte::cFeld3 = Tabel.BezL.
- END.
- FIND Tabel NO-LOCK USE-INDEX Tabel-k1
- WHERE Tabel.Firma = Firma
- AND Tabel.RecArt = 'FAHRER'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = iphAufko::Fahrer
- AND Tabel.Sprcd = 1 NO-ERROR.
- IF AVAILABLE Tabel THEN
- DO:
- iphTabTexte:BUFFER-CREATE().
- ASSIGN
- iphTabTexte::cRecArt = Tabel.RecArt
- iphTabTexte::iZeile = 1
- iphTabTexte::cFeld1 = Tabel.Bez1
- iphTabTexte::cFeld2 = Tabel.Bez2
- iphTabTexte::cFeld3 = Tabel.BezL.
- END.
- FIND Tabel NO-LOCK USE-INDEX Tabel-k1
- WHERE Tabel.Firma = Firma
- AND Tabel.RecArt = 'WISO'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = iphAufko::Wirt_So
- AND Tabel.Sprcd = 1 NO-ERROR.
- IF NOT AVAILABLE Tabel THEN
- DO:
- iphTabTexte:BUFFER-CREATE().
- ASSIGN
- iphTabTexte::cRecArt = 'WISO'
- iphTabTexte::iZeile = 1
- iphTabTexte::cFeld1 = iphAufko::Wirt_So
- iphTabTexte::cFeld2 = iphAufko::Wirt_So_Text
- iphTabTexte::cFeld3 = ''.
- END.
- ELSE
- DO:
- iphTabTexte:BUFFER-CREATE().
- ASSIGN
- iphTabTexte::cRecArt = Tabel.RecArt
- iphTabTexte::iZeile = 1
- iphTabTexte::cFeld1 = (IF LENGTH(Tabel.Bez1) > 4 THEN Tabel.Bez1 ELSE '')
- iphTabTexte::cFeld2 = iphAufko::Wirt_So_Text
- iphTabTexte::cFeld3 = (IF LENGTH(Tabel.Bez1) > 4 THEN Tabel.Bez1 ELSE '').
- END.
- iphTabTexte::cFeld3 = iphTabTexte::cFeld1.
- IF iphTabTexte::cFeld2 <> '' THEN iphTabTexte::cFeld3 =
- iphTabTexte::cFeld3 +
- (IF iphTabTexte::cFeld3 <> '' THEN ' / ' ELSE '') +
- iphTabTexte::cFeld2.
- FIND Tabel NO-LOCK USE-INDEX Tabel-k1
- WHERE Tabel.Firma = Firma
- AND Tabel.RecArt = 'ABLAD'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = iphAufko::Ablad_Vor
- AND Tabel.Sprcd = 1 NO-ERROR.
- IF NOT AVAILABLE Tabel THEN
- DO:
- iphTabTexte:BUFFER-CREATE().
- ASSIGN
- iphTabTexte::cRecArt = 'ABLAD'
- iphTabTexte::iZeile = 1
- iphTabTexte::cFeld1 = iphAufko::Ablad_Vor
- iphTabTexte::cFeld2 = iphAufko::Ablad_Vor_Text
- iphTabTexte::cFeld3 = ''.
- END.
- ELSE
- DO:
- iphTabTexte:BUFFER-CREATE().
- ASSIGN
- iphTabTexte::cRecArt = Tabel.RecArt
- iphTabTexte::iZeile = 1
- iphTabTexte::cFeld1 = (IF LENGTH(Tabel.Bez1) > 4 THEN Tabel.Bez1 ELSE '')
- iphTabTexte::cFeld2 = iphAufko::Ablad_Vor_Text
- iphTabTexte::cFeld3 = (IF LENGTH(Tabel.Bez1) > 4 THEN Tabel.Bez1 ELSE '').
- END.
- iphTabTexte::cFeld3 = iphTabTexte::cFeld1.
- IF iphTabTexte::cFeld2 <> '' THEN iphTabTexte::cFeld3 = iphTabTexte::cFeld3
- + (IF iphTabTexte::cFeld3 <> '' THEN ' / ' ELSE '')
- + iphTabTexte::cFeld2.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-FIND_IHREBESTELLUNG) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FIND_IHREBESTELLUNG Procedure
- PROCEDURE FIND_IHREBESTELLUNG :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT-OUTPUT PARAMETER iocString AS CHARACTER NO-UNDO.
-
- DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
-
- cString = iocString.
- FIND FIRST Tabel NO-LOCK
- WHERE Tabel.FIrma = Firma
- AND Tabel.RecArt = 'IBEST'
- AND Tabel.CodeC = cString NO-ERROR.
- IF AVAILABLE Tabel THEN iocString = Tabel.Bez1.
-
- RELEASE Tabel.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-GEBINDE_AUSGANG_RECHNEN) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_AUSGANG_RECHNEN Procedure
- PROCEDURE GEBINDE_AUSGANG_RECHNEN :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipFirma AS CHARACTER NO-UNDO.
- DEFINE INPUT PARAMETER ipAufnr AS INTEGER NO-UNDO.
- DEFINE INPUT PARAMETER ipGebRg AS LOG NO-UNDO.
-
- DEFINE VARIABLE MW AS INTEGER.
-
- DEFINE BUFFER xAufko FOR Aufko.
- EMPTY TEMP-TABLE tAufGKon.
- ipGebRg = TRUE. /* Neu wird Gebindekontrolle geführt, aber nicht dem Total zuaddiert */
- FIND xAufko NO-LOCK
- WHERE xAufko.Firma = ipFirma
- AND xAufko.Aufnr = ipAufnr NO-ERROR.
-
- FOR EACH Aufze NO-LOCK
- WHERE Aufze.Firma = ipFirma
- AND Aufze.Aufnr = ipAufnr:
-
- DO WHILE Aufze.KGebKto <> '':
- IF Aufze.KGeb_Me = 0 THEN LEAVE.
- FIND GebKonto USE-INDEX GebKonto-k1
- WHERE GebKonto.Firma = Aufze.Firma
- AND GebKonto.Geb_Cd = Aufze.KGebKto NO-LOCK.
- IF GebKonto.MWST_Art = 0 THEN MW = 11.
- IF GebKonto.MWST_Art = 1 THEN MW = Aufze.WuCd.
- IF GebKonto.MWST_Art = 2 THEN MW = GebKonto.MWST_Cd.
- FIND tAufGKon USE-INDEX AufGKon-k1
- WHERE tAufGKon.Firma = Aufze.Firma
- AND tAufGKon.Aufnr = Aufze.Aufnr
- AND tAufGKon.Geb_Cd = GebKonto.Geb_Cd
- AND tAufGKon.MWSt_Cd = MW NO-ERROR.
- IF NOT AVAILABLE tAufGKon THEN
- DO:
- CREATE tAufGKon.
- ASSIGN
- tAufGKon.Firma = Aufze.Firma
- tAufGKon.Aufnr = Aufze.Aufnr
- tAufGKon.Geb_Cd = GebKonto.Geb_Cd
- tAufGKon.MWSt_Cd = MW
- tAufGKon.Gebuehr = GebKonto.Gebuehr
- tAufGKon.Depot = GebKonto.Depot
- tAufGKon.Sort_Cd = GebKonto.Sort_Cd.
- END.
- DO WHILE TRUE:
- IF NOT ipGebRg THEN LEAVE.
- IF Aufze.Preis = 0 AND
- tAufGKon.Gebuehr <> 0 THEN LEAVE.
- IF xAufko.Abhol AND
- tAufGKon.Gebuehr <> 0 THEN LEAVE.
- tAufGKon.Ausgang = tAufGKon.Ausgang + Aufze.KGeb_Me.
- tAufGKon.Betrag = (tAufGKon.Ausgang - tAufGKon.Eingang)
- * (tAufGKon.Depot + tAufGKon.Gebuehr).
- LEAVE.
- END.
- LEAVE.
- END.
-
- DO WHILE Aufze.VGebKto <> '':
- IF Aufze.VGeb_Me = 0 THEN LEAVE.
- FIND GebKonto USE-INDEX GebKonto-k1
- WHERE GebKonto.Firma = Aufze.Firma
- AND GebKonto.Geb_Cd = Aufze.VGebKto NO-LOCK.
- IF GebKonto.MWST_Art = 0 THEN MW = 11.
- IF GebKonto.MWST_Art = 1 THEN MW = Aufze.WuCd.
- IF GebKonto.MWST_Art = 2 THEN MW = GebKonto.MWST_Cd.
- FIND tAufGKon USE-INDEX AufGKon-k1
- WHERE tAufGKon.Firma = Aufze.Firma
- AND tAufGKon.Aufnr = Aufze.Aufnr
- AND tAufGKon.Geb_Cd = GebKonto.Geb_Cd
- AND tAufGKon.MWSt_Cd = MW NO-ERROR.
- IF NOT AVAILABLE tAufGKon THEN
- DO:
- CREATE tAufGKon.
- ASSIGN
- tAufGKon.Firma = Aufze.Firma
- tAufGKon.Aufnr = Aufze.Aufnr
- tAufGKon.Geb_Cd = GebKonto.Geb_Cd
- tAufGKon.MWSt_Cd = MW
- tAufGKon.Gebuehr = GebKonto.Gebuehr
- tAufGKon.Depot = GebKonto.Depot
- tAufGKon.Sort_Cd = GebKonto.Sort_Cd.
- END.
- DO WHILE TRUE:
- IF NOT ipGebRg THEN LEAVE.
- IF Aufze.Preis = 0 AND
- tAufGKon.Gebuehr <> 0 THEN LEAVE.
- tAufGKon.Ausgang = tAufGKon.Ausgang + Aufze.VGeb_Me.
- tAufGKon.Betrag = (tAufGKon.Ausgang - tAufGKon.Eingang)
- * (tAufGKon.Depot + tAufGKon.Gebuehr).
- LEAVE.
- END.
- LEAVE.
- END.
-
- DO WHILE Aufze.GGebKto <> '':
- IF Aufze.GGeb_Me = 0 THEN LEAVE.
- FIND GebKonto USE-INDEX GebKonto-k1
- WHERE GebKonto.Firma = Aufze.Firma
- AND GebKonto.Geb_Cd = Aufze.GGebKto NO-LOCK.
- IF GebKonto.MWST_Art = 0 THEN MW = 11.
- IF GebKonto.MWST_Art = 1 THEN MW = Aufze.WuCd.
- IF GebKonto.MWST_Art = 2 THEN MW = GebKonto.MWST_Cd.
- FIND tAufGKon USE-INDEX AufGKon-k1
- WHERE tAufGKon.Firma = Aufze.Firma
- AND tAufGKon.Aufnr = Aufze.Aufnr
- AND tAufGKon.Geb_Cd = GebKonto.Geb_Cd
- AND tAufGKon.MWSt_Cd = MW NO-ERROR.
- IF NOT AVAILABLE tAufGKon THEN
- DO:
- CREATE tAufGKon.
- ASSIGN
- tAufGKon.Firma = Aufze.Firma
- tAufGKon.Aufnr = Aufze.Aufnr
- tAufGKon.Geb_Cd = GebKonto.Geb_Cd
- tAufGKon.MWSt_Cd = MW
- tAufGKon.Gebuehr = GebKonto.Gebuehr
- tAufGKon.Depot = GebKonto.Depot
- tAufGKon.Sort_Cd = GebKonto.Sort_Cd.
- END.
- DO WHILE TRUE:
- IF NOT ipGebRg THEN LEAVE.
- IF Aufze.Preis = 0 AND
- tAufGKon.Gebuehr <> 0 THEN LEAVE.
- tAufGKon.Ausgang = tAufGKon.Ausgang + Aufze.GGeb_Me.
- tAufGKon.Betrag = (tAufGKon.Ausgang - tAufGKon.Eingang)
- * (tAufGKon.Depot + tAufGKon.Gebuehr).
- LEAVE.
- END.
- LEAVE.
- END.
- END.
-
- FOR EACH AufGKon
- WHERE AufGKon.Firma = xAufko.Firma
- AND AufGKon.Aufnr = xAufko.Aufnr:
- ASSIGN
- AufGKon.Ausgang = 0
- AufGKon.Betrag = 0.
- RELEASE AufGKon.
- END.
-
- FOR EACH tAufGKon:
- FIND AufGKon OF tAufGKon NO-ERROR.
- IF NOT AVAILABLE AufGKon THEN
- DO:
- CREATE AufGKon.
- BUFFER-COPY tAufGKon TO AufGKon.
- NEXT.
- END.
- ASSIGN
- AufGKon.Ausgang = tAufGKon.Ausgang.
- RELEASE AufGKon.
- END.
-
- FOR EACH AufGKon
- WHERE AufGKon.Firma = xAufko.Firma
- AND AufGKon.Aufnr = xAufko.Aufnr:
- AufGKon.Betrag = (AufGKon.Ausgang - AufGKon.Eingang)
- * (AufGKon.Depot + AufGKon.Gebuehr).
- RELEASE AufGKon.
- END.
-
- RETURN.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-GET_FORMTEXT) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GET_FORMTEXT Procedure
- PROCEDURE GET_FORMTEXT :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipcInstall AS CHARACTER NO-UNDO.
- DEFINE INPUT PARAMETER ipcDokArt AS CHARACTER NO-UNDO.
- DEFINE INPUT PARAMETER ipiSprcd AS INTEGER NO-UNDO.
- DEFINE OUTPUT PARAMETER opcTexte AS CHARACTER EXTENT 30 NO-UNDO.
-
- DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
-
- cString = CAPS(ipcInstall) + ':' + ipcDokArt.
- opcTexte = ''.
- FOR EACH LiBild NO-LOCK
- WHERE LiBild.Prog = cString
- AND LiBild.Sprcd = ipiSprcd:
- opcTexte[LiBild.TeNr] = LiBild.LiText.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-LADEN_DOKVERLAUF) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LADEN_DOKVERLAUF Procedure
- PROCEDURE LADEN_DOKVERLAUF :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- REPEAT TRANSACTION:
- EMPTY TEMP-TABLE tVerlauf.
- FOR EACH Tabel NO-LOCK USE-INDEX Tabel-k2
- WHERE Tabel.Firma = Firma
- AND Tabel.RecArt = 'DOKVERLAUF'
- AND Tabel.CodeI = 0
- AND Tabel.Sprcd = 1 :
- CREATE tVerlauf.
- ASSIGN
- tVerlauf.FakArt = INTEGER(SUBSTRING(Tabel.CodeC,01,06))
- tVerlauf.AufSta = INTEGER(SUBSTRING(Tabel.CodeC,07,06))
- tVerlauf.wFakArt = INTEGER(SUBSTRING(Tabel.Bez1 ,01,06))
- tVerlauf.zFakArt = INTEGER(SUBSTRING(Tabel.Bez1 ,07,06))
- tVerlauf.dFakArt = INTEGER(SUBSTRING(Tabel.Bez1 ,13,06))
- tVerlauf.wAufSta = INTEGER(SUBSTRING(Tabel.Bez2 ,01,06))
- tVerlauf.zAufSta = INTEGER(SUBSTRING(Tabel.Bez2 ,07,06))
- tVerlauf.dAufSta = INTEGER(SUBSTRING(Tabel.Bez2 ,13,06)).
- IF ENTRY(1, Tabel.BezL, ';') = 'yes' THEN tVerlauf.wDruck = TRUE.
- ELSE tVerlauf.wDruck = FALSE.
- IF ENTRY(2, Tabel.BezL, ';') = 'yes' THEN tVerlauf.zDruck = TRUE.
- ELSE tVerlauf.zDruck = FALSE.
- IF ENTRY(3, Tabel.BezL, ';') = 'yes' THEN tVerlauf.dDruck = TRUE.
- ELSE tVerlauf.dDruck = FALSE.
- END.
- RELEASE Tabel.
- LEAVE.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-NEUERMANDANT) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUERMANDANT Procedure
- PROCEDURE NEUERMANDANT :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipBenutzer AS CHARACTER NO-UNDO.
- DEFINE INPUT PARAMETER ipMandant AS CHARACTER NO-UNDO.
-
- Benutzer = ipBenutzer.
- Firma = ipMandant.
-
- RUN AUFTRAGFUNKTIONENINIT.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-PROCESSFESTAUFTRAG) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PROCESSFESTAUFTRAG Procedure
- PROCEDURE PROCESSFESTAUFTRAG :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipFirma AS CHARACTER NO-UNDO.
- DEFINE INPUT PARAMETER ipAufnr AS INTEGER NO-UNDO.
- DEFINE INPUT PARAMETER ipOld AS LOG NO-UNDO.
- DEFINE INPUT PARAMETER ipNew AS LOG NO-UNDO.
- DEFINE VARIABLE iSamm_Nr AS INTEGER NO-UNDO.
- DEFINE VARIABLE iAufnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE iPos AS INTEGER NO-UNDO.
- DEFINE VARIABLE dLief_Datum AS DATE NO-UNDO.
- DEFINE VARIABLE lFirst AS LOG INIT TRUE NO-UNDO.
- DEFINE VARIABLE nTotale AS DECIMAL EXTENT 15 NO-UNDO.
-
- DEFINE BUFFER bAufko FOR Aufko.
- DEFINE BUFFER bAufze FOR Aufze.
- DEFINE BUFFER bSteuer FOR Steuer.
- IF ipOld = ipNew THEN RETURN.
-
- FIND bSteuer NO-LOCK
- WHERE bSteuer.Firma = ipFirma.
- REPEAT TRANSACTION:
- FIND bAufko
- WHERE bAufko.Firma = ipFirma
- AND bAufko.Aufnr = ipAufnr.
- IF NOT ipNew THEN
- DO:
- ASSIGN
- bAufko.Samm_Nr = 0
- bAufko.Faknr = 0.
- RELEASE bAufko.
- LEAVE.
- END.
- FIND FIRST Aufko NO-LOCK
- WHERE Aufko.Firma = bAufko.Firma
- AND Aufko.Knr = bAufko.Knr
- AND Aufko.Fak_Art = bSteuer.Fwi22 NO-ERROR.
- IF AVAILABLE Aufko THEN
- DO:
- ASSIGN
- bAufko.Samm_Nr = Aufko.Samm_Nr
- bAufko.Faknr = Aufko.Faknr.
- RELEASE bAufko.
- LEAVE.
- END.
- RUN 'g-einlesen-datum.w' ( 'Eingabe Rücknahmedatum Rücknahmeschein',
- 'Rücknahmedatum',
- INPUT-OUTPUT dLief_Datum ) NO-ERROR.
- IF dLief_Datum = ? THEN LEAVE.
- iSamm_Nr = DYNAMIC-FUNCTION('createSammNr':U, Firma) NO-ERROR.
- iAufnr = DYNAMIC-FUNCTION('createAufnr':U, Firma) NO-ERROR.
- EMPTY TEMP-TABLE tAufko.
- CREATE tAufko.
- BUFFER-COPY bAufko TO tAufko.
- ASSIGN
- tAufko.Aufnr = iAufnr
- tAufko.Auf_Datum = dLief_Datum
- tAufko.Lief_Datum = dLief_Datum
- tAufko.Fak_Art = bSteuer.Fwi22
- tAufko.Auf_Sta = bSteuer.Fwi23
- tAufko.Samm_Nr = iSamm_Nr.
- CREATE Aufko.
- BUFFER-COPY tAufko TO Aufko.
- RELEASE Aufko.
- bAufko.Samm_Nr = iSamm_Nr.
-
- FOR EACH bAufze NO-LOCK
- WHERE bAufze.Firma = ipFirma
- AND bAufze.Aufnr = ipAufnr:
- IF bAufze.Artnr > 0 THEN LEAVE.
- FIND LAST Aufze NO-LOCK
- WHERE Aufze.Firma = ipFirma
- AND Aufze.Aufnr = iAufnr NO-ERROR.
- IF NOT AVAILABLE Aufze THEN iPos = 5.
- ELSE iPos = Aufze.Pos - (Aufze.Pos MOD 5) + 5.
- CREATE Aufze.
- BUFFER-COPY bAufze
- EXCEPT Aufnr Pos
- TO Aufze
- ASSIGN
- Aufze.Aufnr = iAufnr
- Aufze.Pos = iPos.
- RELEASE Aufze.
- END.
- DYNAMIC-FUNCTION('calculateAuftragsTotal':U, Firma, iAufnr, OUTPUT nTotale ) NO-ERROR.
- LEAVE.
- END.
-
- EMPTY TEMP-TABLE tAufko.
-
- RELEASE bAufko.
- RELEASE Aufko.
- RELEASE bSteuer.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-SETSAMMELNUMMER) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SETSAMMELNUMMER Procedure
- PROCEDURE SETSAMMELNUMMER :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipRecid AS RECID NO-UNDO.
- DEFINE VARIABLE iSammFakArt AS INTEGER NO-UNDO.
- DEFINE VARIABLE iSammNr AS INTEGER NO-UNDO.
- DEFINE VARIABLE iAufSta AS INTEGER NO-UNDO.
- DEFINE BUFFER xAufko FOR Aufko.
- REPEAT TRANSACTION:
- FIND Aufko WHERE RECID(Aufko) = ipRecid NO-LOCK NO-ERROR.
- IF NOT AVAILABLE Aufko THEN RETURN.
-
- iSammFakArt = DYNAMIC-FUNCTION('GETFWSAMMFAKART':U) NO-ERROR.
- iAufSta = Aufko.Auf_Sta.
- iSammNr = 0.
- IF iSammFakArt = 0 THEN
- DO: /* Rechnung pro Fakturaadresse */
- FIND FIRST xAufko NO-LOCK USE-INDEX Aufko-k6
- WHERE xAufko.Firma = Aufko.Firma
- AND xAufko.Fak_Knr = Aufko.Fak_Knr
- AND xAufko.Fak_Art = Aufko.Fak_Art
- AND xAufko.Auf_Sta = Aufko.Auf_Sta
- AND xAufko.Mwst = Aufko.Mwst
- AND xAufko.Frw = Aufko.Frw
- AND xAufko.Aufnr <> Aufko.Aufnr
- AND MONTH(xAufko.Lief_Datum) = MONTH(Aufko.Lief_Datum)
- AND xAufko.Samm_Nr <> 0 NO-ERROR.
- END.
- IF iSammFakArt = 1 THEN
- DO: /* Rechnung pro Lieferadresse */
- FIND FIRST xAufko NO-LOCK USE-INDEX Aufko-k6
- WHERE xAufko.Firma = Aufko.Firma
- AND xAufko.Fak_Knr = Aufko.Fak_Knr
- AND xAufko.Fak_Art = Aufko.Fak_Art
- AND xAufko.Auf_Sta = Aufko.Auf_Sta
- AND xAufko.Knr = Aufko.Knr
- AND xAufko.Mwst = Aufko.Mwst
- AND xAufko.Frw = Aufko.Frw
- AND xAufko.Aufnr <> Aufko.Aufnr
- AND MONTH(xAufko.Lief_Datum) = MONTH(Aufko.Lief_Datum)
- AND xAufko.Samm_Nr <> 0 NO-ERROR.
- END.
- IF NOT AVAILABLE xAufko THEN
- DO:
- RUN NUMMER_LOESEN ( INPUT 5, OUTPUT iSammNr ).
- IF iSammNr = ? THEN
- DO:
- RELEASE Aufko.
- RETURN 'ERROR'.
- END.
- Aufko.Samm_Nr = iSammNr.
- Aufko.Faknr = 0.
- Aufko.Gedruckt = FALSE.
- RELEASE xAufko.
- RELEASE Aufko.
- LEAVE.
- END.
- Aufko.Samm_Nr = xAufko.Samm_Nr.
- Aufko.Faknr = xAufko.Faknr.
- FOR EACH xAufko USE-INDEX Aufko-k5
- WHERE xAufko.Firma = Aufko.Firma
- AND xAufko.Fak_Art = Aufko.Fak_Art
- AND xAufko.Samm_Nr = Aufko.Samm_Nr .
- xAufko.Gedruckt = FALSE.
- xAufko.Auf_Sta = iAufSta.
- END.
- RELEASE xAufko.
- RELEASE Aufko.
- LEAVE.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-TAUFZE_TO_BUFFER) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TAUFZE_TO_BUFFER Procedure
- PROCEDURE TAUFZE_TO_BUFFER :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT-OUTPUT PARAMETER ipBuffer AS HANDLE NO-UNDO.
- DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
- DEFINE VARIABLE hRAufze AS HANDLE NO-UNDO.
- DEFINE VARIABLE hFAufze AS HANDLE NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE ex AS INTEGER NO-UNDO.
- FIND FIRST tAufze.
- IF NOT AVAILABLE tAufze THEN CREATE tAufze.
- hRAufze = BUFFER tAufze:HANDLE NO-ERROR.
- ipBuffer:BUFFER-COPY(hRAufze).
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-WEITER) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WEITER Procedure
- PROCEDURE WEITER :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipAufnr AS INTEGER NO-UNDO.
-
- DEFINE VARIABLE AltSammFak AS LOG NO-UNDO.
- DEFINE VARIABLE NeuSammFak AS LOG NO-UNDO.
- DEFINE VARIABLE AltFakArt AS INTEGER NO-UNDO.
- DEFINE VARIABLE iSammNr AS INTEGER NO-UNDO.
- DEFINE VARIABLE lAltFest AS LOG NO-UNDO.
- DEFINE VARIABLE lNeuFest AS LOG NO-UNDO.
- DEFINE VARIABLE iRecid AS RECID NO-UNDO.
- DEFINE BUFFER xAufko FOR Aufko.
- STATUSAENDERUNG:
- REPEAT TRANSACTION:
- FIND Aufko EXCLUSIVE-LOCK USE-INDEX Aufko-k1
- WHERE Aufko.Firma = Firma
- AND Aufko.Aufnr = ipAufnr NO-WAIT NO-ERROR.
- IF NOT AVAILABLE Aufko THEN
- DO:
- RELEASE Aufko.
- RETURN 'Fehler'.
- END.
- IF Aufko.AlsOfferte THEN
- DO:
- RELEASE Aufko.
- MESSAGE 'Auftrag ist Offerte! WEITER geht hier nicht! '
- VIEW-AS ALERT-BOX INFORMATION.
- RETURN 'Fehler'.
- END.
- ASSIGN
- iRecid = RECID(Aufko)
- Firma = Aufko.Firma.
-
- FIND FIRST tVerlauf NO-LOCK USE-INDEX tVerlauf-k1
- WHERE tVerlauf.FakArt = Aufko.Fak_Art
- AND tVerlauf.AufSta = Aufko.Auf_Sta NO-ERROR.
- IF NOT AVAILABLE tVerlauf THEN
- DO:
- RELEASE Aufko.
- RETURN 'ERROR'.
- END.
-
- IF Aufko.Fak_Art = tVerlauf.wFakArt AND
- Aufko.Auf_Sta = tVerlauf.wAufSta THEN
- DO:
- RELEASE Aufko.
- RETURN ''.
- END.
- FIND Tabel NO-LOCK USE-INDEX Tabel-k1
- WHERE Tabel.Firma = Firma
- AND Tabel.RecArt = 'FAKART'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = Aufko.Fak_Art
- AND Tabel.Sprcd = 1 NO-ERROR.
- IF Tabel.Int_3 = 4 THEN AltSammFak = TRUE.
- ELSE AltSammFak = FALSE.
- ASSIGN
- AltFakArt = Aufko.Fak_Art
- lAltFest = Tabel.Flag_1
- Aufko.Fak_Art = tVerlauf.wFakArt
- Aufko.Auf_Sta = tVerlauf.wAufSta
- Aufko.Gedruckt = (IF tVerlauf.wDruck = TRUE THEN FALSE ELSE Aufko.Gedruckt).
-
- IF AltFakArt <> Aufko.Fak_Art THEN
- DO:
- FIND Tabel NO-LOCK USE-INDEX Tabel-k1
- WHERE Tabel.Firma = Firma
- AND Tabel.RecArt = 'FAKART'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = Aufko.Fak_Art
- AND Tabel.Sprcd = 1 NO-ERROR.
- END.
- IF Tabel.Int_3 = 4 THEN NeuSammFak = TRUE.
- ELSE NeuSammFak = FALSE.
- lNeuFest = Tabel.Flag_1.
-
- DO WHILE TRUE:
- IF lAltFest OR
- lNeuFest THEN
- DO:
- RELEASE Aufko.
- RUN PROCESSFESTAUFTRAG ( Firma, ipAufnr, lAltFest, lNeuFest ) NO-ERROR.
- FIND Aufko NO-LOCK WHERE RECID(Aufko) = iRecid.
-
- IF NeuSammFak AND
- NOT AltSammFak AND
- Aufko.Samm_Nr = 0 THEN
- DO:
- FIND FIRST xAufko NO-LOCK
- WHERE xAufko.Firma = Aufko.Firma
- AND xAufko.Fak_Art = Aufko.Fak_Art
- AND xAufko.Samm_Nr > 0
- AND xAufko.Aufnr <> Aufko.Aufnr NO-ERROR.
- IF AVAILABLE xAufko THEN
- DO:
- FIND Aufko WHERE RECID(Aufko) = iRecid.
- ASSIGN
- Aufko.Samm_Nr = xAufko.Samm_Nr.
- RELEASE Aufko.
- END.
- FIND Aufko NO-LOCK WHERE RECID(Aufko) = iRecid.
- END.
- IF NeuSammFak AND
- tVerlauf.wDruck THEN
- DO:
- FOR EACH xAufko
- WHERE xAufko.Firma = Aufko.Firma
- AND xAufko.Fak_Art = Aufko.Fak_Art
- AND xAufko.Samm_Nr = Aufko.Samm_Nr
- AND xAufko.Aufnr <> Aufko.Aufnr:
- ASSIGN
- xAufko.Gedruckt = FALSE.
- END.
- END.
- LEAVE.
- END.
-
- IF NOT AltSammFak AND
- NOT NeuSammFak THEN LEAVE.
- IF AltSammFak AND
- NOT NeuSammFak THEN
- DO:
- ASSIGN
- Aufko.Samm_Nr = 0
- Aufko.Faknr = 0.
- LEAVE.
- END.
- IF AltSammFak AND
- NeuSammFak THEN
- DO:
- FOR EACH xAufko USE-INDEX Aufko-k5
- WHERE xAufko.Firma = Aufko.Firma
- AND xAufko.Fak_Art = AltFakArt
- AND xAufko.Samm_Nr = Aufko.Samm_Nr :
- ASSIGN
- xAufko.Gedruckt = FALSE
- xAufko.Fak_Art = Aufko.Fak_Art
- xAufko.Auf_Sta = Aufko.Auf_Sta.
- END.
- LEAVE.
- END.
- RUN SETSAMMELNUMMER ( INPUT RECID(Aufko) ).
- IF RETURN-VALUE = 'ERROR' THEN
- DO:
- UNDO STATUSAENDERUNG, RETURN 'ERROR'.
- END.
- LEAVE.
- END.
- RELEASE xAufko.
- RELEASE Aufko.
- LEAVE.
- END.
- RETURN ''.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-ZEILEN_BETRAEGE) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ZEILEN_BETRAEGE Procedure
- PROCEDURE ZEILEN_BETRAEGE :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE Rundbetr AS DECIMAL DECIMALS 4 NO-UNDO.
- FIND FIRST tAufze.
- FIND FIRST Wust NO-LOCK USE-INDEX Wust-k2
- WHERE Wust.Wucd = tAufze.Wucd
- AND Wust.CodeA = tAufze.WC
- AND Wust.CodeK < 12 .
- DO WHILE TRUE:
- IF tAufze.Rab_Art = 1 THEN
- DO:
- tAufze.Bru_Betr = tAufze.Preis * tAufze.MGeli.
- tAufze.Rab_Betr = tAufze.Preis * tAufze.Rab_Wert / 100 * tAufze.MGel.
- LEAVE.
- END.
- IF tAufze.Rab_Art = 2 THEN
- DO:
- tAufze.Bru_Betr = tAufze.Preis * tAufze.MGeli.
- tAufze.Rab_Betr = tAufze.Rab_Wert * tAufze.MGeli.
- LEAVE.
- END.
- IF tAufze.Rab_Art = 3 THEN
- DO:
- tAufze.Bru_Betr = tAufze.Preis * tAufze.MGeli.
- tAufze.Rab_Betr = tAufze.Preis * tAufze.Rab_Wert / 100 * tAufze.MGeli * -1.
- LEAVE.
- END.
- tAufze.Bru_Betr = tAufze.Preis * tAufze.MGeli.
- tAufze.Rab_Betr = 0.
- tAufze.Rab_Art = 0.
- LEAVE.
- END.
-
- IF Wust.Incl THEN
- DO:
- Rundbetr = tAufze.Rab_Betr.
- RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
- tAufze.Rab_Betr = Rundbetr.
- END.
- DO WHILE TRUE:
- IF tAufze.Zus_Art = 1 THEN
- DO:
- tAufze.Zus_Betr = tAufze.Preis * tAufze.Zus_Wert / 100 * tAufze.MGel.
- LEAVE.
- END.
- IF tAufze.Zus_Art = 2 THEN
- DO:
- tAufze.Zus_Betr = tAufze.Zus_Wert * tAufze.MGeli.
- LEAVE.
- END.
- tAufze.Zus_Betr = 0.
- tAufze.Zus_Wert = 0.
- tAufze.Zus_Art = 0.
- LEAVE.
- END.
-
- IF Wust.Incl THEN
- DO:
- Rundbetr = tAufze.Zus_Betr.
- RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
- tAufze.Zus_Betr = Rundbetr.
- END.
-
- tAufze.Net_Betr = tAufze.Bru_Betr - tAufze.Rab_Betr + tAufze.Zus_Betr.
- IF Wust.Incl THEN
- DO:
- Rundbetr = tAufze.Net_Betr.
- RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
- tAufze.Net_Betr = Rundbetr.
- END.
-
- RELEASE Wust.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-ZURUECK) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ZURUECK Procedure
- PROCEDURE ZURUECK :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER ipAufnr AS INTEGER NO-UNDO.
-
- DEFINE VARIABLE AltSammFak AS LOG NO-UNDO.
- DEFINE VARIABLE NeuSammFak AS LOG NO-UNDO.
- DEFINE VARIABLE AltFakArt AS INTEGER NO-UNDO.
- DEFINE VARIABLE iSammNr AS INTEGER NO-UNDO.
- DEFINE VARIABLE lAltFest AS LOG NO-UNDO.
- DEFINE VARIABLE lNeuFest AS LOG NO-UNDO.
- DEFINE VARIABLE iRecid AS RECID NO-UNDO.
- DEFINE BUFFER xAufko FOR Aufko.
- DEFINE BUFFER bDebst FOR Debst.
- STATUSAENDERUNG:
- REPEAT TRANSACTION:
- FIND Aufko USE-INDEX Aufko-k1
- WHERE Aufko.Firma = Firma
- AND Aufko.Aufnr = ipAufnr NO-ERROR.
- IF NOT AVAILABLE Aufko THEN
- DO:
- RELEASE Aufko.
- RETURN 'Fehler'.
- END.
- IF Aufko.AlsOfferte THEN
- DO:
- RELEASE Aufko.
- MESSAGE 'Auftrag ist Offerte! ZURÜCK geht hier nicht! '
- VIEW-AS ALERT-BOX INFORMATION.
- RETURN 'Fehler'.
- END.
- ASSIGN
- iRecid = RECID(Aufko)
- Firma = Aufko.Firma.
- FIND FIRST tVerlauf NO-LOCK USE-INDEX tVerlauf-k1
- WHERE tVerlauf.FakArt = Aufko.Fak_Art
- AND tVerlauf.AufSta = Aufko.Auf_Sta NO-ERROR.
- IF NOT AVAILABLE tVerlauf THEN
- DO:
- RELEASE Aufko.
- RETURN 'ERROR'.
- END.
- IF Aufko.Fak_Art = tVerlauf.zFakArt AND
- Aufko.Auf_Sta = tVerlauf.zAufSta THEN
- DO:
- RELEASE Aufko.
- RETURN ''.
- END.
- FIND Tabel NO-LOCK USE-INDEX Tabel-k1
- WHERE Tabel.Firma = Firma
- AND Tabel.RecArt = 'FAKART'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = Aufko.Fak_Art
- AND Tabel.Sprcd = 1 NO-ERROR.
- IF Tabel.Int_3 = 4 THEN AltSammFak = TRUE.
- ELSE AltSammFak = FALSE.
- ASSIGN
- AltFakArt = Aufko.Fak_Art
- lAltFest = Tabel.Flag_1
- Aufko.Fak_Art = tVerlauf.zFakArt
- Aufko.Auf_Sta = tVerlauf.zAufSta
- Aufko.Gedruckt = (IF tVerlauf.zDruck = TRUE THEN FALSE ELSE Aufko.Gedruckt).
- IF AltFakArt <> Aufko.Fak_Art THEN
- DO:
- FIND Tabel NO-LOCK USE-INDEX Tabel-k1
- WHERE Tabel.Firma = Firma
- AND Tabel.RecArt = 'FAKART'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = Aufko.Fak_Art
- AND Tabel.Sprcd = 1 NO-ERROR.
- END.
- IF Tabel.Int_3 = 4 THEN NeuSammFak = TRUE.
- ELSE NeuSammFak = FALSE.
- lNeuFest = Tabel.Flag_1.
- DO WHILE TRUE:
- IF lAltFest OR
- lNeuFest THEN
- DO:
- RELEASE Aufko.
- RUN PROCESSFESTAUFTRAG ( Firma, ipAufnr, lAltFest, lNeuFest ) NO-ERROR.
- FIND Aufko NO-LOCK WHERE RECID(Aufko) = iRecid.
-
- IF NeuSammFak AND
- tVerlauf.zDruck THEN
- DO:
- FOR EACH xAufko
- WHERE xAufko.Firma = Aufko.Firma
- AND xAufko.Fak_Art = AltFakArt
- AND xAufko.Samm_Nr = Aufko.Samm_Nr
- AND xAufko.Aufnr <> Aufko.Aufnr:
- ASSIGN
- xAufko.Gedruckt = FALSE
- xAufko.Fak_Art = Aufko.Fak_Art
- xAufko.Auf_Sta = Aufko.Auf_Sta.
- END.
- END.
- LEAVE.
- END.
-
- IF NOT AltSammFak AND
- NOT NeuSammFak THEN LEAVE.
- IF AltSammFak AND
- NOT NeuSammFak THEN
- DO:
- ASSIGN
- Aufko.Samm_Nr = 0
- Aufko.Faknr = 0.
- FIND bDebst NO-LOCK
- WHERE bDebst.Firma = Aufko.Firma
- AND bDebst.Knr = Aufko.Knr NO-ERROR.
- Aufko.Fak_Art = bDebst.Fak_Art.
- LEAVE.
- END.
- IF AltSammFak AND
- NeuSammFak THEN
- DO:
- FOR EACH xAufko USE-INDEX Aufko-k5
- WHERE xAufko.Firma = Aufko.Firma
- AND xAufko.Fak_Art = AltFakArt
- AND xAufko.Samm_Nr = Aufko.Samm_Nr
- AND xAufko.Aufnr <> Aufko.Aufnr :
- ASSIGN
- xAufko.Gedruckt = Aufko.Gedruckt
- xAufko.Fak_Art = Aufko.Fak_Art
- xAufko.Auf_Sta = Aufko.Auf_Sta.
- END.
- LEAVE.
- END.
- RUN SETSAMMELNUMMER ( INPUT RECID(Aufko) ).
- IF RETURN-VALUE = 'ERROR' THEN
- DO:
- UNDO STATUSAENDERUNG, RETURN 'ERROR'.
- END.
- LEAVE.
- END.
- RELEASE Tabel.
- RELEASE xAufko.
- RELEASE Aufko.
- LEAVE.
- END.
-
- RETURN ''.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- /* ************************ Function Implementations ***************** */
- &IF DEFINED(EXCLUDE-buchenArtikel) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION buchenArtikel Procedure
- FUNCTION buchenArtikel RETURNS LOGICAL
- ( ipKnr AS INTEGER, ipBuffer AS HANDLE ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
- DEFINE VARIABLE MWSt_Cd AS INTEGER NO-UNDO.
- DEFINE VARIABLE VBetr AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VAufRab AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VAbhRab AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VSpeRab AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VGeli AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VNetto AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VLiter AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VEp AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE xFirma AS CHARACTER NO-UNDO.
- DEFINE VARIABLE Aufnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE Artnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE Inhalt AS INTEGER NO-UNDO.
- DEFINE VARIABLE Jahr AS INTEGER NO-UNDO.
- DEFINE VARIABLE Trnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE Datum AS DATE NO-UNDO.
- DEFINE VARIABLE JJ AS INTEGER NO-UNDO.
- DEFINE VARIABLE MM AS INTEGER NO-UNDO.
- DEFINE VARIABLE nKurs AS DECIMAL DECIMALS 4 NO-UNDO.
- ASSIGN
- hFeld = ipBuffer:BUFFER-FIELD('WuCd')
- Mwst_Cd = hFeld:BUFFER-VALUE(0)
- hFeld = ipBuffer:BUFFER-FIELD('Firma')
- xFirma = hFeld:BUFFER-VALUE(0)
- hFeld = ipBuffer:BUFFER-FIELD('Aufnr')
- Aufnr = hFeld:BUFFER-VALUE(0)
- hFeld = ipBuffer:BUFFER-FIELD('Artnr')
- Artnr = hFeld:BUFFER-VALUE(0)
- hFeld = ipBuffer:BUFFER-FIELD('Inhalt')
- Inhalt = hFeld:BUFFER-VALUE(0)
- hFeld = ipBuffer:BUFFER-FIELD('Jahr')
- Jahr = hFeld:BUFFER-VALUE(0)
- hFeld = ipBuffer:BUFFER-FIELD('Net_Betr')
- VBetr = hFeld:BUFFER-VALUE(0)
- hFeld = ipBuffer:BUFFER-FIELD('MGeli')
- VGeli = hFeld:BUFFER-VALUE(0)
- hFeld = ipBuffer:BUFFER-FIELD('Auf_Rab')
- VAufRab = hFeld:BUFFER-VALUE(0)
- hFeld = ipBuffer:BUFFER-FIELD('Abh_Rab')
- VAbhRab = hFeld:BUFFER-VALUE(0)
- hFeld = ipBuffer:BUFFER-FIELD('Auf_Sp_Rab')
- VSpeRab = hFeld:BUFFER-VALUE(0)
- hFeld = ipBuffer:BUFFER-FIELD('Liter')
- VLiter = hFeld:BUFFER-VALUE(0)
- hFeld = ipBuffer:BUFFER-FIELD('Ep')
- VEp = hFeld:BUFFER-VALUE(0)
- hFeld = ipBuffer:BUFFER-FIELD('Trnr')
- Trnr = hFeld:BUFFER-VALUE(0)
- hFeld = ipBuffer:BUFFER-FIELD('Kurs')
- nKurs = hFeld:BUFFER-VALUE(0)
- .
- IF nKurs = ? OR
- nKurs = 0 THEN nKurs = 1.00.
- FIND Artbw NO-LOCK USE-INDEX Artbw-k1
- WHERE Artbw.Firma = Firma
- AND Artbw.Trnr = Trnr NO-ERROR.
- IF NOT AVAILABLE Artbw THEN RETURN FALSE.
- Datum = Artbw.Fak_Dat.
- JJ = YEAR (Datum).
- MM = MONTH(Datum).
- FIND FIRST Wust USE-INDEX Wust-k2
- WHERE Wust.WuCd = Mwst_Cd NO-LOCK NO-ERROR.
- FIND LAST MWSTAns USE-INDEX MWSTAns-k1
- WHERE MWSTAns.MWST_Cd = Mwst_Cd
- AND MWSTAns.Datum <= Datum NO-LOCK NO-ERROR.
- VNetto = VBetr - VAufRab - VAbhRab - VSpeRab.
- IF Wust.Incl THEN VNetto = VNetto * 100 / (100 + MWSTAns.Ansatz).
- VEp = VEp * VGeli.
- FIND DebUms USE-INDEX DebUms-k1
- WHERE DebUms.Firma = xFirma
- AND DebUms.Jahr = JJ
- AND DebUms.Knr = ipKnr
- AND DebUms.Ums_Grp = 999 NO-ERROR.
- IF NOT AVAILABLE DebUms THEN
- DO:
- CREATE DebUms.
- ASSIGN
- DebUms.Firma = xFirma
- DebUms.Jahr = JJ
- DebUms.Knr = ipKnr
- DebUms.Ums_Grp = 999.
- END.
- ASSIGN
- DebUms.Me_Mon[MM] = DebUms.Me_Mon[MM] + VGeli
- DebUms.Me_Kum = DebUms.Me_Kum + VGeli
- DebUms.Ep_Mon[MM] = DebUms.Ep_Mon[MM] + VEp
- DebUms.Ep_Kum = DebUms.Ep_Kum + VEp
- DebUms.Vp_Mon[MM] = DebUms.Vp_Mon[MM] + VNetto * nKurs
- DebUms.Vp_Kum = DebUms.Vp_Kum + VNetto * nKurs
- .
- RELEASE DebUms.
- FIND ArtUms USE-INDEX ArtUms-k1
- WHERE ArtUms.Firma = xFirma
- AND ArtUms.Jahr = JJ
- AND ArtUms.Artnr = Artnr
- AND ArtUms.Inhalt = Inhalt
- AND ArtUms.Jahrg = Jahr NO-ERROR.
- IF NOT AVAILABLE ArtUms THEN
- DO:
- CREATE ArtUms.
- ASSIGN
- ArtUms.Firma = xFirma
- ArtUms.Jahr = JJ
- ArtUms.Artnr = Artnr
- ArtUms.Inhalt = Inhalt
- ArtUms.Jahrg = Jahr.
- END.
- ASSIGN
- ArtUms.Me_Mon[MM] = ArtUms.Me_Mon[MM] + VGeli
- ArtUms.Me_Kum = ArtUms.Me_Kum + VGeli
- ArtUms.Ep_Mon[MM] = ArtUms.Ep_Mon[MM] + VEp
- ArtUms.Ep_Kum = ArtUms.Ep_Kum + VEp
- ArtUms.Li_Mon[MM] = ArtUms.Li_Mon[MM] + VLiter
- ArtUms.Li_Kum = ArtUms.Li_Kum + VLiter
- ArtUms.Vp_Mon[MM] = ArtUms.Vp_Mon[MM] + VNetto * nKurs
- ArtUms.Vp_Kum = ArtUms.Vp_Kum + VNetto * nKurs
- .
- RELEASE ArtUms.
-
- FIND DeArUms USE-INDEX DeArUms-k1
- WHERE DeArUms.Firma = xFirma
- AND DeArUms.Jahr = JJ
- AND DeArUms.Knr = ipKnr
- AND DeArUms.Artnr = Artnr
- AND DeArUms.Inhalt = Inhalt
- AND DeArUms.Jahrg = Jahr NO-ERROR.
- IF NOT AVAILABLE DeArUms THEN
- DO:
- CREATE DeArUms.
- ASSIGN
- DeArUms.Firma = xFirma
- DeArUms.Jahr = JJ
- DeArUms.Knr = ipKnr
- DeArUms.Artnr = Artnr
- DeArUms.Inhalt = Inhalt
- DeArUms.Jahrg = Jahr.
- END.
- ASSIGN
- DeArUms.Me_Mon[MM] = DeArUms.Me_Mon[MM] + VGeli
- DeArUms.Me_Kum = DeArUms.Me_Kum + VGeli
- DeArUms.Ep_Mon[MM] = DeArUms.Ep_Mon[MM] + VEp
- DeArUms.Ep_Kum = DeArUms.Ep_Kum + VEp
- DeArUms.Li_Mon[MM] = DeArUms.Li_Mon[MM] + VLiter
- DeArUms.Li_Kum = DeArUms.Li_Kum + VLiter
- DeArUms.Vp_Mon[MM] = DeArUms.Vp_Mon[MM] + VNetto * nKurs
- DeArUms.Vp_Kum = DeArUms.Vp_Kum + VNetto * nKurs
- .
- RELEASE DeArUms.
-
- FIND Umsatz
- WHERE Umsatz.Firma = xFirma
- AND Umsatz.Ums_Art = 'TOTAL'
- AND Umsatz.Jahr = JJ
- AND Umsatz.Grp_01 = 0 NO-ERROR.
- IF NOT AVAILABLE Umsatz THEN
- DO:
- CREATE Umsatz.
- ASSIGN
- Umsatz.Firma = xFirma
- Umsatz.Ums_Art = 'TOTAL'
- Umsatz.Jahr = JJ
- Umsatz.Grp_01 = 0.
- END.
- ASSIGN
- Umsatz.VP_Mon[MM] = Umsatz.Vp_Mon[MM] + (VNetto * nKurs)
- Umsatz.VP_Kum = Umsatz.Vp_Kum + (VNetto * nKurs)
- Umsatz.EP_Mon[MM] = Umsatz.EP_Mon[MM] + VEp
- Umsatz.EP_Kum = Umsatz.EP_Kum + VEp
- .
- RELEASE Umsatz.
-
- RETURN TRUE.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-calculateAuftragsTotal) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION calculateAuftragsTotal Procedure
- FUNCTION calculateAuftragsTotal RETURNS CHARACTER
- ( ipcFirma AS CHARACTER, ipiAufnr AS INTEGER, OUTPUT opnTotal AS DECIMAL EXTENT 15 ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE lJa AS LOG NO-UNDO.
- DEFINE VARIABLE VWpfl AS DECIMAL DECIMALS 4 EXTENT 12 NO-UNDO.
- DEFINE VARIABLE VWust AS DECIMAL DECIMALS 4 EXTENT 12 NO-UNDO.
- DEFINE VARIABLE NWpfl AS DECIMAL DECIMALS 4 EXTENT 12 NO-UNDO.
- DEFINE VARIABLE TWpfl AS DECIMAL DECIMALS 4 EXTENT 12 NO-UNDO.
- DEFINE VARIABLE VFakt AS INTEGER EXTENT 12 NO-UNDO.
- DEFINE VARIABLE NFakt AS INTEGER NO-UNDO.
- DEFINE VARIABLE VTotWu AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VTotNK AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VResNK AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VMaxWC AS INTEGER NO-UNDO.
- DEFINE VARIABLE iRecid AS RECID NO-UNDO.
- DEFINE VARIABLE VGewicht AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE zz AS INTEGER NO-UNDO.
- DEFINE VARIABLE Wert AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VSkonto AS DECIMAL INIT 0 NO-UNDO.
- DEFINE VARIABLE Rundbetr AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE nMenge AS DECIMAL NO-UNDO.
- DEFINE VARIABLE cResult AS CHARACTER NO-UNDO.
- DEFINE VARIABLE dMwstDat AS DATE NO-UNDO.
- DEFINE VARIABLE nKredLimite AS DECIMAL INIT 0.00 NO-UNDO.
- DEFINE VARIABLE nAufTotal AS DECIMAL INIT 0.00 NO-UNDO.
- DEFINE VARIABLE htAufze AS HANDLE NO-UNDO.
- DEFINE VARIABLE cMessage AS CHARACTER NO-UNDO.
- DEFINE BUFFER bAufze FOR Aufze.
- DEFINE BUFFER FDebst FOR Debst.
- /* ------------------------------------------------------------------------- */
- /* opnTotal[01] = Nettowarenwert */
- /* opnTotal[02] = Skontoberechtigter Betrag */
- /* opnTotal[03] = Nebenkosten */
- /* opnTotal[04] = Transport */
- /* opnTotal[05] = Porto */
- /* opnTotal[06] = Verpackung */
- /* opnTotal[07] = Total Mehrwertsteuerpflichtig */
- /* opnTotal[08] = Total Mehrwertsteuerfrei */
- /* opnTotal[09] = Total Mehrwertsteuer */
- /* opnTotal[10] = Total Auftrag */
- /* opnTotal[11] = Total Gebinde */
- /* opnTotal[12] = Total Gebühren (Receycling) */
- /* ------------------------------------------------------------------------- */
- REPEAT TRANSACTION:
- opnTotal = 0.
- VWpfl = 0.
- VWust = 0.
- VTotWu = 0.
- VTotNK = 0.
- NWpfl = 0. /* Anteil Nebenkosten */
- TWpfl = 0. /* Wpfl + Nebenkosten */
- VGewicht = 0.
- DISABLE TRIGGERS FOR LOAD OF Aufko.
- FIND Steuer NO-LOCK USE-INDEX Steuer-k1
- WHERE Steuer.Firma = ipcFirma.
- FIND Aufko EXCLUSIVE-LOCK
- WHERE Aufko.Firma = ipcFirma
- AND Aufko.Aufnr = ipiAufnr NO-WAIT NO-ERROR.
- IF LOCKED Aufko THEN RETURN 'LOCKED'.
- IF NOT AVAILABLE Aufko THEN RETURN 'FEHLEND'.
- iRecid = RECID(Aufko).
- dMwstDat = (IF Aufko.Lief_Datum <> ? THEN Aufko.Lief_Datum ELSE Aufko.Fak_Datum).
- IF dMwstDat = ? THEN dMwstDat = Aufko.Kond_Datum.
- IF dMwstDat = ? THEN dMwstDat = TODAY.
-
- FIND FDebst NO-LOCK
- WHERE FDebst.Firma = Aufko.Firma
- AND FDebst.Knr = Aufko.Fak_Knr.
- nKredLimite = FDebst.Kred_Lim.
- nAufTotal = FDebst.Saldo.
- RUN GEBINDE_AUSGANG_RECHNEN ( ipcFirma, ipiAufnr, FDebst.Geb_Rg ).
- RELEASE AufGKon.
- ASSIGN
- Aufko.Wpfl = 0
- Aufko.Wust = 0
- Aufko.WW = 0
- Aufko.Sk_Ber = 0.
- opnTotal[04] = Aufko.Transp.
- opnTotal[05] = Aufko.Porto.
- opnTotal[06] = Aufko.Verpack.
- opnTotal[03] = opnTotal[04] + opnTotal[05] + opnTotal[06].
- FIND Wust USE-INDEX Wust-k1
- WHERE Wust.CodeK = Aufko.MWST
- AND Wust.CodeA = Steuer.Fwi03 NO-LOCK.
- zz = Wust.WuCd.
- VWpfl[zz] = VWpfl[zz] + Aufko.Transp.
- FIND Wust USE-INDEX Wust-k1
- WHERE Wust.CodeK = Aufko.MWST
- AND Wust.CodeA = Steuer.Fwi04 NO-LOCK.
- zz = Wust.WuCd.
- VWpfl[zz] = VWpfl[zz] + Aufko.Porto.
- FIND Wust USE-INDEX Wust-k1
- WHERE Wust.CodeK = Aufko.MWST
- AND Wust.CodeA = Steuer.Fwi05 NO-LOCK.
- zz = Wust.WuCd.
- VWpfl[zz] = VWpfl[zz] + Aufko.Verpack.
- zz = 0.
- lJa = FALSE.
- EMPTY TEMP-TABLE tAufze.
- FOR EACH Aufze NO-LOCK
- WHERE Aufze.Firma = Aufko.Firma
- AND Aufze.Aufnr = Aufko.Aufnr
- AND Aufze.Artnr > 0 :
- CREATE tAufze.
- BUFFER-COPY Aufze TO tAufze.
- IF zz > 1 AND
- NOT lJa THEN NEXT.
-
- FIND Artbw NO-LOCK
- WHERE Artbw.Firma = Aufze.Firma
- AND Artbw.Trnr = Aufze.Trnr NO-ERROR.
- IF NOT AVAILABLE Artbw THEN NEXT.
- zz = zz + 1.
- IF Artbw.Datum = Aufko.Lief_Datum THEN NEXT.
- lJa = TRUE.
- FIND Artbw EXCLUSIVE-LOCK
- WHERE Artbw.Firma = Aufze.Firma
- AND Artbw.Trnr = Aufze.Trnr NO-WAIT NO-ERROR.
- IF NOT AVAILABLE Artbw THEN NEXT.
- Artbw.Datum = Aufko.Lief_Datum.
- RELEASE Artbw.
- END.
- FIND FIRST tAufze NO-ERROR.
- IF AVAILABLE tAufze THEN
- DO:
- DYNAMIC-FUNCTION('fillAufRabSu':U) NO-ERROR.
- DYNAMIC-FUNCTION('fillAufSpRab':U) NO-ERROR.
- END.
- FOR EACH tAufze:
- zz = tAufze.WuCd.
- IF Aufko.Auf_Sta < 2 THEN nMenge = tAufze.MBest.
- ELSE nMenge = tAufze.MGeli.
- nMenge = tAufze.MGeli.
- DO WHILE TRUE:
- ASSIGN
- tAufze.Auf_Rab = 0
- tAufze.Abh_Rab = 0.
- IF tAufze.Rab_Su_Grp = 0 THEN LEAVE.
- IF tAufze.Rab_Su_Art = 0 THEN LEAVE.
- FIND AufRabSu NO-LOCK
- WHERE AufRabSu.Firma = tAufze.Firma
- AND AufRabSu.Aufnr = tAufze.Aufnr
- AND AufRabSu.Rab_Summ = tAufze.Rab_Su_Grp
- AND AufRabSu.MWST_Cd = tAufze.WuCd.
- Wert = AufRabSu.F_Wert.
- DO WHILE Wert <> 0:
- IF AufRabSu.F_Proz_Betr THEN
- DO:
- tAufze.Auf_Rab = tAufze.Net_Betr * AufRabSu.F_Wert / 100.
- LEAVE.
- END.
- IF AufRabSu.F_Art = 0 THEN
- DO:
- tAufze.Auf_Rab = nMenge * AufRabSu.F_Wert.
- LEAVE.
- END.
- IF AufRabSu.F_Art = 2 THEN
- DO:
- tAufze.Auf_Rab = tAufze.Liter * AufRabSu.F_Wert / 100.
- LEAVE.
- END.
- LEAVE.
- END.
- IF Aufko.Abhol = FALSE THEN Wert = 0.
- ELSE Wert = AufRabSu.A_Wert.
- DO WHILE Wert <> 0:
- IF AufRabSu.A_Proz_Betr THEN
- DO:
- tAufze.Abh_Rab = tAufze.Net_Betr * AufRabSu.A_Wert / 100.
- LEAVE.
- END.
- IF AufRabSu.A_Art = 0 THEN
- DO:
- tAufze.Abh_Rab = nMenge * AufRabSu.A_Wert.
- LEAVE.
- END.
- IF AufRabSu.A_Art = 2 THEN
- DO:
- tAufze.Abh_Rab = tAufze.Liter * AufRabSu.A_Wert / 100.
- LEAVE.
- END.
- LEAVE.
- END.
- DO WHILE TRUE:
- IF tAufze.Abh_Rab = 0 AND
- tAufze.Auf_Rab = 0 THEN LEAVE.
- FIND FIRST Wust NO-LOCK USE-INDEX Wust-k2
- WHERE Wust.WuCd = zz.
- IF Wust.Incl = TRUE THEN
- DO:
- Rundbetr = tAufze.Abh_Rab.
- RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
- tAufze.Abh_Rab = Rundbetr.
- Rundbetr = tAufze.Auf_Rab.
- RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
- tAufze.Auf_Rab = Rundbetr.
- END.
- LEAVE.
- END.
- RELEASE AufRabSu.
- LEAVE.
- END.
- DO WHILE TRUE:
- IF tAufze.Auf_Sp_Grp = 0 THEN LEAVE.
-
- FIND AufSpRab NO-LOCK
- WHERE AufSpRab.Firma = tAufze.Firma
- AND AufSpRab.Aufnr = tAufze.Aufnr
- AND AufSpRab.Rab_Grp = tAufze.Auf_Sp_Grp NO-ERROR.
- IF NOT AVAILABLE AufSpRab THEN LEAVE.
- ASSIGN
- tAufze.Auf_Sp_Proz_Betr = AufSpRab.Auf_Proz_Betr
- tAufze.Auf_Sp_Wert = AufSpRab.Auf_Wert.
-
- IF NOT tAufze.Auf_Sp_Proz_Betr
- THEN tAufze.Auf_Sp_Rab = nMenge * tAufze.Auf_Sp_Wert.
- ELSE tAufze.Auf_Sp_Rab = tAufze.Net_Betr * tAufze.Auf_Sp_Wert / 100.
-
- FIND FIRST Wust USE-INDEX Wust-k2
- WHERE Wust.WuCd = zz NO-LOCK.
- IF Wust.Incl = TRUE THEN
- DO:
- Rundbetr = tAufze.Auf_Sp_Rab.
- RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
- tAufze.Auf_Sp_Rab = Rundbetr.
- END.
- RELEASE AufSpRab.
- LEAVE.
- END.
- htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
- DYNAMIC-FUNCTION('calculateZeilenTotal':U, INPUT-OUTPUT htAufze ) NO-ERROR.
-
- VWpfl [zz] = VWpfl [zz] + tAufze.Net_Betr
- - tAufze.Auf_Rab
- - tAufze.Abh_Rab
- - tAufze.Auf_Sp_Rab.
- Aufko.WW[zz] = Aufko.WW[zz] + tAufze.Net_Betr
- - tAufze.Auf_Rab
- - tAufze.Abh_Rab
- - tAufze.Auf_Sp_Rab.
- opnTotal[01] = opnTotal[01] + tAufze.Net_Betr
- - tAufze.Auf_Rab
- - tAufze.Abh_Rab
- - tAufze.Auf_Sp_Rab.
- IF tAufze.Sk_Ber THEN
- DO:
- opnTotal[02] = opnTotal[02] + tAufze.Net_Betr
- - tAufze.Auf_Rab
- - tAufze.Abh_Rab
- - tAufze.Auf_Sp_Rab.
- END.
- VGewicht = VGewicht + tAufze.Gewicht.
- END.
- FOR EACH tAufze:
- FIND Aufze NO-LOCK OF tAufze.
- BUFFER-COMPARE Aufze TO tAufze SAVE RESULT IN cResult.
- IF cResult = '' THEN NEXT.
- FIND bAufze OF tAufze.
- BUFFER-COPY tAufze TO bAufze.
- RELEASE bAufze.
- END.
-
- IF FDebst.Geb_Rg THEN
- DO:
- FOR EACH AufGKon NO-LOCK USE-INDEX AufGKon-k1
- WHERE AufGKon.Firma = Aufko.Firma
- AND AufGKon.Aufnr = Aufko.Aufnr :
-
- zz = AufGKon.MWSt_Cd.
- VWpfl[zz] = VWpfl[zz] + AufGKon.Betrag.
- IF AufGKon.Gebuehr = 0 THEN opnTotal[11] = opnTotal[11] + AufGKon.Betrag.
- ELSE opnTotal[12] = opnTotal[12] + AufGKon.Betrag.
- END.
- END.
- ELSE
- DO:
- FOR EACH AufGKon NO-LOCK USE-INDEX AufGKon-k1
- WHERE AufGKon.Firma = Aufko.Firma
- AND AufGKon.Aufnr = Aufko.Aufnr
- AND AufGKon.Gebuehr <> 0.0
- AND AufGKon.Betrag <> 0.0 :
-
- zz = AufGKon.MWSt_Cd.
- VWpfl[zz] = VWpfl[zz] + AufGKon.Betrag.
- opnTotal[12] = opnTotal[12] + AufGKon.Betrag.
- END.
- END.
- FIND FIRST Wust NO-LOCK
- WHERE Wust.CodeK = Aufko.Mwst
- AND Wust.CodeA = 9 NO-ERROR.
- EMPTY TEMP-TABLE tMwstParam.
- CREATE tMwstParam.
- ASSIGN
- tMwstParam.Firma = Aufko.Firma
- tMwstParam.Knr = Aufko.Fak_Knr
- tMwstParam.Datum = dMwstDat
- tMwstParam.Frw = Aufko.Frw
- tMwstParam.MwstPfl = VWpfl
- tMwstParam.MwstBetr = VWust
- tMwstParam.MwstCdKd = Aufko.Mwst
- tMwstParam.lInklusive = (IF AVAILABLE Wust THEN Wust.Incl ELSE FALSE)
- .
- DYNAMIC-FUNCTION('calculateMwstFaktura':U, INPUT TABLE tMwstParam, OUTPUT TABLE tMwstCalc, OUTPUT cMessage ).
- FOR EACH tMwstCalc:
- zz = tMwstCalc.Mwst_Cd.
- IF tMwstCalc.lInklusive THEN
- ASSIGN
- Aufko.Wpfl[zz] = tMwstCalc.Brutto
- Aufko.Wust[zz] = 0.00
- opnTotal [07] = opnTotal[07] + (IF tMwstCalc.Ansatz = 0 THEN 0 ELSE tMwstCalc.Brutto)
- opnTotal [08] = opnTotal[08] + (IF tMwstCalc.Ansatz > 0 THEN 0 ELSE tMwstCalc.Brutto)
- opnTotal [09] = opnTotal[09] + 0.00.
- ELSE
- ASSIGN
- Aufko.Wpfl[zz] = tMwstCalc.Netto
- Aufko.Wust[zz] = tMwstCalc.Mwst
- opnTotal [07] = opnTotal[07] + (IF tMwstCalc.Ansatz = 0 THEN 0 ELSE tMwstCalc.Netto)
- opnTotal [08] = opnTotal[08] + (IF tMwstCalc.Ansatz > 0 THEN 0 ELSE tMwstCalc.Netto)
- opnTotal [09] = opnTotal[09] + tMwstCalc.Mwst.
- END.
- opnTotal[10] = DECIMAL(ENTRY(1, cMessage, ';')).
-
- ASSIGN
- Aufko.Auf_Tot = opnTotal[10]
- Aufko.Gewicht = VGewicht
- Aufko.Sk_Ber = opnTotal[02]
-
- nAufTotal = nAufTotal + Aufko.Auf_Tot.
- RELEASE Aufko.
- RELEASE Aufze.
-
- LEAVE.
- END.
- RELEASE Aufko.
- RELEASE Aufze.
- RELEASE AufGKon.
- RELEASE AufSpRab.
- RELEASE AufRabSu.
- RELEASE Steuer.
- RELEASE Wust.
- RELEASE FDebst.
-
- IF nKredLimite > 0 AND
- nAufTotal > nKredLimite THEN RETURN 'KREDITLIMITE'.
- ELSE RETURN ''.
-
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-calculateGebindeAusMenge) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION calculateGebindeAusMenge Procedure
- FUNCTION calculateGebindeAusMenge RETURNS LOGICAL
- ( ipcFirma AS CHARACTER,
- ipiArtnr AS INTEGER ,
- ipiInhalt AS INTEGER ,
- ipiJahr AS INTEGER ,
- ipiMenge AS INTEGER ,
- OUTPUT opiGGebinde AS INTEGER ,
- OUTPUT opiVGebinde AS INTEGER ,
- OUTPUT opiKGebinde AS INTEGER ):
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE BUFFER bArtst FOR Artst.
- DEFINE BUFFER bGGebinde FOR GGebinde.
- DEFINE BUFFER bVGebinde FOR VGebinde.
- DEFINE BUFFER bKGebinde FOR KGebinde.
-
- ASSIGN
- opiGGebinde = 0
- opiVGebinde = 0
- opiKGebinde = ipiMenge.
-
- FIND bArtst NO-LOCK
- WHERE bArtst.Firma = ipcFirma
- AND bArtst.Artnr = ipiArtnr
- AND bArtst.Inhalt = ipiInhalt
- AND bArtst.Jahr = ipiJahr NO-ERROR.
- FIND bGGebinde NO-LOCK
- WHERE bGGebinde.Firma = ipcFirma
- AND bGGebinde.Geb_Cd = bArtst.GGeb_Cd NO-ERROR.
- FIND bVGebinde NO-LOCK
- WHERE bVGebinde.Firma = ipcFirma
- AND bVGebinde.Geb_Cd = bArtst.VGeb_Cd NO-ERROR.
- FIND bKGebinde NO-LOCK
- WHERE bKGebinde.Firma = ipcFirma
- AND bKGebinde.Geb_Cd = bArtst.KGeb_Cd NO-ERROR.
-
- IF NOT AVAILABLE bVGebinde OR
- bVGebinde.Inhalt = 0 THEN RETURN FALSE.
-
- DO WHILE TRUE:
- opiKGebinde = ipiMenge.
- IF opiKGebinde >= bVGebinde.Inhalt THEN opiVGebinde = (opiKGebinde - (opiKGebinde MOD bVGebinde.Inhalt)) / bVGebinde.Inhalt.
-
- IF NOT AVAILABLE bGGebinde OR
- bGGebinde.Inhalt = 0 THEN LEAVE.
- IF opiVGebinde >= bGGebinde.Inhalt THEN opiGGebinde = (opiVGebinde - (opiVGebinde MOD bGGebinde.Inhalt)) / bGGebinde.Inhalt.
-
- LEAVE.
- END.
-
- RELEASE bArtst .
- RELEASE bGGebinde.
- RELEASE bVGebinde.
- RELEASE bKGebinde.
-
- RETURN TRUE.
- END FUNCTION.
-
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-calculateZeilenTotal) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION calculateZeilenTotal Procedure
- FUNCTION calculateZeilenTotal RETURNS LOGICAL
- ( INPUT-OUTPUT iphAufze AS HANDLE ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE Rundbetr AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE iMwstCd AS INTEGER NO-UNDO.
- DEFINE VARIABLE iMwstArt AS INTEGER NO-UNDO.
- DEFINE VARIABLE cFirma AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cKGeb_Cd AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cVGeb_Cd AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cGGeb_Cd AS CHARACTER NO-UNDO.
-
- DEFINE BUFFER bKGebinde FOR KGebinde.
- DEFINE BUFFER bVGebinde FOR VGebinde.
- DEFINE BUFFER bGGebinde FOR GGebinde.
- DEFINE BUFFER bArtst FOR Artst.
-
- iMwstCd = iphAufze::WuCd.
- iMwstArt = iphAufze::Wc.
- cFirma = iphAufze::Firma.
- cKGeb_Cd = iphAufze::KGeb_Cd.
- cVGeb_Cd = iphAufze::VGeb_Cd.
- cGGeb_Cd = iphAufze::GGeb_Cd.
-
- FIND FIRST Wust NO-LOCK USE-INDEX Wust-k2
- WHERE Wust.Wucd = iMwstCd
- AND Wust.CodeA = iMwstArt
- AND Wust.CodeK < 12 .
- DO WHILE TRUE:
- IF iphAufze::Rab_Art = 1 THEN
- DO:
- iphAufze::Bru_Betr = iphAufze::Preis * iphAufze::MGeli.
- iphAufze::Rab_Betr = iphAufze::Preis * iphAufze::Rab_Wert / 100 * iphAufze::MGeli.
- LEAVE.
- END.
- IF iphAufze::Rab_Art = 2 THEN
- DO:
- iphAufze::Bru_Betr = iphAufze::Preis * iphAufze::MGeli.
- iphAufze::Rab_Betr = iphAufze::Rab_Wert * iphAufze::MGeli.
- LEAVE.
- END.
- IF iphAufze::Rab_Art = 3 THEN
- DO:
- IF lEpProzBetr THEN
- DO:
- iphAufze::Bru_Betr = iphAufze::Preis * iphAufze::MGeli.
- iphAufze::Rab_Betr = iphAufze::Preis * iphAufze::Rab_Wert / 100 * iphAufze::MGeli * -1.
- END.
- ELSE
- DO:
- iphAufze::Bru_Betr = iphAufze::Preis * iphAufze::MGeli.
- iphAufze::Rab_Betr = iphAufze::Rab_Wert * iphAufze::MGeli * -1.
- END.
- LEAVE.
- END.
- iphAufze::Bru_Betr = iphAufze::Preis * iphAufze::MGeli.
- iphAufze::Rab_Betr = 0.
- iphAufze::Rab_Art = 0.
- LEAVE.
- END.
-
- IF Wust.Incl THEN
- DO:
- Rundbetr = iphAufze::Rab_Betr.
- RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
- iphAufze::Rab_Betr = Rundbetr.
- END.
- DO WHILE TRUE:
- IF iphAufze::Zus_Art = 1 THEN
- DO:
- iphAufze::Zus_Betr = iphAufze::Preis * iphAufze::Zus_Wert / 100 * iphAufze::MGeli.
- LEAVE.
- END.
- IF iphAufze::Zus_Art = 2 THEN
- DO:
- iphAufze::Zus_Betr = iphAufze::Zus_Wert * iphAufze::MGeli.
- LEAVE.
- END.
- iphAufze::Zus_Betr = 0.
- iphAufze::Zus_Wert = 0.
- iphAufze::Zus_Art = 0.
- LEAVE.
- END.
-
- IF Wust.Incl THEN
- DO:
- Rundbetr = iphAufze::Zus_Betr.
- RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
- iphAufze::Zus_Betr = Rundbetr.
- END.
-
- iphAufze::Net_Betr = iphAufze::Bru_Betr - iphAufze::Rab_Betr + iphAufze::Zus_Betr.
- IF Wust.Incl THEN
- DO:
- Rundbetr = iphAufze::Net_Betr.
- RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
- iphAufze::Net_Betr = Rundbetr.
- END.
-
- FIND bGGebinde NO-LOCK
- WHERE bGGebinde.Firma = cFirma
- AND bGGebinde.Geb_Cd = cGGeb_Cd NO-ERROR.
- FIND bVGebinde NO-LOCK
- WHERE bVGebinde.Firma = cFirma
- AND bVGebinde.Geb_Cd = cVGeb_Cd NO-ERROR.
- FIND bKGebinde NO-LOCK
- WHERE bKGebinde.Firma = cFirma
- AND bKGebinde.Geb_Cd = cKGeb_Cd NO-ERROR.
- FIND bArtst NO-LOCK
- WHERE bArtst.Firma = cFirma
- AND bArtst.Artnr = iphAufze::Artnr
- AND bArtst.Inhalt = iphAufze::Inhalt
- AND bArtst.Jahr = iphAufze::Jahr.
-
- /* -------------------------------------------------------------- */
- /* Liter und Gewicht */
- /* -------------------------------------------------------------- */
- iphAufze::Liter = bKGebinde.Inhalt * iphAufze::KGeb_Me / 100.
- iphAufze::Gewicht = (bArtst.Gewicht * iphAufze::KGeb_Me)
- + (bKGebinde.Gewicht * iphAufze::KGeb_Me)
- + (bVGebinde.Gewicht * iphAufze::VGeb_Me)
- + (bGGebinde.Gewicht * iphAufze::GGeb_Me).
-
- RELEASE Wust.
- RELEASE bGGebinde.
- RELEASE bVGebinde.
- RELEASE bKGebinde.
- RELEASE bArtst.
- RETURN TRUE.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-createAktionspreis) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createAktionspreis Procedure
- FUNCTION createAktionspreis RETURNS LOGICAL
- ( ipiAktGrp AS INTEGER, iplAbweich AS LOG, ipiAktKuPr_Grp AS INTEGER, ipiKuPreisGrp AS INTEGER) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE nNetto AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE nKleinst AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE iArt AS INTEGER NO-UNDO.
- DEFINE VARIABLE lAktion AS LOG INIT FALSE NO-UNDO.
-
- DEFINE BUFFER bAktPreis FOR AktPreis.
- DEFINE BUFFER btPreis FOR tPreis.
-
- FIND FIRST tParam.
- FIND FIRST tAufze.
- ASSIGN
- nKleinst = 999999.9999
- iArt = -1.
- FOR EACH tPreis BY tPreis.iArt:
- nNetto = tPreis.Preis.
- IF tPreis.Rab_Proz <> 0 THEN nNetto = tPreis.Preis * (100 - tPreis.Rab_Proz) / 100.
- IF tPreis.Rab_Wert <> 0 THEN nNetto = tPreis.Preis - tPreis.Rab_Wert.
- IF tPreis.Spe_Proz <> 0 THEN nNetto = tPreis.Preis * (100 - tPreis.Spe_Proz) / 100.
- IF tPreis.Spe_Wert <> 0 THEN nNetto = tPreis.Preis - tPreis.Spe_Wert.
- IF tPreis.Zus_Proz <> 0 THEN nNetto = nNetto + (tPreis.Preis * tPreis.Zus_Proz / 100).
- IF tPreis.Zus_Wert <> 0 THEN nNetto = nNetto + tPreis.Zus_Wert.
- IF nNetto < nKleinst THEN
- DO:
- ASSIGN
- nKleinst = nNetto
- iArt = tPreis.iArt.
- END.
- END.
- IF iArt < 0 THEN RETURN lAktion.
- FIND FIRST btPreis
- WHERE btPreis.iArt = 4 NO-ERROR. /* Spezialpreis Warengruppe */
- IF NOT AVAILABLE btPreis THEN
- DO:
- FIND FIRST btPreis NO-LOCK NO-ERROR.
- END.
- IF NOT AVAILABLE btPreis THEN RETURN lAktion.
- DO ii = 1 TO 2:
- FIND LAST bAktPreis NO-LOCK
- WHERE bAktPreis.Firma = tAufze.Firma
- AND bAktPreis.Artnr = tAufze.Artnr
- AND bAktPreis.Inhalt = tAufze.Inhalt
- AND bAktPreis.Jahr = tAufze.Jahr
- AND bAktPreis.Grp = ipiAktGrp
- AND bAktPreis.Ab_Datum <= tParam.Kond_Datum
- AND bAktPreis.Bis_Datum >= tParam.Kond_Datum NO-ERROR.
- IF AVAILABLE bAktPreis THEN
- DO:
- CREATE tPreis.
- BUFFER-COPY btPreis
- EXCEPT btPreis.iArt btPreis.Netto
- TO tPreis
- ASSIGN
- tPreis.iArt = (IF ii = 1 THEN 5 ELSE 6)
- tPreis.cAkt_Text = bAktPreis.Bemerkung.
- IF bAktPreis.Art = 0 THEN tPreis.Preis = tPreis.Preis - bAktPreis.Wert.
- IF bAktPreis.Art = 1 THEN tPreis.Preis = tPreis.Preis * (100 - bAktPreis.Wert) / 100.
- lAktion = TRUE.
- LEAVE.
- END.
- IF ii = 2 THEN LEAVE.
- IF NOT iplAbweich THEN LEAVE. /* Keine abweichende Preisgruppe vorhanden */
- IF ipiAktKuPr_Grp > 0 THEN LEAVE. /* Die Aktion ist auf die Kundengruppe bezogen */
- ipiAktGrp = ipiKuPreisGrp.
- END.
-
- RELEASE bAktPreis.
-
- RETURN lAktion.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-createAufGebKo) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createAufGebKo Procedure
- FUNCTION createAufGebKo RETURNS LOGICAL
- ( ipAufnr AS INTEGER ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- FOR EACH GebRueck NO-LOCK
- WHERE GebRueck.Firma = Firma TRANSACTION:
- FIND AufGebKo
- WHERE AufGebKo.Firma = Firma
- AND AufGebKo.Aufnr = ipAufnr
- AND AufGebKo.Sort_Cd = GebRueck.Sort_Cd
- AND AufGebKo.Geb_Cd = GebRueck.Geb_Cd NO-ERROR.
- IF NOT AVAILABLE AufGebKo THEN
- DO:
- CREATE AufGebKo.
- ASSIGN
- AufGebKo.Firma = Firma
- AufGebKo.Aufnr = ipAufnr
- AufGebKo.Sort_Cd = GebRueck.Sort_Cd
- AufGebKo.Geb_Cd = GebRueck.Geb_Cd
- AufGebKo.Anz_1 = GebRueck.Anz_1
- AufGebKo.Kto_Cd1 = GebRueck.Kto_Cd1
- AufGebKo.Anz_2 = GebRueck.Anz_2
- AufGebKo.Kto_Cd2 = GebRueck.Kto_Cd2
- AufGebKo.Anz_3 = GebRueck.Anz_3
- AufGebKo.Kto_Cd3 = GebRueck.Kto_Cd3.
- END.
-
- IF AufGebKo.Kto_Cd1 <> '' THEN
- DO:
- FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1
- WHERE GebKonto.Firma = Firma
- AND GebKonto.Geb_Cd = AufGebKo.Kto_Cd1 NO-ERROR.
- IF AVAILABLE GebKonto THEN AufGebKo.Wert_1 = GebKonto.Depot.
- END.
- IF AufGebKo.Kto_Cd2 <> '' THEN
- DO:
- FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1
- WHERE GebKonto.Firma = Firma
- AND GebKonto.Geb_Cd = AufGebKo.Kto_Cd2 NO-ERROR.
- IF AVAILABLE GebKonto THEN AufGebKo.Wert_2 = GebKonto.Depot.
- END.
- IF AufGebKo.Kto_Cd3 <> '' THEN
- DO:
- FIND GebKonto NO-LOCK USE-INDEX GebKonto-k1
- WHERE GebKonto.Firma = Firma
- AND GebKonto.Geb_Cd = AufGebKo.Kto_Cd3 NO-ERROR.
- IF AVAILABLE GebKonto THEN AufGebKo.Wert_3 = GebKonto.Depot.
- END.
- RELEASE GebRueck.
- RELEASE AufGebKo.
- RELEASE GebKonto.
- END.
-
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-createAufkoParam) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createAufkoParam Procedure
- FUNCTION createAufkoParam RETURNS LOGICAL
- ( ipFirma AS CHARACTER, ipAufnr AS INTEGER, ipKnr AS INTEGER, ipDatum AS DATE ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE BUFFER bDebst FOR Debst .
- DEFINE BUFFER bAufko FOR Aufko .
- DEFINE BUFFER bAdresse FOR Adresse .
- EMPTY TEMP-TABLE tParam.
- CREATE tParam.
-
- DO WHILE ipKnr > 0:
- FIND bDebst NO-LOCK
- WHERE bDebst.Firma = ipFirma
- AND bDebst.Knr = ipKnr.
- ASSIGN
- tParam.Firma = ipFirma
- tParam.Knr = ipKnr
- tParam.Mwst = bDebst.Mwst
- tParam.Preis_Grp = bDebst.Preis_Grp
- tParam.Ku_Grp = bDebst.Ku_Grp
- tParam.Frw = bDebst.Frw
- tParam.Kond_Datum = ipDatum
- tParam.Lager = 0
- tParam.Rab_Grp = bDebst.Rab_Grp
- tParam.Geb_Rg = bDebst.Geb_Rg
- tParam.Zei_Rab_Art = bDebst.Zei_Rab_Art
- tParam.Zei_Rab_Wert = bDebst.Zei_Rab_Wert
- tParam.Auf_Rab_Art = bDebst.Auf_Rab_Art
- tParam.Auf_Rab_Wert = bDebst.Auf_Rab_Wert
- tParam.Abh_Rab_Art = bDebst.Abh_Rab_Art
- tParam.Abh_Rab_Wert = bDebst.Abh_Rab_Wert
- tParam.Zuschl_Art = bDebst.Zuschl_Art
- tParam.Zuschl_Wert = bDebst.Zuschl_Wert
- .
- FIND bAdresse NO-LOCK USE-INDEX Adresse-k1
- WHERE bAdresse.Firma = AdFirma
- AND bAdresse.Knr = bDebst.Knr NO-ERROR.
- tParam.Sprcd = (IF AVAILABLE bAdresse THEN bAdresse.Sprcd ELSE 1).
-
- FIND Waehrung NO-LOCK
- WHERE Waehrung.Firma = bDebst.Firma
- AND Waehrung.FRW = bDebst.FRW NO-ERROR.
- IF AVAILABLE Waehrung THEN
- DO:
- ASSIGN
- tParam.Kurs = Waehrung.Kurs
- tParam.Faktor = Waehrung.Faktor.
- END.
- ELSE
- DO:
- ASSIGN
- tParam.Frw = 'CHF'
- tParam.Kurs = 1.0
- tParam.Faktor = 1.
- END.
- RELEASE bDebst.
- RELEASE bAdresse.
- RETURN TRUE.
- END.
-
- FIND bAufko NO-LOCK
- WHERE bAufko.Firma = ipFirma
- AND bAufko.Aufnr = ipAufnr.
- ASSIGN
- tParam.Firma = ipFirma
- tParam.Knr = bAufko.Knr
- tParam.Mwst = bAufko.Mwst
- tParam.Preis_Grp = bAufko.Preis_Grp
- tParam.Ku_Grp = bAufko.Ku_Grp
- tParam.Kond_Datum = (IF bAufko.Kond_Datum <> ? THEN bAufko.Kond_Datum ELSE bAufko.Lief_Datum)
- tParam.Rab_Grp = bAufko.Rab_Grp
- tParam.Frw = bAufko.Frw
- tParam.Kurs = bAufko.Kurs
- tParam.Faktor = bAufko.Faktor
- tParam.Lager = bAufko.Lager
- tParam.Rab_Grp = bAufko.Rab_Grp
- tParam.Geb_Rg = bAufko.Geb_Rg
- tParam.Zei_Rab_Art = bAufko.Zei_Rab_Art
- tParam.Zei_Rab_Wert = bAufko.Zei_Rab_Wert
- tParam.Auf_Rab_Art = bAufko.Auf_Rab_Art
- tParam.Auf_Rab_Wert = bAufko.Auf_Rab_Wert
- tParam.Abh_Rab_Art = bAufko.Abh_Rab_Art
- tParam.Abh_Rab_Wert = bAufko.Abh_Rab_Wert
- tParam.Zuschl_Art = bAufko.Zuschl_Art
- tParam.Zuschl_Wert = bAufko.Zuschl_Wert.
- IF tParam.Kond_Datum = ? THEN tParam.Kond_Datum = ipDatum.
- FIND bAdresse NO-LOCK USE-INDEX Adresse-k1
- WHERE bAdresse.Firma = AdFirma
- AND bAdresse.Knr = bAufko.Knr NO-ERROR.
- tParam.Sprcd = (IF AVAILABLE bAdresse THEN bAdresse.Sprcd ELSE 1).
-
- RELEASE bAufko.
- RELEASE bAdresse.
-
- RETURN TRUE.
-
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-createAufnr) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createAufnr Procedure
- FUNCTION createAufnr RETURNS INTEGER
- ( ipFirma AS CHARACTER ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE iAufnr AS INTEGER INIT 0 NO-UNDO.
- REPEAT TRANSACTION:
- FIND SteuNr WHERE SteuNr.Firma = ipFirma
- EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
- IF AVAILABLE SteuNr THEN
- DO:
- ASSIGN
- SteuNr.Nr1 = SteuNr.Nr1 + 1
- iAufnr = SteuNr.Nr1.
- RELEASE SteuNr.
- LEAVE.
- END.
- IF LOCKED SteuNr THEN
- DO:
- MESSAGE 'SteuNr LOCKED' VIEW-AS ALERT-BOX INFORMATION.
- NEXT.
- END.
- LEAVE.
- END.
-
- RETURN iAufnr.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-createEpPreis) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createEpPreis Procedure
- FUNCTION createEpPreis RETURNS LOGICAL
- ( iphbArtst AS HANDLE ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- CREATE tPreis.
- ASSIGN
- tPreis.iArt = 2
- tPreis.Preis = 0
- tPreis.Rab_Proz = (IF lEpProzBetr THEN - tAufze.Rab_Wert ELSE 0)
- tPreis.Rab_Wert = (IF lEpProzBetr THEN 0 ELSE - tAufze.Rab_Wert)
- tPreis.Spe_Proz = 0
- tPreis.Spe_Wert = 0
- tPreis.Zus_Proz = (IF tAufze.Zus_Art = 1 THEN tAufze.Zus_Wert ELSE 0)
- tPreis.Zus_Wert = (IF tAufze.Zus_Art = 2 THEN tAufze.Zus_Wert ELSE 0).
- IF iphbArtst::DEP <> 0 THEN tPreis.Preis = iphbArtst::DEP.
- IF iphbArtst::LEP <> 0 THEN tPreis.Preis = iphbArtst::LEP.
- IF iphbArtst::Listen_EP <> 0 THEN tPreis.Preis = iphbArtst::Listen_EP.
- RETURN TRUE.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-createFaknr) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createFaknr Procedure
- FUNCTION createFaknr RETURNS INTEGER
- ( ipFirma AS CHARACTER ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE iFaknr AS INTEGER INIT 0 NO-UNDO.
- REPEAT TRANSACTION:
- FIND SteuNr WHERE SteuNr.Firma = ipFirma
- EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
- IF AVAILABLE SteuNr THEN
- DO:
- ASSIGN
- SteuNr.Nr2 = SteuNr.Nr2 + 1
- iFaknr = SteuNr.Nr2.
- RELEASE SteuNr.
- LEAVE.
- END.
- IF LOCKED SteuNr THEN
- DO:
- MESSAGE 'SteuNr LOCKED' VIEW-AS ALERT-BOX INFORMATION.
- NEXT.
- END.
- RELEASE SteuNr.
- LEAVE.
- END.
-
- RETURN iFaknr.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-createManuellerPreis) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createManuellerPreis Procedure
- FUNCTION createManuellerPreis RETURNS LOGICAL
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- FIND FIRST tAufze.
- EMPTY TEMP-TABLE tPreis.
- CREATE tPreis.
- ASSIGN
- tPreis.iArt = 1
- tPreis.Preis = tAufze.Preis
- tPreis.Rab_Proz = 0
- tPreis.Rab_Wert = 0
- tPreis.Spe_Proz = 0
- tPreis.Spe_Wert = 0
- tPreis.Zus_Proz = (IF tAufze.Zus_Art = 1 THEN tAufze.Zus_Wert ELSE 0)
- tPreis.Zus_Wert = (IF tAufze.Zus_Art = 2 THEN tAufze.Zus_Wert ELSE 0).
- CASE tAufze.Rab_Art:
- WHEN 1 THEN
- ASSIGN
- tPreis.Rab_Proz = + tAufze.Rab_Wert.
- WHEN 2 THEN
- ASSIGN
- tPreis.Rab_Wert = + tAufze.Rab_Wert.
- WHEN 3 THEN
- DO:
- IF lEpProzBetr THEN tPreis.Rab_Proz = - tAufze.Rab_Wert.
- ELSE tPreis.Rab_Wert = - tAufze.Rab_Wert.
- END.
- END CASE.
-
- ASSIGN
- tAufze.Auf_Sp_Grp = 0
- tAufze.Auf_Sp_Rab = 0
- tAufze.Auf_Sp_Wert = 0.
-
- RETURN TRUE.
-
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-createSammnr) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION createSammnr Procedure
- FUNCTION createSammnr RETURNS INTEGER
- ( ipFirma AS CHARACTER ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE iSammnr AS INTEGER INIT 0 NO-UNDO.
- REPEAT TRANSACTION:
- FIND SteuNr EXCLUSIVE-LOCK
- WHERE SteuNr.Firma = ipFirma NO-WAIT NO-ERROR.
- IF AVAILABLE SteuNr THEN
- DO:
- ASSIGN
- SteuNr.Nr5 = SteuNr.Nr5 + 1
- iSammnr = SteuNr.Nr5.
- RELEASE SteuNr.
- LEAVE.
- END.
- IF LOCKED SteuNr THEN
- DO:
- MESSAGE 'SteuNr LOCKED' VIEW-AS ALERT-BOX INFORMATION.
- NEXT.
- END.
- LEAVE.
- END.
-
- RETURN iSammnr.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-deleteArtbw) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION deleteArtbw Procedure
- FUNCTION deleteArtbw RETURNS LOGICAL
- ( ipiTrnr AS INTEGER, iprArtbw AS RECID ):
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO INIT TRUE.
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
- IF ipiTrnr > 0 THEN
- DO:
- FIND Artbw NO-LOCK USE-INDEX Artbw-k1
- WHERE Artbw.Firma = Firma
- AND Artbw.Trnr = ipiTrnr NO-ERROR.
- IF AVAILABLE Artbw THEN iprArtbw = RECID(Artbw).
- RELEASE Artbw.
- END.
-
- IF iprArtbw <> ? AND
- iprArtbw <> 0 THEN
- DO:
- FIND Artbw WHERE RECID(Artbw) = iprArtbw EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
- END.
-
- IF NOT AVAILABLE Artbw AND
- NOT LOCKED Artbw THEN LEAVE.
-
- IF LOCKED Artbw THEN
- DO:
- DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getLockedUser':U, iprArtbw), ?, ?) NO-ERROR.
- lRetVal = FALSE.
- LEAVE.
- END.
-
- DELETE Artbw.
- RELEASE Artbw.
- LEAVE.
- END.
-
- RETURN lRetVal.
- END FUNCTION.
-
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-deleteAuflot) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION deleteAuflot Procedure
- FUNCTION deleteAufLot RETURNS LOGICAL
- ( iprAufze AS RECID ):
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO INIT TRUE.
- DEFINE VARIABLE cArtnr AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iHoReLager_Id AS INTEGER NO-UNDO.
-
- DEFINE BUFFER bAufze FOR Aufze.
- DEFINE BUFFER bAufLot FOR AufLot.
-
- FIND bAufze NO-LOCK WHERE RECID(bAufze) = iprAufze NO-ERROR.
- IF NOT AVAILABLE bAufze THEN RETURN lRetVal.
-
- TRANS00:
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
- FOR EACH AufLot NO-LOCK OF bAufze:
- FIND bAufLot WHERE RECID(bAufLot) = RECID(AufLot) EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
- IF LOCKED bAufLot THEN
- DO:
- DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getLockedUser':U, RECID(AufLot)), ?, ?) NO-ERROR.
- lRetVal = FALSE.
- LEAVE TRANS00.
- END.
-
- iHoReLager_Id = DYNAMIC-FUNCTION('getHoReLagerId':U, AufLot.Artnr, AufLot.Inhalt, AufLot.Jahr, AufLot.Lager) NO-ERROR.
-
- DO WHILE iHoReLager_Id > 0:
- FIND FIRST LotLager
- WHERE LotLager.Firma = AufLot.Firma
- AND LotLager.Lager = AufLot.Lager
- AND LotLager.Artnr = AufLot.Artnr
- AND LotLager.Inhalt = AufLot.Inhalt
- AND LotLager.Jahr = AufLot.Jahr
- AND LotLager.Verfall = AufLot.Verfall
- AND LotLager.Lotnummer = AufLot.Nummer NO-ERROR.
- IF NOT AVAILABLE LotLager OR
- LotLager.HoReLager_Id <> iHoReLager_Id THEN
- DO:
- CREATE LotLager.
- ASSIGN
- LotLager.Firma = AufLot.Firma
- LotLager.Lager = AufLot.Lager
- LotLager.Artnr = AufLot.Artnr
- LotLager.Inhalt = AufLot.Inhalt
- LotLager.Jahr = AufLot.Jahr
- LotLager.Verfall = AufLot.Verfall
- LotLager.Lotnummer = AufLot.Nummer
- LotLager.HoReLager_Id = iHoReLager_Id
- LotLager.Eingang = AufLot.Datum.
- END.
-
- LotLager.Bestand = LotLager.Bestand + AufLot.Menge.
-
- RELEASE LotLager.
- LEAVE.
- END.
-
- DELETE bAufLot.
- RELEASE bAuflot.
- END.
- RELEASE LotLager.
- RELEASE AufLot .
- LEAVE.
- END.
-
- RETURN lRetVal.
- END FUNCTION.
-
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-deleteAuftrag) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION deleteAuftrag Procedure
- FUNCTION deleteAuftrag RETURNS LOGICAL
- ( ipRecid AS RECID ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE lSammFak AS LOG NO-UNDO.
- DEFINE VARIABLE hAufko AS HANDLE NO-UNDO.
- DEFINE VARIABLE hrawTable AS HANDLE NO-UNDO.
- DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
- DEFINE VARIABLE lJa AS LOGICAL NO-UNDO.
- DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
-
- DEFINE BUFFER bAufko FOR Aufko.
- DEFINE BUFFER xAufko FOR Aufko.
- DEFINE BUFFER bAufze FOR Aufze.
-
- hAufko = BUFFER bAufko:HANDLE.
- hrawTable = BUFFER rawTable:HANDLE.
-
- DISABLE TRIGGERS FOR LOAD OF AufLot .
- DISABLE TRIGGERS FOR LOAD OF RuestAuf .
- lRetVal = FALSE.
-
- TRANS00:
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
- FIND Aufko WHERE RECID(Aufko) = ipRecid EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
- IF NOT AVAILABLE Aufko AND
- LOCKED Aufko THEN
- DO:
- lJa = DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getLockedUser':U, ipRecid), ?, ?) NO-ERROR.
- UNDO TRANS00, LEAVE TRANS00.
- END.
- IF NOT AVAILABLE Aufko THEN UNDO TRANS00, LEAVE TRANS00.
-
- FIND Tabel NO-LOCK USE-INDEX Tabel-k1
- WHERE Tabel.Firma = Aufko.Firma
- AND Tabel.RecArt = 'FAKART'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = Aufko.Fak_Art
- AND Tabel.Sprcd = 1 NO-ERROR.
- lSammFak = IF Tabel.Int_3 = 4 THEN TRUE ELSE FALSE.
-
- FOR EACH bAufze NO-LOCK OF Aufko:
- FIND Aufze WHERE RECID(Aufze) = RECID(bAufze) EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
- IF NOT AVAILABLE Aufze AND
- LOCKED Aufze THEN
- DO:
- lJa = DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getLockedUser':U, ipRecid), ?, ?) NO-ERROR.
- UNDO TRANS00, LEAVE TRANS00.
- END.
-
- IF Aufze.Artnr = 0 THEN
- DO:
- DELETE Aufze.
- NEXT.
- END.
-
- IF Aufze.Trnr > 0 THEN
- DO:
- lJa = DYNAMIC-FUNCTION ('deleteArtbw':U, Aufze.Trnr, 0) NO-ERROR.
- IF NOT lJa THEN UNDO TRANS00, LEAVE TRANS00.
- END.
-
- DYNAMIC-FUNCTION ('updateRuestAuftrag':U, 9, RECID(Aufze) ) NO-ERROR.
-
- FIND FIRST RuestAuf NO-LOCK OF Aufze NO-ERROR.
- IF AVAILABLE RuestAuf THEN
- DO:
- lJa = DYNAMIC-FUNCTION ('deleteRuestAuf':U, RECID(RuestAuf)) NO-ERROR.
- IF NOT lJa THEN UNDO TRANS00, LEAVE TRANS00.
- END.
-
- IF Aufze.lVerfall OR
- Aufze.lLotnr THEN
- DO:
- lJa = DYNAMIC-FUNCTION ('deleteAufLot':U, RECID(Aufze)) NO-ERROR.
- IF NOT lJa THEN UNDO TRANS00, LEAVE TRANS00.
- END.
-
- DELETE Aufze.
- END.
- DO WHILE TRUE:
- IF Aufko.Samm_Nr = 0 THEN LEAVE.
- IF NOT lSammFak THEN LEAVE.
-
- FOR EACH bAufko NO-LOCK USE-INDEX Aufko-k4
- WHERE bAufko.Firma = Aufko.Firma
- AND bAufko.Knr = Aufko.Knr
- AND bAufko.Fak_Art = Aufko.Fak_Art
- AND bAufko.Samm_Nr = Aufko.Samm_Nr
- AND bAufko.Aufnr <> Aufko.Aufnr:
-
- FIND xAufko WHERE RECID(xAufko) = RECID(bAufko) EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
- IF NOT AVAILABLE xAufko AND
- LOCKED xAufko THEN
- DO:
- lJa = DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getLockedUser':U, RECID(bAufko)), ?, ?) NO-ERROR.
- UNDO TRANS00, LEAVE TRANS00.
- END.
- xAufko.Gedruckt = FALSE.
- IF Tabel.Int_2 = xAufko.Auf_Sta THEN xAufko.Auf_Sta = xAufko.Auf_Sta - 1.
- RELEASE xAufko.
- END.
- LEAVE.
- END.
-
- FOR EACH AufGebKo OF Aufko:
- DELETE AufGebKo.
- END.
- FOR EACH AufGKon OF Aufko:
- DELETE AufGKon.
- END.
- FOR EACH AufRabSu OF Aufko:
- DELETE AufRabSu.
- END.
- FOR EACH AufSpRab USE-INDEX AufSpRab-k1
- WHERE AufSpRab.Firma = Aufko.Firma
- AND AufSpRab.Aufnr = Aufko.Aufnr:
- DELETE AufSpRab.
- END.
-
- DELETE Aufko.
- RELEASE Aufko.
-
- lRetVal = TRUE.
- LEAVE.
- END.
- RETURN lRetVal.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-deleteAufzeile) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION deleteAufzeile Procedure
- FUNCTION deleteAufzeile RETURNS LOGICAL
- ( ipRecid AS RECID ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE lSammFak AS LOG NO-UNDO.
- DEFINE VARIABLE hAufko AS HANDLE NO-UNDO.
- DEFINE VARIABLE hrawTable AS HANDLE NO-UNDO.
- DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO.
- DEFINE VARIABLE lJa AS LOGICAL NO-UNDO.
- DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
-
- DEFINE BUFFER bAufko FOR Aufko.
- DEFINE BUFFER xAufko FOR Aufko.
-
- DISABLE TRIGGERS FOR LOAD OF AufLot .
- DISABLE TRIGGERS FOR LOAD OF RuestAuf .
- lRetVal = FALSE.
-
- TRANS00:
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
- FIND Aufze WHERE RECID(Aufze) = ipRecid EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
- IF NOT AVAILABLE Aufze AND
- LOCKED Aufze THEN
- DO:
- lJa = DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getLockedUser':U, ipRecid), ?, ?) NO-ERROR.
- UNDO TRANS00, LEAVE TRANS00.
- END.
- IF NOT AVAILABLE Aufze THEN UNDO TRANS00, LEAVE TRANS00.
-
- FIND Aufko NO-LOCK OF Aufze NO-ERROR.
- IF NOT AVAILABLE Aufko THEN
- DO:
- lJa = DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getMeldung':U, 305, 1), ?, ?) NO-ERROR.
- UNDO TRANS00, LEAVE TRANS00.
- END.
-
- FIND Tabel NO-LOCK USE-INDEX Tabel-k1
- WHERE Tabel.Firma = Aufko.Firma
- AND Tabel.RecArt = 'FAKART'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = Aufko.Fak_Art
- AND Tabel.Sprcd = 1 NO-ERROR.
- lSammFak = (IF Tabel.Int_3 = 4 THEN TRUE ELSE FALSE).
-
- IF Aufze.Trnr > 0 THEN
- DO:
- lJa = DYNAMIC-FUNCTION ('deleteArtbw':U, Aufze.Trnr, 0) NO-ERROR.
- IF NOT lJa THEN UNDO TRANS00, LEAVE TRANS00.
- END.
-
- DYNAMIC-FUNCTION ('updateRuestAuftrag':U, 9, RECID(Aufze) ).
-
- FIND FIRST RuestAuf NO-LOCK OF Aufze NO-ERROR.
- IF AVAILABLE RuestAuf THEN
- DO:
- lJa = DYNAMIC-FUNCTION ('deleteRuestAuf':U, RECID(RuestAuf)) NO-ERROR.
- IF NOT lJa THEN UNDO TRANS00, LEAVE TRANS00.
- END.
-
- IF Aufze.lVerfall OR
- Aufze.lLotnr THEN
- DO:
- lJa = DYNAMIC-FUNCTION ('deleteAufLot':U, RECID(Aufze)) NO-ERROR.
- IF NOT lJa THEN UNDO TRANS00, LEAVE TRANS00.
- END.
- DELETE Aufze.
- DO WHILE TRUE:
- IF Aufko.Samm_Nr = 0 THEN LEAVE.
- IF NOT lSammFak THEN LEAVE.
-
- FOR EACH bAufko NO-LOCK USE-INDEX Aufko-k4
- WHERE bAufko.Firma = Aufko.Firma
- AND bAufko.Knr = Aufko.Knr
- AND bAufko.Fak_Art = Aufko.Fak_Art
- AND bAufko.Samm_Nr = Aufko.Samm_Nr:
-
- FIND xAufko WHERE RECID(xAufko) = RECID(bAufko) EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
- IF NOT AVAILABLE xAufko AND
- LOCKED xAufko THEN
- DO:
- lJa = DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getLockedUser':U, RECID(bAufko)), ?, ?) NO-ERROR.
- UNDO TRANS00, LEAVE TRANS00.
- END.
- xAufko.Gedruckt = FALSE.
- IF Tabel.Int_2 = xAufko.Auf_Sta THEN xAufko.Auf_Sta = xAufko.Auf_Sta - 1.
- RELEASE xAufko.
- END.
- LEAVE.
- END.
-
- lRetVal = TRUE.
-
- RELEASE Aufze .
- RELEASE Aufko .
- RELEASE Tabel .
- RELEASE bAufko .
- RELEASE xAufko .
- RELEASE Artbw .
- RELEASE RuestAuf.
- RELEASE AufLot .
- RELEASE rawTable.
-
- LEAVE.
- END.
- RETURN lRetVal.
- END FUNCTION.
-
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-deleteRuestAuf) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION deleteRuestAuf Procedure
- FUNCTION deleteRuestAuf RETURNS LOGICAL
- ( iprRuestAuf AS RECID ):
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO INIT TRUE.
- TRANS00:
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
- FIND RuestAuf WHERE RECID(RuestAuf) = iprRuestAuf EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
-
- IF NOT AVAILABLE RuestAuf AND
- NOT LOCKED RuestAuf THEN LEAVE.
-
- IF LOCKED RuestAuf THEN
- DO:
- DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getLockedUser':U, iprRuestAuf), ?, ?) NO-ERROR.
- lRetVal = FALSE.
- LEAVE.
- END.
-
- DO WHILE lHoReLager: /* aus properties.i */
- FIND FIRST HoReLager EXCLUSIVE-LOCK
- WHERE HoReLager.Firma = Firma
- AND HoReLager.cSort = RuestAuf.Lagerort NO-WAIT NO-ERROR.
-
- IF NOT AVAILABLE HoReLager AND
- NOT LOCKED HoReLager THEN LEAVE.
-
- IF LOCKED HoReLager THEN
- DO:
- FIND FIRST HoReLager NO-LOCK
- WHERE HoReLager.Firma = Firma
- AND HoReLager.cSort = RuestAuf.Lagerort NO-ERROR.
- DYNAMIC-FUNCTION ('setErrorMessage':U, 'CHARACTER', DYNAMIC-FUNCTION('getLockedUser':U, RECID(HoReLager)), ?, ?) NO-ERROR.
- RELEASE HoReLager.
- lRetVal = FALSE.
- LEAVE TRANS00.
- END.
-
- HoReLager.Bestand = HoReLager.Bestand + RuestAuf.MGeli.
- RELEASE HoReLager.
- LEAVE.
- END.
-
- DELETE RuestAuf .
- RELEASE RuestAuf .
- RELEASE HoReLager.
- LEAVE.
- END.
-
- RETURN lRetVal.
- END FUNCTION.
-
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-fillArtbwFromAufze) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION fillArtbwFromAufze Procedure
- FUNCTION fillArtbwFromAufze RETURNS LOGICAL
- ( INPUT-OUTPUT iohtAufze AS HANDLE ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE iAufnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE iTrnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE hArtbw AS HANDLE NO-UNDO.
- DEFINE BUFFER bAufko FOR Aufko.
- DEFINE BUFFER bArtbw FOR Artbw.
- DEFINE BUFFER bArtst FOR Artst.
-
- iAufnr = iohtAufze::Aufnr.
- iArtnr = iohtAufze::Artnr.
- iTrnr = iohtAufze::Trnr .
-
- IF iArtnr = 0 THEN RETURN TRUE.
-
- FIND bAufko NO-LOCK
- WHERE bAufko.Firma = Firma
- AND bAufko.Aufnr = iAufnr.
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
- FIND bArtbw
- WHERE bArtbw.Firma = Firma
- AND bArtbw.Trnr = iTrnr NO-ERROR.
- IF NOT AVAILABLE bArtbw THEN
- DO:
- IF iTrnr = 0 THEN
- DO:
- FIND LAST bArtbw NO-LOCK USE-INDEX Artbw-k1
- WHERE bArtbw.Firma = Firma NO-ERROR.
- IF AVAILABLE bArtbw THEN iTrnr = bArtbw.Trnr + 1.
- ELSE iTrnr = 1.
- iohtAufze::Trnr = iTrnr.
- END.
-
- CREATE bArtbw.
- ASSIGN
- bArtbw.Tr_Art = 01.
- END.
-
-
- hArtbw = BUFFER bArtbw:HANDLE.
- hArtbw:BUFFER-COPY(iohtAufze).
- ASSIGN
- bArtbw.Menge = iohtAufze::MGeli
- bArtbw.Datum = bAufko.Lief_Datum
- bArtbw.Faknr = bAufko.Faknr
- bArtbw.Fak_Dat = bAufko.Fak_Datum
- bArtbw.Knr = bAufko.Knr
- bArtbw.Fak_Knr = bAufko.Fak_Knr
- bArtbw.Fak_Art = bAufko.Fak_Art
- bArtbw.Abhol = bAufko.Abhol
- bArtbw.Vertr = bAufko.Vertr
- bArtbw.Kurs = iohtAufze::Kurs
- bArtbw.Faktor = iohtAufze::Faktor
- .
-
- IF bArtbw.EP = 0 THEN
- DO:
- FIND bArtst NO-LOCK OF bArtbw.
- IF bArtst.DEP <> 0 THEN iohtAufze::EP = bArtst.DEP.
- ELSE
- IF bArtst.LEP <> 0 THEN iohtAufze::EP = bArtst.LEP.
- ELSE iohtAufze::EP = bArtst.Listen_EP.
- bArtbw.EP = iohtAufze::EP.
- END.
-
- RELEASE bAufko.
- RELEASE bArtbw.
- RELEASE bArtst.
- LEAVE.
- END.
-
- RETURN TRUE.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-fillAufko) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION fillAufko Procedure
- FUNCTION fillAufko RETURNS LOGICAL
- ( ipArt AS INTEGER, INPUT-OUTPUT iphAufko AS HANDLE ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE cBenDaten AS CHARACTER NO-UNDO.
- DEFINE VARIABLE vFirma AS CHARACTER NO-UNDO.
- DEFINE VARIABLE AufAdr AS CHARACTER EXTENT 5 NO-UNDO.
- DEFINE VARIABLE Knr AS INTEGER NO-UNDO.
- DEFINE VARIABLE FwFakArt AS INTEGER NO-UNDO.
- DEFINE VARIABLE FwAufSta AS INTEGER NO-UNDO.
- DEFINE VARIABLE FwFahrer AS INTEGER NO-UNDO.
- DEFINE VARIABLE FwLKW AS INTEGER NO-UNDO.
- DEFINE VARIABLE FwBeiFahr AS INTEGER NO-UNDO.
- DEFINE VARIABLE FwSprcd AS INTEGER NO-UNDO.
- DEFINE VARIABLE retValue AS CHARACTER NO-UNDO.
- DEFINE VARIABLE hAufko AS HANDLE NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
- DEFINE VARIABLE iBinary AS INTEGER NO-UNDO.
- DEFINE VARIABLE cBinary AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iWoTag AS INTEGER NO-UNDO.
- DEFINE VARIABLE cLieferZeit AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iTime AS INTEGER NO-UNDO.
-
- DEFINE BUFFER FTabel FOR Tabel.
- DEFINE BUFFER ATabel FOR Tabel.
- iTime = 0.
- vFirma = iphAufko::Firma.
- Knr = iphAufko::Knr.
- cBenDaten = DYNAMIC-FUNCTION('GETBENUTZERDATEN':U).
- AdFirma = DYNAMIC-FUNCTION('getAdMandant':U ).
- FwSprcd = DYNAMIC-FUNCTION('GETFWSPRCD':U ).
- cLieferZeit = DYNAMIC-FUNCTION('getFehlwert':U, vFirma, 'LIEFERDATUM').
- IF cLieferZeit <> '' AND
- cLieferZeit <> ? THEN
- DO:
- cLieferzeit = REPLACE(cLieferzeit, '.', ':').
- cLieferzeit = REPLACE(cLieferzeit, '-', ':').
- cLieferzeit = REPLACE(cLieferzeit, '/', ':').
- DO ii = 1 TO NUM-ENTRIES(cLieferzeit, ':'):
- CASE ii:
- WHEN 1 THEN
- iTime = iTime + (INTEGER(ENTRY(1, cLieferzeit, ':')) * 3600).
- WHEN 2 THEN
- iTime = iTime + (INTEGER(ENTRY(2, cLieferzeit, ':')) * 60 ).
- END CASE.
- END.
- END.
- FIND Adresse NO-LOCK USE-INDEX Adresse-k1
- WHERE Adresse.Firma = AdFirma
- AND Adresse.Knr = Knr NO-ERROR.
- IF NOT AVAILABLE Adresse THEN RETURN FALSE.
- FIND Debst NO-LOCK USE-INDEX Debst-k1
- WHERE Debst.Firma = vFirma
- AND Debst.Knr = Adresse.Knr NO-ERROR.
- IF NOT AVAILABLE Debst THEN RETURN FALSE.
- FIND FIRST tAufko NO-ERROR.
- IF NOT AVAILABLE tAufko THEN CREATE tAufko.
- hAufko = TEMP-TABLE tAufko:DEFAULT-BUFFER-HANDLE.
- hAufko:BUFFER-COPY(iphAufko).
-
- IF tAufko.Aufnr = 0 THEN
- DO:
- RUN NUMMER_LOESEN ( 1, OUTPUT tAufko.Aufnr ) NO-ERROR.
- END.
- DO WHILE ipArt = 0: /* Normale Auftragsbearbeitung */
- FwFakArt = Debst.Fak_Art.
- FwAufSta = 0.
- tAufko.Abhol = FALSE.
- LEAVE.
- END.
- DO WHILE ipArt = 1: /* Abholverkauf ( Kasse ) */
- IF Debst.Fak_Art < 99 THEN FwFakArt = DYNAMIC-FUNCTION('GETABHOLFAKART':U) NO-ERROR.
- ELSE FwFakArt = Debst.Fak_Art.
- FwAufSta = DYNAMIC-FUNCTION('GETABHOLAUFSTATUS':U) NO-ERROR.
- tAufko.Abhol = TRUE.
- LEAVE.
- END.
- FIND FTabel NO-LOCK USE-INDEX Tabel-k1
- WHERE FTabel.Firma = vFirma
- AND FTabel.RecArt = 'FAKART'
- AND FTabel.Sprcd = FwSprcd
- AND FTabel.CodeC = ''
- AND FTabel.CodeI = FwFakArt NO-ERROR.
- IF NOT AVAILABLE FTabel THEN
- DO:
- FIND FIRST FTabel NO-LOCK USE-INDEX Tabel-k1
- WHERE FTabel.Firma = vFirma
- AND FTabel.RecArt = 'FAKART'
- AND FTabel.CodeC = ''
- AND FTabel.CodeI = FwFakArt NO-ERROR.
- END.
- IF NOT AVAILABLE FTabel THEN RETURN FALSE.
- FIND ATabel NO-LOCK USE-INDEX Tabel-k1
- WHERE ATabel.Firma = vFirma
- AND ATabel.RecArt = 'AUFSTATUS'
- AND ATabel.Sprcd = FwSprcd
- AND ATabel.CodeC = ''
- AND ATabel.CodeI = FwAufSta NO-ERROR.
- IF NOT AVAILABLE ATabel THEN
- DO:
- FIND FIRST ATabel NO-LOCK USE-INDEX Tabel-k1
- WHERE ATabel.Firma = vFirma
- AND ATabel.RecArt = 'AUFSTATUS'
- AND ATabel.CodeC = ''
- AND ATabel.CodeI = FwAufSta NO-ERROR.
- END.
- IF NOT AVAILABLE ATabel THEN RETURN FALSE.
- FwLKW = 0.
- FwFahrer = 0.
- FwBeiFahr = 0.
- GET-KEY-VALUE SECTION 'FwAuftrag' KEY 'FwLKW' VALUE retValue.
- IF retValue <> ? THEN FwLKW = INTEGER(retValue).
- GET-KEY-VALUE SECTION 'FwAuftrag' KEY 'FwFahrer' VALUE retValue.
- IF retValue <> ? THEN FwFahrer = INTEGER(retValue).
- GET-KEY-VALUE SECTION 'FwAuftrag' KEY 'FwBeiFahr' VALUE retValue.
- IF retValue <> ? THEN FwBeiFahr = INTEGER(retValue).
- ASSIGN
- tAufko.Fak_Art = FwFakArt
- tAufko.Auf_Sta = FwAufSta.
- DO WHILE TRUE:
- IF Debst.KnrLie <> 0 AND
- Debst.KnrLie <> Debst.Knr THEN
- DO:
- ASSIGN
- tAufko.Knr = Debst.KnrLie
- tAufko.Fak_Knr = Debst.Knr.
- LEAVE.
- END.
- IF Debst.KnrFak <> 0 AND
- Debst.KnrFak <> Debst.Knr THEN
- DO:
- ASSIGN
- tAufko.Fak_Knr = Debst.KnrFak.
- LEAVE.
- END.
- ASSIGN
- tAufko.Knr = Debst.Knr
- tAufko.Fak_Knr = Debst.Knr.
- LEAVE.
- END.
- FIND Waehrung NO-LOCK
- WHERE Waehrung.Firma = Debst.Firma
- AND Waehrung.FRW = Debst.FRW NO-ERROR.
- ASSIGN
- tAufko.Auf_Datum = TODAY
- tAufko.Lief_Datum = (IF iTime = 0 THEN TODAY ELSE (IF TIME > iTime THEN TODAY + 2 ELSE TODAY + 1))
- tAufko.Kond_Datum = TODAY
- tAufko.Fak_Datum = ?
- tAufko.I_Best = ''
- tAufko.U_Ref = ENTRY(2, cBenDaten, CHR(01))
- tAufko.Vertr = Debst.Vertr
- tAufko.Rabatt = 0
- tAufko.Preis_Grp = Debst.Preis_Grp
- tAufko.Ku_Grp = Debst.Ku_Grp
- tAufko.Rab_Grp = Debst.Rab_Grp
- tAufko.Lief_Bed = Debst.Lief_Bed
- tAufko.Avis = Debst.Avis
- tAufko.Frw = Debst.FRW
- tAufko.Kurs = Waehrung.Kurs
- tAufko.Faktor = Waehrung.Faktor
- tAufko.Gedruckt = FALSE
- tAufko.WW = 0
- tAufko.Wpfl = 0
- tAufko.Wust = 0
- tAufko.Auf_Tot = 0
- tAufko.Faknr = 0
- tAufko.Bar_Fak = FALSE
- tAufko.Bar_Betr = 0
- tAufko.Bar_Skonto = 0
- tAufko.Bar_Konto = ''
- tAufko.Adresse = ''
- tAufko.GG_Berech = Debst.Geb_rg
- tAufko.Kopf_Text = ''
- tAufko.Fuss_Text = ''
- tAufko.Samm_Nr = 0
- tAufko.SK_Ber = 0
- tAufko.Verbucht = FALSE
- tAufko.Rueckst = FALSE
- tAufko.Fak_KTnr = 0
- tAufko.Fak_FTnr = 0
- tAufko.Filiale = 0
- tAufko.Tour_Nr1 = Debst.Tour_Nr1
- tAufko.Tour_Nr2 = Debst.Tour_Nr2
- tAufko.Konto = Debst.Konto
- tAufko.Geb_Rg = Debst.Geb_Rg
- tAufko.MWST_Nr = ''
- tAufko.Passant = Debst.Passant
- tAufko.Auf_Text = Debst.Auf_Text
- tAufko.Bar_Text = Debst.Bemerk
- tAufko.Abh_Text = Debst.Bar_Text
- tAufko.Zei_Rab_Art = Debst.Zei_Rab_Art
- tAufko.Zei_Rab_Wert = Debst.Zei_Rab_Wert
- tAufko.Auf_Rab_Art = Debst.Auf_Rab_Art
- tAufko.Auf_Rab_Wert = Debst.Auf_Rab_Wert
- tAufko.Abh_Rab_Art = Debst.Abh_Rab_Art
- tAufko.Abh_Rab_Wert = Debst.Abh_Rab_Wert
- tAufko.Zuschl_Art = Debst.Zuschl_Art
- tAufko.Zuschl_Wert = Debst.Zuschl_Wert
- tAufko.Ablad_Vor = Debst.Ablad_Vor
- tAufko.Wirt_So = Debst.Wirt_So
- tAufko.Ablad_Vor_Text = Debst.Ablad_Vor_Text
- tAufko.Wirt_So_Text = Debst.Wirt_So_Text
- tAufko.MWST = Debst.MWST
- tAufko.Kond = Debst.Kond
- tAufko.LKW = FwLKW
- tAufko.Fahrer = FwFahrer
- tAufko.BeiFahrer = FwBeiFahr.
- IF tAufko.Konto = '' THEN
- DO:
- FIND SteuNr USE-INDEX SteuNr-k1
- WHERE SteuNr.Firma = vFirma NO-LOCK.
- tAufko.Konto = SteuNr.Konto_Debi.
- END.
- IF tAufko.Passant THEN
- DO:
- i1 = 5.
- DO ii = 11 TO 1 BY -1:
- IF Adresse.Anschrift[ii] = '' THEN NEXT.
- tAufko.Adresse[i1] = Adresse.Anschrift[ii].
- i1 = i1 - 1.
- IF i1 = 0 THEN LEAVE.
- END.
- END.
- IF ipArt = 1 THEN tAufko.Lief_Datum = TODAY.
- ELSE
- DO:
- /* -------------------------------------------------------------------------- */
- /* Lieferdatum anhand eines möglichen Liefertages ermitteln */
- /* -------------------------------------------------------------------------- */
- DO WHILE TRUE:
- FIND Kalender NO-LOCK
- WHERE Kalender.Firma = Firma
- AND Kalender.EreignisDatum = DATETIME-TZ (tAufko.Lief_Datum) NO-ERROR.
- IF NOT AVAILABLE Kalender THEN LEAVE.
- tAufko.Lief_Datum = tAufko.Lief_Datum + 1.
- END.
-
- iBinary = Debst.Liefertag.
- iBinary = NumberSystems:integer2Binary(iBinary).
- cBinary = STRING(iBinary,'9999999').
- DO WHILE iBinary > 0:
- iWoTag = WEEKDAY(tAufko.Lief_Datum).
- IF SUBSTRING(cBinary, iWoTag, 01) = '1' THEN LEAVE.
- tAufko.Lief_Datum = tAufko.Lief_Datum + 1.
-
- DO WHILE TRUE:
- FIND Kalender NO-LOCK
- WHERE Kalender.Firma = Firma
- AND Kalender.EreignisDatum = DATETIME-TZ (tAufko.Lief_Datum) NO-ERROR.
- IF NOT AVAILABLE Kalender THEN LEAVE.
- tAufko.Lief_Datum = tAufko.Lief_Datum + 1.
- END.
- END.
- END.
-
- iphAufko:BUFFER-COPY(hAufko).
- RETURN TRUE.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-fillAufRabSu) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION fillAufRabSu Procedure
- FUNCTION fillAufRabSu RETURNS LOGICAL
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE nMenge AS DECIMAL NO-UNDO.
- DEFINE BUFFER bRabSumm FOR RabSumm .
- DEFINE BUFFER bAufRabSu FOR AufRabSu.
- FIND FIRST tAufze NO-ERROR.
- EMPTY TEMP-TABLE tAufRabSu.
- FOR EACH bAufRabSu NO-LOCK
- WHERE bAufRabSu.Firma = tAufze.Firma
- AND bAufRabSu.Aufnr = tAufze.Aufnr:
- CREATE tAufRabSu.
- BUFFER-COPY bAufRabSu TO tAufRabSu
- ASSIGN
- tAufRabSu.M_Menge = 0.0
- tAufRabSu.M_Betrag = 0.0
- tAufRabSu.M_Inhalt = 0.0
- tAufRabSu.R_Menge = 0.0
- tAufRabSu.R_Betrag = 0.0
- tAufRabSu.R_Inhalt = 0.0
- tAufRabSu.F_Wert = 0.0
- tAufRabSu.A_Wert = 0.0.
- RELEASE bAufRabSu.
- END.
- nMenge = 0.
- FOR EACH tAufze:
- IF tAufze.Artnr = 0 OR
- tAufze.Rab_Su_Grp = 0 OR
- tAufze.Preis = 0 THEN
- DO:
- ASSIGN
- tAufze.Auf_Rab = 0
- tAufze.Abh_Rab = 0
- tAufze.Rab_Su_Art = 0
- tAufze.Rab_Su_Grp = 0.
- NEXT.
- END.
-
- FIND tAufRabSu
- WHERE tAufRabSu.Firma = tAufze.Firma
- AND tAufRabSu.Aufnr = tAufze.Aufnr
- AND tAufRabSu.Rab_Summ = tAufze.Rab_Su_Grp
- AND tAufRabSu.MWST_Cd = tAufze.WuCd NO-ERROR.
- IF NOT AVAILABLE tAufRabSu THEN
- DO:
- FIND FIRST bRabSumm
- WHERE bRabSumm.Firma = tAufze.Firma
- AND bRabSumm.Rab_Summ = tAufze.Rab_Su_Grp.
- CREATE tAufRabSu.
- ASSIGN
- tAufRabSu.Firma = tAufze.Firma
- tAufRabSu.Aufnr = tAufze.Aufnr
- tAufRabSu.Rab_Summ = tAufze.Rab_Su_Grp
- tAufRabSu.MWST_Cd = tAufze.WuCd
- tAufRabSu.F_Art = bRabSumm.F_Rab_Art
- tAufRabSu.F_Proz_Betr = bRabSumm.F_Proz_Betr
- tAufRabSu.A_Art = bRabSumm.A_Rab_Art
- tAufRabSu.A_Proz_Betr = bRabSumm.A_Proz_Betr.
- END.
-
- ASSIGN
- tAufRabSu.M_Menge = tAufRabSu.M_Menge + tAufze.MGeli
- tAufRabSu.M_Betrag = tAufRabSu.M_Betrag + tAufze.Net_Betr
- tAufRabSu.M_Inhalt = tAufRabSu.M_Inhalt + tAufze.Liter.
-
- CASE tAufRabSu.F_Art:
- WHEN 0 THEN
- nMenge = nMenge + tAufze.MGeli .
- WHEN 1 THEN
- nMenge = nMenge + tAufze.Net_Betr.
- WHEN 2 THEN
- nMenge = nMenge + tAufze.Liter .
- END CASE.
-
- IF tAufze.Rab_Su_Art = 0 THEN NEXT.
- ASSIGN
- tAufRabSu.R_Menge = tAufRabSu.R_Menge + tAufze.MGeli
- tAufRabSu.R_Betrag = tAufRabSu.R_Betrag + tAufze.Net_Betr
- tAufRabSu.R_Inhalt = tAufRabSu.R_Inhalt + tAufze.Liter.
- END.
- nMenge = ABS(nMenge).
- FOR EACH tAufRabSu:
- IF tAufRabSu.F_Art = 0 THEN
- DO:
- FIND LAST bRabSumm NO-LOCK
- WHERE bRabSumm.Firma = tAufRabSu.Firma
- AND bRabSumm.Rab_Summ = tAufRabSu.Rab_Summ
- AND bRabSumm.Menge <= nMenge NO-ERROR.
- END.
- IF tAufRabSu.F_Art = 1 THEN
- DO:
- FIND LAST bRabSumm
- WHERE bRabSumm.Firma = tAufRabSu.Firma
- AND bRabSumm.Rab_Summ = tAufRabSu.Rab_Summ
- AND bRabSumm.Menge = 0
- AND bRabSumm.Betrag <= nMenge NO-LOCK NO-ERROR.
- END.
- IF tAufRabSu.F_Art = 2 THEN
- DO:
- FIND LAST bRabSumm
- WHERE bRabSumm.Firma = tAufRabSu.Firma
- AND bRabSumm.Rab_Summ = tAufRabSu.Rab_Summ
- AND bRabSumm.Menge = 0
- AND bRabSumm.Betrag = 0
- AND bRabSumm.Inhalt <= (nMenge / 100) NO-LOCK NO-ERROR.
- END.
- IF NOT AVAILABLE bRabSumm THEN tAufRabSu.F_Wert = 0.
- ELSE tAufRabSu.F_Wert = bRabSumm.F_Wert.
- IF tAufRabSu.A_Art = 0 THEN
- DO:
- FIND LAST bRabSumm NO-LOCK
- WHERE bRabSumm.Firma = tAufRabSu.Firma
- AND bRabSumm.Rab_Summ = tAufRabSu.Rab_Summ
- AND bRabSumm.Menge <= nMenge NO-ERROR.
- END.
- IF tAufRabSu.A_Art = 1 THEN
- DO:
- FIND LAST bRabSumm
- WHERE bRabSumm.Firma = tAufRabSu.Firma
- AND bRabSumm.Rab_Summ = tAufRabSu.Rab_Summ
- AND bRabSumm.Menge = 0
- AND bRabSumm.Betrag <= nMenge NO-LOCK NO-ERROR.
- END.
- IF tAufRabSu.A_Art = 2 THEN
- DO:
- FIND LAST bRabSumm
- WHERE bRabSumm.Firma = tAufRabSu.Firma
- AND bRabSumm.Rab_Summ = tAufRabSu.Rab_Summ
- AND bRabSumm.Menge = 0
- AND bRabSumm.Betrag = 0
- AND bRabSumm.Inhalt <= (nMenge / 100) NO-LOCK NO-ERROR.
- END.
- IF NOT AVAILABLE bRabSumm THEN tAufRabSu.A_Wert = 0.
- ELSE tAufRabSu.A_Wert = bRabSumm.A_Wert.
- END.
- FOR EACH tAufRabSu:
- FIND bAufRabSu OF tAufRabSu NO-ERROR.
- IF NOT AVAILABLE bAufRabSu THEN
- DO:
- CREATE bAufRabSu.
- BUFFER-COPY tAufRabSu TO bAufRabSu.
- RELEASE bAufRabSu.
- NEXT.
- END.
- BUFFER-COPY tAufRabSu
- EXCEPT Firma Aufnr /* Rab_Su_Grp WuCd */
- TO bAufRabSu.
- RELEASE bAufRabSu.
- END.
- RETURN TRUE.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-FillAufSpRab) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION FillAufSpRab Procedure
- FUNCTION FillAufSpRab RETURNS LOGICAL
- ( ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE cFirma AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iAufnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE iPos AS INTEGER NO-UNDO.
-
- DEFINE BUFFER bSpPrRab FOR SpPrRab .
- DEFINE BUFFER bAufSpRab FOR AufSpRab.
- DEFINE BUFFER bAufko FOR Aufko .
- FIND FIRST tAufze.
-
- FIND bAufko NO-LOCK
- WHERE bAufko.Firma = tAufze.Firma
- AND bAufko.Aufnr = tAufze.Aufnr.
-
- EMPTY TEMP-TABLE tAufSpRab.
- FOR EACH bAufSpRab
- WHERE bAufSpRab.Firma = bAufko.Firma
- AND bAufSpRab.Aufnr = bAufko.Aufnr:
- CREATE tAufSpRab.
- BUFFER-COPY bAufSpRab TO tAufSpRab
- ASSIGN
- tAufSpRab.Auf_Wert = 0
- tAufSpRab.Menge = 0.
- END.
-
- FOR EACH tAufze
- WHERE tAufze.Artnr > 0
- AND tAufze.Auf_Sp_Grp > 0:
- FIND tAufSpRab USE-INDEX AufSpRab-k1
- WHERE tAufSpRab.Firma = tAufze.Firma
- AND tAufSpRab.Aufnr = tAufze.Aufnr
- AND tAufSpRab.Rab_Grp = tAufze.Auf_Sp_Grp NO-ERROR.
- IF NOT AVAILABLE tAufSpRab THEN
- DO:
- CREATE tAufSpRab.
- ASSIGN
- tAufSpRab.Firma = tAufze.Firma
- tAufSpRab.Aufnr = tAufze.Aufnr
- tAufSpRab.Rab_Grp = tAufze.Auf_Sp_Grp.
- END.
- tAufSpRab.Menge = tAufSpRab.Menge + tAufze.MBest.
- END.
- FOR EACH tAufSpRab:
- FIND LAST bSpPrRab NO-LOCK
- WHERE bSpPrRab.Firma = bAufko.Firma
- AND bSpPrRab.Knr = bAufko.Knr
- AND bSpPrRab.Rab_Grp = tAufSpRab.Rab_Grp
- AND bSpPrRab.Menge <= ABS(tAufSpRab.Menge)
- AND bSpPrRab.Ab_Datum <= bAufko.Kond_Datum
- AND bSpPrRab.Bis_Datum >= bAufko.Kond_Datum NO-ERROR.
- IF AVAILABLE bSpPrRab THEN
- DO:
- ASSIGN
- tAufSpRab.Auf_Proz_Betr = bSpPrRab.Auf_Proz_Betr
- tAufSpRab.Auf_Wert = bSpPrRab.Auf_Wert.
- END.
- ELSE
- DO:
- FOR EACH tAufze
- WHERE tAufze.Firma = bAufko.Firma
- AND tAufze.Aufnr = bAufko.Aufnr
- AND tAufze.Auf_Sp_Grp = tAufSpRab.Rab_Grp:
- ASSIGN
- tAufze.Auf_Sp_Rab = 0
- tAufze.Auf_Sp_Wert = 0.
- END.
- END.
- END.
-
- FOR EACH tAufSpRab:
- FIND bAufSpRab OF tAufSpRab NO-ERROR.
- IF NOT AVAILABLE bAufSpRab THEN
- DO:
- CREATE bAufSpRab.
- BUFFER-COPY tAufSpRab TO bAufSpRab.
- END.
- ELSE
- DO:
- ASSIGN
- bAufSpRab.Auf_Proz_Betr = tAufSpRab.Auf_Proz_Betr
- bAufSpRab.Auf_Wert = tAufSpRab.Auf_Wert.
- END.
- RELEASE bAufSpRab.
- END.
-
- RELEASE bAufko .
- RELEASE bSpPrRab .
- RELEASE bAufSpRab.
-
- RETURN TRUE.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-fillAufze) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION fillAufze Procedure
- FUNCTION fillAufze RETURNS INTEGER
- ( INPUT-OUTPUT iphAufze AS HANDLE ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE hAufze AS HANDLE NO-UNDO.
- DEFINE VARIABLE xx AS INTEGER NO-UNDO.
- DEFINE VARIABLE iKnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE hFeldKnr AS HANDLE NO-UNDO.
- DEFINE VARIABLE dDatum AS DATE NO-UNDO.
- DEFINE VARIABLE hFeldDatum AS HANDLE NO-UNDO.
- DEFINE VARIABLE iPos AS INTEGER NO-UNDO.
-
- DEFINE BUFFER bArtst FOR Artst .
- DEFINE BUFFER bAufze FOR Aufze .
- DEFINE BUFFER bArtbez FOR Artbez .
- DEFINE BUFFER bWust FOR Wust .
- DEFINE BUFFER bMWStAns FOR MWStAns .
- DEFINE BUFFER bKGebinde FOR KGebinde.
- DEFINE BUFFER bVGebinde FOR VGebinde.
- DEFINE BUFFER bGGebinde FOR GGebinde.
- DEFINE BUFFER bGebKonto FOR GebKonto.
-
- EMPTY TEMP-TABLE tAufze.
- CREATE tAufze.
- hAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
- hAufze:BUFFER-COPY(iphAufze).
- hFeldKnr = iphAufze:BUFFER-FIELD('Knr') NO-ERROR.
- IF VALID-HANDLE ( hFeldKnr ) THEN iKnr = hFeldKnr:BUFFER-VALUE(0).
- ELSE iKnr = 0.
- hFeldDatum = iphAufze:BUFFER-FIELD('Datum') NO-ERROR.
- IF VALID-HANDLE ( hFeldDatum ) THEN dDatum = hFeldDatum:BUFFER-VALUE(0).
- ELSE dDatum = TODAY.
- DYNAMIC-FUNCTION('createAufkoParam':U, tAufze.Firma, tAufze.Aufnr, iKnr, dDatum ) NO-ERROR.
-
- FIND FIRST tParam.
- IF tAufze.Artnr > 0 THEN
- DO:
- FIND bArtst NO-LOCK
- WHERE bArtst.Firma = tAufze.Firma
- AND bArtst.Artnr = tAufze.Artnr
- AND bArtst.Inhalt = tAufze.Inhalt
- AND bArtst.Jahr = tAufze.Jahr NO-ERROR.
- IF NOT AVAILABLE bArtst THEN RETURN 213.
- FIND bArtbez NO-LOCK
- WHERE bArtbez.Firma = bArtst.Firma
- AND bArtbez.Artnr = bArtst.Artnr
- AND bArtbez.Inhalt = bArtst.Inhalt
- AND bArtbez.Jahr = bArtst.Jahr
- AND bArtbez.Sprcd = tParam.Sprcd NO-ERROR.
- IF NOT AVAILABLE bArtbez THEN
- DO:
- FIND FIRST bArtbez NO-LOCK
- WHERE bArtbez.Firma = bArtst.Firma
- AND bArtbez.Artnr = bArtst.Artnr
- AND bArtbez.Inhalt = bArtst.Inhalt
- AND bArtbez.Jahr = bArtst.Jahr NO-ERROR.
- END.
- IF NOT AVAILABLE bArtbez THEN RETURN 222.
- END.
-
- IF tAufze.Pos = 0 THEN
- DO:
- FIND LAST bAufze NO-LOCK
- WHERE bAufze.Firma = tAufze.Firma
- AND bAufze.Aufnr = tAufze.Aufnr NO-ERROR.
- IF AVAILABLE bAufze THEN iPos = bAufze.Pos + 5.
- ELSE iPos = 5.
- RELEASE bAufze.
- tAufze.Pos = iPos.
- END.
-
- ASSIGN
- tAufze.MBest = 0
- tAufze.MGeli = 0
- tAufze.MRuek = 0
- tAufze.MKumm = 0
- tAufze.KGeb_Me = 0
- tAufze.VGeb_Me = 0
- tAufze.GGeb_Me = 0
- tAufze.KGeb_Be = 0
- tAufze.VGeb_Be = 0
- tAufze.GGeb_Be = 0
- tAufze.KGeb_Ru = 0
- tAufze.VGeb_Ru = 0
- tAufze.GGeb_Ru = 0
- tAufze.Preis = 0
- tAufze.Rab_Art = 0
- tAufze.Rab_Wert = 0
- tAufze.Rab_Betr = 0
- tAufze.Zus_Art = 0
- tAufze.Zus_Wert = 0
- tAufze.Zus_Betr = 0
- tAufze.Bru_Betr = 0
- tAufze.Net_Betr = 0
- tAufze.WC = 0
- tAufze.Alk_Gehalt = 0
- tAufze.Aktion = FALSE
- tAufze.TrNr = 0
- tAufze.Verbucht = FALSE
- tAufze.Aktion_Text = ''
- tAufze.Rab_Su_Grp = 0
- tAufze.Rab_Su_Art = 0
- tAufze.Liter = 0
- tAufze.Gewicht = 0
- tAufze.Auf_Rab = 0
- tAufze.Abh_Rab = 0
- tAufze.KGebKto = ''
- tAufze.VGebKto = ''
- tAufze.GGebKto = ''
- tAufze.EP = 0
- tAufze.Auf_Sp_Proz_Betr = TRUE
- tAufze.Auf_Sp_Wert = 0
- tAufze.Auf_Sp_Rab = 0
- tAufze.Auf_Sp_Grp = 0
- tAufze.Frw = tParam.Frw
- tAufze.Kurs = tParam.Kurs
- tAufze.Faktor = tParam.Faktor
- tAufze.Preis_Mut = FALSE.
- IF tAufze.Artnr > 0 THEN
- DO:
- ASSIGN
- tAufze.Bez1 = bArtbez.Bez1
- tAufze.Bez2 = (IF bArtbez.Bez2_Druck THEN bArtbez.Bez2 ELSE '' )
- tAufze.Rab_Art = tParam.Zei_Rab_Art
- tAufze.Rab_Wert = tParam.Zei_Rab_Wert
- tAufze.Zus_Art = tParam.Zuschl_Art
- tAufze.Zus_Wert = tParam.Zuschl_Wert
- tAufze.WC = bArtst.MWST
- tAufze.Alk_Gehalt = bArtst.Alk_Gehalt
- tAufze.Aktion = FALSE
- tAufze.Sk_Ber = bArtst.Sk_Ber
- tAufze.Netto = bArtst.Netto
- tAufze.Lager = tParam.Lager
- tAufze.TrNr = 0
- tAufze.Verbucht = FALSE
- tAufze.KGeb_Cd = bArtst.KGeb_Cd
- tAufze.VGeb_Cd = bArtst.VGeb_Cd
- tAufze.GGeb_Cd = bArtst.GGeb_Cd
- tAufze.Lag_Buch = bArtst.Lager
- tAufze.lLotnr = bArtst.lLotnr
- tAufze.lVerfall = bArtst.lVerfall.
-
- IF bArtst.DEP <> 0 THEN tAufze.EP = bArtst.DEP.
- ELSE
- IF bArtst.LEP <> 0 THEN tAufze.EP = bArtst.LEP.
- ELSE tAufze.EP = bArtst.Listen_EP.
-
- IF bArtst.Netto THEN
- DO:
- ASSIGN
- tAufze.Rab_Art = 0
- tAufze.Rab_Wert = 0.
- END.
-
- DO xx = 1 TO 10:
- tAufze.Zustext[xx] = bArtbez.Zustext[xx].
- END.
- FIND bWust NO-LOCK USE-INDEX Wust-k1
- WHERE bWust.CodeK = tParam.MWSt
- AND bWust.CodeA = bArtst.MWSt NO-ERROR.
- tAufze.WuCd = bWust.WuCd.
- FIND LAST bMWSTAns NO-LOCK
- WHERE bMWSTAns.MWST_Cd = tAufze.WuCd
- AND bMWSTAns.Datum <= tParam.Kond_Datum.
- tAufze.MWST% = bMWSTAns.Ansatz.
- tAufze.MWST_Inkl = bWust.Incl.
-
- DO WHILE TRUE:
- FIND bKGebinde NO-LOCK
- WHERE bKGebinde.Firma = tAufze.Firma
- AND bKGebinde.Geb_Cd = tAufze.KGeb_Cd NO-ERROR.
- IF NOT AVAILABLE bKGebinde THEN RETURN 1055.
- IF bKGebinde.Geb_Kto = '' THEN LEAVE.
- FIND bGebKonto NO-LOCK
- WHERE bGebKonto.Firma = tAufze.Firma
- AND bGebKonto.Geb_Cd = bKGebinde.Geb_Kto NO-ERROR.
- IF NOT AVAILABLE bGebKonto THEN RETURN 1060.
- tAufze.KGebKto = bGebKonto.Geb_Cd.
- LEAVE.
- END.
-
- DO WHILE TRUE:
- FIND bVGebinde NO-LOCK
- WHERE bVGebinde.Firma = tAufze.Firma
- AND bVGebinde.Geb_Cd = tAufze.VGeb_Cd NO-ERROR.
- IF NOT AVAILABLE bVGebinde THEN RETURN 1056.
- IF bVGebinde.Geb_Kto = '' THEN LEAVE.
- FIND bGebKonto NO-LOCK
- WHERE bGebKonto.Firma = tAufze.Firma
- AND bGebKonto.Geb_Cd = bVGebinde.Geb_Kto NO-ERROR.
- IF NOT AVAILABLE bGebKonto THEN RETURN 1061.
- tAufze.VGebKto = bGebKonto.Geb_Cd.
- LEAVE.
- END.
-
- DO WHILE TRUE:
- FIND bGGebinde NO-LOCK
- WHERE bGGebinde.Firma = tAufze.Firma
- AND bGGebinde.Geb_Cd = tAufze.GGeb_Cd NO-ERROR.
- IF NOT AVAILABLE bGGebinde THEN RETURN 1057.
- IF bGGebinde.Geb_Kto = '' THEN LEAVE.
- FIND bGebKonto NO-LOCK
- WHERE bGebKonto.Firma = tAufze.Firma
- AND bGebKonto.Geb_Cd = bGGebinde.Geb_Kto NO-ERROR.
- IF NOT AVAILABLE bGebKonto THEN RETURN 1062.
- tAufze.GGebKto = bGebKonto.Geb_Cd.
- LEAVE.
- END.
-
- DO WHILE TRUE:
- FIND RabTab NO-LOCK USE-INDEX RabTab-k1
- WHERE RabTab.Firma = tAufze.Firma
- AND RabTab.Ku_Rab = tParam.Rab_Grp
- AND RabTab.Art_Rab = bArtst.Rab_Grp NO-ERROR.
- IF NOT AVAILABLE RabTab THEN LEAVE.
- ASSIGN
- tAufze.Rab_Su_Grp = RabTab.Rab_Summ
- tAufze.Rab_Su_Art = RabTab.Add_Art.
- LEAVE.
- END.
- END.
- iphAufze:BUFFER-COPY(hAufze).
-
- RELEASE bArtst .
- RELEASE bArtbez .
- RELEASE bKGebinde.
- RELEASE bVGebinde.
- RELEASE bGGebinde.
- RELEASE bGebKonto.
- RELEASE bWust .
- RELEASE bMWStAns .
- RETURN 0.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getAbholSeite) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getAbholSeite Procedure
- FUNCTION getAbholSeite RETURNS INTEGER
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- FIND Steuer USE-INDEX Steuer-k1
- WHERE Steuer.Firma = Firma NO-LOCK.
- RETURN Steuer.Fwi18.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getAufstatus) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getAufstatus Procedure
- FUNCTION getAufstatus RETURNS CHARACTER
- ( ipAufstatus AS INTEGER ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- FIND Tabel NO-LOCK USE-INDEX Tabel-k2
- WHERE Tabel.Firma = Firma
- AND Tabel.RecArt = 'AUFSTATUS'
- AND Tabel.CodeI = ipAufstatus
- AND Tabel.CodeC = ''
- AND Tabel.Sprcd = 1 NO-ERROR.
- IF AVAILABLE Tabel THEN RETURN Tabel.Bez1.
- ELSE RETURN "??????????".
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getDokumentArt) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getDokumentArt Procedure
- FUNCTION getDokumentArt RETURNS CHARACTER
- ( ipFakart AS INTEGER ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- FIND Tabel NO-LOCK USE-INDEX Tabel-k2
- WHERE Tabel.Firma = Firma
- AND Tabel.RecArt = 'FAKART'
- AND Tabel.CodeI = ipFakart
- AND Tabel.CodeC = ''
- AND Tabel.Sprcd = 1 NO-ERROR.
- IF AVAILABLE Tabel THEN RETURN Tabel.Bez2.
- ELSE RETURN "??????????".
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getEpProz_Betr) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getEpProz_Betr Procedure
- FUNCTION getEpProz_Betr RETURNS LOGICAL
- ( ipFirma AS CHARACTER ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE lRetVal AS LOG INIT TRUE NO-UNDO.
- FIND Steuer NO-LOCK
- WHERE Steuer.Firma = ipFirma NO-ERROR.
- IF NOT AVAILABLE Steuer THEN RETURN lRetVal.
-
- lRetVal = (IF Steuer.Fwi09 = 0 THEN TRUE ELSE FALSE).
- RELEASE Steuer.
- RETURN lRetVal.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getFakart) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getFakart Procedure
- FUNCTION getFakart RETURNS CHARACTER
- ( ipFakart AS INTEGER ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- FIND Tabel NO-LOCK USE-INDEX Tabel-k2
- WHERE Tabel.Firma = Firma
- AND Tabel.RecArt = 'FAKART'
- AND Tabel.CodeI = ipFakart
- AND Tabel.CodeC = ''
- AND Tabel.Sprcd = 1 NO-ERROR.
- IF AVAILABLE Tabel THEN RETURN Tabel.Bez1.
- ELSE RETURN "??????????".
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getHoReLagerId) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getHoReLagerId Procedure
- FUNCTION getHoReLagerId RETURNS INTEGER
- ( ipiArtnr AS INTEGER, ipiInhalt AS INTEGER, ipiJahr AS INTEGER, ipiLager AS INTEGER ):
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE iRetVal AS INTEGER NO-UNDO INIT 0.
- IF NOT lHoReLager THEN
- DO:
- iRetVal = INTEGER(STRING(ipiArtnr,'999999') + STRING(ipiInhalt,'9999') + STRING(ipiJahr)) NO-ERROR.
- IF ERROR-STATUS:ERROR THEN RETURN 0.
- RETURN iRetVal.
- END.
-
- FIND FIRST HoReLager NO-LOCK
- WHERE HoReLager.Firma = Firma
- AND HoReLager.Lager = ipiLager
- AND HoReLager.Art = 1
- AND HoReLager.Artnr = ipiArtnr
- AND HoReLager.Inhalt = ipiInhalt
- AND HoReLager.Jahr = ipiJahr NO-ERROR.
- IF NOT AVAILABLE HoReLager THEN
- DO:
- FIND FIRST HoReLager NO-LOCK
- WHERE HoReLager.Firma = Firma
- AND HoReLager.Lager = ipiLager
- AND HoReLager.Art = 1
- AND HoReLager.Artnr = ipiArtnr
- AND HoReLager.Inhalt = ipiInhalt NO-ERROR.
- END.
- IF NOT AVAILABLE HoReLager THEN
- DO:
- FIND FIRST HoReLager NO-LOCK
- WHERE HoReLager.Firma = Firma
- AND HoReLager.Lager = ipiLager
- AND HoReLager.Art = 3
- AND HoReLager.Artnr = ipiArtnr
- AND HoReLager.Inhalt = ipiInhalt
- AND HoReLager.Jahr = ipiJahr NO-ERROR.
- END.
- IF NOT AVAILABLE HoReLager THEN
- DO:
- FIND FIRST HoReLager NO-LOCK
- WHERE HoReLager.Firma = Firma
- AND HoReLager.Lager = ipiLager
- AND HoReLager.Art = 3
- AND HoReLager.Artnr = ipiArtnr
- AND HoReLager.Inhalt = ipiInhalt NO-ERROR.
- END.
-
- IF AVAILABLE HoReLager THEN iRetVal = HoReLager.HoReLager_Id.
-
- RETURN iRetVal.
- END FUNCTION.
-
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getPreisAufze) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getPreisAufze Procedure
- FUNCTION getPreisAufze RETURNS INTEGER
- ( INPUT-OUTPUT iohtAufze AS HANDLE ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE htAufze AS HANDLE NO-UNDO.
- DEFINE VARIABLE iMengeKond AS INTEGER NO-UNDO.
- DEFINE VARIABLE nMengeBetr AS DECIMAL NO-UNDO.
- DEFINE VARIABLE lRueckstand AS LOG NO-UNDO.
- DEFINE VARIABLE lKeineAktion AS LOG NO-UNDO.
- DEFINE VARIABLE iKuPreisGrp AS INTEGER NO-UNDO.
- DEFINE VARIABLE iFwPreisGrp AS INTEGER NO-UNDO.
- DEFINE VARIABLE iAbPreisGrp AS INTEGER NO-UNDO.
- DEFINE VARIABLE iPreisGrp AS INTEGER NO-UNDO.
- DEFINE VARIABLE iSpezPreis AS INTEGER NO-UNDO.
- DEFINE VARIABLE lAbweich AS LOG NO-UNDO.
- DEFINE VARIABLE lRabAufNetto AS LOG NO-UNDO.
- DEFINE VARIABLE lAktAufSpezPr AS LOG INIT FALSE NO-UNDO.
- DEFINE VARIABLE lAktion AS LOG INIT FALSE NO-UNDO.
- DEFINE VARIABLE lNettoArtikel AS LOG NO-UNDO.
- DEFINE VARIABLE nNormalPreis AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE iAktionen AS INTEGER NO-UNDO.
- /* 0 = Keine Aktionen, wenn Spezpreis oder Spezrabgruppe */
- /* 1 = Aktionen auch bei SpezPreisen */
- /* 2 = Aktionen auch bei SpezRabAufRabgruppen */
- /* 3 = Immer Aktionen berücksichtigen */
- DEFINE VARIABLE iAktGrp AS INTEGER NO-UNDO.
- /* Kundengruppe oder Preisgruppe (eventuell abweichend) */
- /* welche für die Aktionspreisermittlung verwendet wird */
- DEFINE VARIABLE iAktKuPr_Grp AS INTEGER NO-UNDO.
- /* 0 = Preisgruppen */
- /* 1 = Kundengruppen */
- DEFINE VARIABLE cAktiontext AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE iKnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE dDatum AS DATE NO-UNDO.
- DEFINE VARIABLE hFeldKnr AS HANDLE NO-UNDO.
- DEFINE VARIABLE hFeldDatum AS HANDLE NO-UNDO.
- DEFINE VARIABLE hbArtst AS HANDLE NO-UNDO.
- /* DEFINE BUFFER bAufko FOR Aufko . */
- DEFINE BUFFER bArtst FOR Artst .
- DEFINE BUFFER bAbwPrGrp FOR AbwPrGrp.
- DEFINE BUFFER bRabTab FOR RabTab .
- DEFINE BUFFER bRabSumm FOR RabSumm .
- DEFINE BUFFER bSpezPrei FOR SpezPrei.
- DEFINE BUFFER bSpPrRab FOR SpPrRab .
- DEFINE BUFFER bAktKeine FOR AktKeine.
- DEFINE BUFFER bWust FOR Wust .
- DEFINE BUFFER bArtPreis FOR ArtPreis.
- DEFINE BUFFER bAktPreis FOR AktPreis.
- DEFINE BUFFER bArtStaff FOR ArtStaff.
- DEFINE BUFFER bMwstAns FOR MwstAns .
- /* 0 = Normalpreis */
- /* 1 = manueller Preis */
- /* 2 = EP+ - Preis */
- /* 3 = Kundenspezialpreis auf Artikel */
- /* 4 = Spezialrabatt auf Artikel_Rabattgruppe */
- /* 5 = Aktionspreis ohne Abweichende Preisgruppe*/
- /* 6 = Aktionspreis mit abweichender Preisgruppe*/
- /* 7 = Preis aus Summengruppe */
- EMPTY TEMP-TABLE tAufze.
- CREATE tAufze.
- htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
- htAufze:BUFFER-COPY(iohtAufze) NO-ERROR.
-
- hFeldKnr = iohtAufze:BUFFER-FIELD('Knr') NO-ERROR.
- IF VALID-HANDLE ( hFeldKnr ) THEN iKnr = hFeldKnr:BUFFER-VALUE(0).
- ELSE iKnr = 0.
- hFeldDatum = iohtAufze:BUFFER-FIELD('Datum') NO-ERROR.
- IF VALID-HANDLE ( hFeldDatum ) THEN dDatum = hFeldDatum:BUFFER-VALUE(0).
- ELSE dDatum = TODAY.
- DYNAMIC-FUNCTION('createAufkoParam':U, tAufze.Firma, tAufze.Aufnr, iKnr, dDatum ) NO-ERROR.
- FIND FIRST tParam.
- lRueckstand = DYNAMIC-FUNCTION('isMakeRueckstand':U) NO-ERROR.
- lRabAufNetto = (IF DYNAMIC-FUNCTION('getFWNettoRab':U) = 0 THEN TRUE ELSE FALSE).
- iAktionen = DYNAMIC-FUNCTION('getFWAktionsrab':U) NO-ERROR.
- iAktKuPr_Grp = DYNAMIC-FUNCTION('getFWAktionspreise':U) NO-ERROR.
- IF NOT lRueckstand THEN
- DO:
- ASSIGN
- tAufze.GGeb_Be = tAufze.GGeb_Me
- tAufze.VGeb_Be = tAufze.VGeb_Me
- tAufze.KGeb_Be = tAufze.KGeb_Me
- tAufze.MBest = tAufze.MGeli
- tAufze.GGeb_Ru = 0
- tAufze.VGeb_Ru = 0
- tAufze.KGeb_Ru = 0
- tAufze.MRuek = 0.
- END.
- ELSE
- DO:
- ASSIGN
- tAufze.GGeb_Ru = tAufze.GGeb_Be - tAufze.GGeb_Me
- tAufze.VGeb_Ru = tAufze.VGeb_Be - tAufze.VGeb_Me
- tAufze.KGeb_Ru = tAufze.KGeb_Be - tAufze.KGeb_Me
- tAufze.MRuek = tAufze.KGeb_Ru.
- END.
- iMengeKond = ABS(tAufze.MBest).
- nMengeBetr = tAufze.MGeli.
- iSpezPreis = 0.
- EMPTY TEMP-TABLE tPreis.
- /* FIND bAufko NO-LOCK OF tAufze. */
- FIND bArtst NO-LOCK
- WHERE bArtst.Firma = tAufze.Firma
- AND bArtst.Artnr = tAufze.Artnr
- AND bArtst.Inhalt = tAufze.Inhalt
- AND bArtst.Jahr = tAufze.Jahr.
- lNettoArtikel = bArtst.Netto.
- hbArtst = BUFFER bArtst:HANDLE.
- FIND bWust NO-LOCK
- WHERE bWust.CodeK = tParam.Mwst
- AND bWust.CodeA = bArtst.Mwst.
- FIND LAST bMwstAns NO-LOCK
- WHERE bMwstAns.Mwst_Cd = bWust.WuCd
- AND bMwstAns.Datum <= tParam.Kond_Datum NO-ERROR.
- ASSIGN
- tAufze.WC = bWust.CodeA
- tAufze.WuCd = bWust.Wucd
- tAufze.MWST_Inkl = bWust.Incl
- tAufze.Mwst% = (IF AVAILABLE bMwstAns THEN bMwstAns.Ansatz ELSE 0.0).
-
- FIND bWust NO-LOCK
- WHERE bWust.CodeK = tParam.Mwst
- AND bWust.CodeA = 99.
- /* -------------------------------------------------------------- */
- /* Aktionspreise auf dieser Warengruppe möglich ? */
- /* -------------------------------------------------------------- */
- FIND bAktKeine NO-LOCK
- WHERE bAktKeine.Firma = tParam.Firma
- AND bAktKeine.Knr = tParam.Knr
- AND bAktKeine.Wgr = bArtst.Wg_Grp NO-ERROR.
- IF AVAILABLE bAktKeine THEN lKeineAktion = TRUE.
- ELSE lKeineAktion = FALSE.
- /* -------------------------------------------------------------- */
- /* Zu berücksichtigende Preisgruppe ermitteln */
- /* -------------------------------------------------------------- */
- iKuPreisGrp = tParam.Preis_Grp.
- iFwPreisGrp = DYNAMIC-FUNCTION('getFwPreisgrp':U) NO-ERROR.
- lAbweich = FALSE.
- FIND bAbwPrGrp NO-LOCK
- WHERE bAbwPrGrp.Firma = tParam.Firma
- AND bAbwPrGrp.Knr = tParam.Knr
- AND bAbwPrGrp.Wg_Grp = bArtst.Wg_Grp NO-ERROR.
- IF AVAILABLE bAbwPrGrp THEN
- DO:
- iAbPreisGrp = bAbwPrGrp.Preis_Grp.
- lAbweich = TRUE.
- END.
- IF lAbweich THEN iPreisGrp = iAbPreisGrp.
- ELSE iPreisGrp = iKuPreisGrp.
- iAktGrp = (IF iAktKuPr_Grp = 0 THEN iPreisGrp ELSE tParam.Ku_Grp).
- /* -------------------------------------------------------------- */
- /* Normalpreis / Staffelpreis ermitteln */
- /* -------------------------------------------------------------- */
- nNormalPreis = -1.0.
- ii = (IF lAbweich THEN 0 ELSE 1).
- DO WHILE TRUE:
- ii = ii + 1.
- FIND LAST bArtPreis NO-LOCK
- WHERE bArtPreis.Firma = tAufze.Firma
- AND bArtPreis.Artnr = tAufze.Artnr
- AND bArtPreis.Inhalt = tAufze.Inhalt
- AND bArtPreis.Jahr = tAufze.Jahr
- AND bArtPreis.Preis_Grp = iPreisGrp
- AND bArtPreis.Aktion = FALSE
- AND bArtPreis.Ab_Datum <= tParam.Kond_Datum NO-ERROR.
- IF NOT AVAILABLE bArtPreis THEN
- DO:
- IF ii = 1 THEN
- DO:
- iPreisGrp = iKuPreisGrp.
- NEXT.
- END.
- IF ii = 2 THEN
- DO:
- iPreisGrp = iFwPreisGrp.
- NEXT.
- END.
- LEAVE.
- END.
- IF AVAILABLE bArtPreis THEN nNormalPreis = (IF bWust.Incl THEN bArtPreis.VK_Brutto ELSE bArtPreis.VK_Netto).
- FIND LAST bArtStaff NO-LOCK
- WHERE bArtStaff.Firma = bArtPreis.Firma
- AND bArtStaff.Artnr = bArtPreis.Artnr
- AND bArtStaff.Inhalt = bArtPreis.Inhalt
- AND bArtStaff.Jahr = bArtPreis.Jahr
- AND bArtStaff.Preis_Grp = bArtPreis.Preis_Grp
- AND bArtStaff.Ab_Datum = bArtPreis.Ab_Datum
- AND bArtStaff.Menge <= INTEGER(iMengeKond) NO-ERROR.
- IF NOT AVAILABLE bArtStaff THEN LEAVE.
- nNormalPreis = (IF bWust.Incl THEN bArtStaff.VK_Brutto ELSE bArtStaff.VK_Netto).
- LEAVE.
- END.
- A000:
- REPEAT ON ERROR UNDO, LEAVE:
- IF nNormalPreis < 0.0 THEN LEAVE.
- /* -------------------------------------------------------------- */
- /* Summengruppe ermitteln */
- /* -------------------------------------------------------------- */
- ASSIGN
- tAufze.Rab_Su_Grp = 0
- tAufze.Rab_Su_Art = 0
- tAufze.Auf_Sp_Proz_Betr = TRUE
- tAufze.Auf_Sp_Wert = 0
- tAufze.Auf_Sp_Rab = 0
- tAufze.Auf_Sp_Grp = 0.
- FIND bRabTab NO-LOCK
- WHERE bRabTab.Firma = tAufze.Firma
- AND bRabTab.Ku_Rab = tParam.Rab_Grp
- AND bRabTab.Art_Rab = bArtst.Rab_Grp NO-ERROR.
- IF AVAILABLE bRabTab THEN
- DO:
- IF bRabTab.Rab_Summ > 0 THEN
- DO:
- FIND FIRST bRabSumm NO-LOCK
- WHERE bRabSumm.Firma = bRabTab.Firma
- AND bRabSumm.Rab_Summ = bRabTab.Rab_Summ NO-ERROR.
- IF AVAILABLE bRabSumm THEN
- DO:
- ASSIGN
- tAufze.Rab_Su_Grp = bRabTab.Rab_Summ
- tAufze.Rab_Su_Art = bRabTab.Add_Art.
- END.
- END.
- IF bRabTab.Wert > 0 AND
- bRabTab.Rab_Art = 1 THEN
- DO:
- CREATE tPreis.
- ASSIGN
- tPreis.iArt = 7
- tPreis.Preis = nNormalPreis
- tPreis.Rab_Proz = (IF bRabTab.Proz_Betr THEN bRabTab.Wert ELSE 0)
- tPreis.Rab_Wert = (IF bRabTab.Proz_Betr THEN 0 ELSE bRabTab.Wert)
- tPreis.Spe_Proz = 0
- tPreis.Spe_Wert = 0
- tPreis.Zus_Proz = (IF tAufze.Zus_Art = 1 THEN tAufze.Zus_Wert ELSE 0)
- tPreis.Zus_Wert = (IF tAufze.Zus_Art = 2 THEN tAufze.Zus_Wert ELSE 0).
- END.
- END.
-
- /* -------------------------------------------------------------- */
- /* Manuelle Preiseingabe */
- /* -------------------------------------------------------------- */
- IF tAufze.Preis_Mut THEN
- DO:
- DYNAMIC-FUNCTION('createManuellerPreis':U) NO-ERROR.
- LEAVE A000.
- END.
-
- /* -------------------------------------------------------------- */
- /* Kunde hat Ep + Zuschlag als Preis */
- /* -------------------------------------------------------------- */
- IF tAufze.Rab_Art = 3 THEN
- DO:
- DYNAMIC-FUNCTION('createEpPreis':U, hbArtst ) NO-ERROR.
- LEAVE A000.
- END.
-
- /* -------------------------------------------------------------- */
- /* Normalpreis / Staffelpreis */
- /* -------------------------------------------------------------- */
- CREATE tPreis.
- ASSIGN
- tPreis.iArt = 0
- tPreis.Preis = nNormalPreis
- tPreis.Rab_Proz = 0
- tPreis.Rab_Wert = 0
- tPreis.Spe_Proz = 0
- tPreis.Spe_Wert = 0
- tPreis.Zus_Proz = (IF tAufze.Zus_Art = 1 THEN tAufze.Zus_Wert ELSE 0)
- tPreis.Zus_Wert = (IF tAufze.Zus_Art = 2 THEN tAufze.Zus_Wert ELSE 0).
- IF nNormalPreis = 0 THEN LEAVE.
-
- CASE tParam.Zei_Rab_Art:
- WHEN 1 THEN
- ASSIGN
- tPreis.Rab_Proz = + tParam.Zei_Rab_Wert.
- WHEN 2 THEN
- ASSIGN
- tPreis.Rab_Wert = + tParam.Zei_Rab_Wert.
- WHEN 3 THEN
- ASSIGN
- tPreis.Rab_Proz = - tParam.Zei_Rab_Wert.
- END CASE.
-
- /* -------------------------------------------------------------- */
- /* Kundenspezialpreis auf Artikel */
- /* -------------------------------------------------------------- */
- DO WHILE TRUE:
- FIND LAST bSpezPrei NO-LOCK
- WHERE bSpezPrei.Firma = tAufze.Firma
- AND bSpezPrei.Knr = tParam.Knr
- AND bSpezPrei.Artnr = tAufze.Artnr
- AND bSpezPrei.Inhalt = tAufze.Inhalt
- AND bSpezPrei.Jahr = tAufze.Jahr
- AND bSpezPrei.Menge <= iMengeKond
- AND bSpezPrei.Ab_Datum <= tParam.Kond_Datum
- AND bSpezPrei.Bis_Datum >= tParam.Kond_Datum NO-ERROR.
- IF NOT AVAILABLE bSpezPrei THEN LEAVE.
-
- IF lNettoArtikel AND
- NOT bSpezPrei.lNetto AND
- bSpezPrei.Proz_Betr THEN
- DO:
- RELEASE bSpezPrei.
- LEAVE.
- END.
- CREATE tPreis.
- ASSIGN
- tPreis.iArt = 3
- tPreis.Preis = 0
- tPreis.Rab_Proz = 0
- tPreis.Rab_Wert = 0
- tPreis.Spe_Proz = 0
- tPreis.Spe_Wert = 0
- tPreis.Zus_Proz = (IF tAufze.Zus_Art = 1 THEN tAufze.Zus_Wert ELSE 0)
- tPreis.Zus_Wert = (IF tAufze.Zus_Art = 2 THEN tAufze.Zus_Wert ELSE 0).
- IF bSpezPrei.Proz_Betr THEN ASSIGN tPreis.Rab_Proz = bSpezPrei.Wert
- tPreis.Preis = nNormalPreis.
- ELSE ASSIGN tPreis.Preis = bSpezPrei.Wert
- tPreis.Rab_Proz = 0.
- IF NOT lSummGrpSpPr THEN
- DO:
- ASSIGN
- tAufze.Rab_Su_Grp = 0
- tAufze.Rab_Su_Art = 0.
- END.
- ASSIGN
- iSpezPreis = 1
- lAktAufSpezPr = bSpezPrei.lAktion.
- RELEASE bSpezPrei.
- LEAVE.
- END.
-
- /* -------------------------------------------------------------- */
- /* Kundenspezialpreis auf Artikel-Rabattgruppe (Zeilenrabatt) */
- /* Nur wenn nicht schon Spezialpreis auf Artikel */
- /* -------------------------------------------------------------- */
- DO WHILE iSpezPreis = 0 : /* Kein Spezialpreis auf Artikel */
- ASSIGN
- tAufze.Auf_Sp_Grp = 0
- tAufze.Auf_Sp_Rab = 0
- tAufze.Auf_Sp_Wert = 0.
-
- FIND FIRST bSpPrRab NO-LOCK
- WHERE bSpPrRab.Firma = tAufze.Firma
- AND bSpPrRab.Knr = tParam.Knr
- AND bSpPrRab.Rab_Grp = bArtst.Rab_Grp
- AND bSpPrRab.Ab_Datum <= tParam.Kond_Datum
- AND bSpPrRab.Bis_Datum >= tParam.Kond_Datum NO-ERROR.
- IF NOT AVAILABLE bSpPrRab THEN LEAVE.
- FIND LAST bSpPrRab NO-LOCK
- WHERE bSpPrRab.Firma = tAufze.Firma
- AND bSpPrRab.Knr = tParam.Knr
- AND bSpPrRab.Rab_Grp = bArtst.Rab_Grp
- AND bSpPrRab.Menge <= iMengeKond
- AND bSpPrRab.Ab_Datum <= tParam.Kond_Datum
- AND bSpPrRab.Bis_Datum >= tParam.Kond_Datum NO-ERROR.
- IF NOT AVAILABLE bSpPrRab THEN LEAVE.
- IF lNettoArtikel AND
- NOT bSpPrRab.lNetto THEN LEAVE.
-
- ASSIGN
- tAufze.Auf_Sp_Grp = bSpPrRab.Rab_Grp.
- CREATE tPreis.
- ASSIGN
- tPreis.iArt = 4
- tPreis.Preis = nNormalPreis
- tPreis.Rab_Proz = 0
- tPreis.Rab_Wert = 0
- tPreis.Spe_Proz = 0
- tPreis.Spe_Wert = 0
- tPreis.Zus_Proz = (IF tAufze.Zus_Art = 1 THEN tAufze.Zus_Wert ELSE 0)
- tPreis.Zus_Wert = (IF tAufze.Zus_Art = 2 THEN tAufze.Zus_Wert ELSE 0).
- IF bSpPrRab.Proz_Betr THEN ASSIGN tPreis.Spe_Proz = bSpPrRab.Wert.
- ELSE tPreis.Spe_Wert = bSpPrRab.Wert.
-
- IF NOT lSummGrpSpPr THEN
- DO:
- ASSIGN
- tAufze.Rab_Su_Grp = 0
- tAufze.Rab_Su_Art = 0.
- END.
- ASSIGN
- iSpezPreis = 2
- lAktAufSpezPr = bSpPrRab.lAktion.
- RELEASE bSpPrRab.
- LEAVE.
- END.
- DO WHILE TRUE:
- /* -------------------------------------------------------------- */
- /* Aktionspreise */
- /* -------------------------------------------------------------- */
- IF lKeineAktion THEN LEAVE. /* Auf aktuelle Wgr gibt es keine Aktionen */
- IF iSpezPreis = 0 THEN lAktAufSpezPr = TRUE. /* Kein Spezialpreis = immer Aktionen */
- IF iAktionen = 3 THEN lAktAufSpezPr = TRUE. /* 3 = es gibt immer Aktionspreis */
- IF iAktionen = 0 AND /* Auf Spezialpreis nie Aktionen ausser bei */
- NOT lAktAufSpezPr THEN LEAVE. /* Beim Kunden speziell zugelassen */
- IF iSpezPreis = 1 AND /* Aktionen auf Artikel-Spezialpreise */
- iAktionen = 1 THEN lAktAufSpezPr = TRUE.
- IF iSpezPreis = 2 AND /* Aktionen auf Artikel-Rabattgruppe */
- iAktionen = 2 THEN lAktAufSpezPr = TRUE.
- IF NOT lAktAufSpezPr THEN LEAVE.
-
- hFeld = htAufze:BUFFER-FIELD('lAktion') NO-ERROR.
- IF VALID-HANDLE(hFeld) THEN
- DO:
- IF hFeld:BUFFER-VALUE BEGINS 'n' THEN
- DO:
- lAktion = FALSE.
- LEAVE.
- END.
- END.
- lAktion = DYNAMIC-FUNCTION('createAktionsPreis':U, iAktGrp, lAbweich, iAktKuPr_Grp, iKuPreisGrp ) NO-ERROR.
- IF lAktion THEN
- DO:
- FIND FIRST tPreis
- WHERE tPreis.iArt >= 5
- AND tPreis.iArt <= 6.
- cAktiontext = tPreis.cAkt_Text.
- END.
- LEAVE.
- END.
-
- LEAVE A000.
- END.
- ii = DYNAMIC-FUNCTION('setAufzePreis':U, iSpezPreis, lNettoArtikel, lRabAufNetto) NO-ERROR.
- FIND FIRST tAufze.
- iohtAufze:BUFFER-COPY(htAufze).
- /* RELEASE bAufko . */
- RELEASE bArtst .
- RELEASE bAbwPrGrp.
- RELEASE bRabTab .
- RELEASE bRabSumm .
- RELEASE bSpezPrei.
- RELEASE bSpPrRab .
- RELEASE bAktKeine.
- RELEASE bWust .
- RELEASE bArtPreis.
- RELEASE bAktPreis.
- RELEASE bArtStaff.
- RELEASE bMwstAns .
- RETURN ii.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getSummGrpSpPr) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getSummGrpSpPr Procedure
- FUNCTION getSummGrpSpPr RETURNS LOGICAL
- ( ipFirma AS CHARACTER ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE lRetVal AS LOG INIT FALSE NO-UNDO.
- FIND Steuer NO-LOCK
- WHERE Steuer.Firma = ipFirma NO-ERROR.
- IF NOT AVAILABLE Steuer THEN RETURN lRetVal.
-
- lRetVal = (IF Steuer.Fwi24 = 0 THEN FALSE ELSE TRUE).
- RELEASE Steuer.
- RETURN lRetVal.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-GET_ABH_AUFNR) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION GET_ABH_AUFNR Procedure
- FUNCTION GET_ABH_AUFNR RETURNS INTEGER
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- RETURN AbhAufnr.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getVerbuchtTotale) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getVerbuchtTotale Procedure
- FUNCTION getVerbuchtTotale RETURNS CHARACTER
- ( ipcFirma AS CHARACTER, ipiAufnr AS INTEGER, OUTPUT opnTotal AS DECIMAL EXTENT 15 ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE lJa AS LOG NO-UNDO.
- DEFINE VARIABLE VWpfl AS DECIMAL DECIMALS 4 EXTENT 12 NO-UNDO.
- DEFINE VARIABLE VWust AS DECIMAL DECIMALS 4 EXTENT 12 NO-UNDO.
- DEFINE VARIABLE NWpfl AS DECIMAL DECIMALS 4 EXTENT 12 NO-UNDO.
- DEFINE VARIABLE TWpfl AS DECIMAL DECIMALS 4 EXTENT 12 NO-UNDO.
- DEFINE VARIABLE VFakt AS INTEGER EXTENT 12 NO-UNDO.
- DEFINE VARIABLE NFakt AS INTEGER NO-UNDO.
- DEFINE VARIABLE VTotWu AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VTotNK AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VResNK AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VMaxWC AS INTEGER NO-UNDO.
- DEFINE VARIABLE iRecid AS RECID NO-UNDO.
- DEFINE VARIABLE VGewicht AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE zz AS INTEGER NO-UNDO.
- DEFINE VARIABLE Wert AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VSkonto AS DECIMAL INIT 0 NO-UNDO.
- DEFINE VARIABLE Rundbetr AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE nMenge AS DECIMAL NO-UNDO.
- DEFINE VARIABLE cResult AS CHARACTER NO-UNDO.
- DEFINE VARIABLE dMwstDat AS DATE NO-UNDO.
- DEFINE VARIABLE nKredLimite AS DECIMAL INIT 0.00 NO-UNDO.
- DEFINE VARIABLE nAufTotal AS DECIMAL INIT 0.00 NO-UNDO.
- DEFINE VARIABLE htSavze AS HANDLE NO-UNDO.
- DEFINE BUFFER bSavze FOR Savze.
- DEFINE BUFFER FDebst FOR Debst.
- /* ------------------------------------------------------------------------- */
- /* opnTotal[01] = Nettowarenwert */
- /* opnTotal[02] = Skontoberechtigter Betrag */
- /* opnTotal[03] = Nebenkosten */
- /* opnTotal[04] = Transport */
- /* opnTotal[05] = Porto */
- /* opnTotal[06] = Verpackung */
- /* opnTotal[07] = Total Mehrwertsteuerpflichtig */
- /* opnTotal[08] = Total Mehrwertsteuerfrei */
- /* opnTotal[09] = Total Mehrwertsteuer */
- /* opnTotal[10] = Total Auftrag */
- /* opnTotal[11] = Total Gebinde */
- /* opnTotal[12] = Total Gebühren (Receycling) */
- /* ------------------------------------------------------------------------- */
- REPEAT TRANSACTION:
- opnTotal = 0.
- VWpfl = 0.
- VWust = 0.
- VTotWu = 0.
- VTotNK = 0.
- NWpfl = 0. /* Anteil Nebenkosten */
- TWpfl = 0. /* Wpfl + Nebenkosten */
- VGewicht = 0.
- DISABLE TRIGGERS FOR LOAD OF Savko.
- FIND Steuer NO-LOCK USE-INDEX Steuer-k1
- WHERE Steuer.Firma = ipcFirma.
- FIND Savko EXCLUSIVE-LOCK
- WHERE Savko.Firma = ipcFirma
- AND Savko.Aufnr = ipiAufnr NO-WAIT NO-ERROR.
- IF LOCKED Savko THEN RETURN 'LOCKED'.
- IF NOT AVAILABLE Savko THEN RETURN 'FEHLEND'.
- iRecid = RECID(Savko).
- dMwstDat = (IF Savko.Fak_Datum <> ? THEN Savko.Fak_Datum ELSE Savko.Kond_Datum).
- IF dMwstDat = ? THEN dMwstDat = Savko.Lief_Datum.
- IF dMwstDat = ? THEN dMwstDat = TODAY.
-
- FIND FDebst NO-LOCK
- WHERE FDebst.Firma = Savko.Firma
- AND FDebst.Knr = Savko.Fak_Knr.
- nKredLimite = FDebst.Kred_Lim.
- nAufTotal = FDebst.Saldo.
- opnTotal[04] = Savko.Transp.
- opnTotal[05] = Savko.Porto.
- opnTotal[06] = Savko.Verpack.
- opnTotal[03] = opnTotal[04] + opnTotal[05] + opnTotal[06].
- FIND Wust USE-INDEX Wust-k1
- WHERE Wust.CodeK = Savko.MWST
- AND Wust.CodeA = Steuer.Fwi03 NO-LOCK.
- zz = Wust.WuCd.
- VWpfl[zz] = VWpfl[zz] + Savko.Transp.
- FIND Wust USE-INDEX Wust-k1
- WHERE Wust.CodeK = Savko.MWST
- AND Wust.CodeA = Steuer.Fwi04 NO-LOCK.
- zz = Wust.WuCd.
- VWpfl[zz] = VWpfl[zz] + Savko.Porto.
- FIND Wust USE-INDEX Wust-k1
- WHERE Wust.CodeK = Savko.MWST
- AND Wust.CodeA = Steuer.Fwi05 NO-LOCK.
- zz = Wust.WuCd.
- VWpfl[zz] = VWpfl[zz] + Savko.Verpack.
- zz = 0.
- lJa = FALSE.
- EMPTY TEMP-TABLE tSavze.
- FOR EACH Savze NO-LOCK
- WHERE Savze.Firma = Savko.Firma
- AND Savze.Aufnr = Savko.Aufnr
- AND Savze.Artnr > 0 :
- CREATE tSavze.
- BUFFER-COPY Savze TO tSavze.
- END.
- FOR EACH tSavze:
- zz = tSavze.WuCd.
- IF Savko.Auf_Sta < 2 THEN nMenge = tSavze.MBest.
- ELSE nMenge = tSavze.MGeli.
- nMenge = tSavze.MGeli.
- DO WHILE TRUE:
- ASSIGN
- tSavze.Auf_Rab = 0
- tSavze.Abh_Rab = 0.
- IF tSavze.Rab_Su_Grp = 0 THEN LEAVE.
- IF tSavze.Rab_Su_Art = 0 THEN LEAVE.
- FIND SavRabSu NO-LOCK
- WHERE SavRabSu.Firma = tSavze.Firma
- AND SavRabSu.Aufnr = tSavze.Aufnr
- AND SavRabSu.Rab_Summ = tSavze.Rab_Su_Grp
- AND SavRabSu.MWST_Cd = tSavze.WuCd.
- Wert = SavRabSu.F_Wert.
- DO WHILE Wert <> 0:
- IF SavRabSu.F_Proz_Betr THEN
- DO:
- tSavze.Auf_Rab = tSavze.Net_Betr * SavRabSu.F_Wert / 100.
- LEAVE.
- END.
- IF SavRabSu.F_Art = 0 THEN
- DO:
- tSavze.Auf_Rab = nMenge * SavRabSu.F_Wert.
- LEAVE.
- END.
- IF SavRabSu.F_Art = 2 THEN
- DO:
- tSavze.Auf_Rab = tSavze.Liter * SavRabSu.F_Wert / 100.
- LEAVE.
- END.
- LEAVE.
- END.
- IF Savko.Abhol = FALSE THEN Wert = 0.
- ELSE Wert = SavRabSu.A_Wert.
- DO WHILE Wert <> 0:
- IF SavRabSu.A_Proz_Betr THEN
- DO:
- tSavze.Abh_Rab = tSavze.Net_Betr * SavRabSu.A_Wert / 100.
- LEAVE.
- END.
- IF SavRabSu.A_Art = 0 THEN
- DO:
- tSavze.Abh_Rab = nMenge * SavRabSu.A_Wert.
- LEAVE.
- END.
- IF SavRabSu.A_Art = 2 THEN
- DO:
- tSavze.Abh_Rab = tSavze.Liter * SavRabSu.A_Wert / 100.
- LEAVE.
- END.
- LEAVE.
- END.
- DO WHILE TRUE:
- IF tSavze.Abh_Rab = 0 AND
- tSavze.Auf_Rab = 0 THEN LEAVE.
- FIND FIRST Wust NO-LOCK USE-INDEX Wust-k2
- WHERE Wust.WuCd = zz.
- IF Wust.Incl = TRUE THEN
- DO:
- Rundbetr = tSavze.Abh_Rab.
- RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
- tSavze.Abh_Rab = Rundbetr.
- Rundbetr = tSavze.Auf_Rab.
- RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
- tSavze.Auf_Rab = Rundbetr.
- END.
- LEAVE.
- END.
- RELEASE SavRabSu.
- LEAVE.
- END.
- VWpfl [zz] = VWpfl [zz] + tSavze.Net_Betr
- - tSavze.Auf_Rab
- - tSavze.Abh_Rab
- - tSavze.Auf_Sp_Rab.
- opnTotal[01] = opnTotal[01] + tSavze.Net_Betr
- - tSavze.Auf_Rab
- - tSavze.Abh_Rab
- - tSavze.Auf_Sp_Rab.
- IF tSavze.Sk_Ber THEN
- DO:
- opnTotal[02] = opnTotal[02] + tSavze.Net_Betr
- - tSavze.Auf_Rab
- - tSavze.Abh_Rab
- - tSavze.Auf_Sp_Rab.
- END.
- VGewicht = VGewicht + tSavze.Gewicht.
- END.
- IF FDebst.Geb_Rg THEN
- DO:
- FOR EACH SavGKon NO-LOCK USE-INDEX SavGKon-k1
- WHERE SavGKon.Firma = Savko.Firma
- AND SavGKon.Aufnr = Savko.Aufnr :
- zz = SavGKon.MWSt_Cd.
- VWpfl[zz] = VWpfl[zz] + SavGKon.Betrag.
- IF SavGKon.Gebuehr = 0 THEN opnTotal[11] = opnTotal[11] + SavGKon.Betrag.
- ELSE opnTotal[12] = opnTotal[12] + SavGKon.Betrag.
- END.
- END.
- ELSE
- DO:
- FOR EACH SavGKon NO-LOCK USE-INDEX SavGKon-k1
- WHERE SavGKon.Firma = Savko.Firma
- AND SavGKon.Aufnr = Savko.Aufnr
- AND SavGKon.Gebuehr <> 0.0
- AND SavGKon.Betrag <> 0.0 :
- zz = SavGKon.MWSt_Cd.
- VWpfl[zz] = VWpfl[zz] + SavGKon.Betrag.
- opnTotal[12] = opnTotal[12] + SavGKon.Betrag.
- END.
- END.
- VMaxWC = 0.
- VTotNK = VWpfl[12].
- VResNK = VWpfl[12].
- DO zz = 1 TO 11:
- IF VWpfl[zz] < 0 THEN VFakt[zz] = -1.
- ELSE VFakt[zz] = +1.
- VTotWu = VTotWu + (VWpfl[zz] * VFakt[zz]).
- IF VWpfl[zz] <> 0 THEN VMaxWC = zz.
- END.
- NFakt = +1.
- IF VTotNK < 0 THEN
- DO:
- VTotNK = - VTotNK.
- VResNK = - VResNK.
- NFakt = -1.
- END.
- DO zz = 1 TO 11:
- IF VWpfl[zz] = 0 THEN NEXT.
- IF zz = VMaxWC THEN
- DO:
- NWpfl[zz] = VResNK * NFakt.
- TWpfl[zz] = VWpfl[zz] + (VResNK * NFakt).
- LEAVE.
- END.
- Rundbetr = (((VWpfl[zz] * 100 * VFakt[zz]) / VTotWu) * VTotNK) / 100.
- NWpfl[zz] = Rundbetr * NFakt.
- TWpfl[zz] = VWpfl[zz] + (Rundbetr * NFakt).
- VResNK = VResNK - Rundbetr.
- END.
- DO zz = 1 TO 10:
- IF TWpfl[zz] = 0 THEN NEXT.
- opnTotal[07] = opnTotal[07] + TWpfl[zz].
- opnTotal[10] = opnTotal[10] + TWpfl[zz].
- FIND FIRST Wust USE-INDEX Wust-k2
- WHERE Wust.WuCd = zz NO-LOCK.
- IF Wust.Incl THEN NEXT.
- FIND LAST MWSTAns NO-LOCK USE-INDEX MWSTAns-k1
- WHERE MWSTAns.MWST_Cd = Wust.WuCd
- AND MWSTAns.Datum <= dMwstDat .
- Rundbetr = TWpfl[zz] * MWSTAns.Ansatz / 100.
- VWust [zz] = Rundbetr.
- opnTotal[09] = opnTotal[09] + Rundbetr.
- opnTotal[10] = opnTotal[10] + Rundbetr.
- END.
- opnTotal[08] = opnTotal[08] + TWpfl[11].
- opnTotal[10] = opnTotal[10] + TWpfl[11].
- Rundbetr = opnTotal[10].
- RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
- opnTotal[10] = Rundbetr.
- ASSIGN
- nAufTotal = nAufTotal + Savko.Auf_Tot.
-
- LEAVE.
- END.
- RELEASE Savko.
- RELEASE Savze.
- RELEASE SavGKon.
- RELEASE SavSpRab.
- RELEASE SavRabSu.
- RELEASE Steuer.
- RELEASE Wust.
- RELEASE FDebst.
-
- END FUNCTION.
-
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-isFestAuftrag) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION isFestAuftrag Procedure
- FUNCTION isFestAuftrag RETURNS LOGICAL
- ( ipFirma AS CHARACTER, ipFak_Art AS INTEGER ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- FIND FIRST Tabel NO-LOCK
- WHERE Tabel.Firma = ipFirma
- AND Tabel.RecArt = 'FAKART'
- AND Tabel.CodeI = ipFak_Art
- AND Tabel.CodeC = '' NO-ERROR.
- IF NOT AVAILABLE Tabel THEN RETURN FALSE.
- RETURN Tabel.Flag_1.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-setAufkoDruckFlag) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setAufkoDruckFlag Procedure
- FUNCTION setAufkoDruckFlag RETURNS LOGICAL
- ( ipFirma AS CHARACTER, ipAufnr AS INTEGER, ipFlag AS LOG ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE iSammNr AS INTEGER NO-UNDO.
- DEFINE BUFFER bAufko FOR Aufko.
- REPEAT TRANSACTION:
- FIND bAufko
- WHERE bAufko.Firma = ipFirma
- AND bAufko.Aufnr = ipAufnr.
- bAufko.Gedruckt = ipFlag.
- IF bAufko.Gedruckt = FALSE THEN
- DO:
- IF bAufko.Samm_Nr > 0 THEN
- DO:
- iSammnr = bAufko.Samm_Nr.
- FOR EACH bAufko
- WHERE bAufko.Firma = ipFirma
- AND bAufko.Samm_Nr = iSammNr
- AND bAufko.Gedruckt = TRUE:
- bAufko.Gedruckt = FALSE.
- END.
- END.
- END.
- RELEASE bAufko.
- LEAVE.
- END.
- RETURN FALSE. /* Function return value. */
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-setAufzePreis) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setAufzePreis Procedure
- FUNCTION setAufzePreis RETURNS INTEGER
- ( ipiSpezPreis AS INTEGER, iplNettoArtikel AS LOG, iplRabAufNetto AS LOG ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE Rundbetr AS DECIMAL DECIMALS 4 NO-UNDO.
- FIND FIRST tAufze.
-
- IF ipiSpezPreis > 0 THEN
- DO:
- FOR EACH tPreis:
- IF tPreis.iArt < 3 OR
- tPreis.iArt > 6 THEN DELETE tPreis.
- END.
- END.
-
- /* Kein Rabatt auf NettoArtikel ausser mit lRabAufNetto zugelassen */
- /* oder explizit auf SpezialRabtt wieder zugelassen */
- IF iplNettoArtikel AND
- NOT iplRabAufNetto THEN
- DO:
- FOR EACH tPreis
- WHERE tPreis.iArt <> 2 /* Ep + %-Zuschlag */
- AND tPreis.iArt <> 3: /* Kundenspezialpreis auf Artikel */
- ASSIGN
- tPreis.Rab_Proz = 0
- tPreis.Rab_Wert = 0.
- END.
- END.
- FOR EACH tPreis BY tPreis.iArt:
- tPreis.Netto = tPreis.Preis.
- IF tPreis.Rab_Proz <> 0 THEN tPreis.Netto = tPreis.Preis * (100 - tPreis.Rab_Proz) / 100.
- IF tPreis.Rab_Wert <> 0 THEN tPreis.Netto = tPreis.Preis - tPreis.Rab_Wert.
- IF tPreis.Spe_Proz <> 0 THEN tPreis.Netto = tPreis.Preis * (100 - tPreis.Spe_Proz) / 100.
- IF tPreis.Spe_Wert <> 0 THEN tPreis.Netto = tPreis.Preis - tPreis.Spe_Wert.
- IF tPreis.Zus_Proz <> 0 THEN tPreis.Netto = tPreis.Netto + (tPreis.Preis * tPreis.Zus_Proz / 100).
- IF tPreis.Zus_Wert <> 0 THEN tPreis.Netto = tPreis.Netto + tPreis.Zus_Wert.
- END.
- FIND FIRST tPreis USE-INDEX tPreis-k1
- WHERE tPreis.Netto >= 0 NO-ERROR.
- DO WHILE TRUE:
- IF NOT AVAILABLE tPreis THEN
- DO:
- ASSIGN
- tAufze.Preis = 0
- tAufze.Rab_Art = 0
- tAufze.Rab_Wert = 0
- tAufze.Rab_Betr = 0
- tAufze.Bru_Betr = 0
- tAufze.Net_Betr = 0.
- LEAVE.
- END.
- ASSIGN
- tAufze.Preis = tPreis.Preis
- tAufze.Aktion = (IF tPreis.cAkt_Text = '' THEN FALSE ELSE TRUE)
- tAufze.Aktion_Text = tPreis.cAkt_Text
- tAufze.Rab_Art = 0
- tAufze.Zus_Art = 0
- tAufze.Rab_Wert = 0
- tAufze.Zus_Wert = 0
- tAufze.Rab_Betr = 0
- tAufze.Zus_Betr = 0.
- IF tPreis.Rab_Proz > 0 THEN
- ASSIGN
- tAufze.Rab_Art = 1
- tAufze.Rab_Wert = + tPreis.Rab_Proz.
- IF tPreis.Rab_Proz < 0 THEN
- ASSIGN
- tAufze.Rab_Art = 3
- tAufze.Rab_Wert = - tPreis.Rab_Proz.
- IF tPreis.Rab_Wert > 0 THEN
- ASSIGN
- tAufze.Rab_Art = 2
- tAufze.Rab_Wert = + tPreis.Rab_Wert.
- IF tPreis.Spe_Proz > 0 THEN
- ASSIGN
- tAufze.Rab_Art = 1
- tAufze.Rab_Wert = + tPreis.Spe_Proz.
- IF tPreis.Spe_Proz < 0 THEN
- ASSIGN
- tAufze.Rab_Art = 1
- tAufze.Rab_Wert = + tPreis.Spe_Proz.
- IF tPreis.Spe_Wert > 0 THEN
- ASSIGN
- tAufze.Rab_Art = 2
- tAufze.Rab_Wert = + tPreis.Spe_Wert.
- IF tPreis.Zus_Proz > 0 THEN
- ASSIGN
- tAufze.Zus_Art = 1
- tAufze.Zus_Wert = + tPreis.Zus_Proz.
- IF tPreis.Zus_Proz < 0 THEN
- ASSIGN
- tAufze.Zus_Art = 1
- tAufze.Zus_Wert = + tPreis.Zus_Proz.
- IF tPreis.Zus_Wert > 0 THEN
- ASSIGN
- tAufze.Zus_Art = 2
- tAufze.Zus_Wert = + tPreis.Zus_Wert.
- IF tPreis.iArt = 2 THEN
- ASSIGN
- tAufze.Rab_Art = 3. /* Ep-Plus */
- LEAVE.
- END.
-
- IF tAufze.Rab_Art = 1 THEN tAufze.Rab_Betr = tAufze.Preis * tAufze.Rab_Wert / 100.
- IF tAufze.Rab_Art = 2 THEN tAufze.Rab_Betr = tAufze.Rab_Wert .
- IF tAufze.Rab_Art = 3 THEN
- DO:
- IF lEpProzBetr THEN tAufze.Rab_Betr = tAufze.Preis * tAufze.Rab_Wert / 100 * -1.
- ELSE tAufze.Rab_Betr = tAufze.Rab_Wert.
- END.
- IF tAufze.Zus_Art = 1 THEN tAufze.Zus_Betr = tAufze.Preis * tAufze.Zus_Wert / 100.
- IF tAufze.Zus_Art = 2 THEN tAufze.Zus_Betr = tAufze.Zus_Wert .
-
- ASSIGN
- tAufze.Rab_Betr = tAufze.Rab_Betr * tAufze.MGeli
- tAufze.Zus_Betr = tAufze.Zus_Betr * tAufze.MGeli.
-
- tAufze.Bru_Betr = tAufze.Preis * tAufze.MGeli.
- tAufze.Net_Betr = tAufze.Bru_Betr - tAufze.Rab_Betr + tAufze.Zus_Betr.
-
- IF tAufze.Mwst_Inkl THEN
- DO:
- Rundbetr = tAufze.Net_Betr.
- RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ).
- tAufze.Net_Betr = Rundbetr.
- END.
-
- RETURN (IF AVAILABLE tPreis THEN tPreis.iArt ELSE -1).
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-SET_ABH_AUFNR) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION SET_ABH_AUFNR Procedure
- FUNCTION SET_ABH_AUFNR RETURNS LOGICAL
- ( ipAufnr AS INTEGER ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- AbhAufnr = ipAufnr.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-_getPreis) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION _getPreis Procedure
- FUNCTION _getPreis RETURNS LOGICAL
- ( ipKnr AS INTEGER, ipDatum AS DATE, INPUT-OUTPUT iohAufze AS HANDLE ) :
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Parameters: <none> */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
- DEFINE VARIABLE Firma AS CHARACTER NO-UNDO.
- DEFINE VARIABLE VPreis AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VRab_Betr AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VRab_Proz AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VZus_Betr AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VZus_Proz AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE Rundbetr AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VAktion AS LOG NO-UNDO.
- DEFINE VARIABLE VAktion_Text AS CHARACTER NO-UNDO.
- DEFINE VARIABLE VP_Grp AS INTEGER NO-UNDO.
- DEFINE VARIABLE VGrp AS INTEGER NO-UNDO.
- DEFINE VARIABLE NettoRab AS INTEGER NO-UNDO.
- DEFINE VARIABLE Aktionen AS INTEGER NO-UNDO.
- DEFINE VARIABLE PosMenge AS INTEGER NO-UNDO.
- DEFINE VARIABLE FAbweich AS LOG NO-UNDO.
- DEFINE VARIABLE KeineAkt AS LOG NO-UNDO.
- DEFINE VARIABLE FSpezPreis AS INTEGER NO-UNDO.
- /* 0 = Kein Spezialpreis */
- /* 1 = Spezialpreis auf Artikel */
- /* 2 = Spezialpreis auf Rabattgruppe */
- DEFINE VARIABLE FwPreisGrp AS INTEGER NO-UNDO.
- EMPTY TEMP-TABLE tAufze.
- CREATE tAufze.
- hBuffer = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE.
- hBuffer:BUFFER-COPY(iohAufze).
-
- Firma = tAufze.Firma.
- FIND Steuer NO-LOCK
- WHERE Steuer.Firma = Firma NO-ERROR.
- ASSIGN
- FwPreisGrp = Steuer.Fwi14
- Aktionen = Steuer.Fwi20
- NettoRab = Steuer.Fwi15
- PosMenge = ABS(tAufze.MBest)
- .
-
- FIND Debst NO-LOCK
- WHERE Debst.Firma = Firma
- AND Debst.Knr = ipKnr NO-ERROR.
- IF NOT AVAILABLE Debst THEN RETURN FALSE.
- ASSIGN
- tAufze.Rab_Art = Debst.Zei_Rab_Art
- tAufze.Rab_Wert = Debst.Zei_Rab_Wert
- tAufze.Rab_Betr = 0
- tAufze.Zus_Art = Debst.Zuschl_Art
- tAufze.Zus_Wert = Debst.Zuschl_Wert
- tAufze.Zus_Betr = 0
- tAufze.Bru_Betr = 0
- tAufze.Net_Betr = 0.
-
- FIND Artst NO-LOCK
- WHERE Artst.Firma = Firma
- AND Artst.Artnr = tAufze.Artnr
- AND Artst.Inhalt = tAufze.Inhalt
- AND Artst.Jahr = tAufze.Jahr NO-ERROR.
- IF NOT AVAILABLE Artst THEN RETURN FALSE.
-
- FIND Wust NO-LOCK USE-INDEX Wust-k1
- WHERE Wust.CodeK = Debst.MWST
- AND Wust.CodeA = Artst.MWST NO-ERROR.
- tAufze.WuCd = Wust.WuCd.
- FIND FIRST Wust NO-LOCK USE-INDEX Wust-k2
- WHERE Wust.WuCd = tAufze.WuCd NO-ERROR.
- FIND LAST MWSTAns NO-LOCK USE-INDEX MWSTAns-k1
- WHERE MWSTAns.MWST_Cd = tAufze.WuCd
- AND MWSTAns.Datum <= ipDatum NO-ERROR.
- tAufze.MWST% = MWSTAns.Ansatz.
- tAufze.MWST_Inkl = Wust.Incl.
- VPreis = 0.
- VRab_Betr = 0.
- VRab_Proz = 0.
- VAktion = FALSE.
- VAktion_Text = ''.
- VP_Grp = 0.
- FAbweich = FALSE.
- PosMenge = ABS(tAufze.MBest).
-
- FIND AbwPrGrp USE-INDEX AbwPrGrp-k1
- WHERE AbwPrGrp.Firma = Firma
- AND AbwPrGrp.Knr = ipKnr
- AND AbwPrGrp.Wg_Grp = Artst.Wg_Grp NO-LOCK NO-ERROR.
- IF AVAILABLE AbwPrGrp THEN
- DO:
- VP_Grp = AbwPrGrp.Preis_Grp.
- FAbweich = TRUE.
- END.
- ELSE VP_Grp = Debst.Preis_Grp.
-
- IF Steuer.AktionsPreise = 0 THEN VGrp = VP_Grp.
- IF Steuer.AktionsPreise = 1 THEN VGrp = Debst.Ku_Grp.
-
- /* -------------------------------------------------------------- */
- /* Aktionspreise auf dieser Warengruppe möglich ? */
- /* -------------------------------------------------------------- */
- FIND AktKeine NO-LOCK USE-INDEX AktKeine-k1
- WHERE AktKeine.Firma = Firma
- AND AktKeine.Knr = ipKnr
- AND AktKeine.Wgr = Artst.Wg_Grp NO-ERROR.
- IF AVAILABLE AktKeine THEN KeineAkt = TRUE.
- ELSE KeineAkt = FALSE.
- DO WHILE TRUE:
- ASSIGN
- tAufze.Rab_Su_Grp = 0
- tAufze.Rab_Su_Art = 0.
-
- FIND RabTab NO-LOCK USE-INDEX RabTab-k1
- WHERE RabTab.Firma = Firma
- AND RabTab.Ku_Rab = Debst.Rab_Grp
- AND RabTab.Art_Rab = Artst.Rab_Grp NO-ERROR.
- IF NOT AVAILABLE RabTab THEN LEAVE.
- ASSIGN
- tAufze.Rab_Su_Grp = RabTab.Rab_Summ
- tAufze.Rab_Su_Art = RabTab.Add_Art.
-
- IF tAufze.Netto THEN LEAVE.
- IF RabTab.Wert = 0 THEN LEAVE.
-
- IF RabTab.Rab_Art = 1 THEN
- DO:
- tAufze.Rab_Wert = RabTab.Wert.
- tAufze.Rab_Art = (IF RabTab.Proz_Betr THEN 1 ELSE 2).
- END.
- LEAVE.
- END.
- DO WHILE TRUE:
- IF tAufze.Rab_Art = 3 THEN
- DO:
- IF Artst.DEP <> 0 THEN VPreis = Artst.DEP.
- IF Artst.LEP <> 0 THEN VPreis = Artst.LEP.
- IF Artst.Listen_EP <> 0 THEN VPreis = Artst.Listen_EP.
- LEAVE.
- END.
-
- FIND LAST ArtPreis NO-LOCK USE-INDEX ArtPreis-k1
- WHERE ArtPreis.Firma = Firma
- AND ArtPreis.Artnr = tAufze.Artnr
- AND ArtPreis.Inhalt = tAufze.Inhalt
- AND ArtPreis.Jahr = tAufze.Jahr
- AND ArtPreis.Preis_Grp = VP_Grp
- AND ArtPreis.Aktion = FALSE
- AND ArtPreis.Ab_Datum <= ipDatum NO-ERROR.
- DO WHILE TRUE:
- IF AVAILABLE ArtPreis THEN LEAVE.
- IF FAbweich THEN
- DO:
- FIND LAST ArtPreis NO-LOCK USE-INDEX ArtPreis-k1
- WHERE ArtPreis.Firma = Firma
- AND ArtPreis.Artnr = tAufze.Artnr
- AND ArtPreis.Inhalt = tAufze.Inhalt
- AND ArtPreis.Jahr = tAufze.Jahr
- AND ArtPreis.Preis_Grp = Debst.Preis_Grp
- AND ArtPreis.Aktion = FALSE
- AND ArtPreis.Ab_Datum <= ipDatum NO-ERROR.
- IF AVAILABLE ArtPreis THEN LEAVE.
- END.
- FIND LAST ArtPreis NO-LOCK USE-INDEX ArtPreis-k1
- WHERE ArtPreis.Firma = Firma
- AND ArtPreis.Artnr = tAufze.Artnr
- AND ArtPreis.Inhalt = tAufze.Inhalt
- AND ArtPreis.Jahr = tAufze.Jahr
- AND ArtPreis.Preis_Grp = FwPreisGrp
- AND ArtPreis.Aktion = FALSE
- AND ArtPreis.Ab_Datum <= ipDatum NO-ERROR.
- IF AVAILABLE ArtPreis THEN LEAVE.
- FIND FIRST ArtPreis NO-LOCK USE-INDEX ArtPreis-k1
- WHERE ArtPreis.Firma = Firma
- AND ArtPreis.Artnr = tAufze.Artnr
- AND ArtPreis.Inhalt = tAufze.Inhalt
- AND ArtPreis.Jahr = tAufze.Jahr
- AND ArtPreis.Preis_Grp = VP_Grp
- AND ArtPreis.Aktion = FALSE
- AND ArtPreis.Ab_Datum >= ipDatum NO-ERROR.
- LEAVE.
- END.
- IF AVAILABLE ArtPreis THEN
- DO:
- FIND LAST ArtStaff NO-LOCK USE-INDEX ArtStaff-k1
- WHERE ArtStaff.Firma = ArtPreis.Firma
- AND ArtStaff.Artnr = ArtPreis.Artnr
- AND ArtStaff.Inhalt = ArtPreis.Inhalt
- AND ArtStaff.Jahr = ArtPreis.Jahr
- AND ArtStaff.Preis_Grp = ArtPreis.Preis_Grp
- AND ArtStaff.Ab_Datum = ArtPreis.Ab_Datum
- AND ArtStaff.Menge <= PosMenge NO-ERROR.
- IF AVAILABLE ArtStaff THEN
- DO:
- IF Wust.Incl THEN VPreis = ArtStaff.VK_Brutto.
- ELSE VPreis = ArtStaff.VK_Netto.
- END.
- ELSE
- DO.
- IF Wust.Incl THEN VPreis = ArtPreis.VK_Brutto.
- ELSE VPreis = ArtPreis.VK_Netto.
- END.
- END.
- FIND LAST SpezPrei NO-LOCK USE-INDEX SpezPrei-k1
- WHERE SpezPrei.Firma = Firma
- AND SpezPrei.Knr = ipKnr
- AND SpezPrei.Artnr = tAufze.Artnr
- AND SpezPrei.Inhalt = tAufze.Inhalt
- AND SpezPrei.Jahr = tAufze.Jahr
- AND SpezPrei.Menge <= PosMenge
- AND SpezPrei.Ab_Datum <= ipDatum
- AND SpezPrei.Bis_Datum >= ipDatum NO-ERROR.
- IF AVAILABLE SpezPrei THEN
- DO:
- IF SpezPrei.Proz_Betr THEN
- DO.
- VRab_Proz = SpezPrei.Wert.
- VRab_Betr = 0.
- END.
- ELSE
- DO:
- VPreis = SpezPrei.Wert.
- VRab_Betr = 0.
- VRab_Proz = 0.
- END.
-
- tAufze.Rab_Su_Grp = 0.
- tAufze.Rab_Su_Art = 0.
- FSpezPreis = 1.
- END.
- DO WHILE TRUE:
- tAufze.Auf_Sp_Proz_Betr = TRUE.
- tAufze.Auf_Sp_Wert = 0.
- tAufze.Auf_Sp_Rab = 0.
- tAufze.Auf_Sp_Grp = 0.
- IF FSpezPreis > 0 THEN LEAVE.
- FIND FIRST SpPrRab NO-LOCK USE-INDEX SpPrRab-k1
- WHERE SpPrRab.Firma = Firma
- AND SpPrRab.Knr = ipKnr
- AND SpPrRab.Rab_Grp = Artst.Rab_Grp
- AND SpPrRab.Ab_Datum <= ipDatum
- AND SpPrRab.Bis_Datum >= ipDatum NO-ERROR.
- IF AVAILABLE SpPrRab THEN
- DO:
- tAufze.Auf_Sp_Grp = SpPrRab.Rab_Grp.
- END.
- FIND LAST SpPrRab NO-LOCK USE-INDEX SpPrRab-k1
- WHERE SpPrRab.Firma = Firma
- AND SpPrRab.Knr = ipKnr
- AND SpPrRab.Rab_Grp = Artst.Rab_Grp
- AND SpPrRab.Menge <= PosMenge
- AND SpPrRab.Ab_Datum <= ipDatum
- AND SpPrRab.Bis_Datum >= ipDatum NO-ERROR.
- IF AVAILABLE SpPrRab THEN
- DO:
- IF SpPrRab.Wert <> 0 THEN
- DO:
- IF SpPrRab.Proz_Betr THEN
- DO.
- VRab_Proz = SpPrRab.Wert.
- VRab_Betr = 0.
- END.
- ELSE
- DO:
- VRab_Betr = SpPrRab.Wert.
- VRab_Proz = 0.
- END.
- /* IF tAufze.Netto = TRUE THEN*/
- /* DO: */
- /* IF NettoRab = 1 THEN */
- /* DO: */
- /* VRab_Proz = 0. */
- /* VRab_Betr = 0. */
- /* END. */
- /* END. */
- tAufze.Rab_Su_Grp = 0.
- tAufze.Rab_Su_Art = 0.
- FSpezPreis = 2.
- END.
- END.
- LEAVE.
- END.
- DO WHILE TRUE:
- IF KeineAkt THEN LEAVE.
- IF FSpezpreis > 0 AND
- Aktionen = 0 THEN LEAVE.
- IF FSpezpreis = 1 THEN
- DO:
- IF Aktionen = 2 THEN LEAVE.
- END.
- IF FSpezpreis = 2 THEN
- DO:
- IF Aktionen = 1 THEN LEAVE.
- END.
- FIND LAST AktPreis NO-LOCK USE-INDEX AktPreis-k2
- WHERE AktPreis.Firma = Firma
- AND AktPreis.Artnr = tAufze.Artnr
- AND AktPreis.Inhalt = tAufze.Inhalt
- AND AktPreis.Jahr = tAufze.Jahr
- AND AktPreis.Grp = VGrp
- AND AktPreis.Ab_Datum <= ipDatum
- AND AktPreis.Bis_Datum >= ipDatum NO-ERROR.
- IF AVAILABLE AktPreis THEN
- DO:
- IF AktPreis.Art = 0 THEN VPreis = VPreis - AktPreis.Wert.
- IF AktPreis.Art = 1 THEN VPreis = VPreis * (100 - AktPreis.Wert) / 100.
- VAktion = TRUE.
- VAktion_Text = AktPreis.Bemerkung.
- LEAVE.
- END.
- IF NOT FAbweich THEN LEAVE.
- IF Steuer.AktionsPreise > 0 THEN LEAVE.
- FIND LAST AktPreis NO-LOCK USE-INDEX AktPreis-k2
- WHERE AktPreis.Firma = Firma
- AND AktPreis.Artnr = tAufze.Artnr
- AND AktPreis.Inhalt = tAufze.Inhalt
- AND AktPreis.Jahr = tAufze.Jahr
- AND AktPreis.Grp = Debst.Preis_Grp
- AND AktPreis.Ab_Datum <= ipDatum
- AND AktPreis.Bis_Datum >= ipDatum NO-ERROR.
- IF AVAILABLE AktPreis THEN
- DO:
- IF AktPreis.Art = 0 THEN VPreis = VPreis - AktPreis.Wert.
- IF AktPreis.Art = 1 THEN VPreis = VPreis * (100 - AktPreis.Wert) / 100.
- VAktion = TRUE.
- VAktion_Text = AktPreis.Bemerkung.
- LEAVE.
- END.
- LEAVE.
- END.
- IF tAufze.Netto THEN LEAVE.
- IF FSpezPreis > 0 THEN LEAVE.
- IF AVAILABLE RabTab THEN
- DO:
- IF RabTab.Wert = 0 THEN LEAVE.
- END.
-
- IF tAufze.Rab_Art > 0 THEN
- DO:
- IF tAufze.Rab_Art = 1 THEN
- DO:
- VRab_Proz = tAufze.Rab_Wert.
- VRab_Betr = 0.
- LEAVE.
- END.
- IF tAufze.Rab_Art = 2 THEN
- DO:
- VRab_Betr = tAufze.Rab_Wert.
- VRab_Proz = 0.
- LEAVE.
- END.
- END.
- IF AVAILABLE RabTab THEN
- DO:
- IF RabTab.Rab_Art = 0 THEN VRab_Betr = RabTab.Wert.
- IF RabTab.Rab_Art = 1 THEN VRab_Proz = RabTab.Wert.
- END.
- LEAVE.
- END.
- ASSIGN
- tAufze.Preis = VPreis
- tAufze.Aktion = VAktion
- tAufze.Aktion_Text = VAktion_Text.
- IF tAufze.Rab_Art <> 3 THEN
- DO:
- ASSIGN
- tAufze.Rab_Art = 0
- tAufze.Rab_Wert = 0.
- END.
- IF VRab_Proz <> 0 THEN
- DO:
- ASSIGN
- tAufze.Rab_Art = 1
- tAufze.Rab_Wert = VRab_Proz.
- END.
- IF VRab_Betr <> 0 THEN
- DO:
- ASSIGN
- tAufze.Rab_Art = 2
- tAufze.Rab_Wert = VRab_Betr.
- END.
- DO WHILE TRUE:
- IF tAufze.Rab_Art = 1 THEN
- DO:
- tAufze.Bru_Betr = tAufze.Preis * tAufze.MGeli.
- tAufze.Rab_Betr = tAufze.Rab_Wert * tAufze.Bru_Betr / 100.
- LEAVE.
- END.
- IF tAufze.Rab_Art = 2 THEN
- DO:
- tAufze.Bru_Betr = tAufze.Preis * tAufze.MGeli.
- tAufze.Rab_Betr = tAufze.Rab_Wert * tAufze.MGeli.
- LEAVE.
- END.
- IF tAufze.Rab_Art = 3 THEN
- DO:
- tAufze.Bru_Betr = tAufze.Preis * tAufze.MGeli.
- tAufze.Rab_Betr = tAufze.Rab_Wert * tAufze.MGeli * -1.
- LEAVE.
- END.
- tAufze.Bru_Betr = tAufze.Preis * tAufze.MGeli.
- tAufze.Rab_Betr = 0.
- tAufze.Rab_Art = 0.
- LEAVE.
- END.
-
- IF Wust.Incl THEN
- DO:
- Rundbetr = tAufze.Rab_Betr.
- RUN RUNDEN ( 1, INPUT-OUTPUT Rundbetr ).
- tAufze.Rab_Betr = Rundbetr.
- END.
- tAufze.Zus_Betr = 0.
- IF tAufze.Zus_Art > 0 THEN
- DO:
- IF tAufze.Zus_Art = 1
- THEN tAufze.Zus_Betr = tAufze.Bru_Betr * tAufze.Zus_Wert / 100.
- IF tAufze.Zus_Art = 2
- THEN tAufze.Zus_Betr = tAufze.MGeli * tAufze.Zus_Wert.
- END.
-
- IF Wust.Incl THEN
- DO:
- Rundbetr = tAufze.Zus_Betr.
- RUN RUNDEN ( 1, INPUT-OUTPUT Rundbetr ).
- tAufze.Zus_Betr = Rundbetr.
- END.
-
- tAufze.Net_Betr = tAufze.Bru_Betr - tAufze.Rab_Betr + tAufze.Zus_Betr.
-
- IF Wust.Incl THEN
- DO:
- Rundbetr = tAufze.Net_Betr.
- RUN RUNDEN ( 1, INPUT-OUTPUT Rundbetr ).
- tAufze.Net_Betr = Rundbetr.
- END.
-
- iohAufze:BUFFER-COPY(hBuffer).
- RETURN TRUE.
-
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-updateRuestauftrag) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION updateRuestauftrag Procedure
- FUNCTION updateRuestauftrag RETURNS LOGICAL
- ( ipiStatus AS INTEGER, iprAufze AS RECID ):
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: ipiStatus = 0 -> Zeile erfasstt */
- /* Notes: ipiStatus = 1 -> Zeile mutiert */
- /* Notes: ipiStatus = 9 -> Zeile geloescht */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO INIT TRUE.
- DEFINE BUFFER bAufze FOR Aufze.
- DEFINE BUFFER bAufko FOR Aufko.
-
- DEFINE VARIABLE hrawTable AS HANDLE NO-UNDO.
- DEFINE VARIABLE hrRuestAuf AS HANDLE NO-UNDO.
-
- hrawTable = BUFFER rawTable:HANDLE.
- hrRuestAuf = TEMP-TABLE rRuestAuf:DEFAULT-BUFFER-HANDLE.
- FIND bAufze NO-LOCK WHERE RECID(bAufze) = iprAufze NO-ERROR.
- IF bAufze.Artnr = 0 THEN RETURN lRetVal.
-
- FIND FIRST RuestAuf NO-LOCK
- WHERE RuestAuf.Firma = bAufze.Firma
- AND RuestAuf.Aufnr = bAufze.Aufnr NO-ERROR.
- IF NOT AVAILABLE RuestAuf THEN RETURN lRetVal.
-
- FIND bAufko NO-LOCK OF bAufze NO-ERROR.
- IF bAufko.Faknr > 0 THEN RETURN lRetVal.
- IF bAufko.Auf_Sta > 1 THEN RETURN lRetVal.
- IF bAufko.Fahrer = 0 THEN RETURN lRetVal.
-
- /* FIND FIRST RuestAuf NO-LOCK */
- /* WHERE RuestAuf.Firma = bAufze.Firma */
- /* AND RuestAuf.Aufnr = bAufze.Aufnr */
- /* AND RuestAuf.lGeladen = TRUE NO-ERROR.*/
- /* IF AVAILABLE RuestAuf THEN RETURN lRetVal. */
-
- FIND FIRST RuestAuf NO-LOCK OF bAufze NO-ERROR.
- IF NOT AVAILABLE RuestAuf AND
- ipiStatus = 9 THEN
- DO:
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
- FOR EACH rawTable
- WHERE rawTable.Firma = bAufze.Firma
- AND rawTable.Tabelle = 'RUESTAUF'
- AND rawTable.Tabelle_Id = RECID(bAufze):
- DELETE rawTable.
- RELEASE rawTable.
- END.
- LEAVE.
- END.
- RETURN lRetVal. /* Löschen einer noch nicht existierenden RuestPosition */
- END.
- IF AVAILABLE RuestAuf AND
- RuestAuf.MGeli = 0 AND
- RuestAuf.MBest = bAufze.MBest THEN RETURN lRetVal.
-
- IF NOT AVAILABLE RuestAuf AND
- ipiStatus = 1 THEN ipiStatus = 0.
- IF AVAILABLE RuestAuf AND
- ipiStatus = 0 THEN ipiStatus = 1.
-
- EMPTY TEMP-TABLE rRuestAuf.
- CASE ipiStatus:
- WHEN 0 THEN
- DO:
- CREATE rRuestAuf.
- BUFFER-COPY bAufze
- TO rRuestAuf
- ASSIGN
- rRuestAuf.MBest = 0
- rRuestAuf.GGeb_Best = 0
- rRuestAuf.VGeb_Best = 0
- rRuestAuf.KGeb_Best = 0
- rRuestAuf.SubPos = 0.
-
- CREATE rRuestAuf.
- BUFFER-COPY bAufze
- TO rRuestAuf
- ASSIGN
- rRuestAuf.MBest = bAufze.MBest
- rRuestAuf.GGeb_Best = bAufze.GGeb_Be
- rRuestAuf.VGeb_Best = bAufze.VGeb_Be
- rRuestAuf.KGeb_Best = bAufze.KGeb_Be
- rRuestAuf.SubPos = 1.
- END.
- WHEN 1 THEN
- DO:
- CREATE rRuestAuf.
- BUFFER-COPY RuestAuf
- EXCEPT SubPos
- TO rRuestAuf
- ASSIGN
- rRuestAuf.SubPos = 0.
-
- CREATE rRuestAuf.
- BUFFER-COPY RuestAuf
- TO rRuestAuf
- ASSIGN
- rRuestAuf.MBest = bAufze.MBest
- rRuestAuf.GGeb_Best = bAufze.GGeb_Be
- rRuestAuf.VGeb_Best = bAufze.VGeb_Be
- rRuestAuf.KGeb_Best = bAufze.KGeb_Be
- rRuestAuf.SubPos = 1.
- END.
- WHEN 9 THEN
- DO:
- CREATE rRuestAuf.
- BUFFER-COPY RuestAuf
- EXCEPT SubPos
- TO rRuestAuf
- ASSIGN
- rRuestAuf.SubPos = 0.
-
- CREATE rRuestAuf.
- BUFFER-COPY RuestAuf
- EXCEPT SubPos MBest GGeb_Best VGeb_Best KGeb_Best
- TO rRuestAuf
- ASSIGN
- rRuestAuf.SubPos = 1.
- END.
- END.
-
- REPEAT TRANSACTION ON ERROR UNDO, LEAVE:
- FOR EACH rRuestAuf:
- FIND FIRST rawTable
- WHERE rawTable.Firma = bAufze.Firma
- AND rawTable.Tabelle = 'RUESTAUF'
- AND rawTable.Tabelle_Id = RECID(bAufze)
- 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') )
- AND rawTable.iTrans = rRuestAuf.SubPos NO-ERROR.
- IF NOT AVAILABLE rawTable THEN
- DO:
- CREATE rawTable.
- ASSIGN
- rawTable.Firma = bAufze.Firma
- rawTable.Tabelle = 'RUESTAUF'
- rawTable.Tabelle_Id = RECID(bAufze)
- rawTable.Tabelle_Key = SUBSTITUTE ('&1&2&3&4', STRING(bAufze.Artnr,'999999'), STRING(bAufze.Inhalt,'999999'), STRING(bAufze.Jahr,'9999'), STRING(bAufze.Pos,'9999') )
- rawTable.iTrans = rRuestAuf.SubPos
- rawTable.iStatus = ipiStatus.
- hrRuestAuf:RAW-TRANSFER (TRUE, hrawTable:BUFFER-FIELD('rawData')).
- RELEASE rawTable.
- NEXT.
- END.
- IF rRuestAuf.SubPos = 0 THEN
- DO:
- RELEASE rawTable.
- NEXT.
- END.
-
- hrRuestAuf:RAW-TRANSFER (TRUE, hrawTable:BUFFER-FIELD('rawData')).
- RELEASE rawTable.
- END.
- RELEASE rawTable.
-
- CREATE ASMutation.
- ASSIGN
- ASMutation.ASMutation_id = NEXT-VALUE(ASMutation_id)
- ASMutation.MutArt = 'RUESTDRUCK'
- ASMutation.Firma = bAufze.Firma
- ASMutation.AdFirma = ''
- ASMutation.Datum = TODAY
- ASMutation.cStatus = ''
- ASMutation.Aktiv = TRUE
- ASMutation.iKey_1 = bAufze.Aufnr
- ASMutation.iKey_2 = 01
- ASMutation.iFeld_1 = bAufze.Pos
- ASMutation.iFeld_2 = 0
- ASMutation.iFeld_3 = TIME
- ASMutation.cFeld_2 = 'TRIGGER'
- ASMutation.cFeld_3 = (IF ipiStatus = 0 THEN 'CREATE' ELSE 'UPDATE').
- .
- IF ipiStatus = 9 THEN ASMutation.cFeld_3 = 'DELETE'.
- RELEASE ASMutation.
- LEAVE.
- END.
- RETURN lRetVal.
- END FUNCTION.
-
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
|