w_outware_sale.srw 395 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117
  1. $PBExportHeader$w_outware_sale.srw
  2. forward
  3. global type w_outware_sale from w_publ_1ton_share_detail
  4. end type
  5. type ddlb_scid from uo_ddlb_scid within w_outware_sale
  6. end type
  7. type st_3 from statictext within w_outware_sale
  8. end type
  9. type st_2 from statictext within w_outware_sale
  10. end type
  11. type st_msg from statictext within w_outware_sale
  12. end type
  13. type cbx_ifmtrlware from checkbox within w_outware_sale
  14. end type
  15. type cbx_enamt_edit from checkbox within w_outware_sale
  16. end type
  17. type ddlb_status from uo_ddlb_status within w_outware_sale
  18. end type
  19. type cb_fhmx from commandbutton within w_outware_sale
  20. end type
  21. type cb_fymx from commandbutton within w_outware_sale
  22. end type
  23. type cb_bjmx from commandbutton within w_outware_sale
  24. end type
  25. type dw_bjmx from u_dw_rbtnfilter within w_outware_sale
  26. end type
  27. type dw_fymx from u_dw_rbtnfilter within w_outware_sale
  28. end type
  29. type cbx_packqty_cmpl from checkbox within w_outware_sale
  30. end type
  31. type cbx_enamt_notax_edit from checkbox within w_outware_sale
  32. end type
  33. type cb_scanbill from commandbutton within w_outware_sale
  34. end type
  35. type cbx_zk from checkbox within w_outware_sale
  36. end type
  37. type cb_new_scanbill from commandbutton within w_outware_sale
  38. end type
  39. type st_cusbalc from statictext within w_outware_sale
  40. end type
  41. type st_cusbalc_sign from statictext within w_outware_sale
  42. end type
  43. type cbx_all from checkbox within w_outware_sale
  44. end type
  45. end forward
  46. global type w_outware_sale from w_publ_1ton_share_detail
  47. integer width = 4581
  48. integer height = 2780
  49. string title = "销售发货单"
  50. boolean maxbox = true
  51. windowstate windowstate = maximized!
  52. long ls_powerid = 24665208
  53. boolean if_chkmtrlinfo = true
  54. event insert_childrow ( )
  55. event ue_priceaudit ( )
  56. event ue_cpriceaudit ( )
  57. event ue_importseleprice ( )
  58. event ue_cmpdi ( )
  59. event ue_di ( )
  60. event ue_importcusseleprice_his ( )
  61. event ue_importcusseleprice ( )
  62. event ue_cmpdi_all ( )
  63. event ue_di_auto ( )
  64. event ue_fj_edit ( )
  65. event ue_fj_view ( )
  66. event ue_cmpl_addqty ( )
  67. event ue_cmpl_qty ( )
  68. event ue_p_cmpl_qty ( )
  69. event ue_cmpl_status_qty ( )
  70. event ue_view_mxdscrp ( )
  71. event ue_p_formula_set ( )
  72. event ue_view_mxdscrp2 ( )
  73. event ue_ch_station ( )
  74. event ue_ch_outrepdef ( )
  75. event ue_ch_banktype ( )
  76. event ue_ch_money ( )
  77. event ue_csecpriceaudit ( )
  78. event ue_secpriceaudit ( )
  79. event ue_ch_dscrp ( )
  80. event ue_ch_rel_address ( )
  81. event ue_add_fymx ( )
  82. event insert_childrow_fymx ( )
  83. event ue_importlmsaleprice ( )
  84. event ue_ch_outtype ( )
  85. event ue_add_addqty ( )
  86. event ue_di_auto_del ( )
  87. event ue_ch_mtrlware ( )
  88. event ue_all_choice ( )
  89. event ue_allnot_choice ( )
  90. event ue_all_audit ( )
  91. event ue_allnot_audit ( )
  92. event ue_all_delete ( )
  93. event ue_p_rebate ( )
  94. event ue_fj_edit_mx ( )
  95. event ue_fj_mx_add ( )
  96. event ue_fj_mx_add_p ( )
  97. event ue_fj_view_mx ( )
  98. event ue_ch_dscrp2 ( )
  99. event ue_ch_dscrp3 ( )
  100. event ue_view_status ( long arg_row, string arg_status )
  101. event ue_view_mxdscrp3 ( )
  102. event ue_view_mxdscrp4 ( )
  103. event ue_cmpl_set0 ( )
  104. event ue_importcusseleprice_buchong ( )
  105. event ue_retrieve_fifo_cbmx ( )
  106. event ue_show_fifo_cbmx ( )
  107. event ue_ch_relstr_3 ( )
  108. event ue_set_tax ( )
  109. event ue_show_his_pricemx ( )
  110. event ue_retrieve_his_pricemx ( )
  111. event ue_mx_cmplnoallocqty ( )
  112. event ue_choose_mtrlware_plancode ( )
  113. event ue_create_bmstamt ( )
  114. event ue_bill_mod ( )
  115. event ue_cmpl_price ( )
  116. event ue_setprice_forformula ( )
  117. event retrieve_fjnum ( )
  118. event ue_all_c_secaudit ( integer arg )
  119. event ue_cmpl_tax ( )
  120. event ue_mod_outdate ( )
  121. event ue_price_mod ( )
  122. event ue_outware_choose ( )
  123. event ue_setqty_forformula ( )
  124. event ue_setqty_forformula_1 ( )
  125. event ue_setprice_forformula_1 ( )
  126. ddlb_scid ddlb_scid
  127. st_3 st_3
  128. st_2 st_2
  129. st_msg st_msg
  130. cbx_ifmtrlware cbx_ifmtrlware
  131. cbx_enamt_edit cbx_enamt_edit
  132. ddlb_status ddlb_status
  133. cb_fhmx cb_fhmx
  134. cb_fymx cb_fymx
  135. cb_bjmx cb_bjmx
  136. dw_bjmx dw_bjmx
  137. dw_fymx dw_fymx
  138. cbx_packqty_cmpl cbx_packqty_cmpl
  139. cbx_enamt_notax_edit cbx_enamt_notax_edit
  140. cb_scanbill cb_scanbill
  141. cbx_zk cbx_zk
  142. cb_new_scanbill cb_new_scanbill
  143. st_cusbalc st_cusbalc
  144. st_cusbalc_sign st_cusbalc_sign
  145. cbx_all cbx_all
  146. end type
  147. global w_outware_sale w_outware_sale
  148. type variables
  149. uo_outware_sale uo_ware
  150. uo_ljfieb uo_fieb
  151. uo_cusprice uo_cus_price
  152. long cur_scid //分店ID
  153. long cur_scid_arr[]
  154. int cur_editfocus=0 //1:新建2:修改
  155. string cur_outrepcode='' //当前供销编号
  156. long cur_flag= -1 //-1:全部,0仓库未审,1仓库已审核
  157. long cur_secflag= -1 //-1:全部,0财务未审
  158. long cur_priceflag= -1 //-1:全部,0未确认
  159. long flag= 0
  160. long secflag= 0
  161. long priceflag = 0
  162. string ol_cdw_str = ''
  163. long ifmtrlware = 0
  164. int ii_enamt_edit = 0//0:不使用录入,不能编辑; 1:使用录入,可以编辑
  165. int ii_enamt_edit_1 = 0//0:不使用录入,不能编辑; 1:使用录入,可以编辑
  166. int ii_enamt_notax_edit = 0//0:不使用录入,不能编辑; 1:使用录入,可以编辑
  167. int ii_packqty_cmpl = 0
  168. //信用额管理
  169. Int cur_cusrepamtflag = 0
  170. String cur_cusrepamtstr = ''
  171. string cur_cusrepamtstr_show = '' //非编辑状态下 显示信息
  172. long ins_dw_select = 0
  173. long fy_column_int = 4 // 费用明细可修改的列数
  174. string old_rep_select=''//保留原有下拉sql
  175. end variables
  176. forward prototypes
  177. public function integer wf_flagstatus_rf ()
  178. public function integer wf_refresh_curuc (long arg_scid, long arg_wareid)
  179. public subroutine wf_check_billfj ()
  180. public function integer wf_xls_retrievedata (long arg_ationid, ref s_xls_billlist arg_str_billlist, ref uo_sendtoexcel arg_obj_st, ref string arg_msg)
  181. public function integer wf_saletaskmtrltoarr (long arg_scid, long arg_taskid, ref s_saletask_mtrl arg_s_rqmtrl, ref long arg_p_rqmtrl, ref string arg_msg)
  182. public function integer wf_autoaddmx (long arg_scid, long arg_saletaskid, string arg_taskcode, long arg_storageid, long arg_cusid, long arg_ifzeromtrlware, ref string arg_msg)
  183. public function integer wf_saletaskmtrltoarr_salemx (long arg_scid, ref s_saletask_mtrl arg_s_rqmtrl, ref string arg_msg)
  184. public function integer wf_autoaddmx_salemx (long arg_scid, s_saletask_mtrl arg_s_rqmtrli, long arg_storageid, long arg_cusid, long arg_ifzeromtrlware, ref string arg_msg)
  185. public function integer wf_refresh_interface ()
  186. public function integer wf_print_retrievedata (ref s_print_pic_list arg_s_pic, ref string arg_msg)
  187. public subroutine wf_cusbalc (long arg_scid, long arg_cusid, long arg_moneyid)
  188. public subroutine wf_getcusrepamt_info (long arg_scid, long arg_cusid, long arg_moneyid)
  189. public function integer wf_get_pricelist_price (long arg_pricelistid, long arg_moneyid, ref string arg_msg)
  190. public function integer wf_get_price (long arg_row)
  191. public function integer wf_get_mtrlwareid (long arg_row)
  192. public function integer wf_lock_child ()
  193. public subroutine wf_ue_f7 (s_saletask_ch s_saletask)
  194. public function integer wf_set_outwaremx_bk (long arg_cusid, long arg_storageid, s_saletask_mtrl arg_mx, string arg_msg)
  195. public function integer wf_set_outwaremx (long arg_scid, long arg_cusid, long arg_storageid, s_saletask_mtrl arg_mx, string arg_msg)
  196. public function integer wf_set_outware_itemmx (integer arg_scid, long arg_taskid)
  197. public function integer wf_change_cusid (long arg_cusid)
  198. public function integer wf_get_cusid (ref long arg_cusid)
  199. public subroutine wf_cusprice_mtrlware (ref s_mtrlware_noalloc_array ins_rt_stru)
  200. public subroutine wf_cusprice_in (s_mtrlware_noalloc_array ins_rt_stru)
  201. public subroutine wf_cusprice_mtrl (ref s_mtrldef_array ins_rt_stru)
  202. public subroutine wf_cusprice_in (s_mtrldef_array ins_rt_stru)
  203. public function integer wf_check_qtyandaddqty (ref string arg_msg)
  204. public function integer wf_enamt_facechg ()
  205. public function integer wf_ck_taobao (string arg_outwarecode)
  206. public subroutine wf_check_ware (long arg_scid, long arg_billid)
  207. public function string wf_check_sys_option_check_scanqty ()
  208. public function integer wf_get_pricelist_price_buchong (long arg_pricelistid, long arg_moneyid, ref string arg_msg)
  209. public subroutine wf_set_barcode ()
  210. public subroutine wf_cmpl_amt (long row)
  211. public subroutine wf_getcusrepamt_info_show (long arg_scid, long arg_cusid, long arg_moneyid)
  212. public subroutine wf_set_decimal_place ()
  213. public function decimal wf_sum_mxamt ()
  214. public function decimal wf_get_cusprice (integer arg_cusid, integer arg_mtrlid)
  215. public subroutine wf_price (integer arg_row)
  216. public function integer wf_autoaddmx_rp (s_edit_index_tran arg_s_tran, ref string arg_msg)
  217. end prototypes
  218. event insert_childrow();long li_row
  219. li_row=dw_child.insertrow(0)
  220. dw_child.scrolltorow(li_row)
  221. dw_child.SetColumn ('u_mtrldef_mtrlcode')
  222. end event
  223. event ue_priceaudit();IF dw_edit_mode THEN
  224. MessageBox('提示',"编辑状态下不可以使用!",information!,OK!)
  225. RETURN
  226. END IF
  227. IF Not f_power_ind(491) THEN
  228. MessageBox('提示',sys_msg_pow,information!,OK!)
  229. RETURN
  230. END IF
  231. String arg_msg
  232. Long pagerert_row
  233. String ls_taskcode
  234. pagerert_row = dw_pageretr.GetRow()
  235. IF pagerert_row <= 0 THEN
  236. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  237. RETURN
  238. END IF
  239. IF uo_ware.priceaudit(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row],True,arg_msg) = 0 THEN
  240. MessageBox('错误',arg_msg,stopsign!,OK!)
  241. RETURN
  242. END IF
  243. ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[pagerert_row]
  244. IF f_billevent_trigger (104, 4, ls_taskcode, arg_msg) = 0 THEN
  245. MessageBox('Error',arg_msg)
  246. END IF
  247. MessageBox('提示','确认成功!',information!,OK!)
  248. wf_refresh_curuc(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row])
  249. end event
  250. event ue_cpriceaudit();IF dw_edit_mode THEN
  251. MessageBox('提示',"编辑状态下不可以使用!",information!,OK!)
  252. return
  253. END IF
  254. IF NOT f_power_ind(1779) THEN
  255. MessageBox('提示',sys_msg_pow,information!,OK!)
  256. RETURN
  257. END IF
  258. String arg_msg
  259. Long pagerert_row
  260. pagerert_row = dw_pageretr.GetRow()
  261. IF pagerert_row <= 0 THEN
  262. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  263. RETURN
  264. END IF
  265. IF uo_ware.c_priceaudit(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row],TRUE,arg_msg) = 0 THEN
  266. MessageBox('错误',arg_msg,stopsign!,OK!)
  267. RETURN
  268. END IF
  269. //日志
  270. Long ls_id
  271. String ls_code
  272. ls_id = dw_pageretr.Object.u_outware_outwareid[pagerert_row]
  273. ls_code = dw_pageretr.Object.u_outware_outwarecode[pagerert_row]
  274. f_setsysoplog('销售发货单','反确认,id:'+String(ls_id)+',code:'+ls_code,arg_msg,TRUE)
  275. //--
  276. MessageBox('提示','反确认成功!',information!,OK!)
  277. wf_refresh_curuc(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row])
  278. end event
  279. event ue_importseleprice();IF NOT dw_edit_mode THEN
  280. MessageBox('提示',"非编辑状态下不可以使用!",information!,OK!)
  281. RETURN
  282. END IF
  283. Long ls_row,ls_cusid,ls_mtrlid
  284. String ls_cuscode,ls_cusname,arg_msg
  285. Long uc_row
  286. Decimal obj_price ,obj_rebate,obj_rate
  287. String err_str = ''
  288. Boolean if_exist_price = TRUE
  289. Long ll_pricelistid,ll_moneyid
  290. String ls_status,ls_pcode,ls_woodcode,ls_unit
  291. s_pricelist_ch s_pricelist
  292. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  293. IF ll_moneyid = 0 OR IsNull(ll_moneyid) THEN
  294. MessageBox('提示','请先选择币种',information!,OK!)
  295. RETURN
  296. END IF
  297. //直接查询价格表
  298. // IF MessageBox (publ_operator,"是否直接选择价格表?",Question!,YesNo! ) = 2 THEN RETURN
  299. Open(w_sale_price_list_ch)
  300. s_pricelist = Message.PowerObjectParm
  301. IF s_pricelist.pricelistid <= 0 THEN RETURN
  302. ll_pricelistid = s_pricelist.pricelistid
  303. IF wf_get_pricelist_price(ll_pricelistid, ll_moneyid, arg_msg) = 0 THEN
  304. MessageBox('提示',arg_msg,information!,OK!)
  305. RETURN
  306. END IF
  307. //FOR ls_row = 1 TO dw_child.RowCount()
  308. // ls_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ls_row]
  309. // ls_status = dw_child.Object.u_outwaremx_status[ls_row]
  310. // ls_pcode = dw_child.Object.u_outwaremx_pcode[ls_row]
  311. // ls_woodcode = dw_child.Object.u_outwaremx_woodcode[ls_row]
  312. // ls_unit = dw_child.Object.u_outwaremx_unit[ls_row]
  313. //
  314. // IF sys_option_price_if_status = 0 THEN
  315. // ls_status = ''
  316. // ls_pcode = ''
  317. // ls_woodcode = ''
  318. // END IF
  319. //
  320. // SELECT u_sale_price_mx.price
  321. // INTO :obj_price
  322. // FROM u_sale_price_mx
  323. // WHERE (u_sale_price_mx.pricelistid = :s_pricelist.pricelistid) AND
  324. // ( u_sale_price_mx.mtrlid = :ls_mtrlid ) AND
  325. // ( u_sale_price_mx.status = :ls_status ) AND
  326. // ( u_sale_price_mx.pcode = :ls_pcode ) AND
  327. // ( u_sale_price_mx.woodcode = :ls_woodcode ) AND
  328. // ( u_sale_price_mx.unit = :ls_unit);
  329. // IF sqlca.SQLCode <> 0 THEN
  330. // err_str = err_str + "当前价格表的 "+String(dw_child.Object.u_mtrldef_mtrlname[ls_row])+" 的计划售价尚未设定! ~n"
  331. // ELSE
  332. // dw_child.Object.u_outwaremx_enprice[ls_row] = obj_price
  333. // END IF
  334. //NEXT
  335. //
  336. //
  337. //IF err_str <> '' THEN
  338. // MessageBox('提示',err_str,information!,OK!)
  339. //END IF
  340. end event
  341. event ue_cmpdi();Long ll_mtrlid,ll_storageid
  342. String ls_status_uc,arg_msg,arg_lsg
  343. Long uc_row,child_row
  344. Decimal ld_ref_qty
  345. dw_uc.AcceptText()
  346. uc_row = dw_pageretr.GetRow()
  347. child_row = dw_child.GetRow()
  348. if uc_row <= 0 then return
  349. if child_row <= 0 then return
  350. ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row]
  351. ll_storageid = dw_pageretr.Object.u_outware_storageid[uc_row]
  352. ls_status_uc = dw_child.Object.u_outwaremx_status[child_row]
  353. IF ll_storageid <= 0 THEN
  354. MessageBox('提示','请选择仓库',information!,OK!)
  355. RETURN
  356. END IF
  357. IF f_cmp_di_qty(ll_mtrlid,ll_storageid,ls_status_uc,ld_ref_qty,arg_lsg,arg_msg) = 0 THEN
  358. MessageBox('错误','计算失败,'+arg_msg,stopsign!,OK!)
  359. ELSE
  360. MessageBox('提示',arg_lsg,information!,OK!)
  361. END IF
  362. end event
  363. event ue_di();Long ll_row
  364. Long ll_mtrlwareid
  365. IF Not f_power_ind(288) THEN
  366. MessageBox('提示',sys_msg_pow,information!,OK!)
  367. RETURN
  368. END IF
  369. ll_row = dw_child.GetRow()
  370. IF ll_row <= 0 THEN
  371. MessageBox('提示','请选择资料',information!,OK!)
  372. RETURN
  373. END IF
  374. ll_mtrlwareid = dw_child.Object.u_outwaremx_mtrlwareid[ll_row]
  375. s_edit_index_tran s_tran_open //翻页功能窗口 传递参数使用
  376. s_tran_open.if_retrieve_all = local_retrieve_all //是否一次RETRIEVE所有行
  377. s_tran_open.work_mode = 0 //0-单纯编辑模式, 1-选择模式
  378. s_tran_open.arg_pkid = 0 //目标定位PKID (备用)
  379. s_tran_open.arg_string_code = '' //查询列部分内容,用于初步筛选
  380. s_tran_open.d_long = 1
  381. s_tran_open.e_long = 0
  382. s_tran_open.e_string = '装'
  383. s_tran_open.f_long = ll_mtrlwareid
  384. OpenWithParm(w_dismantle_install,s_tran_open)
  385. end event
  386. event ue_importcusseleprice_his();// //导入客户历史售价
  387. Long ls_row,ls_cusid,ls_mtrlid
  388. String ls_cuscode,ls_cusname,arg_msg
  389. Long uc_row
  390. Decimal obj_price ,obj_rebate,obj_rate
  391. String err_str = ''
  392. Boolean if_exist_price = TRUE
  393. Long ls_pricelistid,ll_moneyid
  394. String ls_status,ls_pcode,ls_woodcode,ls_unit
  395. s_pricelist_ch s_pricelist
  396. uc_row = dw_uc.GetRow()
  397. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  398. IF ll_moneyid = 0 OR IsNull(ll_moneyid) THEN
  399. MessageBox('提示','请先选择币种',information!,OK!)
  400. RETURN
  401. END IF
  402. IF dw_uc.Object.u_outware_cusid[uc_row] = 0 OR IsNull(dw_uc.Object.u_outware_cusid[uc_row]) THEN
  403. MessageBox('提示',"请选择销售客户!",information!,OK!)
  404. RETURN
  405. END IF
  406. ls_cusid = dw_uc.Object.u_outware_cusid[uc_row]
  407. ls_cuscode = dw_uc.Object.u_cust_cuscode[uc_row]
  408. ls_cusname = dw_uc.Object.u_cust_name[uc_row]
  409. IF dw_child.RowCount() <= 0 THEN
  410. MessageBox('提示',"请选择产品!",information!,OK!)
  411. RETURN
  412. END IF
  413. FOR ls_row = 1 TO dw_child.RowCount()
  414. ls_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ls_row]
  415. ls_status = dw_child.Object.u_outwaremx_status[ls_row]
  416. ls_pcode = dw_child.Object.u_outwaremx_pcode[ls_row]
  417. ls_woodcode = dw_child.Object.u_outwaremx_woodcode[ls_row]
  418. ls_unit = dw_child.Object.u_outwaremx_unit[ls_row]
  419. IF f_getmtrlcusprice(ll_moneyid,ls_mtrlid,ls_cusid,ls_unit,ls_woodcode,ls_status,ls_pcode,0,obj_price,obj_rebate,obj_rate,arg_msg) <> 1 THEN
  420. err_str = err_str + "导入客户["+ls_cuscode+ls_cusname+"]的 "+String(dw_child.Object.u_mtrldef_mtrlname[ls_row])+" 的最新售价失败,或没有最新售价! ~n "
  421. ELSE
  422. dw_child.Object.u_outwaremx_enprice[ls_row] = obj_price
  423. //dw_child.Object.u_outwaremx_rebate[ls_row] = obj_rebate
  424. dw_child.Object.u_outwaremx_rate[ls_row] = obj_rate
  425. END IF
  426. NEXT
  427. IF err_str <> '' THEN
  428. MessageBox('错误',err_str,stopsign!,OK!)
  429. END IF
  430. end event
  431. event ue_importcusseleprice();
  432. //查询客户价格表
  433. //如果客户无价格表则提示是否直接查询价格表
  434. Long ls_row,ls_cusid,ls_mtrlid
  435. String ls_cuscode,ls_cusname,arg_msg
  436. Long uc_row
  437. Decimal obj_price ,obj_rebate,obj_rate
  438. String err_str = ''
  439. Boolean if_exist_price = TRUE
  440. Long ll_pricelistid,ll_moneyid
  441. String ls_status,ls_pcode,ls_woodcode,ls_unit
  442. s_pricelist_ch s_pricelist
  443. uc_row = dw_uc.GetRow()
  444. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  445. IF ll_moneyid = 0 OR IsNull(ll_moneyid) THEN
  446. MessageBox('提示','请先选择币种',information!,OK!)
  447. RETURN
  448. END IF
  449. IF dw_uc.Object.u_outware_cusid[uc_row] = 0 OR IsNull(dw_uc.Object.u_outware_cusid[uc_row]) THEN
  450. MessageBox('提示',"请选择销售客户!",information!,OK!)
  451. RETURN
  452. END IF
  453. ls_cusid = dw_uc.Object.u_outware_cusid[uc_row]
  454. SELECT u_cust.pricelistid INTO :ll_pricelistid FROM u_cust Where u_cust.cusid = :ls_cusid;
  455. IF sqlca.SQLCode <> 0 OR ll_pricelistid <= 0 THEN
  456. if_exist_price = FALSE
  457. END IF
  458. IF if_exist_price = FALSE THEN
  459. IF MessageBox('询问',"当前客户的计划售价尚未设定!是否查询价格列表?",Question!,YesNo!) = 2 THEN RETURN
  460. Open(w_sale_price_list_ch)
  461. s_pricelist = Message.PowerObjectParm
  462. IF s_pricelist.pricelistid <= 0 THEN RETURN
  463. ll_pricelistid = s_pricelist.pricelistid
  464. END IF
  465. IF wf_get_pricelist_price(ll_pricelistid, ll_moneyid, arg_msg) = 0 THEN
  466. MessageBox('提示',arg_msg,information!,OK!)
  467. RETURN
  468. END IF
  469. //FOR ls_row = 1 TO dw_child.RowCount()
  470. // ls_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ls_row]
  471. // ls_status = dw_child.Object.u_outwaremx_status[ls_row]
  472. // ls_pcode = dw_child.Object.u_outwaremx_pcode[ls_row]
  473. // ls_woodcode = dw_child.Object.u_outwaremx_woodcode[ls_row]
  474. // ls_unit = dw_child.Object.u_outwaremx_unit[ls_row]
  475. //
  476. // IF sys_option_price_if_status = 0 THEN
  477. // ls_status = ''
  478. // ls_pcode = ''
  479. // ls_woodcode = ''
  480. // END IF
  481. //
  482. //
  483. // IF if_exist_price THEN //查询客户价格表
  484. // IF Not (IsNull(ls_mtrlid) OR ls_mtrlid = 0 ) THEN
  485. // SELECT u_sale_price_mx.price
  486. // INTO :obj_price
  487. // FROM u_sale_price_list ,u_cust,u_sale_price_mx
  488. // WHERE (u_sale_price_list.pricelistid = u_cust.pricelistid) AND
  489. // (u_sale_price_mx.pricelistid = u_sale_price_list.pricelistid) AND
  490. // ( u_sale_price_mx.mtrlid = :ls_mtrlid ) AND
  491. // ( u_cust.cusid = :ls_cusid ) AND
  492. // ( u_sale_price_mx.status = :ls_status ) AND
  493. // ( u_sale_price_mx.pcode = :ls_pcode ) AND
  494. // ( u_sale_price_mx.woodcode = :ls_woodcode ) and
  495. // ( u_sale_price_mx.unit = :ls_unit);
  496. // IF sqlca.SQLCode <> 0 THEN
  497. // err_str = err_str + "当前客户的 "+String(dw_child.Object.u_mtrldef_mtrlname[ls_row])+" 的计划售价尚未设定! ~n"
  498. // ELSE
  499. // dw_child.Object.u_outwaremx_enprice[ls_row] = obj_price
  500. // END IF
  501. // END IF
  502. // ELSE //查询价格列表
  503. // SELECT u_sale_price_mx.price
  504. // INTO :obj_price
  505. // FROM u_sale_price_mx
  506. // WHERE ( u_sale_price_mx.pricelistid = :s_pricelist.pricelistid ) AND
  507. // ( u_sale_price_mx.mtrlid = :ls_mtrlid ) AND
  508. // ( u_sale_price_mx.status = :ls_status ) AND
  509. // ( u_sale_price_mx.pcode = :ls_pcode ) AND
  510. // ( u_sale_price_mx.woodcode = :ls_woodcode ) and
  511. // ( u_sale_price_mx.unit = :ls_unit);
  512. // IF sqlca.SQLCode <> 0 THEN
  513. // err_str = err_str + "当前价格表的 "+String(dw_child.Object.u_mtrldef_mtrlname[ls_row])+" 的计划售价尚未设定! ~n"
  514. // ELSE
  515. // dw_child.Object.u_outwaremx_enprice[ls_row] = obj_price
  516. // END IF
  517. // END IF
  518. //NEXT
  519. //IF err_str <> '' THEN
  520. // MessageBox('错误',err_str,stopsign!,OK!)
  521. //END IF
  522. //
  523. end event
  524. event ue_cmpdi_all();Long ll_mtrlid,ll_storageid
  525. String ls_status_uc,arg_msg,arg_lsg
  526. Long uc_row,child_row
  527. Decimal ld_ref_qty
  528. dw_uc.AcceptText()
  529. uc_row = dw_pageretr.GetRow()
  530. child_row = dw_child.GetRow()
  531. if uc_row <= 0 then return
  532. if child_row <= 0 then return
  533. ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row]
  534. ll_storageid = dw_pageretr.Object.u_outware_storageid[uc_row]
  535. ls_status_uc = dw_child.Object.u_outwaremx_status[child_row]
  536. ll_storageid = -1
  537. IF f_cmp_di_qty(ll_mtrlid,ll_storageid,ls_status_uc,ld_ref_qty,arg_lsg,arg_msg) = 0 THEN
  538. MessageBox('错误','计算失败,'+arg_msg,information!,OK!)
  539. ELSE
  540. MessageBox('提示',arg_lsg,information!,OK!)
  541. END IF
  542. end event
  543. event ue_di_auto();IF sys_option_outware_if_di <> 0 THEN
  544. MessageBox('提示','系统选项[084]已设置仓审自动组装,不能手动操作',information!,OK!)
  545. RETURN
  546. END IF
  547. IF Not f_power_ind(288) THEN
  548. MessageBox('提示',sys_msg_pow,information!,OK!)
  549. RETURN
  550. END IF
  551. Long ll_row,ll_ucrow, ll_j,ll_i,rslt = 1,it_mxt = 1,i
  552. String ls_mtrlcode, ls_plancode,ls_status,ls_woodcode,ls_pcode
  553. Long ls_mtrlwareid,ls_mtrlid,ls_storageid
  554. Dec ls_noallocqty,ls_planprice,ls_cost,ld_qty,ld_saleqty
  555. String arg_msg
  556. String ls_outwarecode
  557. String ls_reason
  558. Long ll_cnt
  559. ll_ucrow = dw_uc.GetRow()
  560. IF ll_ucrow <= 0 THEN
  561. MessageBox('系统提示','请先选择单据')
  562. RETURN
  563. END IF
  564. ls_outwarecode = dw_uc.Object.u_outware_outwarecode[ll_ucrow]
  565. ls_reason = '销售发货单:'+ls_outwarecode+'自动组装'
  566. ll_row = dw_child.GetRow()
  567. IF ll_row <= 0 THEN
  568. MessageBox('系统提示','请选择资料',information!,OK!)
  569. RETURN
  570. END IF
  571. SELECT count(*)
  572. INTO :ll_cnt
  573. FROM u_dismantle_install
  574. WHERE reason = :ls_reason
  575. And billtype = 0;
  576. IF sqlca.SQLCode <> 0 THEN
  577. MessageBox('系统提示','查询单据是否有自动组装失败!',information!,OK!)
  578. RETURN
  579. END IF
  580. IF ll_cnt > 0 THEN
  581. MessageBox('系统提示','当前单据已经有自动组装,不能重复组装!',information!,OK!)
  582. RETURN
  583. END IF
  584. s_edit_index_tran s_tran88
  585. s_tran.b_long = dw_uc.Object.u_outware_scid[ll_ucrow]
  586. s_tran.c_long = dw_uc.Object.u_outware_outwareid[ll_ucrow]
  587. s_tran.c_string = dw_uc.Object.u_outware_outwarecode[ll_ucrow]
  588. OpenWithParm(w_outware_sale_mx4di, s_tran)
  589. //uo_dismantle_install uo_ware_install
  590. //uo_ware_install = Create uo_dismantle_install
  591. //
  592. //FOR ll_j = 1 To dw_child.RowCount()
  593. // ls_mtrlwareid = dw_child.Object.u_outwaremx_mtrlwareid[ll_j]
  594. // ld_saleqty = dw_child.Object.u_outwaremx_qty[ll_j]
  595. //
  596. // SELECT u_mtrlware.mtrlwareid ,
  597. // u_mtrlware.mtrlid,
  598. // u_mtrlware.noallocqty,
  599. // u_mtrlware.planprice,
  600. // u_mtrlware.storageid,
  601. // u_mtrlware.plancode,
  602. // u_mtrlware.status,
  603. // u_mtrlware.woodcode,
  604. // u_mtrlware.pcode,
  605. // u_mtrldef.mtrlcode
  606. // INTO :ls_mtrlwareid,
  607. // :ls_mtrlid,
  608. // :ls_noallocqty,
  609. // :ls_planprice,
  610. // :ls_storageid,
  611. // :ls_plancode,
  612. // :ls_status,
  613. // :ls_woodcode,
  614. // :ls_pcode,
  615. // :ls_mtrlcode
  616. // FROM u_mtrldef,
  617. // u_mtrlware
  618. // WHERE ( u_mtrldef.mtrlid = u_mtrlware.mtrlid )
  619. // And ( u_mtrlware.mtrlwareid = :ls_mtrlwareid );
  620. // IF sqlca.SQLCode <> 0 THEN
  621. // rslt = 0
  622. // arg_msg = '第'+String(ll_j)+'行,查询物料库存信息失败.'+sqlca.SQLErrText
  623. // GOTO ext
  624. // END IF
  625. //
  626. // //计算组装结构
  627. // Long ll_SonMtrlid[]
  628. // String ls_pf_status[]
  629. // Decimal ld_Sonscale[]
  630. // String ls_mtrlname,ls_status_find
  631. // Decimal ld_noallocqty,ld_allqty,ld_maxqty
  632. //
  633. // DECLARE cur_pf CURSOR FOR
  634. // SELECT u_PrdPF.SonMtrlid,
  635. // u_PrdPF.Sonscale,
  636. // u_PrdPF.status
  637. // FROM u_PrdPF
  638. // Where u_PrdPF.mtrlid = :ls_mtrlid;
  639. //
  640. // OPEN cur_pf;
  641. // FETCH cur_pf Into :ll_SonMtrlid[it_mxt],:ld_Sonscale[it_mxt],:ls_pf_status[it_mxt];
  642. // DO WHILE sqlca.SQLCode = 0
  643. // it_mxt++
  644. // FETCH cur_pf Into :ll_SonMtrlid[it_mxt],:ld_Sonscale[it_mxt],:ls_pf_status[it_mxt];
  645. // LOOP
  646. // it_mxt = it_mxt - 1
  647. // CLOSE cur_pf;
  648. //
  649. // IF it_mxt = 0 THEN
  650. // rslt = 0
  651. // arg_msg = '第'+String(ll_j)+'行,该产品没有建立组装结构,不能计算'
  652. // GOTO ext
  653. // END IF
  654. //
  655. // ld_maxqty = 1000000
  656. // FOR ll_i = 1 To it_mxt
  657. // SELECT mtrlname INTO :ls_mtrlname
  658. // FROM u_mtrldef
  659. // Where mtrlid = :ll_SonMtrlid[ll_i];
  660. // IF sqlca.SQLCode <> 0 THEN
  661. // rslt = 0
  662. // arg_msg = '第'+String(ll_j)+'行,查询产品资料失败,'+sqlca.SQLErrText
  663. // GOTO ext
  664. // END IF
  665. //
  666. // IF sys_option_if_color = 1 THEN
  667. // ls_status_find = ls_status
  668. // ELSE
  669. // ls_status_find = ls_pf_status[ll_i]
  670. // END IF
  671. //
  672. // ld_noallocqty = 0
  673. // ld_allqty = 0
  674. // SELECT sum(noallocqty) INTO :ld_noallocqty
  675. // FROM u_mtrlware
  676. // WHERE storageid = :ls_storageid
  677. // AND mtrlid = :ll_SonMtrlid[ll_i]
  678. // And status = :ls_status_find;
  679. // IF sqlca.SQLCode <> 0 THEN
  680. // rslt = 0
  681. // arg_msg = '第'+String(ll_j)+'行,查询该产品组装材料'+ls_mtrlname+'的库存资料失败'
  682. // GOTO ext
  683. // END IF
  684. //
  685. // ld_allqty = ld_noallocqty/ld_Sonscale[ll_i]
  686. //
  687. // ld_maxqty = Min(ld_maxqty,ld_allqty)
  688. //
  689. // IF IsNull(ld_maxqty) THEN ld_maxqty = 0
  690. // NEXT
  691. // ld_qty = Truncate ( ld_maxqty, 0 )
  692. //
  693. // IF ld_saleqty > ld_qty THEN
  694. // rslt = 0
  695. // arg_msg = '第'+String(ll_j)+'行,产品没有足够的组装材料库存~n'+'发货单组装数量:'+String(ld_saleqty,'#,###0.##')+',库存最大可装数:'+String(ld_qty,'#,###0.##')
  696. // GOTO ext
  697. // END IF
  698. //
  699. // String mx_status,mx_woodcode,mx_plancode,mx_pcode,mx_mtrlcode
  700. // Dec mx_noallocqty,mx_cost
  701. // Long mx_mtrlwareid,mx_dxflag,mx_sptid
  702. //
  703. // IF uo_ware_install.newbegin(0,arg_msg) = 0 THEN //新建
  704. // rslt = 0
  705. // GOTO ext
  706. // END IF
  707. //
  708. // uo_ware_install.billdate = DateTime(Today(),Now()) // 发生时间
  709. // uo_ware_install.rep = publ_operator // 经手人
  710. // uo_ware_install.dscrp = ls_reason //备注
  711. // uo_ware_install.reason = ls_reason
  712. // uo_ware_install.storageid = ls_storageid
  713. // uo_ware_install.mtrlid = ls_mtrlid
  714. // uo_ware_install.mtrlwareid = ls_mtrlwareid
  715. // uo_ware_install.status = ls_status
  716. // uo_ware_install.plancode = ls_pcode
  717. // uo_ware_install.woodcode = ls_woodcode
  718. // uo_ware_install.qty = ld_saleqty
  719. // uo_ware_install.addqty = 0
  720. // uo_ware_install.price = ls_planprice
  721. // uo_ware_install.buildtype = 0
  722. // uo_ware_install.mtrlcode = ls_mtrlcode
  723. //
  724. // FOR ll_i = 1 To it_mxt
  725. // IF sys_option_if_color = 1 THEN
  726. // ls_status_find = ls_status
  727. // ELSE
  728. // ls_status_find = ls_pf_status[ll_i]
  729. // END IF
  730. //
  731. // SELECT mtrlwareid,
  732. // status,
  733. // woodcode,
  734. // plancode,
  735. // pcode,
  736. // noallocqty,
  737. // cost = case u_mtrlware.noallocqty when 0 then 0 else u_mtrlware.wareamt/u_mtrlware.noallocqty END,
  738. // dxflag,
  739. // sptid,
  740. // mtrlcode
  741. // INTO :mx_mtrlwareid,
  742. // :mx_status,
  743. // :mx_woodcode,
  744. // :mx_plancode,
  745. // :mx_pcode,
  746. // :mx_noallocqty,
  747. // :mx_cost,
  748. // :mx_dxflag,
  749. // :mx_sptid,
  750. // :mx_mtrlcode
  751. // FROM u_mtrlware,u_mtrldef
  752. // WHERE u_mtrlware.mtrlid = u_mtrldef.mtrlid
  753. // AND u_mtrlware.mtrlid = :ll_SonMtrlid[ll_i]
  754. // AND u_mtrlware.storageid = :ls_storageid
  755. // And u_mtrlware.status = :ls_status_find;
  756. // IF sqlca.SQLCode <> 0 THEN
  757. // rslt = 0
  758. // arg_msg = '第'+String(ll_j)+'行,查询该产品组装材料的库存资料失败>>'+sqlca.SQLErrText
  759. // GOTO ext
  760. // END IF
  761. //
  762. // IF uo_ware_install.acceptmx(ll_i,&
  763. // ls_storageid,&
  764. // mx_mtrlwareid,&
  765. // ll_SonMtrlid[ll_i],&
  766. // ld_saleqty * ld_Sonscale[ll_i],&
  767. // 0,&
  768. // mx_cost,&
  769. // mx_status,&
  770. // mx_plancode,&
  771. // mx_woodcode,&
  772. // '',&
  773. // mx_mtrlcode,&
  774. // mx_pcode,&
  775. // mx_dxflag,&
  776. // mx_sptid,&
  777. // arg_msg,&
  778. // ld_Sonscale[ll_i]) = 0 THEN
  779. // rslt = 0
  780. // GOTO ext
  781. // END IF
  782. // NEXT
  783. //
  784. // IF uo_ware_install.Save(arg_msg,False) = 0 THEN
  785. // rslt = 0
  786. // GOTO ext
  787. // END IF
  788. //
  789. // IF uo_ware_install.getinfo(uo_ware_install.billid,arg_msg) = 0 THEN
  790. // rslt = 0
  791. // GOTO ext
  792. // END IF
  793. //
  794. // IF uo_ware_install.auditing(publ_operator,False,arg_msg) = 0 THEN
  795. // rslt = 0
  796. // GOTO ext
  797. // END IF
  798. //NEXT
  799. //
  800. //
  801. //ext:
  802. //IF rslt = 0 THEN
  803. // ROLLBACK Using sqlca;
  804. // MessageBox('错误',arg_msg,stopsign!,OK!)
  805. //ELSEIF rslt = 1 THEN
  806. // COMMIT Using sqlca;
  807. // MessageBox('提示','自动组装成功',information!,OK!)
  808. //END IF
  809. end event
  810. event ue_fj_edit();IF dw_edit_mode THEN
  811. MessageBox('提示','编辑状态下不可用',information!,OK!)
  812. RETURN
  813. END IF
  814. //IF NOT f_power_ind(1098) THEN
  815. // MessageBox(publ_operator,sys_msg_pow)
  816. // RETURN
  817. //END IF
  818. s_edit_index_tran s_pic
  819. Long ll_ConnectionID
  820. String arg_msg
  821. Long ls_row
  822. ls_row = dw_pageretr.GetRow()
  823. IF ls_row <= 0 THEN
  824. RETURN
  825. END IF
  826. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  827. MessageBox('提示','没有指定附件数据库连接'+arg_msg,information!,OK!)
  828. RETURN
  829. END IF
  830. s_pic.f_long = 104 //销售订单的mainID
  831. s_pic.f_string = dw_pageretr.Object.u_outware_outwarecode[ls_row]
  832. s_pic.g_long = dw_pageretr.Object.u_outware_outwareid[ls_row]
  833. s_pic.e_long = dw_pageretr.Object.u_outware_scid[ls_row]
  834. s_pic.sqltransaction = sys_filedb_sqlca
  835. OpenWithParm(w_fj_bill_mng,s_pic)
  836. wf_check_billfj()
  837. end event
  838. event ue_fj_view();IF dw_edit_mode THEN
  839. MessageBox('提示','编辑状态下不可用',information!,OK!)
  840. RETURN
  841. END IF
  842. s_edit_index_tran s_pic
  843. Long ll_ConnectionID
  844. String arg_msg
  845. Long ls_row
  846. ls_row = dw_pageretr.GetRow()
  847. IF ls_row <= 0 THEN
  848. RETURN
  849. END IF
  850. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  851. MessageBox('提示','没有指定附件数据库连接'+arg_msg,information!,OK!)
  852. RETURN
  853. END IF
  854. s_pic.f_long = 104 //销售订单的mainID
  855. s_pic.f_string = dw_pageretr.Object.u_outware_outwarecode[ls_row]
  856. s_pic.g_long = dw_pageretr.Object.u_outware_outwareid[ls_row]
  857. s_pic.e_long = dw_pageretr.Object.u_outware_scid[ls_row]
  858. s_pic.sqltransaction = sys_filedb_sqlca
  859. OpenWithParm(w_fj_bill_view,s_pic)
  860. end event
  861. event ue_cmpl_addqty();Int ll_flag
  862. Decimal ll_value
  863. long ll_num
  864. String ls_qty[]
  865. Decimal ld_qty
  866. Long i,j,k
  867. String ls_mtrlmode
  868. s_cmpl_addqty s_cmpl
  869. dw_child.AcceptText()
  870. IF dw_edit_mode THEN
  871. Open(w_cmpl_addqty_ch_sale)
  872. s_cmpl = Message.PowerObjectParm
  873. ll_flag = s_cmpl.flag
  874. ll_value = s_cmpl.addvalue
  875. ll_num = s_cmpl.num
  876. IF ll_value <= 0 THEN RETURN
  877. IF dw_child.RowCount() <= 0 THEN RETURN
  878. FOR i = 1 TO dw_child.RowCount()
  879. IF IsNull(ls_mtrlmode) THEN
  880. CONTINUE
  881. ELSE
  882. ls_mtrlmode = dw_child.Object.u_mtrldef_mtrlmode[i]
  883. IF Pos(ls_mtrlmode,'*') = 0 THEN
  884. CONTINUE
  885. ELSE
  886. j = 0
  887. DO WHILE Pos(ls_mtrlmode,'*') > 0
  888. j++
  889. ls_qty[j] = Mid(ls_mtrlmode,1,Pos(ls_mtrlmode,'*') - 1)
  890. ls_mtrlmode = Mid(ls_mtrlmode,Pos(ls_mtrlmode,'*') + 1)
  891. LOOP
  892. j++
  893. ls_qty[j] = ls_mtrlmode
  894. END IF
  895. ld_qty = 1
  896. FOR k = 1 TO j
  897. ld_qty = ld_qty * Dec(ls_qty[k])
  898. NEXT
  899. IF ll_flag = 0 THEN
  900. dw_child.Object.u_outwaremx_addqty[i] = Round(ld_qty * dw_child.Object.u_outwaremx_uqty[i] * ll_value,ll_num)
  901. ELSE
  902. dw_child.Object.u_outwaremx_addqty[i] = Round(ld_qty * dw_child.Object.u_outwaremx_uqty[i] / ll_value,ll_num)
  903. END IF
  904. END IF
  905. NEXT
  906. END IF
  907. end event
  908. event ue_cmpl_qty();IF dw_child.GetRow() = 0 THEN RETURN
  909. Long child_row
  910. Long uc_row
  911. Long li_cusid,li_mtrlid
  912. Decimal ld_cusprice
  913. uc_row = dw_uc.GetRow()
  914. li_cusid = dw_uc.Object.u_outware_cusid[uc_row]
  915. dw_child.AcceptText()
  916. child_row = dw_child.GetRow()
  917. s_cmpl_qty s_cmpl,s_return
  918. s_cmpl.qty = dw_child.Object.u_outwaremx_uqty[child_row]
  919. s_cmpl.formula = dw_child.Object.u_outwaremx_formula[child_row]
  920. s_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row]
  921. s_cmpl.price = dw_child.Object.u_outwaremx_enprice[child_row]
  922. s_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row]
  923. s_cmpl.status = dw_child.Object.u_outwaremx_status[child_row]
  924. s_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row]
  925. s_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row]
  926. s_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row]
  927. s_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row]
  928. s_cmpl.packqty = dw_child.Object.u_outwaremx_packqty[child_row]
  929. s_cmpl.mxdscrp = dw_child.Object.u_outwaremx_mxdscrp[child_row]
  930. s_cmpl.mxdscrp2 = dw_child.Object.mxdscrp2[child_row]
  931. s_cmpl.mxdscrp3 = dw_child.Object.u_outwaremx_mxdscrp3[child_row]
  932. s_cmpl.mxdscrp4 = dw_child.Object.u_outwaremx_mxdscrp4[child_row]
  933. li_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row]
  934. SELECT price
  935. INTO :ld_cusprice
  936. FROM u_cust
  937. INNER JOIN u_sale_price_mx ON u_sale_price_mx.Pricelistid = u_cust.Pricelistid
  938. WHERE u_sale_price_mx.mtrlid = :li_mtrlid
  939. AND u_cust.cusid = :li_cusid;
  940. IF SQLCA.SQLCODE <> 0 THEN
  941. ld_cusprice = 0
  942. END IF
  943. s_cmpl.cusprice = ld_cusprice
  944. IF NOT IsValid(w_cmpl_qty_ch) THEN
  945. OpenWithParm(w_cmpl_qty_ch,s_cmpl)
  946. s_return = Message.PowerObjectParm
  947. IF s_return.formula <> s_cmpl.formula or s_return.qty <> s_cmpl.qty THEN
  948. dw_child.Object.u_outwaremx_uqty[child_row] = s_return.qty
  949. dw_child.Object.u_outwaremx_formula[child_row] = s_return.formula
  950. END IF
  951. END IF
  952. end event
  953. event ue_p_cmpl_qty();IF not dw_edit_mode THEN return
  954. IF dw_child.RowCount() = 0 THEN RETURN
  955. Long i
  956. String ls_formula
  957. String ls_msg
  958. String ls_rs
  959. String ls_num
  960. Decimal ld_addqty
  961. Decimal ld_price
  962. Decimal ld_rebate
  963. Decimal ld_qty
  964. dw_child.AcceptText()
  965. s_cmpl_qty s_cmpl
  966. Open(w_cmpl_qty_ch_son)
  967. s_cmpl = Message.PowerObjectParm
  968. dw_uc.SetRedraw(FALSE)
  969. FOR i = 1 TO dw_child.RowCount()
  970. ld_qty = 0
  971. IF dw_child.Object.u_outwaremx_formula[i] <> '' THEN
  972. s_cmpl.formula = dw_child.Object.u_outwaremx_formula[i]
  973. s_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[i]
  974. s_cmpl.price = dw_child.Object.u_outwaremx_enprice[i]
  975. s_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[i]
  976. s_cmpl.status = dw_child.Object.u_outwaremx_status[i]
  977. s_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[i]
  978. s_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[i]
  979. s_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[i]
  980. s_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[i]
  981. IF f_cmpl_qty(s_cmpl,ld_qty,ls_msg) = 0 THEN
  982. MessageBox('提示','第' + String(i) + '行,' + ls_msg, Information!, OK! )
  983. GOTO ext
  984. END IF
  985. dw_child.Object.u_outwaremx_uqty[i] = ld_qty
  986. dw_child.Object.u_outwaremx_saleqty[i] = ld_qty
  987. END IF
  988. NEXT
  989. ext:
  990. if sys_option_outware_if_saleqty = 0 then
  991. dw_child.SetColumn('u_outwaremx_uqty')
  992. else
  993. dw_child.SetColumn('u_outwaremx_saleqty')
  994. end if
  995. dw_uc.SetRedraw(TRUE)
  996. end event
  997. event ue_cmpl_status_qty();Int ll_flag
  998. Decimal ll_value
  999. Long ll_num
  1000. Long i,j,k
  1001. String ls_mtrlmode
  1002. String ls_status
  1003. Decimal ld_qty
  1004. Decimal ld_addqty
  1005. String ls_msg
  1006. Long ll_type
  1007. s_cmpl_addqty s_cmpl
  1008. dw_child.AcceptText()
  1009. dw_uc.SetRedraw(FALSE)
  1010. IF dw_edit_mode THEN
  1011. Open(w_cmpl_status_qty_ch)
  1012. s_cmpl = Message.PowerObjectParm
  1013. ll_flag = s_cmpl.flag
  1014. ll_value = s_cmpl.addvalue
  1015. ll_num = s_cmpl.num
  1016. ll_type = s_cmpl.cmptype
  1017. IF ll_value <= 0 THEN RETURN
  1018. IF dw_child.RowCount() <= 0 THEN RETURN
  1019. FOR i = 1 TO dw_child.RowCount()
  1020. ld_addqty = dw_child.Object.u_outwaremx_addqty[i]
  1021. CHOOSE CASE ll_type
  1022. CASE 0
  1023. ls_status = dw_child.Object.u_outwaremx_status[i]
  1024. CASE 1
  1025. ls_status = dw_child.Object.u_outwaremx_woodcode[i]
  1026. CASE 2
  1027. ls_status = dw_child.Object.u_outwaremx_pcode[i]
  1028. CASE 3
  1029. ls_status = dw_child.Object.u_mtrldef_mtrlsectype[i]
  1030. CASE 4
  1031. ls_status = dw_child.Object.u_mtrldef_zxmtrlmode[i]
  1032. END CHOOSE
  1033. IF ld_addqty = 0 OR ls_status = '' THEN
  1034. ELSE
  1035. ld_qty = 0
  1036. IF f_cmpl_status_qty(ld_addqty,ls_status,ld_qty,ls_msg) = 0 THEN
  1037. MessageBox('错误',ls_msg,stopsign!,OK!)
  1038. GOTO ext
  1039. END IF
  1040. IF ll_flag = 0 THEN
  1041. dw_child.Object.u_outwaremx_uqty[i] = Round(ld_qty * ll_value,ll_num)
  1042. ELSE
  1043. dw_child.Object.u_outwaremx_uqty[i] = Round(ld_qty / ll_value,ll_num)
  1044. END IF
  1045. END IF
  1046. NEXT
  1047. END IF
  1048. ext:
  1049. dw_uc.SetRedraw(TRUE)
  1050. end event
  1051. event ue_view_mxdscrp();s_view_dscrp s_view,s_return
  1052. String ls_dscrp
  1053. dw_child.AcceptText()
  1054. ls_dscrp = dw_child.Object.u_outwaremx_mxdscrp[dw_child.GetRow()]
  1055. s_view.Title = '销售发货单明细备注'
  1056. s_view.dscrp = ls_dscrp
  1057. s_view.editmode = dw_edit_mode
  1058. OpenWithParm(w_view_dscrp,s_view)
  1059. IF dw_edit_mode THEN
  1060. s_return = Message.PowerObjectParm
  1061. dw_child.Object.u_outwaremx_mxdscrp[dw_child.GetRow()] = s_return.dscrp
  1062. END IF
  1063. end event
  1064. event ue_p_formula_set();IF NOT dw_edit_mode THEN RETURN
  1065. IF MessageBox('提示','是否要确定要批设定公式', question!, YesNo!, 2) = 2 THEN
  1066. RETURN
  1067. END IF
  1068. Long ll_i
  1069. dw_child.AcceptText()
  1070. dw_child.SetRedraw(FALSE)
  1071. FOR ll_i = 1 TO dw_child.RowCount()
  1072. IF ll_i = 1 THEN CONTINUE
  1073. dw_child.Object.u_outwaremx_formula[ll_i] = dw_child.Object.u_outwaremx_formula[1]
  1074. NEXT
  1075. dw_child.SetRedraw(TRUE)
  1076. end event
  1077. event ue_view_mxdscrp2();s_view_dscrp s_view,s_return
  1078. String ls_dscrp
  1079. dw_child.AcceptText()
  1080. ls_dscrp = dw_child.Object.mxdscrp2[dw_child.GetRow()]
  1081. s_view.Title = '销售发货单明细备注2'
  1082. s_view.dscrp = ls_dscrp
  1083. s_view.editmode = dw_edit_mode
  1084. OpenWithParm(w_view_dscrp2,s_view)
  1085. IF dw_edit_mode THEN
  1086. s_return = Message.PowerObjectParm
  1087. dw_child.Object.mxdscrp2[dw_child.GetRow()] = s_return.dscrp
  1088. END IF
  1089. end event
  1090. event ue_ch_station();IF dw_edit_mode THEN
  1091. Long ll_row
  1092. s_station s_station_2
  1093. String arg_msg
  1094. dw_uc.AcceptText()
  1095. ll_row = dw_uc.GetRow()
  1096. IF ll_row <= 0 THEN
  1097. MessageBox('提示','请先选择客户',information!,OK!)
  1098. RETURN
  1099. END IF
  1100. IF NOT IsValid(w_station_edit) THEN
  1101. s_edit_index_tran s_ch_tran
  1102. s_ch_tran.if_retrieve_all = FALSE
  1103. s_ch_tran.work_mode = 1
  1104. s_ch_tran.arg_pkid = 0
  1105. s_ch_tran.arg_string_code = ''
  1106. s_ch_tran.if_select_all = FALSE
  1107. OpenWithParm(w_station_edit,s_ch_tran) //调用
  1108. s_station_2 = Message.PowerObjectParm //接受返回结构
  1109. IF s_station_2.stationid = 0 THEN RETURN
  1110. dw_uc.Object.u_outware_relstr_1[ll_row] = s_station_2.stationname
  1111. dw_uc.Object.u_outware_relstr_2[ll_row] = s_station_2.tele
  1112. dw_uc.Object.u_outware_relstr_3[ll_row] = s_station_2.address
  1113. END IF
  1114. END IF
  1115. end event
  1116. event ue_ch_outrepdef();IF NOT IsValid(w_outrepdef_edit_ch) THEN
  1117. OPEN(w_outrepdef_edit_ch)
  1118. s_outrepdef s_outrep_ch
  1119. s_outrep_ch = Message.PowerObjectParm
  1120. IF s_outrep_ch.outrepname <> '' THEN
  1121. dw_uc.Object.u_outware_outrep[dw_uc.GetRow()] = s_outrep_ch.outrepname
  1122. END IF
  1123. END IF
  1124. end event
  1125. event ue_ch_banktype();IF NOT IsValid(w_banktype_edit_ch) THEN
  1126. s_edit_index_tran s_open //传递参数使用
  1127. s_open.work_mode = 1
  1128. s_open.c_long = 0
  1129. Openwithparm(w_banktype_edit_ch, s_open)
  1130. s_banktype s_ch
  1131. s_ch = Message.PowerObjectParm
  1132. IF s_ch.banktypeid > 0 THEN
  1133. dw_uc.Object.u_outware_relint_1[dw_uc.GetRow()] = s_ch.banktypeid
  1134. END IF
  1135. datawindowchild childdw
  1136. dw_uc.GetChild("u_outware_relint_1",childdw)
  1137. childdw.SetTransObject (sqlca)
  1138. childdw.Retrieve()
  1139. END IF
  1140. end event
  1141. event ue_ch_money();IF NOT IsValid(w_currency_edit_ch) THEN
  1142. Open(w_currency_edit_ch)
  1143. s_currency s_ch
  1144. s_ch = Message.PowerObjectParm
  1145. IF s_ch.moneyid > 0 THEN
  1146. dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] = s_ch.moneyid
  1147. dw_uc.Object.u_outware_mrate[dw_uc.GetRow()] = s_ch.rate
  1148. END IF
  1149. datawindowchild childdw
  1150. dw_uc.GetChild("u_outware_relint_2",childdw)
  1151. childdw.SetTransObject (sqlca)
  1152. childdw.Retrieve()
  1153. END IF
  1154. end event
  1155. event ue_csecpriceaudit();IF dw_edit_mode THEN
  1156. MessageBox('提示',"编辑状态下不可以使用!",information!,OK!)
  1157. return
  1158. END IF
  1159. IF NOT f_power_ind(1633) THEN
  1160. MessageBox('提示',sys_msg_pow,information!,OK!)
  1161. RETURN
  1162. END IF
  1163. String arg_msg
  1164. Long pagerert_row
  1165. pagerert_row = dw_pageretr.GetRow()
  1166. IF pagerert_row <= 0 THEN
  1167. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  1168. RETURN
  1169. END IF
  1170. IF uo_ware.c_secpriceaudit(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row],TRUE,arg_msg) = 0 THEN
  1171. MessageBox('错误',arg_msg,stopsign!,OK!)
  1172. RETURN
  1173. END IF
  1174. //日志
  1175. Long ls_id
  1176. String ls_code
  1177. ls_id = dw_pageretr.Object.u_outware_outwareid[pagerert_row]
  1178. ls_code = dw_pageretr.Object.u_outware_outwarecode[pagerert_row]
  1179. f_setsysoplog('销售发货单','反回单,id:'+String(ls_id)+',code:'+ls_code,arg_msg,TRUE)
  1180. //--
  1181. MessageBox('提示','反回单成功!',information!,OK!)
  1182. wf_refresh_curuc(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row])
  1183. end event
  1184. event ue_secpriceaudit();IF dw_edit_mode THEN
  1185. MessageBox('提示',"编辑状态下不可以使用!",information!,OK!)
  1186. return
  1187. END IF
  1188. IF NOT f_power_ind(1632) THEN
  1189. MessageBox('提示',sys_msg_pow,information!,OK!)
  1190. RETURN
  1191. END IF
  1192. String arg_msg
  1193. Long pagerert_row
  1194. pagerert_row = dw_pageretr.GetRow()
  1195. IF pagerert_row <= 0 THEN
  1196. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  1197. RETURN
  1198. END IF
  1199. IF uo_ware.secpriceaudit(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row],TRUE,arg_msg) = 0 THEN
  1200. MessageBox('错误',arg_msg,stopsign!,OK!)
  1201. RETURN
  1202. END IF
  1203. MessageBox('提示','回单成功!',information!,OK!)
  1204. wf_refresh_curuc(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row])
  1205. end event
  1206. event ue_ch_dscrp();s_view_dscrp s_view,s_return
  1207. String ls_dscrp
  1208. dw_uc.AcceptText()
  1209. ls_dscrp = dw_uc.Object.u_outware_dscrp[dw_uc.GetRow()]
  1210. s_view.Title = '销售发货单备注'
  1211. s_view.dscrp = ls_dscrp
  1212. s_view.editmode = dw_edit_mode
  1213. OpenWithParm(w_view_dscrp,s_view)
  1214. IF dw_edit_mode THEN
  1215. s_return = Message.PowerObjectParm
  1216. dw_uc.Object.u_outware_dscrp[dw_uc.GetRow()] = s_return.dscrp
  1217. END IF
  1218. end event
  1219. event ue_ch_rel_address();s_view_dscrp s_view,s_return
  1220. String ls_dscrp
  1221. dw_uc.AcceptText()
  1222. ls_dscrp = dw_uc.Object.u_outware_rel_address[dw_uc.GetRow()]
  1223. s_view.Title = '客户地址'
  1224. s_view.dscrp = ls_dscrp
  1225. s_view.editmode = dw_edit_mode
  1226. OpenWithParm(w_view_dscrp2,s_view)
  1227. IF dw_edit_mode THEN
  1228. s_return = Message.PowerObjectParm
  1229. dw_uc.Object.u_outware_rel_address[dw_uc.GetRow()] = s_return.dscrp
  1230. END IF
  1231. end event
  1232. event ue_add_fymx();//用于选择明细内容,被f8[默认]\dw_fymx.doubleclicked调用
  1233. IF Not dw_edit_mode THEN RETURN
  1234. IF dw_uc.GetRow() <= 0 THEN
  1235. MessageBox('系统提示','请先选择单据')
  1236. RETURN
  1237. END IF
  1238. Long child_row
  1239. Long ls_cusid,ll_moneyid
  1240. Decimal ld_mrate
  1241. Long ls_j
  1242. s_edit_index_tran s_tran88
  1243. child_row = dw_fymx.GetRow()
  1244. IF Not IsValid(w_itemdef_ch) THEN
  1245. This.Enabled = False
  1246. s_tran88.work_mode = 1
  1247. Openwithparm(w_itemdef_ch, s_tran88) //调用
  1248. This.Enabled = True
  1249. s_itemdef s_inscust
  1250. s_inscust = Message.PowerObjectParm //接受返回结构
  1251. dw_fymx.SetRedraw(False)
  1252. IF s_inscust.itemid > 0 THEN //正常返回值则可以取以下值
  1253. IF dw_fymx.Find('u_outware_itemmx_itemid = '+String(s_inscust.itemid),1,dw_fymx.RowCount()) > 0 THEN
  1254. dw_fymx.SetRedraw(True)
  1255. dw_fymx.SetFocus()
  1256. RETURN
  1257. END IF
  1258. IF dw_fymx.GetRow() > 0 THEN
  1259. IF dw_fymx.Object.u_outware_itemmx_itemid[child_row] <> 0 THEN
  1260. child_row = dw_fymx.InsertRow (0)
  1261. ELSE
  1262. child_row = dw_fymx.GetRow()
  1263. END IF
  1264. ELSE
  1265. child_row = dw_fymx.InsertRow (0)
  1266. END IF
  1267. dw_fymx.Object.u_outware_itemmx_itemid[child_row] = s_inscust.itemid
  1268. dw_fymx.Object.u_itemdef_itemcode[child_row] = s_inscust.itemcode
  1269. dw_fymx.Object.u_itemdef_itemname[child_row] = s_inscust.itemname
  1270. dw_fymx.Object.u_itemdef_itemtype[child_row] = s_inscust.itemtype
  1271. dw_fymx.Object.u_outware_itemmx_itype[child_row] = s_inscust.itemflag
  1272. dw_fymx.SetColumn('u_outware_itemmx_amt')
  1273. END IF
  1274. dw_fymx.SetRedraw(True)
  1275. dw_fymx.SetFocus()
  1276. END IF
  1277. end event
  1278. event insert_childrow_fymx();Long li_row
  1279. li_row = dw_fymx.InsertRow(0)
  1280. dw_fymx.ScrollToRow(li_row)
  1281. dw_fymx.SetColumn ('u_itemdef_itemcode')
  1282. end event
  1283. event ue_importlmsaleprice();// //导入设定售价
  1284. Long ls_row,ls_cusid,ll_mtrlid
  1285. String ls_cuscode,ls_cusname,arg_msg
  1286. Long uc_row
  1287. Decimal obj_price ,obj_rebate,obj_rate
  1288. String err_str = ''
  1289. Boolean if_exist_price = True
  1290. Long ls_pricelistid,ll_moneyid
  1291. String ls_status,ls_pcode,ls_woodcode,ls_unit
  1292. uc_row = dw_uc.GetRow()
  1293. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  1294. IF ll_moneyid = 0 Or IsNull(ll_moneyid) THEN
  1295. MessageBox('提示','请先选择币种',information!,OK!)
  1296. RETURN
  1297. END IF
  1298. IF dw_uc.Object.u_outware_cusid[uc_row] = 0 Or IsNull(dw_uc.Object.u_outware_cusid[uc_row]) THEN
  1299. MessageBox('提示',"请选择销售客户!",information!,OK!)
  1300. RETURN
  1301. END IF
  1302. ls_cusid = dw_uc.Object.u_outware_cusid[uc_row]
  1303. ls_cuscode = dw_uc.Object.u_cust_cuscode[uc_row]
  1304. ls_cusname = dw_uc.Object.u_cust_name[uc_row]
  1305. IF dw_child.RowCount() <= 0 THEN
  1306. MessageBox('提示',"请选择产品!",information!,OK!)
  1307. RETURN
  1308. END IF
  1309. FOR ls_row = 1 To dw_child.RowCount()
  1310. ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ls_row]
  1311. SELECT lmsaleprice
  1312. INTO :obj_price
  1313. FROM u_mtrldef
  1314. Where mtrlid = :ll_mtrlid;
  1315. IF sqlca.SQLCode <> 0 THEN
  1316. obj_price = 0
  1317. END IF
  1318. obj_rebate = 1
  1319. dw_child.Object.u_outwaremx_enprice[ls_row] = obj_price
  1320. dw_child.Object.u_outwaremx_rebate[ls_row] = obj_rebate
  1321. NEXT
  1322. IF err_str <> '' THEN
  1323. MessageBox('错误',err_str,stopsign!,OK!)
  1324. END IF
  1325. end event
  1326. event ue_ch_outtype();IF Not dw_edit_mode THEN RETURN
  1327. Long child_row
  1328. Long ls_outtypeid
  1329. child_row = dw_child.GetRow()
  1330. IF child_row <= 0 THEN RETURN
  1331. IF Not IsValid(w_outtype_edit) THEN
  1332. Open(w_outtype_edit)
  1333. ls_outtypeid = Message.DoubleParm
  1334. datawindowchild childdw
  1335. dw_child.GetChild("u_outwaremx_outtype",childdw)
  1336. childdw.SetTransObject (sqlca)
  1337. IF childdw.Retrieve() = 0 THEN
  1338. childdw.InsertRow(0)
  1339. END IF
  1340. IF ls_outtypeid = 0 THEN RETURN
  1341. dw_child.Object.u_outwaremx_outtype[child_row] = ls_outtypeid
  1342. dw_child.SetFocus()
  1343. END IF
  1344. end event
  1345. event ue_add_addqty();IF NOT dw_edit_mode THEN RETURN
  1346. IF flag = 1 THEN RETURN
  1347. Long child_row
  1348. Int if_addmxdscrp
  1349. String ls_mxdscrp
  1350. s_addqty_input s_input
  1351. dw_child.AcceptText( )
  1352. child_row = dw_child.GetRow()
  1353. IF child_row <= 0 THEN RETURN
  1354. IF dw_child.Object.u_outwaremx_mtrlid[child_row] <= 0 THEN RETURN
  1355. ls_mxdscrp = dw_child.Object.u_outwaremx_mxdscrp[child_row]
  1356. IF NOT IsValid(w_addqty_input) THEN
  1357. OpenWithParm(w_addqty_input,ls_mxdscrp)
  1358. s_input = Message.PowerObjectParm
  1359. IF s_input.addqty = -1 THEN RETURN
  1360. dw_child.Object.u_outwaremx_addqty[child_row] = s_input.addqty
  1361. IF s_input.addqtystr <> '' THEN
  1362. dw_child.Object.u_outwaremx_mxdscrp[child_row] = s_input.addqtystr
  1363. END IF
  1364. IF s_input.formula <> '' THEN
  1365. dw_child.Object.u_outwaremx_formula[child_row] = s_input.formula
  1366. END IF
  1367. IF s_input.flag = 1 THEN
  1368. dw_child.Object.u_outwaremx_saleqty[child_row] = s_input.qty
  1369. dw_child.Object.u_outwaremx_uqty[child_row] = s_input.qty
  1370. END IF
  1371. END IF
  1372. end event
  1373. event ue_di_auto_del();IF sys_option_outware_if_di <> 0 THEN
  1374. MessageBox('提示','系统选项[084]已设置仓审自动组装,不能手动操作',information!,OK!)
  1375. RETURN
  1376. END IF
  1377. IF Not f_power_ind(288) THEN
  1378. MessageBox('提示',sys_msg_pow,information!,OK!)
  1379. RETURN
  1380. END IF
  1381. IF MessageBox('提示','是否确定要删除相应组装单?',question!,YesNo!) = 2 THEN return
  1382. Long ll_ucrow, ll_j,rslt = 1
  1383. String arg_msg
  1384. String ls_outwarecode
  1385. String ls_reason
  1386. Long ll_cnt
  1387. long ll_billid, ll_billid_arr[]
  1388. string ls_billcode, ls_billcode_arr[]
  1389. ll_ucrow = dw_uc.GetRow()
  1390. IF ll_ucrow <= 0 THEN
  1391. MessageBox('系统提示','请先选择单据')
  1392. RETURN
  1393. END IF
  1394. ls_outwarecode = dw_uc.Object.u_outware_outwarecode[ll_ucrow]
  1395. ls_reason = '销售发货单:'+ls_outwarecode+'自动组装'
  1396. uo_dismantle_install uo_ware_install
  1397. uo_ware_install = Create uo_dismantle_install
  1398. //uo_ware_install.sysautobuild = true
  1399. //读取单据
  1400. DECLARE cur_getdi CURSOR FOR
  1401. SELECT billid , billcode
  1402. FROM u_dismantle_install
  1403. WHERE billtype = 0
  1404. AND reason = :ls_reason
  1405. Using sqlca;
  1406. OPEN cur_getdi;
  1407. DO WHILE sqlca.SQLCode = 0
  1408. FETCH cur_getdi Into :ll_billid, :ls_billcode;
  1409. IF sqlca.SQLCode <> 0 THEN EXIT
  1410. ll_cnt++
  1411. ll_billid_arr[ll_cnt] = ll_billid
  1412. ls_billcode_arr[ll_cnt] = ls_billcode
  1413. LOOP
  1414. CLOSE cur_getdi;
  1415. FOR ll_j = 1 To ll_cnt
  1416. IF uo_ware_install.getinfo(ll_billid_arr[ll_j],arg_msg) = 0 THEN
  1417. rslt = 0
  1418. GOTO ext
  1419. END IF
  1420. IF uo_ware_install.c_auditing(False,arg_msg) = 0 THEN
  1421. rslt = 0
  1422. GOTO ext
  1423. END IF
  1424. IF uo_ware_install.del(ll_billid_arr[ll_j],False,arg_msg) = 0 THEN
  1425. rslt = 0
  1426. GOTO ext
  1427. END IF
  1428. NEXT
  1429. ext:
  1430. destroy uo_ware_install
  1431. IF rslt = 0 THEN
  1432. ROLLBACK Using sqlca;
  1433. MessageBox('错误',arg_msg,stopsign!,OK!)
  1434. ELSEIF rslt = 1 THEN
  1435. COMMIT Using sqlca;
  1436. MessageBox('提示','删除自动组装成功',information!,OK!)
  1437. END IF
  1438. end event
  1439. event ue_ch_mtrlware();//用于选择订单的库存id\dw_child.doubleclicked调用
  1440. If Not dw_edit_mode Then Return
  1441. If dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 Then Return
  1442. If flag = 1 Then Return
  1443. Long child_row,ll_storageid = 0, select_cnt
  1444. Long ll_moneyid
  1445. dw_uc.AcceptText()
  1446. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  1447. If ll_moneyid = 0 Or IsNull(ll_moneyid) Then
  1448. MessageBox('提示','请先选择币种',information!,OK!)
  1449. Return
  1450. End If
  1451. ll_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  1452. If ll_storageid = 0 Or IsNull(ll_storageid) Then
  1453. MessageBox('提示','请先选择仓库',information!,OK!)
  1454. Return
  1455. End If
  1456. Int li_if_cus_mtrlware,li_inwaretype
  1457. Select balctype ,
  1458. inwaretype
  1459. Into :li_if_cus_mtrlware,
  1460. :li_inwaretype
  1461. From u_storage
  1462. Where storageid = :ll_storageid;
  1463. If sqlca.SQLCode <> 0 Then
  1464. MessageBox('错误','查询仓库是否使用客户库存失败',stopsign!,OK!)
  1465. Return
  1466. End If
  1467. Long ls_null
  1468. s_edit_index_tran s_tranf8 //传递参数使用
  1469. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  1470. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  1471. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  1472. s_tranf8.b_long = 0
  1473. Long chc = 1,ls_j,ll_cusid
  1474. SetNull(ls_null)
  1475. ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  1476. If IsNull(ll_cusid) Or ll_cusid = 0 Then
  1477. This.TriggerEvent("ue_f9")
  1478. End If
  1479. child_row = dw_child.GetRow()
  1480. If child_row <= 0 Then
  1481. MessageBox('错误','请选择按订单的明细行',stopsign!,OK!)
  1482. Return
  1483. End If
  1484. dw_uc.AcceptText()
  1485. ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  1486. If li_if_cus_mtrlware = 1 Then
  1487. s_tranf8.c_long = ll_cusid
  1488. Else
  1489. s_tranf8.c_long = -1
  1490. End If
  1491. If li_inwaretype = 3 Then //批号类型
  1492. s_tranf8.f_long = 1
  1493. Else
  1494. s_tranf8.f_long = 0
  1495. End If
  1496. If Not IsValid(w_mtrlware_storageid_ch_outware_sale_ml) Then
  1497. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  1498. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  1499. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  1500. s_tranf8.d_long = ll_storageid
  1501. s_tranf8.e_long = dw_child.Object.u_outwaremx_mtrlid[child_row]
  1502. s_tranf8.c_string = dw_child.Object.u_outwaremx_status[child_row]
  1503. s_tranf8.d_string = dw_child.Object.u_outwaremx_woodcode[child_row]
  1504. s_tranf8.e_string = dw_child.Object.u_outwaremx_pcode[child_row]
  1505. s_tranf8.f_string = dw_child.Object.u_outwaremx_plancode[child_row] //批号
  1506. dw_child.AcceptText()
  1507. If dw_child.GetRow() > 0 Then s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()])
  1508. OpenWithParm(w_mtrlware_storageid_ch_outware_sale_ml,s_tranf8)
  1509. s_mtrlware_noalloc_array S_INSCUST
  1510. S_INSCUST = Message.PowerObjectParm
  1511. For ls_j = 1 To UpperBound(S_INSCUST.mtrlwareid)
  1512. If S_INSCUST.mtrlwareid[ls_j] > 0 Then
  1513. select_cnt++
  1514. If select_cnt > 1 Then
  1515. //child_row = 0
  1516. dw_child.RowsCopy (child_row,child_row,Primary!,dw_child,child_row+1,Primary!)
  1517. child_row += 1
  1518. End If
  1519. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[ls_j]
  1520. dw_child.Object.u_outwaremx_mtrlid[child_row] = S_INSCUST.mtrlid[ls_j]
  1521. dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.u_mtrldef_mtrlcode[ls_j]
  1522. dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.u_mtrldef_mtrlname[ls_j]
  1523. dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST.u_mtrldef_mtrlmode[ls_j]
  1524. dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j]
  1525. If select_cnt = 1 Then
  1526. Else
  1527. dw_child.Object.u_outwaremx_saleqty[child_row] = 0
  1528. dw_child.Object.u_outwaremx_uqty[child_row] = 0 //S_INSCUST.noallocqty[ls_j] - S_INSCUST.noauditingqty[ls_j]
  1529. End If
  1530. dw_child.Object.u_outwaremx_planprice[child_row] = S_INSCUST.planprice[ls_j]
  1531. dw_child.Object.u_outwaremx_storageid[child_row] = S_INSCUST.storageid[ls_j]
  1532. dw_child.Object.u_outwaremx_plancode[child_row] = S_INSCUST.plancode[ls_j]
  1533. dw_child.Object.u_outwaremx_dxflag[child_row] = S_INSCUST.dxflag[ls_j]
  1534. dw_child.Object.u_outwaremx_status[child_row] = S_INSCUST.status[ls_j]
  1535. dw_child.Object.u_outwaremx_woodcode[child_row] = S_INSCUST.woodcode[ls_j]
  1536. dw_child.Object.u_outwaremx_pcode[child_row] = S_INSCUST.pcode[ls_j]
  1537. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST.u_mtrldef_zxmtrlmode[ls_j]
  1538. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST.u_mtrldef_mtrlsectype[ls_j]
  1539. dw_child.Object.u_outwaremx_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j]
  1540. Decimal lde_rate
  1541. f_find_unitrate(S_INSCUST.mtrlid[ls_j], S_INSCUST.u_mtrldef_unit[ls_j], lde_rate)
  1542. dw_child.Object.u_outwaremx_rate[child_row] = lde_rate
  1543. //
  1544. // //查询单价
  1545. // wf_get_price(child_row)
  1546. //
  1547. // dw_child.Object.u_mtrldef_curware_qty[child_row] = S_INSCUST.noallocqty[ls_j]
  1548. // dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null
  1549. // dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null
  1550. // dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j]
  1551. End If
  1552. Next
  1553. End If
  1554. If sys_option_outware_if_saleqty = 0 Then
  1555. dw_child.SetColumn('u_outwaremx_uqty')
  1556. Else
  1557. dw_child.SetColumn('u_outwaremx_saleqty')
  1558. End If
  1559. dw_child.SetRedraw(True)
  1560. dw_child.SetFocus()
  1561. ////////////////////////////////// //
  1562. end event
  1563. event ue_all_choice();Long i
  1564. FOR i = 1 To dw_pageretr.RowCount()
  1565. dw_pageretr.Object.if_ch[i] = 1
  1566. NEXT
  1567. cbx_all.checked = true
  1568. end event
  1569. event ue_allnot_choice();Long i
  1570. FOR i = 1 To dw_pageretr.RowCount()
  1571. dw_pageretr.Object.if_ch[i] = 0
  1572. NEXT
  1573. cbx_all.checked = false
  1574. end event
  1575. event ue_all_audit();Long ll_billid,ll_scid,li_flag,li_secflag,ll_i,ll_fail
  1576. String arg_msg,arg_msg1,ls_taskcode
  1577. IF Not (f_power_ind(65) Or f_power_ind(369)) THEN
  1578. MessageBox('提示',sys_msg_pow,information!,OK!)
  1579. RETURN
  1580. END IF
  1581. Open(w_sys_wait_jdt) //初始化进度条
  1582. w_sys_wait_jdt.Show()
  1583. w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount())
  1584. FOR ll_i = 1 To dw_pageretr.RowCount()
  1585. IF dw_pageretr.Object.if_ch[ll_i] = 0 THEN CONTINUE
  1586. w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.u_outware_outwarecode[ll_i] + " 正在审核..." //进度信息
  1587. ll_billid = dw_pageretr.Object.u_outware_outwareid[ll_i]
  1588. ll_scid = dw_pageretr.Object.u_outware_scid[ll_i]
  1589. li_flag = dw_pageretr.Object.flag[ll_i]
  1590. li_secflag = dw_pageretr.Object.secflag[ll_i]
  1591. ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[ll_i]
  1592. IF li_flag = 0 And li_secflag = 0 THEN //仓审
  1593. IF uo_ware.getinfo(ll_scid,ll_billid,arg_msg) = 0 THEN
  1594. ll_fail++
  1595. arg_msg1=arg_msg1 + ' ' + ls_taskcode
  1596. CONTINUE
  1597. END IF
  1598. IF uo_ware.auditing(True,arg_msg) = 0 THEN
  1599. ll_fail++
  1600. arg_msg1=arg_msg1 + ' ' + ls_taskcode
  1601. CONTINUE
  1602. END IF
  1603. END IF
  1604. w_sys_wait_jdt.wf_inc(ll_i) //进度
  1605. NEXT
  1606. Close(w_sys_wait_jdt)
  1607. if ll_fail<>0 then
  1608. MessageBox('提示','审核失败数 '+string(ll_fail) + ' '+ '失败单号:' + arg_msg1 ,information!,OK!)
  1609. end if
  1610. This.TriggerEvent('retrieve_pageretr')
  1611. end event
  1612. event ue_allnot_audit();Long ll_billid,ll_scid,li_flag,li_secflag,ll_i,ll_fail
  1613. String arg_msg,arg_msg1,ls_taskcode
  1614. IF Not (f_power_ind(869) Or f_power_ind(868) ) THEN
  1615. MessageBox('提示',sys_msg_pow,information!,OK!)
  1616. RETURN
  1617. END IF
  1618. Open(w_sys_wait_jdt) //初始化进度条
  1619. w_sys_wait_jdt.Show()
  1620. w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount())
  1621. FOR ll_i = 1 To dw_pageretr.RowCount()
  1622. IF dw_pageretr.Object.if_ch[ll_i] = 0 THEN CONTINUE
  1623. w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.u_outware_outwarecode[ll_i] + " 正在撤审..." //进度信息
  1624. ll_billid = dw_pageretr.Object.u_outware_outwareid[ll_i]
  1625. ll_scid = dw_pageretr.Object.u_outware_scid[ll_i]
  1626. li_flag = dw_pageretr.Object.flag[ll_i]
  1627. li_secflag = dw_pageretr.Object.secflag[ll_i]
  1628. ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[ll_i]
  1629. IF li_flag = 1 And li_secflag = 0 THEN //仓撤
  1630. IF uo_ware.getinfo(ll_scid,ll_billid,arg_msg) = 0 THEN
  1631. ll_fail++
  1632. arg_msg1 = arg_msg1 + ' ' + ls_taskcode
  1633. CONTINUE
  1634. END IF
  1635. IF uo_ware.c_auditing(True,arg_msg) = 0 THEN
  1636. ll_fail++
  1637. arg_msg1 = arg_msg1 + ' ' + ls_taskcode
  1638. CONTINUE
  1639. END IF
  1640. END IF
  1641. w_sys_wait_jdt.wf_inc(ll_i) //进度
  1642. NEXT
  1643. Close(w_sys_wait_jdt)
  1644. IF ll_fail <> 0 THEN
  1645. MessageBox('提示','撤审失败数 '+String(ll_fail) + ' '+ '失败单号:' + arg_msg1 ,information!,OK!)
  1646. END IF
  1647. This.TriggerEvent('retrieve_pageretr')
  1648. end event
  1649. event ue_all_delete();Long ll_billid,ll_scid,li_flag,li_secflag,ll_i,ll_fail
  1650. String arg_msg,arg_msg1,ls_taskcode
  1651. IF Not (f_power_ind(580) Or f_power_ind(583)) THEN
  1652. MessageBox('提示',sys_msg_pow,information!,OK!)
  1653. RETURN
  1654. END IF
  1655. Open(w_sys_wait_jdt) //初始化进度条
  1656. w_sys_wait_jdt.Show()
  1657. w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount())
  1658. FOR ll_i = 1 To dw_pageretr.RowCount()
  1659. IF dw_pageretr.Object.if_ch[ll_i] = 0 THEN CONTINUE
  1660. w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.u_outware_outwarecode[ll_i] + " 正在删除..." //进度信息
  1661. ll_billid = dw_pageretr.Object.u_outware_outwareid[ll_i]
  1662. ll_scid = dw_pageretr.Object.u_outware_scid[ll_i]
  1663. li_flag = dw_pageretr.Object.flag[ll_i]
  1664. li_secflag = dw_pageretr.Object.secflag[ll_i]
  1665. ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[ll_i]
  1666. IF li_flag = 0 And li_secflag = 0 THEN //删除
  1667. IF uo_ware.del(ll_scid,ll_billid,arg_msg,True) = 0 THEN
  1668. ll_fail++
  1669. arg_msg1 = arg_msg1 + ' ' + ls_taskcode
  1670. CONTINUE
  1671. END IF
  1672. END IF
  1673. w_sys_wait_jdt.wf_inc(ll_i) //进度
  1674. NEXT
  1675. Close(w_sys_wait_jdt)
  1676. IF ll_fail <> 0 THEN
  1677. MessageBox('提示','删除失败数 '+String(ll_fail) + ' '+ '失败单号:' + arg_msg1 ,information!,OK!)
  1678. END IF
  1679. This.TriggerEvent('retrieve_pageretr')
  1680. end event
  1681. event ue_p_rebate();IF NOT dw_edit_mode THEN RETURN
  1682. IF MessageBox('提示','是否要确定要批设定折扣', question!, YesNo!, 2) = 2 THEN
  1683. RETURN
  1684. END IF
  1685. Long ll_i
  1686. dw_child.AcceptText()
  1687. dw_child.SetRedraw(FALSE)
  1688. FOR ll_i = 2 TO dw_child.RowCount()
  1689. dw_child.Object.u_outwaremx_rebate[ll_i] = dw_child.Object.u_outwaremx_rebate[1]
  1690. NEXT
  1691. dw_child.SetRedraw(TRUE)
  1692. end event
  1693. event ue_fj_edit_mx();IF dw_edit_mode THEN
  1694. MessageBox('提示','编辑状态下不可用')
  1695. RETURN
  1696. END IF
  1697. //IF NOT f_power_ind(1098) THEN
  1698. // MessageBox(publ_operator,sys_msg_pow)
  1699. // RETURN
  1700. //END IF
  1701. s_edit_index_tran s_pic
  1702. Long ll_ConnectionID
  1703. String arg_msg
  1704. Long ls_row,ll_mxrow
  1705. ls_row = dw_pageretr.GetRow()
  1706. IF ls_row <= 0 THEN
  1707. RETURN
  1708. END IF
  1709. ll_mxrow = dw_child.GetRow()
  1710. IF ll_mxrow <= 0 THEN
  1711. RETURN
  1712. END IF
  1713. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  1714. MessageBox('提示','没有指定附件数据库连接'+arg_msg)
  1715. RETURN
  1716. END IF
  1717. s_pic.f_long = 9104 //销售订单明细
  1718. s_pic.f_string = dw_pageretr.Object.u_outware_outwarecode[ls_row]
  1719. s_pic.g_long = dw_pageretr.Object.u_outware_outwareid[ls_row]
  1720. s_pic.e_long = dw_pageretr.Object.u_outware_scid[ls_row]
  1721. s_pic.d_long = dw_child.Object.u_outwaremx_printid[ll_mxrow]
  1722. s_pic.sqltransaction = sys_filedb_sqlca
  1723. OpenWithParm(w_fj_bill_mng,s_pic)
  1724. end event
  1725. event ue_fj_mx_add();IF dw_edit_mode THEN
  1726. MessageBox('提示','编辑状态下不可用')
  1727. RETURN
  1728. END IF
  1729. IF NOT f_power_ind(1098) THEN
  1730. MessageBox(publ_operator,sys_msg_pow)
  1731. RETURN
  1732. END IF
  1733. s_edit_index_tran s_pic
  1734. Long ll_ConnectionID
  1735. String arg_msg
  1736. Long ls_row
  1737. ls_row = dw_pageretr.GetRow()
  1738. IF ls_row <= 0 THEN
  1739. RETURN
  1740. END IF
  1741. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  1742. MessageBox('提示','没有指定附件数据库连接'+arg_msg)
  1743. RETURN
  1744. END IF
  1745. s_pic.g_long = dw_pageretr.Object.taskid[ls_row]
  1746. s_pic.e_long = dw_pageretr.Object.u_saletask_scid[ls_row]
  1747. s_pic.f_string = dw_pageretr.Object.taskcode[ls_row]
  1748. s_pic.sqltransaction = sys_filedb_sqlca
  1749. OpenWithParm(w_saletaskmx_fileadd,s_pic)
  1750. end event
  1751. event ue_fj_mx_add_p();IF dw_edit_mode THEN
  1752. MessageBox('提示','编辑状态下不可用')
  1753. RETURN
  1754. END IF
  1755. IF NOT f_power_ind(1098,sys_msg_pow) THEN
  1756. MessageBox(publ_operator,sys_msg_pow)
  1757. RETURN
  1758. END IF
  1759. s_edit_index_tran s_pic
  1760. Long ll_ConnectionID
  1761. String arg_msg
  1762. Long ls_row
  1763. ls_row = dw_pageretr.GetRow()
  1764. IF ls_row <= 0 THEN
  1765. RETURN
  1766. END IF
  1767. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  1768. MessageBox('提示','没有指定附件数据库连接'+arg_msg)
  1769. RETURN
  1770. END IF
  1771. s_pic.g_long = dw_pageretr.Object.taskid[ls_row]
  1772. s_pic.e_long = dw_pageretr.Object.u_saletask_scid[ls_row]
  1773. s_pic.f_string = dw_pageretr.Object.taskcode[ls_row]
  1774. s_pic.sqltransaction = sys_filedb_sqlca
  1775. OpenWithParm(w_saletaskmx_fileadd_p,s_pic)
  1776. end event
  1777. event ue_fj_view_mx();IF dw_edit_mode THEN
  1778. MessageBox('提示','编辑状态下不可用')
  1779. RETURN
  1780. END IF
  1781. s_edit_index_tran s_pic
  1782. Long ll_ConnectionID
  1783. String arg_msg
  1784. Long ls_row,ll_mxrow
  1785. ls_row = dw_pageretr.GetRow()
  1786. IF ls_row <= 0 THEN
  1787. RETURN
  1788. END IF
  1789. ll_mxrow = dw_child.GetRow()
  1790. IF ll_mxrow <= 0 THEN
  1791. RETURN
  1792. END IF
  1793. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  1794. MessageBox('提示','没有指定附件数据库连接'+arg_msg)
  1795. RETURN
  1796. END IF
  1797. s_pic.f_long = 9104 //销售订单明细
  1798. s_pic.f_string = dw_pageretr.Object.u_outware_outwarecode[ls_row]
  1799. s_pic.g_long = dw_pageretr.Object.u_outware_outwareid[ls_row]
  1800. s_pic.e_long = dw_pageretr.Object.u_outware_scid[ls_row]
  1801. s_pic.d_long = dw_child.Object.u_outwaremx_printid[ll_mxrow]
  1802. s_pic.sqltransaction = sys_filedb_sqlca
  1803. OpenWithParm(w_fj_bill_view,s_pic)
  1804. end event
  1805. event ue_ch_dscrp2();s_view_dscrp s_view,s_return
  1806. String ls_dscrp
  1807. dw_uc.AcceptText()
  1808. ls_dscrp = dw_uc.Object.u_outware_dscrp2[dw_uc.GetRow()]
  1809. s_view.Title = '销售发货单备注2'
  1810. s_view.dscrp = ls_dscrp
  1811. s_view.editmode = dw_edit_mode
  1812. OpenWithParm(w_view_dscrp,s_view)
  1813. IF dw_edit_mode THEN
  1814. s_return = Message.PowerObjectParm
  1815. dw_uc.Object.u_outware_dscrp2[dw_uc.GetRow()] = s_return.dscrp
  1816. END IF
  1817. end event
  1818. event ue_ch_dscrp3();s_view_dscrp s_view,s_return
  1819. String ls_dscrp
  1820. dw_uc.AcceptText()
  1821. ls_dscrp = dw_uc.Object.u_outware_dscrp3[dw_uc.GetRow()]
  1822. s_view.Title = '销售发货单备注3'
  1823. s_view.dscrp = ls_dscrp
  1824. s_view.editmode = dw_edit_mode
  1825. OpenWithParm(w_view_dscrp,s_view)
  1826. IF dw_edit_mode THEN
  1827. s_return = Message.PowerObjectParm
  1828. dw_uc.Object.u_outware_dscrp3[dw_uc.GetRow()] = s_return.dscrp
  1829. END IF
  1830. end event
  1831. event ue_view_status(long arg_row, string arg_status);s_view_dscrp s_view,s_return
  1832. String ls_dscrp
  1833. long ll_mtrlid,ll_statusflag,ll_woodcodeflag,ll_pcodeflag
  1834. dw_child.AcceptText()
  1835. ll_mtrlid = dw_child.object.u_outwaremx_mtrlid[arg_row]
  1836. SELECT
  1837. statusflag,
  1838. woodcodeflag,
  1839. pcodeflag
  1840. into
  1841. :ll_statusflag,:ll_woodcodeflag,:ll_pcodeflag
  1842. FROM U_MTRLDEF
  1843. where mtrlid = :ll_mtrlid;
  1844. IF arg_status = 'u_outwaremx_status' THEN
  1845. IF ll_statusflag<>5 THEN RETURN
  1846. ELSEIF arg_status = 'u_outwaremx_woodcode' THEN
  1847. IF ll_woodcodeflag<>5 THEN RETURN
  1848. ELSEIF arg_status = 'u_outwaremx_pcode' then
  1849. IF ll_pcodeflag<>5 THEN RETURN
  1850. ELSE
  1851. RETURN
  1852. END IF
  1853. ls_dscrp = dw_child.GetItemString(arg_row, arg_status)
  1854. s_view.Title = '配置内容'
  1855. s_view.dscrp = ls_dscrp
  1856. s_view.editmode = dw_edit_mode
  1857. OpenWithParm(w_view_status,s_view)
  1858. IF dw_edit_mode THEN
  1859. s_return = Message.PowerObjectParm
  1860. dw_child.setitem(arg_row,arg_status,s_return.dscrp)
  1861. END IF
  1862. end event
  1863. event ue_view_mxdscrp3();s_view_dscrp s_view,s_return
  1864. String ls_dscrp
  1865. dw_child.AcceptText()
  1866. ls_dscrp = dw_child.Object.u_outwaremx_mxdscrp3[dw_child.GetRow()]
  1867. s_view.Title = '销售发货单明细备注3'
  1868. s_view.dscrp = ls_dscrp
  1869. s_view.editmode = dw_edit_mode
  1870. OpenWithParm(w_view_dscrp2,s_view)
  1871. IF dw_edit_mode THEN
  1872. s_return = Message.PowerObjectParm
  1873. dw_child.Object.u_outwaremx_mxdscrp3[dw_child.GetRow()] = s_return.dscrp
  1874. END IF
  1875. end event
  1876. event ue_view_mxdscrp4();s_view_dscrp s_view,s_return
  1877. String ls_dscrp
  1878. dw_child.AcceptText()
  1879. ls_dscrp = dw_child.Object.u_outwaremx_mxdscrp4[dw_child.GetRow()]
  1880. s_view.Title = '销售发货单明细备注4'
  1881. s_view.dscrp = ls_dscrp
  1882. s_view.editmode = dw_edit_mode
  1883. OpenWithParm(w_view_dscrp2,s_view)
  1884. IF dw_edit_mode THEN
  1885. s_return = Message.PowerObjectParm
  1886. dw_child.Object.u_outwaremx_mxdscrp4[dw_child.GetRow()] = s_return.dscrp
  1887. END IF
  1888. end event
  1889. event ue_cmpl_set0();//
  1890. long i
  1891. for i=1 to dw_child.rowcount()
  1892. dw_child.object.u_outwaremx_uqty[i]=0
  1893. next
  1894. end event
  1895. event ue_importcusseleprice_buchong();
  1896. //查询客户价格表
  1897. //如果客户无价格表则提示是否直接查询价格表
  1898. Long ls_row,ls_cusid,ls_mtrlid
  1899. String ls_cuscode,ls_cusname,arg_msg
  1900. Long uc_row
  1901. Decimal obj_price ,obj_rebate,obj_rate
  1902. String err_str = ''
  1903. Boolean if_exist_price = TRUE
  1904. Long ll_pricelistid,ll_moneyid
  1905. String ls_status,ls_pcode,ls_woodcode,ls_unit
  1906. s_pricelist_ch s_pricelist
  1907. uc_row = dw_uc.GetRow()
  1908. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  1909. IF ll_moneyid = 0 OR IsNull(ll_moneyid) THEN
  1910. MessageBox('提示','请先选择币种',information!,OK!)
  1911. RETURN
  1912. END IF
  1913. IF dw_uc.Object.u_outware_cusid[uc_row] = 0 OR IsNull(dw_uc.Object.u_outware_cusid[uc_row]) THEN
  1914. MessageBox('提示',"请选择销售客户!",information!,OK!)
  1915. RETURN
  1916. END IF
  1917. ls_cusid = dw_uc.Object.u_outware_cusid[uc_row]
  1918. SELECT u_cust.pricelistid INTO :ll_pricelistid FROM u_cust Where u_cust.cusid = :ls_cusid;
  1919. IF sqlca.SQLCode <> 0 OR ll_pricelistid <= 0 THEN
  1920. if_exist_price = FALSE
  1921. END IF
  1922. IF if_exist_price = FALSE THEN
  1923. IF MessageBox('询问',"当前客户的计划售价尚未设定!是否查询价格列表?",Question!,YesNo!) = 2 THEN RETURN
  1924. Open(w_sale_price_list_ch)
  1925. s_pricelist = Message.PowerObjectParm
  1926. IF s_pricelist.pricelistid <= 0 THEN RETURN
  1927. ll_pricelistid = s_pricelist.pricelistid
  1928. END IF
  1929. IF wf_get_pricelist_price_buchong(ll_pricelistid, ll_moneyid, arg_msg) = 0 THEN
  1930. MessageBox('提示',arg_msg,information!,OK!)
  1931. RETURN
  1932. END IF
  1933. //FOR ls_row = 1 TO dw_child.RowCount()
  1934. // ls_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ls_row]
  1935. // ls_status = dw_child.Object.u_outwaremx_status[ls_row]
  1936. // ls_pcode = dw_child.Object.u_outwaremx_pcode[ls_row]
  1937. // ls_woodcode = dw_child.Object.u_outwaremx_woodcode[ls_row]
  1938. // ls_unit = dw_child.Object.u_outwaremx_unit[ls_row]
  1939. //
  1940. // IF sys_option_price_if_status = 0 THEN
  1941. // ls_status = ''
  1942. // ls_pcode = ''
  1943. // ls_woodcode = ''
  1944. // END IF
  1945. //
  1946. //
  1947. // IF if_exist_price THEN //查询客户价格表
  1948. // IF Not (IsNull(ls_mtrlid) OR ls_mtrlid = 0 ) THEN
  1949. // SELECT u_sale_price_mx.price
  1950. // INTO :obj_price
  1951. // FROM u_sale_price_list ,u_cust,u_sale_price_mx
  1952. // WHERE (u_sale_price_list.pricelistid = u_cust.pricelistid) AND
  1953. // (u_sale_price_mx.pricelistid = u_sale_price_list.pricelistid) AND
  1954. // ( u_sale_price_mx.mtrlid = :ls_mtrlid ) AND
  1955. // ( u_cust.cusid = :ls_cusid ) AND
  1956. // ( u_sale_price_mx.status = :ls_status ) AND
  1957. // ( u_sale_price_mx.pcode = :ls_pcode ) AND
  1958. // ( u_sale_price_mx.woodcode = :ls_woodcode ) and
  1959. // ( u_sale_price_mx.unit = :ls_unit);
  1960. // IF sqlca.SQLCode <> 0 THEN
  1961. // err_str = err_str + "当前客户的 "+String(dw_child.Object.u_mtrldef_mtrlname[ls_row])+" 的计划售价尚未设定! ~n"
  1962. // ELSE
  1963. // dw_child.Object.u_outwaremx_enprice[ls_row] = obj_price
  1964. // END IF
  1965. // END IF
  1966. // ELSE //查询价格列表
  1967. // SELECT u_sale_price_mx.price
  1968. // INTO :obj_price
  1969. // FROM u_sale_price_mx
  1970. // WHERE ( u_sale_price_mx.pricelistid = :s_pricelist.pricelistid ) AND
  1971. // ( u_sale_price_mx.mtrlid = :ls_mtrlid ) AND
  1972. // ( u_sale_price_mx.status = :ls_status ) AND
  1973. // ( u_sale_price_mx.pcode = :ls_pcode ) AND
  1974. // ( u_sale_price_mx.woodcode = :ls_woodcode ) and
  1975. // ( u_sale_price_mx.unit = :ls_unit);
  1976. // IF sqlca.SQLCode <> 0 THEN
  1977. // err_str = err_str + "当前价格表的 "+String(dw_child.Object.u_mtrldef_mtrlname[ls_row])+" 的计划售价尚未设定! ~n"
  1978. // ELSE
  1979. // dw_child.Object.u_outwaremx_enprice[ls_row] = obj_price
  1980. // END IF
  1981. // END IF
  1982. //NEXT
  1983. //IF err_str <> '' THEN
  1984. // MessageBox('错误',err_str,stopsign!,OK!)
  1985. //END IF
  1986. //
  1987. end event
  1988. event ue_retrieve_fifo_cbmx();
  1989. String ls_mtrlcode,ls_mtrlname
  1990. Long ll_row
  1991. Long ll_scid
  1992. Long ll_outwareid
  1993. Long ll_printid
  1994. Long ll_mtrlwareid
  1995. Decimal dec_uqty
  1996. ll_row = dw_child.GetRow()
  1997. IF ll_row <= 0 THEN
  1998. RETURN
  1999. END IF
  2000. ll_scid = cur_scid
  2001. ll_outwareid = dw_child.Object.u_outwaremx_outwareid[ll_row]
  2002. ll_printid = dw_child.Object.u_outwaremx_printid[ll_row]
  2003. ll_mtrlwareid= dw_child.Object.u_outwaremx_mtrlwareid[ll_row]
  2004. dec_uqty = dw_child.Object.u_outwaremx_uqty[ll_row]
  2005. ls_mtrlname= dw_child.Object.u_mtrldef_mtrlname[ll_row]
  2006. IF IsValid(w_fifo_mtrlware_cb) THEN
  2007. w_fifo_mtrlware_cb.WindowState = Normal!
  2008. w_fifo_mtrlware_cb.cur_scid = ll_scid
  2009. w_fifo_mtrlware_cb.cur_outwareid = ll_outwareid
  2010. w_fifo_mtrlware_cb.cur_printid = ll_printid
  2011. w_fifo_mtrlware_cb.cur_mtrlwareid = ll_mtrlwareid
  2012. w_fifo_mtrlware_cb.cur_dec_uqty = dec_uqty
  2013. w_fifo_mtrlware_cb.cur_mtrlname = ls_mtrlname
  2014. w_fifo_mtrlware_cb.wf_retrieve_cbmx()
  2015. w_fifo_mtrlware_cb.wf_retrieve_allmtrlware()
  2016. w_fifo_mtrlware_cb.wf_retrieve_allmtrlware_mx()
  2017. END IF
  2018. end event
  2019. event ue_show_fifo_cbmx();
  2020. s_edit_index_tran s_ch_tran //传递参数使用
  2021. long ll_row
  2022. long ll_scid
  2023. long ll_outwareid
  2024. long ll_printid
  2025. long ll_mtrlwareid
  2026. decimal dec_uqty
  2027. string ls_mtrlname
  2028. ll_row = dw_child.GetRow()
  2029. IF ll_row = 0 THEN RETURN
  2030. ll_scid = cur_scid
  2031. ll_outwareid = dw_child.Object.u_outwaremx_outwareid[ll_row]
  2032. ll_printid = dw_child.Object.u_outwaremx_printid[ll_row]
  2033. ll_mtrlwareid= dw_child.Object.u_outwaremx_mtrlwareid[ll_row]
  2034. dec_uqty = dw_child.Object.u_outwaremx_uqty[ll_row]
  2035. ls_mtrlname= dw_child.Object.u_mtrldef_mtrlname[ll_row]
  2036. s_ch_tran.b_long=ll_scid //cur_scid
  2037. s_ch_tran.c_long=ll_outwareid //cur_outwareid
  2038. s_ch_tran.d_long=ll_printid //cur_printid
  2039. s_ch_tran.e_long=ll_mtrlwareid //cur_mtrlwareid
  2040. s_ch_tran.b_decimal=dec_uqty //cur_dec_uqty
  2041. s_ch_tran.b_string=ls_mtrlname //cur_mtrlname
  2042. IF IsValid(w_fifo_mtrlware_cb) THEN
  2043. w_fifo_mtrlware_cb.WindowState = Normal!
  2044. w_fifo_mtrlware_cb.cur_scid =ll_scid
  2045. w_fifo_mtrlware_cb.cur_outwareid =ll_outwareid
  2046. w_fifo_mtrlware_cb.cur_printid = ll_printid
  2047. w_fifo_mtrlware_cb.cur_mtrlwareid = ll_mtrlwareid
  2048. w_fifo_mtrlware_cb.cur_dec_uqty = dec_uqty
  2049. w_fifo_mtrlware_cb.cur_mtrlname = ls_mtrlname
  2050. w_fifo_mtrlware_cb.wf_retrieve_cbmx()
  2051. ELSE
  2052. OpenWithParm(w_fifo_mtrlware_cb,s_ch_tran)
  2053. END IF
  2054. end event
  2055. event ue_ch_relstr_3();s_view_dscrp s_view,s_return
  2056. String ls_dscrp
  2057. dw_uc.AcceptText()
  2058. ls_dscrp = dw_uc.Object.u_outware_relstr_3[dw_uc.GetRow()]
  2059. s_view.Title = '货运部地址'
  2060. s_view.dscrp = ls_dscrp
  2061. s_view.editmode = dw_edit_mode
  2062. OpenWithParm(w_view_dscrp,s_view)
  2063. IF dw_edit_mode THEN
  2064. s_return = Message.PowerObjectParm
  2065. dw_uc.Object.u_outware_relstr_3[dw_uc.GetRow()] = s_return.dscrp
  2066. END IF
  2067. end event
  2068. event ue_set_tax();//
  2069. dw_child.AcceptText()
  2070. IF dw_child.RowCount() < 1 THEN RETURN
  2071. Long i
  2072. FOR i = 1 To dw_child.RowCount()
  2073. dw_child.Object.u_outwaremx_tax[i] = dw_child.Object.u_outwaremx_tax[1]
  2074. wf_cmpl_amt(i)
  2075. NEXT
  2076. end event
  2077. event ue_show_his_pricemx();
  2078. s_edit_index_tran s_ch_tran //传递参数使用
  2079. long ll_row
  2080. long ll_scid
  2081. long ll_outwareid
  2082. long ll_printid
  2083. long ll_mtrlwareid
  2084. decimal dec_uqty
  2085. string ls_mtrlname
  2086. long ll_cusid
  2087. long ll_mtrlid
  2088. string ls_status,ls_woodcode,ls_pcode,ls_plancode,ls_mtrlcode
  2089. ll_row = dw_child.GetRow()
  2090. IF ll_row = 0 THEN RETURN
  2091. long uc_row
  2092. uc_row = dw_uc.GetRow()
  2093. IF uc_row = 0 THEN RETURN
  2094. ll_scid = cur_scid
  2095. ll_cusid = dw_uc.Object.u_outware_cusid[uc_row]
  2096. ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ll_row]
  2097. ls_status= dw_child.Object.u_outwaremx_status[ll_row]
  2098. ls_woodcode = dw_child.Object.u_outwaremx_woodcode[ll_row]
  2099. ls_pcode= dw_child.Object.u_outwaremx_pcode[ll_row]
  2100. ls_plancode= dw_child.Object.u_outwaremx_plancode[ll_row]
  2101. ls_mtrlcode= dw_child.Object.u_mtrldef_mtrlcode[ll_row]
  2102. s_ch_tran.b_long=ll_scid //cur_scid
  2103. s_ch_tran.c_long=ll_cusid //cur_cusid
  2104. s_ch_tran.d_long=ll_mtrlid //cur_mtrlid
  2105. s_ch_tran.b_string=ls_mtrlcode
  2106. s_ch_tran.c_string=ls_status
  2107. s_ch_tran.d_string=ls_woodcode
  2108. s_ch_tran.e_string=ls_pcode
  2109. s_ch_tran.f_string=ls_plancode
  2110. IF IsValid(w_outware_sale_show_his_pricemx) THEN
  2111. w_outware_sale_show_his_pricemx.WindowState = Normal!
  2112. w_outware_sale_show_his_pricemx.cur_scid =ll_scid
  2113. w_outware_sale_show_his_pricemx.cur_cusid =ll_cusid
  2114. w_outware_sale_show_his_pricemx.cur_mtrlid = ll_mtrlid
  2115. w_outware_sale_show_his_pricemx.cur_status = ls_status
  2116. w_outware_sale_show_his_pricemx.cur_woodcode = ls_woodcode
  2117. w_outware_sale_show_his_pricemx.cur_pcode = ls_pcode
  2118. w_outware_sale_show_his_pricemx.cur_plancode = ls_plancode
  2119. w_outware_sale_show_his_pricemx.cur_mtrlname = ls_mtrlcode
  2120. w_outware_sale_show_his_pricemx.wf_retrieve_cbmx()
  2121. ELSE
  2122. OpenWithParm(w_outware_sale_show_his_pricemx,s_ch_tran)
  2123. END IF
  2124. end event
  2125. event ue_retrieve_his_pricemx();
  2126. s_edit_index_tran s_ch_tran //传递参数使用
  2127. long ll_row
  2128. long ll_scid
  2129. long ll_outwareid
  2130. long ll_printid
  2131. long ll_mtrlwareid
  2132. decimal dec_uqty
  2133. string ls_mtrlname
  2134. long ll_cusid
  2135. long ll_mtrlid
  2136. string ls_status,ls_woodcode,ls_pcode,ls_plancode,ls_mtrlcode
  2137. ll_row = dw_child.GetRow()
  2138. IF ll_row = 0 THEN RETURN
  2139. long uc_row
  2140. uc_row = dw_uc.GetRow()
  2141. IF uc_row = 0 THEN RETURN
  2142. ll_scid = cur_scid
  2143. ll_cusid = dw_uc.Object.u_outware_cusid[uc_row]
  2144. ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ll_row]
  2145. ls_status= dw_child.Object.u_outwaremx_status[ll_row]
  2146. ls_woodcode = dw_child.Object.u_outwaremx_woodcode[ll_row]
  2147. ls_pcode= dw_child.Object.u_outwaremx_pcode[ll_row]
  2148. ls_plancode= dw_child.Object.u_outwaremx_plancode[ll_row]
  2149. ls_mtrlcode= dw_child.Object.u_mtrldef_mtrlcode[ll_row]
  2150. s_ch_tran.b_long=ll_scid //cur_scid
  2151. s_ch_tran.c_long=ll_cusid //cur_cusid
  2152. s_ch_tran.d_long=ll_mtrlid //cur_mtrlid
  2153. s_ch_tran.b_string=ls_mtrlcode
  2154. s_ch_tran.c_string=ls_status
  2155. s_ch_tran.d_string=ls_woodcode
  2156. s_ch_tran.e_string=ls_pcode
  2157. s_ch_tran.f_string=ls_plancode
  2158. IF IsValid(w_outware_sale_show_his_pricemx) THEN
  2159. w_outware_sale_show_his_pricemx.WindowState = Normal!
  2160. w_outware_sale_show_his_pricemx.cur_scid =ll_scid
  2161. w_outware_sale_show_his_pricemx.cur_cusid =ll_cusid
  2162. w_outware_sale_show_his_pricemx.cur_mtrlid = ll_mtrlid
  2163. w_outware_sale_show_his_pricemx.cur_status = ls_status
  2164. w_outware_sale_show_his_pricemx.cur_woodcode = ls_woodcode
  2165. w_outware_sale_show_his_pricemx.cur_pcode = ls_pcode
  2166. w_outware_sale_show_his_pricemx.cur_plancode = ls_plancode
  2167. w_outware_sale_show_his_pricemx.cur_mtrlname = ls_mtrlcode
  2168. w_outware_sale_show_his_pricemx.wf_retrieve_cbmx()
  2169. END IF
  2170. end event
  2171. event ue_mx_cmplnoallocqty();Long i,j,ll_mtrlid,ll_scid,ll_mtrlwareid,ll_storageid
  2172. String ls_status,ls_woodcode,ls_pcode
  2173. Decimal ld_notsaleqty,ld_noallocqty,ld_cqty,ld_qty,ld_mtrlqty
  2174. string arg_lsg,arg_msg
  2175. dw_child.AcceptText()
  2176. dw_child.SetRedraw(False)
  2177. dw_uc.accepttext( )
  2178. IF cur_scid = -1 THEN
  2179. IF dw_pageretr.GetRow() > 0 THEN
  2180. ll_scid = dw_pageretr.Object.u_outware_scid[dw_pageretr.GetRow()]
  2181. IF IsNull(ll_scid) THEN ll_scid = 0
  2182. END IF
  2183. ELSE
  2184. ll_scid = cur_scid
  2185. END IF
  2186. ll_storageid = dw_uc.object.u_outware_storageid[1]
  2187. FOR i = 1 To dw_child.RowCount()
  2188. ll_mtrlwareid = 0
  2189. ld_notsaleqty = dw_child.Object.u_outwaremx_uqty[i]
  2190. ll_mtrlwareid = dw_child.Object.u_outwaremx_mtrlwareid[i]
  2191. ld_noallocqty = 0
  2192. SELECT sum(noallocqty)
  2193. INTO :ld_noallocqty
  2194. FROM u_mtrlware,u_storage
  2195. WHERE u_mtrlware.storageid = u_storage.storageid
  2196. AND u_mtrlware.scid = :ll_scid
  2197. AND u_mtrlware.mtrlwareid = :ll_mtrlwareid
  2198. ;
  2199. IF sqlca.SQLCode <> 0 THEN
  2200. ld_noallocqty = 0
  2201. END IF
  2202. IF f_cmp_di_qty(ll_mtrlid,ll_storageid,ls_status,ld_mtrlqty,arg_lsg,arg_msg) = 0 THEN
  2203. // ls_mesage = ls_mesage + string(ll_mtrlid)+arg_msg
  2204. ld_mtrlqty =0
  2205. else
  2206. END IF
  2207. dw_child.Object.mtrlqty[i] = ld_mtrlqty
  2208. dw_child.Object.noallocqty[i] = ld_noallocqty
  2209. ld_qty = ld_notsaleqty - ( ld_noallocqty + ld_mtrlqty)
  2210. if ld_qty < 0 then ld_qty = 0
  2211. dw_child.Object.cqty[i] =ld_qty
  2212. // IF ld_notsaleqty - ld_noallocqty < 0 THEN
  2213. // dw_child.Object.cqty[i] = 0
  2214. // ELSE
  2215. //
  2216. // dw_child.Object.cqty[i] = ld_notsaleqty - ld_noallocqty
  2217. // END IF
  2218. NEXT
  2219. dw_child.SetRedraw(True)
  2220. //////////////////////////////
  2221. IF sys_option_outware_if_di <> 0 THEN
  2222. s_saletask_mtrl mxlist
  2223. FOR j = 1 To dw_child.RowCount()
  2224. mxlist.mtrlid[j] = dw_child.Object.u_outwaremx_mtrlid[j]
  2225. mxlist.qty[j] = dw_child.Object.u_outwaremx_uqty[j]
  2226. NEXT
  2227. openwithparm(w_outware_sale_mx4_noallocqty,mxlist)//传入需求数以及物料ID
  2228. END IF
  2229. end event
  2230. event ue_choose_mtrlware_plancode();IF sys_option_saletask_chuange_plancode = 0 THEN RETURN
  2231. //用于选择订单的库存id\dw_child.doubleclicked调用
  2232. IF Not dw_edit_mode THEN RETURN
  2233. IF dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 THEN RETURN
  2234. IF flag = 1 THEN RETURN
  2235. Long child_row,ll_storageid = 0, select_cnt
  2236. Long ll_moneyid
  2237. dw_uc.AcceptText()
  2238. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  2239. IF ll_moneyid = 0 Or IsNull(ll_moneyid) THEN
  2240. MessageBox('提示','请先选择币种',information!,OK!)
  2241. RETURN
  2242. END IF
  2243. ll_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  2244. IF ll_storageid = 0 Or IsNull(ll_storageid) THEN
  2245. MessageBox('提示','请先选择仓库',information!,OK!)
  2246. RETURN
  2247. END IF
  2248. Int li_if_cus_mtrlware,li_inwaretype
  2249. SELECT balctype ,
  2250. inwaretype
  2251. INTO :li_if_cus_mtrlware,
  2252. :li_inwaretype
  2253. FROM u_storage
  2254. Where storageid = :ll_storageid;
  2255. IF sqlca.SQLCode <> 0 THEN
  2256. MessageBox('错误','查询仓库是否使用客户库存失败',stopsign!,OK!)
  2257. RETURN
  2258. END IF
  2259. Long ls_null
  2260. s_edit_index_tran s_tranf8 //传递参数使用
  2261. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  2262. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  2263. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  2264. s_tranf8.b_long = 0
  2265. Long chc = 1,ls_j,ll_cusid
  2266. SetNull(ls_null)
  2267. ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  2268. IF IsNull(ll_cusid) Or ll_cusid = 0 THEN
  2269. This.TriggerEvent("ue_f9")
  2270. END IF
  2271. child_row = dw_child.GetRow()
  2272. IF child_row <= 0 THEN
  2273. MessageBox('错误','请选择按订单的明细行',stopsign!,OK!)
  2274. RETURN
  2275. END IF
  2276. dw_uc.AcceptText()
  2277. ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  2278. IF li_if_cus_mtrlware = 1 THEN
  2279. s_tranf8.c_long = ll_cusid
  2280. ELSE
  2281. s_tranf8.c_long = -1
  2282. END IF
  2283. IF li_inwaretype = 3 THEN //批号类型
  2284. s_tranf8.f_long = 1
  2285. ELSE
  2286. s_tranf8.f_long = 0
  2287. END IF
  2288. IF Not IsValid(w_mtrlware_ch_plancode_chuange) THEN
  2289. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  2290. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  2291. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  2292. s_tranf8.d_long = ll_storageid
  2293. s_tranf8.e_long = dw_child.Object.u_outwaremx_mtrlid[child_row]
  2294. s_tranf8.c_string = dw_child.Object.u_outwaremx_status[child_row]
  2295. s_tranf8.d_string = dw_child.Object.u_outwaremx_woodcode[child_row]
  2296. s_tranf8.e_string = dw_child.Object.u_outwaremx_pcode[child_row]
  2297. s_tranf8.f_string = '' //dw_child.Object.u_outwaremx_plancode[child_row] //批号
  2298. dw_child.AcceptText()
  2299. OpenWithParm(w_mtrlware_ch_plancode_chuange,s_tranf8)
  2300. s_mtrlware_noalloc_array S_INSCUST
  2301. S_INSCUST = Message.PowerObjectParm
  2302. FOR ls_j = 1 To UpperBound(S_INSCUST.mtrlwareid)
  2303. IF S_INSCUST.mtrlwareid[ls_j] > 0 THEN
  2304. select_cnt++
  2305. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[ls_j]
  2306. dw_child.Object.u_outwaremx_plancode[child_row] = S_INSCUST.plancode[ls_j]
  2307. dw_child.Object.u_mtrldef_waredscrp[child_row] = S_INSCUST.waredscrp[ls_j]
  2308. END IF
  2309. NEXT
  2310. END IF
  2311. dw_child.SetRedraw(True)
  2312. dw_child.SetFocus()
  2313. end event
  2314. event ue_create_bmstamt();Long ll_secflag,ll_scid
  2315. Long ll_mtrlwareid
  2316. Int i,j
  2317. s_outware_ch s_outware
  2318. If Not f_power_ind(1647) Then
  2319. MessageBox('提示',sys_msg_pow,information!,OK!)
  2320. Return
  2321. End If
  2322. dw_pageretr.AcceptText()
  2323. i = dw_pageretr.GetRow()
  2324. If i <= 0 Then
  2325. MessageBox('系统提示','请选定当前目标订单!',information!,OK!)
  2326. Return
  2327. End If
  2328. ll_secflag = dw_pageretr.Object.secflag[i]
  2329. If ll_secflag <> 1 Then
  2330. MessageBox('提示','只能对已财审的单据进行操作',information!,OK!)
  2331. Return
  2332. End If
  2333. s_outware.outwareid = dw_pageretr.Object.u_outware_outwareid[i]
  2334. s_outware.scid = dw_pageretr.Object.u_outware_scid[i]
  2335. s_outware.cusid = dw_pageretr.Object.u_outware_cusid[i]
  2336. s_outware.cuscode = dw_pageretr.Object.u_cust_cuscode[i]
  2337. s_outware.cusname = dw_pageretr.Object.u_cust_name[i]
  2338. s_outware.banktypeid = dw_pageretr.Object.u_outware_relint_1[i]
  2339. s_outware.moneyid = dw_pageretr.Object.u_outware_relint_2[i]
  2340. s_outware.billcode = dw_pageretr.Object.u_outware_outwarecode[i]
  2341. s_outware.mrate = dw_pageretr.Object.u_outware_mrate[i]
  2342. s_outware.billamt = dw_pageretr.Object.billamt[i]
  2343. s_outware.takeamt = dw_pageretr.Object.takeamt[i]
  2344. s_outware.balcamt = dw_pageretr.Object.balcamt[i]
  2345. s_outware.takedate = dw_pageretr.Object.u_outware_outdate[i]
  2346. s_outware.zqamt = dw_child.Object.compute_17[i]
  2347. s_edit_index_tran s_tran_open //翻页功能窗口 传递参数使用
  2348. s_tran_open.if_retrieve_all = local_retrieve_all //是否一次RETRIEVE所有行
  2349. s_tran_open.work_mode = 0 //0-单纯编辑模式, 1-选择模式
  2350. s_tran_open.arg_pkid = 0 //目标定位PKID (备用)
  2351. s_tran_open.arg_string_code = '' //查询列部分内容,用于初步筛选
  2352. s_tran_open.d_long = 1
  2353. s_tran_open.e_long = dw_pageretr.Object.u_outware_cusid[i]
  2354. s_tran_open.c_long = dw_pageretr.Object.u_outware_scid[i]
  2355. ll_scid = dw_pageretr.Object.u_outware_scid[i]
  2356. If Not IsValid(w_bmstamt_edit) Then
  2357. OpenWithParm(w_bmstamt_edit,s_tran_open)
  2358. // w_bmstamt_edit.ddlb_scid.uf_selectsc(ll_scid)
  2359. w_bmstamt_edit.wf_ue_f7(s_outware)
  2360. End If
  2361. end event
  2362. event ue_bill_mod();IF Not (f_power_ind(370,sys_msg_pow)) THEN
  2363. MessageBox(publ_operator,'你没有使用权限!')
  2364. RETURN
  2365. END IF
  2366. IF dw_edit_mode THEN RETURN
  2367. Long uc_row,ll_outwareid,ll_scid
  2368. Int li_flag,li_secflag,li_priceflag
  2369. s_edit_index_tran s_open
  2370. uc_row = dw_pageretr.GetRow()
  2371. IF uc_row <= 0 THEN
  2372. MessageBox('系统提示','请选定当前目标单据!')
  2373. RETURN
  2374. END IF
  2375. ll_scid = dw_pageretr.Object.u_outware_scid[uc_row]
  2376. ll_outwareid = dw_pageretr.Object.u_outware_outwareid[uc_row]
  2377. SELECT flag,secflag,priceflag
  2378. INTO :li_flag,:li_secflag,:li_priceflag
  2379. From u_outware Where scid = :ll_scid And outwareid = :ll_outwareid;
  2380. IF sqlca.SQLCode <> 0 THEN
  2381. MessageBox('系统提示','查询单据审核标记失败,操作取消!')
  2382. RETURN
  2383. END IF
  2384. IF li_flag <> 1 then
  2385. MessageBox('系统提示','单据未仓审,操作取消!')
  2386. RETURN
  2387. END IF
  2388. IF li_secflag = 1 THEN
  2389. MessageBox('系统提示','单据已财审,操作取消!')
  2390. RETURN
  2391. END IF
  2392. s_open.b_long = ll_scid
  2393. s_open.c_long = ll_outwareid
  2394. OpenWithParm(w_outware_sale_mod,s_open)
  2395. wf_refresh_curuc(ll_scid,ll_outwareid)
  2396. end event
  2397. event ue_cmpl_price();IF dw_child.GetRow() = 0 THEN RETURN
  2398. Long child_row
  2399. Long uc_row
  2400. Long li_cusid,li_mtrlid
  2401. Decimal ld_cusprice
  2402. uc_row = dw_uc.GetRow()
  2403. li_cusid = dw_uc.Object.u_outware_cusid[uc_row]
  2404. dw_child.AcceptText()
  2405. child_row = dw_child.GetRow()
  2406. s_cmpl_qty s_cmpl,s_return
  2407. s_cmpl.qty = dw_child.Object.u_outwaremx_enprice[child_row]
  2408. s_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[child_row]
  2409. s_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row]
  2410. s_cmpl.price = dw_child.Object.u_outwaremx_enprice[child_row]
  2411. s_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row]
  2412. s_cmpl.status = dw_child.Object.u_outwaremx_status[child_row]
  2413. s_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row]
  2414. s_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row]
  2415. s_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row]
  2416. s_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row]
  2417. s_cmpl.mxdscrp = dw_child.Object.u_outwaremx_mxdscrp[child_row]
  2418. s_cmpl.mxdscrp2 = dw_child.Object.mxdscrp2[child_row]
  2419. s_cmpl.mxdscrp3 = dw_child.Object.u_outwaremx_mxdscrp3[child_row]
  2420. s_cmpl.mxdscrp4 = dw_child.Object.u_outwaremx_mxdscrp4[child_row]
  2421. li_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row]
  2422. SELECT price
  2423. INTO :ld_cusprice
  2424. FROM u_cust
  2425. INNER JOIN u_sale_price_mx ON u_sale_price_mx.Pricelistid = u_cust.Pricelistid
  2426. WHERE u_sale_price_mx.mtrlid = :li_mtrlid
  2427. AND u_cust.cusid = :li_cusid;
  2428. IF SQLCA.SQLCODE <> 0 THEN
  2429. ld_cusprice = 0
  2430. END IF
  2431. s_cmpl.cusprice = ld_cusprice
  2432. IF NOT IsValid(w_cmpl_qty_ch) THEN
  2433. OpenWithParm(w_cmpl_qty_ch,s_cmpl)
  2434. s_return = Message.PowerObjectParm
  2435. IF s_return.formula <> s_cmpl.formula or s_return.qty <> s_cmpl.qty THEN
  2436. dw_child.Object.u_outwaremx_enprice[child_row] = s_return.qty
  2437. dw_child.Object.u_outwaremx_priceformula[child_row] = s_return.formula
  2438. END IF
  2439. END IF
  2440. end event
  2441. event ue_setprice_forformula();Long child_row
  2442. dw_child.AcceptText()
  2443. for child_row = 1 to dw_child.rowcount()
  2444. if dw_child.Object.u_outwaremx_priceformula[child_row]<>'' and dw_child.Object.u_outwaremx_ifrel[child_row] = 0 then
  2445. String ls_msg
  2446. s_cmpl_qty arg_cmpl
  2447. decimal ld_qty
  2448. long cusid,mtrlid
  2449. mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row]
  2450. cusid = dw_uc.Object.u_outware_cusid[dw_uc.getrow()]
  2451. arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row]
  2452. arg_cmpl.price = dw_child.Object.u_outwaremx_price[child_row]
  2453. arg_cmpl.cusprice = wf_get_cusprice(cusid,mtrlid)
  2454. arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row]
  2455. arg_cmpl.packqty = dw_child.Object.u_outwaremx_packqty[child_row]
  2456. arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row]
  2457. arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row]
  2458. arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row]
  2459. arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row]
  2460. arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row]
  2461. arg_cmpl.mxdscrp = dw_child.Object.u_outwaremx_mxdscrp[child_row]
  2462. arg_cmpl.mxdscrp2 = dw_child.Object.mxdscrp2[child_row]
  2463. arg_cmpl.mxdscrp3 = dw_child.Object.u_outwaremx_mxdscrp3[child_row]
  2464. arg_cmpl.mxdscrp4 = dw_child.Object.u_outwaremx_mxdscrp4[child_row]
  2465. arg_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[child_row]
  2466. arg_cmpl.num = sys_option_outware_price_amt_round
  2467. arg_cmpl.flag = true
  2468. arg_cmpl.addvalue = 1
  2469. ld_qty = 0
  2470. if f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 then
  2471. MessageBox('提示',ls_msg, Information!, OK! )
  2472. RETURN
  2473. END IF
  2474. dw_child.Object.u_outwaremx_enprice[child_row] = dec(String(ld_qty,'###,####,###0.######'))
  2475. end if
  2476. next
  2477. end event
  2478. event retrieve_fjnum();
  2479. Long i,ls_filecount
  2480. string arg_billcode
  2481. dw_pageretr.SetRedraw(False)
  2482. FOR i = 1 To dw_pageretr.RowCount()
  2483. arg_billcode = dw_pageretr.Object.u_outware_outwarecode[i]
  2484. ls_filecount = 0
  2485. SELECT count(*) INTO :ls_filecount
  2486. FROM u_file
  2487. WHERE relcode = :arg_billcode
  2488. AND scid = 0
  2489. AND billtype =104
  2490. Using sys_filedb_sqlca;
  2491. IF ls_filecount <> 0 then
  2492. dw_pageretr.Object.fj_num[i] = String(ls_filecount)
  2493. end if
  2494. NEXT
  2495. dw_pageretr.SetRedraw(true)
  2496. end event
  2497. event ue_all_c_secaudit(integer arg);IF dw_edit_mode THEN RETURN
  2498. long row_count = 0
  2499. String ls_msg = ''
  2500. Long i,rslt
  2501. Long ll_suc,ll_fail,ll_i
  2502. IF Not f_power_ind(870) THEN
  2503. MessageBox('提示','你没有使用权限!',information!,OK!)
  2504. RETURN
  2505. END IF
  2506. for i = 1 to dw_pageretr.rowcount()
  2507. if dw_pageretr.object.if_ch[i] = 1 then row_count++
  2508. next
  2509. IF row_count <= 0 THEN
  2510. MessageBox('提示','请勾选目标单据!',information!,OK!)
  2511. RETURN
  2512. END IF
  2513. IF MessageBox ("询问","是否确定要批财撤当前选择单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  2514. Open(w_sys_wait_jdt) //初始化进度条
  2515. w_sys_wait_jdt.Show()
  2516. w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount())
  2517. for i = 1 to dw_pageretr.rowcount()
  2518. w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.u_outware_outwarecode[i] + " 正在确认..." //进度信息
  2519. IF dw_pageretr.object.if_ch[i] = 1 then
  2520. rslt = 1
  2521. string arg_msg = '',ls_code,ls_opemp,ls_outpart
  2522. long ll_billid, ll_scid,ls_id
  2523. Int li_priceflag, li_flag, li_secflag
  2524. ll_scid = dw_pageretr.Object.u_outware_scid[i]
  2525. ll_billid = dw_pageretr.Object.u_outware_outwareid[i]
  2526. li_priceflag = dw_pageretr.Object.u_outware_priceflag[i]
  2527. li_flag = dw_pageretr.Object.flag[i]
  2528. li_secflag = dw_pageretr.Object.secflag[i]
  2529. IF uo_ware.getinfo(ll_scid,ll_billid,arg_msg) = 0 THEN
  2530. ll_fail++
  2531. ls_msg += dw_pageretr.Object.u_outware_outwarecode[i] +','+'失败原因:'+arg_msg+'~r~n'
  2532. CONTINUE
  2533. ELSE
  2534. IF li_secflag = 1 THEN
  2535. IF uo_ware.c_secauditing(True,arg_msg) = 0 THEN
  2536. ll_fail++
  2537. ls_msg += dw_pageretr.Object.u_outware_outwarecode[i] +','+'失败原因:'+arg_msg+'~r~n'
  2538. CONTINUE
  2539. ELSE
  2540. ll_suc++
  2541. ls_code = dw_pageretr.Object.u_outware_outwarecode[i]
  2542. ls_opemp = dw_pageretr.Object.u_outware_opemp[i]
  2543. ls_outpart = dw_pageretr.Object.u_outware_part[i]
  2544. f_setsysoplog('销售发货单','财务撤审,code:'+ls_code+',相关号码:'+ls_outpart+',建立人:'+ls_opemp,arg_msg,True)
  2545. END IF
  2546. ELSE
  2547. arg_msg = '此单据未进行财审,不能财撤'
  2548. ll_fail++
  2549. ls_msg += dw_pageretr.Object.u_outware_outwarecode[i] +','+'失败原因:'+arg_msg+'~r~n'
  2550. CONTINUE
  2551. END IF
  2552. END IF
  2553. w_sys_wait_jdt.wf_inc(i) //进度
  2554. end if
  2555. next
  2556. Close(w_sys_wait_jdt)
  2557. ls_msg = '批财撤成功!成功:'+String(ll_suc)+',失败:'+String(ll_fail)+'~r~n'+ls_msg
  2558. IF ls_msg <> '' THEN
  2559. OpenWithParm(w_message_err,ls_msg)
  2560. ELSE
  2561. MessageBox('提示','全部财撤成功!')
  2562. END IF
  2563. this.triggerevent('retrieve_pageretr')
  2564. end event
  2565. event ue_cmpl_tax();If dw_child.GetRow() = 0 Then Return
  2566. Long child_row
  2567. child_row = dw_child.GetRow()
  2568. Decimal lde_saleqty, lde_rebate ,lde_taxamt,lde_enprice,lde_enprice_notax
  2569. lde_saleqty = dw_child.Object.u_outwaremx_saleqty[child_row]
  2570. lde_rebate = dw_child.Object.u_outwaremx_rebate[child_row]
  2571. lde_enprice = dw_child.Object.u_outwaremx_enprice[child_row]
  2572. lde_enprice_notax = dw_child.Object.enprice_notax[child_row]
  2573. If lde_saleqty = 0 Then
  2574. MessageBox('提示','请填写数量!')
  2575. Return
  2576. End If
  2577. If lde_enprice = 0 And lde_enprice_notax = 0 Then
  2578. MessageBox('提示','请填写含税单价或者不含税单价')
  2579. Return
  2580. End If
  2581. If Not IsValid(w_ware_cmpl_taxamt) Then
  2582. s_edit_index_tran s_tran_tax
  2583. s_tran_tax.b_string = dw_child.Object.u_outwaremx_unit[child_row] //单位
  2584. OpenWithParm(w_ware_cmpl_taxamt,s_tran_tax)
  2585. s_edit_index_tran s_return
  2586. s_return = Message.PowerObjectParm
  2587. If Not IsNull(s_return) Then
  2588. If s_return.b_decimal = 0 Then Return
  2589. lde_taxamt = s_return.b_decimal
  2590. dw_child.Object.u_outwaremx_enamt_tax[child_row] = lde_taxamt * lde_saleqty //总税金
  2591. If lde_enprice <> 0 Then
  2592. dw_child.Object.enamt[child_row] = Round( lde_enprice * lde_rebate * lde_saleqty, 2) //总金额
  2593. dw_child.Object.enamt_notax[child_row] = dw_child.Object.enamt[child_row] - dw_child.Object.u_outwaremx_enamt_tax[child_row] //不含税总金额
  2594. dw_child.Object.enprice_notax[child_row] = lde_enprice - lde_taxamt //不含税单价
  2595. dw_child.Object.u_outwaremx_tax[child_row] = lde_taxamt / (lde_enprice - lde_taxamt) //税率
  2596. elseif lde_enprice_notax <> 0 then
  2597. dw_child.Object.enamt_notax[child_row] = Round( lde_enprice_notax * lde_rebate * lde_saleqty, 2) //不含税总金额
  2598. dw_child.Object.enamt[child_row] = dw_child.Object.enamt_notax[child_row] + dw_child.Object.u_outwaremx_enamt_tax[child_row] //总金额
  2599. dw_child.Object.u_outwaremx_enprice[child_row] = lde_enprice_notax + lde_taxamt //单价
  2600. dw_child.Object.u_outwaremx_tax[child_row] = lde_taxamt / lde_enprice_notax //税率
  2601. End If
  2602. End If
  2603. End If
  2604. end event
  2605. event ue_mod_outdate();//
  2606. IF NOT f_power_ind(2003) THEN
  2607. MessageBox('提示',sys_msg_pow)
  2608. RETURN
  2609. END IF
  2610. IF priceflag = 1 OR flag = 1 THEN
  2611. IF NOT f_power_ind(1294) THEN
  2612. //MessageBox('提示','你没有仓审或确认后修改权限!',information!,OK!)
  2613. MessageBox('提示',sys_msg_pow)
  2614. RETURN
  2615. END IF
  2616. ELSE
  2617. IF Not (f_power_ind(11) OR f_power_ind(371)) THEN
  2618. MessageBox('提示',sys_msg_pow)
  2619. RETURN
  2620. END IF
  2621. END IF
  2622. int row,count = 0
  2623. for row = 1 to dw_pageretr.rowcount()
  2624. if dw_pageretr.object.if_ch[row] = 1 then
  2625. count++
  2626. end if
  2627. next
  2628. if count = 0 then
  2629. MessageBox('提示','请勾选目标单据')
  2630. return
  2631. end if
  2632. open(w_mod_outdate)
  2633. s_edit_index_tran s_time
  2634. long i,ll_fail = 0,ll_suc = 0
  2635. string arg_msg,ls_msg = ''
  2636. long ls_outwareid
  2637. string mod_time
  2638. s_time = Message.PowerObjectParm
  2639. if s_time.b_long = 1 then
  2640. mod_time = string(s_time.b_datetime)
  2641. for i = 1 to dw_pageretr.rowcount()
  2642. if dw_pageretr.object.if_ch[i] = 1 then
  2643. if uo_ware.updatebegin(dw_pageretr.Object.u_outware_scid[i],dw_pageretr.Object.u_outware_outwareid[i],1,arg_msg) = 0 then
  2644. ll_fail++
  2645. ls_msg += dw_pageretr.Object.u_outware_outwarecode[i] +','+'失败原因:'+arg_msg+'~r~n'
  2646. CONTINUE
  2647. end if
  2648. ls_outwareid = dw_pageretr.Object.u_outware_outwareid[i]
  2649. update u_outware set outdate = :mod_time where outwareid = :ls_outwareid;
  2650. IF sqlca.SQLCode <> 0 THEN
  2651. ROLLBACK;
  2652. ll_fail++
  2653. ls_msg += dw_pageretr.Object.u_outware_outwarecode[i] +','+'失败原因:'+arg_msg+'~r~n'
  2654. CONTINUE
  2655. else
  2656. COMMIT;
  2657. ll_suc++
  2658. END IF
  2659. end if
  2660. next
  2661. ls_msg = '批修改销售时间成功!成功:'+String(ll_suc)+',失败:'+String(ll_fail)+'~r~n'+ls_msg
  2662. IF ls_msg <> '' THEN
  2663. OpenWithParm(w_message_err,ls_msg)
  2664. ELSE
  2665. MessageBox('提示','全部修改成功!')
  2666. END IF
  2667. this.triggerevent('retrieve_pageretr')
  2668. end if
  2669. end event
  2670. event ue_price_mod();IF Not f_power_ind(2013) THEN
  2671. MessageBox('提示',sys_msg_pow,information!,OK!)
  2672. RETURN
  2673. END IF
  2674. Open(w_outware_sale_mod_price)
  2675. end event
  2676. event ue_outware_choose();s_choose s_c
  2677. OpenWithParm(w_choose_outware,s_c)
  2678. s_c = Message.PowerObjectParm
  2679. IF NOT s_c.ifok THEN RETURN
  2680. cbx_enamt_edit.Checked=s_c.amt_pprice_out
  2681. cbx_packqty_cmpl.Checked=s_c.packqty_out
  2682. cbx_enamt_notax_edit.Checked=s_c.notax_price_out
  2683. cbx_zk.Checked=s_c.zk_out
  2684. cbx_enamt_edit.TriggerEvent(Clicked!)
  2685. cbx_packqty_cmpl.TriggerEvent(Clicked!)
  2686. cbx_enamt_notax_edit.TriggerEvent(Clicked!)
  2687. cbx_zk.TriggerEvent(Clicked!)
  2688. end event
  2689. event ue_setqty_forformula();Long child_row
  2690. dw_child.AcceptText()
  2691. for child_row = 1 to dw_child.rowcount()
  2692. if dw_child.Object.u_outwaremx_formula[child_row]<>'' and dw_child.Object.u_outwaremx_ifrel[child_row] = 0 then
  2693. String ls_msg
  2694. s_cmpl_qty arg_cmpl
  2695. decimal ld_qty
  2696. long cusid,mtrlid
  2697. mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row]
  2698. cusid = dw_uc.Object.u_outware_cusid[dw_uc.getrow()]
  2699. arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row]
  2700. arg_cmpl.price = dw_child.Object.u_outwaremx_price[child_row]
  2701. arg_cmpl.cusprice = wf_get_cusprice(cusid,mtrlid)
  2702. arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row]
  2703. arg_cmpl.packqty = dw_child.Object.u_outwaremx_packqty[child_row]
  2704. arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row]
  2705. arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row]
  2706. arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row]
  2707. arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row]
  2708. arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row]
  2709. arg_cmpl.mxdscrp = dw_child.Object.u_outwaremx_mxdscrp[child_row]
  2710. arg_cmpl.mxdscrp2 = dw_child.Object.mxdscrp2[child_row]
  2711. arg_cmpl.mxdscrp3 = dw_child.Object.u_outwaremx_mxdscrp3[child_row]
  2712. arg_cmpl.mxdscrp4 = dw_child.Object.u_outwaremx_mxdscrp4[child_row]
  2713. arg_cmpl.formula = dw_child.Object.u_outwaremx_formula[child_row]
  2714. arg_cmpl.num = sys_option_outware_price_amt_round
  2715. arg_cmpl.flag = true
  2716. arg_cmpl.addvalue = 1
  2717. ld_qty = 0
  2718. if f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 then
  2719. MessageBox('提示',ls_msg, Information!, OK! )
  2720. RETURN
  2721. END IF
  2722. dw_child.Object.u_outwaremx_uqty[child_row] = dec(String(ld_qty,'###,####,###0.######'))
  2723. end if
  2724. next
  2725. end event
  2726. event ue_setqty_forformula_1();Long child_row
  2727. child_row = dw_child.getrow()
  2728. dw_child.AcceptText()
  2729. if dw_child.Object.u_outwaremx_formula[child_row]<>'' and dw_child.Object.u_outwaremx_ifrel[child_row] = 0 then
  2730. String ls_msg
  2731. s_cmpl_qty arg_cmpl
  2732. decimal ld_qty
  2733. long cusid,mtrlid
  2734. mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row]
  2735. cusid = dw_uc.Object.u_outware_cusid[dw_uc.getrow()]
  2736. arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row]
  2737. arg_cmpl.price = dw_child.Object.u_outwaremx_price[child_row]
  2738. arg_cmpl.cusprice = wf_get_cusprice(cusid,mtrlid)
  2739. arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row]
  2740. arg_cmpl.packqty = dw_child.Object.u_outwaremx_packqty[child_row]
  2741. arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row]
  2742. arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row]
  2743. arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row]
  2744. arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row]
  2745. arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row]
  2746. arg_cmpl.mxdscrp = dw_child.Object.u_outwaremx_mxdscrp[child_row]
  2747. arg_cmpl.mxdscrp2 = dw_child.Object.mxdscrp2[child_row]
  2748. arg_cmpl.mxdscrp3 = dw_child.Object.u_outwaremx_mxdscrp3[child_row]
  2749. arg_cmpl.mxdscrp4 = dw_child.Object.u_outwaremx_mxdscrp4[child_row]
  2750. arg_cmpl.formula = dw_child.Object.u_outwaremx_formula[child_row]
  2751. arg_cmpl.num = sys_option_outware_price_amt_round
  2752. arg_cmpl.flag = true
  2753. arg_cmpl.addvalue = 1
  2754. ld_qty = 0
  2755. if f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 then
  2756. MessageBox('提示',ls_msg, Information!, OK! )
  2757. RETURN
  2758. END IF
  2759. dw_child.Object.u_outwaremx_uqty[child_row] = dec(String(ld_qty,'###,####,###0.######'))
  2760. end if
  2761. end event
  2762. event ue_setprice_forformula_1();Long child_row
  2763. child_row = dw_child.getrow()
  2764. dw_child.AcceptText()
  2765. if dw_child.Object.u_outwaremx_priceformula[child_row]<>'' and dw_child.Object.u_outwaremx_ifrel[child_row] = 0 then
  2766. String ls_msg
  2767. s_cmpl_qty arg_cmpl
  2768. decimal ld_qty
  2769. long cusid,mtrlid
  2770. mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row]
  2771. cusid = dw_uc.Object.u_outware_cusid[dw_uc.getrow()]
  2772. arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row]
  2773. arg_cmpl.price = dw_child.Object.u_outwaremx_price[child_row]
  2774. arg_cmpl.cusprice = wf_get_cusprice(cusid,mtrlid)
  2775. arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row]
  2776. arg_cmpl.packqty = dw_child.Object.u_outwaremx_packqty[child_row]
  2777. arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row]
  2778. arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row]
  2779. arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row]
  2780. arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row]
  2781. arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row]
  2782. arg_cmpl.mxdscrp = dw_child.Object.u_outwaremx_mxdscrp[child_row]
  2783. arg_cmpl.mxdscrp2 = dw_child.Object.mxdscrp2[child_row]
  2784. arg_cmpl.mxdscrp3 = dw_child.Object.u_outwaremx_mxdscrp3[child_row]
  2785. arg_cmpl.mxdscrp4 = dw_child.Object.u_outwaremx_mxdscrp4[child_row]
  2786. arg_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[child_row]
  2787. arg_cmpl.num = sys_option_outware_price_amt_round
  2788. arg_cmpl.flag = true
  2789. arg_cmpl.addvalue = 1
  2790. ld_qty = 0
  2791. if f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 then
  2792. MessageBox('提示',ls_msg, Information!, OK! )
  2793. RETURN
  2794. END IF
  2795. dw_child.Object.u_outwaremx_enprice[child_row] = dec(String(ld_qty,'###,####,###0.######'))
  2796. end if
  2797. end event
  2798. public function integer wf_flagstatus_rf ();//wf_flagstatus_rf()
  2799. Long pagerert_row
  2800. pagerert_row = dw_pageretr.GetRow()
  2801. IF pagerert_row <= 0 THEN
  2802. IF sys_option_confirmaudit_sale = 1 THEN
  2803. cb_auditing.Text = '确认&F'
  2804. cb_auditing_cancel.Text = '反确认'
  2805. ELSE
  2806. cb_auditing.Text = '审核&F'
  2807. cb_auditing_cancel.Text = '撤审'
  2808. END IF
  2809. cb_auditing.Enabled = False
  2810. cb_auditing_cancel.Enabled = False
  2811. flag = -1
  2812. secflag = -1
  2813. priceflag = -1
  2814. GOTO ext
  2815. END IF
  2816. flag = dw_pageretr.Object.flag[pagerert_row]
  2817. secflag = dw_pageretr.Object.secflag[pagerert_row]
  2818. priceflag = dw_pageretr.Object.u_outware_priceflag[pagerert_row]
  2819. IF dw_edit_mode THEN
  2820. IF sys_option_confirmaudit_sale = 1 THEN
  2821. cb_auditing.Text = '确认&F'
  2822. cb_auditing_cancel.Text = '反确认'
  2823. ELSE
  2824. IF sys_option_hide_ware = 0 THEN
  2825. cb_auditing.Text = '仓审&F'
  2826. cb_auditing_cancel.Text = '仓撤'
  2827. ELSE
  2828. cb_auditing.Text = '审核&F'
  2829. cb_auditing_cancel.Text = '撤审'
  2830. END IF
  2831. END IF
  2832. cb_auditing.Enabled = False
  2833. cb_auditing_cancel.Enabled = False
  2834. IF cur_editfocus = 1 THEN
  2835. flag = -1
  2836. secflag = -1
  2837. priceflag = -1
  2838. END IF
  2839. ELSE
  2840. IF sys_option_hide_ware = 0 THEN
  2841. IF sys_option_confirmaudit_sale = 1 THEN
  2842. IF priceflag = 0 THEN
  2843. cb_auditing.Text = '确认&F'
  2844. cb_auditing.Enabled = True
  2845. cb_auditing_cancel.Text = '反确认'
  2846. cb_auditing_cancel.Enabled = False
  2847. ELSEIF priceflag = 1 And flag = 0 THEN
  2848. cb_auditing.Text = '仓审&F'
  2849. cb_auditing.Enabled = True
  2850. cb_auditing_cancel.Text = '反确认'
  2851. cb_auditing_cancel.Enabled = True
  2852. ELSEIF flag = 1 And secflag = 0 THEN
  2853. cb_auditing.Enabled = True
  2854. cb_auditing.Text = '财审&F'
  2855. cb_auditing_cancel.Enabled = True
  2856. cb_auditing_cancel.Text = '仓撤'
  2857. ELSE
  2858. cb_auditing.Text = '财审&F'
  2859. cb_auditing.Enabled = False
  2860. cb_auditing_cancel.Enabled = True
  2861. cb_auditing_cancel.Text = '财撤'
  2862. END IF
  2863. ELSE
  2864. IF flag = 0 THEN
  2865. cb_auditing.Enabled = True
  2866. cb_auditing.Text = '仓审&F'
  2867. cb_auditing_cancel.Enabled = False
  2868. ELSEIF flag = 1 And secflag = 0 THEN
  2869. cb_auditing.Enabled = True
  2870. cb_auditing.Text = '财审&F'
  2871. cb_auditing_cancel.Enabled = True
  2872. cb_auditing_cancel.Text = '仓撤'
  2873. ELSE
  2874. cb_auditing.Text = '财审&F'
  2875. cb_auditing.Enabled = False
  2876. cb_auditing_cancel.Enabled = True
  2877. cb_auditing_cancel.Text = '财撤'
  2878. END IF
  2879. END IF
  2880. ELSE
  2881. IF sys_option_confirmaudit_sale = 1 THEN
  2882. IF priceflag = 0 THEN
  2883. cb_auditing.Text = '确认&F'
  2884. cb_auditing.Enabled = True
  2885. cb_auditing_cancel.Text = '反确认'
  2886. cb_auditing_cancel.Enabled = False
  2887. ELSEIF priceflag = 1 And flag = 0 THEN
  2888. cb_auditing.Text = '审核&F'
  2889. cb_auditing_cancel.Text = '反确认'
  2890. cb_auditing.Enabled = True
  2891. cb_auditing_cancel.Enabled = True
  2892. ELSE
  2893. cb_auditing.Text = '审核&F'
  2894. cb_auditing_cancel.Text = '撤审'
  2895. cb_auditing.Enabled = False
  2896. cb_auditing_cancel.Enabled = True
  2897. END IF
  2898. ELSE
  2899. IF flag = 0 THEN
  2900. cb_auditing.Text = '审核&F'
  2901. cb_auditing_cancel.Text = '撤审'
  2902. cb_auditing.Enabled = True
  2903. cb_auditing_cancel.Enabled = False
  2904. ELSE
  2905. cb_auditing.Text = '审核&F'
  2906. cb_auditing_cancel.Text = '撤审'
  2907. cb_auditing.Enabled = False
  2908. cb_auditing_cancel.Enabled = True
  2909. END IF
  2910. END IF
  2911. END IF
  2912. END IF
  2913. cb_auditing.TriggerEvent('ue_textchange')
  2914. cb_auditing_cancel.TriggerEvent('ue_textchange')
  2915. ext:
  2916. RETURN 0
  2917. end function
  2918. public function integer wf_refresh_curuc (long arg_scid, long arg_wareid);//====================================================================
  2919. // Function: wf_refresh_curuc(arg_scid,arg_inwareid)
  2920. //--------------------------------------------------------------------
  2921. // Description: 刷新dw_uc
  2922. //--------------------------------------------------------------------
  2923. // Arguments:
  2924. // value long arg_scid
  2925. // value long arg_inwareid
  2926. //--------------------------------------------------------------------
  2927. // Returns: integer
  2928. //--------------------------------------------------------------------
  2929. // Author: yyx Date: 2003.11.14
  2930. //--------------------------------------------------------------------
  2931. // Modify History:
  2932. //
  2933. //====================================================================
  2934. //wf_refresh_curuc
  2935. IF arg_wareid <= 0 OR IsNull(arg_wareid) THEN RETURN 0
  2936. Long uc_row
  2937. uc_row = dw_pageretr.GetRow()
  2938. IF uc_row <= 0 THEN RETURN 0
  2939. Long outwareid,cusid
  2940. DateTime outdate
  2941. String part,cuscode,cusname
  2942. String outrep
  2943. String dscrp,dscrp2,dscrp3
  2944. Int planflag
  2945. Int balcflag
  2946. String outwarecode
  2947. DateTime opdate
  2948. String operator
  2949. Int li_flag ,li_secflag ,li_priceflag
  2950. DateTime auditingdate ,secauditingdate ,moddate,pricedate
  2951. String Auditingrep ,secAuditingrep ,modemp,priceemp
  2952. String storagename
  2953. Int thflag
  2954. Decimal mrate
  2955. Decimal otheramt
  2956. Decimal deposit
  2957. String rel_address
  2958. String rel_rep
  2959. String rel_tele, rel_tele1
  2960. String rel_fax
  2961. String relstr_1
  2962. String relstr_2, relstr_3
  2963. long relint_1
  2964. long relint_2
  2965. long storageid
  2966. long ll_printnum
  2967. datetime secpdate
  2968. int secpflag
  2969. string secpemp
  2970. string transcode
  2971. string carcode
  2972. string paytype
  2973. long typeid
  2974. datetime viewdate
  2975. Decimal enamt_tax
  2976. Long ifenamt_tax
  2977. SELECT u_outware.outdate,
  2978. u_outware.outrep,
  2979. u_outware.part,
  2980. u_outware.dscrp,
  2981. u_outware.dscrp2,
  2982. u_outware.dscrp3,
  2983. u_outware.outwarecode,
  2984. u_outware.opdate,
  2985. u_outware.opemp,
  2986. u_outware.auditingdate,
  2987. u_outware.flag,
  2988. u_outware.auditingrep,
  2989. u_outware.secauditingdate,
  2990. u_outware.secflag,
  2991. u_outware.secauditingrep,
  2992. u_outware.balcflag,
  2993. u_outware.cusid,
  2994. u_cust.cuscode,
  2995. u_cust.name,
  2996. u_storage.storagename ,
  2997. u_outware.thflag,
  2998. u_outware.modemp,
  2999. u_outware.moddate,
  3000. u_outware.priceflag,
  3001. u_outware.priceemp,
  3002. u_outware.pricedate,
  3003. u_outware.mrate,
  3004. u_outware.otheramt,
  3005. u_outware.deposit,
  3006. u_outware.rel_address,
  3007. u_outware.rel_rep,
  3008. u_outware.rel_tele,
  3009. u_outware.rel_tele1,
  3010. u_outware.rel_fax,
  3011. u_outware.relstr_1,
  3012. u_outware.relstr_2,
  3013. u_outware.relstr_3,
  3014. u_outware.relint_1,
  3015. u_outware.relint_2,
  3016. u_outware.storageid,
  3017. u_outware.printnum,
  3018. u_outware.secpdate ,
  3019. u_outware.secpflag,
  3020. u_outware.secpemp,
  3021. u_outware.transcode,
  3022. u_outware.carcode,
  3023. u_outware.paytype,
  3024. u_outware.typeid,
  3025. u_outware.viewdate,
  3026. mxout.enamt_tax,
  3027. case when mxout.enamt_tax > 0 then 1 else 0 end ifenamt_tax
  3028. INTO :outdate,
  3029. :outrep,
  3030. :part,
  3031. :dscrp,
  3032. :dscrp2,
  3033. :dscrp3,
  3034. :outwarecode,
  3035. :opdate,
  3036. :operator,
  3037. :Auditingdate,
  3038. :li_flag,
  3039. :Auditingrep,
  3040. :secAuditingdate,
  3041. :li_secflag,
  3042. :secAuditingrep,
  3043. :balcflag,
  3044. :cusid,
  3045. :cuscode,
  3046. :cusname,
  3047. :storagename,
  3048. :thflag,
  3049. :modemp,
  3050. :moddate,
  3051. :li_priceflag,
  3052. :priceemp,
  3053. :pricedate,
  3054. :mrate,
  3055. :otheramt,
  3056. :deposit,
  3057. :rel_address,
  3058. :rel_rep,
  3059. :rel_tele,
  3060. :rel_tele1,
  3061. :rel_fax,
  3062. :relstr_1,
  3063. :relstr_2,
  3064. :relstr_3,
  3065. :relint_1,
  3066. :relint_2,
  3067. :storageid,
  3068. :ll_printnum,
  3069. :secpdate ,
  3070. :secpflag,
  3071. :secpemp,
  3072. :transcode,
  3073. :carcode,
  3074. :paytype,
  3075. :typeid,
  3076. :viewdate,
  3077. :enamt_tax,
  3078. :ifenamt_tax
  3079. FROM u_outware
  3080. INNER JOIN u_cust ON u_outware.cusid = u_cust.cusid
  3081. INNER JOIN u_storage ON u_outware.StorageID = u_storage.storageid
  3082. LEFT OUTER JOIN (
  3083. SELECT u_outwaremx.scid
  3084. ,u_outwaremx.outwareid
  3085. ,sum(enamt_tax) AS enamt_tax
  3086. FROM u_outwaremx
  3087. GROUP BY u_outwaremx.scid
  3088. ,u_outwaremx.outwareid
  3089. ) AS mxout ON mxout.scid = u_outware.scid
  3090. AND mxout.outwareid = u_outware.outwareid
  3091. WHERE ( u_outware.outwareid = :arg_wareid ) AND
  3092. ( u_outware.scid = :arg_scid);
  3093. IF sqlca.SQLCode <> 0 THEN
  3094. MessageBox('错误',"查询操作失败(错误单据唯一码)",stopsign!,OK!)
  3095. RETURN 0
  3096. END IF
  3097. dw_pageretr.Object.u_outware_storageid[uc_row] = storageid
  3098. dw_pageretr.Object.u_outware_scid[uc_row] = arg_scid
  3099. dw_pageretr.Object.u_outware_outwareid[uc_row] = arg_wareid
  3100. dw_pageretr.Object.u_outware_outdate[uc_row] = outdate
  3101. dw_pageretr.Object.u_outware_part[uc_row] = part
  3102. dw_pageretr.Object.u_outware_outrep[uc_row] = outrep
  3103. dw_pageretr.Object.u_outware_dscrp[uc_row] = dscrp
  3104. dw_pageretr.Object.u_outware_dscrp2[uc_row] = dscrp2
  3105. dw_pageretr.Object.u_outware_dscrp3[uc_row] = dscrp3
  3106. dw_pageretr.Object.u_outware_balcflag[uc_row] = balcflag
  3107. dw_pageretr.Object.u_outware_outwarecode[uc_row] = outwarecode
  3108. dw_pageretr.Object.u_outware_opdate[uc_row] = opdate
  3109. dw_pageretr.Object.u_outware_opemp[uc_row] = operator
  3110. dw_pageretr.Object.flag[uc_row] = li_flag
  3111. dw_pageretr.Object.u_outware_Auditingdate[uc_row] = auditingdate
  3112. dw_pageretr.Object.u_outware_Auditingrep[uc_row] = Auditingrep
  3113. dw_pageretr.Object.u_outware_cusid[uc_row] = cusid
  3114. dw_pageretr.Object.u_cust_cuscode[uc_row] = cuscode
  3115. dw_pageretr.Object.u_cust_name[uc_row] = cusname
  3116. dw_pageretr.Object.u_storage_storagename[uc_row] = storagename
  3117. dw_pageretr.Object.u_outware_thflag[uc_row] = thflag
  3118. dw_pageretr.Object.secflag[uc_row] = li_secflag
  3119. dw_pageretr.Object.u_outware_secAuditingdate[uc_row] = secauditingdate
  3120. dw_pageretr.Object.u_outware_secAuditingrep[uc_row] = secAuditingrep
  3121. dw_pageretr.Object.u_outware_moddate[uc_row] = moddate
  3122. dw_pageretr.Object.u_outware_modemp[uc_row] = modemp
  3123. dw_pageretr.Object.u_outware_priceflag[uc_row] = li_priceflag
  3124. dw_pageretr.Object.u_outware_pricedate[uc_row] = pricedate
  3125. dw_pageretr.Object.u_outware_priceemp[uc_row] = priceemp
  3126. dw_pageretr.Object.u_outware_secpflag[uc_row] = secpflag
  3127. dw_pageretr.Object.u_outware_secpdate[uc_row] = secpdate
  3128. dw_pageretr.Object.u_outware_secpemp[uc_row] = secpemp
  3129. dw_pageretr.Object.u_outware_mrate[uc_row] = mrate
  3130. dw_pageretr.Object.u_outware_otheramt[uc_row] = otheramt
  3131. dw_pageretr.Object.u_outware_deposit[uc_row] = deposit
  3132. dw_pageretr.Object.u_outware_rel_address[uc_row] = rel_address
  3133. dw_pageretr.Object.u_outware_rel_rep[uc_row] = rel_rep
  3134. dw_pageretr.Object.u_outware_rel_tele[uc_row] = rel_tele
  3135. dw_pageretr.Object.u_outware_rel_tele1[uc_row] = rel_tele1
  3136. dw_pageretr.Object.u_outware_rel_fax[uc_row] = rel_fax
  3137. dw_pageretr.Object.u_outware_relstr_1[uc_row] = relstr_1
  3138. dw_pageretr.Object.u_outware_relstr_2[uc_row] = relstr_2
  3139. dw_pageretr.Object.u_outware_relstr_3[uc_row] = relstr_3
  3140. dw_pageretr.Object.u_outware_relint_1[uc_row] = relint_1
  3141. dw_pageretr.Object.u_outware_relint_2[uc_row] = relint_2
  3142. dw_pageretr.Object.u_outware_printnum[uc_row] = ll_printnum
  3143. dw_pageretr.Object.u_outware_transcode[uc_row] = transcode
  3144. dw_pageretr.Object.u_outware_carcode[uc_row] = carcode
  3145. dw_pageretr.Object.u_outware_paytype[uc_row] = paytype
  3146. dw_pageretr.Object.typeid[uc_row] = typeid
  3147. dw_pageretr.Object.viewdate[uc_row] = viewdate
  3148. dw_pageretr.Object.enamt_tax[uc_row] = enamt_tax
  3149. dw_pageretr.Object.ifenamt_tax[uc_row] = ifenamt_tax
  3150. dw_pageretr.ResetUpdate()
  3151. dw_pageretr.SetRedraw(TRUE)
  3152. dw_uc.Reset()
  3153. dw_pageretr.RowsCopy(dw_pageretr.GetRow(), dw_pageretr.GetRow(), Primary!, dw_uc, 1, Primary!)
  3154. dw_uc.ResetUpdate()
  3155. dw_uc.SetRedraw(TRUE)
  3156. wf_flagstatus_rf()
  3157. RETURN 1
  3158. end function
  3159. public subroutine wf_check_billfj ();String arg_msg
  3160. Long ll_ConnectionID
  3161. Long cur_billtype
  3162. long ll_relid,ll_relid_mx,ll_scid
  3163. Long ls_filecount = 0
  3164. Int rslt = 1
  3165. uo_fj_mng_billtype ls_uo_fjbt
  3166. ls_uo_fjbt = CREATE uo_fj_mng_billtype
  3167. Long row,uc_relid
  3168. row = dw_pageretr.GetRow()
  3169. IF row > 0 THEN
  3170. ll_relid = dw_pageretr.Object.u_outware_outwareid[row]
  3171. ll_scid = dw_pageretr.Object.u_outware_scid[row]
  3172. ll_relid_mx = 0
  3173. ELSE
  3174. rslt = 0
  3175. GOTO ext
  3176. END IF
  3177. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  3178. rslt = 0
  3179. GOTO ext
  3180. END IF
  3181. cur_billtype = 104 //客户投拆单的 mainiD
  3182. ls_uo_fjbt.uf_check_billfj( cur_billtype, ll_relid,ll_relid_mx,ll_scid, sys_fileDB_sqlca, arg_msg, ls_filecount)
  3183. IF ls_filecount > 0 THEN
  3184. rslt = 1
  3185. GOTO ext
  3186. ELSE
  3187. rslt = 0
  3188. GOTO ext
  3189. END IF
  3190. ext:
  3191. wf_encl(rslt)
  3192. DESTROY ls_uo_fjbt
  3193. end subroutine
  3194. public function integer wf_xls_retrievedata (long arg_ationid, ref s_xls_billlist arg_str_billlist, ref uo_sendtoexcel arg_obj_st, ref string arg_msg);//==============================================================================
  3195. // 函数: w_publ_1ton_share_detail::wf_xls_retrievedata()
  3196. //------------------------------------------------------------------------------
  3197. // 描述: 此函数需要 重载,复制祖先范例代码,然后修改retrieve参数部分两处即可
  3198. //------------------------------------------------------------------------------
  3199. Long LS_ROW,ll_id,i,ll_scid
  3200. LS_ROW = dw_pageretr.GetRow()
  3201. IF LS_ROW <= 0 THEN
  3202. arg_msg = '没有目标单据!'
  3203. RETURN 0
  3204. END IF
  3205. //修改点:获取 指定retriev参数
  3206. ll_id = dw_pageretr.Object.#1[LS_ROW]
  3207. ll_scid = dw_pageretr.Object.U_outware_scid[LS_ROW]
  3208. //查询所选模版是否含有图片信息
  3209. Long ll_ifpic
  3210. Long ll_classid
  3211. SELECT ifpic
  3212. INTO :ll_ifpic
  3213. FROM U_XLS_Templates
  3214. Where id = :ll_xls_Templatesid;
  3215. IF sqlca.SQLCode <> 0 THEN
  3216. ll_ifpic = 0
  3217. END IF
  3218. Long ll_i,ll_j
  3219. Long ll_mtrlid, ll_relid, ll_relid_mx
  3220. Long ll_fileid
  3221. Blob ls_filedata
  3222. SetNull(ls_filedata)
  3223. String Pathname,ls_filename,ls_filetype
  3224. String errmsg
  3225. uo_fj_mng_billtype ls_uo_fjbt
  3226. ls_uo_fjbt = Create uo_fj_mng_billtype
  3227. s_xls_pic_list s_pic //结构数组-用于保存图片路径
  3228. IF ll_ifpic = 1 THEN //如果含有图片信息,则查询本类型单据需要带出哪类附件
  3229. SELECT classid
  3230. INTO :ll_classid
  3231. FROM u_billpic_fileclass
  3232. Where (billtype = 102);
  3233. IF sqlca.SQLCode <> 0 THEN
  3234. ll_classid = 0
  3235. END IF
  3236. IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息.
  3237. FOR ll_i = 1 To dw_child.RowCount()
  3238. ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ll_i]
  3239. // ll_relid = dw_child.Object.u_outwaremx_outwareid[ll_i]
  3240. // ll_relid_mx = dw_child.Object.u_outwaremx_printid[ll_i]
  3241. //取该附件类型中的第一个附件.
  3242. SELECT top 1 fileid,DisplayName,FileType INTO :ll_fileid,:ls_filename,:ls_filetype
  3243. FROM u_file
  3244. WHERE relid = :ll_mtrlid
  3245. AND classid = :ll_classid
  3246. AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf'
  3247. OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg')
  3248. Using sys_fileDB_sqlca;
  3249. IF sys_fileDB_sqlca.SQLCode <> 0 THEN
  3250. ll_fileid = 0
  3251. END IF
  3252. IF ll_fileid > 0 THEN
  3253. Pathname = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ls_filename+'.'+ls_filetype
  3254. IF Trim(Pathname) <> '' THEN
  3255. IF ls_uo_fjbt.uf_getfjbolb_fromdb( ll_fileid, ls_filedata, sys_fileDB_sqlca, arg_msg) = 0 THEN
  3256. RETURN 0
  3257. END IF
  3258. IF f_saveblobtofile(ls_filedata,Pathname,errmsg) = 0 THEN
  3259. RETURN 0
  3260. ELSE
  3261. s_pic.path[ll_i] = Pathname
  3262. //记录临时文件位置,本窗口退出后删除
  3263. wf_addlog_tempfilepathname(Pathname)
  3264. END IF
  3265. ELSE
  3266. s_pic.path[ll_i] = ''
  3267. END IF
  3268. ELSE
  3269. s_pic.path[ll_i] = ''
  3270. END IF
  3271. NEXT
  3272. END IF
  3273. //
  3274. END IF
  3275. ////可选设置/ //
  3276. arg_obj_st.uo_const.create_new_pwd( ) //创建随机密码
  3277. IF sys_option_xls_ifuse_passwd = 1 THEN arg_obj_st.uo_const.pwd = Trim(sys_option_xls_user_passwd) //默认加密密码 默认为随即密码
  3278. Boolean xls_locked
  3279. xls_locked = Not (sys_option_xls_lock = 1)
  3280. // Excel 的可选设置
  3281. IF arg_obj_st.of_setoption(arg_ationid, xls_locked,True,arg_msg) <> 1 THEN
  3282. RETURN 0
  3283. END IF
  3284. FOR i = 1 To arg_str_billlist.count
  3285. ////可选操作/ //
  3286. arg_str_billlist.bill[i].ds_data = Create datastore //
  3287. arg_str_billlist.bill[i].ds_data.DataObject = arg_str_billlist.bill[i].datawindow //
  3288. arg_str_billlist.bill[i].ds_data.SetTransObject(sqlca)
  3289. //修改点:注意retrieve 参数与上文对应
  3290. arg_str_billlist.bill[i].ds_data.Retrieve(ll_scid,ll_id)
  3291. IF ll_ifpic = 1 and ll_classid > 0 THEN
  3292. IF arg_str_billlist.bill[i].datawindow = 'dw_xls_outwaremx' AND arg_str_billlist.bill[i].ds_data.RowCount() > 0 THEN //设置图片路径
  3293. FOR ll_j = 1 TO arg_str_billlist.bill[i].ds_data.RowCount()
  3294. arg_str_billlist.bill[i].ds_data.Object.pic[ll_j] = s_pic.path[ll_j]
  3295. NEXT
  3296. END IF
  3297. END IF
  3298. NEXT
  3299. RETURN 1
  3300. end function
  3301. public function integer wf_saletaskmtrltoarr (long arg_scid, long arg_taskid, ref s_saletask_mtrl arg_s_rqmtrl, ref long arg_p_rqmtrl, ref string arg_msg);//wf_saletaskmtrltoarr(long arg_taskid,ref s_saletask_mtrl arg_s_rqmtrl[],ref long arg_p_rqmtrl,ref string arg_msg)
  3302. //查询合同物料资料
  3303. //把物料资料写入数组
  3304. Long rslt = 1
  3305. Long i
  3306. //查询合同物料
  3307. DECLARE pf_cur CURSOR FOR
  3308. SELECT u_saletaskmx.mtrlid,
  3309. u_saletaskmx.uSaleQty - u_saletaskmx.consignedqty - u_saletaskmx.stopqty - ISNULL(uv_outware_sale_noaudit_qty.qty,0),
  3310. u_saletaskmx.enprice,
  3311. u_saletaskmx.fprice,
  3312. u_saletaskmx.rebate,
  3313. u_saletaskmx.mxdscrp,
  3314. u_saletaskmx.status,
  3315. u_saletaskmx.woodcode,
  3316. u_saletaskmx.pcode,
  3317. u_saletaskmx.unit,
  3318. u_saletaskmx.rate,
  3319. u_saletaskmx.mtrlcuscode,
  3320. u_saletaskmx.outtype,
  3321. u_saletaskmx.formula,
  3322. u_saletaskmx.addqty,
  3323. convert(text,u_SaleTaskMx.mxdscrp2) as mxdscrp2,
  3324. u_saletask.taskdate,
  3325. u_saletaskmx.printid,
  3326. u_saletaskmx.taskid,
  3327. u_saletask.taskcode,
  3328. u_saletaskmx.plancode,
  3329. u_saletaskmx.packqty,
  3330. u_saletaskmx.net_weight,
  3331. u_saletaskmx.gross_weight,
  3332. u_saletaskmx.cubage,
  3333. u_saletaskmx.tax,
  3334. u_saletaskmx.mxdscrp3,
  3335. u_saletaskmx.mxdscrp4,
  3336. u_saletaskmx.priceformula
  3337. FROM u_saletaskmx LEFT OUTER JOIN
  3338. uv_outware_sale_noaudit_qty ON
  3339. u_SaleTaskMx.scid = uv_outware_sale_noaudit_qty.scid AND
  3340. u_SaleTaskMx.TaskID = uv_outware_sale_noaudit_qty.relid AND
  3341. u_SaleTaskMx.printid = uv_outware_sale_noaudit_qty.relprintid ,
  3342. u_mtrldef,u_saletask
  3343. WHERE u_saletaskmx.mtrlid = u_mtrldef.mtrlid AND
  3344. ( u_saletaskmx.taskid = :arg_taskid )
  3345. AND ( u_saletaskmx.uSaleQty - u_saletaskmx.consignedqty - u_saletaskmx.stopqty <> 0 )
  3346. And ( u_saletaskmx.scid = :arg_scid )
  3347. and u_saletask.taskid = u_saletaskmx.taskid
  3348. and u_saletask.scid = u_saletaskmx.scid;
  3349. OPEN pf_cur;
  3350. arg_p_rqmtrl = 1
  3351. FETCH pf_cur INTO :arg_s_rqmtrl.mtrlid[arg_p_rqmtrl],:arg_s_rqmtrl.qty[arg_p_rqmtrl],
  3352. :arg_s_rqmtrl.enprice[arg_p_rqmtrl],:arg_s_rqmtrl.fprice[arg_p_rqmtrl],
  3353. :arg_s_rqmtrl.rebate[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp[arg_p_rqmtrl],
  3354. :arg_s_rqmtrl.status[arg_p_rqmtrl],:arg_s_rqmtrl.woodcode[arg_p_rqmtrl],
  3355. :arg_s_rqmtrl.pcode[arg_p_rqmtrl],:arg_s_rqmtrl.unit[arg_p_rqmtrl],
  3356. :arg_s_rqmtrl.rate[arg_p_rqmtrl],:arg_s_rqmtrl.mtrlcuscode[arg_p_rqmtrl],
  3357. :arg_s_rqmtrl.outtype[arg_p_rqmtrl],:arg_s_rqmtrl.formula[arg_p_rqmtrl],
  3358. :arg_s_rqmtrl.addqty[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp2[arg_p_rqmtrl],
  3359. :arg_s_rqmtrl.taskdate[arg_p_rqmtrl],
  3360. :arg_s_rqmtrl.printid[arg_p_rqmtrl],
  3361. :arg_s_rqmtrl.taskid[arg_p_rqmtrl],
  3362. :arg_s_rqmtrl.taskcode[arg_p_rqmtrl],
  3363. :arg_s_rqmtrl.plancode[arg_p_rqmtrl],
  3364. :arg_s_rqmtrl.packqty[arg_p_rqmtrl],
  3365. :arg_s_rqmtrl.net_weight[arg_p_rqmtrl],
  3366. :arg_s_rqmtrl.gross_weight[arg_p_rqmtrl],
  3367. :arg_s_rqmtrl.cubage[arg_p_rqmtrl],
  3368. :arg_s_rqmtrl.tax[arg_p_rqmtrl],
  3369. :arg_s_rqmtrl.mxdscrp3[arg_p_rqmtrl],
  3370. :arg_s_rqmtrl.mxdscrp4[arg_p_rqmtrl],
  3371. :arg_s_rqmtrl.priceformula[arg_p_rqmtrl]
  3372. ;
  3373. DO WHILE sqlca.SQLCode = 0
  3374. arg_p_rqmtrl++
  3375. FETCH pf_cur INTO :arg_s_rqmtrl.mtrlid[arg_p_rqmtrl],:arg_s_rqmtrl.qty[arg_p_rqmtrl],
  3376. :arg_s_rqmtrl.enprice[arg_p_rqmtrl],:arg_s_rqmtrl.fprice[arg_p_rqmtrl],
  3377. :arg_s_rqmtrl.rebate[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp[arg_p_rqmtrl],
  3378. :arg_s_rqmtrl.status[arg_p_rqmtrl],:arg_s_rqmtrl.woodcode[arg_p_rqmtrl],
  3379. :arg_s_rqmtrl.pcode[arg_p_rqmtrl],:arg_s_rqmtrl.unit[arg_p_rqmtrl],
  3380. :arg_s_rqmtrl.rate[arg_p_rqmtrl],:arg_s_rqmtrl.mtrlcuscode[arg_p_rqmtrl],
  3381. :arg_s_rqmtrl.outtype[arg_p_rqmtrl],:arg_s_rqmtrl.formula[arg_p_rqmtrl],
  3382. :arg_s_rqmtrl.addqty[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp2[arg_p_rqmtrl],
  3383. :arg_s_rqmtrl.taskdate[arg_p_rqmtrl],
  3384. :arg_s_rqmtrl.printid[arg_p_rqmtrl],
  3385. :arg_s_rqmtrl.taskid[arg_p_rqmtrl],
  3386. :arg_s_rqmtrl.taskcode[arg_p_rqmtrl],
  3387. :arg_s_rqmtrl.plancode[arg_p_rqmtrl],
  3388. :arg_s_rqmtrl.packqty[arg_p_rqmtrl],
  3389. :arg_s_rqmtrl.net_weight[arg_p_rqmtrl],
  3390. :arg_s_rqmtrl.gross_weight[arg_p_rqmtrl],
  3391. :arg_s_rqmtrl.cubage[arg_p_rqmtrl],
  3392. :arg_s_rqmtrl.tax[arg_p_rqmtrl],
  3393. :arg_s_rqmtrl.mxdscrp3[arg_p_rqmtrl],
  3394. :arg_s_rqmtrl.mxdscrp4[arg_p_rqmtrl],
  3395. :arg_s_rqmtrl.priceformula[arg_p_rqmtrl]
  3396. ;
  3397. LOOP
  3398. arg_p_rqmtrl = arg_p_rqmtrl - 1
  3399. CLOSE pf_cur;
  3400. RETURN rslt
  3401. end function
  3402. public function integer wf_autoaddmx (long arg_scid, long arg_saletaskid, string arg_taskcode, long arg_storageid, long arg_cusid, long arg_ifzeromtrlware, ref string arg_msg);//淘汰 //引入订单
  3403. //wf_autoaddmx(arg_saletaskid,arg_storageid,arg_msg)
  3404. //查询合同物料于数组中
  3405. //循环数组
  3406. //查询物料库存总额
  3407. //查询库存批/插入明细记录
  3408. IF Not dw_edit_mode THEN RETURN 0
  3409. long rslt = 1
  3410. //s_saletask_mtrl arg_s_rqmtrlI
  3411. //long P_rqmtrl
  3412. //
  3413. ////Long lrow,li
  3414. ////Decimal mtrlwaresum_qty,sumqty,i_qty,ins_qty,ins_planprice,ins_price,noallocqty,allocqty,r_qty
  3415. ////Long ins_storageid,count = 0,ins_mtrlwareid = 0,child_llrow
  3416. ////String ins_prdpackcode,ins_mtrlcode,ins_mtrlname,ins_plancode,ins_unit,ins_mtrlsectype,ins_zxmtrlmode,ins_mtrlmode
  3417. ////Boolean lb_find = True
  3418. ////Long storageid
  3419. ////Long mtrlwareid
  3420. ////String plancode
  3421. ////Decimal planprice
  3422. ////
  3423. ////Date l_rqdate
  3424. ////l_rqdate = Today()
  3425. //
  3426. ////Int li_if_cus_mtrlware,li_noallocflag,li_inwaretype
  3427. ////Long ls_sptid
  3428. ////SELECT balctype,noallocflag,inwaretype
  3429. //// INTO :li_if_cus_mtrlware,:li_noallocflag,:li_inwaretype
  3430. //// FROM u_storage
  3431. //// Where storageid = :arg_storageid;
  3432. ////IF sqlca.SQLCode <> 0 THEN
  3433. //// arg_msg = '查询仓库是否使用客户库存失败'
  3434. //// rslt = 0
  3435. //// GOTO ext
  3436. ////END IF
  3437. ////
  3438. ////IF li_if_cus_mtrlware = 1 THEN
  3439. //// ls_sptid = arg_cusid
  3440. ////ELSE
  3441. //// ls_sptid = -1
  3442. ////END IF
  3443. //
  3444. //IF wf_saletaskmtrltoarr(arg_scid,arg_saletaskid,arg_s_rqmtrlI,P_rqmtrl,arg_msg) = 0 THEN
  3445. // rslt = 0
  3446. // GOTO ext
  3447. //END IF
  3448. //
  3449. //IF wf_set_outwaremx(arg_cusid, arg_storageid, arg_s_rqmtrlI,arg_msg) = 0 THEN
  3450. // rslt = 0
  3451. // GOTO ext
  3452. //END IF
  3453. //
  3454. ////FOR li = 1 To P_rqmtrl
  3455. //// sumqty = 0
  3456. //// ins_mtrlcode = ''
  3457. //// ins_mtrlname = ''
  3458. //// lb_find = True
  3459. //// allocqty = 0
  3460. //// noallocqty = 0
  3461. //// i_qty = 0
  3462. //// r_qty = 0
  3463. ////
  3464. //// SELECT u_mtrldef.mtrlcode,
  3465. //// u_mtrldef.mtrlname,
  3466. //// u_mtrldef.unit,
  3467. //// u_mtrldef.mtrlmode,
  3468. //// u_mtrldef.mtrlsectype,
  3469. //// u_mtrldef.zxmtrlmode
  3470. //// INTO :ins_mtrlcode,
  3471. //// :ins_mtrlname,
  3472. //// :ins_unit,
  3473. //// :ins_mtrlmode,
  3474. //// :ins_mtrlsectype,
  3475. //// :ins_zxmtrlmode
  3476. //// FROM u_mtrldef
  3477. //// Where u_mtrldef.mtrlid = :arg_s_rqmtrlI.mtrlid[li];
  3478. //// IF sqlca.SQLCode <> 0 THEN
  3479. //// arg_msg = '查询物料资料失败[错误物料唯一码]>'+sqlca.SQLErrText
  3480. //// rslt = 0
  3481. //// GOTO ext
  3482. //// END IF
  3483. ////
  3484. //// SELECT ISNULL(SUM(u_mtrlware.noallocqty), 0) AS sum_qty
  3485. //// INTO :mtrlwaresum_qty
  3486. //// FROM u_mtrlware
  3487. //// WHERE u_mtrlware.mtrlid = :arg_s_rqmtrlI.mtrlid[li]
  3488. //// AND u_mtrlware.storageid = :arg_storageid
  3489. //// AND u_mtrlware.status = :arg_s_rqmtrlI.status[li]
  3490. //// AND u_mtrlware.pcode = :arg_s_rqmtrlI.pcode[li]
  3491. //// AND u_mtrlware.woodcode = :arg_s_rqmtrlI.woodcode[li]
  3492. //// AND u_mtrlware.scid = :cur_scid
  3493. //// AND ( u_mtrlware.sptid = :ls_sptid OR :ls_sptid = -1 )
  3494. //// And (plancode = :arg_s_rqmtrlI.plancode[li] Or :arg_s_rqmtrlI.plancode[li] = '');
  3495. //// // and ( (:ifmtrlware = 1 and plancode = :arg_taskcode ) or :ifmtrlware = 0);
  3496. //// IF sqlca.SQLCode = 0 THEN
  3497. ////
  3498. //// ELSEIF sqlca.SQLCode = 100 THEN
  3499. //// mtrlwaresum_qty = -100000
  3500. //// ELSE
  3501. //// arg_msg = '查询库存量失败>'+sqlca.SQLErrText
  3502. //// MessageBox('提示',String(arg_s_rqmtrlI.mtrlid[li] )+'颜色:'+arg_s_rqmtrlI.status[li]+' '+arg_msg,stopsign!,OK!)
  3503. //// rslt = 0
  3504. //// GOTO ext
  3505. //// END IF
  3506. ////
  3507. //// IF li_noallocflag = 1 And mtrlwaresum_qty = 0 Or mtrlwaresum_qty = -100000 THEN
  3508. //// IF dw_child.GetRow() <= 0 THEN
  3509. //// child_llrow = dw_child.InsertRow(0)
  3510. //// ELSE
  3511. //// IF dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] > 0 THEN
  3512. //// child_llrow = dw_child.InsertRow(0)
  3513. //// ELSE
  3514. //// child_llrow = dw_child.GetRow()
  3515. //// END IF
  3516. //// END IF
  3517. ////
  3518. //// dw_child.Object.u_outwaremx_ifrel[child_llrow] = 1
  3519. //// dw_child.Object.u_outwaremx_relid[child_llrow] = arg_saletaskid
  3520. //// dw_child.Object.u_outwaremx_relprintid[child_llrow] = arg_s_rqmtrlI.printid[li]
  3521. //// dw_child.Object.taskcode[child_llrow] = arg_taskcode
  3522. ////
  3523. //// dw_child.Object.u_outwaremx_mtrlwareid[child_llrow] = 0
  3524. //// dw_child.Object.u_outwaremx_mtrlid[child_llrow] = 0
  3525. //// dw_child.Object.u_outwaremx_enprice[child_llrow] = arg_s_rqmtrlI.enprice[li]
  3526. //// dw_child.Object.u_outwaremx_fprice[child_llrow] = arg_s_rqmtrlI.fprice[li]
  3527. //// dw_child.Object.u_outwaremx_rebate[child_llrow] = arg_s_rqmtrlI.rebate[li]
  3528. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = 0
  3529. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = 0
  3530. ////
  3531. //// dw_child.Object.u_outwaremx_unit[child_llrow] = arg_s_rqmtrlI.unit[li]
  3532. //// dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode
  3533. //// dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname
  3534. //// dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit
  3535. //// dw_child.Object.u_outwaremx_mxdscrp[child_llrow] = arg_s_rqmtrlI.mxdscrp[li]
  3536. //// dw_child.Object.mxdscrp2[child_llrow] = arg_s_rqmtrlI.mxdscrp2[li]
  3537. //// dw_child.Object.u_outwaremx_status[child_llrow] = arg_s_rqmtrlI.status[li]
  3538. //// dw_child.Object.u_outwaremx_woodcode[child_llrow] = arg_s_rqmtrlI.woodcode[li]
  3539. //// dw_child.Object.u_outwaremx_pcode[child_llrow] = arg_s_rqmtrlI.pcode[li]
  3540. //// dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode
  3541. //// dw_child.Object.u_mtrldef_curware_qty[child_llrow] = 0
  3542. //// dw_child.Object.u_mtrldef_sumneed_qty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3543. //// dw_child.Object.u_mtrldef_sumware_qty[child_llrow] = 0
  3544. //// dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype
  3545. //// dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode
  3546. //// dw_child.Object.u_outwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrlI.mtrlcuscode[li]
  3547. //// dw_child.Object.u_outwaremx_rate[child_llrow] = arg_s_rqmtrlI.rate[li]
  3548. //// dw_child.Object.u_outwaremx_outtype[child_llrow] = arg_s_rqmtrlI.outtype[li]
  3549. //// dw_child.Object.u_outwaremx_formula[child_llrow] = arg_s_rqmtrlI.formula[li]
  3550. //// dw_child.Object.u_outwaremx_addqty[child_llrow] = arg_s_rqmtrlI.addqty[li]
  3551. //// dw_child.Object.u_mtrldef_taskdate[child_llrow] = arg_s_rqmtrlI.taskdate[li]
  3552. //// GOTO nextmtrl
  3553. //// END IF
  3554. ////
  3555. //// child_llrow = dw_child.GetRow()
  3556. ////
  3557. //// IF mtrlwaresum_qty = 0 THEN
  3558. //// IF dw_child.GetRow() > 0 THEN
  3559. //// IF dw_child.Object.u_outwaremx_mtrlid[child_llrow] <> 0 THEN
  3560. //// child_llrow = dw_child.InsertRow (0)
  3561. //// ELSE
  3562. //// child_llrow = dw_child.GetRow()
  3563. //// END IF
  3564. //// ELSE
  3565. //// child_llrow = dw_child.InsertRow (0)
  3566. //// END IF
  3567. ////
  3568. //// mtrlwareid = 0
  3569. //// plancode = ''
  3570. //// noallocqty = 0
  3571. //// planprice = 0
  3572. ////
  3573. //// SELECT top 1
  3574. //// u_mtrlware.mtrlwareid,
  3575. //// u_mtrlware.plancode,
  3576. //// u_mtrlware.noallocqty,
  3577. //// u_mtrlware.planprice
  3578. //// INTO
  3579. //// :mtrlwareid,
  3580. //// :plancode,
  3581. //// :noallocqty,
  3582. //// :planprice
  3583. //// FROM u_mtrlware
  3584. //// WHERE ( u_mtrlware.mtrlid = :arg_s_rqmtrlI.mtrlid[li] ) AND
  3585. //// ( u_mtrlware.storageid = :arg_storageid ) AND
  3586. //// ( u_mtrlware.status = :arg_s_rqmtrlI.status[li] ) AND
  3587. //// ( u_mtrlware.pcode = :arg_s_rqmtrlI.pcode[li] ) AND
  3588. //// ( u_mtrlware.woodcode = :arg_s_rqmtrlI.woodcode[li] ) AND
  3589. //// ( u_mtrlware.scid = :cur_scid ) AND
  3590. //// ( u_mtrlware.sptid = :ls_sptid OR :ls_sptid = -1 )
  3591. //// AND (plancode = :arg_s_rqmtrlI.plancode[li] OR :arg_s_rqmtrlI.plancode[li] = '')
  3592. //// Order By u_mtrlware.mtrlwareid Desc ;
  3593. //// IF sqlca.SQLCode = -1 THEN
  3594. //// arg_msg = '查询库存量失败>'+sqlca.SQLErrText
  3595. //// MessageBox('提示',String(arg_s_rqmtrlI.mtrlid[li] )+'颜色:'+arg_s_rqmtrlI.status[li]+' '+arg_msg,stopsign!,OK!)
  3596. //// rslt = 0
  3597. //// GOTO ext
  3598. //// END IF
  3599. ////
  3600. ////
  3601. //// dw_child.Object.u_outwaremx_ifrel[child_llrow] = 1
  3602. //// dw_child.Object.u_outwaremx_relid[child_llrow] = arg_saletaskid
  3603. //// dw_child.Object.u_outwaremx_relprintid[child_llrow] = arg_s_rqmtrlI.printid[li]
  3604. //// dw_child.Object.taskcode[child_llrow] = arg_taskcode
  3605. ////
  3606. //// dw_child.Object.u_outwaremx_mtrlwareid[child_llrow] = mtrlwareid
  3607. //// dw_child.Object.u_outwaremx_mtrlid[child_llrow] = arg_s_rqmtrlI.mtrlid[li]
  3608. ////
  3609. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3610. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3611. ////
  3612. //// dw_child.Object.u_outwaremx_storageid[child_llrow] = arg_storageid
  3613. //// dw_child.Object.u_outwaremx_plancode[child_llrow] = plancode
  3614. //// dw_child.Object.u_outwaremx_planprice[child_llrow] = planprice
  3615. //// dw_child.Object.u_outwaremx_unit[child_llrow] = arg_s_rqmtrlI.unit[li]
  3616. //// dw_child.Object.u_outwaremx_enprice[child_llrow] = arg_s_rqmtrlI.enprice[li]
  3617. //// dw_child.Object.u_outwaremx_fprice[child_llrow] = arg_s_rqmtrlI.fprice[li]
  3618. //// dw_child.Object.u_outwaremx_rebate[child_llrow] = arg_s_rqmtrlI.rebate[li]
  3619. //// dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode
  3620. //// dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname
  3621. //// dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode
  3622. //// dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit
  3623. //// dw_child.Object.u_outwaremx_mxdscrp[child_llrow] = arg_s_rqmtrlI.mxdscrp[li]
  3624. //// dw_child.Object.mxdscrp2[child_llrow] = arg_s_rqmtrlI.mxdscrp2[li]
  3625. //// dw_child.Object.u_outwaremx_status[child_llrow] = arg_s_rqmtrlI.status[li]
  3626. //// dw_child.Object.u_outwaremx_woodcode[child_llrow] = arg_s_rqmtrlI.woodcode[li]
  3627. //// dw_child.Object.u_outwaremx_pcode[child_llrow] = arg_s_rqmtrlI.pcode[li]
  3628. //// dw_child.Object.u_mtrldef_curware_qty[child_llrow] = 0
  3629. //// dw_child.Object.u_mtrldef_sumneed_qty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3630. //// dw_child.Object.u_mtrldef_sumware_qty[child_llrow] = 0
  3631. //// dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype
  3632. //// dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode
  3633. //// dw_child.Object.u_outwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrlI.mtrlcuscode[li]
  3634. //// dw_child.Object.u_outwaremx_rate[child_llrow] = arg_s_rqmtrlI.rate[li]
  3635. //// dw_child.Object.u_outwaremx_outtype[child_llrow] = arg_s_rqmtrlI.outtype[li]
  3636. //// dw_child.Object.u_outwaremx_formula[child_llrow] = arg_s_rqmtrlI.formula[li]
  3637. //// dw_child.Object.u_outwaremx_addqty[child_llrow] = arg_s_rqmtrlI.addqty[li]
  3638. //// dw_child.Object.u_mtrldef_taskdate[child_llrow] = arg_s_rqmtrlI.taskdate[li]
  3639. //// ELSE
  3640. //// DECLARE pf_cur CURSOR FOR
  3641. //// SELECT u_mtrlware.storageid,
  3642. //// u_mtrlware.mtrlwareid,
  3643. //// u_mtrlware.plancode,
  3644. //// u_mtrlware.noallocqty,
  3645. //// u_mtrlware.planprice
  3646. //// FROM u_mtrlware
  3647. //// WHERE ( u_mtrlware.mtrlid = :arg_s_rqmtrlI.mtrlid[li] ) AND
  3648. //// ( u_mtrlware.storageid = :arg_storageid ) AND
  3649. //// ( u_mtrlware.status = :arg_s_rqmtrlI.status[li] ) AND
  3650. //// ( u_mtrlware.pcode = :arg_s_rqmtrlI.pcode[li] ) AND
  3651. //// ( u_mtrlware.woodcode = :arg_s_rqmtrlI.woodcode[li] ) AND
  3652. //// ( u_mtrlware.scid = :cur_scid ) AND
  3653. //// ( u_mtrlware.sptid = :ls_sptid OR :ls_sptid = -1 ) AND
  3654. //// ( u_mtrlware.noallocqty > 0)
  3655. //// AND (plancode = :arg_s_rqmtrlI.plancode[li] OR :arg_s_rqmtrlI.plancode[li] = '')
  3656. //// Order By u_mtrlware.noallocqty Desc ;
  3657. ////
  3658. //// OPEN pf_cur;
  3659. //// count = 1
  3660. //// FETCH pf_cur INTO :ins_storageid,:ins_mtrlwareid,:ins_plancode,&
  3661. //// :ins_qty,:ins_planprice ;
  3662. //// DO WHILE sqlca.SQLCode = 0 And r_qty < arg_s_rqmtrlI.qty[li]
  3663. //// count++
  3664. //// i_qty = ins_qty
  3665. //// r_qty = r_qty+i_qty
  3666. //// IF r_qty > arg_s_rqmtrlI.qty[li] THEN
  3667. //// i_qty = ins_qty - ( r_qty - arg_s_rqmtrlI.qty[li] )
  3668. ////
  3669. //// END IF
  3670. ////
  3671. //// IF dw_child.GetRow() > 0 THEN
  3672. //// IF dw_child.Object.u_outwaremx_mtrlid[child_llrow] <> 0 THEN
  3673. //// child_llrow = dw_child.InsertRow (0)
  3674. //// ELSE
  3675. //// child_llrow = dw_child.GetRow()
  3676. //// END IF
  3677. //// ELSE
  3678. //// child_llrow = dw_child.InsertRow (0)
  3679. //// END IF
  3680. ////
  3681. //// dw_child.Object.u_outwaremx_ifrel[child_llrow] = 1
  3682. //// dw_child.Object.u_outwaremx_relid[child_llrow] = arg_saletaskid
  3683. //// dw_child.Object.u_outwaremx_relprintid[child_llrow] = arg_s_rqmtrlI.printid[li]
  3684. //// dw_child.Object.taskcode[child_llrow] = arg_taskcode
  3685. ////
  3686. //// dw_child.Object.u_outwaremx_mtrlwareid[child_llrow] = ins_mtrlwareid
  3687. //// dw_child.Object.u_outwaremx_mtrlid[child_llrow] = arg_s_rqmtrlI.mtrlid[li]
  3688. //// dw_child.Object.u_outwaremx_storageid[child_llrow] = ins_storageid
  3689. //// dw_child.Object.u_outwaremx_plancode[child_llrow] = ins_plancode
  3690. //// dw_child.Object.u_outwaremx_planprice[child_llrow] = ins_planprice
  3691. //// dw_child.Object.u_outwaremx_unit[child_llrow] = arg_s_rqmtrlI.unit[li]
  3692. //// dw_child.Object.u_outwaremx_enprice[child_llrow] = arg_s_rqmtrlI.enprice[li]
  3693. //// dw_child.Object.u_outwaremx_fprice[child_llrow] = arg_s_rqmtrlI.fprice[li]
  3694. //// dw_child.Object.u_outwaremx_rebate[child_llrow] = arg_s_rqmtrlI.rebate[li]
  3695. //// dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode
  3696. //// dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname
  3697. //// dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode
  3698. //// dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit
  3699. //// dw_child.Object.u_outwaremx_mxdscrp[child_llrow] = arg_s_rqmtrlI.mxdscrp[li]
  3700. //// dw_child.Object.mxdscrp2[child_llrow] = arg_s_rqmtrlI.mxdscrp2[li]
  3701. //// dw_child.Object.u_outwaremx_status[child_llrow] = arg_s_rqmtrlI.status[li]
  3702. //// dw_child.Object.u_outwaremx_woodcode[child_llrow] = arg_s_rqmtrlI.woodcode[li]
  3703. //// dw_child.Object.u_outwaremx_pcode[child_llrow] = arg_s_rqmtrlI.pcode[li]
  3704. //// dw_child.Object.u_mtrldef_curware_qty[child_llrow] = ins_qty
  3705. //// dw_child.Object.u_mtrldef_sumneed_qty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3706. //// dw_child.Object.u_mtrldef_sumware_qty[child_llrow] = mtrlwaresum_qty
  3707. //// dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype
  3708. //// dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode
  3709. //// dw_child.Object.u_outwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrlI.mtrlcuscode[li]
  3710. //// dw_child.Object.u_outwaremx_rate[child_llrow] = arg_s_rqmtrlI.rate[li]
  3711. //// dw_child.Object.u_outwaremx_outtype[child_llrow] = arg_s_rqmtrlI.outtype[li]
  3712. //// dw_child.Object.u_outwaremx_formula[child_llrow] = arg_s_rqmtrlI.formula[li]
  3713. //// dw_child.Object.u_outwaremx_addqty[child_llrow] = arg_s_rqmtrlI.addqty[li]
  3714. //// dw_child.Object.u_mtrldef_taskdate[child_llrow] = arg_s_rqmtrlI.taskdate[li]
  3715. //// IF ins_qty <= arg_s_rqmtrlI.qty[li] THEN
  3716. //// IF li_noallocflag = 0 THEN
  3717. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3718. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3719. //// ELSE
  3720. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = i_qty
  3721. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = i_qty
  3722. //// END IF
  3723. //// ELSE
  3724. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3725. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3726. //// END IF
  3727. ////
  3728. ////
  3729. //// FETCH pf_cur INTO :ins_storageid,:ins_mtrlwareid,:ins_plancode,&
  3730. //// :ins_qty,:ins_planprice ;
  3731. ////
  3732. //// LOOP
  3733. //// count = count - 1
  3734. //// CLOSE pf_cur;
  3735. //// END IF
  3736. //// nextmtrl:
  3737. ////NEXT
  3738. //
  3739. //
  3740. //ext:
  3741. RETURN rslt
  3742. end function
  3743. public function integer wf_saletaskmtrltoarr_salemx (long arg_scid, ref s_saletask_mtrl arg_s_rqmtrl, ref string arg_msg);//wf_saletaskmtrltoarr(long arg_taskid,ref s_saletask_mtrl arg_s_rqmtrl[],ref long i,ref string arg_msg)
  3744. //查询合同物料资料
  3745. //把物料资料写入数组
  3746. Long rslt = 1
  3747. Long i
  3748. FOR i = 1 To UpperBound(arg_s_rqmtrl.taskid)
  3749. SELECT u_saletaskmx.mtrlid,
  3750. u_saletaskmx.uSaleQty - u_saletaskmx.consignedqty - u_saletaskmx.stopqty - isnull(uv_outware_sale_noaudit_qty.qty,0),
  3751. u_saletaskmx.enprice,
  3752. u_saletaskmx.fprice,
  3753. u_saletaskmx.rebate,
  3754. u_saletaskmx.mxdscrp,
  3755. u_saletaskmx.status,
  3756. u_saletaskmx.woodcode,
  3757. u_saletaskmx.pcode,
  3758. u_saletaskmx.unit,
  3759. u_saletaskmx.rate,
  3760. u_saletaskmx.mtrlcuscode,
  3761. u_saletaskmx.outtype,
  3762. u_saletaskmx.formula,
  3763. u_saletaskmx.addqty,
  3764. convert(text,u_SaleTaskMx.mxdscrp2) as mxdscrp2,
  3765. u_saletask.taskdate,
  3766. u_saletaskmx.plancode,
  3767. u_saletaskmx.packqty,
  3768. u_saletaskmx.net_weight,
  3769. u_saletaskmx.gross_weight,
  3770. u_saletaskmx.cubage,
  3771. u_saletaskmx.tax,
  3772. u_saletaskmx.mxdscrp3,
  3773. u_saletaskmx.mxdscrp4,
  3774. u_saletaskmx.priceformula
  3775. INTO :arg_s_rqmtrl.mtrlid[i],
  3776. :arg_s_rqmtrl.qty[i],
  3777. :arg_s_rqmtrl.enprice[i],
  3778. :arg_s_rqmtrl.fprice[i],
  3779. :arg_s_rqmtrl.rebate[i],
  3780. :arg_s_rqmtrl.mxdscrp[i],
  3781. :arg_s_rqmtrl.status[i],
  3782. :arg_s_rqmtrl.woodcode[i],
  3783. :arg_s_rqmtrl.pcode[i],
  3784. :arg_s_rqmtrl.unit[i],
  3785. :arg_s_rqmtrl.rate[i],
  3786. :arg_s_rqmtrl.mtrlcuscode[i],
  3787. :arg_s_rqmtrl.outtype[i],
  3788. :arg_s_rqmtrl.formula[i],
  3789. :arg_s_rqmtrl.addqty[i],
  3790. :arg_s_rqmtrl.mxdscrp2[i],
  3791. :arg_s_rqmtrl.taskdate[i],
  3792. :arg_s_rqmtrl.plancode[i],
  3793. :arg_s_rqmtrl.packqty[i],
  3794. :arg_s_rqmtrl.net_weight[i],
  3795. :arg_s_rqmtrl.gross_weight[i],
  3796. :arg_s_rqmtrl.cubage[i],
  3797. :arg_s_rqmtrl.tax[i],
  3798. :arg_s_rqmtrl.mxdscrp3[i],
  3799. :arg_s_rqmtrl.mxdscrp4[i],
  3800. :arg_s_rqmtrl.priceformula[i]
  3801. FROM u_SaleTaskMx INNER JOIN
  3802. u_SaleTask ON u_SaleTaskMx.TaskID = u_SaleTask.TaskID AND
  3803. u_SaleTaskMx.scid = u_SaleTask.scid LEFT OUTER JOIN
  3804. uv_outware_sale_noaudit_qty ON
  3805. u_SaleTaskMx.scid = uv_outware_sale_noaudit_qty.scid AND
  3806. u_SaleTaskMx.TaskID = uv_outware_sale_noaudit_qty.relid AND
  3807. u_SaleTaskMx.printid = uv_outware_sale_noaudit_qty.relprintid
  3808. WHERE ( u_saletaskmx.scid = :arg_scid )
  3809. AND ( u_saletaskmx.taskid = :arg_s_rqmtrl.taskid[i] )
  3810. And u_saletaskmx.printid = :arg_s_rqmtrl.printid[i]
  3811. And ( u_saletaskmx.uSaleQty - u_saletaskmx.consignedqty - u_saletaskmx.stopqty <> 0 );
  3812. IF sqlca.SQLCode <> 0 THEN
  3813. rslt = 0
  3814. arg_msg = '查询订单明细信息失败!'+sqlca.SQLErrText
  3815. GOTO ext
  3816. END IF
  3817. NEXT
  3818. ext:
  3819. RETURN rslt
  3820. end function
  3821. public function integer wf_autoaddmx_salemx (long arg_scid, s_saletask_mtrl arg_s_rqmtrli, long arg_storageid, long arg_cusid, long arg_ifzeromtrlware, ref string arg_msg);//淘汰 //引入订单明细
  3822. //wf_autoaddmx(arg_taskid,arg_storageid,arg_msg)
  3823. //查询合同物料于数组中
  3824. //循环数组
  3825. //查询物料库存总额
  3826. //查询库存批/插入明细记录
  3827. IF NOT dw_edit_mode THEN RETURN 0
  3828. Long li,rslt = 1
  3829. ////Long count = 0,child_llrow
  3830. ////
  3831. ////Decimal mtrlwaresum_qty,sumqty,i_qty,ins_qty,ins_planprice,noallocqty,allocqty,r_qty
  3832. ////Long ins_storageid,ins_mtrlwareid = 0
  3833. ////String ins_mtrlcode,ins_mtrlname,ins_plancode,ins_unit,ins_mtrlsectype,ins_zxmtrlmode,ins_mtrlmode
  3834. ////Long mtrlwareid
  3835. ////String plancode
  3836. ////Decimal planprice
  3837. ////
  3838. ////Boolean lb_find = TRUE
  3839. //
  3840. ////Int li_if_cus_mtrlware,li_noallocflag
  3841. ////Long ll_sptid
  3842. ////
  3843. //////客户库存, 未开单库存
  3844. ////SELECT balctype, noallocflag
  3845. //// INTO :li_if_cus_mtrlware, :li_noallocflag
  3846. //// FROM u_storage
  3847. //// Where storageid = :arg_storageid;
  3848. ////IF sqlca.SQLCode <> 0 THEN
  3849. //// arg_msg = '查询仓库是否使用客户库存失败'
  3850. //// rslt = 0
  3851. //// GOTO ext
  3852. ////END IF
  3853. ////
  3854. ////IF li_if_cus_mtrlware = 1 THEN
  3855. //// ll_sptid = arg_cusid
  3856. ////ELSE
  3857. //// ll_sptid = -1
  3858. ////END IF
  3859. //
  3860. //IF wf_saletaskmtrltoarr_salemx(arg_scid,arg_s_rqmtrlI,arg_msg) = 0 THEN
  3861. // rslt = 0
  3862. // GOTO ext
  3863. //END IF
  3864. //
  3865. //IF wf_set_outwaremx(arg_cusid, arg_storageid, arg_s_rqmtrlI,arg_msg) = 0 THEN
  3866. // rslt = 0
  3867. // GOTO ext
  3868. //END IF
  3869. //
  3870. ////FOR li = 1 TO UpperBound(arg_s_rqmtrlI.taskid)
  3871. //// sumqty = 0
  3872. //// ins_mtrlcode = ''
  3873. //// ins_mtrlname = ''
  3874. //// lb_find = TRUE
  3875. //// allocqty = 0
  3876. //// noallocqty = 0
  3877. //// i_qty = 0
  3878. //// r_qty = 0
  3879. ////
  3880. //// SELECT u_mtrldef.mtrlcode,
  3881. //// u_mtrldef.mtrlname,
  3882. //// u_mtrldef.unit,
  3883. //// u_mtrldef.mtrlmode,
  3884. //// u_mtrldef.mtrlsectype,
  3885. //// u_mtrldef.zxmtrlmode
  3886. //// INTO :ins_mtrlcode,
  3887. //// :ins_mtrlname,
  3888. //// :ins_unit,
  3889. //// :ins_mtrlmode,
  3890. //// :ins_mtrlsectype,
  3891. //// :ins_zxmtrlmode
  3892. //// FROM u_mtrldef
  3893. //// Where u_mtrldef.mtrlid = :arg_s_rqmtrlI.mtrlid[li];
  3894. //// IF sqlca.SQLCode <> 0 THEN
  3895. //// arg_msg = '查询物料资料失败[错误物料唯一码]>'+sqlca.SQLErrText
  3896. //// rslt = 0
  3897. //// GOTO ext
  3898. //// END IF
  3899. ////
  3900. //// SELECT ISNULL(SUM(u_mtrlware.noallocqty), 0) AS sum_qty
  3901. //// INTO :mtrlwaresum_qty
  3902. //// FROM u_mtrlware
  3903. //// WHERE u_mtrlware.scid = :cur_scid
  3904. //// AND u_mtrlware.mtrlid = :arg_s_rqmtrlI.mtrlid[li]
  3905. //// AND u_mtrlware.storageid = :arg_storageid
  3906. //// AND u_mtrlware.status = :arg_s_rqmtrlI.status[li]
  3907. //// AND u_mtrlware.pcode = :arg_s_rqmtrlI.pcode[li]
  3908. //// AND u_mtrlware.woodcode = :arg_s_rqmtrlI.woodcode[li]
  3909. //// AND ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 )
  3910. //// And (plancode = :arg_s_rqmtrlI.plancode[li] Or :arg_s_rqmtrlI.plancode[li] = '');
  3911. ////// And ( (:ifmtrlware = 1 AND plancode = :arg_s_rqmtrlI.taskcode[li] ) OR :ifmtrlware = 0) ;
  3912. ////
  3913. //// IF sqlca.SQLCode = 0 THEN
  3914. ////
  3915. //// ELSEIF sqlca.SQLCode = 100 THEN
  3916. //// mtrlwaresum_qty = -100000
  3917. //// ELSE
  3918. //// arg_msg = '查询库存量失败>'+sqlca.SQLErrText
  3919. //// MessageBox('错误',String(arg_s_rqmtrlI.mtrlid[li] )+'颜色:'+arg_s_rqmtrlI.status[li]+' '+arg_msg,stopsign!,OK!)
  3920. //// rslt = 0
  3921. //// GOTO ext
  3922. //// END IF
  3923. ////
  3924. //// IF li_noallocflag = 1 AND mtrlwaresum_qty = 0 OR mtrlwaresum_qty = -100000 THEN
  3925. //// IF dw_child.GetRow() <= 0 THEN
  3926. //// child_llrow = dw_child.InsertRow(0)
  3927. //// ELSE
  3928. //// IF dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] > 0 THEN
  3929. //// child_llrow = dw_child.InsertRow(0)
  3930. //// ELSE
  3931. //// child_llrow = dw_child.GetRow()
  3932. //// END IF
  3933. //// END IF
  3934. ////
  3935. //// dw_child.Object.u_outwaremx_ifrel[child_llrow] = 1
  3936. //// dw_child.Object.u_outwaremx_relid[child_llrow] = arg_s_rqmtrlI.taskid[li]
  3937. //// dw_child.Object.u_outwaremx_relprintid[child_llrow] = arg_s_rqmtrlI.printid[li]
  3938. //// dw_child.Object.taskcode[child_llrow] = arg_s_rqmtrlI.taskcode[li]
  3939. ////
  3940. //// dw_child.Object.u_outwaremx_mtrlwareid[child_llrow] = 0
  3941. //// dw_child.Object.u_outwaremx_mtrlid[child_llrow] = 0
  3942. //// dw_child.Object.u_outwaremx_enprice[child_llrow] = arg_s_rqmtrlI.enprice[li]
  3943. //// dw_child.Object.u_outwaremx_fprice[child_llrow] = arg_s_rqmtrlI.fprice[li]
  3944. //// dw_child.Object.u_outwaremx_rebate[child_llrow] = arg_s_rqmtrlI.rebate[li]
  3945. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = 0
  3946. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = 0
  3947. //// dw_child.Object.u_outwaremx_unit[child_llrow] = arg_s_rqmtrlI.unit[li]
  3948. //// dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode
  3949. //// dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname
  3950. //// dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit
  3951. //// dw_child.Object.u_outwaremx_mxdscrp[child_llrow] = arg_s_rqmtrlI.mxdscrp[li]
  3952. //// dw_child.Object.mxdscrp2[child_llrow] = arg_s_rqmtrlI.mxdscrp2[li]
  3953. //// dw_child.Object.u_outwaremx_status[child_llrow] = arg_s_rqmtrlI.status[li]
  3954. //// dw_child.Object.u_outwaremx_woodcode[child_llrow] = arg_s_rqmtrlI.woodcode[li]
  3955. //// dw_child.Object.u_outwaremx_pcode[child_llrow] = arg_s_rqmtrlI.pcode[li]
  3956. //// dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode
  3957. //// dw_child.Object.u_mtrldef_curware_qty[child_llrow] = 0
  3958. //// dw_child.Object.u_mtrldef_sumneed_qty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3959. //// dw_child.Object.u_mtrldef_sumware_qty[child_llrow] = 0
  3960. //// dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype
  3961. //// dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode
  3962. //// dw_child.Object.u_outwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrlI.mtrlcuscode[li]
  3963. //// dw_child.Object.u_outwaremx_rate[child_llrow] = arg_s_rqmtrlI.rate[li]
  3964. //// dw_child.Object.u_outwaremx_outtype[child_llrow] = arg_s_rqmtrlI.outtype[li]
  3965. //// dw_child.Object.u_outwaremx_formula[child_llrow] = arg_s_rqmtrlI.formula[li]
  3966. //// dw_child.Object.u_outwaremx_addqty[child_llrow] = arg_s_rqmtrlI.addqty[li]
  3967. //// dw_child.Object.u_mtrldef_taskdate[child_llrow] = arg_s_rqmtrlI.taskdate[li]
  3968. //// GOTO nextmtrl
  3969. //// END IF
  3970. ////
  3971. //// child_llrow = dw_child.GetRow()
  3972. ////
  3973. //// IF mtrlwaresum_qty = 0 THEN
  3974. //// IF dw_child.GetRow() > 0 THEN
  3975. //// IF dw_child.Object.u_outwaremx_mtrlid[child_llrow] <> 0 THEN
  3976. //// child_llrow = dw_child.InsertRow (0)
  3977. //// ELSE
  3978. //// child_llrow = dw_child.GetRow()
  3979. //// END IF
  3980. //// ELSE
  3981. //// child_llrow = dw_child.InsertRow (0)
  3982. //// END IF
  3983. ////
  3984. //// mtrlwareid = 0
  3985. //// plancode = ''
  3986. //// noallocqty = 0
  3987. //// planprice = 0
  3988. ////
  3989. //// SELECT top 1
  3990. //// u_mtrlware.mtrlwareid,
  3991. //// u_mtrlware.plancode,
  3992. //// u_mtrlware.noallocqty,
  3993. //// u_mtrlware.planprice
  3994. //// INTO
  3995. //// :mtrlwareid,
  3996. //// :plancode,
  3997. //// :noallocqty,
  3998. //// :planprice
  3999. //// FROM u_mtrlware
  4000. //// WHERE ( u_mtrlware.mtrlid = :arg_s_rqmtrlI.mtrlid[li] ) AND
  4001. //// ( u_mtrlware.storageid = :arg_storageid ) AND
  4002. //// ( u_mtrlware.status = :arg_s_rqmtrlI.status[li] ) AND
  4003. //// ( u_mtrlware.pcode = :arg_s_rqmtrlI.pcode[li] ) AND
  4004. //// ( u_mtrlware.woodcode = :arg_s_rqmtrlI.woodcode[li] ) AND
  4005. //// ( u_mtrlware.scid = :cur_scid ) AND
  4006. //// ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 )
  4007. //// And (plancode = :arg_s_rqmtrlI.plancode[li] Or :arg_s_rqmtrlI.plancode[li] = '')
  4008. //// Order By u_mtrlware.mtrlwareid Desc ;
  4009. //// IF sqlca.SQLCode = -1 THEN
  4010. //// arg_msg = '查询库存信息失败>'+sqlca.SQLErrText
  4011. //// MessageBox('错误',String(arg_s_rqmtrlI.mtrlid[li] )+'颜色:'+arg_s_rqmtrlI.status[li]+' '+arg_msg,information!,OK!)
  4012. //// rslt = 0
  4013. //// GOTO ext
  4014. //// END IF
  4015. ////
  4016. ////
  4017. //// dw_child.Object.u_outwaremx_ifrel[child_llrow] = 1
  4018. //// dw_child.Object.u_outwaremx_relid[child_llrow] = arg_s_rqmtrlI.taskid[li]
  4019. //// dw_child.Object.u_outwaremx_relprintid[child_llrow] = arg_s_rqmtrlI.printid[li]
  4020. //// dw_child.Object.taskcode[child_llrow] = arg_s_rqmtrlI.taskcode[li]
  4021. ////
  4022. //// dw_child.Object.u_outwaremx_mtrlwareid[child_llrow] = mtrlwareid
  4023. //// dw_child.Object.u_outwaremx_mtrlid[child_llrow] = arg_s_rqmtrlI.mtrlid[li]
  4024. //// dw_child.Object.u_outwaremx_storageid[child_llrow] = arg_storageid
  4025. //// dw_child.Object.u_outwaremx_plancode[child_llrow] = plancode
  4026. //// dw_child.Object.u_outwaremx_planprice[child_llrow] = planprice
  4027. //// dw_child.Object.u_outwaremx_unit[child_llrow] = arg_s_rqmtrlI.unit[li]
  4028. //// dw_child.Object.u_outwaremx_enprice[child_llrow] = arg_s_rqmtrlI.enprice[li]
  4029. //// dw_child.Object.u_outwaremx_fprice[child_llrow] = arg_s_rqmtrlI.fprice[li]
  4030. //// dw_child.Object.u_outwaremx_rebate[child_llrow] = arg_s_rqmtrlI.rebate[li]
  4031. //// dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode
  4032. //// dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname
  4033. //// dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode
  4034. //// dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit
  4035. //// dw_child.Object.u_outwaremx_mxdscrp[child_llrow] = arg_s_rqmtrlI.mxdscrp[li]
  4036. //// dw_child.Object.mxdscrp2[child_llrow] = arg_s_rqmtrlI.mxdscrp2[li]
  4037. //// dw_child.Object.u_outwaremx_status[child_llrow] = arg_s_rqmtrlI.status[li]
  4038. //// dw_child.Object.u_outwaremx_woodcode[child_llrow] = arg_s_rqmtrlI.woodcode[li]
  4039. //// dw_child.Object.u_outwaremx_pcode[child_llrow] = arg_s_rqmtrlI.pcode[li]
  4040. //// dw_child.Object.u_mtrldef_curware_qty[child_llrow] = 0
  4041. //// dw_child.Object.u_mtrldef_sumneed_qty[child_llrow] = arg_s_rqmtrlI.qty[li]
  4042. //// dw_child.Object.u_mtrldef_sumware_qty[child_llrow] = 0
  4043. //// dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype
  4044. //// dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode
  4045. //// dw_child.Object.u_outwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrlI.mtrlcuscode[li]
  4046. //// dw_child.Object.u_outwaremx_rate[child_llrow] = arg_s_rqmtrlI.rate[li]
  4047. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  4048. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  4049. //// dw_child.Object.u_outwaremx_outtype[child_llrow] = arg_s_rqmtrlI.outtype[li]
  4050. //// dw_child.Object.u_outwaremx_formula[child_llrow] = arg_s_rqmtrlI.formula[li]
  4051. //// dw_child.Object.u_outwaremx_addqty[child_llrow] = arg_s_rqmtrlI.addqty[li]
  4052. //// dw_child.Object.u_mtrldef_taskdate[child_llrow] = arg_s_rqmtrlI.taskdate[li]
  4053. //// ELSE
  4054. //// DECLARE pf_cur CURSOR FOR
  4055. //// SELECT u_mtrlware.storageid,
  4056. //// u_mtrlware.mtrlwareid,
  4057. //// u_mtrlware.plancode,
  4058. //// u_mtrlware.noallocqty,
  4059. //// u_mtrlware.planprice
  4060. //// FROM u_mtrlware
  4061. //// WHERE ( u_mtrlware.mtrlid = :arg_s_rqmtrlI.mtrlid[li] ) AND
  4062. //// ( u_mtrlware.storageid = :arg_storageid ) AND
  4063. //// ( u_mtrlware.status = :arg_s_rqmtrlI.status[li] ) AND
  4064. //// ( u_mtrlware.pcode = :arg_s_rqmtrlI.pcode[li] ) AND
  4065. //// ( u_mtrlware.woodcode = :arg_s_rqmtrlI.woodcode[li] ) AND
  4066. //// ( u_mtrlware.scid = :cur_scid ) AND
  4067. //// ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 ) AND
  4068. //// ( u_mtrlware.noallocqty > 0)
  4069. //// And (plancode = :arg_s_rqmtrlI.plancode[li] Or :arg_s_rqmtrlI.plancode[li] = '')
  4070. //// Order By u_mtrlware.noallocqty Desc ;
  4071. ////
  4072. //// OPEN pf_cur;
  4073. //// count = 1
  4074. //// FETCH pf_cur INTO :ins_storageid,:ins_mtrlwareid,:ins_plancode,&
  4075. //// :ins_qty,:ins_planprice ;
  4076. //// DO WHILE sqlca.SQLCode = 0 AND r_qty < arg_s_rqmtrlI.qty[li]
  4077. //// count++
  4078. //// i_qty = ins_qty
  4079. //// r_qty = r_qty+i_qty
  4080. //// IF r_qty > arg_s_rqmtrlI.qty[li] THEN
  4081. //// i_qty = ins_qty - ( r_qty - arg_s_rqmtrlI.qty[li] )
  4082. ////
  4083. //// END IF
  4084. ////
  4085. //// IF dw_child.GetRow() > 0 THEN
  4086. //// IF dw_child.Object.u_outwaremx_mtrlid[child_llrow] <> 0 THEN
  4087. //// child_llrow = dw_child.InsertRow (0)
  4088. //// ELSE
  4089. //// child_llrow = dw_child.GetRow()
  4090. //// END IF
  4091. //// ELSE
  4092. //// child_llrow = dw_child.InsertRow (0)
  4093. //// END IF
  4094. ////
  4095. //// dw_child.Object.u_outwaremx_ifrel[child_llrow] = 1
  4096. //// dw_child.Object.u_outwaremx_relid[child_llrow] = arg_s_rqmtrlI.taskid[li]
  4097. //// dw_child.Object.u_outwaremx_relprintid[child_llrow] = arg_s_rqmtrlI.printid[li]
  4098. //// dw_child.Object.taskcode[child_llrow] = arg_s_rqmtrlI.taskcode[li]
  4099. ////
  4100. //// dw_child.Object.u_outwaremx_mtrlwareid[child_llrow] = ins_mtrlwareid
  4101. //// dw_child.Object.u_outwaremx_mtrlid[child_llrow] = arg_s_rqmtrlI.mtrlid[li]
  4102. //// dw_child.Object.u_outwaremx_storageid[child_llrow] = ins_storageid
  4103. //// dw_child.Object.u_outwaremx_plancode[child_llrow] = ins_plancode
  4104. //// dw_child.Object.u_outwaremx_planprice[child_llrow] = ins_planprice
  4105. //// dw_child.Object.u_outwaremx_unit[child_llrow] = arg_s_rqmtrlI.unit[li]
  4106. //// dw_child.Object.u_outwaremx_enprice[child_llrow] = arg_s_rqmtrlI.enprice[li]
  4107. //// dw_child.Object.u_outwaremx_fprice[child_llrow] = arg_s_rqmtrlI.fprice[li]
  4108. //// dw_child.Object.u_outwaremx_rebate[child_llrow] = arg_s_rqmtrlI.rebate[li]
  4109. //// dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode
  4110. //// dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname
  4111. //// dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode
  4112. //// dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit
  4113. //// dw_child.Object.u_outwaremx_mxdscrp[child_llrow] = arg_s_rqmtrlI.mxdscrp[li]
  4114. //// dw_child.Object.mxdscrp2[child_llrow] = arg_s_rqmtrlI.mxdscrp2[li]
  4115. //// dw_child.Object.u_outwaremx_status[child_llrow] = arg_s_rqmtrlI.status[li]
  4116. //// dw_child.Object.u_outwaremx_woodcode[child_llrow] = arg_s_rqmtrlI.woodcode[li]
  4117. //// dw_child.Object.u_outwaremx_pcode[child_llrow] = arg_s_rqmtrlI.pcode[li]
  4118. //// dw_child.Object.u_mtrldef_curware_qty[child_llrow] = ins_qty
  4119. //// dw_child.Object.u_mtrldef_sumneed_qty[child_llrow] = arg_s_rqmtrlI.qty[li]
  4120. //// dw_child.Object.u_mtrldef_sumware_qty[child_llrow] = mtrlwaresum_qty
  4121. //// dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype
  4122. //// dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode
  4123. //// dw_child.Object.u_outwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrlI.mtrlcuscode[li]
  4124. //// dw_child.Object.u_outwaremx_rate[child_llrow] = arg_s_rqmtrlI.rate[li]
  4125. //// dw_child.Object.u_outwaremx_outtype[child_llrow] = arg_s_rqmtrlI.outtype[li]
  4126. //// dw_child.Object.u_outwaremx_formula[child_llrow] = arg_s_rqmtrlI.formula[li]
  4127. //// dw_child.Object.u_outwaremx_addqty[child_llrow] = arg_s_rqmtrlI.addqty[li]
  4128. //// dw_child.Object.u_mtrldef_taskdate[child_llrow] = arg_s_rqmtrlI.taskdate[li]
  4129. //// IF ins_qty <= arg_s_rqmtrlI.qty[li] THEN
  4130. //// IF li_noallocflag = 0 THEN
  4131. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  4132. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  4133. //// ELSE
  4134. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = i_qty
  4135. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = i_qty
  4136. //// END IF
  4137. //// ELSE
  4138. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  4139. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  4140. //// END IF
  4141. ////
  4142. ////
  4143. //// FETCH pf_cur INTO :ins_storageid,:ins_mtrlwareid,:ins_plancode,&
  4144. //// :ins_qty,:ins_planprice ;
  4145. ////
  4146. //// LOOP
  4147. //// count = count - 1
  4148. //// CLOSE pf_cur;
  4149. //// END IF
  4150. ////nextmtrl:
  4151. ////NEXT
  4152. //
  4153. //
  4154. //ext:
  4155. RETURN rslt
  4156. end function
  4157. public function integer wf_refresh_interface ();//wf_refresh_interface
  4158. IF dw_edit_mode THEN
  4159. cb_retrieve.Enabled = FALSE
  4160. cb_delet.Enabled = FALSE
  4161. cb_print.Enabled = FALSE
  4162. cb_viewprint.Enabled = FALSE
  4163. cb_auditing.Enabled = FALSE
  4164. cb_auditing_cancel.Enabled = FALSE
  4165. dw_pageretr.RBUTTON_FILTER_USE = FALSE //右键查询功能开关
  4166. dw_pageretr.titleclick_sort_use = FALSE //单击标题排序功能开关
  4167. dw_child.RBUTTON_SETPOSITION_USE = FALSE //定位
  4168. cb_edit.Enabled = TRUE
  4169. cb_add.Enabled = TRUE
  4170. // cbx_ifmtrlware.Enabled = TRUE
  4171. cb_xls.Enabled = FALSE
  4172. cb_edit.Text = "放弃&E"
  4173. cb_add.Text = "保存&S"
  4174. cb_edit.normalpicname = 'Undo.bmp'
  4175. cb_add.normalpicname = 'Save.bmp'
  4176. ELSE
  4177. cb_retrieve.Enabled = TRUE
  4178. cb_delet.Enabled = TRUE
  4179. cb_print.Enabled = TRUE
  4180. cb_viewprint.Enabled = TRUE
  4181. cb_auditing.Enabled = TRUE
  4182. cb_auditing_cancel.Enabled = TRUE
  4183. // cbx_ifmtrlware.Enabled = FALSE
  4184. cb_add.Enabled = TRUE
  4185. cb_edit.Enabled = TRUE
  4186. cb_xls.Enabled = TRUE
  4187. dw_pageretr.RBUTTON_FILTER_USE = TRUE //右键查询功能开关
  4188. dw_pageretr.titleclick_sort_use = TRUE //单击标题排序功能开关
  4189. dw_child.RBUTTON_SETPOSITION_USE = TRUE //定位
  4190. cb_edit.Text = "修改&E"
  4191. cb_add.Text = "新建&S"
  4192. cb_edit.normalpicname = 'OPEN.bmp'
  4193. cb_add.normalpicname = 'new.bmp'
  4194. IF dw_pageretr.GetRow() <= 0 THEN
  4195. cb_edit.Enabled = FALSE
  4196. cb_delet.Enabled = FALSE
  4197. cb_addzy.Enabled = FALSE
  4198. cb_auditing.Enabled = FALSE
  4199. END IF
  4200. END IF
  4201. IF retrieve_all OR dw_edit_mode THEN
  4202. cb_nextpage.Enabled = FALSE
  4203. cb_retrieveall.Enabled = FALSE
  4204. em_pagerowno.Enabled = FALSE
  4205. cb_func.Enabled = FALSE
  4206. sle_usual_query.Enabled = not dw_edit_mode
  4207. ELSE
  4208. cb_nextpage.Enabled = TRUE
  4209. cb_retrieveall.Enabled = TRUE
  4210. em_pagerowno.Enabled = TRUE
  4211. sle_usual_query.Enabled = TRUE
  4212. cb_func.Enabled = TRUE
  4213. END IF
  4214. wf_lock_child()
  4215. //修改uc_taborder
  4216. IF dw_edit_mode THEN
  4217. dw_uc.TriggerEvent("ue_taborder")
  4218. IF dw_uc.ins_if_nomodify_uc_taborder THEN
  4219. Long ll_uc_int
  4220. FOR ll_uc_int = 1 TO uc_column_int
  4221. dw_uc.SetTabOrder (ll_uc_int,ll_uc_int*10 )
  4222. NEXT
  4223. END IF
  4224. ELSE
  4225. dw_uc.TriggerEvent("ue_taborder_cancel")
  4226. END IF
  4227. cb_edit.of_init_draw()
  4228. cb_add.of_init_draw()
  4229. cb_edit.of_paint()
  4230. cb_add.of_paint()
  4231. cb_add.TriggerEvent('ue_textchange')
  4232. cb_edit.TriggerEvent('ue_textchange')
  4233. ll_lastrow = 0
  4234. THIS.TriggerEvent('refresh_interface')
  4235. RETURN 1
  4236. end function
  4237. public function integer wf_print_retrievedata (ref s_print_pic_list arg_s_pic, ref string arg_msg);Long LS_ROW,ll_id,i,ll_scid
  4238. LS_ROW = dw_pageretr.GetRow()
  4239. IF LS_ROW <= 0 THEN
  4240. arg_msg = '没有目标单据!'
  4241. RETURN 0
  4242. END IF
  4243. //修改点:获取 指定retriev参数
  4244. ll_id = dw_pageretr.Object.#1[LS_ROW]
  4245. ll_scid = dw_pageretr.Object.U_outware_scid[LS_ROW]
  4246. Long ll_i,ll_j
  4247. Long ll_mtrlid
  4248. Long ll_fileid
  4249. Blob ls_filedata
  4250. SetNull(ls_filedata)
  4251. String Pathname,ls_filename,ls_filetype
  4252. String errmsg
  4253. uo_fj_mng_billtype ls_uo_fjbt
  4254. ls_uo_fjbt = CREATE uo_fj_mng_billtype
  4255. Long ll_classid
  4256. SELECT classid
  4257. INTO :ll_classid
  4258. FROM u_billpic_fileclass
  4259. Where (billtype = 102);
  4260. IF sqlca.SQLCode <> 0 THEN
  4261. ll_classid = 0
  4262. END IF
  4263. IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息.
  4264. FOR ll_i = 1 TO dw_child.RowCount()
  4265. ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ll_i]
  4266. arg_s_pic.mtrlid[ll_i] = ll_mtrlid
  4267. //取该附件类型中的第一个附件.
  4268. SELECT top 1 fileid,DisplayName,FileType INTO :ll_fileid,:ls_filename,:ls_filetype
  4269. FROM u_file
  4270. WHERE relid = :ll_mtrlid
  4271. AND classid = :ll_classid
  4272. AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf'
  4273. OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg')
  4274. USING sys_fileDB_sqlca;
  4275. IF sys_fileDB_sqlca.SQLCode <> 0 THEN
  4276. ll_fileid = 0
  4277. END IF
  4278. IF ll_fileid > 0 THEN
  4279. Pathname = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ls_filename+'.'+ls_filetype
  4280. IF Trim(Pathname) <> '' THEN
  4281. IF ls_uo_fjbt.uf_getfjbolb_fromdb( ll_fileid, ls_filedata, sys_fileDB_sqlca, arg_msg) = 0 THEN
  4282. RETURN 0
  4283. END IF
  4284. IF f_saveblobtofile(ls_filedata,Pathname,errmsg) = 0 THEN
  4285. RETURN 0
  4286. ELSE
  4287. arg_s_pic.path[ll_i] = Pathname
  4288. //记录临时文件位置,本窗口退出后删除
  4289. wf_addlog_tempfilepathname(Pathname)
  4290. END IF
  4291. ELSE
  4292. arg_s_pic.path[ll_i] = ''
  4293. END IF
  4294. ELSE
  4295. arg_s_pic.path[ll_i] = ''
  4296. END IF
  4297. NEXT
  4298. END IF
  4299. RETURN 1
  4300. end function
  4301. public subroutine wf_cusbalc (long arg_scid, long arg_cusid, long arg_moneyid);IF NOT f_power_ind(1506) THEN
  4302. st_cusbalc.Text = ''
  4303. RETURN
  4304. END IF
  4305. IF dw_edit_mode THEN
  4306. st_cusbalc.Text = ''
  4307. RETURN
  4308. END IF
  4309. IF arg_cusid = 0 THEN RETURN
  4310. String ls_cusname,ls_moneyname
  4311. Decimal ld_cus_balcamt,ld_maxmtnum, ld_canamt
  4312. Decimal ld_notsecaudit_amt,ld_notsecaudit_enamt
  4313. Decimal ld_notsecaudit_billamt, ldt_cusmaxamt
  4314. Decimal ld_outrep_balcamt,ld_outrep_maxamt
  4315. SELECT name
  4316. INTO :ls_moneyname
  4317. FROM cw_currency
  4318. Where moneyid = :arg_moneyid;
  4319. IF sqlca.SQLCode <> 0 THEN
  4320. st_cusbalc.Text = '查询币种信息失败'
  4321. RETURN
  4322. END IF
  4323. SELECT u_cust.name,
  4324. u_cust.maxmtnum ,
  4325. isnull(v_cus_balcamt.cus_balcamt,0)
  4326. INTO :ls_cusname,:ld_maxmtnum,:ld_cus_balcamt
  4327. FROM u_cust left OUTER join
  4328. v_cus_balcamt on u_cust.cusid = v_cus_balcamt.cusid
  4329. WHERE u_cust.cusid = :arg_cusid
  4330. AND isnull(v_cus_balcamt.scid,0) = :arg_scid
  4331. AND IsNull(v_cus_balcamt.moneyid,0) = :arg_moneyid;
  4332. IF sqlca.SQLCode <> 0 THEN
  4333. st_cusbalc.Text = '查询客户信息失败'
  4334. RETURN
  4335. END IF
  4336. st_cusbalc.Text = "客户:"+ls_cusname + ' 币种:'+ls_moneyname+'~r~n'
  4337. IF ld_maxmtnum > 0 THEN
  4338. IF ld_maxmtnum - ld_cus_balcamt < 0 THEN
  4339. ld_canamt = 0
  4340. ELSE
  4341. ld_canamt = ld_maxmtnum - ld_cus_balcamt
  4342. END IF
  4343. st_cusbalc.Text += '信用额:'+String(ld_maxmtnum,'#,##0.00')+' 欠款:' + String(ld_cus_balcamt,'#,##0.00') + ' 可用额:' + String(ld_canamt ,'#,##0.00')
  4344. ELSE
  4345. st_cusbalc.Text += '欠款:'+ String(ld_cus_balcamt,'#,##0.00')
  4346. END IF
  4347. IF ld_maxmtnum < ld_cus_balcamt THEN
  4348. st_cusbalc.TextColor = RGB(255,0,0)
  4349. ELSE
  4350. st_cusbalc.TextColor = RGB(0,0,0)
  4351. END IF
  4352. //
  4353. wf_getcusrepamt_info_show(arg_scid,arg_cusid,arg_moneyid)
  4354. st_cusbalc.Text = ls_cusname+'['+ls_moneyname+'] ' + cur_cusrepamtstr_show
  4355. end subroutine
  4356. public subroutine wf_getcusrepamt_info (long arg_scid, long arg_cusid, long arg_moneyid);Int lst
  4357. Long i
  4358. String cstr = '',rstr = '',msg = ''
  4359. Decimal arg_cusbalcamt,arg_cusmaxamt,arg_outrep_balcamt,arg_outrep_maxamt
  4360. String ls_moneyname
  4361. Decimal ld_canamt
  4362. Decimal lde_billamt
  4363. Decimal ld_mrate
  4364. Long ll_outwareid
  4365. //dw_child.accepttext()
  4366. SELECT name
  4367. INTO :ls_moneyname
  4368. FROM cw_currency
  4369. Where moneyid = :arg_moneyid;
  4370. IF sqlca.SQLCode <> 0 THEN
  4371. st_msg.Text = '查询币种信息失败'
  4372. st_msg.BackColor = RGB(255,255,255)
  4373. RETURN
  4374. END IF
  4375. //本单金额
  4376. // IF sys_option_mst_multimoney = 0 THEN
  4377. // ll_moneyid = f_moneyid_native()
  4378. // IF ll_moneyid = -1 THEN
  4379. // MessageBox('系统提示','查询本位币失败')
  4380. // RETURN
  4381. // END IF
  4382. // ld_mrate = dw_pageretr.Object.u_outware_mrate[dw_pageretr.GetRow()]
  4383. // ELSE
  4384. // ll_moneyid = dw_pageretr.Object.u_outware_relint_2[dw_pageretr.GetRow()]
  4385. ld_mrate = 1
  4386. // END IF
  4387. dw_child.AcceptText()
  4388. //lde_billamt = dw_child.Object.enamt_sm[1] * ld_mrate - dw_uc.Object.u_outware_otheramt[dw_uc.GetRow()]
  4389. ////MessageBox('',String(dw_child.Object.enamt_sm[1] ))
  4390. //IF lde_billamt = 0 THEN lde_billamt = wf_sum_mxamt()
  4391. //IF lde_billamt < 0 THEN
  4392. lde_billamt = wf_sum_mxamt() - dw_uc.Object.u_outware_otheramt[dw_uc.GetRow()]
  4393. //End if
  4394. //其他单未财审金额
  4395. dw_uc.AcceptText()
  4396. ll_outwareid = dw_uc.Object.u_outware_outwareid[dw_uc.GetRow()]
  4397. Decimal ld_notsecaudit_amt, ld_notsecaudit_enamt, ld_notsecaudit_billamt, ld_notsecaudit_otheramt, ld_notsecaudit_enotheramt
  4398. SELECT sum(round(u_outwaremx.saleqty * u_outwaremx.price,2)),
  4399. sum(round(u_outwaremx.saleqty * u_outwaremx.enprice * u_outwaremx.rebate,2))
  4400. INTO :ld_notsecaudit_amt,:ld_notsecaudit_enamt
  4401. FROM u_outware,u_outwaremx
  4402. WHERE u_outware.scid = u_outwaremx.scid
  4403. AND u_outware.outwareid = u_outwaremx.outwareid
  4404. AND u_outware.billtype = 1
  4405. AND u_outware.secflag = 0
  4406. AND u_outware.outwareid <> :ll_outwareid
  4407. AND u_outware.cusid = :arg_cusid
  4408. AND (:sys_option_scid_msttake_mstpay = 1 AND u_outware.scid = :arg_scid OR :sys_option_scid_msttake_mstpay = 0 )
  4409. And (:sys_option_mst_multimoney = 1 And u_outware.relint_2 = :arg_moneyid Or :sys_option_mst_multimoney = 0);
  4410. IF sqlca.SQLCode <> 0 THEN
  4411. ld_notsecaudit_amt = 0
  4412. ld_notsecaudit_enamt = 0
  4413. END IF
  4414. SELECT sum(round(u_outware.otheramt,2)),
  4415. sum(round(u_outware.otheramt * u_outware.mrate,2))
  4416. INTO :ld_notsecaudit_enotheramt,:ld_notsecaudit_otheramt
  4417. FROM u_outware
  4418. WHERE u_outware.billtype = 1
  4419. AND u_outware.secflag = 0
  4420. AND u_outware.outwareid <> :ll_outwareid
  4421. AND u_outware.cusid = :arg_cusid
  4422. AND (:sys_option_scid_msttake_mstpay = 1 AND u_outware.scid = :arg_scid OR :sys_option_scid_msttake_mstpay = 0 )
  4423. And (:sys_option_mst_multimoney = 1 And u_outware.relint_2 = :arg_moneyid Or :sys_option_mst_multimoney = 0);
  4424. IF sqlca.SQLCode <> 0 THEN
  4425. ld_notsecaudit_enotheramt = 0
  4426. ld_notsecaudit_otheramt = 0
  4427. END IF
  4428. IF IsNull(ld_notsecaudit_amt) THEN ld_notsecaudit_amt = 0
  4429. IF IsNull(ld_notsecaudit_enamt) THEN ld_notsecaudit_enamt = 0
  4430. IF IsNull(ld_notsecaudit_otheramt) THEN ld_notsecaudit_otheramt = 0
  4431. IF IsNull(ld_notsecaudit_enotheramt) THEN ld_notsecaudit_enotheramt = 0
  4432. IF sys_option_mst_multimoney = 1 THEN
  4433. ld_notsecaudit_billamt = ld_notsecaudit_enamt - ld_notsecaudit_enotheramt
  4434. ELSE
  4435. ld_notsecaudit_billamt = ld_notsecaudit_amt - ld_notsecaudit_otheramt
  4436. END IF
  4437. cur_cusrepamtflag = 0
  4438. //--------检查信用额
  4439. lst = f_getcusrepamt_info(arg_scid,arg_cusid,arg_moneyid,arg_cusbalcamt,arg_cusmaxamt,arg_outrep_balcamt,arg_outrep_maxamt)
  4440. IF lst < 0 THEN
  4441. msg = '提示:查询信用额及欠款失败!'
  4442. st_msg.Text = msg
  4443. st_msg.BackColor = RGB(255,255,255)
  4444. cur_cusrepamtflag = -1
  4445. cur_cusrepamtstr = msg
  4446. ELSE
  4447. //客户欠款
  4448. IF arg_cusmaxamt > 0 THEN
  4449. IF arg_cusbalcamt > arg_cusmaxamt THEN
  4450. cstr = ' 客户欠款超信用额! '
  4451. ELSEIF arg_cusbalcamt = arg_cusmaxamt THEN
  4452. cstr = ' 客户欠款平信用额! '
  4453. END IF
  4454. ELSE
  4455. IF arg_cusbalcamt > arg_cusmaxamt THEN cstr = ' 客户有欠款! '
  4456. END IF
  4457. //业务员欠款
  4458. IF arg_outrep_maxamt > 0 THEN
  4459. IF arg_outrep_balcamt > arg_outrep_maxamt THEN
  4460. rstr = ' 业务员欠款超信用额! '
  4461. ELSEIF arg_outrep_balcamt = arg_outrep_maxamt THEN
  4462. cstr = ' 业务员欠款平信用额! '
  4463. END IF
  4464. ELSE
  4465. IF arg_outrep_balcamt > arg_outrep_maxamt THEN rstr = ' 业务员有欠款! '
  4466. END IF
  4467. msg = '提示:~r~n~r~n币种:'+ls_moneyname+"~r~n~r~n"
  4468. IF arg_cusmaxamt > 0 THEN
  4469. IF arg_cusmaxamt - arg_cusbalcamt < 0 THEN
  4470. ld_canamt = 0
  4471. ELSE
  4472. ld_canamt = arg_cusmaxamt - arg_cusbalcamt
  4473. END IF
  4474. msg += '客户信用额:'+String(arg_cusmaxamt,'#,##0.00')+' 欠款:' + String(arg_cusbalcamt,'#,##0.00') + ' 可用额:' + String(ld_canamt ,'#,##0.00') + cstr + "~r~n~r~n"
  4475. ELSE
  4476. msg += '客户欠款:' + String(arg_cusbalcamt,'#,##0.00') + cstr + "~r~n~r~n"
  4477. END IF
  4478. //msg += '客户信用额-欠款:'+String(arg_cusmaxamt,'#0.0#')+'-'+String(arg_cusbalcamt,'#0.0#')+'='+String(arg_cusmaxamt - arg_cusbalcamt,'#0.0#')+cstr+"~r~n~r~n"
  4479. IF arg_outrep_maxamt > 0 THEN
  4480. IF arg_outrep_maxamt - arg_outrep_balcamt < 0 THEN
  4481. ld_canamt = 0
  4482. ELSE
  4483. ld_canamt = arg_outrep_maxamt - arg_outrep_balcamt
  4484. END IF
  4485. msg += '业务员信用额:'+String(arg_outrep_maxamt,'#,##0.00') +' 欠款'+String(arg_outrep_balcamt,'#,##0.00')+' 可用额:'+String(ld_canamt,'#,##0.00') + rstr
  4486. ELSE
  4487. msg += '业务员欠款:'+String(arg_outrep_balcamt,'#,##0.00') + rstr
  4488. END IF
  4489. //msg += '业务员信用额-欠款:'+String(arg_outrep_maxamt,'#0.0#')+'-'+String(arg_outrep_balcamt,'#0.0#')+'='+String(arg_outrep_maxamt - arg_outrep_balcamt,'#0.0#')+rstr
  4490. st_msg.Text = msg
  4491. cur_cusrepamtstr = msg
  4492. IF arg_outrep_balcamt >= arg_outrep_maxamt &
  4493. Or arg_cusbalcamt >= arg_cusmaxamt THEN //有欠款
  4494. st_msg.BackColor = RGB(255,200,200)
  4495. ELSE
  4496. st_msg.BackColor = RGB(255,255,255)
  4497. END IF
  4498. IF arg_cusbalcamt + ld_notsecaudit_billamt + lde_billamt > arg_cusmaxamt THEN
  4499. cur_cusrepamtflag = -1
  4500. cur_cusrepamtstr = '客户信用额:'+String(arg_cusmaxamt,'#,##0.00')+' 欠款:' + String(arg_cusbalcamt,'#,##0.00')+' 本单金额:'+ String(lde_billamt,'#,##0.00')+' 其他未财审金额:'+ String(ld_notsecaudit_billamt,'#,##0.00')+'~r~n'
  4501. cur_cusrepamtstr += '超信用额:'+String(arg_cusbalcamt + ld_notsecaudit_billamt + lde_billamt - arg_cusmaxamt,'#,##0.00')
  4502. ELSE
  4503. cur_cusrepamtflag = 0
  4504. cur_cusrepamtstr = ""
  4505. END IF
  4506. END IF
  4507. st_cusbalc.Text = ""
  4508. end subroutine
  4509. public function integer wf_get_pricelist_price (long arg_pricelistid, long arg_moneyid, ref string arg_msg);Int rslt = 1
  4510. Long ll_row
  4511. Long ll_pricelistid, ll_moneyid, ll_mtrlid
  4512. String ls_status,ls_pcode,ls_woodcode,ls_unit, ls_mtrlname
  4513. String ls_msg
  4514. ll_pricelistid = arg_pricelistid
  4515. ll_moneyid = arg_moneyid
  4516. IF uo_cus_price.uof_chk_pricelistid(ll_pricelistid, ll_moneyid, arg_msg) = 0 THEN
  4517. rslt = 0
  4518. GOTO ext
  4519. END IF
  4520. s_sale_price_mx s_mx
  4521. dw_child.AcceptText()
  4522. FOR ll_row = 1 To dw_child.RowCount()
  4523. ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ll_row]
  4524. ls_status = dw_child.Object.u_outwaremx_status[ll_row]
  4525. ls_pcode = dw_child.Object.u_outwaremx_pcode[ll_row]
  4526. ls_woodcode = dw_child.Object.u_outwaremx_woodcode[ll_row]
  4527. ls_unit = dw_child.Object.u_outwaremx_unit[ll_row]
  4528. ls_mtrlname = dw_child.Object.u_mtrldef_mtrlname[ll_row]
  4529. IF sys_option_price_if_status = 0 THEN
  4530. ls_status = ''
  4531. ls_pcode = ''
  4532. ls_woodcode = ''
  4533. END IF
  4534. s_mx.mtrlid = ll_mtrlid
  4535. s_mx.status = ls_status
  4536. s_mx.woodcode = ls_woodcode
  4537. s_mx.pcode = ls_pcode
  4538. s_mx.unit = ls_unit
  4539. s_mx.moneyid = ll_moneyid
  4540. s_mx.pricelistid = ll_pricelistid
  4541. IF uo_cus_price.uof_get_pricelist_price(s_mx, ls_msg) = 0 THEN
  4542. arg_msg += "行:"+String(ll_row)+", "+ls_mtrlname+" ~n"
  4543. rslt = 0 //无标准价格表 或未审核
  4544. END IF
  4545. dw_child.Object.u_outwaremx_enprice[ll_row] = s_mx.price
  4546. dw_child.Object.u_outwaremx_rebate[ll_row] = s_mx.rebate
  4547. //dw_child.Object.u_saletaskmx_rate[ll_row] = obj_rate
  4548. NEXT
  4549. IF rslt = 0 THEN
  4550. arg_msg += "导入价格表售价失败或没有设置售价! ~n "
  4551. END IF
  4552. ext:
  4553. RETURN rslt
  4554. end function
  4555. public function integer wf_get_price (long arg_row);IF arg_row <= 0 THEN RETURN 1
  4556. IF arg_row > dw_child.RowCount() THEN RETURN 1
  4557. Long rslt = 1
  4558. Long ll_cusid, ll_moneyid
  4559. Long ll_i,ll_mtrlid
  4560. String ls_msg
  4561. String ls_status,ls_woodcode,ls_pcode, ls_unit
  4562. String arg_msg
  4563. Decimal lde_enprice,lde_rebate,lde_rate
  4564. decimal lde_usaleqty
  4565. dw_uc.AcceptText()
  4566. dw_child.AcceptText()
  4567. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  4568. IF ll_moneyid = 0 THEN RETURN 1
  4569. ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  4570. IF ll_cusid = 0 THEN RETURN 1
  4571. lde_enprice = 0
  4572. lde_rebate = 1
  4573. lde_rate = 1
  4574. ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[arg_row]
  4575. ls_status = dw_child.Object.u_outwaremx_status[arg_row]
  4576. ls_pcode = dw_child.Object.u_outwaremx_pcode[arg_row]
  4577. ls_woodcode = dw_child.Object.u_outwaremx_woodcode[arg_row]
  4578. ls_unit = dw_child.Object.u_outwaremx_unit[arg_row]
  4579. lde_usaleqty = dw_child.Object.u_outwaremx_uqty[arg_row]
  4580. //IF f_getmtrlcusprice(ll_moneyid,ll_mtrlid,ll_cusid,ls_unit,ls_woodcode,ls_status,ls_pcode,0,lde_enprice,lde_rebate,lde_rate,arg_msg) <> 1 THEN
  4581. // lde_enprice = 0
  4582. // lde_rebate = 1
  4583. //END IF
  4584. IF f_getmtrlcusprice_qty(ll_moneyid,ll_mtrlid,ll_cusid,ls_unit,ls_woodcode,ls_status,ls_pcode,0,lde_enprice,lde_rebate,lde_rate,lde_usaleqty,arg_msg) <> 1 THEN
  4585. lde_enprice = 0
  4586. lde_rebate = 1
  4587. END IF
  4588. IF sys_option_price_if_list = 0 AND sys_option_saletask_rebate = 1 THEN
  4589. lde_rebate = 1
  4590. END IF
  4591. dw_child.Object.u_outwaremx_enprice[arg_row] = lde_enprice
  4592. dw_child.Object.u_outwaremx_rebate[arg_row] = lde_rebate
  4593. RETURN rslt
  4594. end function
  4595. public function integer wf_get_mtrlwareid (long arg_row);IF arg_row <= 0 THEN RETURN 1
  4596. IF arg_row > dw_child.RowCount() THEN RETURN 1
  4597. Long rslt = 1
  4598. Long ll_cusid
  4599. Long ll_i,ll_mtrlid, ll_mtrlwareid, ll_storageid,ll_sptid
  4600. String ls_mtrlcode
  4601. String ls_msg
  4602. String ls_status,ls_woodcode,ls_pcode, ls_unit,ls_plancode
  4603. String arg_msg
  4604. Decimal lde_price,lde_zqrate,lde_rate
  4605. dw_child.AcceptText()
  4606. ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  4607. ll_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  4608. ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[arg_row]
  4609. ls_status = dw_child.Object.u_outwaremx_status[arg_row]
  4610. ls_pcode = dw_child.Object.u_outwaremx_pcode[arg_row]
  4611. ls_woodcode = dw_child.Object.u_outwaremx_woodcode[arg_row]
  4612. ls_plancode = dw_child.Object.u_outwaremx_plancode[arg_row]
  4613. ls_unit = dw_child.Object.u_outwaremx_unit[arg_row]
  4614. ll_sptid = dw_child.Object.u_outwaremx_sptid[arg_row]
  4615. Int li_if_cus_mtrlware,li_noallocflag,li_if_plancode
  4616. //客户库存
  4617. SELECT balctype
  4618. INTO :li_if_cus_mtrlware
  4619. FROM u_storage
  4620. Where storageid = :ll_storageid;
  4621. IF sqlca.SQLCode <> 0 THEN
  4622. arg_msg = '查询仓库是否使用客户库存失败'
  4623. rslt = 0
  4624. END IF
  4625. IF li_if_cus_mtrlware = 1 And ll_sptid = 0 THEN
  4626. ll_sptid = ll_cusid
  4627. END IF
  4628. IF f_insert_0_mtrlware(ll_mtrlwareid,ll_mtrlid,ls_mtrlcode,ll_storageid,ll_sptid,ls_status,ls_woodcode, ls_pcode,ls_plancode,0,arg_msg) = 0 THEN
  4629. rslt = 0
  4630. ll_mtrlwareid = 0
  4631. END IF
  4632. dw_child.Object.u_outwaremx_mtrlwareid[arg_row] = ll_mtrlwareid
  4633. RETURN rslt
  4634. end function
  4635. public function integer wf_lock_child ();
  4636. long i
  4637. if dw_edit_mode then
  4638. for i = 1 to fy_column_int
  4639. dw_fymx.SetTabOrder(i, i * 10)
  4640. next
  4641. else
  4642. for i = 1 to fy_column_int
  4643. dw_fymx.SetTabOrder(i, 0)
  4644. next
  4645. end if
  4646. return super::wf_lock_child()
  4647. end function
  4648. public subroutine wf_ue_f7 (s_saletask_ch s_saletask);long rslt = 1
  4649. string arg_msg
  4650. Long ll_storageid
  4651. Long ll_scid
  4652. Long ll_taskid
  4653. String ls_taskcode
  4654. dw_uc.SetRedraw(False)
  4655. dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] = s_saletask.cusid
  4656. dw_uc.Object.u_cust_name[dw_uc.GetRow()] = s_saletask.cusname
  4657. dw_uc.Object.u_cust_cuscode[dw_uc.GetRow()] = s_saletask.cuscode
  4658. dw_uc.Object.u_outware_outrep[dw_uc.GetRow()] = s_saletask.assign_emp
  4659. dw_uc.Object.u_outware_dscrp[dw_uc.GetRow()] = s_saletask.dscrp
  4660. dw_uc.Object.u_outware_dscrp2[dw_uc.GetRow()] = s_saletask.dscrp2
  4661. dw_uc.Object.u_outware_dscrp3[dw_uc.GetRow()] = s_saletask.dscrp3
  4662. dw_uc.Object.u_outware_paytype[dw_uc.GetRow()] = s_saletask.paytype
  4663. dw_uc.Object.u_outware_relint_1[dw_uc.GetRow()] = s_saletask.banktypeid
  4664. dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] = s_saletask.moneyid
  4665. dw_uc.Object.u_outware_mrate[dw_uc.GetRow()] = f_get_mrate(s_saletask.moneyid)
  4666. dw_uc.Object.u_outware_relstr_1[dw_uc.GetRow()] = s_saletask.freight
  4667. dw_uc.Object.u_outware_relstr_2[dw_uc.GetRow()] = s_saletask.freight_tele
  4668. dw_uc.Object.u_outware_relstr_3[dw_uc.GetRow()] = s_saletask.freight_address
  4669. dw_uc.Object.u_outware_deposit[dw_uc.GetRow()] = s_saletask.damt
  4670. dw_uc.Object.u_outware_otheramt[dw_uc.GetRow()] = s_saletask.otheramt
  4671. dw_uc.Object.u_outware_rel_address[dw_uc.GetRow()] = s_saletask.Address
  4672. dw_uc.Object.u_outware_rel_tele[dw_uc.GetRow()] = s_saletask.tele
  4673. dw_uc.Object.u_outware_rel_tele1[dw_uc.GetRow()] = s_saletask.tele1
  4674. dw_uc.Object.u_outware_rel_fax[dw_uc.GetRow()] = s_saletask.fax
  4675. dw_uc.Object.u_outware_rel_rep[dw_uc.GetRow()] = s_saletask.rel_rep
  4676. dw_uc.Object.u_outware_transcode[dw_uc.GetRow()] = s_saletask.transcode
  4677. dw_uc.Object.u_outware_carcode[dw_uc.GetRow()] = s_saletask.carcode
  4678. //dw_uc.Object.u_outware_rel_rep[dw_uc.GetRow()] = s_saletask.rep
  4679. dw_uc.Object.u_outware_part[dw_uc.GetRow()] = s_saletask.relcode
  4680. ll_scid = dw_uc.Object.u_outware_scid[dw_uc.GetRow()]
  4681. ll_taskid = s_saletask.taskid
  4682. ls_taskcode = s_saletask.taskcode
  4683. ll_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  4684. IF s_saletask.lsflag = 1 THEN
  4685. dw_uc.Object.u_outware_dscrp[dw_uc.GetRow()] = s_saletask.dscrp2
  4686. END IF
  4687. //String errmsg = ''
  4688. //wf_autoaddmx(ll_scid,ll_taskid,ls_taskcode,ll_storageid,s_saletask.cusid,s_saletask.if_zeromtrlware,errmsg)
  4689. //引入订单
  4690. //查询合同物料于数组中
  4691. //循环数组
  4692. //查询物料库存总额
  4693. //查询库存批/插入明细记录
  4694. s_saletask_mtrl arg_s_rqmtrlI
  4695. long P_rqmtrl
  4696. IF wf_saletaskmtrltoarr(ll_scid,ll_taskid,arg_s_rqmtrlI,P_rqmtrl,arg_msg) = 0 THEN
  4697. rslt = 0
  4698. GOTO ext
  4699. END IF
  4700. //带出订单明细费用项目dw_cost.Reset()
  4701. IF wf_set_outware_itemmx(ll_scid,ll_taskid) = 0 THEN
  4702. rslt = 0
  4703. GOTO ext
  4704. END IF
  4705. IF wf_set_outwaremx(ll_scid,s_saletask.cusid, ll_storageid, arg_s_rqmtrlI,arg_msg) = 0 THEN
  4706. rslt = 0
  4707. GOTO ext
  4708. END IF
  4709. ext:
  4710. dw_uc.SetRedraw(True)
  4711. dw_uc.SetColumn("u_outware_rel_address")
  4712. return
  4713. end subroutine
  4714. public function integer wf_set_outwaremx_bk (long arg_cusid, long arg_storageid, s_saletask_mtrl arg_mx, string arg_msg);//备份用,以后可删
  4715. //由订单明细结构插入dw_child
  4716. //li_if_cus_mtrlware 0:不使用客户库存 ; 1:使用客户库存;
  4717. //li_noallocflag 0:不使用未开单库存; 1:使用未开单库存;
  4718. //li_if_plancode 0:不使用批号; 1:使用批号;
  4719. //sys_option_outware_ifpublware 0:不使用公共库存; 1:使用公共库存
  4720. Long i, j, rslt = 1
  4721. //Long ll_rowcnt = 0,child_row, count
  4722. //
  4723. //Decimal lde_taskqty_rest, lde_qty_add, lde_uqty_add, lde_noallocqty, lde_mtrlwaresum_qty
  4724. //Long ll_mtrlwareid = 0
  4725. //Decimal i_qty, r_qty
  4726. //String ls_plancode
  4727. //Decimal lde_planprice
  4728. //
  4729. //String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlsectype,ls_zxmtrlmode,ls_mtrlmode
  4730. //
  4731. //
  4732. ////Boolean lb_find = TRUE
  4733. //
  4734. //Int li_if_cus_mtrlware,li_noallocflag,li_if_plancode
  4735. //
  4736. //Long ll_sptid, ll_sptid_mx
  4737. //
  4738. //datastore ds
  4739. //ds = Create datastore
  4740. //ds.DataObject = "ds_outware_sale_taskmx"
  4741. //ds.SetTransObject(sqlca)
  4742. //
  4743. ////客户库存, 未开单库存
  4744. //SELECT balctype, noallocflag, if_plancode
  4745. // INTO :li_if_cus_mtrlware, :li_noallocflag, :li_if_plancode
  4746. // FROM u_storage
  4747. // Where storageid = :arg_storageid;
  4748. //IF sqlca.SQLCode <> 0 THEN
  4749. // arg_msg = '查询仓库是否使用客户库存失败'
  4750. // rslt = 0
  4751. // GOTO ext
  4752. //END IF
  4753. //
  4754. ////li_noallocflag = 0 , 不使用未开单库存, 即只需要找的一条库存,将订单所有数量都挂在此库存id就可以了
  4755. //
  4756. //IF li_if_cus_mtrlware = 1 THEN
  4757. // ll_sptid = arg_cusid
  4758. // ll_sptid_mx = ll_sptid
  4759. //ELSE
  4760. // ll_sptid = -1
  4761. // ll_sptid_mx = 0
  4762. //END IF
  4763. //
  4764. //FOR i = 1 To UpperBound(arg_mx.taskid)
  4765. //// sumqty = 0
  4766. // ls_mtrlcode = ''
  4767. // ls_mtrlname = ''
  4768. //// lb_find = True
  4769. //// allocqty = 0
  4770. // lde_noallocqty = 0
  4771. // i_qty = 0
  4772. // r_qty = 0
  4773. //
  4774. // SELECT u_mtrldef.mtrlcode,
  4775. // u_mtrldef.mtrlname,
  4776. // u_mtrldef.unit,
  4777. // u_mtrldef.mtrlmode,
  4778. // u_mtrldef.mtrlsectype,
  4779. // u_mtrldef.zxmtrlmode
  4780. // INTO :ls_mtrlcode,
  4781. // :ls_mtrlname,
  4782. // :ls_unit,
  4783. // :ls_mtrlmode,
  4784. // :ls_mtrlsectype,
  4785. // :ls_zxmtrlmode
  4786. // FROM u_mtrldef
  4787. // Where u_mtrldef.mtrlid = :arg_mx.mtrlid[i];
  4788. // IF sqlca.SQLCode <> 0 THEN
  4789. // arg_msg = '查询物料资料失败[错误物料唯一码]>'+sqlca.SQLErrText
  4790. // rslt = 0
  4791. // GOTO ext
  4792. // END IF
  4793. //
  4794. // SELECT ISNULL(SUM(u_mtrlware.noallocqty), 0) AS sum_qty
  4795. // INTO :lde_mtrlwaresum_qty
  4796. // FROM u_mtrlware
  4797. // WHERE u_mtrlware.mtrlid = :arg_mx.mtrlid[i]
  4798. // AND u_mtrlware.storageid = :arg_storageid
  4799. // AND u_mtrlware.status = :arg_mx.status[i]
  4800. // AND u_mtrlware.pcode = :arg_mx.pcode[i]
  4801. // AND u_mtrlware.woodcode = :arg_mx.woodcode[i]
  4802. // AND u_mtrlware.scid = :cur_scid
  4803. // AND ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 )
  4804. // And (:li_if_plancode = 0 or plancode = :arg_mx.plancode[i] );
  4805. // IF sqlca.SQLCode = 0 THEN
  4806. //
  4807. // ELSEIF sqlca.SQLCode = 100 THEN
  4808. // lde_mtrlwaresum_qty = -100000
  4809. // ELSE
  4810. // arg_msg = '查询库存量失败>'+sqlca.SQLErrText
  4811. // MessageBox('提示',String(arg_mx.mtrlid[i] )+'颜色:'+arg_mx.status[i]+' '+arg_msg,stopsign!,OK!)
  4812. // rslt = 0
  4813. // GOTO ext
  4814. // END IF
  4815. //
  4816. // //没有库存记录, 且使用未开单库存
  4817. // IF li_noallocflag = 1 And lde_mtrlwaresum_qty = 0 Or lde_mtrlwaresum_qty = -100000 THEN
  4818. // IF dw_child.GetRow() <= 0 THEN
  4819. // child_row = dw_child.InsertRow(0)
  4820. // ELSE
  4821. // IF dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] > 0 THEN
  4822. // child_row = dw_child.InsertRow(0)
  4823. // ELSE
  4824. // child_row = dw_child.GetRow()
  4825. // END IF
  4826. // END IF
  4827. //
  4828. // dw_child.Object.u_outwaremx_ifrel[child_row] = 1
  4829. // dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i]
  4830. // dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i]
  4831. // dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i]
  4832. //
  4833. // dw_child.Object.u_outwaremx_mtrlwareid[child_row] = 0
  4834. // dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i]
  4835. // dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i]
  4836. // dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i]
  4837. // dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i]
  4838. // dw_child.Object.u_outwaremx_saleqty[child_row] = 0
  4839. // dw_child.Object.u_outwaremx_uqty[child_row] = 0
  4840. //
  4841. // dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i]
  4842. // dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  4843. // dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  4844. // dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  4845. // dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i]
  4846. // dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i]
  4847. // dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i]
  4848. // dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i]
  4849. // dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i]
  4850. // dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  4851. // dw_child.Object.u_mtrldef_curware_qty[child_row] = 0
  4852. // dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i]
  4853. // dw_child.Object.u_mtrldef_sumware_qty[child_row] = 0
  4854. // dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  4855. // dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  4856. // dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i]
  4857. // dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i]
  4858. // dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i]
  4859. // dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i]
  4860. // dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i]
  4861. // dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i]
  4862. // GOTO nextmtrl
  4863. // END IF
  4864. //
  4865. // child_row = dw_child.GetRow()
  4866. //
  4867. // //没有库存记录, 且不使用未开单库存
  4868. // IF lde_mtrlwaresum_qty = 0 THEN
  4869. // IF dw_child.GetRow() > 0 THEN
  4870. // IF dw_child.Object.u_outwaremx_mtrlid[child_row] <> 0 THEN
  4871. // child_row = dw_child.InsertRow (0)
  4872. // ELSE
  4873. // child_row = dw_child.GetRow()
  4874. // END IF
  4875. // ELSE
  4876. // child_row = dw_child.InsertRow (0)
  4877. // END IF
  4878. //
  4879. // ll_mtrlwareid = 0
  4880. // ls_plancode = ''
  4881. // lde_noallocqty = 0
  4882. // lde_planprice = 0
  4883. //
  4884. // SELECT top 1
  4885. // u_mtrlware.mtrlwareid,
  4886. // u_mtrlware.plancode,
  4887. // u_mtrlware.noallocqty,
  4888. // u_mtrlware.planprice,
  4889. // u_mtrlware.plancode
  4890. // INTO
  4891. // :ll_mtrlwareid,
  4892. // :ls_plancode,
  4893. // :lde_noallocqty,
  4894. // :lde_planprice,
  4895. // :ls_plancode
  4896. // FROM u_mtrlware
  4897. // WHERE ( u_mtrlware.mtrlid = :arg_mx.mtrlid[i] ) AND
  4898. // ( u_mtrlware.storageid = :arg_storageid ) AND
  4899. // ( u_mtrlware.status = :arg_mx.status[i] ) AND
  4900. // ( u_mtrlware.pcode = :arg_mx.pcode[i] ) AND
  4901. // ( u_mtrlware.woodcode = :arg_mx.woodcode[i] ) AND
  4902. // ( u_mtrlware.scid = :cur_scid ) AND
  4903. // ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 )
  4904. // AND (:li_if_plancode = 0 or plancode = :arg_mx.plancode[i] )
  4905. // Order By u_mtrlware.mtrlwareid Desc ;
  4906. // IF sqlca.SQLCode = -1 THEN
  4907. // arg_msg = '查询库存量失败>'+sqlca.SQLErrText
  4908. // MessageBox('提示',String(arg_mx.mtrlid[i] )+'颜色:'+arg_mx.status[i]+' '+arg_msg,stopsign!,OK!)
  4909. // rslt = 0
  4910. // GOTO ext
  4911. // END IF
  4912. //
  4913. //
  4914. // dw_child.Object.u_outwaremx_ifrel[child_row] = 1
  4915. // dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i]
  4916. // dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i]
  4917. // dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i]
  4918. //
  4919. // dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ll_mtrlwareid
  4920. // dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i]
  4921. //
  4922. // dw_child.Object.u_outwaremx_saleqty[child_row] = arg_mx.qty[i]
  4923. // dw_child.Object.u_outwaremx_uqty[child_row] = arg_mx.qty[i]
  4924. //
  4925. // dw_child.Object.u_outwaremx_storageid[child_row] = arg_storageid
  4926. // dw_child.Object.u_outwaremx_plancode[child_row] = ls_plancode
  4927. // dw_child.Object.u_outwaremx_planprice[child_row] = lde_planprice
  4928. // dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i]
  4929. // dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i]
  4930. // dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i]
  4931. // dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i]
  4932. // dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  4933. // dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  4934. // dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  4935. // dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  4936. // dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i]
  4937. // dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i]
  4938. // dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i]
  4939. // dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i]
  4940. // dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i]
  4941. //
  4942. // dw_child.Object.u_mtrldef_curware_qty[child_row] = 0
  4943. // dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i]
  4944. // dw_child.Object.u_mtrldef_sumware_qty[child_row] = 0
  4945. //
  4946. // dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  4947. // dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  4948. // dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i]
  4949. // dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i]
  4950. // dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i]
  4951. // dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i]
  4952. // dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i]
  4953. // dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i]
  4954. // ELSE
  4955. // DECLARE pf_cur CURSOR FOR
  4956. // SELECT
  4957. // u_mtrlware.mtrlwareid,
  4958. // u_mtrlware.plancode,
  4959. // u_mtrlware.noallocqty,
  4960. // u_mtrlware.planprice,
  4961. // u_mtrlware.plancode
  4962. // FROM u_mtrlware
  4963. // WHERE ( u_mtrlware.mtrlid = :arg_mx.mtrlid[i] ) AND
  4964. // ( u_mtrlware.storageid = :arg_storageid ) AND
  4965. // ( u_mtrlware.status = :arg_mx.status[i] ) AND
  4966. // ( u_mtrlware.pcode = :arg_mx.pcode[i] ) AND
  4967. // ( u_mtrlware.woodcode = :arg_mx.woodcode[i] ) AND
  4968. // ( u_mtrlware.scid = :cur_scid ) AND
  4969. // ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 ) AND
  4970. // ( u_mtrlware.noallocqty > 0)
  4971. // AND (:li_if_plancode = 0 or plancode = :arg_mx.plancode[i] )
  4972. // Order By u_mtrlware.noallocqty Desc ;
  4973. //
  4974. // OPEN pf_cur;
  4975. // count = 1
  4976. // FETCH pf_cur INTO :ll_mtrlwareid,:ls_plancode,&
  4977. // :lde_noallocqty,:lde_planprice,:ls_plancode ;
  4978. // DO WHILE sqlca.SQLCode = 0 And r_qty < arg_mx.qty[i]
  4979. // count++
  4980. // i_qty = lde_noallocqty
  4981. // r_qty = r_qty+i_qty
  4982. // IF r_qty > arg_mx.qty[i] THEN
  4983. // i_qty = lde_noallocqty - ( r_qty - arg_mx.qty[i] )
  4984. // END IF
  4985. //
  4986. // IF dw_child.GetRow() > 0 THEN
  4987. // IF dw_child.Object.u_outwaremx_mtrlid[child_row] <> 0 THEN
  4988. // child_row = dw_child.InsertRow (0)
  4989. // ELSE
  4990. // child_row = dw_child.GetRow()
  4991. // END IF
  4992. // ELSE
  4993. // child_row = dw_child.InsertRow (0)
  4994. // END IF
  4995. //
  4996. // dw_child.Object.u_outwaremx_ifrel[child_row] = 1
  4997. // dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i]
  4998. // dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i]
  4999. // dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i]
  5000. //
  5001. // dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ll_mtrlwareid
  5002. // dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i]
  5003. //
  5004. // IF lde_noallocqty <= arg_mx.qty[i] THEN
  5005. // IF li_noallocflag = 0 THEN
  5006. // dw_child.Object.u_outwaremx_saleqty[child_row] = arg_mx.qty[i]
  5007. // dw_child.Object.u_outwaremx_uqty[child_row] = arg_mx.qty[i]
  5008. // ELSE
  5009. // dw_child.Object.u_outwaremx_saleqty[child_row] = i_qty
  5010. // dw_child.Object.u_outwaremx_uqty[child_row] = i_qty
  5011. // END IF
  5012. // ELSE
  5013. // dw_child.Object.u_outwaremx_saleqty[child_row] = arg_mx.qty[i]
  5014. // dw_child.Object.u_outwaremx_uqty[child_row] = arg_mx.qty[i]
  5015. // END IF
  5016. //
  5017. // dw_child.Object.u_outwaremx_storageid[child_row] = arg_storageid
  5018. // dw_child.Object.u_outwaremx_plancode[child_row] = ls_plancode
  5019. // dw_child.Object.u_outwaremx_planprice[child_row] = lde_planprice
  5020. // dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i]
  5021. // dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i]
  5022. // dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i]
  5023. // dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i]
  5024. // dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  5025. // dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  5026. // dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  5027. // dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  5028. // dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i]
  5029. // dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i]
  5030. // dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i]
  5031. // dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i]
  5032. // dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i]
  5033. //
  5034. // dw_child.Object.u_mtrldef_curware_qty[child_row] = lde_noallocqty
  5035. // dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i]
  5036. // dw_child.Object.u_mtrldef_sumware_qty[child_row] = lde_mtrlwaresum_qty
  5037. //
  5038. // dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  5039. // dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  5040. // dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i]
  5041. // dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i]
  5042. // dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i]
  5043. // dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i]
  5044. // dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i]
  5045. // dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i]
  5046. //
  5047. //
  5048. // FETCH pf_cur INTO :ll_mtrlwareid,:ls_plancode,&
  5049. // :lde_noallocqty,:lde_planprice,:ls_plancode ;
  5050. //
  5051. // LOOP
  5052. // count = count - 1
  5053. // CLOSE pf_cur;
  5054. // END IF
  5055. // nextmtrl:
  5056. //NEXT
  5057. //
  5058. //
  5059. ////FOR i = 1 To UpperBound(arg_mx.taskid)
  5060. //// ls_mtrlcode = ''
  5061. //// ls_mtrlname = ''
  5062. ////
  5063. //// lde_taskqty_rest = arg_mx.qty[i] //库存单位
  5064. //// lde_qty_add = 0
  5065. ////
  5066. //// // lb_find = TRUE
  5067. //// // i_qty = 0
  5068. //// // r_qty = 0
  5069. ////
  5070. ////
  5071. //// //查找物料资料
  5072. //// SELECT u_mtrldef.mtrlcode,
  5073. //// u_mtrldef.mtrlname,
  5074. //// u_mtrldef.mtrlmode,
  5075. //// u_mtrldef.unit,
  5076. //// u_mtrldef.mtrlsectype,
  5077. //// u_mtrldef.zxmtrlmode
  5078. //// INTO :ls_mtrlcode,
  5079. //// :ls_mtrlname,
  5080. //// :ls_mtrlmode,
  5081. //// :ls_unit,
  5082. //// :ls_mtrlsectype,
  5083. //// :ls_zxmtrlmode
  5084. //// FROM u_mtrldef
  5085. //// Where u_mtrldef.mtrlid = :arg_mx.mtrlid[i];
  5086. //// IF sqlca.SQLCode <> 0 THEN
  5087. //// arg_msg = '查询物料资料失败,错误物料ID['+String(arg_mx.mtrlid[i])+'],~r~n'+sqlca.SQLErrText
  5088. //// rslt = 0
  5089. //// GOTO ext
  5090. //// END IF
  5091. ////
  5092. ////
  5093. ////
  5094. ////
  5095. //// ll_rowcnt = ds.Retrieve(cur_scid, arg_storageid, arg_mx.mtrlid[i],&
  5096. //// arg_mx.status[i], arg_mx.woodcode[i], arg_mx.pcode[i],&
  5097. //// ll_sptid, arg_mx.plancode[i])
  5098. ////
  5099. //// FOR j = 1 To ll_rowcnt
  5100. //// ll_mtrlwareid = ds.Object.mtrlwareid[j]
  5101. //// ls_plancode = ds.Object.plancode[j]
  5102. ////
  5103. //// IF li_noallocflag = 0 THEN
  5104. //// //li_noallocflag = 0 , 不使用未开单库存, 即只需要找的一条库存,将订单所有数量都挂在此库存id就可以了
  5105. //// //lde_noallocqty = ds.Object.noallocqty[j]
  5106. //// lde_noallocqty = lde_taskqty_rest
  5107. //// ELSE
  5108. //// lde_noallocqty = ds.Object.noallocqty[j] - ds.Object.noauditingqty[j]
  5109. //// END IF
  5110. //// IF lde_noallocqty <= 0 THEN CONTINUE
  5111. ////
  5112. //// IF lde_taskqty_rest > lde_noallocqty THEN
  5113. //// lde_qty_add = lde_noallocqty
  5114. //// lde_taskqty_rest -= lde_qty_add
  5115. //// ELSE
  5116. //// lde_qty_add = lde_taskqty_rest
  5117. //// lde_taskqty_rest = 0
  5118. //// END IF
  5119. ////
  5120. //// lde_uqty_add = lde_qty_add * arg_mx.rate[i] //销售单位
  5121. ////
  5122. //// IF lde_uqty_add > 0 THEN
  5123. ////
  5124. //// IF dw_child.GetRow() > 0 THEN
  5125. //// IF dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 0 THEN
  5126. //// child_row = dw_child.InsertRow (0)
  5127. //// ELSE
  5128. //// child_row = dw_child.GetRow()
  5129. //// END IF
  5130. //// ELSE
  5131. //// child_row = dw_child.InsertRow (0)
  5132. //// END IF
  5133. ////
  5134. //// dw_child.Object.u_outwaremx_ifrel[child_row] = 1
  5135. //// dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i]
  5136. //// dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i]
  5137. //// dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i]
  5138. ////
  5139. //// dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ll_mtrlwareid
  5140. //// dw_child.Object.u_outwaremx_storageid[child_row] = arg_storageid
  5141. //// dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i]
  5142. //// dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  5143. //// dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  5144. //// dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  5145. //// dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  5146. //// dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i]
  5147. //// dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i]
  5148. //// dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i]
  5149. //// dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  5150. //// dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  5151. ////
  5152. //// dw_child.Object.u_outwaremx_plancode[child_row] = ls_plancode
  5153. //// dw_child.Object.u_outwaremx_sptid[child_row] = ll_sptid_mx
  5154. ////
  5155. //// dw_child.Object.u_outwaremx_planprice[child_row] = lde_planprice
  5156. ////
  5157. ////
  5158. //// dw_child.Object.u_outwaremx_saleqty[child_row] = lde_uqty_add
  5159. //// dw_child.Object.u_outwaremx_uqty[child_row] = lde_uqty_add
  5160. //// dw_child.Object.u_outwaremx_qty[child_row] = lde_qty_add
  5161. //// dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i]
  5162. //// dw_child.Object.u_outwaremx_packqty[child_row] = arg_mx.packqty[i]
  5163. ////
  5164. //// dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i]
  5165. //// dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i]
  5166. ////
  5167. //// dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i]
  5168. //// dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i]
  5169. //// dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i]
  5170. //// dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i]
  5171. //// dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i]
  5172. ////
  5173. //// dw_child.Object.u_mtrldef_curware_qty[child_row] = lde_noallocqty
  5174. //// dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i]
  5175. //// dw_child.Object.u_mtrldef_sumware_qty[child_row] = lde_noallocqty
  5176. //// dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i]
  5177. //// dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i]
  5178. //// dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i]
  5179. //// dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i]
  5180. //// END IF
  5181. //// //IF li_noallocflag = 0 THEN EXIT //不使用为开单库存,显示总出仓数,所以只取一条记录,否则重复数量 //????????
  5182. //// IF lde_taskqty_rest = 0 THEN EXIT
  5183. //// NEXT
  5184. ////
  5185. ////
  5186. //// IF lde_taskqty_rest > 0 THEN
  5187. //// ll_mtrlwareid = 0
  5188. //// ls_plancode = ''
  5189. //// lde_noallocqty = 0
  5190. //// lde_qty_add = lde_taskqty_rest
  5191. //// lde_uqty_add = lde_qty_add * arg_mx.rate[i] //销售单位
  5192. ////
  5193. //// // SELECT top 1
  5194. //// // u_mtrlware.mtrlwareid,
  5195. //// // u_mtrlware.plancode,
  5196. //// // u_mtrlware.noallocqty,
  5197. //// // u_mtrlware.planprice
  5198. //// // INTO
  5199. //// // :ll_mtrlwareid,
  5200. //// // :ls_plancode,
  5201. //// // :lde_noallocqty,
  5202. //// // :lde_planprice
  5203. //// // FROM u_mtrlware
  5204. //// // WHERE ( u_mtrlware.mtrlid = :arg_mx.mtrlid[i] ) AND
  5205. //// // ( u_mtrlware.storageid = :arg_storageid ) AND
  5206. //// // ( u_mtrlware.status = :arg_mx.status[i] ) AND
  5207. //// // ( u_mtrlware.pcode = :arg_mx.pcode[i] ) AND
  5208. //// // ( u_mtrlware.woodcode = :arg_mx.woodcode[i] ) AND
  5209. //// // ( u_mtrlware.scid = :cur_scid ) AND
  5210. //// // ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 )
  5211. //// // And (plancode = :arg_mx.plancode[i] Or :arg_mx.plancode[i] = '')
  5212. //// // Order By u_mtrlware.mtrlwareid Desc ;
  5213. //// // IF sqlca.SQLCode = -1 THEN
  5214. //// // arg_msg = '查询库存信息失败>'+sqlca.SQLErrText
  5215. //// // MessageBox('错误',String(arg_mx.mtrlid[i] )+'颜色:'+arg_mx.status[i]+' '+arg_msg,information!,OK!)
  5216. //// // rslt = 0
  5217. //// // GOTO ext
  5218. //// // END IF
  5219. ////
  5220. //// IF dw_child.GetRow() > 0 THEN
  5221. //// IF dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 0 THEN
  5222. //// child_row = dw_child.InsertRow (0)
  5223. //// ELSE
  5224. //// child_row = dw_child.GetRow()
  5225. //// END IF
  5226. //// ELSE
  5227. //// child_row = dw_child.InsertRow (0)
  5228. //// END IF
  5229. ////
  5230. //// dw_child.Object.u_outwaremx_ifrel[child_row] = 1
  5231. //// dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i]
  5232. //// dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i]
  5233. //// dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i]
  5234. ////
  5235. //// dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ll_mtrlwareid
  5236. //// dw_child.Object.u_outwaremx_storageid[child_row] = arg_storageid
  5237. //// dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i]
  5238. //// dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  5239. //// dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  5240. //// dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  5241. //// dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  5242. //// dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i]
  5243. //// dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i]
  5244. //// dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i]
  5245. //// dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  5246. //// dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  5247. ////
  5248. //// dw_child.Object.u_outwaremx_plancode[child_row] = ls_plancode
  5249. //// dw_child.Object.u_outwaremx_sptid[child_row] = ll_sptid_mx
  5250. ////
  5251. //// dw_child.Object.u_outwaremx_planprice[child_row] = lde_planprice
  5252. ////
  5253. ////
  5254. //// dw_child.Object.u_outwaremx_saleqty[child_row] = lde_uqty_add
  5255. //// dw_child.Object.u_outwaremx_uqty[child_row] = lde_uqty_add
  5256. //// dw_child.Object.u_outwaremx_qty[child_row] = lde_qty_add
  5257. //// dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i]
  5258. ////
  5259. //// dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i]
  5260. //// dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i]
  5261. ////
  5262. //// dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i]
  5263. //// dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i]
  5264. //// dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i]
  5265. //// dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i]
  5266. //// dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i]
  5267. ////
  5268. //// dw_child.Object.u_mtrldef_curware_qty[child_row] = lde_noallocqty
  5269. //// dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i]
  5270. //// dw_child.Object.u_mtrldef_sumware_qty[child_row] = lde_noallocqty
  5271. //// dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i]
  5272. //// dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i]
  5273. //// dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i]
  5274. //// dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i]
  5275. //// END IF
  5276. ////
  5277. ////NEXT
  5278. ////
  5279. //
  5280. //ext:
  5281. RETURN rslt
  5282. end function
  5283. public function integer wf_set_outwaremx (long arg_scid, long arg_cusid, long arg_storageid, s_saletask_mtrl arg_mx, string arg_msg);//由订单明细结构插入dw_child
  5284. //li_noallocflag 0:不使用未开单库存; 1:使用未开单库存;
  5285. //li_if_cus_mtrlware 0:不使用客户库存 ; 1:使用客户库存;
  5286. //sys_option_outware_ifpublware 0:不使用公共库存; 1:使用公共库存
  5287. //li_if_plancode 0:不使用批号; 1:使用批号;
  5288. //如果1.库存使用未开单库存, 按总库存数安排;即发货总数=Min(库存总数,总未完成数);
  5289. //如果1.库存不使用未开单库存,按总未完成数安排,即发货总数=总未完成数;多出库存部分安排在最后一条库存;
  5290. //如果1.订单不使用批号;2.库存使用批号,且使用客户库存; 按生产进仓单找对应订单的进仓记录先安排,再按其他订单,该客户库存安排;
  5291. Long i, j, rslt = 1
  5292. Long ll_rowcnt = 0,child_row, count, ll_addmxcnt
  5293. Decimal lde_taskqty_rest, lde_qty_add, lde_uqty_add, lde_noallocqty, lde_noallocqty_sum
  5294. Long ll_mtrlwareid = 0
  5295. String ls_plancode
  5296. Decimal lde_planprice
  5297. String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlsectype,ls_zxmtrlmode,ls_mtrlmode,ls_mtrltype,ls_mtrlengname,ls_barcode
  5298. Boolean lb_find = False
  5299. Int li_if_cus_mtrlware,li_noallocflag,li_if_plancode
  5300. Long ll_sptid, ll_sptid_mx
  5301. String ls_msg
  5302. s_cmpl_qty arg_cmpl,null_cmpl
  5303. Decimal ld_qty,ld_LMsaleprice
  5304. Int li_mtrlid,li_cusid
  5305. dec ld_cusprice
  5306. string ls_cusmtrlcode,ls_cusmtrlname,ls_cusmtrlmode
  5307. //客户库存, 未开单库存
  5308. Select balctype, noallocflag, if_plancode
  5309. Into :li_if_cus_mtrlware, :li_noallocflag, :li_if_plancode
  5310. From u_storage
  5311. Where storageid = :arg_storageid;
  5312. If sqlca.SQLCode <> 0 Then
  5313. arg_msg = '查询仓库是否使用客户库存失败'
  5314. rslt = 0
  5315. Goto ext
  5316. End If
  5317. //li_noallocflag = 0 , 不使用未开单库存, 即只需要找的一条库存,将订单所有数量都挂在此库存id就可以了
  5318. //sys_option_outware_if_di = 0 //销售发货单仓审自动组装 084 Or (li_noallocflag = 1 And sys_option_outware_if_di = 1)
  5319. If li_if_cus_mtrlware = 1 Then
  5320. ll_sptid = arg_cusid
  5321. ll_sptid_mx = ll_sptid
  5322. Else
  5323. ll_sptid = -1
  5324. ll_sptid_mx = 0
  5325. End If
  5326. For i = 1 To UpperBound(arg_mx.taskid)
  5327. If arg_mx.taskid[i] = 0 Then Continue
  5328. lde_noallocqty = 0
  5329. li_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]//客户物料名称
  5330. Select isnull(cusmtrlcode,''), isnull(cusmtrlname,''), isnull(cusmtrlmode,'')
  5331. Into :ls_cusmtrlcode, :ls_cusmtrlname, :ls_cusmtrlmode
  5332. From u_cusmtrlname
  5333. Where mtrlid= :arg_mx.mtrlid[i] and cusid= :li_cusid ;
  5334. Select u_mtrldef.mtrlcode,
  5335. u_mtrldef.mtrlname,
  5336. u_mtrldef.unit,
  5337. u_mtrldef.mtrlmode,
  5338. u_mtrldef.mtrlsectype,
  5339. u_mtrldef.zxmtrlmode,
  5340. u_mtrldef.mtrltype,
  5341. u_mtrldef.LMsaleprice,
  5342. u_mtrldef.mtrlengname,
  5343. u_mtrldef.barcode
  5344. Into :ls_mtrlcode,
  5345. :ls_mtrlname,
  5346. :ls_unit,
  5347. :ls_mtrlmode,
  5348. :ls_mtrlsectype,
  5349. :ls_zxmtrlmode,
  5350. :ls_mtrltype,
  5351. :ld_LMsaleprice,
  5352. :ls_mtrlengname,
  5353. :ls_barcode
  5354. From u_mtrldef
  5355. Where u_mtrldef.mtrlid = :arg_mx.mtrlid[i];
  5356. If sqlca.SQLCode <> 0 Then
  5357. arg_msg = '查询物料:'+String(arg_mx.mtrlid[i] )+'资料失败,'+sqlca.SQLErrText
  5358. rslt = 0
  5359. Goto ext
  5360. End If
  5361. Select SUM(u_mtrlware.noallocqty)
  5362. Into :lde_noallocqty_sum
  5363. From u_mtrlware
  5364. Where u_mtrlware.mtrlid = :arg_mx.mtrlid[i]
  5365. And u_mtrlware.storageid = :arg_storageid
  5366. And u_mtrlware.status = :arg_mx.status[i]
  5367. And u_mtrlware.pcode = :arg_mx.pcode[i]
  5368. And u_mtrlware.woodcode = :arg_mx.woodcode[i]
  5369. And u_mtrlware.scid = :arg_scid
  5370. And ( u_mtrlware.sptid = :ll_sptid Or :ll_sptid = -1 Or (:sys_option_outware_ifpublware = 1 And u_mtrlware.sptid = 0) )
  5371. And (:li_if_plancode = 0 Or plancode = :arg_mx.plancode[i] );
  5372. If sqlca.SQLCode <> 0 Then
  5373. lde_noallocqty_sum = 0
  5374. End If
  5375. If IsNull(lde_noallocqty_sum) Then lde_noallocqty_sum = 0
  5376. //没有库存记录 或者 不考虑未开单库存?
  5377. If lde_noallocqty_sum = 0 Then
  5378. ll_mtrlwareid = 0
  5379. ls_plancode = ''
  5380. lde_noallocqty = 0
  5381. lde_planprice = 0
  5382. If dw_child.GetRow() > 0 Then
  5383. If dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 0 Then
  5384. child_row = dw_child.InsertRow (0)
  5385. Else
  5386. child_row = dw_child.GetRow()
  5387. End If
  5388. Else
  5389. child_row = dw_child.InsertRow (0)
  5390. End If
  5391. If li_noallocflag = 1 Then //没有库存记录, 且使用未开单库存
  5392. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = 0
  5393. dw_child.Object.u_outwaremx_saleqty[child_row] = 0
  5394. dw_child.Object.u_outwaremx_uqty[child_row] = 0
  5395. dw_child.Object.u_outwaremx_qty[child_row] = 0
  5396. Else //没有库存记录, 且不使用未开单库存, 取 top 1
  5397. //
  5398. // SELECT top 1 mtrlwareid, plancode, noallocqty, planprice
  5399. // INTO :ll_mtrlwareid, :ls_plancode, :lde_noallocqty, :lde_planprice
  5400. // FROM u_mtrlware
  5401. // WHERE ( mtrlid = :arg_mx.mtrlid[i] )
  5402. // AND ( storageid = :arg_storageid )
  5403. // AND ( status = :arg_mx.status[i] )
  5404. // AND ( pcode = :arg_mx.pcode[i] )
  5405. // AND ( woodcode = :arg_mx.woodcode[i] )
  5406. // AND ( scid = :arg_scid )
  5407. // AND ( sptid = :ll_sptid OR :ll_sptid = -1 )
  5408. // AND (:li_if_plancode = 0 OR plancode = :arg_mx.plancode[i] OR (:sys_option_outware_ifpublware = 1 AND u_mtrlware.sptid = 0) )
  5409. // Order By CASE when u_mtrlware.sptid = :ll_sptid THEN 1 ELSE 0 END Desc,mtrlwareid Desc ;
  5410. // IF sqlca.SQLCode = -1 THEN
  5411. // arg_msg = '查询物料:'+String(arg_mx.mtrlid[i] )+'库存信息失败,'+sqlca.SQLErrText
  5412. // rslt = 0
  5413. // GOTO ext
  5414. // END IF
  5415. Select top 1 mtrlwareid, plancode, noallocqty, planprice
  5416. Into :ll_mtrlwareid, :ls_plancode, :lde_noallocqty, :lde_planprice
  5417. From u_mtrlware
  5418. Where ( mtrlid = :arg_mx.mtrlid[i] )
  5419. And ( storageid = :arg_storageid )
  5420. And ( status = :arg_mx.status[i] )
  5421. And ( pcode = :arg_mx.pcode[i] )
  5422. And ( woodcode = :arg_mx.woodcode[i] )
  5423. And ( scid = :arg_scid )
  5424. And ( sptid = :ll_sptid Or :ll_sptid = -1 )
  5425. And (:li_if_plancode = 0 Or plancode = :arg_mx.plancode[i] )
  5426. And (:sys_option_outware_ifpublware = 1 And u_mtrlware.sptid = 0)
  5427. Order By Case when u_mtrlware.sptid = :ll_sptid Then 1 Else 0 End Desc,mtrlwareid Desc ;
  5428. If sqlca.SQLCode = -1 Then
  5429. arg_msg = '查询物料:'+String(arg_mx.mtrlid[i] )+'库存信息失败,'+sqlca.SQLErrText
  5430. rslt = 0
  5431. Goto ext
  5432. End If
  5433. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ll_mtrlwareid
  5434. dw_child.Object.u_outwaremx_saleqty[child_row] = arg_mx.qty[i]
  5435. dw_child.Object.u_outwaremx_uqty[child_row] = arg_mx.qty[i]
  5436. dw_child.Object.u_outwaremx_qty[child_row] = arg_mx.qty[i] * arg_mx.rate[i]
  5437. End If
  5438. dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i]
  5439. dw_child.Object.u_outwaremx_packqty[child_row] = arg_mx.packqty[i]
  5440. dw_child.Object.u_outwaremx_ifrel[child_row] = 1
  5441. dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i]
  5442. dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i]
  5443. dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i]
  5444. dw_child.Object.u_outwaremx_storageid[child_row] = arg_storageid
  5445. dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i]
  5446. dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  5447. dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  5448. dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  5449. dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  5450. dw_child.Object.u_mtrldef_mtrltype[child_row] = ls_mtrltype
  5451. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  5452. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  5453. dw_child.Object.u_mtrldef_lmsaleprice[child_row] = ld_LMsaleprice
  5454. dw_child.Object.u_mtrldef_mtrlengname[child_row] = ls_mtrlengname
  5455. dw_child.Object.u_mtrldef_barcode[child_row] = ls_barcode
  5456. dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i]
  5457. dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i]
  5458. dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i]
  5459. dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i]
  5460. dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i]
  5461. dw_child.Object.u_outwaremx_plancode[child_row] = arg_mx.plancode[i] // ls_plancode
  5462. dw_child.Object.u_outwaremx_planprice[child_row] = lde_planprice
  5463. dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i]
  5464. dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i]
  5465. dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i]
  5466. dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i]
  5467. dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i]
  5468. dw_child.Object.u_outwaremx_mxdscrp3[child_row] = arg_mx.mxdscrp3[i]
  5469. dw_child.Object.u_outwaremx_mxdscrp4[child_row] = arg_mx.mxdscrp4[i]
  5470. dw_child.Object.u_mtrldef_curware_qty[child_row] = 0
  5471. dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i] * arg_mx.rate[i]
  5472. dw_child.Object.u_mtrldef_sumware_qty[child_row] = 0
  5473. dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i]
  5474. dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i]
  5475. dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i]
  5476. dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i]
  5477. dw_child.Object.u_outwaremx_net_weight[child_row] = arg_mx.net_weight[i]
  5478. dw_child.Object.u_outwaremx_gross_weight[child_row] = arg_mx.gross_weight[i]
  5479. dw_child.Object.u_outwaremx_cubage[child_row] = arg_mx.cubage[i]
  5480. dw_child.Object.u_outwaremx_tax[child_row] = arg_mx.tax[i]
  5481. dw_child.Object.u_outwaremx_priceformula[child_row] = arg_mx.priceformula[i]
  5482. dw_child.Object.u_cusmtrlname_cusmtrlname[child_row] = ls_cusmtrlname
  5483. dw_child.Object.u_cusmtrlname_cusmtrlcode[child_row] = ls_cusmtrlname
  5484. dw_child.Object.u_cusmtrlname_cusmtrlmode[child_row] =ls_cusmtrlname
  5485. //dw_
  5486. //计算单价
  5487. If arg_mx.priceformula[i] <> '' and dw_child.Object.u_outwaremx_ifrel[child_row] = 0 Then
  5488. arg_cmpl = null_cmpl
  5489. arg_cmpl.qty = dw_child.Object.u_outwaremx_enprice[child_row]
  5490. arg_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[child_row]
  5491. arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row]
  5492. arg_cmpl.price = dw_child.Object.u_outwaremx_enprice[child_row]
  5493. arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row]
  5494. arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row]
  5495. arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row]
  5496. arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row]
  5497. arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row]
  5498. arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row]
  5499. li_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row]
  5500. li_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  5501. Select price
  5502. Into :ld_cusprice
  5503. From u_cust
  5504. Inner JOIN u_sale_price_mx ON u_sale_price_mx.Pricelistid = u_cust.Pricelistid
  5505. Where u_sale_price_mx.mtrlid = :li_mtrlid
  5506. And u_cust.cusid = :li_cusid;
  5507. If sqlca.SQLCode <> 0 Then
  5508. ld_cusprice = 0
  5509. End If
  5510. arg_cmpl.cusprice = ld_cusprice
  5511. arg_cmpl.num = 2
  5512. arg_cmpl.addvalue = 1
  5513. arg_cmpl.flag = True
  5514. ld_qty = 0
  5515. If f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 Then
  5516. arg_msg = arg_msg + "~r~n" + ls_msg
  5517. rslt = 0
  5518. Goto ext
  5519. End If
  5520. dw_child.Object.u_outwaremx_enprice[child_row] = ld_qty
  5521. End If
  5522. Else //IF lde_noallocqty_sum = 0 THEN 有库存数
  5523. lde_taskqty_rest = arg_mx.qty[i] * arg_mx.rate[i]
  5524. Declare pf_cur Cursor For
  5525. Select
  5526. u_mtrlware.mtrlwareid,
  5527. u_mtrlware.plancode,
  5528. u_mtrlware.noallocqty,
  5529. u_mtrlware.planprice
  5530. From u_mtrlware
  5531. Where ( u_mtrlware.mtrlid = :arg_mx.mtrlid[i] ) And
  5532. ( u_mtrlware.scid = :arg_scid ) And
  5533. ( u_mtrlware.storageid = :arg_storageid ) And
  5534. ( u_mtrlware.status = :arg_mx.status[i] ) And
  5535. ( u_mtrlware.pcode = :arg_mx.pcode[i] ) And
  5536. ( u_mtrlware.woodcode = :arg_mx.woodcode[i] ) And
  5537. ( u_mtrlware.sptid = :ll_sptid Or :ll_sptid = -1 Or (:sys_option_outware_ifpublware = 1 And u_mtrlware.sptid = 0) ) And
  5538. ( u_mtrlware.noallocqty > 0)
  5539. And (:li_if_plancode = 0 Or plancode = :arg_mx.plancode[i] )
  5540. Order By Case when u_mtrlware.sptid = :ll_sptid Then 1 Else 0 End Desc, u_mtrlware.noallocqty Desc ;
  5541. Open pf_cur;
  5542. count = 1
  5543. Fetch pf_cur Into :ll_mtrlwareid,:ls_plancode, :lde_noallocqty,:lde_planprice ;
  5544. Do While sqlca.SQLCode = 0
  5545. count++
  5546. If lde_taskqty_rest <= lde_noallocqty Then
  5547. lde_qty_add = lde_taskqty_rest
  5548. Else
  5549. lde_qty_add = lde_noallocqty
  5550. End If
  5551. lde_taskqty_rest -= lde_qty_add
  5552. lde_uqty_add = lde_qty_add / arg_mx.rate[i]
  5553. If dw_child.GetRow() > 0 Then
  5554. If dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 0 Then
  5555. child_row = dw_child.InsertRow (0)
  5556. Else
  5557. child_row = dw_child.GetRow()
  5558. End If
  5559. Else
  5560. child_row = dw_child.InsertRow (0)
  5561. End If
  5562. dw_child.Object.u_outwaremx_ifrel[child_row] = 1
  5563. dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i]
  5564. dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i]
  5565. dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i]
  5566. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ll_mtrlwareid
  5567. dw_child.Object.u_outwaremx_storageid[child_row] = arg_storageid
  5568. dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i]
  5569. dw_child.Object.u_outwaremx_saleqty[child_row] = lde_uqty_add
  5570. dw_child.Object.u_outwaremx_uqty[child_row] = lde_uqty_add
  5571. dw_child.Object.u_outwaremx_qty[child_row] = lde_qty_add
  5572. dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i]
  5573. dw_child.Object.u_outwaremx_plancode[child_row] = ls_plancode
  5574. dw_child.Object.u_outwaremx_planprice[child_row] = lde_planprice
  5575. dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i]
  5576. dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i]
  5577. dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i]
  5578. dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i]
  5579. dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i]
  5580. dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  5581. dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  5582. dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  5583. dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  5584. dw_child.Object.u_mtrldef_mtrltype[child_row] = ls_mtrltype
  5585. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  5586. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  5587. dw_child.Object.u_mtrldef_lmsaleprice[child_row] = ld_LMsaleprice
  5588. dw_child.Object.u_mtrldef_mtrlengname[child_row] = ls_mtrlengname
  5589. dw_child.Object.u_mtrldef_barcode[child_row] = ls_barcode
  5590. dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i]
  5591. dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i]
  5592. dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i]
  5593. dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i]
  5594. dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i]
  5595. dw_child.Object.u_outwaremx_mxdscrp3[child_row] = arg_mx.mxdscrp3[i] //新加
  5596. dw_child.Object.u_outwaremx_mxdscrp4[child_row] = arg_mx.mxdscrp4[i] //新加
  5597. dw_child.Object.u_mtrldef_curware_qty[child_row] = lde_noallocqty
  5598. dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i] * arg_mx.rate[i]
  5599. dw_child.Object.u_mtrldef_sumware_qty[child_row] = lde_noallocqty_sum
  5600. dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i]
  5601. dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i]
  5602. dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i]
  5603. dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i]
  5604. dw_child.Object.u_outwaremx_net_weight[child_row] = arg_mx.net_weight[i]
  5605. dw_child.Object.u_outwaremx_gross_weight[child_row] = arg_mx.gross_weight[i]
  5606. dw_child.Object.u_outwaremx_cubage[child_row] = arg_mx.cubage[i]
  5607. dw_child.Object.u_outwaremx_tax[child_row] = arg_mx.tax[i]
  5608. dw_child.Object.u_outwaremx_priceformula[child_row] = arg_mx.priceformula[i]
  5609. dw_child.Object.u_outwaremx_packqty[child_row] = arg_mx.packqty[i]
  5610. dw_child.Object.u_cusmtrlname_cusmtrlname[child_row] = ls_cusmtrlname
  5611. dw_child.Object.u_cusmtrlname_cusmtrlcode[child_row] = ls_cusmtrlname
  5612. dw_child.Object.u_cusmtrlname_cusmtrlmode[child_row] =ls_cusmtrlname
  5613. //计算单价
  5614. If arg_mx.priceformula[i] <> '' and dw_child.Object.u_outwaremx_ifrel[child_row] = 0 Then
  5615. arg_cmpl = null_cmpl
  5616. arg_cmpl.qty = dw_child.Object.u_outwaremx_enprice[child_row]
  5617. arg_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[child_row]
  5618. arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row]
  5619. arg_cmpl.price = dw_child.Object.u_outwaremx_enprice[child_row]
  5620. arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row]
  5621. arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row]
  5622. arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row]
  5623. arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row]
  5624. arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row]
  5625. arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row]
  5626. li_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row]
  5627. li_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  5628. Select price
  5629. Into :ld_cusprice
  5630. From u_cust
  5631. Inner JOIN u_sale_price_mx ON u_sale_price_mx.Pricelistid = u_cust.Pricelistid
  5632. Where u_sale_price_mx.mtrlid = :li_mtrlid
  5633. And u_cust.cusid = :li_cusid;
  5634. If sqlca.SQLCode <> 0 Then
  5635. ld_cusprice = 0
  5636. End If
  5637. arg_cmpl.cusprice = ld_cusprice
  5638. arg_cmpl.num = sys_option_outware_price_amt_round
  5639. arg_cmpl.addvalue = 1
  5640. arg_cmpl.flag = True
  5641. ld_qty = 0
  5642. If f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 Then
  5643. arg_msg = arg_msg + "~r~n" + ls_msg
  5644. rslt = 0
  5645. Goto ext
  5646. End If
  5647. dw_child.Object.u_outwaremx_enprice[child_row] = ld_qty
  5648. End If
  5649. If lde_taskqty_rest <= 0 Then Exit //跳出循环
  5650. Fetch pf_cur Into :ll_mtrlwareid,:ls_plancode, :lde_noallocqty,:lde_planprice ;
  5651. Loop
  5652. count = count - 1
  5653. Close pf_cur;
  5654. If lde_taskqty_rest > 0 Then //如果还有未分配的数
  5655. If li_noallocflag = 0 Then //不使用未开单库存, 将剩余数安排在最后一条记录
  5656. If count > 0 And child_row > 0 Then
  5657. lde_qty_add = lde_taskqty_rest
  5658. lde_taskqty_rest -= lde_qty_add
  5659. lde_uqty_add = lde_qty_add / arg_mx.rate[i]
  5660. dw_child.Object.u_outwaremx_saleqty[child_row] = dw_child.Object.u_outwaremx_saleqty[child_row] + lde_uqty_add
  5661. dw_child.Object.u_outwaremx_uqty[child_row] = dw_child.Object.u_outwaremx_uqty[child_row] + lde_uqty_add
  5662. dw_child.Object.u_outwaremx_qty[child_row] = dw_child.Object.u_outwaremx_qty[child_row] + lde_qty_add
  5663. End If
  5664. End If
  5665. End If
  5666. End If
  5667. Next
  5668. //计算明细库存数和不足数
  5669. This.TriggerEvent('ue_mx_cmplnoallocqty')
  5670. ext:
  5671. Return rslt
  5672. end function
  5673. public function integer wf_set_outware_itemmx (integer arg_scid, long arg_taskid);
  5674. Long i, j, rslt = 1
  5675. Long ll_rowcnt = 0,child_row, count, ll_addmxcnt,ll_itemid
  5676. String ls_itemcode,ls_itemname,ls_itemtype
  5677. dw_fymx.Reset()
  5678. datastore dw_itemmx
  5679. dw_itemmx = Create datastore
  5680. dw_itemmx.DataObject = 'dw_saletask_itemmx_edit_1'
  5681. dw_itemmx.SetTransObject(sqlca)
  5682. dw_itemmx.Retrieve(arg_scid,arg_taskid)
  5683. FOR i = 1 To dw_itemmx.RowCount()
  5684. child_row = dw_fymx.InsertRow (0)
  5685. dw_fymx.Object.u_outware_itemmx_scid[child_row] = dw_itemmx.Object.u_saletask_itemmx_scid[i]
  5686. dw_fymx.Object.u_outware_itemmx_itemid[child_row] = dw_itemmx.Object.u_saletask_itemmx_itemid[i]
  5687. dw_fymx.Object.u_outware_itemmx_amt[child_row] = dw_itemmx.Object.u_saletask_itemmx_amt[i] - abs(dw_itemmx.Object.u_saletask_itemmx_amtyfh[i])
  5688. dw_fymx.Object.u_outware_itemmx_mxdscrp[child_row] = dw_itemmx.Object.u_saletask_itemmx_mxdscrp[i]
  5689. dw_fymx.Object.u_outware_itemmx_saletaskid[child_row] = dw_itemmx.Object.u_saletask_itemmx_saletaskid[i]
  5690. dw_fymx.Object.u_outware_itemmx_saletaskprintid[child_row] = dw_itemmx.Object.u_saletask_itemmx_printid[i]
  5691. dw_fymx.Object.u_outware_itemmx_itype[child_row] = dw_itemmx.Object.u_saletask_itemmx_itype[i]
  5692. dw_fymx.Object.u_outware_itemmx_printid[child_row] = i
  5693. NEXT
  5694. dw_fymx.AcceptText()
  5695. FOR i = 1 To dw_fymx.RowCount()
  5696. ll_itemid = dw_fymx.Object.u_outware_itemmx_itemid[i]
  5697. SELECT Top 1 itemcode,itemname,itemtype Into :ls_itemcode,:ls_itemname,:ls_itemtype From u_itemdef Where u_itemdef.itemid = :ll_itemid;
  5698. dw_fymx.Object.u_itemdef_itemcode[i] = ls_itemcode
  5699. dw_fymx.Object.u_itemdef_itemname[i] = ls_itemname
  5700. dw_fymx.Object.u_itemdef_itemtype[i] = ls_itemtype
  5701. NEXT
  5702. Destroy dw_itemmx
  5703. RETURN rslt
  5704. end function
  5705. public function integer wf_change_cusid (long arg_cusid);Long rslt = 1,ll_row,i
  5706. Long ll_mtrlcus,ll_scid = 0,ll_outwareid = 0,ll_mtrlwareid = 0
  5707. Boolean for_buytask = False //是否按订单
  5708. s_mtrlware_noalloc_array INS_RT_STRU
  5709. s_mtrldef_array S_INSCUST2
  5710. ll_row = dw_uc.GetRow()
  5711. ll_scid = dw_pageretr.Object.u_outware_scid[dw_pageretr.GetRow()]
  5712. ll_outwareid = dw_pageretr.Object.u_outware_outwareid[dw_pageretr.GetRow()]
  5713. IF ll_row <= 0 THEN RETURN rslt
  5714. IF dw_uc.Object.u_outware_cusid[ll_row] > 0 And dw_uc.Object.u_outware_cusid[ll_row] <> arg_cusid THEN
  5715. FOR i = 1 To dw_child.RowCount()
  5716. IF dw_child.Object.u_outwaremx_relid[i] <> 0 THEN
  5717. for_buytask = True
  5718. EXIT
  5719. END IF
  5720. NEXT
  5721. FOR i = 1 To dw_child.RowCount()
  5722. ll_mtrlwareid = dw_child.Object.u_outwaremx_mtrlwareid[i]
  5723. SELECT top 1 u_mtrlware.sptid INTO :ll_mtrlcus FROM u_outwaremx
  5724. INNER join u_mtrlware on u_outwaremx.scid = u_mtrlware.scid AND
  5725. u_outwaremx.mtrlwareid = u_mtrlware.mtrlwareid WHERE u_outwaremx.scid = :ll_scid AND
  5726. u_outwaremx.outwareid = :ll_outwareid And u_outwaremx.mtrlwareid = :ll_mtrlwareid ;
  5727. IF ll_mtrlcus <> 0 THEN
  5728. for_buytask = True
  5729. EXIT
  5730. END IF
  5731. NEXT
  5732. IF for_buytask = True THEN //按订单
  5733. IF MessageBox('询问','由于发货单按订单收货 或者 使用客户库存,更换客户会删除全部明细,是否继续?',question!,yesno!) = 2 THEN
  5734. rslt = 0
  5735. RETURN rslt
  5736. END IF
  5737. dw_child.Reset()
  5738. This.TriggerEvent("insert_childrow")
  5739. ELSE //不按订单
  5740. IF sys_option_hide_ware = 0 THEN //如果隐藏仓库的,直接选物料
  5741. wf_cusprice_mtrlware(INS_RT_STRU)
  5742. wf_cusprice_in(INS_RT_STRU)
  5743. ELSE
  5744. wf_cusprice_mtrl(S_INSCUST2)
  5745. wf_cusprice_in(S_INSCUST2)
  5746. END IF
  5747. END IF
  5748. END IF
  5749. RETURN rslt
  5750. end function
  5751. public function integer wf_get_cusid (ref long arg_cusid);Long ll_cusid
  5752. ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  5753. IF IsNull(ll_cusid) Or ll_cusid = 0 THEN
  5754. This.TriggerEvent("ue_f9")
  5755. ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  5756. IF IsNull(ll_cusid) Or ll_cusid = 0 THEN
  5757. MessageBox('提示','请先选择客户',information!,OK!)
  5758. RETURN 0
  5759. END IF
  5760. END IF
  5761. arg_cusid = ll_cusid
  5762. RETURN 1
  5763. end function
  5764. public subroutine wf_cusprice_mtrlware (ref s_mtrlware_noalloc_array ins_rt_stru);datastore dw_mtrlwaremx
  5765. Long i,ls_i,chC,ll_mtrlwareid[]
  5766. //s_mtrlware_noalloc_array INS_RT_STRU wf_cusprice_mtrlware
  5767. dw_mtrlwaremx = Create datastore
  5768. dw_mtrlwaremx.DataObject = 'dw_mtrlware_noalloc_storageid_ch_cusprice'
  5769. dw_mtrlwaremx.SetTransObject(sqlca)
  5770. FOR i = 1 To dw_child.RowCount()
  5771. ll_mtrlwareid[i] = dw_child.Object.u_outwaremx_mtrlwareid[i]
  5772. NEXT
  5773. dw_mtrlwaremx.Retrieve(ll_mtrlwareid)
  5774. FOR i = 1 To dw_mtrlwaremx.RowCount()
  5775. dw_mtrlwaremx.SelectRow(i,True)
  5776. NEXT
  5777. FOR ls_i = 1 To dw_mtrlwaremx.RowCount()
  5778. IF dw_mtrlwaremx.IsSelected(ls_i) THEN
  5779. chC++
  5780. INS_RT_STRU.mtrlwareid[chC] = dw_mtrlwaremx.Object.mtrlwareid[ls_i]
  5781. INS_RT_STRU.mtrlid[chC] = dw_mtrlwaremx.Object.mtrlid[ls_i]
  5782. INS_RT_STRU.u_mtrldef_mtrlcode[chC] = dw_mtrlwaremx.Object.u_mtrldef_mtrlcode[ls_i]
  5783. INS_RT_STRU.u_mtrldef_mtrlname[chC] = dw_mtrlwaremx.Object.u_mtrldef_mtrlname[ls_i]
  5784. INS_RT_STRU.u_mtrldef_mtrlmode[chC] = dw_mtrlwaremx.Object.mtrlmode[ls_i]
  5785. INS_RT_STRU.u_mtrldef_unit[chC] = dw_mtrlwaremx.Object.u_mtrldef_unit[ls_i]
  5786. INS_RT_STRU.u_mtrldef_prdpackcode[chC] = dw_mtrlwaremx.Object.u_mtrldef_prdpackcode[ls_i]
  5787. INS_RT_STRU.u_mtrldef_packqty[chC] = dw_mtrlwaremx.Object.u_mtrldef_packqty[ls_i]
  5788. INS_RT_STRU.noallocqty[chC] = dw_mtrlwaremx.Object.noallocqty[ls_i]
  5789. INS_RT_STRU.cost[chC] = dw_mtrlwaremx.Object.cost[ls_i]
  5790. INS_RT_STRU.planprice[chC] = dw_mtrlwaremx.Object.planprice[ls_i]
  5791. INS_RT_STRU.storageid[chC] = dw_mtrlwaremx.Object.storageid[ls_i]
  5792. INS_RT_STRU.plancode[chC] = dw_mtrlwaremx.Object.plancode[ls_i]
  5793. INS_RT_STRU.status[chC] = dw_mtrlwaremx.Object.u_mtrlware_status[ls_i]
  5794. INS_RT_STRU.sptid[chC] = dw_mtrlwaremx.Object.u_mtrlware_sptid[ls_i]
  5795. INS_RT_STRU.dxflag[chC] = dw_mtrlwaremx.Object.u_mtrlware_dxflag[ls_i]
  5796. INS_RT_STRU.noauditingqty[chC] = dw_mtrlwaremx.Object.noauditingqty[ls_i]
  5797. INS_RT_STRU.woodcode[chC] = dw_mtrlwaremx.Object.u_mtrlware_woodcode[ls_i]
  5798. INS_RT_STRU.pcode[chC] = dw_mtrlwaremx.Object.u_mtrlware_pcode[ls_i]
  5799. INS_RT_STRU.u_mtrldef_mtrlsectype[chC] = dw_mtrlwaremx.Object.u_mtrldef_mtrlsectype[ls_i]
  5800. INS_RT_STRU.u_mtrldef_zxmtrlmode[chC] = dw_mtrlwaremx.Object.u_mtrldef_zxmtrlmode[ls_i]
  5801. INS_RT_STRU.sptcode[chC] = dw_mtrlwaremx.Object.sptcode[ls_i]
  5802. INS_RT_STRU.sptname[chC] = dw_mtrlwaremx.Object.sptname[ls_i]
  5803. INS_RT_STRU.noallocaddqty[chC] = dw_mtrlwaremx.Object.noallocaddqty[ls_i]
  5804. INS_RT_STRU.noauditingaddqty[chC] = dw_mtrlwaremx.Object.noauditingaddqty[ls_i]
  5805. INS_RT_STRU.wareamt[chC] = dw_mtrlwaremx.Object.wareamt[ls_i]
  5806. INS_RT_STRU.barcode[chC] = dw_mtrlwaremx.Object.u_mtrldef_barcode[ls_i]
  5807. IF IsNull(INS_RT_STRU.noauditingqty[chC]) THEN INS_RT_STRU.noauditingqty[ls_i] = 0
  5808. IF IsNull(INS_RT_STRU.noauditingaddqty[chC]) THEN INS_RT_STRU.noauditingaddqty[ls_i] = 0
  5809. END IF
  5810. NEXT
  5811. Destroy dw_mtrlwaremx
  5812. end subroutine
  5813. public subroutine wf_cusprice_in (s_mtrlware_noalloc_array ins_rt_stru);//用于选择明细内容,被F8[默认]\dw_child.doubleclicked调用
  5814. Long i
  5815. IF Not dw_edit_mode THEN RETURN
  5816. IF dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 THEN RETURN
  5817. //IF flag = 1 THEN RETURN
  5818. Long child_row,ins_storageid = 0,cnt_childdw
  5819. Long ll_moneyid
  5820. Long ls_null
  5821. Long chc = 1,ls_j,ll_custid
  5822. Decimal lde_rate
  5823. s_edit_index_tran s_tranf8 //传递参数使用
  5824. SetNull(ls_null)
  5825. dw_uc.AcceptText()
  5826. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  5827. IF ll_moneyid = 0 Or IsNull(ll_moneyid) THEN
  5828. MessageBox('提示','请先选择币种',information!,OK!)
  5829. RETURN
  5830. END IF
  5831. IF wf_get_cusid(ll_custid) = 0 THEN
  5832. RETURN
  5833. END IF
  5834. dw_uc.AcceptText()
  5835. dw_child.AcceptText()
  5836. child_row = dw_child.GetRow()
  5837. IF sys_option_hide_ware = 0 THEN //如果隐藏仓库的,直接选物料
  5838. ins_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  5839. IF ins_storageid = 0 Or IsNull(ins_storageid) THEN
  5840. MessageBox('提示','请先选择仓库',information!,OK!)
  5841. RETURN
  5842. END IF
  5843. Int li_if_cus_mtrlware
  5844. SELECT balctype INTO :li_if_cus_mtrlware
  5845. FROM u_storage
  5846. Where storageid = :ins_storageid;
  5847. IF sqlca.SQLCode <> 0 THEN
  5848. MessageBox('错误','查询仓库是否使用客户库存失败',stopsign!,OK!)
  5849. RETURN
  5850. END IF
  5851. //ll_custid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  5852. //初始化参数
  5853. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  5854. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  5855. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  5856. s_tranf8.b_long = 0
  5857. IF li_if_cus_mtrlware = 1 THEN
  5858. s_tranf8.c_long = ll_custid
  5859. ELSE
  5860. s_tranf8.c_long = -1
  5861. END IF
  5862. IF Not IsValid(w_mtrlware_storageid_ch) THEN
  5863. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  5864. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  5865. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  5866. s_tranf8.d_long = ins_storageid
  5867. IF dw_child.GetRow() > 0 THEN s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()])
  5868. // OpenWithParm(w_mtrlware_storageid_ch,s_tranf8)
  5869. s_mtrlware_noalloc_array S_INSCUST
  5870. S_INSCUST = ins_rt_stru
  5871. FOR ls_j = 1 To UpperBound(S_INSCUST.mtrlwareid)
  5872. IF S_INSCUST.mtrlwareid[ls_j] > 0 THEN
  5873. FOR i = 1 To dw_child.RowCount()
  5874. IF S_INSCUST.mtrlwareid[ls_j] = dw_child.Object.u_outwaremx_mtrlwareid[i] THEN
  5875. child_row = i
  5876. EXIT
  5877. END IF
  5878. NEXT
  5879. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[ls_j]
  5880. dw_child.Object.u_outwaremx_mtrlid[child_row] = S_INSCUST.mtrlid[ls_j]
  5881. dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.u_mtrldef_mtrlcode[ls_j]
  5882. dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.u_mtrldef_mtrlname[ls_j]
  5883. dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST.u_mtrldef_mtrlmode[ls_j]
  5884. dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j]
  5885. IF sys_option_outware_Sale_ware = 0 THEN
  5886. // dw_child.Object.u_outwaremx_saleqty[child_row] = 0
  5887. // dw_child.Object.u_outwaremx_uqty[child_row] = 0
  5888. // dw_child.Object.u_outwaremx_addqty[child_row] = 0
  5889. ELSEIF sys_option_outware_Sale_ware = 1 THEN
  5890. dw_child.Object.u_outwaremx_saleqty[child_row] = S_INSCUST.noallocqty[ls_j]- S_INSCUST.noauditingqty[ls_j]
  5891. dw_child.Object.u_outwaremx_uqty[child_row] = S_INSCUST.noallocqty[ls_j]- S_INSCUST.noauditingqty[ls_j]
  5892. dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j]- S_INSCUST.noauditingaddqty[ls_j]
  5893. ELSE
  5894. dw_child.Object.u_outwaremx_saleqty[child_row] = S_INSCUST.noallocqty[ls_j]
  5895. dw_child.Object.u_outwaremx_uqty[child_row] = S_INSCUST.noallocqty[ls_j]
  5896. dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j]
  5897. END IF
  5898. dw_child.Object.u_outwaremx_planprice[child_row] = S_INSCUST.planprice[ls_j]
  5899. dw_child.Object.u_outwaremx_storageid[child_row] = S_INSCUST.storageid[ls_j]
  5900. dw_child.Object.u_outwaremx_plancode[child_row] = S_INSCUST.plancode[ls_j]
  5901. dw_child.Object.u_outwaremx_dxflag[child_row] = S_INSCUST.dxflag[ls_j]
  5902. dw_child.Object.u_outwaremx_status[child_row] = S_INSCUST.status[ls_j]
  5903. dw_child.Object.u_outwaremx_woodcode[child_row] = S_INSCUST.woodcode[ls_j]
  5904. dw_child.Object.u_outwaremx_pcode[child_row] = S_INSCUST.pcode[ls_j]
  5905. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST.u_mtrldef_zxmtrlmode[ls_j]
  5906. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST.u_mtrldef_mtrlsectype[ls_j]
  5907. dw_child.Object.u_outwaremx_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j]
  5908. f_find_unitrate(S_INSCUST.mtrlid[ls_j], S_INSCUST.u_mtrldef_unit[ls_j], lde_rate)
  5909. dw_child.Object.u_outwaremx_rate[child_row] = lde_rate
  5910. wf_get_price(child_row)
  5911. dw_child.Object.u_mtrldef_curware_qty[child_row] = S_INSCUST.noallocqty[ls_j]
  5912. dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null
  5913. dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null
  5914. END IF
  5915. NEXT
  5916. END IF
  5917. ELSE
  5918. END IF
  5919. IF sys_option_outware_if_saleqty = 0 THEN
  5920. dw_child.SetColumn('u_outwaremx_uqty')
  5921. ELSE
  5922. dw_child.SetColumn('u_outwaremx_saleqty')
  5923. END IF
  5924. dw_child.SetRedraw(True)
  5925. dw_child.SetFocus()
  5926. ////////////////////////////////// //
  5927. end subroutine
  5928. public subroutine wf_cusprice_mtrl (ref s_mtrldef_array ins_rt_stru);datastore dw_mtrlmx
  5929. Long i,ls_i,chC,ll_mtrl[]
  5930. dw_mtrlmx = Create datastore
  5931. dw_mtrlmx.DataObject = 'dw_mtrl_index_sptprice'
  5932. dw_mtrlmx.SetTransObject(sqlca)
  5933. if dw_child.RowCount() > 0 then
  5934. FOR i = 1 To dw_child.RowCount()
  5935. IF sys_option_hide_ware = 0 THEN //隐藏仓库
  5936. ll_mtrl[i] = dw_child.Object.u_outwaremx_mtrlid[i]
  5937. ELSE
  5938. ll_mtrl[i] = dw_child.Object.u_outwaremx_mtrlid[i]
  5939. END IF
  5940. NEXT
  5941. end if
  5942. dw_mtrlmx.Retrieve(ll_mtrl)
  5943. FOR i = 1 To dw_mtrlmx.RowCount()
  5944. dw_mtrlmx.SelectRow(i,True)
  5945. NEXT
  5946. FOR ls_i = 1 To dw_mtrlmx.RowCount()
  5947. IF dw_mtrlmx.IsSelected(ls_i) THEN
  5948. chC++
  5949. ins_rt_stru.mtrlid[chC] = dw_mtrlmx.Object.mtrlid[ls_i]
  5950. ins_rt_stru.mtrlname[chC] = dw_mtrlmx.Object.mtrlname[ls_i]
  5951. ins_rt_stru.mtrlengname[chC] = dw_mtrlmx.Object.mtrlengname[ls_i]
  5952. ins_rt_stru.mtrlcode[chC] = dw_mtrlmx.Object.mtrlcode[ls_i]
  5953. ins_rt_stru.mtrltype[chC] = dw_mtrlmx.Object.mtrltype[ls_i]
  5954. ins_rt_stru.mtrlmode[chC] = dw_mtrlmx.Object.mtrlmode[ls_i]
  5955. ins_rt_stru.unit[chC] = dw_mtrlmx.Object.unit[ls_i]
  5956. ins_rt_stru.storageid[chC] = dw_uc.Object.storageid[dw_uc.GetRow()]
  5957. ins_rt_stru.planprice[chC] = dw_mtrlmx.Object.planprice[ls_i]
  5958. ins_rt_stru.dscrp[chC] = dw_mtrlmx.Object.dscrp[ls_i]
  5959. ins_rt_stru.mtrlsectype[chC] = dw_mtrlmx.Object.mtrlsectype[ls_i]
  5960. ins_rt_stru.lmbuyprice[chC] = dw_mtrlmx.Object.lmbuyprice[ls_i]
  5961. ins_rt_stru.lmsaleprice[chC] = dw_mtrlmx.Object.lmsaleprice[ls_i]
  5962. ins_rt_stru.prdpackcode[chC] = dw_mtrlmx.Object.prdpackcode[ls_i]
  5963. ins_rt_stru.packqty[chC] = dw_mtrlmx.Object.packqty[ls_i]
  5964. ins_rt_stru.zxmtrlmode[chC] = dw_mtrlmx.Object.zxmtrlmode[ls_i]
  5965. ins_rt_stru.unit_buy[chC] = dw_mtrlmx.Object.u_mtrldef_unit_buy[ls_i]
  5966. ins_rt_stru.rate_buy[chC] = dw_mtrlmx.Object.u_mtrldef_rate_buy[ls_i]
  5967. ins_rt_stru.unit_scll[chC] = dw_mtrlmx.Object.u_mtrldef_unit_scll[ls_i]
  5968. ins_rt_stru.rate_scll[chC] = dw_mtrlmx.Object.u_mtrldef_rate_scll[ls_i]
  5969. ins_rt_stru.unit_sale[chC] = dw_mtrlmx.Object.u_mtrldef_unit_sale[ls_i]
  5970. ins_rt_stru.rate_sale[chC] = dw_mtrlmx.Object.u_mtrldef_rate_sale[ls_i]
  5971. IF dw_mtrlmx.Object.u_mtrldef_unit_buy[chC] = '' THEN
  5972. ins_rt_stru.unit_buy[chC] = dw_mtrlmx.Object.unit[ls_i]
  5973. ins_rt_stru.rate_buy[chC] = 1
  5974. ELSE
  5975. ins_rt_stru.unit_buy[ls_i] = dw_mtrlmx.Object.u_mtrldef_unit_buy[ls_i]
  5976. ins_rt_stru.rate_buy[chC] = dw_mtrlmx.Object.u_mtrldef_rate_buy[ls_i]
  5977. END IF
  5978. IF dw_mtrlmx.Object.u_mtrldef_unit_scll[chC] = '' THEN
  5979. ins_rt_stru.unit_scll[chC] = dw_mtrlmx.Object.unit[ls_i]
  5980. ins_rt_stru.rate_scll[chC] = 1
  5981. ELSE
  5982. ins_rt_stru.unit_scll[chC] = dw_mtrlmx.Object.u_mtrldef_unit_scll[ls_i]
  5983. ins_rt_stru.rate_scll[chC] = dw_mtrlmx.Object.u_mtrldef_rate_scll[ls_i]
  5984. END IF
  5985. IF dw_mtrlmx.Object.u_mtrldef_unit_sale[chC] = '' THEN
  5986. ins_rt_stru.unit_sale[chC] = dw_mtrlmx.Object.unit[ls_i]
  5987. ins_rt_stru.rate_sale[chC] = 1
  5988. ELSE
  5989. ins_rt_stru.unit_sale[chC] = dw_mtrlmx.Object.u_mtrldef_unit_sale[ls_i]
  5990. ins_rt_stru.rate_sale[chC] = dw_mtrlmx.Object.u_mtrldef_rate_sale[ls_i]
  5991. END IF
  5992. ins_rt_stru.ifcustom[chC] = dw_mtrlmx.Object.u_mtrldef_ifcustom[ls_i]
  5993. ins_rt_stru.statusflag[chC] = dw_mtrlmx.Object.statusflag[ls_i]
  5994. ins_rt_stru.woodcodeflag[chC] = dw_mtrlmx.Object.woodcodeflag[ls_i]
  5995. ins_rt_stru.pcodeflag[chC] = dw_mtrlmx.Object.pcodeflag[ls_i]
  5996. ins_rt_stru.statustype[chC] = dw_mtrlmx.Object.u_mtrldef_statustype[ls_i]
  5997. ins_rt_stru.woodcodetype[chC] = dw_mtrlmx.Object.u_mtrldef_woodcodetype[ls_i]
  5998. ins_rt_stru.pcodetype[chC] = dw_mtrlmx.Object.u_mtrldef_pcodetype[ls_i]
  5999. ins_rt_stru.status_check[chC] = dw_mtrlmx.Object.u_mtrldef_status_check[ls_i]
  6000. ins_rt_stru.woodcode_check[chC] = dw_mtrlmx.Object.u_mtrldef_woodcode_check[ls_i]
  6001. ins_rt_stru.pcode_check[chC] = dw_mtrlmx.Object.u_mtrldef_pcode_check[ls_i]
  6002. ins_rt_stru.configcode[chC] = dw_mtrlmx.Object.u_mtrldef_configcode[ls_i]
  6003. ins_rt_stru.configname[chC] = dw_mtrlmx.Object.u_mtrldef_configname[ls_i]
  6004. ins_rt_stru.configcodetype[chC] = dw_mtrlmx.Object.u_mtrldef_configcodetype[ls_i]
  6005. ins_rt_stru.mtrlcolor[chC] = dw_mtrlmx.Object.u_mtrldef_mtrlcolor[ls_i]
  6006. ins_rt_stru.status_config[chC] = dw_mtrlmx.Object.u_mtrldef_status_config[ls_i]
  6007. ins_rt_stru.woodcode_config[chC] = dw_mtrlmx.Object.u_mtrldef_woodcode_config[ls_i]
  6008. ins_rt_stru.pcode_config[chC] = dw_mtrlmx.Object.u_mtrldef_pcode_config[ls_i]
  6009. IF ins_rt_stru.statusflag[chC] = 4 THEN
  6010. ins_rt_stru.status[chC] = dw_mtrlmx.Object.u_mtrldef_status_config[ls_i]
  6011. ELSE
  6012. ins_rt_stru.status[chC] = ""
  6013. END IF
  6014. IF ins_rt_stru.woodcodeflag[chC] = 4 THEN
  6015. ins_rt_stru.woodcode[chC] = dw_mtrlmx.Object.u_mtrldef_woodcode_config[ls_i]
  6016. ELSE
  6017. ins_rt_stru.woodcode[chC] = ""
  6018. END IF
  6019. IF ins_rt_stru.pcodeflag[chC] = 4 THEN
  6020. ins_rt_stru.pcode[chC] = dw_mtrlmx.Object.u_mtrldef_pcode_config[ls_i]
  6021. ELSE
  6022. ins_rt_stru.pcode[chC] = ""
  6023. END IF
  6024. ins_rt_stru.usermtrlmode[chC] = dw_mtrlmx.Object.u_mtrldef_usermtrlmode[ls_i]
  6025. ins_rt_stru.buyunit[chC] = dw_mtrlmx.Object.u_mtrldef_buyunit[ls_i]
  6026. ins_rt_stru.wfjgunit[chC] = dw_mtrlmx.Object.u_mtrldef_wfjgunit[ls_i]
  6027. ins_rt_stru.scllunit[chC] = dw_mtrlmx.Object.u_mtrldef_scllunit[ls_i]
  6028. ins_rt_stru.saleunit[chC] = dw_mtrlmx.Object.u_mtrldef_saleunit[ls_i]
  6029. ins_rt_stru.buydec[chC] = dw_mtrlmx.Object.u_mtrldef_buydec[ls_i]
  6030. ins_rt_stru.wfjgdec[chC] = dw_mtrlmx.Object.u_mtrldef_wfjgdec[ls_i]
  6031. ins_rt_stru.sclldec[chC] = dw_mtrlmx.Object.u_mtrldef_sclldec[ls_i]
  6032. ins_rt_stru.saledec[chC] = dw_mtrlmx.Object.u_mtrldef_saledec[ls_i]
  6033. ins_rt_stru.ifpack[chC] = dw_mtrlmx.Object.u_mtrldef_ifpack[ls_i]
  6034. ins_rt_stru.ifpackpro[chC] = dw_mtrlmx.Object.u_mtrldef_ifpackpro[ls_i]
  6035. ins_rt_stru.ifpackpz[chC] = dw_mtrlmx.Object.u_mtrldef_ifpackpz[ls_i]
  6036. ins_rt_stru.ifpackpro2[chC] = dw_mtrlmx.Object.u_mtrldef_ifpackpro2[ls_i]
  6037. ins_rt_stru.ifpacktype[chC] = dw_mtrlmx.Object.u_mtrldef_ifpacktype[ls_i]
  6038. ins_rt_stru.net_weight[chC] = dw_mtrlmx.Object.net_weight[ls_i]
  6039. ins_rt_stru.gross_weight[chC] = dw_mtrlmx.Object.gross_weight[ls_i]
  6040. ins_rt_stru.cubage[chC] = dw_mtrlmx.Object.cubage[ls_i]
  6041. ins_rt_stru.handtype[chC] = dw_mtrlmx.Object.handtype[ls_i]
  6042. ins_rt_stru.mtrltypeid[chC] = dw_mtrlmx.Object.mtrltypeid[ls_i]
  6043. ins_rt_stru.mtrlorigin[chC] = dw_mtrlmx.Object.mtrlorigin[ls_i]
  6044. ins_rt_stru.mtrlprp[chC] = dw_mtrlmx.Object.mtrlprp[ls_i]
  6045. END IF
  6046. NEXT
  6047. Destroy dw_mtrlmx
  6048. end subroutine
  6049. public subroutine wf_cusprice_in (s_mtrldef_array ins_rt_stru);//用于选择明细内容,被F8[默认]\dw_child.doubleclicked调用
  6050. Long i
  6051. IF Not dw_edit_mode THEN RETURN
  6052. IF dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 THEN RETURN
  6053. //IF flag = 1 THEN RETURN
  6054. Long child_row,ins_storageid = 0,cnt_childdw
  6055. Long ll_moneyid
  6056. Long ls_null
  6057. Long chc = 1,ls_j,ll_custid
  6058. Decimal lde_rate
  6059. s_edit_index_tran s_tranf8 //传递参数使用
  6060. SetNull(ls_null)
  6061. dw_uc.AcceptText()
  6062. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  6063. IF ll_moneyid = 0 Or IsNull(ll_moneyid) THEN
  6064. MessageBox('提示','请先选择币种',information!,OK!)
  6065. RETURN
  6066. END IF
  6067. IF wf_get_cusid(ll_custid) = 0 THEN
  6068. RETURN
  6069. END IF
  6070. dw_uc.AcceptText()
  6071. dw_child.AcceptText()
  6072. child_row = dw_child.GetRow()
  6073. IF sys_option_hide_ware = 0 THEN //如果隐藏仓库的,直接选物料
  6074. ELSE
  6075. IF Not IsValid(W_mtrldef_edit) THEN
  6076. //传递参数使用
  6077. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  6078. s_tranf8.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  6079. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  6080. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  6081. s_tranf8.if_select_all = True //多选
  6082. s_tranf8.b_long = -1 //选采购
  6083. s_tranf8.c_long = -1
  6084. IF dw_child.GetRow() > 0 THEN s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()])
  6085. // OpenWithParm(W_mtrldef_edit,s_tranf8) //调用
  6086. s_mtrldef_array S_INSCUST2
  6087. S_INSCUST2 = ins_rt_stru //接受返回结构
  6088. FOR ls_j = 1 To UpperBound(S_INSCUST2.mtrlid)
  6089. IF S_INSCUST2.mtrlid[ls_j] > 0 THEN //正常返回值则可以取以下值
  6090. IF dw_child.GetRow() > 0 THEN
  6091. IF dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 0 THEN
  6092. child_row = dw_child.InsertRow (0)
  6093. ELSE
  6094. child_row = dw_child.GetRow()
  6095. END IF
  6096. ELSE
  6097. child_row = dw_child.InsertRow (0)
  6098. END IF
  6099. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = 0
  6100. dw_child.Object.u_outwaremx_mtrlid[child_row] = S_INSCUST2.mtrlid[ls_j]
  6101. dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST2.mtrlcode[ls_j]
  6102. dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST2.mtrlname[ls_j]
  6103. dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST2.mtrlmode[ls_j]
  6104. dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST2.unit[ls_j]
  6105. dw_child.Object.u_outwaremx_saleqty[child_row] = 0
  6106. dw_child.Object.u_outwaremx_uqty[child_row] = 0
  6107. dw_child.Object.u_outwaremx_addqty[child_row] = 0
  6108. dw_child.Object.u_outwaremx_planprice[child_row] = S_INSCUST2.planprice[ls_j]
  6109. dw_child.Object.u_outwaremx_storageid[child_row] = 0
  6110. dw_child.Object.u_outwaremx_plancode[child_row] = ''
  6111. //dw_child.Object.u_outwaremx_dxflag[child_row] = 0
  6112. dw_child.Object.u_outwaremx_status[child_row] = S_INSCUST2.status[ls_j]
  6113. dw_child.Object.u_outwaremx_woodcode[child_row] = S_INSCUST2.woodcode[ls_j]
  6114. dw_child.Object.u_outwaremx_pcode[child_row] = S_INSCUST2.pcode[ls_j]
  6115. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST2.zxmtrlmode[ls_j]
  6116. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST2.mtrlsectype[ls_j]
  6117. dw_child.Object.u_outwaremx_unit[child_row] = S_INSCUST2.unit[ls_j]
  6118. f_find_unitrate(S_INSCUST2.mtrlid[ls_j], S_INSCUST2.unit[ls_j], lde_rate)
  6119. dw_child.Object.u_outwaremx_rate[child_row] = lde_rate
  6120. wf_get_price(child_row)
  6121. dw_child.Object.u_mtrldef_curware_qty[child_row] = ls_null
  6122. dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null
  6123. dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null
  6124. END IF
  6125. NEXT
  6126. END IF
  6127. END IF
  6128. IF sys_option_outware_if_saleqty = 0 THEN
  6129. dw_child.SetColumn('u_outwaremx_uqty')
  6130. ELSE
  6131. dw_child.SetColumn('u_outwaremx_saleqty')
  6132. END IF
  6133. dw_child.SetRedraw(True)
  6134. dw_child.SetFocus()
  6135. ////////////////////////////////// //
  6136. end subroutine
  6137. public function integer wf_check_qtyandaddqty (ref string arg_msg);Long i
  6138. Int rslt = 1
  6139. Long lk_mtrlid,lk_ifcheckaddqty
  6140. String ls_strcheckaddqty,ls_mtrlmode
  6141. Decimal dec_qty,dec_addqty,dec_danpackqty,dec_packqty,dec_rebate
  6142. String ls_status,ls_woodcode,ls_pcode,ls_mtrlsectype,ls_zxmtrlmode
  6143. Long num
  6144. s_cmpl_qty s_cmpl
  6145. s_cmpl.addvalue = 1
  6146. String ls_msg
  6147. dw_child.AcceptText()
  6148. FOR i = 1 To dw_child.RowCount()
  6149. lk_mtrlid = dw_child.Object.u_outwaremx_mtrlid[i]
  6150. dec_qty = dw_child.Object.u_outwaremx_uqty[i]
  6151. dec_addqty = dw_child.Object.u_outwaremx_addqty[i]
  6152. ls_status = dw_child.Object.u_outwaremx_status[i]
  6153. ls_woodcode = dw_child.Object.u_outwaremx_woodcode[i]
  6154. ls_pcode = dw_child.Object.u_outwaremx_pcode[i]
  6155. ls_mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[i]
  6156. ls_zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[i]
  6157. ls_mtrlmode = dw_child.Object.u_mtrldef_mtrlmode[i]
  6158. dec_danpackqty=dw_child.Object.u_mtrldef_packqty[i]
  6159. dec_packqty=dw_child.Object.u_outwaremx_packqty[i]
  6160. dec_rebate = dw_child.Object.u_outwaremx_rebate[i]
  6161. SELECT ifcheckaddqty,strcheckaddqty,strcheck_digit Into :lk_ifcheckaddqty,:ls_strcheckaddqty,:num From u_mtrldef Where mtrlid = :lk_mtrlid;
  6162. s_cmpl.formula = ls_strcheckaddqty
  6163. s_cmpl.status = ls_status
  6164. s_cmpl.woodcode = ls_woodcode
  6165. s_cmpl.pcode = ls_pcode
  6166. s_cmpl.mtrlsectype = ls_mtrlsectype
  6167. s_cmpl.zxmtrlmode = ls_zxmtrlmode
  6168. s_cmpl.addqty = dec_addqty
  6169. s_cmpl.num = num
  6170. s_cmpl.oldqty = dec_qty
  6171. s_cmpl.mtrlsectype = ls_mtrlsectype
  6172. s_cmpl.zxmtrlmode = ls_zxmtrlmode
  6173. s_cmpl.packqty = dec_packqty
  6174. s_cmpl.rebate = dec_rebate
  6175. //如果有填写数量 则 只检查数量和辅数的关系
  6176. Decimal dec_tmp
  6177. IF lk_mtrlid > 0 And dec_qty <> 0 THEN
  6178. IF f_cmpl_qty_check(s_cmpl,dec_tmp,ls_msg) <> TRUE THEN
  6179. rslt = 0
  6180. arg_msg = '根据物料资料 数量和辅数的关系定义,第' + String(i) + '行不符合该项定义,公式是 ' + ls_strcheckaddqty
  6181. GOTO ext
  6182. END IF
  6183. END IF
  6184. //如果没有填写数量 则 由辅数计算出数量
  6185. IF lk_mtrlid > 0 And dec_qty = 0 THEN
  6186. IF f_cmpl_qty(s_cmpl,dec_tmp,ls_msg) = 0 THEN
  6187. rslt = 0
  6188. arg_msg += '根据物料资料 数量和辅数的关系定义,第' + String(i) + '行由辅数计算出数量为0,请检查资料定义公式是 ' + ls_strcheckaddqty
  6189. goto ext
  6190. END IF
  6191. dw_child.Object.u_outwaremx_uqty[i] = dec_tmp
  6192. END IF
  6193. NEXT
  6194. dw_child.AcceptText()
  6195. ext:
  6196. RETURN rslt
  6197. end function
  6198. public function integer wf_enamt_facechg ();//IF ii_enamt_edit = 0 THEN //金额计算单价 为 false
  6199. // dw_child.Modify('enamt.protect = 1~t enamt.Color = 0')
  6200. // dw_child.Modify('enamt_t.Color = 0')
  6201. //
  6202. //
  6203. //
  6204. //
  6205. //ELSEIF ii_enamt_edit = 1 THEN
  6206. //
  6207. // dw_child.Modify('enamt.protect = 0~t enamt.Color = "0~trgb(0,0,255)"')
  6208. // dw_child.Modify('enamt_t.Color = "0~trgb(0,0,255)"')
  6209. //
  6210. //
  6211. //
  6212. //END IF
  6213. IF cbx_enamt_edit.Checked = True Or cbx_zk.Checked = True THEN
  6214. dw_child.Modify('enamt.protect = 0~t enamt.Color = "0~trgb(0,0,255)"')
  6215. dw_child.Modify('enamt_t.Color = "0~trgb(0,0,255)"')
  6216. ELSE
  6217. dw_child.Modify('enamt.protect = 1~t enamt.Color = 0')
  6218. dw_child.Modify('enamt_t.Color = 0')
  6219. END IF
  6220. IF ii_enamt_notax_edit = 0 THEN //录入不含税单价 为 false
  6221. dw_child.Modify('enprice_notax.protect = 1~t enprice_notax.Color = "0~trgb(0,0,0)"')
  6222. dw_child.Modify('enprice_notax_t.Color = "0~trgb(0,0,0)"')
  6223. dw_child.Modify('enamt_notax.protect =1~t enamt_notax.Color = 0') //现在不录入 不含税金额
  6224. ELSEIF ii_enamt_notax_edit = 1 THEN
  6225. dw_child.Modify('enprice_notax.protect = 0~t enprice_notax.Color = "0~trgb(0,0,255)"')
  6226. dw_child.Modify('enprice_notax_t.Color = "0~trgb(0,0,255)"')
  6227. dw_child.Modify('enamt_notax.protect =1~t enamt_notax.Color = 0') //现在不录入 不含税金额
  6228. END IF
  6229. RETURN 1
  6230. end function
  6231. public function integer wf_ck_taobao (string arg_outwarecode);Int rslt = 1
  6232. Long cnt
  6233. String ls_msg
  6234. IF Mid(sys_pwrstr,1794,1) = '0' THEN
  6235. rslt = 1
  6236. GOTO ext
  6237. END IF
  6238. SELECT count(*) INTO :cnt
  6239. FROM u_outwaremx INNER JOIN
  6240. u_outware ON u_outwaremx.scid = u_outware.scid AND u_outwaremx.outwareid = u_outware.outwareid INNER JOIN
  6241. u_SaleTaskMx ON u_outwaremx.relid = u_SaleTaskMx.TaskID AND u_outwaremx.scid = u_SaleTaskMx.scid AND
  6242. u_outwaremx.relprintid = u_SaleTaskMx.printid INNER JOIN
  6243. u_SaleTask ON u_SaleTaskMx.scid = u_SaleTask.scid AND u_SaleTaskMx.TaskID = u_SaleTask.TaskID INNER JOIN
  6244. eb_saletask_import ON u_SaleTask.TaskCode = eb_saletask_import.taskcode LEFT OUTER JOIN
  6245. tb_trade ON eb_saletask_import.tid = tb_trade.tid
  6246. WHERE (tb_trade.status NOT IN ('TRADE_FINISHED', 'WAIT_BUYER_CONFIRM_GOODS'))
  6247. And u_outware.outwarecode = :arg_outwarecode;
  6248. IF sqlca.SQLCode <> 0 THEN
  6249. ls_msg = '查询发货单淘宝已发货标志失败,操作取消。~n'+sqlca.SQLErrText
  6250. rslt = 0
  6251. GOTO ext
  6252. END IF
  6253. IF cnt > 0 THEN
  6254. ls_msg = '发货单淘宝未发货,操作取消。'
  6255. rslt = 0
  6256. GOTO ext
  6257. END IF
  6258. ext:
  6259. IF rslt = 0 THEN
  6260. MessageBox('提示',ls_msg)
  6261. END IF
  6262. RETURN rslt
  6263. end function
  6264. public subroutine wf_check_ware (long arg_scid, long arg_billid);IF sys_option_outware_ware_check = 0 THEN RETURN
  6265. LONG CNT
  6266. //IF THEN
  6267. select
  6268. count(*) into :cnt
  6269. from (select
  6270. scid,
  6271. outwareid,
  6272. mtrlid,
  6273. status,
  6274. pcode,
  6275. woodcode
  6276. from u_outwaremx
  6277. group by scid,
  6278. outwareid,
  6279. mtrlid,
  6280. status,
  6281. pcode,
  6282. woodcode) as u_outwaremx
  6283. inner join u_mtrldef on u_mtrldef.mtrlid = u_outwaremx.mtrlid
  6284. left outer join u_mtrldef_maxminqty on u_mtrldef_maxminqty.mtrlid = u_outwaremx.mtrlid
  6285. and u_mtrldef_maxminqty.status = u_outwaremx.status
  6286. and u_mtrldef_maxminqty.woodcode = u_outwaremx.woodcode
  6287. and u_mtrldef_maxminqty.pcode = u_outwaremx.pcode
  6288. left outer join (select
  6289. mtrlid,
  6290. status,
  6291. pcode,
  6292. woodcode,
  6293. sum(noallocqty) as noallocqty
  6294. from u_mtrlware
  6295. group by mtrlid,
  6296. status,
  6297. pcode,
  6298. woodcode) as u_mtrlware_a
  6299. on u_mtrldef_maxminqty.mtrlid = u_mtrlware_a.mtrlid
  6300. and u_mtrldef_maxminqty.status = u_mtrlware_a.status
  6301. and u_mtrldef_maxminqty.woodcode = u_mtrlware_a.woodcode
  6302. and u_mtrldef_maxminqty.pcode = u_mtrlware_a.pcode
  6303. where u_outwaremx.scid = :arg_scid and u_outwaremx.outwareid = :arg_billid
  6304. and ( isnull(u_mtrlware_a.noallocqty,0) - isnull(u_mtrldef_maxminqty.minqty,0)<=0);
  6305. IF CNT>0 THEN
  6306. s_edit_index_tran s_tran1
  6307. s_tran1.c_long = arg_scid
  6308. s_tran1.d_long = arg_billid
  6309. OPENWITHPARM(w_check_ware,s_tran1)
  6310. END IF
  6311. //END IF
  6312. end subroutine
  6313. public function string wf_check_sys_option_check_scanqty ();string arg_msg
  6314. long i
  6315. FOR i = 1 To dw_child.RowCount()
  6316. IF dw_child.Object.u_outwaremx_uqty[i] <> dw_child.Object.u_outwaremx_scanqty[i] THEN
  6317. arg_msg = arg_msg + '第' + String(i) + '~n '
  6318. END IF
  6319. NEXT
  6320. IF arg_msg <> '' THEN
  6321. arg_msg='系统选项267,销售发货单,销售退货单 扫描数不等于出仓数不能审核,~n'
  6322. END IF
  6323. RETURN arg_msg
  6324. end function
  6325. public function integer wf_get_pricelist_price_buchong (long arg_pricelistid, long arg_moneyid, ref string arg_msg);
  6326. Int rslt = 1
  6327. Long ll_row
  6328. Long ll_pricelistid, ll_moneyid, ll_mtrlid
  6329. String ls_status,ls_pcode,ls_woodcode,ls_unit, ls_mtrlname
  6330. String ls_msg
  6331. ll_pricelistid = arg_pricelistid
  6332. ll_moneyid = arg_moneyid
  6333. IF uo_cus_price.uof_chk_pricelistid(ll_pricelistid, ll_moneyid, arg_msg) = 0 THEN
  6334. rslt = 0
  6335. GOTO ext
  6336. END IF
  6337. s_sale_price_mx s_mx
  6338. dw_child.AcceptText()
  6339. FOR ll_row = 1 To dw_child.RowCount()
  6340. IF dw_child.Object.u_outwaremx_enprice[ll_row] <> 0 THEN CONTINUE
  6341. ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ll_row]
  6342. ls_status = dw_child.Object.u_outwaremx_status[ll_row]
  6343. ls_pcode = dw_child.Object.u_outwaremx_pcode[ll_row]
  6344. ls_woodcode = dw_child.Object.u_outwaremx_woodcode[ll_row]
  6345. ls_unit = dw_child.Object.u_outwaremx_unit[ll_row]
  6346. ls_mtrlname = dw_child.Object.u_mtrldef_mtrlname[ll_row]
  6347. IF sys_option_price_if_status = 0 THEN
  6348. ls_status = ''
  6349. ls_pcode = ''
  6350. ls_woodcode = ''
  6351. END IF
  6352. s_mx.mtrlid = ll_mtrlid
  6353. s_mx.status = ls_status
  6354. s_mx.woodcode = ls_woodcode
  6355. s_mx.pcode = ls_pcode
  6356. s_mx.unit = ls_unit
  6357. s_mx.moneyid = ll_moneyid
  6358. s_mx.pricelistid = ll_pricelistid
  6359. IF uo_cus_price.uof_get_pricelist_price(s_mx, ls_msg) = 0 THEN
  6360. arg_msg += "行:"+String(ll_row)+", "+ls_mtrlname+" ~n"
  6361. rslt = 0 //无标准价格表 或未审核
  6362. END IF
  6363. dw_child.Object.u_outwaremx_enprice[ll_row] = s_mx.price
  6364. dw_child.Object.u_outwaremx_rebate[ll_row] = s_mx.rebate
  6365. //dw_child.Object.u_saletaskmx_rate[ll_row] = obj_rate
  6366. NEXT
  6367. IF rslt = 0 THEN
  6368. arg_msg += "导入价格表售价失败或没有设置售价! ~n "
  6369. END IF
  6370. ext:
  6371. RETURN rslt
  6372. end function
  6373. public subroutine wf_set_barcode ();long i,ll_mtrlid
  6374. string ls_barcode
  6375. dw_child.accepttext()
  6376. for i=1 to dw_child.rowcount()
  6377. ll_mtrlid=0
  6378. ls_barcode=''
  6379. ll_mtrlid=dw_child.object.u_outwaremx_mtrlid[i]
  6380. select barcode into :ls_barcode from u_mtrldef where mtrlid=:ll_mtrlid;
  6381. dw_child.object.u_mtrldef_barcode[i]=ls_barcode
  6382. next
  6383. end subroutine
  6384. public subroutine wf_cmpl_amt (long row);IF row <= 0 THEN RETURN
  6385. IF row > dw_child.RowCount() THEN RETURN
  6386. dw_child.AcceptText()
  6387. Decimal lde_saleqty, lde_rebate, lde_tax, lde_enamt, lde_enamt_tax, lde_enamt_notax
  6388. IF sys_option_outware_if_saleqty = 0 THEN
  6389. lde_saleqty = dw_child.Object.u_outwaremx_uqty[row]
  6390. ELSE
  6391. lde_saleqty = dw_child.Object.u_outwaremx_saleqty[row]
  6392. END IF
  6393. lde_rebate = dw_child.Object.u_outwaremx_rebate[row]
  6394. lde_tax = dw_child.Object.u_outwaremx_tax[row]
  6395. //由金额计算单价
  6396. IF cbx_enamt_edit.Checked THEN
  6397. IF dw_child.Object.enamt[row] <> 0 THEN
  6398. IF lde_rebate <> 0 And lde_saleqty <> 0 THEN
  6399. dw_child.Object.u_outwaremx_enprice[row] = dw_child.Object.enamt[row] / lde_rebate / lde_saleqty
  6400. dw_child.Object.u_outwaremx_enamt_tax[row] = Round(dw_child.Object.enamt[row]*lde_tax/(1+lde_tax), 2)
  6401. dw_child.Object.enamt_notax[row] = dw_child.Object.enamt[row] - dw_child.Object.u_outwaremx_enamt_tax[row]
  6402. dw_child.Object.enprice_notax[row] = dw_child.Object.u_outwaremx_enprice[row] / (1 + lde_tax)
  6403. END IF
  6404. END IF
  6405. ELSEIF cbx_enamt_notax_edit.Checked THEN // 录入不含税单价
  6406. dw_child.Object.enamt_notax[row] = dw_child.Object.enprice_notax[row] * lde_saleqty //录入的是不含税单价 单价 * 数量=金额
  6407. IF dw_child.Object.enamt_notax[row] <> 0 THEN
  6408. IF lde_rebate <> 0 And lde_saleqty <> 0 THEN
  6409. dw_child.Object.u_outwaremx_enamt_tax[row] = Round(dw_child.Object.enamt_notax[row]*lde_tax, 2)
  6410. dw_child.Object.enamt[row] = dw_child.Object.u_outwaremx_enamt_tax[row] + dw_child.Object.enamt_notax[row]
  6411. dw_child.Object.u_outwaremx_enprice[row] = dw_child.Object.enamt[row] / lde_rebate / lde_saleqty
  6412. IF dw_child.Object.enprice_notax[row] = 0 THEN
  6413. dw_child.Object.enprice_notax[row] = dw_child.Object.u_outwaremx_enprice[row] / (1 + lde_tax)
  6414. END IF
  6415. END IF
  6416. END IF
  6417. ELSEIF cbx_zk.Checked THEN //录入金额计算折扣
  6418. IF dw_child.Object.u_outwaremx_enprice[row] <> 0 And dw_child.Object.u_outwaremx_saleqty[row] <> 0 THEN
  6419. dw_child.Object.u_outwaremx_rebate[row] = dw_child.Object.enamt[row] / dw_child.Object.u_outwaremx_enprice[row] / dw_child.Object.u_outwaremx_saleqty[row]
  6420. END IF
  6421. ELSE
  6422. dw_child.Object.enamt[row] = Round(dw_child.Object.u_outwaremx_enprice[row]*lde_rebate*lde_saleqty, 2)
  6423. dw_child.Object.u_outwaremx_enamt_tax[row] = Round(dw_child.Object.u_outwaremx_enprice[row]*lde_rebate*lde_saleqty*lde_tax/(1+lde_tax), 2)
  6424. dw_child.Object.enamt_notax[row] = dw_child.Object.enamt[row] - dw_child.Object.u_outwaremx_enamt_tax[row]
  6425. dw_child.Object.enprice_notax[row] = dw_child.Object.u_outwaremx_enprice[row] / (1 + lde_tax)
  6426. END IF
  6427. CHOOSE CASE sys_option_outware_sale_amt_round
  6428. CASE 0 //分
  6429. dw_child.Object.enamt[row] = Round(dw_child.Object.enamt[row], 2)
  6430. CASE 1
  6431. dw_child.Object.enamt[row] = Round(dw_child.Object.enamt[row], 1)
  6432. CASE 2
  6433. dw_child.Object.enamt[row] = Round(dw_child.Object.enamt[row], 0)
  6434. CASE 3
  6435. dw_child.Object.enamt[row] = Round(dw_child.Object.enamt[row] / 10, 2) * 10
  6436. CASE 4
  6437. dw_child.Object.enamt[row] = Round(dw_child.Object.enamt[row] / 100, 2) * 100
  6438. END CHOOSE
  6439. //20180103
  6440. // //由金额计算单价
  6441. //IF cbx_enamt_edit.Checked THEN
  6442. // IF Not cbx_enamt_notax_edit.Checked THEN
  6443. // IF dw_child.Object.enamt[row] <> 0 THEN
  6444. // IF lde_rebate <> 0 And lde_saleqty <> 0 THEN
  6445. // dw_child.Object.u_outwaremx_enprice[row] = dw_child.Object.enamt[row] / lde_rebate / lde_saleqty
  6446. // dw_child.Object.u_outwaremx_enamt_tax[row] = Round(dw_child.Object.enamt[row]*lde_tax/(1+lde_tax), 2)
  6447. // dw_child.Object.enamt_notax[row] = dw_child.Object.enamt[row] - dw_child.Object.u_outwaremx_enamt_tax[row]
  6448. // END IF
  6449. // END IF
  6450. //
  6451. //
  6452. // ELSE
  6453. // IF dw_child.Object.enamt_notax[row] <> 0 THEN
  6454. // IF lde_rebate <> 0 And lde_saleqty <> 0 THEN
  6455. // dw_child.Object.u_outwaremx_enamt_tax[row] = Round(dw_child.Object.enamt_notax[row]*lde_tax, 2)
  6456. // dw_child.Object.enamt[row] = dw_child.Object.u_outwaremx_enamt_tax[row] + dw_child.Object.enamt_notax[row]
  6457. // dw_child.Object.u_outwaremx_enprice[row] = dw_child.Object.enamt[row] / lde_rebate / lde_saleqty
  6458. // // dw_child.Object.u_outwaremx_enamt_tax[row] = Round(dw_child.Object.enamt[row]*lde_tax/(1+lde_tax), 2)
  6459. // // dw_child.Object.enamt_notax[row] = dw_child.Object.enamt[row] - dw_child.Object.u_outwaremx_enamt_tax[row]
  6460. // END IF
  6461. // END IF
  6462. // END IF
  6463. //20180103
  6464. //IF sys_option_outware_if_saleqty = 0 THEN
  6465. // IF cbx_enamt_edit.Checked THEN
  6466. // IF dw_child.Object.enamt[row] <> 0 THEN
  6467. // IF dw_child.Object.u_outwaremx_rebate[row] <> 0 And dw_child.Object.u_outwaremx_uqty[row] <> 0 THEN
  6468. // dw_child.Object.u_outwaremx_enprice[row] = dw_child.Object.enamt[row] / dw_child.Object.u_outwaremx_rebate[row] / dw_child.Object.u_outwaremx_uqty[row]
  6469. // END IF
  6470. // END IF
  6471. // ELSE
  6472. // dw_child.Object.enamt[row] = Round(dw_child.Object.u_outwaremx_enprice[row]*dw_child.Object.u_outwaremx_rebate[row]*dw_child.Object.u_outwaremx_uqty[row], 2)
  6473. // END IF
  6474. //ELSE
  6475. // IF cbx_enamt_edit.Checked THEN
  6476. //// if dw_child.GetColumnName() = 'u_outwaremx_enprice' or dw_child.GetColumnName() = 'u_outwaremx_rebate' then
  6477. //// dw_child.Object.enamt[row] = Round(dw_child.Object.u_outwaremx_enprice[row]*dw_child.Object.u_outwaremx_rebate[row]*dw_child.Object.u_outwaremx_saleqty[row], 2)
  6478. //// else
  6479. // IF dw_child.Object.enamt[row] <> 0 THEN
  6480. // IF dw_child.Object.u_outwaremx_rebate[row] <> 0 And dw_child.Object.u_outwaremx_saleqty[row] <> 0 THEN
  6481. // dw_child.Object.u_outwaremx_enprice[row] = dw_child.Object.enamt[row] / dw_child.Object.u_outwaremx_rebate[row] / dw_child.Object.u_outwaremx_saleqty[row]
  6482. // END IF
  6483. // END IF
  6484. //// end if
  6485. // ELSE
  6486. // dw_child.Object.enamt[row] = Round(dw_child.Object.u_outwaremx_enprice[row]*dw_child.Object.u_outwaremx_rebate[row]*dw_child.Object.u_outwaremx_saleqty[row], 2)
  6487. // END IF
  6488. //END IF
  6489. //
  6490. //
  6491. //
  6492. end subroutine
  6493. public subroutine wf_getcusrepamt_info_show (long arg_scid, long arg_cusid, long arg_moneyid);Int lst
  6494. long i
  6495. String cstr = '',rstr = '',msg = ''
  6496. Decimal arg_cusbalcamt,arg_cusmaxamt,arg_outrep_balcamt,arg_outrep_maxamt
  6497. String ls_moneyname
  6498. Decimal ld_canamt
  6499. Decimal lde_billamt
  6500. Decimal ld_mrate
  6501. Long ll_outwareid
  6502. //dw_child.accepttext()
  6503. SELECT name
  6504. INTO :ls_moneyname
  6505. FROM cw_currency
  6506. Where moneyid = :arg_moneyid;
  6507. IF sqlca.SQLCode <> 0 THEN
  6508. st_msg.Text = '查询币种信息失败'
  6509. st_msg.BackColor = RGB(255,255,255)
  6510. RETURN
  6511. END IF
  6512. //本单金额
  6513. // IF sys_option_mst_multimoney = 0 THEN
  6514. // ll_moneyid = f_moneyid_native()
  6515. // IF ll_moneyid = -1 THEN
  6516. // MessageBox('系统提示','查询本位币失败')
  6517. // RETURN
  6518. // END IF
  6519. // ld_mrate = dw_pageretr.Object.u_outware_mrate[dw_pageretr.GetRow()]
  6520. // ELSE
  6521. // ll_moneyid = dw_pageretr.Object.u_outware_relint_2[dw_pageretr.GetRow()]
  6522. ld_mrate = 1
  6523. // END IF
  6524. lde_billamt = dw_child.Object.enamt_sm[1] * ld_mrate - dw_uc.Object.u_outware_otheramt[dw_uc.getrow()]
  6525. //其他单未财审金额
  6526. dw_uc.AcceptText()
  6527. ll_outwareid = dw_uc.Object.u_outware_outwareid[dw_uc.GetRow()]
  6528. Decimal ld_notsecaudit_amt, ld_notsecaudit_enamt, ld_notsecaudit_billamt, ld_notsecaudit_otheramt, ld_notsecaudit_enotheramt
  6529. SELECT sum(round(u_outwaremx.saleqty * u_outwaremx.price,2)),
  6530. sum(round(u_outwaremx.saleqty * u_outwaremx.enprice * u_outwaremx.rebate,2))
  6531. INTO :ld_notsecaudit_amt,:ld_notsecaudit_enamt
  6532. FROM u_outware,u_outwaremx
  6533. WHERE u_outware.scid = u_outwaremx.scid
  6534. AND u_outware.outwareid = u_outwaremx.outwareid
  6535. AND u_outware.billtype = 1
  6536. AND u_outware.secflag = 0
  6537. AND u_outware.cusid = :arg_cusid
  6538. AND (:sys_option_scid_msttake_mstpay = 1 AND u_outware.scid = :arg_scid OR :sys_option_scid_msttake_mstpay = 0 )
  6539. And (:sys_option_mst_multimoney = 1 And u_outware.relint_2 = :arg_moneyid Or :sys_option_mst_multimoney = 0);
  6540. IF sqlca.SQLCode <> 0 THEN
  6541. ld_notsecaudit_amt = 0
  6542. ld_notsecaudit_enamt = 0
  6543. END IF
  6544. SELECT sum(round(u_outware.otheramt,2)),
  6545. sum(round(u_outware.otheramt * u_outware.mrate,2))
  6546. INTO :ld_notsecaudit_enotheramt,:ld_notsecaudit_otheramt
  6547. FROM u_outware
  6548. WHERE u_outware.billtype = 1
  6549. AND u_outware.secflag = 0
  6550. AND u_outware.cusid = :arg_cusid
  6551. AND (:sys_option_scid_msttake_mstpay = 1 AND u_outware.scid = :arg_scid OR :sys_option_scid_msttake_mstpay = 0 )
  6552. And (:sys_option_mst_multimoney = 1 And u_outware.relint_2 = :arg_moneyid Or :sys_option_mst_multimoney = 0);
  6553. IF sqlca.SQLCode <> 0 THEN
  6554. ld_notsecaudit_enotheramt = 0
  6555. ld_notsecaudit_otheramt = 0
  6556. END IF
  6557. IF IsNull(ld_notsecaudit_amt) THEN ld_notsecaudit_amt = 0
  6558. IF IsNull(ld_notsecaudit_enamt) THEN ld_notsecaudit_enamt = 0
  6559. IF IsNull(ld_notsecaudit_otheramt) THEN ld_notsecaudit_otheramt = 0
  6560. IF IsNull(ld_notsecaudit_enotheramt) THEN ld_notsecaudit_enotheramt = 0
  6561. IF sys_option_mst_multimoney = 1 THEN
  6562. ld_notsecaudit_billamt = ld_notsecaudit_enamt - ld_notsecaudit_enotheramt
  6563. ELSE
  6564. ld_notsecaudit_billamt = ld_notsecaudit_amt - ld_notsecaudit_otheramt
  6565. END IF
  6566. cur_cusrepamtflag = 0
  6567. //--------检查信用额
  6568. lst = f_getcusrepamt_info(arg_scid,arg_cusid,arg_moneyid,arg_cusbalcamt,arg_cusmaxamt,arg_outrep_balcamt,arg_outrep_maxamt)
  6569. //IF lst < 0 THEN
  6570. // msg = '提示:查询信用额及欠款失败!'
  6571. // st_msg.Text = msg
  6572. // st_msg.BackColor = RGB(255,255,255)
  6573. //
  6574. // cur_cusrepamtflag = -1
  6575. // cur_cusrepamtstr = msg
  6576. //ELSE
  6577. // //客户欠款
  6578. // IF arg_cusmaxamt > 0 THEN
  6579. // IF arg_cusbalcamt > arg_cusmaxamt THEN
  6580. // cstr = ' 客户欠款超信用额! '
  6581. // ELSEIF arg_cusbalcamt = arg_cusmaxamt THEN
  6582. // cstr = ' 客户欠款平信用额! '
  6583. // END IF
  6584. // ELSE
  6585. // IF arg_cusbalcamt > arg_cusmaxamt THEN cstr = ' 客户有欠款! '
  6586. // END IF
  6587. //
  6588. //end if
  6589. // cur_cusrepamtstr_show = '' //非编辑状态下 显示信息
  6590. cur_cusrepamtstr_show='信用额度-欠款-未财审金额:'+'~r~n' + '(' + String(arg_cusmaxamt,'###0.00') + ')' + ' - ' + '(' + String(arg_cusbalcamt,'###0.00') + ')' + ' - ' + '(' + String(ld_notsecaudit_billamt,'###0.00') + ')' + ' = ' + String(arg_cusmaxamt - arg_cusbalcamt - ld_notsecaudit_billamt ,'###0.00')
  6591. If arg_cusmaxamt - arg_cusbalcamt - ld_notsecaudit_billamt >= 0 Then
  6592. st_cusbalc_sign.Visible = False
  6593. Else
  6594. st_cusbalc_sign.Visible = True
  6595. End If
  6596. end subroutine
  6597. public subroutine wf_set_decimal_place ();Long i
  6598. IF sys_option_outware_price_amt_round = 99 THEN RETURN
  6599. //设置单价保留位数
  6600. dw_child.AcceptText()
  6601. FOR i = 1 To dw_child.RowCount()
  6602. CHOOSE CASE sys_option_outware_price_amt_round
  6603. CASE 0
  6604. dw_child.Object.u_outwaremx_enprice[i] = Dec(String(dw_child.Object.u_outwaremx_enprice[i],'#,##0') )
  6605. CASE 1
  6606. dw_child.Object.u_outwaremx_enprice[i] = Dec(String(dw_child.Object.u_outwaremx_enprice[i],'#,##0.#') )
  6607. CASE 2
  6608. dw_child.Object.u_outwaremx_enprice[i] = Dec(String(dw_child.Object.u_outwaremx_enprice[i],'#,##0.##') )
  6609. CASE 3
  6610. dw_child.Object.u_outwaremx_enprice[i] = Dec(String(dw_child.Object.u_outwaremx_enprice[i],'#,##0.###') )
  6611. CASE 4
  6612. dw_child.Object.u_outwaremx_enprice[i] = Dec(String(dw_child.Object.u_outwaremx_enprice[i],'#,##0.####') )
  6613. END CHOOSE
  6614. NEXT
  6615. dw_child.AcceptText()
  6616. //设置单价保留位数
  6617. end subroutine
  6618. public function decimal wf_sum_mxamt ();//
  6619. dw_child.AcceptText()
  6620. Long i
  6621. Decimal dec_sum
  6622. dec_sum = 0
  6623. FOR i = 1 To dw_child.RowCount()
  6624. dec_sum = dec_sum + Dec(dw_child.Object.u_outwaremx_uqty[i]) * Dec(dw_child.Object.u_outwaremx_enprice[i]) * Dec(dw_child.Object.u_outwaremx_rebate[i])
  6625. NEXT
  6626. IF IsNull(dec_sum) THEN dec_sum = 0
  6627. RETURN dec_sum
  6628. end function
  6629. public function decimal wf_get_cusprice (integer arg_cusid, integer arg_mtrlid);////
  6630. decimal cusprice
  6631. SELECT
  6632. u_sale_price_mx.price
  6633. INTO :cusprice
  6634. from
  6635. u_cust left join u_sale_price_mx
  6636. on u_cust.pricelistid = u_sale_price_mx.pricelistid
  6637. where mtrlid = :arg_mtrlid and cusid = :arg_cusid
  6638. order by u_sale_price_mx.sys_changetime desc;
  6639. IF sqlca.SQLCode <> 0 THEN
  6640. cusprice = 0
  6641. END IF
  6642. return cusprice
  6643. end function
  6644. public subroutine wf_price (integer arg_row);s_cmpl_qty arg_cmpl,null_cmpl
  6645. decimal ld_cusprice,ld_qty
  6646. int li_mtrlid,li_cusid
  6647. string ls_msg
  6648. if li_mtrlid = 0 or li_cusid = 0 then return
  6649. arg_cmpl = null_cmpl
  6650. arg_cmpl.qty = dw_child.Object.u_outwaremx_enprice[arg_row]
  6651. arg_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[arg_row]
  6652. arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[arg_row]
  6653. arg_cmpl.price = dw_child.Object.u_outwaremx_enprice[arg_row]
  6654. arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[arg_row]
  6655. arg_cmpl.status = dw_child.Object.u_outwaremx_status[arg_row]
  6656. arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[arg_row]
  6657. arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[arg_row]
  6658. arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[arg_row]
  6659. arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[arg_row]
  6660. li_mtrlid = dw_child.Object.u_outwaremx_mtrlid[arg_row]
  6661. li_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  6662. Select price
  6663. Into :ld_cusprice
  6664. From u_cust
  6665. Inner JOIN u_sale_price_mx ON u_sale_price_mx.Pricelistid = u_cust.Pricelistid
  6666. Where u_sale_price_mx.mtrlid = :li_mtrlid
  6667. And u_cust.cusid = :li_cusid;
  6668. If sqlca.SQLCode <> 0 Then
  6669. ld_cusprice = 0
  6670. End If
  6671. arg_cmpl.cusprice = ld_cusprice
  6672. arg_cmpl.num = 2
  6673. arg_cmpl.addvalue = 1
  6674. arg_cmpl.flag = True
  6675. ld_qty = 0
  6676. If f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 Then
  6677. MessageBox('提示',ls_msg, information!, OK! )
  6678. Return
  6679. End If
  6680. dw_child.Object.u_outwaremx_enprice[arg_row] = ld_qty
  6681. end subroutine
  6682. public function integer wf_autoaddmx_rp (s_edit_index_tran arg_s_tran, ref string arg_msg);IF Not dw_edit_mode THEN RETURN 0
  6683. long cusid,storageid,scid
  6684. string Name,cuscode,bsntype,freight,freight_tele,freight_address,Address,tele,tele1,faxno,rep,custype
  6685. int rslt = 1 ,i,child_llrow
  6686. scid = arg_s_tran.c_long
  6687. long uc_row
  6688. cusid = arg_s_tran.g_long
  6689. storageid = arg_s_tran.f_long
  6690. select
  6691. Name,
  6692. cuscode,
  6693. freight,
  6694. freight_tele,
  6695. freight_address,
  6696. Address,
  6697. tele,
  6698. tele1,
  6699. faxno,
  6700. rep,
  6701. custype
  6702. into
  6703. :Name,
  6704. :cuscode,
  6705. :freight,
  6706. :freight_tele,
  6707. :freight_address,
  6708. :Address,
  6709. :tele,
  6710. :tele1,
  6711. :faxno,
  6712. :rep,
  6713. :custype
  6714. from u_cust
  6715. where cusid = :cusid;
  6716. IF sqlca.SQLCode <> 0 THEN
  6717. arg_msg = '查询客户资料失败>'+sqlca.SQLErrText
  6718. rslt = 0
  6719. GOTO ext
  6720. END IF
  6721. uc_row = dw_uc.rowcount()
  6722. uc_row = dw_uc.getrow()
  6723. dw_uc.Object.u_outware_cusid[uc_row] = cusid
  6724. dw_uc.Object.u_cust_name[uc_row] = Name
  6725. dw_uc.Object.u_cust_cuscode[uc_row] = cuscode
  6726. dw_uc.Object.u_outware_outrep[uc_row] = custype
  6727. dw_uc.Object.u_outware_relstr_1[uc_row] = freight
  6728. dw_uc.Object.u_outware_relstr_2[uc_row] = freight_tele
  6729. dw_uc.Object.u_outware_relstr_3[uc_row] = freight_address
  6730. dw_uc.Object.u_outware_rel_address[uc_row] = Address
  6731. dw_uc.Object.u_outware_rel_tele[uc_row] = tele
  6732. dw_uc.Object.u_outware_rel_tele1[uc_row] = tele1
  6733. dw_uc.Object.u_outware_rel_fax[uc_row] = faxno
  6734. dw_uc.Object.u_outware_rel_rep[uc_row] = rep
  6735. dw_uc.Object.u_outware_storageid[uc_row] = storageid
  6736. //
  6737. s_saletask_mtrl s_saletask
  6738. for i = 1 to upperbound(arg_s_tran.arr_long)
  6739. s_saletask.TaskID[i] = arg_s_tran.arr_long[i]
  6740. s_saletask.printid[i] = arg_s_tran.arr_long2[i]
  6741. s_saletask.mtrlid[i] = arg_s_tran.arr_long3[i]
  6742. s_saletask.TaskCode[i] = arg_s_tran.arr_string[i]
  6743. next
  6744. IF wf_saletaskmtrltoarr_salemx(scid,s_saletask,arg_msg) = 0 THEN
  6745. rslt = 0
  6746. GOTO ext
  6747. END IF
  6748. IF wf_set_outwaremx(scid,cusid, storageid, s_saletask,arg_msg) = 0 THEN
  6749. rslt = 0
  6750. GOTO ext
  6751. END IF
  6752. ext:
  6753. return rslt
  6754. end function
  6755. on w_outware_sale.create
  6756. int iCurrent
  6757. call super::create
  6758. this.ddlb_scid=create ddlb_scid
  6759. this.st_3=create st_3
  6760. this.st_2=create st_2
  6761. this.st_msg=create st_msg
  6762. this.cbx_ifmtrlware=create cbx_ifmtrlware
  6763. this.cbx_enamt_edit=create cbx_enamt_edit
  6764. this.ddlb_status=create ddlb_status
  6765. this.cb_fhmx=create cb_fhmx
  6766. this.cb_fymx=create cb_fymx
  6767. this.cb_bjmx=create cb_bjmx
  6768. this.dw_bjmx=create dw_bjmx
  6769. this.dw_fymx=create dw_fymx
  6770. this.cbx_packqty_cmpl=create cbx_packqty_cmpl
  6771. this.cbx_enamt_notax_edit=create cbx_enamt_notax_edit
  6772. this.cb_scanbill=create cb_scanbill
  6773. this.cbx_zk=create cbx_zk
  6774. this.cb_new_scanbill=create cb_new_scanbill
  6775. this.st_cusbalc=create st_cusbalc
  6776. this.st_cusbalc_sign=create st_cusbalc_sign
  6777. this.cbx_all=create cbx_all
  6778. iCurrent=UpperBound(this.Control)
  6779. this.Control[iCurrent+1]=this.ddlb_scid
  6780. this.Control[iCurrent+2]=this.st_3
  6781. this.Control[iCurrent+3]=this.st_2
  6782. this.Control[iCurrent+4]=this.st_msg
  6783. this.Control[iCurrent+5]=this.cbx_ifmtrlware
  6784. this.Control[iCurrent+6]=this.cbx_enamt_edit
  6785. this.Control[iCurrent+7]=this.ddlb_status
  6786. this.Control[iCurrent+8]=this.cb_fhmx
  6787. this.Control[iCurrent+9]=this.cb_fymx
  6788. this.Control[iCurrent+10]=this.cb_bjmx
  6789. this.Control[iCurrent+11]=this.dw_bjmx
  6790. this.Control[iCurrent+12]=this.dw_fymx
  6791. this.Control[iCurrent+13]=this.cbx_packqty_cmpl
  6792. this.Control[iCurrent+14]=this.cbx_enamt_notax_edit
  6793. this.Control[iCurrent+15]=this.cb_scanbill
  6794. this.Control[iCurrent+16]=this.cbx_zk
  6795. this.Control[iCurrent+17]=this.cb_new_scanbill
  6796. this.Control[iCurrent+18]=this.st_cusbalc
  6797. this.Control[iCurrent+19]=this.st_cusbalc_sign
  6798. this.Control[iCurrent+20]=this.cbx_all
  6799. end on
  6800. on w_outware_sale.destroy
  6801. call super::destroy
  6802. destroy(this.ddlb_scid)
  6803. destroy(this.st_3)
  6804. destroy(this.st_2)
  6805. destroy(this.st_msg)
  6806. destroy(this.cbx_ifmtrlware)
  6807. destroy(this.cbx_enamt_edit)
  6808. destroy(this.ddlb_status)
  6809. destroy(this.cb_fhmx)
  6810. destroy(this.cb_fymx)
  6811. destroy(this.cb_bjmx)
  6812. destroy(this.dw_bjmx)
  6813. destroy(this.dw_fymx)
  6814. destroy(this.cbx_packqty_cmpl)
  6815. destroy(this.cbx_enamt_notax_edit)
  6816. destroy(this.cb_scanbill)
  6817. destroy(this.cbx_zk)
  6818. destroy(this.cb_new_scanbill)
  6819. destroy(this.st_cusbalc)
  6820. destroy(this.st_cusbalc_sign)
  6821. destroy(this.cbx_all)
  6822. end on
  6823. event retrieve_pageretr;Boolean cb_firstpage_enabled,cb_nextpage_enabled,cb_retrieveall_enabled
  6824. Boolean cb_priorpage_enabled,cb_func_enabled,cb_retrieve_enabled
  6825. cb_nextpage_enabled = cb_nextpage.Enabled
  6826. cb_retrieveall_enabled = cb_retrieveall.Enabled
  6827. cb_func_enabled = cb_func.Enabled
  6828. cb_nextpage.Enabled = False
  6829. cb_retrieveall.Enabled = False
  6830. cb_func.Enabled = False
  6831. //只显未自已管的仓库
  6832. datawindowchild childdw
  6833. String new_sqlstr,modify_str
  6834. dw_uc.SetTransObject (sqlca)
  6835. dw_uc.GetChild("u_outware_storageid",childdw)
  6836. childdw.SetTransObject (sqlca)
  6837. new_sqlstr = childdw.Describe("DataWindow.Table.Select")
  6838. IF Len(ol_cdw_str) = 0 THEN ol_cdw_str = new_sqlstr
  6839. new_sqlstr = f_modify_selectstr(ol_cdw_str)
  6840. modify_str = "DataWindow.Table.Select='" + new_sqlstr +"'"
  6841. childdw.Modify ( modify_str )
  6842. IF childdw.Retrieve(cur_scid) = 0 THEN
  6843. childdw.InsertRow(0)
  6844. END IF
  6845. ///////////// //
  6846. Int li_option_outrep, li_option_area,li_option_opemp
  6847. string ls_option_opemp
  6848. IF sys_power_issuper THEN
  6849. li_option_outrep = 0
  6850. ELSE
  6851. li_option_outrep = sys_option_outrep
  6852. END IF
  6853. IF sys_power_issuper THEN
  6854. li_option_area = 0
  6855. ELSE
  6856. li_option_area = sys_option_cusarea
  6857. END IF
  6858. IF sys_power_issuper or f_power_ind(369) or f_power_ind(868) or f_power_ind(370) or f_power_ind(870) THEN
  6859. li_option_opemp = 0
  6860. // ls_option_opemp = publ_operator
  6861. ELSE
  6862. li_option_opemp = sys_option_opemp_sale
  6863. ls_option_opemp = publ_operator
  6864. END IF
  6865. long ll_row
  6866. ll_row = dw_pageretr.getrow()
  6867. dw_uc.Retrieve() //dw_uc的dw改左select top 0 并肯不带参数
  6868. dw_pageretr.Retrieve(cur_scid_arr,sys_user_storageid,sys_showsaledata_mindt,cur_flag,cur_secflag,sys_areaid,li_option_area,sys_user_outrep, li_option_outrep, cur_priceflag,ls_option_opemp,li_option_opemp)
  6869. IF dw_pageretr.RowCount() > 0 and ll_row = 1 THEN
  6870. dw_pageretr.SetRow(1)
  6871. dw_pageretr.TriggerEvent(RowFocusChanged!)
  6872. END IF
  6873. wf_flagstatus_rf()
  6874. This.TriggerEvent('retrieve_childdw')
  6875. //改为独立触发
  6876. //THIS.TriggerEvent('retrieve_fjnum')
  6877. cb_nextpage.Enabled = cb_nextpage_enabled
  6878. cb_retrieveall.Enabled = cb_retrieveall_enabled
  6879. cb_func.Enabled = cb_func_enabled
  6880. //childdw.retrieve()
  6881. end event
  6882. event ue_usual_query_filt;string obj_expr=''
  6883. if trim(sle_usual_query.text)<>'' then
  6884. IF POS(trim(sle_usual_query.text),'%')=0 THEN
  6885. obj_expr=obj_expr+'( u_outware_outwarecode LIKE "%'+trim(sle_usual_query.text)+'%" )'
  6886. ELSE
  6887. obj_expr=obj_expr+'( u_outware_outwarecode LIKE "'+trim(sle_usual_query.text)+'" )'
  6888. END IF
  6889. end if
  6890. dw_pageretr.setfilter(obj_expr)
  6891. dw_pageretr.SetRedraw(False)
  6892. dw_pageretr.filter()
  6893. if dw_pageretr.rowcount()>=1 then
  6894. dw_pageretr.selectrow(0,false)
  6895. dw_pageretr.selectrow(1,true)
  6896. dw_pageretr.SetRow(1)
  6897. dw_pageretr.triggerevent(rowfocuschanged!)
  6898. end if
  6899. dw_pageretr.SetRedraw(TRUE)
  6900. end event
  6901. event ue_usual_query_retr;string ls_querystrpart=''
  6902. ls_newselect=lower(ori_oldselect)
  6903. if trim(sle_usual_query.text)<>'' then
  6904. if pos(trim(sle_usual_query.text),'%')=0 then
  6905. ls_querystrpart="(u_outware.outwarecode like '%"+trim(sle_usual_query.text)+"%')"
  6906. else
  6907. ls_querystrpart="(u_outware.outwarecode like '"+trim(sle_usual_query.text)+"')"
  6908. end if
  6909. if Pos(ls_newselect," where ") <> 0 then
  6910. ls_newselect=ls_newselect+" AND ("+ls_querystrpart+')'
  6911. else
  6912. ls_newselect=ls_newselect+" where ("+ls_querystrpart+')'
  6913. end if
  6914. end if
  6915. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  6916. this.triggerevent('retrieve_pageretr')
  6917. end event
  6918. event open;THIS.TriggerEvent('ue_before_open')
  6919. wf_movetocenter()
  6920. ds_copy_bill = CREATE datastore
  6921. ds_copy_bill.DataObject = dw_child.dataobject
  6922. ds_copy_bill.SetTransObject(sqlca)
  6923. OLD_TITLE = THIS.Title
  6924. s_tran = Message.PowerObjectParm
  6925. IF NOT IsNull(s_tran) THEN
  6926. retrieve_all = s_tran.if_retrieve_all
  6927. mode = s_tran.work_mode
  6928. arg_pkid = s_tran.arg_pkid
  6929. arg_string_code = s_tran.arg_string_code
  6930. if_sharedata = s_tran.if_sharedata //是否应用sharedata,当retrieve_all=true是生效
  6931. ds_share = s_tran.ds_share
  6932. END IF
  6933. dw_pageretr.RBUTTON_FILTER_USE = TRUE //右键查询功能开关
  6934. dw_pageretr.titleclick_sort_use = TRUE //单击标题排序功能开关
  6935. dw_pageretr.SetTransObject (sqlca)
  6936. pkcolumndbtname = wf_get_pkcolumndbtname(dw_pageretr) //取第一列为关键字
  6937. ori_oldselect = dw_pageretr.Describe("DataWindow.Table.Select")
  6938. //====================================================================
  6939. // Script - w_outware_sale inherited from w_publ_1ton_share_detail for open
  6940. // Reason:
  6941. //--------------------------------------------------------------------
  6942. // Modified By: yyx Date: 2003.12.01
  6943. //--------------------------------------------------------------------
  6944. ori_oldselect = f_modify_selectstr(ori_oldselect)//只显示所管的仓库单据
  6945. //====================================================================
  6946. ls_newselect = ori_oldselect
  6947. ds_curquery = CREATE DATASTORE
  6948. ds_curquery.DataObject = 'd_extr_find'
  6949. ds_curquery.SetTransObject (sqlca)
  6950. int rtncode // 保留联系人初始sql
  6951. DataWindowChild dw_child_dddw
  6952. rtncode = dw_uc.GetChild("u_outware_rel_rep",dw_child_dddw)
  6953. old_rep_select = Lower(dw_child_dddw.GetSQLSelect())
  6954. wf_editindex_lockf()
  6955. IF s_tran.d_long = 2 THEN
  6956. cur_scid = s_tran.c_long
  6957. Int li_item
  6958. li_item = ddlb_scid.FindItem(s_tran.d_string,0)
  6959. IF li_item > 0 THEN
  6960. ddlb_scid.SelectItem(li_item)
  6961. END IF
  6962. END IF
  6963. sle_usual_query.Text = Trim(arg_string_code)
  6964. IF NOT retrieve_all THEN
  6965. THIS.TriggerEvent("ue_usual_query_RETR") //修改ls_newselect,retrieve
  6966. ELSE
  6967. IF if_sharedata THEN
  6968. ds_share.ShareData(dw_pageretr)
  6969. ELSE
  6970. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  6971. THIS.TriggerEvent('RETRIEVE_pageretr')
  6972. END IF
  6973. END IF
  6974. IF retrieve_all THEN
  6975. THIS.TriggerEvent("ue_usual_query_filt")
  6976. END IF
  6977. uc_column_int = 27 //uc dw前7列可以编辑
  6978. child_column_int = 31 //子dw前18列可以编辑
  6979. uo_ware = CREATE uo_outware_sale
  6980. uo_ware.commit_transaction = sqlca
  6981. IF sys_option_outwaresale_rateedit = 1 THEN
  6982. dw_child.Modify ("u_outwaremx_rate_t.color=16711680")
  6983. dw_child.Modify ("u_outwaremx_rate.color=16711680")
  6984. dw_child.Modify ("u_outwaremx_rate.protect=0")
  6985. ELSE
  6986. dw_child.Modify ("u_outwaremx_rate.protect=1")
  6987. END IF
  6988. if sys_option_hide_ware = 1 then
  6989. dw_child.Modify ("u_outwaremx_status_t.color=16711680")
  6990. dw_child.Modify ("u_outwaremx_status.color=16711680")
  6991. dw_child.Modify ("u_outwaremx_status.protect=0")
  6992. dw_child.Modify ("u_outwaremx_woodcode_t.color=16711680")
  6993. dw_child.Modify ("u_outwaremx_woodcode.color=16711680")
  6994. dw_child.Modify ("u_outwaremx_woodcode.protect=0")
  6995. dw_child.Modify ("u_outwaremx_pcode_t.color=16711680")
  6996. dw_child.Modify ("u_outwaremx_pcode.color=16711680")
  6997. dw_child.Modify ("u_outwaremx_pcode.protect=0")
  6998. ELSE
  6999. dw_child.Modify ("u_outwaremx_status.protect=1")
  7000. dw_child.Modify ("u_outwaremx_woodcode.protect=1")
  7001. dw_child.Modify ("u_outwaremx_pcode.protect=1")
  7002. end if
  7003. uo_fieb = create uo_ljfieb
  7004. uo_fieb.commit_transaction = sys_email_sqlca
  7005. uo_cus_price = CREATE uo_cusprice
  7006. s_hide_col s_col, s_null
  7007. s_col = s_null
  7008. s_col.col_1 = 'billamt'
  7009. f_hide_col(122,dw_uc,s_col) //隐藏销售价
  7010. s_col = s_null
  7011. s_col.col_1 = 'u_outwaremx_enprice'
  7012. s_col.col_2 = 'u_outwaremx_rebate'
  7013. s_col.col_3 = 'u_outwaremx_tax'
  7014. s_col.col_4 = 'enamt'
  7015. s_col.col_5 = 'u_outwaremx_enamt_tax'
  7016. s_col.col_6 = 'u_outwaremx_fprice'
  7017. s_col.col_7 = 'u_outwaremx_bsamt'
  7018. s_col.col_8 = 'u_outwaremx_bsamt_tax'
  7019. s_col.col_9 = 'u_outwaremx_price'
  7020. s_col.col_10 = 'u_outwaremx_otherprice'
  7021. f_hide_col(122,dw_child,s_col) //隐藏销售价
  7022. s_col = s_null
  7023. s_col.col_1 = 'u_outwaremx_ware_fprice'
  7024. s_col.col_2 = 'enamt2'
  7025. s_col.col_3 = 'u_outwaremx_dftsaleprice'
  7026. s_col.col_4 = 'enamt_notax'
  7027. s_col.col_5 = 'enamt2o'
  7028. s_col.col_6 = 'enprice_notax'
  7029. s_col.col_7 = 'z_h_price'
  7030. s_col.col_8 = 'z_h_amt'
  7031. f_hide_col(122,dw_child,s_col) //隐藏销售价
  7032. s_col = s_null
  7033. s_col.col_1 = 'gpamt'
  7034. f_hide_col(843,dw_child,s_col) //隐藏销售毛利
  7035. s_col = s_null
  7036. s_col.col_1 = 'u_outwaremx_cost'
  7037. s_col.col_2 = 'u_outwaremx_costamt'
  7038. f_hide_col(490,dw_child,s_col) //隐藏 出仓成本价
  7039. s_col = s_null
  7040. s_col.col_2 = 'u_outwaremx_cost_notax'
  7041. f_hide_col(123,dw_child,s_col)
  7042. s_hide_col s_col_mtrlsectype
  7043. s_col_mtrlsectype.col_1 = 'u_mtrldef_mtrlsectype'
  7044. f_hide_col(1308,dw_child,s_col_mtrlsectype)
  7045. s_hide_col s_col_zxmtrlmode
  7046. s_col_zxmtrlmode.col_1 = 'u_mtrldef_zxmtrlmode'
  7047. f_hide_col(1309,dw_child,s_col_zxmtrlmode)
  7048. //if sys_option_outware_if_saleqty = 0 then
  7049. // dw_child.modify( "u_outwaremx_uqty_t.text = '数量'")
  7050. // dw_child.modify( "destroy u_outwaremx_saleqty ")
  7051. //else
  7052. // dw_child.modify( "u_outwaremx_uqty_t.text = '出仓数量'")
  7053. // dw_child.modify( "u_outwaremx_saleqty.visible = 1 ")
  7054. //end if
  7055. //String arg_msg
  7056. //IF s_tran.e_long = 1 And UpperBound(s_tran.arr_long) > 0 THEN
  7057. // cb_add.TriggerEvent(Clicked!)
  7058. // wf_autoaddmx_rp(s_tran,arg_msg)
  7059. //END IF
  7060. end event
  7061. event refresh_interface;call super::refresh_interface;ddlb_status.Enabled = Not dw_edit_mode
  7062. ddlb_scid.Enabled = Not dw_edit_mode
  7063. cbx_enamt_edit.Enabled = Not dw_edit_mode
  7064. cbx_enamt_notax_edit.Enabled = Not dw_edit_mode
  7065. cbx_packqty_cmpl.Enabled = Not dw_edit_mode
  7066. cbx_zk.Enabled = Not dw_edit_mode
  7067. IF dw_edit_mode THEN
  7068. ddlb_scid.Enabled = False
  7069. ELSE
  7070. IF sys_scid > 0 THEN
  7071. ddlb_scid.Enabled = False
  7072. ELSE
  7073. ddlb_scid.Enabled = True
  7074. END IF
  7075. END IF
  7076. st_msg.X = dw_pageretr.X
  7077. st_msg.Y = dw_pageretr.Y
  7078. st_msg.Width = dw_pageretr.Width
  7079. st_msg.Height = dw_pageretr.Height
  7080. st_msg.Visible = dw_edit_mode
  7081. IF Not dw_edit_mode THEN
  7082. st_msg.Text = ''
  7083. END IF
  7084. wf_flagstatus_rf()
  7085. String ls_sqlstr
  7086. //编缉状态明细不选择
  7087. IF dw_edit_mode THEN
  7088. dw_child.SelectRow(0,False)
  7089. END IF
  7090. IF Not dw_edit_mode THEN cur_editfocus = 0
  7091. Long ls_sit = 0
  7092. //后面还有对金额的分权限处理
  7093. wf_enamt_facechg()
  7094. //IF ii_enamt_edit = 0 THEN
  7095. // dw_child.Modify('enamt.protect = 1~t enamt.Color = 0')
  7096. // dw_child.Modify('enamt_t.Color = 0')
  7097. //ELSE
  7098. // dw_child.Modify('enamt.protect = 0~t enamt.Color = "0~trgb(0,0,255)"')
  7099. // dw_child.Modify('enamt_t.Color = "0~trgb(0,0,255)"')
  7100. //END IF
  7101. //973-限制销售价,折扣(只能按价格表、报价、限价,不能手动录入)
  7102. //866-仓审后修改单价
  7103. //销售数量使用
  7104. IF sys_option_outware_if_saleqty = 0 THEN //不分离
  7105. dw_child.Modify('u_outwaremx_saleqty.protect = 1~t u_outwaremx_saleqty.Color = 0')
  7106. dw_child.Modify('u_outwaremx_saleqty_t.Color = 0')
  7107. ELSE
  7108. dw_child.Modify('u_outwaremx_saleqty.protect = 0~t u_outwaremx_saleqty.Color = "0~trgb(0,0,255)"')
  7109. dw_child.Modify('u_outwaremx_saleqty_t.Color = "0~trgb(0,0,255)"')
  7110. END IF
  7111. IF Not dw_edit_mode THEN
  7112. dw_child.Modify('u_mtrldef_sumneed_qty.visible=0 ~n u_mtrldef_sumware_qty.visible=0 ~n u_mtrldef_curware_qty.visible=0')
  7113. ELSE
  7114. dw_child.Modify('u_mtrldef_sumneed_qty_t.visible=1 ~n u_mtrldef_sumware_qty_t.visible=1 ~n u_mtrldef_curware_qty_t.visible=1')
  7115. dw_child.Modify('u_mtrldef_sumneed_qty.visible=1 ~n u_mtrldef_sumware_qty.visible=1 ~n u_mtrldef_curware_qty.visible=1')
  7116. ls_sit = Long(dw_child.Describe('u_outwaremx_mxdscrp.X'))+Long(dw_child.Describe('u_outwaremx_mxdscrp.width'))
  7117. dw_child.Modify('u_mtrldef_curware_qty.x='+String(ls_sit))
  7118. ls_sit = Long(dw_child.Describe('u_mtrldef_curware_qty.X'))+Long(dw_child.Describe('u_mtrldef_curware_qty.width'))
  7119. dw_child.Modify('u_mtrldef_sumware_qty.x='+String(ls_sit))
  7120. ls_sit = Long(dw_child.Describe('u_mtrldef_sumware_qty.X'))+Long(dw_child.Describe('u_mtrldef_sumware_qty.width'))
  7121. dw_child.Modify('u_mtrldef_sumneed_qty.x='+String(ls_sit))
  7122. END IF
  7123. IF dw_edit_mode THEN
  7124. IF cur_editfocus = 1 Or cur_editfocus = 0 THEN //新建 or 非编辑
  7125. dw_uc.Modify('u_outware_storageid.protect=0 ~n u_cust_cuscode.protect=0 ~n u_outware_relint_2.protect=0 ~n u_outware_mrate.protect=0')
  7126. dw_child.Modify('u_mtrldef_mtrlcode.protect=0 ~n u_outwaremx_uqty.protect=0 ~n u_outwaremx_addqty.protect=0 ~n u_outwaremx_ifrel.protect=0')
  7127. cb_xm.Enabled = True
  7128. ELSE //修改
  7129. IF sys_option_confirmaudit_sale = 1 THEN
  7130. IF priceflag = 1 THEN
  7131. dw_uc.Modify('u_outware_storageid.protect=1 ~n u_cust_cuscode.protect=1 ~n u_outware_relint_2.protect=1 ~n u_outware_mrate.protect=1')
  7132. IF flag = 0 THEN
  7133. dw_child.Modify('u_mtrldef_mtrlcode.protect=1 ~n u_outwaremx_uqty.protect=0 ~n u_outwaremx_addqty.protect=0 ~n u_outwaremx_ifrel.protect=1')
  7134. ELSEIF flag = 1 And secflag = 0 THEN
  7135. dw_child.Modify('u_mtrldef_mtrlcode.protect=1 ~n u_outwaremx_uqty.protect=1 ~n u_outwaremx_addqty.protect=1 ~n u_outwaremx_ifrel.protect=1 ~n u_outwaremx_outtype.protect=1')
  7136. IF Not f_power_ind(866) THEN
  7137. dw_child.Modify('u_outwaremx_enprice.protect=1 ~n u_outwaremx_rebate.protect=1 ~n enamt.protect=1 ~n ')
  7138. END IF
  7139. END IF
  7140. cb_xm.Enabled = False
  7141. ELSE
  7142. dw_uc.Modify('u_outware_storageid.protect=0 ~n u_cust_cuscode.protect=0 ~n u_outware_relint_2.protect=0 ~n u_outware_mrate.protect=0')
  7143. dw_child.Modify('u_mtrldef_mtrlcode.protect=0 ~n u_outwaremx_uqty.protect=0 ~n u_outwaremx_addqty.protect=0 ~n u_outwaremx_ifrel.protect=0')
  7144. cb_xm.Enabled = True
  7145. END IF
  7146. ELSE
  7147. IF flag = 1 And secflag = 0 THEN
  7148. dw_uc.Modify('u_outware_storageid.protect=1 ~n u_cust_cuscode.protect=1 ~n u_outware_relint_2.protect=1 ~n u_outware_mrate.protect=1')
  7149. dw_child.Modify('u_mtrldef_mtrlcode.protect=1 ~n u_outwaremx_uqty.protect=1 ~n u_outwaremx_addqty.protect=1 ~n u_outwaremx_ifrel.protect=1 ~n u_outwaremx_outtype.protect=1')
  7150. IF Not f_power_ind(866) THEN
  7151. dw_child.Modify('u_outwaremx_enprice.protect=1 ~n u_outwaremx_rebate.protect=1 ~n enamt.protect=1 ~n ')
  7152. END IF
  7153. cb_xm.Enabled = False
  7154. ELSE
  7155. dw_uc.Modify('u_outware_storageid.protect=0 ~n u_cust_cuscode.protect=0 ~n u_outware_relint_2.protect=0 ~n u_outware_mrate.protect=0')
  7156. dw_child.Modify('u_mtrldef_mtrlcode.protect=0 ~n u_outwaremx_uqty.protect=0 ~n u_outwaremx_addqty.protect=0 ~n u_outwaremx_ifrel.protect=0 ~n u_outwaremx_outtype.protect=0')
  7157. cb_xm.Enabled = True
  7158. END IF
  7159. END IF
  7160. END IF
  7161. ELSE
  7162. dw_uc.Modify('u_outware_storageid.protect=0')
  7163. dw_child.Modify('u_mtrldef_mtrlcode.protect=0 ~n u_outwaremx_uqty.protect=0 ~n u_outwaremx_addqty.protect=0 ~n ')
  7164. END IF
  7165. IF sys_power_issuper Or Not f_power_ind(973) THEN
  7166. IF sys_power_issuper Or Not f_power_ind(1710) THEN
  7167. IF ii_enamt_edit = 0 THEN
  7168. // dw_child.Modify('u_outwaremx_enprice.protect=0 ~n u_outwaremx_rebate.protect=0 ')
  7169. dw_child.Modify('u_outwaremx_enprice.protect=0 ') //973 限制单价
  7170. ELSE
  7171. dw_child.Modify('u_outwaremx_enprice.protect=1 ')
  7172. // IF ii_enamt_notax_edit = 0 THEN
  7173. // dw_child.Modify('enamt.protect=0 ~n ')
  7174. // ELSE
  7175. // // dw_child.Modify('enamt_notax.protect=0 ~n ')
  7176. // END IF
  7177. END IF
  7178. ELSE
  7179. dw_child.Modify('u_outwaremx_enprice.protect=1 ')
  7180. // IF ii_enamt_edit = 0 THEN
  7181. // dw_child.Modify('u_outwaremx_enprice.protect="0~tif (u_outwaremx_ifrel =1 , 1 ,0)" ~n u_outwaremx_rebate.protect="0~tif (u_outwaremx_ifrel =1 , 1 ,0) "')
  7182. // ELSE
  7183. //
  7184. // IF ii_enamt_notax_edit = 0 THEN
  7185. // dw_child.Modify('enamt.protect="0~tif (u_outwaremx_ifrel =1 , 1 ,0)" ~n ')
  7186. // ELSE
  7187. // // dw_child.Modify('enamt_notax.protect="0~tif (u_outwaremx_ifrel =1 , 1 ,0)" ~n ')
  7188. // END IF
  7189. // END IF
  7190. END IF
  7191. ELSE
  7192. // dw_child.Modify('u_outwaremx_enprice.protect=1 ~n u_outwaremx_rebate.protect=1 ~n enamt.protect=1 ~n enamt_notax.protect=1 ~n ')
  7193. dw_child.Modify('u_outwaremx_enprice.protect=1 ')
  7194. END IF
  7195. IF sys_power_issuper Or Not f_power_ind(492) THEN //492 限制折扣
  7196. dw_child.Modify('u_outwaremx_rebate.protect=0 ')
  7197. ELSE
  7198. dw_child.Modify('u_outwaremx_rebate.protect=1 ')
  7199. END IF
  7200. IF sys_power_issuper Or not f_power_ind(1710) THEN //1710 销售订单限制单价
  7201. dw_child.Modify('u_outwaremx_enprice.protect=0 ')
  7202. ELSE
  7203. dw_child.Modify('u_outwaremx_enprice.protect="0~tif (u_outwaremx_ifrel =1 , 1 ,0)"')
  7204. END IF
  7205. IF sys_option_packqty_sale = 0 THEN
  7206. dw_child.Modify('u_outwaremx_packqty.protect=1 ')
  7207. ELSE
  7208. dw_child.Modify('u_outwaremx_packqty.protect=0 ')
  7209. END IF
  7210. end event
  7211. event close;call super::close;destroy uo_ware
  7212. destroy uo_fieb
  7213. DESTROY uo_cus_price
  7214. wf_del_tempfilepathname()
  7215. end event
  7216. event ue_f8;call super::ue_f8;//用于选择明细内容,被F8[默认]\dw_child.doubleclicked调用
  7217. If Not dw_edit_mode Then Return
  7218. If dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 Then Return
  7219. //IF flag = 1 THEN RETURN
  7220. Long child_row,ll_storageid = 0,cnt_childdw
  7221. Long ll_moneyid
  7222. Long ls_null
  7223. Long chc = 1,ls_j,ll_custid
  7224. Decimal lde_rate,ld_tax
  7225. String ls_msg
  7226. s_cmpl_qty arg_cmpl,null_cmpl
  7227. Decimal ld_qty
  7228. Int li_mtrlid,li_cusid
  7229. Dec ld_cusprice
  7230. string ls_cusmtrlcode,ls_cusmtrlname,ls_cusmtrlmode
  7231. s_edit_index_tran s_tranf8 //传递参数使用
  7232. SetNull(ls_null)
  7233. dw_uc.AcceptText()
  7234. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  7235. If ll_moneyid = 0 Or IsNull(ll_moneyid) Then
  7236. MessageBox('提示','请先选择币种',information!,OK!)
  7237. Return
  7238. End If
  7239. If wf_get_cusid(ll_custid) = 0 Then
  7240. Return
  7241. End If
  7242. dw_uc.AcceptText()
  7243. dw_child.AcceptText()
  7244. child_row = dw_child.GetRow()
  7245. If sys_option_hide_ware = 0 Then //如果隐藏仓库的,直接选物料
  7246. ll_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  7247. If ll_storageid = 0 Or IsNull(ll_storageid) Then
  7248. MessageBox('提示','请先选择仓库',information!,OK!)
  7249. Return
  7250. End If
  7251. Int li_if_cus_mtrlware
  7252. Select balctype Into :li_if_cus_mtrlware
  7253. From u_storage
  7254. Where storageid = :ll_storageid;
  7255. If sqlca.SQLCode <> 0 Then
  7256. MessageBox('错误','查询仓库是否使用客户库存失败',stopsign!,OK!)
  7257. Return
  7258. End If
  7259. //初始化参数
  7260. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  7261. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  7262. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  7263. s_tranf8.b_long = 0
  7264. If li_if_cus_mtrlware = 1 Then ///////////// //
  7265. s_tranf8.c_long = ll_custid
  7266. Else
  7267. s_tranf8.c_long = -1
  7268. End If
  7269. If Not IsValid(w_mtrlware_storageid_ch) Then
  7270. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  7271. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  7272. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  7273. s_tranf8.d_long = ll_storageid
  7274. If dw_child.GetRow() > 0 Then s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()])
  7275. OpenWithParm(w_mtrlware_storageid_ch,s_tranf8)
  7276. s_mtrlware_noalloc_array S_INSCUST
  7277. S_INSCUST = Message.PowerObjectParm
  7278. For ls_j = 1 To UpperBound(S_INSCUST.mtrlwareid)
  7279. If S_INSCUST.mtrlwareid[ls_j] > 0 Then
  7280. If dw_child.GetRow() > 0 Then
  7281. If dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 0 Then
  7282. child_row = dw_child.InsertRow (0)
  7283. Else
  7284. child_row = dw_child.GetRow()
  7285. End If
  7286. Else
  7287. child_row = dw_child.InsertRow (0)
  7288. End If
  7289. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[ls_j]
  7290. dw_child.Object.u_outwaremx_mtrlid[child_row] = S_INSCUST.mtrlid[ls_j]
  7291. dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.u_mtrldef_mtrlcode[ls_j]
  7292. dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.u_mtrldef_mtrlname[ls_j]
  7293. dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST.u_mtrldef_mtrlmode[ls_j]
  7294. dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j]
  7295. If sys_option_outware_Sale_ware = 0 Then
  7296. dw_child.Object.u_outwaremx_saleqty[child_row] = 0
  7297. dw_child.Object.u_outwaremx_uqty[child_row] = 0
  7298. dw_child.Object.u_outwaremx_addqty[child_row] = 0
  7299. ElseIf sys_option_outware_Sale_ware = 1 Then
  7300. dw_child.Object.u_outwaremx_saleqty[child_row] = S_INSCUST.noallocqty[ls_j]- S_INSCUST.noauditingqty[ls_j]
  7301. dw_child.Object.u_outwaremx_uqty[child_row] = S_INSCUST.noallocqty[ls_j]- S_INSCUST.noauditingqty[ls_j]
  7302. dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j]- S_INSCUST.noauditingaddqty[ls_j]
  7303. Else
  7304. dw_child.Object.u_outwaremx_saleqty[child_row] = S_INSCUST.noallocqty[ls_j]
  7305. dw_child.Object.u_outwaremx_uqty[child_row] = S_INSCUST.noallocqty[ls_j]
  7306. dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j]
  7307. End If
  7308. dw_child.Object.u_outwaremx_planprice[child_row] = S_INSCUST.planprice[ls_j]
  7309. dw_child.Object.u_outwaremx_storageid[child_row] = S_INSCUST.storageid[ls_j]
  7310. dw_child.Object.u_outwaremx_plancode[child_row] = S_INSCUST.plancode[ls_j]
  7311. dw_child.Object.u_outwaremx_dxflag[child_row] = S_INSCUST.dxflag[ls_j]
  7312. dw_child.Object.u_outwaremx_status[child_row] = S_INSCUST.status[ls_j]
  7313. dw_child.Object.u_outwaremx_woodcode[child_row] = S_INSCUST.woodcode[ls_j]
  7314. dw_child.Object.u_outwaremx_pcode[child_row] = S_INSCUST.pcode[ls_j]
  7315. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST.u_mtrldef_zxmtrlmode[ls_j]
  7316. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST.u_mtrldef_mtrlsectype[ls_j]
  7317. dw_child.Object.u_mtrldef_mtrltype[child_row] = S_INSCUST.u_mtrldef_mtrltype[ls_j]
  7318. dw_child.Object.u_outwaremx_net_weight[child_row] = S_INSCUST.u_mtrldef_net_weight[ls_j]
  7319. dw_child.Object.u_outwaremx_gross_weight[child_row] = S_INSCUST.u_mtrldef_gross_weight[ls_j]
  7320. dw_child.Object.u_outwaremx_cubage[child_row] = S_INSCUST.u_mtrldef_cubage[ls_j]
  7321. dw_child.Object.u_mtrldef_lmsaleprice[child_row] = S_INSCUST.lmsaleprice[ls_j]
  7322. f_find_unitrate(S_INSCUST.mtrlid[ls_j], S_INSCUST.u_mtrldef_unit[ls_j], lde_rate)
  7323. dw_child.Object.u_outwaremx_rate[child_row] = lde_rate
  7324. dw_child.Object.u_outwaremx_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j]
  7325. String ls_priceformula
  7326. s_mtrldef_array arg_s_mtrldef
  7327. If f_find_mtrl(S_INSCUST.u_mtrldef_mtrlcode[ls_j],-1,arg_s_mtrldef) = 0 Then
  7328. ls_priceformula = ''
  7329. Else
  7330. ls_priceformula = arg_s_mtrldef.priceformula[1]
  7331. IF arg_s_mtrldef.saleunit[1] = 1 THEN
  7332. dw_child.Object.u_outwaremx_unit[child_row] = arg_s_mtrldef.unit_buy[1]
  7333. dw_child.Object.u_outwaremx_rate[child_row] = arg_s_mtrldef.rate_buy[1]
  7334. ELSEIF arg_s_mtrldef.saleunit[1] = 2 THEN
  7335. dw_child.Object.u_outwaremx_unit[child_row] = arg_s_mtrldef.unit_scll[1]
  7336. dw_child.Object.u_outwaremx_rate[child_row] = arg_s_mtrldef.rate_scll[1]
  7337. ELSEIF arg_s_mtrldef.saleunit[1] = 3 THEN
  7338. dw_child.Object.u_outwaremx_unit[child_row] = arg_s_mtrldef.unit_sale[1]
  7339. dw_child.Object.u_outwaremx_rate[child_row] = arg_s_mtrldef.rate_sale[1]
  7340. END IF
  7341. End If
  7342. dw_child.Object.u_outwaremx_priceformula[child_row] = ls_priceformula
  7343. wf_get_price(child_row)
  7344. dw_child.Object.u_mtrldef_curware_qty[child_row] = S_INSCUST.noallocqty[ls_j]
  7345. dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null
  7346. dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null
  7347. dw_child.Object.u_mtrldef_handtype[child_row] = S_INSCUST.u_mtrldef_handtype[ls_j]
  7348. dw_child.Object.u_mtrldef_mtrlengname[child_row] = S_INSCUST.u_mtrldef_mtrlengname[ls_j]
  7349. dw_child.Object.u_mtrldef_barcode[child_row] = S_INSCUST.barcode[ls_j]
  7350. li_mtrlid=S_INSCUST.mtrlid[ls_j] //客户物料名称
  7351. li_cusid=dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  7352. Select isnull(cusmtrlcode,''), isnull(cusmtrlname,''), isnull(cusmtrlmode,'')
  7353. Into :ls_cusmtrlcode, :ls_cusmtrlname, :ls_cusmtrlmode From u_cusmtrlname Where mtrlid= :li_mtrlid and cusid= :li_cusid ;
  7354. dw_child.Object.u_cusmtrlname_cusmtrlname[child_row] = ls_cusmtrlname
  7355. dw_child.Object.u_cusmtrlname_cusmtrlcode[child_row] = ls_cusmtrlcode
  7356. dw_child.Object.u_cusmtrlname_cusmtrlmode[child_row] =ls_cusmtrlmode
  7357. //计算单价
  7358. If ls_priceformula <> '' Then
  7359. arg_cmpl = null_cmpl
  7360. arg_cmpl.qty = dw_child.Object.u_outwaremx_enprice[child_row]
  7361. arg_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[child_row]
  7362. arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row]
  7363. arg_cmpl.price = dw_child.Object.u_outwaremx_enprice[child_row]
  7364. arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row]
  7365. arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row]
  7366. arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row]
  7367. arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row]
  7368. arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row]
  7369. arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row]
  7370. li_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row]
  7371. li_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  7372. Select price
  7373. Into :ld_cusprice
  7374. From u_cust
  7375. Inner JOIN u_sale_price_mx ON u_sale_price_mx.Pricelistid = u_cust.Pricelistid
  7376. Where u_sale_price_mx.mtrlid = :li_mtrlid
  7377. And u_cust.cusid = :li_cusid
  7378. order by u_sale_price_mx.sys_changetime desc;
  7379. If sqlca.SQLCode <> 0 Then
  7380. ld_cusprice = 0
  7381. End If
  7382. arg_cmpl.cusprice = ld_cusprice
  7383. arg_cmpl.num = sys_option_outware_price_amt_round
  7384. arg_cmpl.addvalue = 1
  7385. arg_cmpl.flag = True
  7386. ld_qty = 0
  7387. If f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 Then
  7388. MessageBox('提示',ls_msg, information!, OK! )
  7389. Return
  7390. End If
  7391. dw_child.Object.u_outwaremx_enprice[child_row] = ld_qty
  7392. End If
  7393. If f_find_tax(ll_custid,'u_cust',ld_tax) = 0 Then
  7394. ld_tax = 0
  7395. Else
  7396. dw_child.Object.u_outwaremx_tax[child_row] = ld_tax
  7397. End If
  7398. End If
  7399. Next
  7400. End If
  7401. Else
  7402. If Not IsValid(W_mtrldef_edit) Then
  7403. //传递参数使用
  7404. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  7405. s_tranf8.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  7406. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  7407. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  7408. s_tranf8.if_select_all = True //多选
  7409. s_tranf8.b_long = -1 //选采购
  7410. s_tranf8.c_long = -1
  7411. If dw_child.GetRow() > 0 Then s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()])
  7412. OpenWithParm(W_mtrldef_edit,s_tranf8) //调用
  7413. s_mtrldef_array S_INSCUST2
  7414. S_INSCUST2 = Message.PowerObjectParm //接受返回结构
  7415. For ls_j = 1 To UpperBound(S_INSCUST2.mtrlid)
  7416. If S_INSCUST2.mtrlid[ls_j] > 0 Then //正常返回值则可以取以下值
  7417. If dw_child.GetRow() > 0 Then
  7418. If dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 0 Then
  7419. child_row = dw_child.InsertRow (0)
  7420. Else
  7421. child_row = dw_child.GetRow()
  7422. End If
  7423. Else
  7424. child_row = dw_child.InsertRow (0)
  7425. End If
  7426. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = 0
  7427. dw_child.Object.u_outwaremx_mtrlid[child_row] = S_INSCUST2.mtrlid[ls_j]
  7428. dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST2.mtrlcode[ls_j]
  7429. dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST2.mtrlname[ls_j]
  7430. dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST2.mtrlmode[ls_j]
  7431. dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST2.unit[ls_j]
  7432. dw_child.Object.u_outwaremx_saleqty[child_row] = 0
  7433. dw_child.Object.u_outwaremx_uqty[child_row] = 0
  7434. dw_child.Object.u_outwaremx_addqty[child_row] = 0
  7435. dw_child.Object.u_outwaremx_planprice[child_row] = S_INSCUST2.planprice[ls_j]
  7436. dw_child.Object.u_outwaremx_storageid[child_row] = 0
  7437. dw_child.Object.u_outwaremx_plancode[child_row] = ''
  7438. //dw_child.Object.u_outwaremx_dxflag[child_row] = 0
  7439. dw_child.Object.u_outwaremx_status[child_row] = S_INSCUST2.status[ls_j]
  7440. dw_child.Object.u_outwaremx_woodcode[child_row] = S_INSCUST2.woodcode[ls_j]
  7441. dw_child.Object.u_outwaremx_pcode[child_row] = S_INSCUST2.pcode[ls_j]
  7442. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST2.zxmtrlmode[ls_j]
  7443. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST2.mtrlsectype[ls_j]
  7444. dw_child.Object.u_mtrldef_mtrlengname[child_row] = S_INSCUST2.mtrlengname[ls_j]//
  7445. dw_child.Object.u_mtrldef_barcode[child_row] = S_INSCUST2.barcode[ls_j]
  7446. dw_child.Object.u_outwaremx_unit[child_row] = S_INSCUST2.unit[ls_j]
  7447. f_find_unitrate(S_INSCUST2.mtrlid[ls_j], S_INSCUST2.unit[ls_j], lde_rate)
  7448. dw_child.Object.u_outwaremx_rate[child_row] = lde_rate
  7449. s_mtrldef_array arg_s_mtrldef_1
  7450. If f_find_mtrl(S_INSCUST2.mtrlcode[ls_j],-1,arg_s_mtrldef_1) <> 0 Then
  7451. IF arg_s_mtrldef_1.saleunit[1] = 1 THEN
  7452. dw_child.Object.u_outwaremx_unit[child_row] = arg_s_mtrldef_1.unit_buy[1]
  7453. dw_child.Object.u_outwaremx_rate[child_row] = arg_s_mtrldef_1.rate_buy[1]
  7454. ELSEIF arg_s_mtrldef_1.saleunit[1] = 2 THEN
  7455. dw_child.Object.u_outwaremx_unit[child_row] = arg_s_mtrldef_1.unit_scll[1]
  7456. dw_child.Object.u_outwaremx_rate[child_row] = arg_s_mtrldef_1.rate_scll[1]
  7457. ELSEIF arg_s_mtrldef_1.saleunit[1] = 3 THEN
  7458. dw_child.Object.u_outwaremx_unit[child_row] = arg_s_mtrldef_1.unit_sale[1]
  7459. dw_child.Object.u_outwaremx_rate[child_row] = arg_s_mtrldef_1.rate_sale[1]
  7460. END IF
  7461. End If
  7462. wf_get_price(child_row)
  7463. dw_child.Object.u_mtrldef_curware_qty[child_row] = ls_null
  7464. dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null
  7465. dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null
  7466. li_mtrlid=S_INSCUST2.mtrlid[ls_j] //客户物料名称
  7467. li_cusid=dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  7468. Select isnull(cusmtrlcode,''), isnull(cusmtrlname,''), isnull(cusmtrlmode,'')
  7469. Into :ls_cusmtrlmode, :ls_cusmtrlname, :ls_cusmtrlcode
  7470. From u_cusmtrlname
  7471. Where mtrlid= :li_mtrlid and cusid= :li_cusid ;
  7472. dw_child.Object.u_cusmtrlname_cusmtrlname[child_row] = ls_cusmtrlname
  7473. dw_child.Object.u_cusmtrlname_cusmtrlcode[child_row] = ls_cusmtrlcode
  7474. dw_child.Object.u_cusmtrlname_cusmtrlmode[child_row] =ls_cusmtrlmode
  7475. If f_find_tax(ll_custid,'u_cust',ld_tax) = 0 Then
  7476. ld_tax = 0
  7477. Else
  7478. dw_child.Object.u_outwaremx_tax[child_row] = ld_tax
  7479. End If
  7480. dw_child.Object.u_outwaremx_priceformula[child_row] = S_INSCUST2.priceformula[ls_j]
  7481. //计算单价
  7482. If S_INSCUST2.priceformula[ls_j] <> '' Then
  7483. arg_cmpl = null_cmpl
  7484. arg_cmpl.qty = dw_child.Object.u_outwaremx_enprice[child_row]
  7485. arg_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[child_row]
  7486. arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row]
  7487. arg_cmpl.price = dw_child.Object.u_outwaremx_enprice[child_row]
  7488. arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row]
  7489. arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row]
  7490. arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row]
  7491. arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row]
  7492. arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row]
  7493. arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row]
  7494. li_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row]
  7495. li_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  7496. Select price
  7497. Into :ld_cusprice
  7498. From u_cust
  7499. Inner JOIN u_sale_price_mx ON u_sale_price_mx.Pricelistid = u_cust.Pricelistid
  7500. Where u_sale_price_mx.mtrlid = :li_mtrlid
  7501. And u_cust.cusid = :li_cusid
  7502. order by u_sale_price_mx.sys_changetime desc;
  7503. If sqlca.SQLCode <> 0 Then
  7504. ld_cusprice = 0
  7505. End If
  7506. arg_cmpl.cusprice = ld_cusprice
  7507. arg_cmpl.num = 2
  7508. arg_cmpl.addvalue = 1
  7509. arg_cmpl.flag = True
  7510. ld_qty = 0
  7511. If f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 Then
  7512. MessageBox('提示',ls_msg, information!, OK! )
  7513. Return
  7514. End If
  7515. dw_child.Object.u_outwaremx_enprice[child_row] = ld_qty
  7516. End If
  7517. End If
  7518. Next
  7519. End If
  7520. End If
  7521. If sys_option_outware_if_saleqty = 0 Then
  7522. If ii_packqty_cmpl = 1 Then
  7523. dw_child.SetColumn('u_outwaremx_packqty')
  7524. Else
  7525. dw_child.SetColumn('u_outwaremx_uqty')
  7526. End If
  7527. // dw_child.SetColumn('u_outwaremx_uqty')
  7528. Else
  7529. dw_child.SetColumn('u_outwaremx_saleqty')
  7530. End If
  7531. dw_child.SetRedraw(True)
  7532. dw_child.SetFocus()
  7533. ////////////////////////////////// //
  7534. end event
  7535. event retrieve_childdw;call super::retrieve_childdw;Long row,uc_relid,ll_scid
  7536. row = dw_pageretr.GetRow()
  7537. IF row > 0 THEN
  7538. ll_scid = dw_pageretr.Object.u_outware_scid[row]
  7539. uc_relid = dw_pageretr.Object.u_outware_outwareid[row]
  7540. dw_child.SetRedraw (False)
  7541. dw_child.Retrieve(ll_scid,uc_relid)
  7542. dw_child.SetRedraw (True)
  7543. dw_fymx.SetRedraw (False)
  7544. dw_fymx.Retrieve(ll_scid,uc_relid)
  7545. dw_fymx.SetRedraw (True)
  7546. dw_bjmx.SetRedraw (False)
  7547. dw_bjmx.Retrieve(ll_scid,uc_relid)
  7548. dw_bjmx.SetRedraw (True)
  7549. this.TriggerEvent('ue_retrieve_his_pricemx')
  7550. ELSE
  7551. dw_child.Reset()
  7552. dw_fymx.Reset()
  7553. dw_bjmx.Reset()
  7554. END IF
  7555. end event
  7556. event ue_f9;call super::ue_f9;IF Not dw_edit_mode THEN RETURN
  7557. Long child_row
  7558. child_row = dw_uc.GetRow()
  7559. IF child_row = 0 THEN
  7560. MessageBox('提示','请选定出仓单!',information!,OK!)
  7561. RETURN
  7562. END IF
  7563. Long ll_ori_cusid
  7564. Long ll_scid, ll_moneyid
  7565. String ls_address
  7566. ll_ori_cusid = dw_uc.Object.u_outware_cusid[child_row]
  7567. IF Not IsValid(W_cust_edit) THEN
  7568. s_edit_index_tran s_ch_tran //传递参数使用
  7569. s_ch_tran.if_retrieve_all = False //是否一次RETRIEVE所有行
  7570. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  7571. s_ch_tran.arg_pkid = 0 //目标定位PKID (备用)
  7572. //查询列(物料编码)部分内容,用于初步筛选
  7573. dw_uc.AcceptText()
  7574. s_ch_tran.arg_string_code = Trim(dw_uc.Object.u_cust_cuscode[child_row])
  7575. OpenWithParm(W_cust_edit,s_ch_tran) //调用
  7576. s_custom S_INSCUST
  7577. S_INSCUST = Message.PowerObjectParm //接受返回结构
  7578. Long li_ifrel,ll_i
  7579. IF S_INSCUST.cusid > 0 THEN //正常返回值则可以取以下值
  7580. // IF S_INSCUST.cusid <> ll_ori_cusid And ll_ori_cusid <> 0 THEN
  7581. // FOR ll_i = 1 To dw_child.RowCount()
  7582. // IF dw_child.Object.u_outwaremx_relid[ll_i] > 0 THEN
  7583. // li_ifrel = 1
  7584. // EXIT
  7585. // END IF
  7586. // NEXT
  7587. //
  7588. // IF li_ifrel = 1 THEN
  7589. // IF MessageBox('询问','客户将要改变,明细内容已有原客户的订单内容,是否断续?',Question!,YesNo!) = 2 THEN
  7590. // RETURN
  7591. // ELSE
  7592. // FOR ll_i = 1 To dw_child.RowCount()
  7593. // dw_child.Object.u_outwaremx_ifrel[ll_i] = 0
  7594. // dw_child.Object.u_outwaremx_relid[ll_i] = 0
  7595. // dw_child.Object.u_outwaremx_relcode[ll_i] = ''
  7596. // NEXT
  7597. // END IF
  7598. // END IF
  7599. // END IF
  7600. //重置dw_child
  7601. IF wf_change_cusid(S_INSCUST.cusid) = 0 THEN RETURN
  7602. dw_uc.SetRedraw(False)
  7603. dw_uc.Object.u_outware_cusid[child_row] = S_INSCUST.cusid
  7604. dw_uc.Object.u_cust_name[child_row] = S_INSCUST.Name
  7605. dw_uc.Object.u_cust_cuscode[child_row] = S_INSCUST.cuscode
  7606. dw_uc.Object.u_outware_outrep[child_row] = S_INSCUST.bsntype
  7607. dw_uc.Object.u_outware_relstr_1[child_row] = S_INSCUST.freight
  7608. dw_uc.Object.u_outware_relstr_2[child_row] = S_INSCUST.freight_tele
  7609. dw_uc.Object.u_outware_relstr_3[child_row] = S_INSCUST.freight_address
  7610. dw_uc.Object.u_outware_rel_address[child_row] = S_INSCUST.Address
  7611. dw_uc.Object.u_outware_rel_tele[child_row] = S_INSCUST.tele
  7612. dw_uc.Object.u_outware_rel_tele1[child_row] = S_INSCUST.tele1
  7613. dw_uc.Object.u_outware_rel_fax[child_row] = S_INSCUST.faxno
  7614. dw_uc.Object.u_outware_rel_rep[child_row] = S_INSCUST.rep
  7615. IF S_INSCUST.banktypeid > 0 THEN
  7616. dw_uc.Object.u_outware_relint_1[child_row] = S_INSCUST.banktypeid
  7617. END IF
  7618. IF Len(S_INSCUST.freight_address) > 0 THEN
  7619. dw_uc.Object.u_outware_relstr_3[child_row] = S_INSCUST.freight_address
  7620. ELSE
  7621. SELECT
  7622. Address Into :ls_address
  7623. From u_station
  7624. Where stationname = :S_INSCUST.freight;
  7625. dw_uc.Object.u_outware_relstr_3[child_row] = ls_address
  7626. END IF
  7627. dw_uc.SetRedraw(True)
  7628. ll_scid = dw_uc.Object.u_outware_scid[child_row]
  7629. ll_moneyid = dw_uc.Object.u_outware_relint_2[child_row]
  7630. wf_getcusrepamt_info(ll_scid,S_INSCUST.cusid,ll_moneyid)
  7631. dw_uc.SetColumn("u_outware_rel_address")
  7632. END IF
  7633. END IF
  7634. end event
  7635. event ue_f7;call super::ue_f7;//引入销售订单
  7636. IF Not dw_edit_mode THEN RETURN
  7637. IF dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 THEN RETURN
  7638. Long ll_storageid
  7639. Long ll_scid
  7640. Long ll_taskid
  7641. String ls_taskcode
  7642. long ll_cusid
  7643. dw_uc.AcceptText()
  7644. ll_scid = dw_uc.Object.u_outware_scid[dw_uc.GetRow()]
  7645. IF sys_option_hide_ware = 0 THEN
  7646. ll_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  7647. IF ll_storageid = 0 Or IsNull(ll_storageid) THEN
  7648. MessageBox('提示','请先选择仓库',information!,OK!)
  7649. RETURN
  7650. END IF
  7651. END IF
  7652. s_saletask_find s_find
  7653. s_find.scid = ll_scid
  7654. s_find.areaid = sys_areaid
  7655. s_find.cusid= dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  7656. //THIS.Enabled = FALSE
  7657. IF Not IsValid(w_saletask_ch) THEN
  7658. s_saletask_ch s_saletask
  7659. OpenWithParm(w_saletask_ch,s_find)
  7660. s_saletask = Message.PowerObjectParm
  7661. IF s_saletask.taskid > 0 THEN
  7662. wf_ue_f7(s_saletask)
  7663. if IsNull(s_saletask.relcode) or s_saletask.relcode = '' then
  7664. dw_uc.Object.u_outware_part[dw_uc.GetRow()] = s_saletask.taskcode
  7665. else
  7666. dw_uc.Object.u_outware_part[dw_uc.GetRow()] = s_saletask.relcode
  7667. end if
  7668. END IF
  7669. END IF
  7670. //THIS.Enabled = TRUE
  7671. end event
  7672. event ue_viewprint;call super::ue_viewprint;//IF Not (f_power_ind(18) or f_power_ind(472)) THEN
  7673. IF Not (f_power_ind(18) ) THEN
  7674. MessageBox('提示',sys_msg_pow,information!,OK!)
  7675. RETURN
  7676. END IF
  7677. s_print_msg ls_prmsg
  7678. ls_prmsg.retr_pram_falg = 15
  7679. IF dw_pageretr.RowCount() = 0 THEN
  7680. MessageBox('提示','没有可打印的单据!',information!,OK!)
  7681. RETURN
  7682. END IF
  7683. IF sys_option_confirmprint_sale = 1 THEN
  7684. IF dw_pageretr.Object.u_outware_priceflag[dw_pageretr.GetRow()] <> 1 THEN
  7685. MessageBox('提示','单据还未确认,不能打印!',information!,OK!)
  7686. RETURN
  7687. END IF
  7688. END IF
  7689. IF sys_option_auditprint_sale = 1 THEN
  7690. IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] <> 1 THEN
  7691. MessageBox('提示','单据还未审核,不能打印!',information!,OK!)
  7692. RETURN
  7693. END IF
  7694. END IF
  7695. IF sys_option_print_one = 1 THEN
  7696. IF dw_pageretr.Object.u_outware_printnum[dw_pageretr.GetRow()] > 0 THEN
  7697. MessageBox('提示','根据系统选项275设置,发货单只能打印一次!',information!,OK!)
  7698. RETURN
  7699. END IF
  7700. END IF
  7701. If f_power_ind(2002,sys_msg_pow) And Not sys_power_issuper Then
  7702. If dw_pageretr.Object.u_outware_printnum[dw_pageretr.GetRow()] > 0 Then
  7703. MessageBox('系统提示','目标单据已打印,你当前权限不能重复打印单据!')
  7704. Return
  7705. End If
  7706. End If
  7707. long ll_scid, ll_outwareid, ll_cusid, ll_moneyid
  7708. ll_scid = dw_pageretr.Object.u_outware_scid[dw_pageretr.GetRow()]
  7709. ll_outwareid = dw_pageretr.Object.u_outware_outwareid[dw_pageretr.GetRow()]
  7710. ll_cusid = dw_pageretr.Object.u_outware_cusid[dw_pageretr.GetRow()]
  7711. ll_moneyid = dw_pageretr.Object.u_outware_relint_2[dw_pageretr.GetRow()]
  7712. IF sys_option_cusrepamt_limit = 2 THEN
  7713. wf_getcusrepamt_info(ll_scid,ll_cusid,ll_moneyid)
  7714. IF cur_cusrepamtflag = -1 THEN
  7715. MessageBox('系统提示','系统选项080限制~r~n'+cur_cusrepamtstr)
  7716. RETURN
  7717. END IF
  7718. END IF
  7719. IF ls_newname <> '' THEN
  7720. IF li_auditprint = 1 THEN
  7721. IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] = 0 THEN
  7722. MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!)
  7723. RETURN
  7724. END IF
  7725. END IF
  7726. ls_prmsg.obj_dwNAME = ls_newname
  7727. ELSE
  7728. ls_prmsg.obj_dwNAME = 'dw_rp_outware_sale_edit'
  7729. END IF
  7730. ls_prmsg.tag_text = '销售发货单'
  7731. ls_prmsg.filter_string = ''
  7732. ls_prmsg.pagech_flag = 0
  7733. ls_prmsg.retr_scid = ll_scid
  7734. ls_prmsg.retr_pramnmb = ll_outwareid
  7735. ls_prmsg.rowcnt = dw_child.RowCount()
  7736. IF ifpic = 1 THEN
  7737. String ls_msg
  7738. IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN
  7739. MessageBox('提示','下载图片失败!',information!,OK!)
  7740. RETURN
  7741. END IF
  7742. END IF
  7743. OpenWithParm(w_publ_preview,ls_prmsg)
  7744. IF ifpic = 1 THEN
  7745. Long li
  7746. FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path)
  7747. IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN
  7748. FileDelete(LS_PRMSG.s_pic.path[li])
  7749. END IF
  7750. NEXT
  7751. END IF
  7752. //**更新打印次料
  7753. String arg_msg
  7754. printnum = Message.DoubleParm
  7755. f_update_printnum('u_outware',printnum,ll_scid,ll_outwareid,'','',arg_msg,TRUE)
  7756. wf_refresh_curuc(ll_scid,ll_outwareid)
  7757. string ls_code
  7758. ls_code = dw_pageretr.Object.u_outware_outwarecode[dw_pageretr.GetRow()]
  7759. IF f_billevent_trigger (104, 1, ls_code, arg_msg) = 0 THEN
  7760. MessageBox('Error',arg_msg)
  7761. END IF
  7762. end event
  7763. event ue_print;call super::ue_print;//--直接打印
  7764. IF Not (f_power_ind(18) ) THEN
  7765. MessageBox('提示',sys_msg_pow,information!,OK!)
  7766. RETURN
  7767. END IF
  7768. uo_print_preview uo_print
  7769. S_print_MSG LS_PRMSG
  7770. IF dw_pageretr.RowCount() = 0 THEN
  7771. MessageBox('提示','没有可打印的单据!',information!,OK!)
  7772. RETURN
  7773. END IF
  7774. IF MessageBox ("询问","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  7775. IF sys_option_confirmprint_sale = 1 THEN
  7776. IF dw_pageretr.Object.u_outware_priceflag[dw_pageretr.GetRow()] <> 1 THEN
  7777. MessageBox('提示','单据还未确认,不能打印!',information!,OK!)
  7778. RETURN
  7779. END IF
  7780. END IF
  7781. IF sys_option_auditprint_sale = 1 THEN
  7782. IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] <> 1 THEN
  7783. MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!)
  7784. RETURN
  7785. END IF
  7786. END IF
  7787. IF sys_option_print_one = 1 THEN
  7788. IF dw_pageretr.Object.u_outware_printnum[dw_pageretr.GetRow()] > 0 THEN
  7789. MessageBox('提示','根据系统选项275设置,发货单只能打印一次!',information!,OK!)
  7790. RETURN
  7791. END IF
  7792. END IF
  7793. If f_power_ind(2002,sys_msg_pow) And Not sys_power_issuper Then
  7794. If dw_pageretr.Object.u_outware_printnum[dw_pageretr.GetRow()] > 0 Then
  7795. MessageBox('系统提示','目标单据已打印,你当前权限不能重复打印单据!')
  7796. Return
  7797. End If
  7798. End If
  7799. long ll_scid, ll_outwareid, ll_cusid, ll_moneyid
  7800. ll_scid = dw_pageretr.Object.u_outware_scid[dw_pageretr.GetRow()]
  7801. ll_outwareid = dw_pageretr.Object.u_outware_outwareid[dw_pageretr.GetRow()]
  7802. ll_cusid = dw_pageretr.Object.u_outware_cusid[dw_pageretr.GetRow()]
  7803. ll_moneyid = dw_pageretr.Object.u_outware_relint_2[dw_pageretr.GetRow()]
  7804. IF sys_option_cusrepamt_limit = 2 THEN
  7805. wf_getcusrepamt_info(ll_scid,ll_cusid,ll_moneyid)
  7806. IF cur_cusrepamtflag = -1 THEN
  7807. MessageBox('系统提示','系统选项080限制~r~n'+cur_cusrepamtstr)
  7808. RETURN
  7809. END IF
  7810. END IF
  7811. LS_PRMSG.retr_pram_falg = 15
  7812. IF ls_newname <> '' THEN
  7813. IF li_auditprint = 1 THEN
  7814. IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] = 0 THEN
  7815. MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!)
  7816. RETURN
  7817. END IF
  7818. END IF
  7819. LS_PRMSG.obj_dwNAME = ls_newname
  7820. ELSE
  7821. LS_PRMSG.obj_dwNAME = 'dw_rp_outware_sale_edit'
  7822. END IF
  7823. LS_PRMSG.TAG_TEXT = '销售单'
  7824. LS_PRMSG.FILTER_STRING = ''
  7825. LS_PRMSG.PAGECH_FLAG = 0
  7826. LS_PRMSG.retr_scid = ll_scid
  7827. LS_PRMSG.retr_pramnmb = ll_outwareid
  7828. LS_PRMSG.rowcnt = dw_child.RowCount()
  7829. IF ifpic = 1 THEN
  7830. String ls_msg
  7831. IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN
  7832. MessageBox('提示','下载图片失败!',information!,OK!)
  7833. RETURN
  7834. END IF
  7835. END IF
  7836. uo_print.FACT_PRINT_MSG = LS_PRMSG
  7837. String arg_msg
  7838. IF uo_print.uof_print_begin(arg_msg) = 0 THEN
  7839. MessageBox("错误",arg_msg,stopsign!,OK!)
  7840. RETURN
  7841. END IF
  7842. uo_print.ds_print()
  7843. IF ifpic = 1 THEN
  7844. Long li
  7845. FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path)
  7846. IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN
  7847. FileDelete(LS_PRMSG.s_pic.path[li])
  7848. END IF
  7849. NEXT
  7850. END IF
  7851. f_update_printnum('u_outware',1,ll_scid,ll_outwareid,'','',arg_msg,TRUE)
  7852. wf_refresh_curuc(ll_scid,ll_outwareid)
  7853. string ls_code
  7854. ls_code = dw_pageretr.Object.u_outware_outwarecode[dw_pageretr.GetRow()]
  7855. IF f_billevent_trigger (104, 1, ls_code, arg_msg) = 0 THEN
  7856. MessageBox('Error',arg_msg)
  7857. END IF
  7858. end event
  7859. event ue_addzy;call super::ue_addzy;IF Not (f_power_ind(699) OR f_power_ind(766)) THEN
  7860. MessageBox('提示',sys_msg_pow,information!,OK!)
  7861. RETURN
  7862. END IF
  7863. IF dw_edit_mode THEN RETURN
  7864. String arg_msg = ''
  7865. String ls_str
  7866. Long uc_row
  7867. s_inputbox s_sreu
  7868. uc_row = dw_pageretr.GetRow()
  7869. IF uc_row <= 0 THEN
  7870. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  7871. RETURN
  7872. END IF
  7873. s_sreu.Title = '请输入要补充到备注的内容'
  7874. s_sreu.old_text = ''
  7875. OpenWithParm(w_inputbox,s_sreu)
  7876. ls_str = Message.StringParm
  7877. IF Trim(ls_str) = '' OR IsNull(ls_str) THEN RETURN
  7878. IF uo_ware.add_dscrp(dw_pageretr.Object.u_outware_scid[uc_row],dw_pageretr.Object.u_outware_outwareid[uc_row],ls_str,arg_msg) = 0 THEN
  7879. MessageBox('错误',arg_msg,stopsign!,OK!)
  7880. RETURN
  7881. ELSE
  7882. MessageBox('提示','添加备注操作成功!',information!,OK!)
  7883. wf_refresh_curuc(dw_pageretr.Object.u_outware_scid[uc_row],dw_pageretr.Object.u_outware_outwareid[uc_row])
  7884. END IF
  7885. end event
  7886. event resize;call super::resize;st_msg.width = this.width - (3600 - 1170)
  7887. st_cusbalc.width = this.width / 2
  7888. cb_fhmx.Y = dw_uc.Y + dw_uc.Height
  7889. cb_fymx.Y = cb_fhmx.Y
  7890. cb_bjmx.Y = cb_fhmx.Y
  7891. cb_scanbill.Y= cb_fhmx.Y
  7892. cb_new_scanbill.y= cb_fhmx.Y
  7893. dw_child.X = 0
  7894. dw_child.Y = cb_fhmx.Y + cb_fhmx.Height
  7895. dw_child.Width = this.workspacewidth() - dw_child.X
  7896. dw_child.Height = THIS.workspaceheight() - dw_child.Y
  7897. dw_fymx.x = 0
  7898. dw_fymx.y = dw_child.Y
  7899. dw_fymx.width = dw_child.width
  7900. dw_fymx.height = dw_child.height
  7901. dw_bjmx.x = 0
  7902. dw_bjmx.y = dw_child.Y
  7903. dw_bjmx.width = dw_child.width
  7904. dw_bjmx.height = dw_child.height
  7905. end event
  7906. event ue_f12;call super::ue_f12;IF NOT IsValid(w_unit_ch) THEN
  7907. IF dw_child.GetRow() < 1 THEN RETURN
  7908. Long ls_mtrlid //,ls_cusid,ls_moneyid
  7909. // String ls_1stunit,arg_msg,ls_status,ls_woodcode,ls_pcode
  7910. // Decimal rtn_price,rtn_zqrate,rtn_rate
  7911. // ls_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  7912. // ls_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  7913. //
  7914. // IF IsNull(ls_cusid) OR ls_cusid = 0 THEN
  7915. // THIS.TriggerEvent("ue_f9")
  7916. // END IF
  7917. ls_mtrlid = dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()]
  7918. // ls_status = dw_child.Object.u_outwaremx_status[dw_child.GetRow()]
  7919. // ls_woodcode = dw_child.Object.u_outwaremx_woodcode[dw_child.GetRow()]
  7920. // ls_pcode = dw_child.Object.u_outwaremx_pcode[dw_child.GetRow()]
  7921. OpenWithParm(w_unit_ch,ls_mtrlid)
  7922. s_unit s_inscust
  7923. s_inscust = Message.PowerObjectParm //接受返回结构
  7924. IF s_inscust.unit <> '' THEN
  7925. dw_child.Object.u_outwaremx_unit[dw_child.GetRow()] = s_inscust.unit
  7926. dw_child.Object.u_outwaremx_rate[dw_child.GetRow()] = s_inscust.rate
  7927. wf_get_price(dw_child.GetRow())
  7928. END IF
  7929. END IF
  7930. end event
  7931. event ue_addmx;IF Not dw_edit_mode THEN RETURN
  7932. Long uc_row,ll_flag,ll_priceflag
  7933. uc_row = dw_pageretr.GetRow()
  7934. IF uc_row <= 0 THEN
  7935. MessageBox('提示','请先选择单据',information!,OK!)
  7936. RETURN
  7937. END IF
  7938. dw_uc.AcceptText()
  7939. IF ins_dw_select = 0 THEN
  7940. ll_priceflag = dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()]
  7941. IF ll_priceflag = 1 THEN
  7942. MessageBox('提示','单据已确认,不能增加明细内容',information!,OK!)
  7943. RETURN
  7944. END IF
  7945. ll_flag = dw_pageretr.Object.flag[uc_row]
  7946. IF ll_flag = 1 THEN
  7947. MessageBox('提示','单据已仓审,不能增加明细内容',information!,OK!)
  7948. RETURN
  7949. END IF
  7950. This.TriggerEvent('ue_f8')
  7951. dw_child.SetFocus()
  7952. ELSE
  7953. This.TriggerEvent('ue_add_fymx')
  7954. dw_fymx.SetFocus()
  7955. END IF
  7956. end event
  7957. event ue_deletemx;IF Not dw_edit_mode THEN RETURN
  7958. Long uc_row,ll_flag,ll_priceflag
  7959. uc_row = dw_pageretr.GetRow()
  7960. IF uc_row <= 0 THEN
  7961. MessageBox('提示','请先选择单据',information!,OK!)
  7962. RETURN
  7963. END IF
  7964. ll_flag = dw_pageretr.Object.flag[uc_row]
  7965. IF ll_flag = 1 THEN
  7966. MessageBox('提示','单据已仓审,不能删除明细内容',information!,OK!)
  7967. RETURN
  7968. END IF
  7969. ll_priceflag = dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()]
  7970. IF ll_priceflag = 1 THEN
  7971. MessageBox('提示','单据已确认,不能删除明细内容',information!,OK!)
  7972. RETURN
  7973. END IF
  7974. IF MessageBox ("询问","是否确定要删除当前细目记录?",Question!,YesNo! ) = 2 THEN RETURN
  7975. IF ins_dw_select = 0 THEN
  7976. IF dw_child.GetRow() = 0 THEN
  7977. MessageBox('提示','请选择删除的行对象!',information!,OK!)
  7978. RETURN
  7979. END IF
  7980. dw_child.DeleteRow (0)
  7981. dw_child.TriggerEvent (RowFocusChanged!)
  7982. ELSE
  7983. IF dw_fymx.GetRow() = 0 THEN
  7984. MessageBox('提示','请选择删除的行对象!')
  7985. RETURN
  7986. END IF
  7987. dw_fymx.DeleteRow (dw_fymx.GetRow() )
  7988. IF dw_fymx.RowCount() = 0 THEN dw_fymx.InsertRow(0)
  7989. dw_fymx.TriggerEvent (RowFocusChanged!)
  7990. END IF
  7991. end event
  7992. event ue_copyrow;Long uc_row,ll_flag,ll_priceflag
  7993. uc_row = dw_uc.GetRow()
  7994. IF uc_row <= 0 THEN
  7995. MessageBox('提示','请先选择单据',information!,OK!)
  7996. RETURN
  7997. END IF
  7998. ll_priceflag = dw_uc.object.u_outware_priceflag[dw_uc.GetRow()]
  7999. IF ll_priceflag = 1 THEN
  8000. MessageBox('提示','单据已确认,不能复制明细内容',information!,OK!)
  8001. RETURN
  8002. END IF
  8003. ll_flag = dw_pageretr.Object.flag[uc_row]
  8004. IF ll_flag = 1 THEN
  8005. MessageBox('提示','单据已仓审,不能复制明细内容',information!,OK!)
  8006. RETURN
  8007. END IF
  8008. long ll_childrow
  8009. ll_childrow = dw_child.GETROW()
  8010. IF ll_childrow=0 THEN
  8011. MESSAGEBOX('提示','请选择复制对象!',information!,OK!)
  8012. RETURN
  8013. END IF
  8014. dw_child.RowsCopy (ll_childrow,ll_childrow,Primary!,ds_copypaste,1,Primary!)
  8015. ds_copypaste.RowsCopy (1,1,Primary!,dw_child,dw_child.rowcount() + 1,Primary!)
  8016. ds_copypaste.reset()
  8017. dw_child.selectrow(0,false)
  8018. dw_child.setrow(dw_child.rowcount())
  8019. dw_child.scrolltorow(dw_child.rowcount())
  8020. dw_child.selectrow(dw_child.rowcount(),true)
  8021. end event
  8022. event ue_insertmx;Long uc_row,ll_flag,ll_priceflag
  8023. uc_row = dw_pageretr.GetRow()
  8024. IF uc_row <= 0 THEN
  8025. MessageBox('提示','请先选择单据',information!,OK!)
  8026. RETURN
  8027. END IF
  8028. ll_priceflag = dw_uc.object.u_outware_priceflag[dw_uc.GetRow()]
  8029. IF ll_priceflag = 1 THEN
  8030. MessageBox('提示','单据已确认,不能增加明细内容',information!,OK!)
  8031. RETURN
  8032. END IF
  8033. ll_flag = dw_pageretr.Object.flag[uc_row]
  8034. IF ll_flag = 1 THEN
  8035. MessageBox('提示','单据已仓审,不能增加明细内容',information!,OK!)
  8036. RETURN
  8037. END IF
  8038. long ll_childrow,li_row
  8039. ll_childrow = dw_child.getrow()
  8040. li_row = dw_child.insertrow(ll_childrow)
  8041. dw_child.selectrow(0,false)
  8042. dw_child.setrow(li_row)
  8043. dw_child.scrolltorow(li_row)
  8044. dw_child.selectrow(li_row,true)
  8045. end event
  8046. event ue_before_open;call super::ue_before_open;dw_fymx.SetTransObject(sqlca)
  8047. dw_bjmx.SetTransObject(sqlca)
  8048. IF sys_option_allow_edit_outrep = 1 THEN
  8049. dw_uc.Modify( 'b_1.visible = '+'"1"')
  8050. END IF
  8051. end event
  8052. event ue_rpt_viewprint;call super::ue_rpt_viewprint;IF Not (f_power_ind(18) ) THEN
  8053. MessageBox('提示',sys_msg_pow,information!,OK!)
  8054. RETURN
  8055. END IF
  8056. Long row,uc_relid,ll_scid
  8057. row = dw_pageretr.GetRow()
  8058. IF row = 0 THEN RETURN
  8059. IF ls_rpname = '' THEN RETURN
  8060. IF li_auditprint = 1 THEN
  8061. IF dw_pageretr.Object.flag[row] = 0 THEN
  8062. MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!)
  8063. RETURN
  8064. END IF
  8065. END IF
  8066. s_rpt_print_msg s_print
  8067. s_print.retr_pram_falg = 15
  8068. s_print.rpid = ls_msgprintid_rpt
  8069. s_print.retr_flag = TRUE
  8070. s_print.tag_text = THIS.Title
  8071. s_print.rpname = ls_rpname
  8072. s_print.retr_scid = dw_pageretr.Object.u_outware_scid[row]
  8073. s_print.retr_pramnmb = dw_pageretr.Object.u_outware_outwareid[row]
  8074. s_print.rowcnt = dw_child.RowCount()
  8075. OpenWithParm(w_rpt_preview,s_print)
  8076. //**更新打印次料
  8077. String arg_msg
  8078. printnum = Message.DoubleParm
  8079. f_update_printnum('u_outware',printnum,dw_pageretr.Object.u_outware_scid[dw_pageretr.GetRow()],dw_pageretr.Object.u_outware_outwareid[dw_pageretr.GetRow()],'','',arg_msg,TRUE)
  8080. end event
  8081. event ue_rpt_print;call super::ue_rpt_print;IF Not (f_power_ind(18) ) THEN
  8082. MessageBox('提示',sys_msg_pow,information!,OK!)
  8083. RETURN
  8084. END IF
  8085. Long row,uc_relid,ll_scid
  8086. row = dw_pageretr.GetRow()
  8087. IF row = 0 THEN RETURN
  8088. uo_rpt_print_preview uo_print
  8089. S_rpt_print_MSG LS_PRMSG
  8090. IF dw_pageretr.RowCount() = 0 THEN
  8091. MessageBox('提示','没有可打印的单据!',information!,OK!)
  8092. RETURN
  8093. END IF
  8094. IF ls_rpname = '' THEN RETURN
  8095. IF li_auditprint = 1 THEN
  8096. IF dw_pageretr.Object.flag[row] = 0 THEN
  8097. MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!)
  8098. RETURN
  8099. END IF
  8100. END IF
  8101. IF MessageBox ("询问","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  8102. LS_PRMSG.retr_pram_falg = 15
  8103. LS_PRMSG.TAG_TEXT = THIS.Title
  8104. LS_PRMSG.rpname = ls_rpname
  8105. LS_PRMSG.FILTER_STRING = ''
  8106. LS_PRMSG.PAGECH_FLAG = 0
  8107. LS_PRMSG.rpid = ls_msgprintid_rpt
  8108. LS_PRMSG.retr_scid = dw_pageretr.Object.u_outware_scid[row]
  8109. LS_PRMSG.retr_pramnmb = dw_pageretr.Object.u_outware_outwareid[row]
  8110. LS_PRMSG.rowcnt = dw_child.RowCount()
  8111. uo_print.FACT_PRINT_MSG = LS_PRMSG
  8112. String arg_msg
  8113. IF uo_print.uof_print_begin(arg_msg) = 0 THEN
  8114. MessageBox("错误",arg_msg,stopsign!,OK!)
  8115. RETURN
  8116. END IF
  8117. uo_print.ds_print()
  8118. //**更新打印次料
  8119. printnum = Message.DoubleParm
  8120. f_update_printnum('u_outware',printnum,dw_pageretr.Object.u_outware_scid[dw_pageretr.GetRow()],dw_pageretr.Object.u_outware_outwareid[dw_pageretr.GetRow()],'','',arg_msg,TRUE)
  8121. end event
  8122. event ue_allowedit;call super::ue_allowedit;
  8123. IF sys_option_packqty_sale = 0 THEN
  8124. dw_child.Modify("u_outwaremx_packqty.protect = 1")
  8125. ELSE
  8126. dw_child.Modify("u_outwaremx_packqty.protect = 0")
  8127. END IF
  8128. end event
  8129. event ue_send_ljfieb;call super::ue_send_ljfieb;IF Not f_power_ind(3152) THEN
  8130. MessageBox(publ_operator,sys_msg_pow)
  8131. RETURN
  8132. END IF
  8133. IF dw_edit_mode THEN RETURN
  8134. IF sys_email_sqlca.DBHandle() = 0 THEN
  8135. MessageBox('Error','电子商务数据库连接失败,请检查')
  8136. RETURN
  8137. END IF
  8138. IF MessageBox('询问','是否确认要发送单据给客户?',question!,yesno!) = 2 THEN RETURN
  8139. Long ll_scid,ll_outwareid
  8140. String ls_taskcode
  8141. Long ll_row
  8142. Int li_ifecomm
  8143. String arg_summary,arg_postscript,arg_remark
  8144. String arg_msg
  8145. ll_row = dw_pageretr.GetRow()
  8146. IF ll_row <= 0 THEN
  8147. MessageBox('系统提示','请选择要发送的单据')
  8148. RETURN
  8149. END IF
  8150. ll_scid = dw_pageretr.Object.u_outware_scid[ll_row]
  8151. ll_outwareid = dw_pageretr.Object.u_outware_outwareid[ll_row]
  8152. SELECT u_cust.ifecomm
  8153. INTO :li_ifecomm
  8154. FROM u_outware INNER JOIN
  8155. u_cust ON u_outware.cusid = u_cust.cusid
  8156. WHERE u_outware.scid = :ll_scid
  8157. And u_outware.outwareid = :ll_outwareid Using sqlca;
  8158. IF sqlca.SQLCode <> 0 THEN
  8159. MessageBox('系统提示','查询销售发货单相关客户通信信息失败,请检查设置,'+sqlca.SQLErrText)
  8160. RETURN
  8161. END IF
  8162. IF li_ifecomm = 0 THEN
  8163. MessageBox('系统提示','客户没有使用电子商务,不能发送单据')
  8164. RETURN
  8165. END IF
  8166. s_packet_ljfieb s_pack,s_return
  8167. OpenWithParm(w_dscrp_edit_ljfieb,s_pack)
  8168. s_return = Message.PowerObjectParm
  8169. if s_return.returnflag <> 1 then return
  8170. arg_postscript = s_return.postscript
  8171. arg_remark = s_return.remark
  8172. IF uo_fieb.send_outware(ll_scid,ll_outwareid,arg_postscript,arg_remark,arg_msg,True) = 0 THEN
  8173. MessageBox('Erorr',arg_msg)
  8174. RETURN
  8175. END IF
  8176. MessageBox('系统提示','提交成功!')
  8177. end event
  8178. event ue_f11;call super::ue_f11;//引入销售发货历史, 用于选择明细内容
  8179. IF Not dw_edit_mode THEN RETURN
  8180. IF flag = 1 THEN RETURN
  8181. Long child_row,ins_storageid = 0,cnt_childdw
  8182. Long ll_moneyid
  8183. decimal ld_tax
  8184. dw_uc.AcceptText()
  8185. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  8186. IF ll_moneyid = 0 Or IsNull(ll_moneyid) THEN
  8187. MessageBox('提示','请先选择币种',information!,OK!)
  8188. RETURN
  8189. END IF
  8190. IF dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 THEN RETURN
  8191. ins_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  8192. IF ins_storageid = 0 Or IsNull(ins_storageid) THEN
  8193. MessageBox('提示','请先选择仓库',information!,OK!)
  8194. RETURN
  8195. END IF
  8196. Int li_if_cus_mtrlware
  8197. SELECT balctype INTO :li_if_cus_mtrlware
  8198. FROM u_storage
  8199. Where storageid = :ins_storageid;
  8200. IF sqlca.SQLCode <> 0 THEN
  8201. MessageBox('错误','查询仓库是否使用客户库存失败',stopsign!,OK!)
  8202. RETURN
  8203. END IF
  8204. Long ls_null
  8205. s_edit_index_tran s_tranf8 //传递参数使用
  8206. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  8207. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  8208. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  8209. s_tranf8.b_long = 0
  8210. Long chc = 1,ls_j,ls_custid
  8211. SetNull(ls_null)
  8212. ls_custid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  8213. IF IsNull(ls_custid) Or ls_custid = 0 THEN
  8214. This.TriggerEvent("ue_f9")
  8215. END IF
  8216. child_row = dw_child.GetRow()
  8217. cnt_childdw = dw_child.RowCount()
  8218. dw_uc.AcceptText()
  8219. ls_custid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  8220. IF li_if_cus_mtrlware = 1 THEN //是否客户库存
  8221. s_tranf8.c_long = ls_custid
  8222. ELSE
  8223. s_tranf8.c_long = -1
  8224. END IF
  8225. IF Not IsValid(w_mtrlware_storageid_ch_2) THEN
  8226. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  8227. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  8228. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  8229. s_tranf8.d_long = ins_storageid
  8230. s_tranf8.e_long = ls_custid
  8231. dw_child.AcceptText()
  8232. IF dw_child.GetRow() > 0 THEN s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()])
  8233. OpenWithParm(w_mtrlware_storageid_ch_2,s_tranf8)
  8234. s_mtrlware_noalloc_array S_INSCUST
  8235. S_INSCUST = Message.PowerObjectParm
  8236. FOR ls_j = 1 To UpperBound(S_INSCUST.mtrlwareid)
  8237. IF S_INSCUST.mtrlwareid[ls_j] > 0 THEN
  8238. IF dw_child.GetRow() > 0 THEN
  8239. IF dw_child.Object.u_outwaremx_mtrlid[child_row] <> 0 THEN
  8240. child_row = dw_child.InsertRow (0)
  8241. ELSE
  8242. child_row = dw_child.GetRow()
  8243. END IF
  8244. ELSE
  8245. child_row = dw_child.InsertRow (0)
  8246. END IF
  8247. string ls_cusmtrlcode,ls_cusmtrlname,ls_cusmtrlmode//客户物料名称
  8248. long ls_cusid,ls_mtrlid
  8249. ls_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  8250. ls_mtrlid =S_INSCUST.mtrlid[ls_j]
  8251. Select isnull(cusmtrlcode,''), isnull(cusmtrlname,''), isnull(cusmtrlmode,'')
  8252. Into :ls_cusmtrlcode, :ls_cusmtrlname, :ls_cusmtrlmode
  8253. From u_cusmtrlname
  8254. Where mtrlid= :ls_mtrlid and cusid= :ls_cusid ;
  8255. dw_child.Object.u_cusmtrlname_cusmtrlname[child_row] = ls_cusmtrlname
  8256. dw_child.Object.u_cusmtrlname_cusmtrlcode[child_row] = ls_cusmtrlcode
  8257. dw_child.Object.u_cusmtrlname_cusmtrlmode[child_row] =ls_cusmtrlmode
  8258. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[ls_j]
  8259. dw_child.Object.u_outwaremx_mtrlid[child_row] = S_INSCUST.mtrlid[ls_j]
  8260. dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.u_mtrldef_mtrlcode[ls_j]
  8261. dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.u_mtrldef_mtrlname[ls_j]
  8262. dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST.u_mtrldef_mtrlmode[ls_j]
  8263. dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j]
  8264. IF sys_option_outware_Sale_ware = 0 THEN
  8265. dw_child.Object.u_outwaremx_saleqty[child_row] = 0
  8266. dw_child.Object.u_outwaremx_uqty[child_row] = 0
  8267. dw_child.Object.u_outwaremx_addqty[child_row] = 0
  8268. ELSEIF sys_option_outware_Sale_ware = 1 THEN
  8269. dw_child.Object.u_outwaremx_saleqty[child_row] = S_INSCUST.noallocqty[ls_j]- S_INSCUST.noauditingqty[ls_j]
  8270. dw_child.Object.u_outwaremx_uqty[child_row] = S_INSCUST.noallocqty[ls_j]- S_INSCUST.noauditingqty[ls_j]
  8271. dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j]- S_INSCUST.noauditingaddqty[ls_j]
  8272. ELSE
  8273. dw_child.Object.u_outwaremx_saleqty[child_row] = S_INSCUST.noallocqty[ls_j]
  8274. dw_child.Object.u_outwaremx_uqty[child_row] = S_INSCUST.noallocqty[ls_j]
  8275. dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j]
  8276. END IF
  8277. dw_child.Object.u_outwaremx_planprice[child_row] = S_INSCUST.planprice[ls_j]
  8278. dw_child.Object.u_outwaremx_storageid[child_row] = S_INSCUST.storageid[ls_j]
  8279. dw_child.Object.u_outwaremx_plancode[child_row] = S_INSCUST.plancode[ls_j]
  8280. dw_child.Object.u_outwaremx_dxflag[child_row] = S_INSCUST.dxflag[ls_j]
  8281. dw_child.Object.u_outwaremx_status[child_row] = S_INSCUST.status[ls_j]
  8282. dw_child.Object.u_outwaremx_woodcode[child_row] = S_INSCUST.woodcode[ls_j]
  8283. dw_child.Object.u_outwaremx_pcode[child_row] = S_INSCUST.pcode[ls_j]
  8284. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST.u_mtrldef_zxmtrlmode[ls_j]
  8285. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST.u_mtrldef_mtrlsectype[ls_j]
  8286. dw_child.Object.u_mtrldef_lmsaleprice[child_row] = S_INSCUST.lmsaleprice[ls_j]
  8287. //查询单位
  8288. dw_child.Object.u_outwaremx_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j]
  8289. decimal lde_rate
  8290. f_find_unitrate(s_inscust.mtrlid[ls_j], s_inscust.u_mtrldef_unit[ls_j], lde_rate)
  8291. dw_child.Object.u_outwaremx_rate[child_row] = lde_rate
  8292. //查询单价
  8293. wf_get_price(child_row)
  8294. dw_child.Object.u_mtrldef_curware_qty[child_row] = S_INSCUST.noallocqty[ls_j]
  8295. dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null
  8296. dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null
  8297. // dw_child.SetColumn('u_outwaremx_uqty')
  8298. dw_child.Object.u_outwaremx_net_weight[child_row] = S_INSCUST.u_mtrldef_net_weight[ls_j]
  8299. dw_child.Object.u_outwaremx_gross_weight[child_row] = S_INSCUST.u_mtrldef_gross_weight[ls_j]
  8300. dw_child.Object.u_outwaremx_cubage[child_row] = S_INSCUST.u_mtrldef_cubage[ls_j]
  8301. dw_child.Object.u_mtrldef_mtrlengname[child_row] = S_INSCUST.u_mtrldef_mtrlengname[ls_j]
  8302. dw_child.Object.u_mtrldef_barcode[child_row] = S_INSCUST.barcode[ls_j]
  8303. if f_find_tax(ls_custid,'u_cust',ld_tax) = 0 then
  8304. ld_tax = 0
  8305. else
  8306. dw_child.Object.u_outwaremx_tax[child_row] = ld_tax
  8307. end if
  8308. END IF
  8309. NEXT
  8310. END IF
  8311. IF sys_option_outware_if_saleqty = 0 THEN
  8312. dw_child.SetColumn('u_outwaremx_uqty')
  8313. ELSE
  8314. dw_child.SetColumn('u_outwaremx_saleqty')
  8315. END IF
  8316. dw_child.SetRedraw(True)
  8317. dw_child.SetFocus()
  8318. ////////////////////////////////// //
  8319. end event
  8320. event ue_f10;call super::ue_f10;//引入销售订单明细
  8321. IF Not dw_edit_mode THEN RETURN
  8322. IF dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 THEN RETURN
  8323. Int rslt = 1
  8324. String arg_msg
  8325. Long ll_scid
  8326. Long ll_storageid
  8327. Long ls_taskid
  8328. Long ll_cusid
  8329. String ls_taskcode
  8330. String errmsg
  8331. dw_uc.AcceptText()
  8332. ll_scid = dw_uc.Object.u_outware_scid[dw_uc.GetRow()]
  8333. ll_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  8334. ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  8335. IF ll_storageid = 0 Or IsNull(ll_storageid) THEN
  8336. MessageBox('提示','请先选择仓库',information!,OK!)
  8337. RETURN
  8338. END IF
  8339. IF ll_cusid = 0 Or IsNull(ll_cusid) THEN
  8340. MessageBox('提示','请先选择客户',information!,OK!)
  8341. RETURN
  8342. END IF
  8343. s_saletask_find s_find
  8344. s_find.scid = ll_scid
  8345. s_find.areaid = sys_areaid
  8346. s_find.cusid = ll_cusid
  8347. //s_find.if_retrieve_all = local_retrieve_all
  8348. //THIS.Enabled = FALSE
  8349. IF Not IsValid(w_saletask_outware_ch) THEN
  8350. s_saletask_mtrl s_saletask
  8351. OpenWithParm(w_saletask_outware_ch,s_find)
  8352. s_saletask = Message.PowerObjectParm
  8353. IF UpperBound(s_saletask.taskid ) > 0 THEN
  8354. // wf_autoaddmx_salemx(ll_scid, s_saletask, ll_storageid, ll_cusid, s_saletask.if_zeromtrlware, errmsg)
  8355. IF wf_saletaskmtrltoarr_salemx(ll_scid,s_saletask,arg_msg) = 0 THEN
  8356. rslt = 0
  8357. GOTO ext
  8358. END IF
  8359. IF wf_set_outwaremx(ll_scid,ll_cusid, ll_storageid, s_saletask,arg_msg) = 0 THEN
  8360. rslt = 0
  8361. GOTO ext
  8362. END IF
  8363. END IF
  8364. END IF
  8365. //THIS.Enabled = TRUE
  8366. ext:
  8367. dw_uc.SetColumn("u_outware_rel_address")
  8368. dw_uc.SetRedraw(True)
  8369. RETURN
  8370. end event
  8371. type cb_func from w_publ_1ton_share_detail`cb_func within w_outware_sale
  8372. end type
  8373. type cb_exit from w_publ_1ton_share_detail`cb_exit within w_outware_sale
  8374. integer x = 2560
  8375. integer taborder = 230
  8376. end type
  8377. type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_outware_sale
  8378. integer x = 183
  8379. integer width = 503
  8380. boolean autohscroll = true
  8381. end type
  8382. type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_outware_sale
  8383. integer x = 2981
  8384. integer taborder = 190
  8385. end type
  8386. type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_outware_sale
  8387. integer x = 2738
  8388. integer y = 36
  8389. integer width = 251
  8390. integer taborder = 180
  8391. end type
  8392. type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_outware_sale
  8393. integer x = 2825
  8394. integer y = 300
  8395. integer width = 754
  8396. integer height = 1324
  8397. integer taborder = 90
  8398. string dataobject = "dw_outware_sale_index"
  8399. string old_dwobject = "0"
  8400. string curdw_colfilter = "0"
  8401. end type
  8402. event dw_pageretr::rowfocuschanged;wf_flagstatus_rf()
  8403. wf_check_billfj()
  8404. IF dw_edit_mode THEN RETURN
  8405. IF currentrow <= 0 THEN
  8406. dw_child.Reset()
  8407. RETURN
  8408. END IF
  8409. THIS.SelectRow(0,FALSE)
  8410. THIS.SelectRow(currentrow,TRUE)
  8411. dw_uc.SetRow(currentrow)
  8412. dw_uc.ScrollToRow (currentrow)
  8413. st_cusbalc.Text = ''
  8414. st_cusbalc_sign.visible = false
  8415. IF NOT dw_edit_mode THEN
  8416. PARENT.TriggerEvent('retrieve_childdw_uc')
  8417. PARENT.TriggerEvent('retrieve_childdw')
  8418. END IF
  8419. IF if_ChkMtrlInfo THEN
  8420. Parent.TriggerEvent('ue_mtrl_info_retr')
  8421. END IF
  8422. Long ll_scid,ll_cusid, ll_moneyid
  8423. IF NOT dw_edit_mode AND currentrow > 0 THEN
  8424. ll_scid = THIS.Object.u_outware_scid[currentrow]
  8425. ll_cusid = THIS.Object.u_outware_cusid[currentrow]
  8426. ll_moneyid = THIS.Object.u_outware_relint_2[currentrow]
  8427. wf_cusbalc(ll_scid,ll_cusid,ll_moneyid)
  8428. END IF
  8429. IF if_ChkMtrlInfo THEN
  8430. Parent.TriggerEvent('ue_mtrl_info_retr')
  8431. END IF
  8432. end event
  8433. type st_1 from w_publ_1ton_share_detail`st_1 within w_outware_sale
  8434. end type
  8435. type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_outware_sale
  8436. integer x = 3131
  8437. integer taborder = 220
  8438. end type
  8439. type dw_uc from w_publ_1ton_share_detail`dw_uc within w_outware_sale
  8440. integer width = 2752
  8441. integer height = 1420
  8442. integer taborder = 170
  8443. string dataobject = "dw_outware_sale_edit"
  8444. end type
  8445. event dw_uc::dwnkey;Parent.TriggerEvent('user_key')
  8446. Long li_option_outrep
  8447. IF Key = KeyDownArrow! THEN RETURN 1
  8448. IF dw_edit_mode THEN
  8449. IF dw_uc.GetColumnName ( ) = 'u_outware_dscrp' And Key = KeyEnter! THEN
  8450. dw_child.SetFocus()
  8451. dw_child.ScrollToRow(dw_child.RowCount())
  8452. dw_child.SetColumn ('u_mtrldef_mtrlcode')
  8453. RETURN 1
  8454. ELSEIF dw_uc.GetColumnName ( ) = 'u_cust_cuscode' And Key = KeyEnter! THEN
  8455. s_custom s_cus
  8456. String ls_code
  8457. // String ls_code,ls_name,ls_custype,ls_find_code
  8458. // String ls_freight,ls_freight_tele
  8459. // String ls_rel_address,ls_rel_tele,ls_rel_fax,ls_rel_rep
  8460. Long ls_cusid,ll_ori_cusid
  8461. // Long cnt = 0
  8462. // Boolean if_find = False
  8463. // Int li_banktypeid,li_ifrel,ll_i
  8464. String ls_ori_cuscode
  8465. Long ll_scid, ll_moneyid
  8466. dw_uc.AcceptText()
  8467. ls_code = Trim(dw_uc.Object.u_cust_cuscode[dw_uc.GetRow()])
  8468. ll_ori_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  8469. ls_ori_cuscode = dw_uc.Object.u_cust_cuscode[dw_uc.GetRow()]
  8470. IF f_find_cust(ls_code, s_cus) = 0 THEN
  8471. Parent.TriggerEvent('ue_f9')
  8472. RETURN 1
  8473. END IF
  8474. // if_find = True
  8475. //
  8476. //
  8477. // IF if_find THEN
  8478. //重置dw_child
  8479. IF wf_change_cusid(s_cus.cusid) = 0 THEN RETURN
  8480. dw_uc.SetRedraw(False)
  8481. dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] = s_cus.cusid
  8482. dw_uc.Object.u_cust_cuscode[dw_uc.GetRow()] = s_cus.cuscode
  8483. dw_uc.Object.u_cust_name[dw_uc.GetRow()] = s_cus.Name
  8484. dw_uc.Object.u_outware_outrep[dw_uc.GetRow()] = s_cus.custype
  8485. dw_uc.Object.u_outware_relstr_1[dw_uc.GetRow()] = s_cus.freight
  8486. dw_uc.Object.u_outware_relstr_2[dw_uc.GetRow()] = s_cus.freight_tele
  8487. dw_uc.Object.u_outware_relstr_3[dw_uc.GetRow()] = s_cus.freight_address
  8488. dw_uc.Object.u_outware_rel_address[dw_uc.GetRow()] = s_cus.Address
  8489. dw_uc.Object.u_outware_rel_tele[dw_uc.GetRow()] = s_cus.tele
  8490. dw_uc.Object.u_outware_rel_tele1[dw_uc.GetRow()] = s_cus.tele1
  8491. dw_uc.Object.u_outware_rel_fax[dw_uc.GetRow()] = s_cus.faxno
  8492. dw_uc.Object.u_outware_rel_rep[dw_uc.GetRow()] = s_cus.rep
  8493. IF s_cus.banktypeid > 0 THEN
  8494. dw_uc.Object.u_outware_relint_1[dw_uc.GetRow()] = s_cus.banktypeid
  8495. END IF
  8496. dw_uc.SetRedraw(True)
  8497. dw_uc.AcceptText()
  8498. ll_scid = dw_uc.Object.u_outware_scid[dw_uc.GetRow()]
  8499. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  8500. wf_getcusrepamt_info(ll_scid,s_cus.cusid,ll_moneyid)
  8501. dw_uc.SetColumn("u_outware_rel_address")
  8502. // dw_child.Reset()
  8503. // Parent.TriggerEvent("insert_childrow")
  8504. RETURN 1
  8505. // END IF
  8506. // IF sys_power_issuper THEN
  8507. // li_option_outrep = 0
  8508. // ELSE
  8509. // li_option_outrep = sys_option_outrep
  8510. // END IF
  8511. //
  8512. //
  8513. //
  8514. // SELECT u_cust.cusid,
  8515. // u_cust.name,
  8516. // u_cust.custype,
  8517. // u_cust.cuscode,
  8518. // u_cust.freight,
  8519. // u_cust.freight_tele,
  8520. // u_cust.address,
  8521. // u_cust.tele,
  8522. // u_cust.faxno,
  8523. // u_cust.rep,
  8524. // u_cust.banktypeid
  8525. // INTO :ls_cusid,:ls_name,:ls_custype,:ls_code,
  8526. // :ls_freight,:ls_freight_tele,
  8527. // :ls_rel_address,:ls_rel_tele,:ls_rel_fax,:ls_rel_rep,:li_banktypeid
  8528. // FROM u_cust
  8529. // Where ( cuscode = :ls_code Or Name = :ls_code ) and
  8530. // ( :li_option_outrep = 0 OR (u_cust.custype IN (:sys_user_outrepstr) or :sys_user_outrepstr='0'));
  8531. // IF sqlca.SQLCode <> 0 THEN
  8532. //
  8533. // IF Pos(Trim(ls_code),'%') = 0 THEN
  8534. // ls_find_code = '%'+ Trim(ls_code) + '%'
  8535. // ELSE
  8536. // ls_find_code = Trim(ls_code)
  8537. // END IF
  8538. //
  8539. // SELECT count(*) INTO :cnt
  8540. // FROM u_cust
  8541. // Where ( cuscode Like :ls_find_code Or Name Like :ls_find_code ) and
  8542. // ( :li_option_outrep = 0 OR (u_cust.custype IN (:sys_user_outrepstr) or :sys_user_outrepstr='0'));
  8543. // IF sqlca.SQLCode <> 0 THEN
  8544. // Parent.TriggerEvent('ue_f9')
  8545. // RETURN 1
  8546. // END IF
  8547. // IF cnt <> 1 THEN
  8548. // Parent.TriggerEvent('ue_f9')
  8549. // RETURN 1
  8550. // END IF
  8551. //
  8552. // SELECT u_cust.cusid,
  8553. // u_cust.cuscode,
  8554. // u_cust.name,
  8555. // u_cust.custype,
  8556. // u_cust.freight,
  8557. // u_cust.freight_tele,
  8558. // u_cust.address,
  8559. // u_cust.tele,
  8560. // u_cust.faxno,
  8561. // u_cust.rep
  8562. // INTO :ls_cusid,:ls_code,:ls_name,:ls_custype,
  8563. // :ls_freight,:ls_freight_tele,
  8564. // :ls_rel_address,:ls_rel_tele,:ls_rel_fax,:ls_rel_rep
  8565. // FROM u_cust
  8566. // Where ( cuscode Like :ls_find_code Or Name Like :ls_find_code );
  8567. // IF sqlca.SQLCode <> 0 THEN
  8568. // Parent.TriggerEvent('ue_f9')
  8569. // RETURN 1
  8570. // END IF
  8571. //
  8572. // END IF
  8573. // if_find = True
  8574. //
  8575. //
  8576. // IF if_find THEN
  8577. //
  8578. // //重置dw_child
  8579. // wf_change_cusid(ls_cusid)
  8580. //
  8581. // dw_uc.SetRedraw(False)
  8582. // dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] = ls_cusid
  8583. // dw_uc.Object.u_cust_cuscode[dw_uc.GetRow()] = ls_code
  8584. // dw_uc.Object.u_cust_name[dw_uc.GetRow()] = ls_name
  8585. // dw_uc.Object.u_outware_outrep[dw_uc.GetRow()] = ls_custype
  8586. // dw_uc.Object.u_outware_relstr_1[dw_uc.GetRow()] = ls_freight
  8587. // dw_uc.Object.u_outware_relstr_2[dw_uc.GetRow()] = ls_freight_tele
  8588. // dw_uc.Object.u_outware_rel_address[dw_uc.GetRow()] = ls_rel_address
  8589. // dw_uc.Object.u_outware_rel_tele[dw_uc.GetRow()] = ls_rel_tele
  8590. // dw_uc.Object.u_outware_rel_fax[dw_uc.GetRow()] = ls_rel_fax
  8591. // dw_uc.Object.u_outware_rel_rep[dw_uc.GetRow()] = ls_rel_rep
  8592. // IF li_banktypeid > 0 THEN
  8593. // dw_uc.Object.u_outware_relint_1[dw_uc.GetRow()] = li_banktypeid
  8594. // END IF
  8595. // dw_uc.SetRedraw(True)
  8596. //
  8597. // ll_scid = dw_uc.Object.u_outware_scid[dw_uc.GetRow()]
  8598. // ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  8599. //
  8600. // wf_getcusrepamt_info(ll_scid,ls_cusid,ll_moneyid)
  8601. //
  8602. // dw_uc.SetColumn("u_outware_rel_address")
  8603. // dw_child.Reset()
  8604. // Parent.TriggerEvent("insert_childrow")
  8605. // RETURN 1
  8606. // END IF
  8607. ELSE
  8608. IF Key = KeyEnter! THEN //
  8609. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  8610. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  8611. RETURN 1
  8612. END IF
  8613. END IF
  8614. END IF
  8615. end event
  8616. event dw_uc::itemchanged;call super::itemchanged;IF NOT dw_edit_mode THEN RETURN
  8617. IF dwo.Name = 'u_outware_storageid' THEN
  8618. dw_child.Reset()
  8619. PARENT.TriggerEvent("insert_childrow")
  8620. ELSEIF dwo.Name = 'u_outware_relint_2' THEN
  8621. Long ll_moneyid,ll_scid,ll_cusid
  8622. dw_uc.accepttext()
  8623. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  8624. dw_uc.SetRedraw(FALSE)
  8625. dw_uc.Object.u_outware_mrate[dw_uc.GetRow()] = f_get_mrate(ll_moneyid)
  8626. dw_uc.SetRedraw(TRUE)
  8627. ll_scid = dw_uc.Object.u_outware_scid[dw_uc.GetRow()]
  8628. ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  8629. wf_getcusrepamt_info(ll_scid,ll_cusid,ll_moneyid)
  8630. elseif dwo.name = 'u_outware_rel_rep' then
  8631. if data <> '' then
  8632. string ll_officetel,ll_handtel
  8633. long ls_cusid
  8634. ls_cusid = dw_uc.object.u_outware_cusid[row]
  8635. select officetel,handtel into :ll_officetel,:ll_handtel from u_cust_rep where repname = :data and cusid = :ls_cusid;
  8636. if sqlca.sqlcode = 0 then
  8637. dw_uc.object.u_outware_rel_tele[row] = ll_officetel
  8638. dw_uc.object.u_outware_rel_tele1[row] = ll_handtel
  8639. end if
  8640. select tele,tele1 into :ll_officetel,:ll_handtel from u_cust where cusid = :ls_cusid and rep = :data;
  8641. if sqlca.sqlcode = 0 then
  8642. dw_uc.object.u_outware_rel_tele[row] = ll_officetel
  8643. dw_uc.object.u_outware_rel_tele1[row] = ll_handtel
  8644. end if
  8645. end if
  8646. END IF
  8647. end event
  8648. event dw_uc::doubleclicked;IF dw_edit_mode AND row > 0 THEN
  8649. IF dwo.Name = 'u_cust_cuscode' OR dwo.Name = 'u_cust_name' THEN
  8650. PARENT.TriggerEvent('ue_f9')
  8651. END IF
  8652. END IF
  8653. end event
  8654. event dw_uc::clicked;call super::clicked;
  8655. IF row <= 0 THEN RETURN
  8656. IF dwo.Name = 'p_dview' THEN
  8657. Parent.TriggerEvent('ue_ch_dscrp')
  8658. ELSEIF dwo.Name = 'p_dview2' THEN
  8659. Parent.TriggerEvent('ue_ch_dscrp2')
  8660. ELSEIF dwo.Name = 'p_dview3' THEN
  8661. Parent.TriggerEvent('ue_ch_dscrp3')
  8662. ELSEIF dwo.Name = 'p_dview4' THEN
  8663. Parent.TriggerEvent('ue_ch_rel_address')
  8664. ELSEIF dwo.Name = 'p_dview5' THEN
  8665. Parent.TriggerEvent('ue_ch_station')
  8666. ELSEIF dwo.Name = 'p_relstr_3' THEN
  8667. Parent.TriggerEvent('ue_ch_relstr_3')
  8668. END IF
  8669. IF Not dw_edit_mode THEN RETURN
  8670. IF dw_uc.Object.u_outware_thflag[row] = 1 THEN RETURN
  8671. IF dwo.Name = 'p_b' Or dwo.Name = 'choicesaletask_t' THEN
  8672. Parent.TriggerEvent('ue_f7')
  8673. Parent.TriggerEvent('ue_setprice_forformula')
  8674. ELSEIF dwo.Name = 'p_c' Or dwo.Name = 'choicesaletaskmx_t' THEN
  8675. Parent.TriggerEvent('ue_f10')
  8676. Parent.TriggerEvent('ue_setprice_forformula')
  8677. ELSEIF dwo.Name = 'p_d' Or dwo.Name = 'choicesalehis_t' THEN
  8678. Parent.TriggerEvent('ue_f11')
  8679. Parent.TriggerEvent('ue_setprice_forformula')
  8680. ELSEIF dwo.Name = 'p_ware' Or dwo.Name = 'choiceware_t' THEN
  8681. Parent.TriggerEvent('ue_f8')
  8682. Parent.TriggerEvent('ue_setprice_forformula')
  8683. ELSEIF dwo.Name = 'p_p' THEN
  8684. Parent.TriggerEvent('ue_f9')
  8685. ELSEIF dwo.Name = 'p_emp' THEN
  8686. Parent.TriggerEvent('ue_ch_outrepdef')
  8687. ELSEIF dwo.Name = 'p_money' THEN
  8688. Parent.TriggerEvent('ue_ch_money')
  8689. ELSEIF dwo.Name = 'p_banktype' THEN
  8690. Parent.TriggerEvent('ue_ch_banktype')
  8691. END IF
  8692. end event
  8693. event dw_uc::constructor;call super::constructor;this.object.p_emp.visible = (sys_option_allow_edit_outrep = 1)
  8694. end event
  8695. event dw_uc::ue_dwndropdown;IF Not dw_edit_mode THEN RETURN
  8696. String ls_col_pz,ls_col_mtrlid
  8697. String ls_pz_ch
  8698. String ls_col_value
  8699. Long ll_col_value
  8700. String ls_data_type
  8701. Long ll_row,ll_mtrlid
  8702. ll_row = This.GetRow()
  8703. IF ll_row > 0 THEN
  8704. ls_col_pz = This.GetColumnName( )
  8705. ls_data_type = dw_child.Describe(ls_col_pz+".ColType")
  8706. IF Left(Lower(ls_data_type),4 ) = "char" THEN
  8707. ls_col_value = This.GetItemString(ll_row,ls_col_pz)
  8708. ELSEIF Left(Lower(ls_data_type),4) = "long" THEN
  8709. ll_col_value = This.GetItemNumber(ll_row,ls_col_pz)
  8710. END IF
  8711. if ls_col_pz = 'u_outware_rel_rep' then
  8712. int rtncode
  8713. string ls_sql
  8714. long ls_cusid
  8715. ls_cusid = dw_uc.object.u_outware_cusid[dw_uc.getrow()]
  8716. DataWindowChild dw_child_dddw
  8717. rtncode = dw_uc.GetChild("u_outware_rel_rep",dw_child_dddw)
  8718. dw_child_dddw.SetTransObject(SQLCA)
  8719. ls_sql = old_rep_select
  8720. ls_sql = ls_sql + " or cusid = "+string(ls_cusid);
  8721. dw_child_dddw.SetSQLSelect(ls_sql)
  8722. dw_child_dddw.Retrieve()
  8723. end if
  8724. This.SetItem(ll_row,ls_col_pz,ls_pz_ch)
  8725. END IF
  8726. end event
  8727. type gb_2 from w_publ_1ton_share_detail`gb_2 within w_outware_sale
  8728. end type
  8729. type dw_child from w_publ_1ton_share_detail`dw_child within w_outware_sale
  8730. integer y = 1964
  8731. integer width = 3543
  8732. integer height = 748
  8733. integer taborder = 40
  8734. string dataobject = "dw_outwaremx_sale_edit"
  8735. boolean minbox = true
  8736. string old_dwobject = "0"
  8737. string curdw_colfilter = "0"
  8738. end type
  8739. event dw_child::dwnkey;call super::dwnkey;PARENT.TriggerEvent('user_key')
  8740. //THIS.TriggerEvent('user_key')
  8741. IF NOT dw_edit_mode THEN RETURN
  8742. IF flag = 1 THEN RETURN
  8743. String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode,ls_mtrlsectype,ls_zxmtrlmode,ls_mtrltype
  8744. String ls_plancode,ls_status,ls_woodcode,ls_pcode
  8745. Long ls_mtrlwareid,ls_mtrlid,ls_storageid,ll_moneyid
  8746. Dec ls_noallocqty,ls_noauditingqty,ls_planprice,ls_cost,ls_lmsaleprice
  8747. s_mtrlware_noalloc_array arg_s_mtrlware
  8748. Long child_row
  8749. Long ls_null
  8750. String arg_msg
  8751. Long ls_custid,ls_sptid
  8752. Decimal ls_1stnewprice,ls_1stzqrate,ls_1strate
  8753. SetNull(ls_null)
  8754. IF dw_edit_mode THEN
  8755. dw_uc.AcceptText()
  8756. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  8757. IF ll_moneyid = 0 OR IsNull(ll_moneyid) THEN
  8758. MessageBox('提示','请先选择币种',information!,OK!)
  8759. RETURN
  8760. END IF
  8761. ls_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  8762. IF ls_storageid = 0 OR IsNull(ls_storageid) THEN
  8763. MessageBox('提示','请先选择仓库',information!,OK!)
  8764. RETURN
  8765. END IF
  8766. Int li_if_cus_mtrlware
  8767. SELECT balctype INTO :li_if_cus_mtrlware
  8768. FROM u_storage
  8769. Where storageid = :ls_storageid;
  8770. IF sqlca.SQLCode <> 0 THEN
  8771. MessageBox('提示','查询仓库是否使用客户库存失败',information!,OK!)
  8772. RETURN
  8773. END IF
  8774. ls_custid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  8775. IF IsNull(ls_custid) OR ls_custid = 0 THEN
  8776. THIS.TriggerEvent("ue_f9")
  8777. ls_custid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  8778. END IF
  8779. IF KeyDown(Keydownarrow!) THEN
  8780. Long li_row
  8781. IF dw_child.GetRow() = dw_child.RowCount() THEN
  8782. PARENT.TriggerEvent("insert_childrow")
  8783. END IF
  8784. ELSE
  8785. IF KeyDown(KeyEnter!) AND NOT KeyDown(KeyControl!) AND NOT KeyDown(KeyShift!) THEN
  8786. IF dw_child.GetColumnName( ) = 'u_mtrldef_mtrlcode' THEN
  8787. dw_child.AcceptText()
  8788. child_row = dw_child.GetRow()
  8789. ls_mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[child_row]
  8790. IF li_if_cus_mtrlware = 1 THEN
  8791. ls_sptid = ls_custid
  8792. ELSE
  8793. ls_sptid = -1
  8794. END IF
  8795. IF f_find_mtrlware(ls_mtrlcode,ls_storageid,ls_sptid,arg_s_mtrlware) = 0 THEN
  8796. PARENT.TriggerEvent('ue_f8')
  8797. RETURN 1
  8798. ELSE
  8799. ls_mtrlwareid = arg_s_mtrlware.mtrlwareid[1]
  8800. ls_mtrlid = arg_s_mtrlware.mtrlid[1]
  8801. ls_mtrlcode = arg_s_mtrlware.u_mtrldef_mtrlcode[1]
  8802. ls_mtrlname = arg_s_mtrlware.u_mtrldef_mtrlname[1]
  8803. ls_unit = arg_s_mtrlware.u_mtrldef_unit[1]
  8804. ls_mtrlmode = arg_s_mtrlware.u_mtrldef_mtrlmode[1]
  8805. ls_planprice = arg_s_mtrlware.planprice[1]
  8806. ls_noallocqty = arg_s_mtrlware.noallocqty[1]
  8807. ls_storageid = arg_s_mtrlware.storageid[1]
  8808. ls_plancode = arg_s_mtrlware.plancode[1]
  8809. ls_noauditingqty = arg_s_mtrlware.noauditingqty[1]
  8810. ls_lmsaleprice = arg_s_mtrlware.lmsaleprice[1]
  8811. ls_status = arg_s_mtrlware.status[1]
  8812. ls_woodcode = arg_s_mtrlware.woodcode[1]
  8813. ls_pcode = arg_s_mtrlware.pcode[1]
  8814. ls_mtrlsectype = arg_s_mtrlware.u_mtrldef_mtrlsectype[1]
  8815. ls_zxmtrlmode = arg_s_mtrlware.u_mtrldef_zxmtrlmode[1]
  8816. ls_mtrltype = arg_s_mtrlware.u_mtrldef_mtrltype[1]
  8817. END IF
  8818. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ls_mtrlwareid
  8819. dw_child.Object.u_outwaremx_mtrlid[child_row] = ls_mtrlid
  8820. dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  8821. dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  8822. dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  8823. dw_child.Object.u_outwaremx_uqty[child_row] = 0
  8824. dw_child.Object.u_outwaremx_planprice[child_row] = ls_planprice
  8825. dw_child.Object.u_outwaremx_storageid[child_row] = ls_storageid
  8826. dw_child.Object.u_outwaremx_plancode[child_row] = ls_plancode
  8827. dw_child.Object.u_outwaremx_status[child_row] = ls_status
  8828. dw_child.Object.u_outwaremx_woodcode[child_row] = ls_woodcode
  8829. dw_child.Object.u_outwaremx_pcode[child_row] = ls_pcode
  8830. dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  8831. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  8832. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  8833. dw_child.Object.u_mtrldef_mtrltype[child_row] = ls_mtrltype
  8834. dw_child.Object.u_outwaremx_unit[child_row] = ls_unit
  8835. //导入单价
  8836. wf_get_price(child_row)
  8837. dw_child.Object.u_mtrldef_curware_qty[child_row] = ls_noallocqty
  8838. dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null
  8839. dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null
  8840. IF Key = KeyEnter! THEN //
  8841. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  8842. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  8843. RETURN 1
  8844. END IF
  8845. // ELSEIF dw_child.GetColumnName( ) = 'u_outwaremx_rebate' AND dw_child.GetRow() = dw_child.RowCount() THEN
  8846. // Long i_mtrlid
  8847. // String i_mtrlcode
  8848. // Decimal i_price,i_zqrate
  8849. // Int i_thflag = 0
  8850. // dw_child.AcceptText()
  8851. //
  8852. // i_mtrlid = dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()]
  8853. // i_mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()]
  8854. // i_price = dw_child.Object.u_outwaremx_fprice[dw_child.GetRow()]
  8855. // i_zqrate = dw_child.Object.u_outwaremx_rebate[dw_child.GetRow()]
  8856. //
  8857. // IF Key = KeyEnter! THEN //
  8858. // keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  8859. // keybd_event ( 9, 0, 2, 0 ) // 释放tab
  8860. // RETURN 1
  8861. // END IF
  8862. ELSEIF dw_child.GetColumnName( ) = 'u_outwaremx_mxdscrp' AND dw_child.GetRow() = dw_child.RowCount() THEN
  8863. PARENT.TriggerEvent("insert_childrow")
  8864. RETURN 1
  8865. ELSEIF dw_child.GetColumnName( ) = 'u_outwaremx_priceformula' THEN
  8866. PARENT.TriggerEvent("ue_setprice_forformula_1")
  8867. RETURN 1
  8868. ELSEIF dw_child.GetColumnName( ) = 'u_outwaremx_formula' THEN
  8869. PARENT.TriggerEvent("ue_setqty_forformula_1")
  8870. RETURN 1
  8871. ELSE
  8872. IF Key = KeyEnter! THEN //
  8873. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  8874. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  8875. RETURN 1
  8876. END IF
  8877. END IF
  8878. END IF
  8879. END IF
  8880. END IF
  8881. end event
  8882. event dw_child::itemchanged;call super::itemchanged;IF Not dw_edit_mode THEN RETURN
  8883. This.AcceptText()
  8884. IF row > 0 THEN
  8885. IF dw_child.Object.u_outwaremx_relid[row] > 0 THEN
  8886. ELSE
  8887. IF dwo.Name = 'u_outwaremx_uqty' And sys_option_price_if_list = 1 and (dw_child.Object.u_outwaremx_enprice[row]=0 or isnull(dw_child.Object.u_outwaremx_enprice[row])) THEN //价格表增加数量下限,数量上 
  8888. wf_get_price(row)
  8889. END IF
  8890. END IF
  8891. END IF
  8892. IF dwo.Name = 'u_outwaremx_ifrel' THEN
  8893. IF This.Object.u_outwaremx_ifrel[row] = 0 THEN
  8894. dw_child.Object.u_outwaremx_relid[row] = 0
  8895. dw_child.Object.taskcode[row] = ''
  8896. END IF
  8897. ELSEIF dwo.Name = 'u_outwaremx_saleqty' THEN
  8898. String ls_protect
  8899. ls_protect = This.Describe( 'u_outwaremx_uqty.protect')
  8900. IF ls_protect = '0' THEN
  8901. This.Object.u_outwaremx_uqty[row] = This.Object.u_outwaremx_saleqty[row]
  8902. wf_cmpl_amt(row)
  8903. END IF
  8904. ELSEIF dwo.Name = 'u_outwaremx_uqty' Or dwo.Name = 'enamt' Or dwo.Name = 'enamt_notax' Or dwo.Name = 'u_outwaremx_enprice' Or dwo.Name = 'u_outwaremx_rebate' Or dwo.Name = 'enprice_notax' Or dwo.Name = 'u_outwaremx_tax' THEN
  8905. // MessageBox('',String(dwo.Name))
  8906. wf_cmpl_amt(row)
  8907. ELSEIF dwo.Name = 'u_outwaremx_packqty' THEN
  8908. Long ll_mtrlid
  8909. Decimal lde_packqty_single, lde_packqty, lde_rate
  8910. IF ii_packqty_cmpl = 1 THEN
  8911. ll_mtrlid = This.Object.u_outwaremx_mtrlid[row]
  8912. lde_packqty_single = f_get_packqty(ll_mtrlid)
  8913. lde_packqty = This.Object.u_outwaremx_packqty[row]
  8914. lde_rate = This.Object.u_outwaremx_rate[row]
  8915. IF lde_rate = 0 THEN lde_rate = 1
  8916. This.Object.u_outwaremx_qty[row] = lde_packqty * lde_packqty_single
  8917. This.Object.u_outwaremx_uqty[row] = lde_packqty * lde_packqty_single / lde_rate
  8918. This.Object.u_outwaremx_saleqty[row] = lde_packqty * lde_packqty_single / lde_rate
  8919. END IF
  8920. END IF
  8921. end event
  8922. event dw_child::doubleclicked;long i
  8923. IF dw_edit_mode And row > 0 THEN
  8924. IF dwo.Name = 'u_outwaremx_addqty' THEN
  8925. Parent.TriggerEvent('ue_add_addqty')
  8926. ELSEIF dwo.Name = 'u_outwaremx_outtype' THEN
  8927. Parent.TriggerEvent('ue_ch_outtype')
  8928. ELSEIF dwo.Name = 'u_outwaremx_unit' THEN
  8929. Parent.TriggerEvent('ue_f12')
  8930. ELSEIF dwo.Name = 'u_outwaremx_formula' Or dwo.Name = 'u_outwaremx_uqty' THEN
  8931. Parent.TriggerEvent('ue_cmpl_qty')
  8932. ELSEIF dwo.Name = 'u_outwaremx_priceformula' THEN
  8933. Parent.TriggerEvent('ue_cmpl_price')
  8934. ELSEIF dwo.name = 'u_outwaremx_status' or dwo.name = 'u_outwaremx_woodcode' or dwo.name = 'u_outwaremx_pcode' then
  8935. string name
  8936. name =dwo.name
  8937. PARENT.trigger event ue_view_status(row,name)
  8938. ELSEIF dwo.Name = 'u_outwaremx_mxdscrp' THEN
  8939. Parent.TriggerEvent('ue_view_mxdscrp')
  8940. RETURN
  8941. ELSEIF dwo.Name = 'mxdscrp2' THEN
  8942. Parent.TriggerEvent('ue_view_mxdscrp2')
  8943. RETURN
  8944. ELSEIF dwo.Name = 'u_outwaremx_mxdscrp3' THEN
  8945. Parent.TriggerEvent('ue_view_mxdscrp3')
  8946. RETURN
  8947. ELSEIF dwo.Name = 'u_outwaremx_mxdscrp4' THEN
  8948. Parent.TriggerEvent('ue_view_mxdscrp4')
  8949. RETURN
  8950. ELSEIF dwo.Name = 'u_outwaremx_plancode' THEN
  8951. Parent.TriggerEvent('ue_choose_mtrlware_plancode')
  8952. RETURN
  8953. ELSE
  8954. IF this.Object.u_outwaremx_ifrel[row] = 1 THEN //选订单
  8955. IF this.Object.u_outwaremx_relid[row] = 0 THEN
  8956. Parent.TriggerEvent('ue_f7') //选订单
  8957. ELSE
  8958. Parent.TriggerEvent('ue_ch_mtrlware') //选库存
  8959. END IF
  8960. ELSE //选库存
  8961. Parent.TriggerEvent('ue_f8')
  8962. END IF
  8963. Parent.TriggerEvent('ue_setprice_forformula')
  8964. wf_set_barcode()
  8965. END IF
  8966. for i = 1 to dw_child.rowcount()
  8967. round(dw_child.Object.u_outwaremx_enprice[i],sys_option_outware_price_amt_round)
  8968. next
  8969. END IF
  8970. end event
  8971. event dw_child::itemfocuschanged;call super::itemfocuschanged;dw_child.AcceptText()
  8972. end event
  8973. event dw_child::losefocus;call super::losefocus;//long row
  8974. //row = this.getrow()
  8975. //IF row > 0 THEN
  8976. // dw_child.AcceptText()
  8977. //
  8978. // //由金额计算单价
  8979. // IF cbx_enamt_edit.Checked THEN
  8980. // IF dw_child.Object.enamt[row] <> 0 THEN
  8981. // IF dw_child.Object.u_outwaremx_rebate[row] <> 0 And dw_child.Object.u_outwaremx_uqty[row] <> 0 THEN
  8982. // dw_child.Object.u_outwaremx_enprice[row] = dw_child.Object.enamt[row] / dw_child.Object.u_outwaremx_rebate[row] / dw_child.Object.u_outwaremx_uqty[row]
  8983. // END IF
  8984. // END IF
  8985. // ELSE
  8986. // dw_child.Object.enamt[row] = Round(dw_child.Object.u_outwaremx_enprice[row]*dw_child.Object.u_outwaremx_rebate[row]*dw_child.Object.u_outwaremx_uqty[row], 2)
  8987. // END IF
  8988. //
  8989. //END IF
  8990. end event
  8991. event dw_child::rowfocuschanged;call super::rowfocuschanged;Parent.TriggerEvent('ue_retrieve_fifo_cbmx')
  8992. Parent.TriggerEvent('ue_retrieve_his_pricemx')
  8993. end event
  8994. event dw_child::ue_dwndropdown;IF NOT dw_edit_mode THEN RETURN
  8995. String ls_col_pz,ls_col_mtrlid
  8996. String ls_pz_ch
  8997. String ls_col_value
  8998. String ls_data_type
  8999. Long ll_row,ll_mtrlid
  9000. long statusflag
  9001. s_pzwin_open arg_s_win
  9002. ll_row = THIS.GetRow()
  9003. IF ll_row > 0 THEN
  9004. ls_col_mtrlid = THIS.Describe("#1.Name")
  9005. IF NOT Pos(Lower(ls_col_mtrlid),'mtrlid') > 0 THEN RETURN
  9006. ll_mtrlid = THIS.GetItemNumber(ll_row,ls_col_mtrlid)
  9007. ls_col_pz = THIS.GetColumnName( )
  9008. ls_data_type = dw_child.Describe(ls_col_pz+".ColType")
  9009. IF Pos(Lower(ls_data_type),"char") > 0 THEN
  9010. ls_col_value = THIS.GetItemString(ll_row,ls_col_pz)
  9011. END IF
  9012. arg_s_win.arg_x = THIS.X + THIS.PointerX() + PARENT.X
  9013. arg_s_win.arg_y = THIS.Y + THIS.PointerY() + PARENT.Y
  9014. arg_s_win.arg_col = ls_col_pz
  9015. arg_s_win.arg_mtrlid = ll_mtrlid
  9016. arg_s_win.arg_col_value = ls_col_value
  9017. ls_pz_ch = f_mtrl_pz(arg_s_win)
  9018. IF isnull(ls_pz_ch) THEN RETURN
  9019. THIS.SetItem(ll_row,ls_col_pz,ls_pz_ch)
  9020. IF ls_col_pz = 'u_outwaremx_status' Or ls_col_pz = 'u_outwaremx_woodcode' Or ls_col_pz = 'u_outwaremx_pcode' THEN
  9021. IF ll_row > 0 THEN
  9022. if isnull(This.Object.u_mtrldef_statusflag[ll_row]) then
  9023. select statusflag into :statusflag from u_mtrldef where mtrlid = :ll_mtrlid;
  9024. if sqlca.sqlcode <> 0 then
  9025. return
  9026. end if
  9027. else
  9028. statusflag = This.Object.u_mtrldef_statusflag[ll_row]
  9029. end if
  9030. IF statusflag = 2 or statusflag = 4 THEN
  9031. wf_get_price(ll_row)
  9032. END IF
  9033. return 1
  9034. END IF
  9035. END IF
  9036. END IF
  9037. end event
  9038. type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_outware_sale
  9039. integer x = 1915
  9040. integer taborder = 60
  9041. end type
  9042. type cb_print from w_publ_1ton_share_detail`cb_print within w_outware_sale
  9043. integer x = 1723
  9044. integer taborder = 70
  9045. end type
  9046. type cb_add from w_publ_1ton_share_detail`cb_add within w_outware_sale
  9047. event ue_cmpl_qty ( )
  9048. integer taborder = 240
  9049. end type
  9050. event cb_add::ue_cmpl_qty();//IF dw_child.GetRow() = 0 THEN RETURN
  9051. //Long child_row
  9052. //dw_child.AcceptText()
  9053. //child_row = dw_child.GetRow()
  9054. //s_cmpl_qty s_cmpl,s_return
  9055. //
  9056. //s_cmpl.qty = dw_child.Object.u_outwaremx_uqty[child_row]
  9057. //s_cmpl.formula = dw_child.Object.u_outwaremx_formula[child_row]
  9058. //
  9059. //IF NOT IsValid(w_cmpl_qty_ch) THEN
  9060. // OpenWithParm(w_cmpl_qty_ch,s_cmpl)
  9061. // s_return = Message.PowerObjectParm
  9062. // IF s_return.formula <> s_cmpl.formula THEN
  9063. // dw_child.Object.u_outwaremx_uqty[child_row] = s_return.qty
  9064. // dw_child.Object.u_outwaremx_formula[child_row] = s_return.formula
  9065. // END IF
  9066. //END IF
  9067. //
  9068. end event
  9069. event cb_add::clicked;IF Not (f_power_ind(11) Or f_power_ind(371)) THEN
  9070. MessageBox('提示',sys_msg_pow,information!,OK!)
  9071. RETURN
  9072. END IF
  9073. String arg_msg = ''
  9074. Long uc_row,pagerert_row
  9075. Long relid_pageretr,reld_uc,i
  9076. Long ll_printid,ll_outwareid,ll_scid, ll_cusid, ll_moneyid
  9077. Int li_flag,li_secflag,li_priceflag
  9078. Decimal ld_packqty
  9079. Decimal lde_billamt, lde_mrate
  9080. String ls_taskcode
  9081. s_outwaremx s_mx
  9082. s_outware_itemmx s_item
  9083. IF dw_edit_mode THEN
  9084. dw_uc.AcceptText()
  9085. dw_child.AcceptText()
  9086. dw_fymx.AcceptText()
  9087. uc_row = dw_uc.GetRow()
  9088. IF uc_row <= 0 THEN
  9089. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  9090. RETURN
  9091. END IF
  9092. IF Not dw_uc.Object.u_outware_outdate[uc_row] > DateTime(2000-01-01,Now()) THEN
  9093. MessageBox('提示','不合理发生时间',information!,OK!)
  9094. dw_uc.SetFocus()
  9095. dw_uc.SetColumn("u_outware_outrep")
  9096. RETURN
  9097. END IF
  9098. IF Not Len(String(dw_uc.Object.u_outware_outrep[uc_row])) > 0 THEN
  9099. MessageBox('提示','请填写业务员',information!,OK!)
  9100. dw_uc.SetFocus()
  9101. dw_uc.SetColumn("u_outware_outrep")
  9102. RETURN
  9103. END IF
  9104. IF dw_uc.Object.u_outware_relint_1[uc_row] = 0 THEN
  9105. MessageBox('提示','请选择结算方式',information!,OK!)
  9106. dw_uc.SetFocus()
  9107. dw_uc.SetColumn("u_outware_relint_1")
  9108. RETURN
  9109. END IF
  9110. IF dw_uc.Object.u_outware_relint_2[uc_row] = 0 THEN
  9111. MessageBox('提示','请选择币种',information!,OK!)
  9112. dw_uc.SetFocus()
  9113. dw_uc.SetColumn("u_outware_relint_2")
  9114. RETURN
  9115. END IF
  9116. //处理一次数量
  9117. IF sys_option_outware_if_saleqty = 0 THEN //不分离
  9118. FOR i = 1 To dw_child.RowCount()
  9119. dw_child.Object.u_outwaremx_saleqty[i] = dw_child.Object.u_outwaremx_uqty[i]
  9120. NEXT
  9121. ELSE
  9122. END IF
  9123. //由金额计算单价
  9124. IF cbx_enamt_edit.Checked THEN
  9125. FOR i = 1 To dw_child.RowCount()
  9126. IF dw_child.Object.enamt[i] <> 0 THEN
  9127. IF dw_child.Object.u_outwaremx_rebate[i] <> 0 And dw_child.Object.u_outwaremx_uqty[i] <> 0 THEN
  9128. dw_child.Object.u_outwaremx_enprice[i] = dw_child.Object.enamt[i] / dw_child.Object.u_outwaremx_rebate[i] / dw_child.Object.u_outwaremx_uqty[i]
  9129. END IF
  9130. END IF
  9131. NEXT
  9132. END IF
  9133. //录入不含税单价
  9134. IF cbx_enamt_notax_edit.Checked THEN
  9135. FOR i = 1 To dw_child.RowCount()
  9136. wf_cmpl_amt(i)
  9137. NEXT
  9138. END IF
  9139. //由金额计算折扣
  9140. IF cbx_zk.Checked THEN
  9141. FOR i = 1 To dw_child.RowCount()
  9142. IF dw_child.Object.enamt[i] <> 0 THEN
  9143. IF dw_child.Object.u_outwaremx_enprice[i] > 0 THEN
  9144. ELSE
  9145. MessageBox('提示','第' + String(i) + '行请输入单价')
  9146. RETURN
  9147. END IF
  9148. IF dw_child.Object.u_outwaremx_enprice[i] <> 0 And dw_child.Object.u_outwaremx_saleqty[i] <> 0 THEN
  9149. dw_child.Object.u_outwaremx_rebate[i] = dw_child.Object.enamt[i] / dw_child.Object.u_outwaremx_enprice[i] / dw_child.Object.u_outwaremx_saleqty[i]
  9150. END IF
  9151. END IF
  9152. NEXT
  9153. END IF
  9154. //检查库存ID, 生成0库存
  9155. // IF sys_option_hide_ware = 1 THEN
  9156. FOR i = 1 To dw_child.RowCount()
  9157. IF dw_child.Object.u_outwaremx_mtrlwareid[i] = 0 THEN
  9158. IF dw_child.Object.u_outwaremx_uqty[i] <> 0 THEN
  9159. wf_get_mtrlwareid(i)
  9160. END IF
  9161. END IF
  9162. NEXT
  9163. // END IF
  9164. //
  9165. IF Not sys_power_issuper And f_power_ind(978) THEN
  9166. arg_msg = ''
  9167. FOR i = 1 To dw_child.RowCount()
  9168. IF dw_child.Object.u_outwaremx_mtrlwareid[i] > 0 THEN
  9169. IF dw_child.Object.u_outwaremx_uqty[i] > 0 THEN
  9170. IF dw_child.Object.u_outwaremx_outtype[i] > 0 And sys_option_saletask_price = 1 THEN
  9171. ELSE
  9172. IF dw_child.Object.u_outwaremx_enprice[i] = 0 THEN
  9173. arg_msg = arg_msg + '第' + String(i) + '行,产品:' + dw_child.Object.u_mtrldef_mtrlcode[i] + ',单价为零!~n '
  9174. END IF
  9175. END IF
  9176. END IF
  9177. END IF
  9178. NEXT
  9179. IF arg_msg <> '' THEN
  9180. MessageBox('提示',arg_msg + '用户权限限制,不能保存!',information!,OK!)
  9181. RETURN
  9182. END IF
  9183. END IF
  9184. IF Not f_power_ind(520) THEN
  9185. arg_msg = ''
  9186. FOR i = 1 To dw_child.RowCount()
  9187. IF dw_child.Object.u_outwaremx_mtrlwareid[i] > 0 THEN
  9188. IF dw_child.Object.u_outwaremx_uqty[i] > 0 THEN
  9189. IF dw_child.Object.u_outwaremx_outtype[i] = 0 THEN //一般发货
  9190. If (dw_child.Object.u_outwaremx_ifrel[i] = 1 &
  9191. And dw_child.Object.u_outwaremx_relid[i] = 0) &
  9192. Or dw_child.Object.u_outwaremx_ifrel[i] = 0 THEN
  9193. arg_msg = arg_msg + '第' + String(i) + '行,产品:' + dw_child.Object.u_mtrldef_mtrlcode[i] + ',请选择订单!~n '
  9194. END IF
  9195. END IF
  9196. END IF
  9197. END IF
  9198. NEXT
  9199. IF arg_msg <> '' THEN
  9200. MessageBox('提示',arg_msg + '用户权限限制,不能保存!',information!,OK!)
  9201. RETURN
  9202. END IF
  9203. END IF
  9204. ll_scid = dw_uc.Object.u_outware_scid[uc_row]
  9205. ll_outwareid = dw_uc.Object.u_outware_outwareid[uc_row]
  9206. ll_cusid = dw_uc.Object.u_outware_cusid[uc_row]
  9207. ll_moneyid = dw_uc.Object.u_outware_relint_2[uc_row]
  9208. IF sys_option_cusrepamt_limit = 1 THEN
  9209. wf_getcusrepamt_info(ll_scid,ll_cusid,ll_moneyid)
  9210. IF cur_cusrepamtflag = -1 THEN
  9211. MessageBox('系统提示','系统选项080限制~r~n'+cur_cusrepamtstr)
  9212. RETURN 0
  9213. END IF
  9214. END IF
  9215. //保存前根据物料资料定义,检查数量和辅数的关系是否正确,如果辅数有填写 ,数量没有填写 ,会根据物料资料里的定义自动计算出数量
  9216. IF wf_check_qtyandaddqty(arg_msg) = 0 THEN
  9217. MessageBox('提示',arg_msg + ',不能保存!',information!,OK!)
  9218. RETURN
  9219. END IF
  9220. //系统选项280 设置单价小数位数
  9221. wf_set_decimal_place()
  9222. uo_ware.outdate = dw_uc.Object.u_outware_outdate[uc_row] // 发生时间
  9223. uo_ware.outrep = dw_uc.Object.u_outware_outrep[uc_row] // 经手人
  9224. uo_ware.part = dw_uc.Object.u_outware_part[uc_row] //相关部门
  9225. uo_ware.dscrp = dw_uc.Object.u_outware_dscrp[uc_row] //备注
  9226. uo_ware.dscrp2 = dw_uc.Object.u_outware_dscrp2[uc_row] //备注
  9227. uo_ware.dscrp3 = dw_uc.Object.u_outware_dscrp3[uc_row] //备注
  9228. uo_ware.cusid = dw_uc.Object.u_outware_cusid[uc_row]
  9229. uo_ware.storageid = dw_uc.Object.u_outware_storageid[uc_row]
  9230. uo_ware.relid = dw_uc.Object.u_outware_relid[uc_row]
  9231. uo_ware.relint_1 = dw_uc.Object.u_outware_relint_1[uc_row] //结算方式
  9232. uo_ware.relint_2 = dw_uc.Object.u_outware_relint_2[uc_row] //币种
  9233. uo_ware.relstr_1 = dw_uc.Object.u_outware_relstr_1[uc_row]
  9234. uo_ware.relstr_2 = dw_uc.Object.u_outware_relstr_2[uc_row]
  9235. uo_ware.relstr_3 = dw_uc.Object.u_outware_relstr_3[uc_row]
  9236. uo_ware.mrate = dw_uc.Object.u_outware_mrate[uc_row]
  9237. uo_ware.thflag = 0
  9238. uo_ware.otheramt = dw_uc.Object.u_outware_otheramt[uc_row]
  9239. uo_ware.deposit = dw_uc.Object.u_outware_deposit[uc_row]
  9240. uo_ware.rel_address = dw_uc.Object.u_outware_rel_address[uc_row]
  9241. uo_ware.rel_tele = dw_uc.Object.u_outware_rel_tele[uc_row]
  9242. uo_ware.rel_tele1 = dw_uc.Object.u_outware_rel_tele1[uc_row]
  9243. uo_ware.rel_fax = dw_uc.Object.u_outware_rel_fax[uc_row]
  9244. uo_ware.rel_rep = dw_uc.Object.u_outware_rel_rep[uc_row]
  9245. uo_ware.deposit = dw_uc.Object.u_outware_deposit[uc_row]
  9246. uo_ware.transcode = dw_uc.Object.u_outware_transcode[uc_row]
  9247. uo_ware.carcode = dw_uc.Object.u_outware_carcode[uc_row]
  9248. uo_ware.paytype = dw_uc.Object.u_outware_paytype[uc_row]
  9249. uo_ware.typeid = dw_uc.Object.u_outware_typeid[uc_row]
  9250. uo_ware.viewdate = dw_uc.Object.u_outware_viewdate[uc_row] // 预收款时间
  9251. IF ll_outwareid > 0 THEN
  9252. SELECT flag,secflag,priceflag
  9253. INTO :li_flag,:li_secflag,:li_priceflag
  9254. FROM u_outware
  9255. WHERE scid = :ll_scid
  9256. And outwareid = :ll_outwareid;
  9257. IF sqlca.SQLCode <> 0 THEN
  9258. MessageBox('错误','查询销售单审核标记失败',stopsign!,OK!)
  9259. RETURN
  9260. END IF
  9261. END IF
  9262. ll_printid = 0
  9263. dw_child.AcceptText()
  9264. FOR i = 1 To dw_child.RowCount()
  9265. IF dw_child.Object.u_outwaremx_mtrlwareid[i] > 0 THEN
  9266. IF li_priceflag = 0 And li_flag = 0 THEN
  9267. ll_printid ++
  9268. ELSE
  9269. ll_printid = dw_child.Object.u_outwaremx_printid[i]
  9270. END IF
  9271. s_mx.mtrlwareid = dw_child.Object.u_outwaremx_mtrlwareid[i]
  9272. s_mx.saleqty = dw_child.Object.u_outwaremx_saleqty[i]
  9273. s_mx.qty = dw_child.Object.u_outwaremx_uqty[i]
  9274. s_mx.addqty = dw_child.Object.u_outwaremx_addqty[i]
  9275. s_mx.tax = dw_child.Object.u_outwaremx_tax[i]
  9276. s_mx.fprice = dw_child.Object.u_outwaremx_enprice[i]
  9277. s_mx.rebate = dw_child.Object.u_outwaremx_rebate[i]
  9278. s_mx.mxdscrp = dw_child.Object.u_outwaremx_mxdscrp[i]
  9279. s_mx.printid = ll_printid
  9280. s_mx.ifrel = dw_child.Object.u_outwaremx_ifrel[i]
  9281. s_mx.relid = dw_child.Object.u_outwaremx_relid[i]
  9282. s_mx.relprintid = dw_child.Object.u_outwaremx_relprintid[i]
  9283. s_mx.relid2 = 0
  9284. s_mx.olmtrlid = 0
  9285. s_mx.packqty = dw_child.Object.u_outwaremx_packqty[i]
  9286. s_mx.outtype = dw_child.Object.u_outwaremx_outtype[i]
  9287. s_mx.unit = dw_child.Object.u_outwaremx_unit[i]
  9288. s_mx.rate = dw_child.Object.u_outwaremx_rate[i]
  9289. s_mx.mtrlcuscode = dw_child.Object.u_outwaremx_mtrlcuscode[i]
  9290. s_mx.formula = dw_child.Object.u_outwaremx_formula[i]
  9291. s_mx.mxdscrp2 = dw_child.Object.mxdscrp2[i]
  9292. s_mx.net_weight = dw_child.Object.u_outwaremx_net_weight[i]
  9293. s_mx.gross_weight = dw_child.Object.u_outwaremx_gross_weight[i]
  9294. s_mx.cubage = dw_child.Object.u_outwaremx_cubage[i]
  9295. s_mx.mxdscrp3 = dw_child.Object.u_outwaremx_mxdscrp3[i]
  9296. s_mx.mxdscrp4 = dw_child.Object.u_outwaremx_mxdscrp4[i]
  9297. s_mx.enprice_notax = dw_child.Object.enprice_notax[i] //不含税单价
  9298. s_mx.priceformula = dw_child.Object.u_outwaremx_priceformula[i]
  9299. s_mx.enamt_tax = dw_child.Object.u_outwaremx_enamt_tax[i]
  9300. s_mx.status = dw_child.Object.u_outwaremx_status[i]
  9301. s_mx.woodcode = dw_child.Object.u_outwaremx_woodcode[i]
  9302. s_mx.pcode = dw_child.Object.u_outwaremx_pcode[i]
  9303. IF uo_ware.acceptmx(s_mx, arg_msg) = 0 THEN
  9304. MessageBox('错误',arg_msg,stopsign!,OK!)
  9305. RETURN
  9306. END IF
  9307. END IF
  9308. NEXT
  9309. IF uo_ware.createmxmx(arg_msg) <> 1 THEN
  9310. MessageBox('错误',arg_msg,stopsign!,OK!)
  9311. RETURN
  9312. END IF
  9313. FOR i = 1 To dw_fymx.RowCount()
  9314. IF dw_fymx.Object.u_outware_itemmx_itemid[i] > 0 THEN
  9315. s_item.printid = i
  9316. s_item.itemid = dw_fymx.Object.u_outware_itemmx_itemid[i]
  9317. s_item.amt = dw_fymx.Object.u_outware_itemmx_amt[i]
  9318. s_item.mxdscrp = dw_fymx.Object.u_outware_itemmx_mxdscrp[i]
  9319. s_item.saletaskid = dw_fymx.Object.u_outware_itemmx_saletaskid[i]
  9320. s_item.saletaskprintid = dw_fymx.Object.u_outware_itemmx_saletaskprintid[i]
  9321. s_item.itype = dw_fymx.Object.u_outware_itemmx_itype[i]
  9322. IF uo_ware.acceptmx_item(s_item, arg_msg) = 0 THEN
  9323. MessageBox('Error!',arg_msg)
  9324. RETURN
  9325. END IF
  9326. END IF
  9327. NEXT
  9328. IF uo_ware.Save(True,arg_msg) = 0 THEN
  9329. MessageBox('错误',arg_msg,stopsign!,OK!)
  9330. RETURN
  9331. END IF
  9332. // MessageBox(publ_operator,'保存操作成功!')
  9333. //write ini
  9334. f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "ddlb_storageid",String(dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]))
  9335. f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "moneyid",String(dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]))
  9336. f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "banktypeid",String(dw_uc.Object.u_outware_relint_1[dw_uc.GetRow()]))
  9337. Long ll_row
  9338. ll_row = dw_pageretr.GetRow()
  9339. dw_pageretr.SelectRow(0,False)
  9340. dw_pageretr.SelectRow(ll_row,True)
  9341. wf_refresh_curuc(ll_scid,uo_ware.outwareid) //刷新uc
  9342. ls_taskcode = dw_uc.Object.u_outware_outwarecode[uc_row]
  9343. IF f_billevent_trigger (104, 2, ls_taskcode, arg_msg) = 0 THEN
  9344. MessageBox('Error',arg_msg)
  9345. END IF
  9346. ELSE
  9347. IF uo_ware.newbegin(cur_scid,1,arg_msg) = 0 THEN
  9348. MessageBox('错误',arg_msg,stopsign!,OK!)
  9349. RETURN
  9350. END IF
  9351. cur_editfocus = 1
  9352. flag = -1
  9353. secflag = -1
  9354. END IF
  9355. CALL Super::Clicked
  9356. //read ini
  9357. IF dw_edit_mode THEN
  9358. dw_fymx.Reset()
  9359. Parent.TriggerEvent("insert_childrow")
  9360. String ls_storageid,ls_moneyid,ls_banktypeid
  9361. IF sys_option_hide_ware = 1 THEN
  9362. ls_storageid = '11'
  9363. ELSE
  9364. ls_storageid = f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "ddlb_storageid",'0')
  9365. IF f_find_storageid(ls_storageid) = '' THEN
  9366. ls_storageid = '0'
  9367. END IF
  9368. END IF
  9369. ls_moneyid = f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "moneyid",'0')
  9370. ls_banktypeid = f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "banktypeid",'0')
  9371. dw_uc.SetRedraw(False)
  9372. dw_uc.Object.u_outware_storageid[dw_uc.GetRow()] = Long(ls_storageid)
  9373. dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] = Long(ls_moneyid)
  9374. dw_uc.Object.u_outware_mrate[dw_uc.GetRow()] = f_get_mrate(Long(ls_moneyid))
  9375. dw_uc.Object.u_outware_relint_1[dw_uc.GetRow()] = Long(ls_banktypeid)
  9376. dw_uc.Object.u_outware_scid[dw_uc.GetRow()] = cur_scid
  9377. dw_uc.Object.u_outware_viewdate[dw_uc.GetRow()] = relativedate(today(), 1 - day(today()))
  9378. IF sys_option_hide_ware = 0 THEN
  9379. dw_uc.SetColumn("u_outware_storageid")
  9380. ELSE
  9381. dw_uc.SetColumn("u_cust_cuscode")
  9382. END IF
  9383. dw_uc.SetRedraw(True)
  9384. ELSE
  9385. Parent.TriggerEvent("retrieve_childdw")
  9386. END IF
  9387. //
  9388. end event
  9389. type cb_edit from w_publ_1ton_share_detail`cb_edit within w_outware_sale
  9390. integer taborder = 100
  9391. end type
  9392. event cb_edit::clicked;IF priceflag = 1 OR flag = 1 THEN
  9393. IF NOT f_power_ind(1294) THEN
  9394. //MessageBox('提示','你没有仓审或确认后修改权限!',information!,OK!)
  9395. MessageBox('提示',sys_msg_pow)
  9396. RETURN
  9397. END IF
  9398. ELSE
  9399. IF Not (f_power_ind(11) OR f_power_ind(371)) THEN
  9400. MessageBox('提示',sys_msg_pow)
  9401. RETURN
  9402. END IF
  9403. END IF
  9404. String arg_msg = ''
  9405. Long uc_row,ll_flag
  9406. uc_row = dw_pageretr.GetRow()
  9407. IF uc_row <= 0 THEN
  9408. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  9409. RETURN
  9410. END IF
  9411. IF NOT dw_edit_mode THEN
  9412. IF uo_ware.updatebegin(dw_pageretr.Object.u_outware_scid[uc_row],dw_pageretr.Object.u_outware_outwareid[uc_row],1,arg_msg) = 0 THEN
  9413. MessageBox('错误',arg_msg,stopsign!,OK!)
  9414. RETURN
  9415. END IF
  9416. cur_editfocus = 2
  9417. ELSE
  9418. cur_editfocus = 0
  9419. END IF
  9420. CALL SUPER::Clicked
  9421. THIS.TriggerEvent('refresh_interface')
  9422. end event
  9423. type cb_delet from w_publ_1ton_share_detail`cb_delet within w_outware_sale
  9424. integer taborder = 110
  9425. end type
  9426. event cb_delet::clicked;call super::clicked;if not (f_power_ind(580) or f_power_ind(583)) then
  9427. messagebox('提示',sys_msg_pow,information!,OK!)
  9428. return
  9429. end if
  9430. string arg_msg=''
  9431. if dw_edit_mode then return
  9432. long uc_row
  9433. uc_row=dw_pageretr.getrow()
  9434. if uc_row<=0 then
  9435. messagebox('提示','请选定当前目标单据!',information!,OK!)
  9436. return
  9437. end if
  9438. if messagebox ("询问","是否确定要删除当前单据?",question!,yesno! ) = 2 then return
  9439. if uo_ware.del(dw_pageretr.object.u_outware_scid[uc_row],dw_pageretr.object.u_outware_outwareid[uc_row],arg_msg,true)=0 then
  9440. messagebox('错误',arg_msg,stopsign!,OK!)
  9441. else
  9442. //日志
  9443. long ls_id
  9444. string ls_code
  9445. ls_id=dw_pageretr.object.u_outware_outwareid[uc_row]
  9446. ls_code=dw_pageretr.object.u_outware_outwarecode[uc_row]
  9447. f_setsysoplog('销售发货单','删除,id:'+string(ls_id)+',code:'+ls_code,arg_msg,true)
  9448. //--
  9449. messagebox('提示','删除单据'+string(dw_pageretr.object.u_outware_outwarecode[uc_row])+'成功!',information!,OK!)
  9450. dw_pageretr.deleterow(uc_row)
  9451. dw_pageretr.postevent(rowfocuschanged!)
  9452. end if
  9453. end event
  9454. type cb_addzy from w_publ_1ton_share_detail`cb_addzy within w_outware_sale
  9455. integer x = 1221
  9456. end type
  9457. event cb_addzy::clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  9458. String menustr
  9459. IF dw_edit_mode THEN
  9460. menustr = menustr + "|" + "Text=导入单价~tEvent=ue_importseleprice"
  9461. menustr = menustr + "|" + "Text=补充导入单价~tEvent=ue_importcusseleprice_buchong"
  9462. menustr = menustr + "|" + "Text=导入客户单价~tEvent=ue_importcusseleprice"
  9463. IF sys_option_price_if_list = 3 THEN //取设定售价, 1时只能取价格表
  9464. menustr = menustr + "|" + "Text=导入设定售价~tEvent=ue_importlmsaleprice"
  9465. END IF
  9466. IF sys_option_price_if_list = 0 THEN //取销售历史, 1时只能取价格表
  9467. menustr = menustr + "|" + "Text=导入客户历史售价~tEvent=ue_importcusseleprice_his"
  9468. END IF
  9469. menustr = menustr + "|" + "Text=-"
  9470. menustr = menustr + "|" + "Text=辅助计算辅数~tEvent=ue_cmpl_addqty"
  9471. menustr = menustr + "|" + "Text=-"
  9472. menustr = menustr + "|" + "Text=粘贴单据~tEvent=ue_bill_paste"
  9473. ELSE
  9474. menustr = "Text=增加备注~tEvent=ue_addzy"
  9475. menustr = menustr + "|" + "Text=-"
  9476. menustr = menustr + "|" + "Text=确认~tEvent=ue_priceaudit"
  9477. menustr = menustr + "|" + "Text=反确认~tEvent=ue_cpriceaudit"
  9478. menustr = menustr + "|" + "Text=-"
  9479. menustr = menustr + "|" + "Text=回单~tEvent=ue_secpriceaudit"
  9480. menustr = menustr + "|" + "Text=反回单~tEvent=ue_csecpriceaudit"
  9481. menustr = menustr + "|" + "Text=-"
  9482. menustr = menustr + "|" + "Text=计算(所属仓库)可装数~tEvent=ue_cmpdi"
  9483. menustr = menustr + "|" + "Text=计算(全部仓库)可装数~tEvent=ue_cmpdi_all"
  9484. menustr = menustr + "|" + "Text=辅助建立拆装单~tEvent=ue_di"
  9485. menustr = menustr + "|" + "Text=自动组装~tEvent=ue_di_auto"
  9486. menustr = menustr + "|" + "Text=删除自动组装~tEvent=ue_di_auto_del"
  9487. menustr = menustr + "|" + "Text=-"
  9488. menustr = menustr + "|" + "Text=复制单据~tEvent=ue_bill_copy"
  9489. menustr = menustr + "|" + "Text=-"
  9490. menustr = menustr + "|" + "Text=查看附件~tEvent=ue_fj_view"
  9491. menustr = menustr + "|" + "Text=添加附件~tEvent=ue_fj_edit"
  9492. menustr = menustr + "|" + "Text=刷新列表附件数~tEvent=retrieve_fjnum"
  9493. menustr = menustr + "|" + "Text=-"
  9494. menustr = menustr + "|" + "Text=全选~tEvent=ue_all_choice"
  9495. menustr = menustr + "|" + "Text=全不选~tEvent=ue_allnot_choice"
  9496. menustr = menustr + "|" + "Text=批仓审核(选中的)~tEvent=ue_all_audit"
  9497. menustr = menustr + "|" + "Text=批仓撤审(选中的)~tEvent=ue_allnot_audit"
  9498. menustr = menustr + "|" + "Text=批删除(选中的)~tEvent=ue_all_delete"
  9499. menustr = menustr + "|" + "Text=批财撤(选中的)~tEvent=ue_all_c_secaudit"
  9500. menustr = menustr + "|" + "Text=批修改销售时间(选中的)~tEvent=ue_mod_outdate"
  9501. menustr = menustr + "|" + "Text=-"
  9502. menustr = menustr + "|" + "Text=辅助建立客户收款结算单~tEvent=ue_create_bmstamt"
  9503. menustr = menustr + "|" + "Text=-"
  9504. menustr = menustr + "|" + "Text=仓审后修改结算方式~tEvent=ue_bill_mod"
  9505. menustr = menustr + "|" + "Text=按物料批修改单价~tEvent=ue_price_mod"
  9506. menustr = menustr + "|" + "Text=-"
  9507. menustr = menustr + "|" + "Text=界面属性选项设置方案~tEvent=ue_outware_choose"
  9508. END IF
  9509. IF Len(Trim(menustr)) <> 0 THEN
  9510. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  9511. dmPopupMenu.mf_BuildMenu(This, menustr)
  9512. dmPopupMenu.mf_PopMenu()
  9513. Destroy dmPopupMenu
  9514. END IF
  9515. end event
  9516. type cb_auditing from w_publ_1ton_share_detail`cb_auditing within w_outware_sale
  9517. integer taborder = 120
  9518. string text = "仓审&F"
  9519. end type
  9520. event cb_auditing::clicked;call super::clicked;IF dw_edit_mode THEN RETURN
  9521. String ls_taskcode,ls_outwarecode
  9522. String ls_msg = ''
  9523. Long rslt = 1
  9524. Int li_priceflag, li_flag, li_secflag
  9525. Long ll_i,ll_billid, ll_scid,ll_peg
  9526. IF Not KeyDown(KeyControl!) THEN
  9527. String arg_msg = '',ls_code
  9528. Long pagerert_row,ls_id
  9529. pagerert_row = dw_pageretr.GetRow()
  9530. IF pagerert_row <= 0 THEN
  9531. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  9532. RETURN
  9533. END IF
  9534. ll_scid = dw_pageretr.Object.u_outware_scid[pagerert_row]
  9535. ll_billid = dw_pageretr.Object.u_outware_outwareid[pagerert_row]
  9536. li_priceflag = dw_pageretr.Object.u_outware_priceflag[pagerert_row]
  9537. li_flag = dw_pageretr.Object.flag[pagerert_row]
  9538. li_secflag = dw_pageretr.Object.secflag[pagerert_row]
  9539. ls_outwarecode = dw_pageretr.Object.u_outware_outwarecode[pagerert_row]
  9540. ls_msg = '审核'
  9541. IF sys_option_confirmaudit_sale = 1 And li_priceflag = 0 THEN ls_msg = '确认'
  9542. IF MessageBox ("询问","是否确定要"+This.Text+"当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  9543. IF uo_ware.getinfo(ll_scid,ll_billid,arg_msg) = 0 THEN
  9544. MessageBox('错误',arg_msg,stopsign!,OK!)
  9545. RETURN
  9546. END IF
  9547. IF sys_option_confirmaudit_sale = 1 And li_priceflag = 0 THEN
  9548. IF Not f_power_ind(491) THEN
  9549. MessageBox('提示',sys_msg_pow,information!,OK!)
  9550. RETURN
  9551. END IF
  9552. IF uo_ware.priceaudit(ll_scid,ll_billid,True,arg_msg) = 0 THEN
  9553. rslt = 0
  9554. GOTO ext
  9555. END IF
  9556. ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[pagerert_row]
  9557. IF f_billevent_trigger (104, 4, ls_taskcode, arg_msg) = 0 THEN
  9558. MessageBox('Error',arg_msg)
  9559. END IF
  9560. ELSE
  9561. IF sys_option_hide_ware = 0 THEN
  9562. IF li_flag = 0 THEN
  9563. IF Not (f_power_ind(65) Or f_power_ind(369)) THEN
  9564. MessageBox('提示',sys_msg_pow,information!,OK!)
  9565. RETURN
  9566. END IF
  9567. //系统选项267销售发货单,销售退货单 扫描数不等于出仓数不能仓审
  9568. IF sys_option_check_scanqty = 1 THEN
  9569. ls_msg = wf_check_sys_option_check_scanqty()
  9570. IF ls_msg <> '' THEN
  9571. MessageBox('NO',ls_msg)
  9572. RETURN
  9573. END IF
  9574. END IF
  9575. //检查淘宝发货标记yyx20151118
  9576. IF wf_ck_taobao(ls_outwarecode) = 0 THEN
  9577. RETURN
  9578. END IF
  9579. //检查淘宝发货标记yyx20151118_end
  9580. ls_msg = '仓库审核'
  9581. IF uo_ware.auditing(True,arg_msg) = 0 THEN
  9582. rslt = 0
  9583. GOTO ext
  9584. ELSE
  9585. ll_peg = 1
  9586. END IF
  9587. ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[pagerert_row]
  9588. IF f_billevent_trigger (104, 3, ls_taskcode, arg_msg) = 0 THEN
  9589. MessageBox('Error',arg_msg)
  9590. END IF
  9591. ELSEIF li_flag = 1 And li_secflag = 0 THEN
  9592. IF Not (f_power_ind(137) Or f_power_ind(370)) THEN
  9593. MessageBox('提示',sys_msg_pow,information!,OK!)
  9594. RETURN
  9595. END IF
  9596. ls_msg = '财务审核'
  9597. IF uo_ware.secauditing(True,arg_msg) = 0 THEN
  9598. rslt = 0
  9599. GOTO ext
  9600. END IF
  9601. ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[pagerert_row]
  9602. IF f_billevent_trigger (104, 5, ls_taskcode, arg_msg) = 0 THEN
  9603. MessageBox('Error',arg_msg)
  9604. END IF
  9605. END IF
  9606. ELSE
  9607. IF dw_pageretr.Object.flag[pagerert_row] = 0 THEN
  9608. IF Not (f_power_ind(137) Or f_power_ind(370)) THEN
  9609. MessageBox('提示',sys_msg_pow,information!,OK!)
  9610. RETURN
  9611. END IF
  9612. //检查淘宝发货标记yyx20151118
  9613. IF wf_ck_taobao(ls_outwarecode) = 0 THEN
  9614. RETURN
  9615. END IF
  9616. //检查淘宝发货标记yyx20151118_end
  9617. IF uo_ware.auditing(False,arg_msg) = 0 THEN
  9618. rslt = 0
  9619. GOTO ext
  9620. END IF
  9621. IF uo_ware.secauditing(True,arg_msg) = 0 THEN
  9622. rslt = 0
  9623. GOTO ext
  9624. END IF
  9625. END IF
  9626. END IF
  9627. END IF
  9628. ext:
  9629. IF rslt = 0 THEN
  9630. MessageBox('错误',arg_msg,stopsign!,OK!)
  9631. ELSE
  9632. MessageBox('提示',ls_msg+'成功!',information!,OK!)
  9633. wf_refresh_curuc(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row])
  9634. IF ll_peg = 1 THEN
  9635. wf_check_ware(ll_scid,ll_billid)
  9636. END IF
  9637. END IF
  9638. ELSE
  9639. Int li_type
  9640. Long ll_suc,ll_fail
  9641. dw_pageretr.AcceptText()
  9642. li_flag = dw_pageretr.Object.flag[dw_pageretr.GetRow()]
  9643. li_secflag = dw_pageretr.Object.secflag[dw_pageretr.GetRow()]
  9644. IF li_flag = 0 And li_secflag = 0 THEN
  9645. li_type = 0
  9646. ls_msg = '审核'
  9647. IF Not (f_power_ind(65) Or f_power_ind(369)) THEN
  9648. MessageBox('提示',sys_msg_pow,information!,OK!)
  9649. RETURN
  9650. END IF
  9651. ELSEIF li_flag = 1 And li_secflag = 0 THEN
  9652. li_type = 1
  9653. ls_msg = '财审'
  9654. IF Not (f_power_ind(137) Or f_power_ind(370)) THEN
  9655. MessageBox('提示',sys_msg_pow,information!,OK!)
  9656. RETURN
  9657. END IF
  9658. ELSE
  9659. RETURN
  9660. END IF
  9661. IF MessageBox ("询问","是否确定要批"+ls_msg+"列表中未"+ls_msg+"的单据?",Question!,YesNo! ) = 2 THEN RETURN
  9662. Open(w_sys_wait_jdt) //初始化进度条
  9663. w_sys_wait_jdt.Show()
  9664. w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount())
  9665. FOR ll_i = 1 To dw_pageretr.RowCount()
  9666. w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.u_outware_outwarecode[ll_i] + " 正在审核..." //进度信息
  9667. ll_billid = dw_pageretr.Object.u_outware_outwareid[ll_i]
  9668. ll_scid = dw_pageretr.Object.u_outware_scid[ll_i]
  9669. ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[ll_i]
  9670. li_flag = dw_pageretr.Object.flag[ll_i]
  9671. li_secflag = dw_pageretr.Object.secflag[ll_i]
  9672. IF li_type = 0 THEN //仓审
  9673. IF li_flag = 1 THEN CONTINUE
  9674. IF uo_ware.getinfo(ll_scid,ll_billid,arg_msg) = 0 THEN
  9675. ll_fail++
  9676. CONTINUE
  9677. END IF
  9678. IF uo_ware.auditing(True,arg_msg) = 0 THEN
  9679. ll_fail++
  9680. CONTINUE
  9681. END IF
  9682. ll_suc++
  9683. IF f_billevent_trigger (104, 3, ls_taskcode, arg_msg) = 0 THEN
  9684. ls_msg = ls_msg + arg_msg + '~r~n'
  9685. END IF
  9686. ELSEIF li_type = 1 THEN //财审
  9687. IF li_flag = 0 Or li_secflag = 1 THEN CONTINUE
  9688. IF uo_ware.getinfo(ll_scid,ll_billid,arg_msg) = 0 THEN
  9689. ll_fail++
  9690. CONTINUE
  9691. END IF
  9692. IF uo_ware.secauditing(True,arg_msg) = 0 THEN
  9693. ll_fail++
  9694. CONTINUE
  9695. END IF
  9696. ll_suc++
  9697. IF f_billevent_trigger (104, 5, ls_taskcode, arg_msg) = 0 THEN
  9698. ls_msg = ls_msg + arg_msg + '~r~n'
  9699. END IF
  9700. END IF
  9701. w_sys_wait_jdt.wf_inc(ll_i) //进度
  9702. NEXT
  9703. Close(w_sys_wait_jdt)
  9704. MessageBox('提示','批'+ls_msg+'审核成功!成功:'+String(ll_suc)+',失败:'+String(ll_fail) + ls_msg,information!,OK!)
  9705. Parent.TriggerEvent('retrieve_pageretr')
  9706. END IF
  9707. end event
  9708. type cb_xm from w_publ_1ton_share_detail`cb_xm within w_outware_sale
  9709. integer x = 1472
  9710. integer taborder = 140
  9711. end type
  9712. event cb_xm::clicked;//
  9713. is_mx_menustr = ''
  9714. Long ll_storageid,uc_row
  9715. uc_row = dw_pageretr.GetRow()
  9716. IF uc_row <= 0 THEN
  9717. RETURN
  9718. END IF
  9719. ll_storageid = dw_pageretr.Object.u_outware_storageid[uc_row]
  9720. Long li_if_fifo = 0
  9721. SELECT if_fifo
  9722. INTO :li_if_fifo
  9723. FROM u_storage
  9724. Where storageid = :ll_storageid Using sqlca;
  9725. IF dw_edit_mode THEN
  9726. is_mx_menustr += "|" + "Text=批设定折扣~tEvent=ue_p_rebate"
  9727. is_mx_menustr += "|" + "Text=批设定公式~tEvent=ue_p_formula_set"
  9728. is_mx_menustr += "|" + "Text=批由公式计算数量~tEvent=ue_p_cmpl_qty"
  9729. is_mx_menustr += "|" + "Text=批由辅数和配置计算数量~tEvent=ue_cmpl_status_qty"
  9730. is_mx_menustr += "|" + "Text=批设数量为0~tEvent=ue_cmpl_set0"
  9731. is_mx_menustr += "|" + "Text=计算税率~tEvent=ue_cmpl_tax"
  9732. is_mx_menustr += "|" + "Text=按第一行批设税率~tEvent=ue_set_tax"
  9733. ELSE
  9734. IF li_if_fifo = 1 THEN
  9735. is_mx_menustr += "|" + "Text=查看成本组成明细~tEvent=ue_show_fifo_cbmx"
  9736. is_mx_menustr += "|" + "Text=查看销售历史价格~tEvent=ue_show_his_pricemx"
  9737. END IF
  9738. is_mx_menustr += "|" + "Text=计算明细库存数量和不足数量~tEvent=ue_mx_cmplnoallocqty"
  9739. END IF
  9740. CALL Super::Clicked
  9741. end event
  9742. type cb_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_outware_sale
  9743. integer taborder = 50
  9744. end type
  9745. type cb_xls from w_publ_1ton_share_detail`cb_xls within w_outware_sale
  9746. integer x = 2107
  9747. end type
  9748. type cb_help from w_publ_1ton_share_detail`cb_help within w_outware_sale
  9749. integer x = 2409
  9750. integer taborder = 160
  9751. end type
  9752. type cb_auditing_cancel from w_publ_1ton_share_detail`cb_auditing_cancel within w_outware_sale
  9753. integer width = 192
  9754. end type
  9755. event cb_auditing_cancel::clicked;call super::clicked;IF dw_edit_mode THEN RETURN
  9756. String arg_msg = '',ls_code,ls_opemp,ls_outpart
  9757. Long pagerert_row,ls_id
  9758. Long rslt = 1
  9759. String ls_msg
  9760. Int li_priceflag, li_flag, li_secflag
  9761. Long ll_i,ll_billid, ll_scid
  9762. pagerert_row = dw_pageretr.GetRow()
  9763. IF pagerert_row <= 0 THEN
  9764. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  9765. RETURN
  9766. END IF
  9767. ll_scid = dw_pageretr.Object.u_outware_scid[pagerert_row]
  9768. ll_billid = dw_pageretr.Object.u_outware_outwareid[pagerert_row]
  9769. li_priceflag = dw_pageretr.Object.u_outware_priceflag[pagerert_row]
  9770. li_flag = dw_pageretr.Object.flag[pagerert_row]
  9771. li_secflag = dw_pageretr.Object.secflag[pagerert_row]
  9772. ls_msg = "撤审"
  9773. IF sys_option_confirmaudit_sale = 1 And li_priceflag = 1 And li_flag = 0 THEN ls_msg = '反确认'
  9774. IF MessageBox ("询问","是否确定要"+This.Text+"当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  9775. IF uo_ware.getinfo(ll_scid,ll_billid,arg_msg) = 0 THEN
  9776. MessageBox('错误',arg_msg,stopsign!,OK!)
  9777. RETURN
  9778. END IF
  9779. IF sys_option_hide_ware = 0 THEN
  9780. //两级审
  9781. IF li_secflag = 1 THEN
  9782. IF Not f_power_ind(870) THEN
  9783. MessageBox('提示',sys_msg_pow,information!,OK!)
  9784. RETURN
  9785. END IF
  9786. ls_msg = '财务撤审'
  9787. IF uo_ware.c_secauditing(True,arg_msg) = 0 THEN
  9788. rslt = 0
  9789. GOTO ext
  9790. END IF
  9791. ELSEIF li_flag = 1 And li_secflag = 0 THEN
  9792. IF Not (f_power_ind(869) Or f_power_ind(868) ) THEN
  9793. MessageBox('提示',sys_msg_pow,information!,OK!)
  9794. RETURN
  9795. END IF
  9796. ls_msg = '仓库撤审'
  9797. IF uo_ware.c_auditing(True,arg_msg) = 0 THEN
  9798. rslt = 0
  9799. GOTO ext
  9800. END IF
  9801. ELSEIF li_priceflag = 1 And li_flag = 0 THEN
  9802. IF sys_option_confirmaudit_sale = 1 THEN
  9803. IF Not f_power_ind(1779) THEN
  9804. MessageBox('提示',sys_msg_pow,information!,OK!)
  9805. RETURN
  9806. END IF
  9807. ls_msg = '反确认'
  9808. IF uo_ware.c_priceaudit(ll_scid,ll_billid,True,arg_msg) = 0 THEN
  9809. rslt = 0
  9810. GOTO ext
  9811. END IF
  9812. END IF
  9813. END IF
  9814. ELSE
  9815. IF li_secflag = 1 THEN
  9816. IF Not f_power_ind(870) THEN
  9817. MessageBox('提示',sys_msg_pow,information!,OK!)
  9818. RETURN
  9819. END IF
  9820. IF uo_ware.c_secauditing(False,arg_msg) = 0 THEN
  9821. rslt = 0
  9822. GOTO ext
  9823. END IF
  9824. IF uo_ware.c_auditing(True,arg_msg) = 0 THEN
  9825. rslt = 0
  9826. GOTO ext
  9827. END IF
  9828. ELSEIF li_priceflag = 1 And li_flag = 0 THEN
  9829. IF sys_option_confirmaudit_sale = 1 THEN
  9830. IF Not f_power_ind(491) THEN
  9831. MessageBox('提示',sys_msg_pow,information!,OK!)
  9832. RETURN
  9833. END IF
  9834. ls_msg = '反确认'
  9835. IF uo_ware.c_priceaudit(ll_scid,ll_billid,True,arg_msg) = 0 THEN
  9836. rslt = 0
  9837. GOTO ext
  9838. END IF
  9839. END IF
  9840. END IF
  9841. END IF
  9842. ext:
  9843. IF rslt = 0 THEN
  9844. MessageBox('错误',arg_msg,stopsign!,OK!)
  9845. ELSE
  9846. MessageBox('提示',ls_msg+'成功!',information!,OK!)
  9847. //日志
  9848. ls_code = dw_pageretr.Object.u_outware_outwarecode[pagerert_row]
  9849. ls_opemp = dw_pageretr.Object.u_outware_opemp[pagerert_row]
  9850. ls_outpart = dw_pageretr.Object.u_outware_part[pagerert_row]
  9851. f_setsysoplog('销售发货单',ls_msg+',code:'+ls_code+',相关号码:'+ls_outpart+',建立人:'+ls_opemp,arg_msg,True)
  9852. //--
  9853. wf_refresh_curuc(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row])
  9854. END IF
  9855. end event
  9856. type p_msg from w_publ_1ton_share_detail`p_msg within w_outware_sale
  9857. integer x = 4174
  9858. end type
  9859. type p_help from w_publ_1ton_share_detail`p_help within w_outware_sale
  9860. integer x = 4361
  9861. end type
  9862. type p_encl from w_publ_1ton_share_detail`p_encl within w_outware_sale
  9863. integer x = 4265
  9864. end type
  9865. event p_encl::clicked;call super::clicked;//m_Dfc_Control_PopupMenu dmPopupMenu
  9866. //String menustr
  9867. //
  9868. //
  9869. //menustr = "Text=添加附件~tEvent=ue_fj_edit"
  9870. //menustr = menustr + "|" + "Text=查看附件~tEvent=ue_fj_view"
  9871. //menustr = menustr + "|" + "Text=-"
  9872. //menustr = menustr + "|" + "Text=添加明细附件~tEvent=ue_fj_edit_mx"
  9873. //menustr = menustr + "|" + "Text=查看明细附件~tEvent=ue_fj_view_mx"
  9874. ////menustr = menustr + "|" + "Text=产品附件另存为明细附件~tEvent=ue_fj_mx_add_p"
  9875. //menustr = menustr + "|" + "Text=-"
  9876. //menustr = menustr + "|" + "Text=打开副本~tEvent=ue_copyself"
  9877. //
  9878. //
  9879. //
  9880. //IF Len(Trim(menustr)) <> 0 THEN
  9881. // dmPopupMenu = Create m_Dfc_Control_PopupMenu
  9882. // dmPopupMenu.mf_BuildMenu(This, menustr)
  9883. // dmPopupMenu.mf_PopMenu()
  9884. // Destroy dmPopupMenu
  9885. //END IF
  9886. //
  9887. end event
  9888. type p_other from w_publ_1ton_share_detail`p_other within w_outware_sale
  9889. integer x = 4457
  9890. end type
  9891. type gb_3 from w_publ_1ton_share_detail`gb_3 within w_outware_sale
  9892. end type
  9893. type ln_bar from w_publ_1ton_share_detail`ln_bar within w_outware_sale
  9894. end type
  9895. type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_outware_sale
  9896. end type
  9897. type r_bar from w_publ_1ton_share_detail`r_bar within w_outware_sale
  9898. end type
  9899. type ln_1 from w_publ_1ton_share_detail`ln_1 within w_outware_sale
  9900. end type
  9901. type ln_2 from w_publ_1ton_share_detail`ln_2 within w_outware_sale
  9902. end type
  9903. type ddlb_scid from uo_ddlb_scid within w_outware_sale
  9904. integer x = 827
  9905. integer y = 188
  9906. integer width = 489
  9907. integer height = 468
  9908. integer taborder = 20
  9909. boolean bringtotop = true
  9910. end type
  9911. event constructor;call super::constructor;cur_scid = THIS.uo_scid
  9912. cur_scid_arr = THIS.uo_scid_arr
  9913. end event
  9914. event selectionchanged;call super::selectionchanged;cur_scid=this.uo_scid
  9915. cur_scid_arr = THIS.uo_scid_arr
  9916. parent.triggerevent("retrieve_pageretr")
  9917. end event
  9918. type st_3 from statictext within w_outware_sale
  9919. integer x = 1330
  9920. integer y = 204
  9921. integer width = 137
  9922. integer height = 48
  9923. integer textsize = -9
  9924. integer weight = 400
  9925. fontcharset fontcharset = gb2312charset!
  9926. fontpitch fontpitch = variable!
  9927. string facename = "宋体"
  9928. long textcolor = 33554432
  9929. long backcolor = 134217739
  9930. string text = "状态"
  9931. boolean focusrectangle = false
  9932. end type
  9933. type st_2 from statictext within w_outware_sale
  9934. integer x = 704
  9935. integer y = 204
  9936. integer width = 123
  9937. integer height = 48
  9938. integer textsize = -9
  9939. integer weight = 400
  9940. fontcharset fontcharset = gb2312charset!
  9941. fontpitch fontpitch = variable!
  9942. string facename = "宋体"
  9943. long textcolor = 33554432
  9944. long backcolor = 134217739
  9945. string text = "分部"
  9946. boolean focusrectangle = false
  9947. end type
  9948. type st_msg from statictext within w_outware_sale
  9949. integer x = 2377
  9950. integer y = 432
  9951. integer width = 1170
  9952. integer height = 892
  9953. integer textsize = -9
  9954. integer weight = 400
  9955. fontcharset fontcharset = gb2312charset!
  9956. fontpitch fontpitch = variable!
  9957. string facename = "宋体"
  9958. long backcolor = 15793151
  9959. boolean border = true
  9960. borderstyle borderstyle = styleraised!
  9961. boolean focusrectangle = false
  9962. end type
  9963. type cbx_ifmtrlware from checkbox within w_outware_sale
  9964. boolean visible = false
  9965. integer x = 3168
  9966. integer width = 795
  9967. integer height = 80
  9968. boolean bringtotop = true
  9969. integer textsize = -9
  9970. integer weight = 400
  9971. fontcharset fontcharset = gb2312charset!
  9972. fontpitch fontpitch = variable!
  9973. string facename = "宋体"
  9974. long textcolor = 33554432
  9975. long backcolor = 134217739
  9976. string text = "引入订单时优先考虑订单库存"
  9977. end type
  9978. event clicked;if this.checked then
  9979. ifmtrlware = 1
  9980. else
  9981. ifmtrlware = 0
  9982. end if
  9983. f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "ifmtrlware",String(ifmtrlware))
  9984. end event
  9985. event constructor;this.backcolor = 14215660
  9986. ifmtrlware = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "ifmtrlware",'0'))
  9987. IF ifmtrlware = 1 THEN
  9988. THIS.Checked = TRUE
  9989. ELSE
  9990. THIS.Checked = FALSE
  9991. END IF
  9992. end event
  9993. type cbx_enamt_edit from checkbox within w_outware_sale
  9994. boolean visible = false
  9995. integer x = 3214
  9996. integer y = 44
  9997. integer width = 617
  9998. integer height = 60
  9999. boolean bringtotop = true
  10000. integer textsize = -9
  10001. integer weight = 400
  10002. fontcharset fontcharset = gb2312charset!
  10003. fontpitch fontpitch = variable!
  10004. string facename = "宋体"
  10005. long textcolor = 33554432
  10006. long backcolor = 134217739
  10007. string text = "录入金额计算单价"
  10008. end type
  10009. event clicked;IF THIS.Checked THEN
  10010. ii_enamt_edit = 1
  10011. this.weight = 700
  10012. this.textcolor = 255
  10013. ELSE
  10014. ii_enamt_edit = 0
  10015. // cbx_enamt_notax_edit.checked = false
  10016. this.weight = 400
  10017. this.textcolor = 0
  10018. END IF
  10019. f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_edit",String(ii_enamt_edit))
  10020. wf_enamt_facechg()
  10021. //IF ii_enamt_edit = 0 THEN
  10022. // dw_child.Modify('enamt.protect = 1~t enamt.Color = 0')
  10023. // dw_child.Modify('enamt_t.Color = 0')
  10024. //ELSE
  10025. // dw_child.Modify('enamt.protect = 0~t enamt.Color = "0~trgb(0,0,255)"')
  10026. // dw_child.Modify('enamt_t.Color = "0~trgb(0,0,255)"')
  10027. //END IF
  10028. end event
  10029. event constructor;this.backcolor = 14215660
  10030. ii_enamt_edit = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_edit",'0'))
  10031. IF ii_enamt_edit = 1 THEN
  10032. THIS.Checked = TRUE
  10033. this.weight = 700
  10034. this.textcolor = 255
  10035. cbx_zk.Checked = FALSE
  10036. ELSE
  10037. THIS.Checked = FALSE
  10038. // cbx_enamt_notax_edit.enabled = FALSE
  10039. this.weight = 400
  10040. this.textcolor = 0
  10041. END IF
  10042. wf_enamt_facechg()
  10043. end event
  10044. type ddlb_status from uo_ddlb_status within w_outware_sale
  10045. integer x = 1458
  10046. integer y = 188
  10047. integer width = 370
  10048. integer height = 812
  10049. integer taborder = 30
  10050. boolean bringtotop = true
  10051. string item[] = {"[全部]","待确认","待仓审","待财审","已审核"}
  10052. end type
  10053. event selectionchanged;call super::selectionchanged;PARENT.TriggerEvent('retrieve_pageretr')
  10054. end event
  10055. event uof_getvalue;IF this.text = "[全部]" THEN
  10056. cur_flag = -1
  10057. cur_secflag = -1
  10058. cur_priceflag = -1
  10059. ELSEIF this.text = "待确认" THEN
  10060. cur_flag = -1
  10061. cur_secflag = -1
  10062. cur_priceflag = 0
  10063. ELSEIF this.text = "待仓审" THEN
  10064. cur_flag = 0
  10065. cur_secflag = -1
  10066. cur_priceflag = -1
  10067. ELSEIF this.text = "待财审" THEN
  10068. cur_flag = 1
  10069. cur_secflag = 0
  10070. cur_priceflag = -1
  10071. ELSEIF this.text = "已审核" THEN
  10072. cur_flag = 1
  10073. cur_secflag = 1
  10074. cur_priceflag = -1
  10075. END IF
  10076. end event
  10077. type cb_fhmx from commandbutton within w_outware_sale
  10078. integer x = 37
  10079. integer y = 1840
  10080. integer width = 315
  10081. integer height = 84
  10082. integer taborder = 100
  10083. boolean bringtotop = true
  10084. integer textsize = -9
  10085. integer weight = 700
  10086. fontcharset fontcharset = gb2312charset!
  10087. fontpitch fontpitch = variable!
  10088. string facename = "宋体"
  10089. boolean underline = true
  10090. string text = "发货明细"
  10091. end type
  10092. event clicked;cb_fhmx.Underline = True
  10093. cb_fymx.Underline = False
  10094. cb_bjmx.Underline = False
  10095. cb_fhmx.weight = 700
  10096. cb_fymx.weight = 400
  10097. cb_bjmx.weight = 400
  10098. dw_child.BringToTop = True
  10099. ins_dw_select = 0
  10100. end event
  10101. type cb_fymx from commandbutton within w_outware_sale
  10102. integer x = 357
  10103. integer y = 1840
  10104. integer width = 315
  10105. integer height = 84
  10106. integer taborder = 110
  10107. boolean bringtotop = true
  10108. integer textsize = -9
  10109. integer weight = 400
  10110. fontcharset fontcharset = gb2312charset!
  10111. fontpitch fontpitch = variable!
  10112. string facename = "宋体"
  10113. boolean underline = true
  10114. string text = "费用明细"
  10115. end type
  10116. event clicked;cb_fhmx.Underline = False
  10117. cb_fymx.Underline = True
  10118. cb_bjmx.Underline = False
  10119. cb_fhmx.weight = 400
  10120. cb_fymx.weight = 700
  10121. cb_bjmx.weight = 400
  10122. dw_fymx.BringToTop = True
  10123. ins_dw_select = 1
  10124. end event
  10125. type cb_bjmx from commandbutton within w_outware_sale
  10126. integer x = 677
  10127. integer y = 1840
  10128. integer width = 315
  10129. integer height = 84
  10130. integer taborder = 120
  10131. boolean bringtotop = true
  10132. integer textsize = -9
  10133. integer weight = 400
  10134. fontcharset fontcharset = gb2312charset!
  10135. fontpitch fontpitch = variable!
  10136. string facename = "宋体"
  10137. boolean underline = true
  10138. string text = "包件明细"
  10139. end type
  10140. event clicked;cb_fhmx.Underline = False
  10141. cb_fymx.Underline = False
  10142. cb_bjmx.Underline = True
  10143. cb_fhmx.weight = 400
  10144. cb_fymx.weight = 400
  10145. cb_bjmx.weight = 700
  10146. dw_bjmx.BringToTop = True
  10147. end event
  10148. type dw_bjmx from u_dw_rbtnfilter within w_outware_sale
  10149. integer x = 2565
  10150. integer y = 1856
  10151. integer taborder = 30
  10152. boolean titlebar = true
  10153. string title = "包件明细"
  10154. string dataobject = "dw_outwaremx_mx_edit"
  10155. boolean maxbox = true
  10156. boolean hscrollbar = true
  10157. boolean vscrollbar = true
  10158. boolean resizable = true
  10159. boolean hsplitscroll = true
  10160. boolean rbutton_setposition_use = true
  10161. string old_dwobject = "0"
  10162. string curdw_colfilter = "0"
  10163. end type
  10164. event rowfocuschanged;call super::rowfocuschanged;This.SelectRow(0,False)
  10165. IF currentrow <= 0 THEN RETURN
  10166. This.SelectRow(currentrow,True)
  10167. end event
  10168. type dw_fymx from u_dw_rbtnfilter within w_outware_sale
  10169. integer x = 1929
  10170. integer y = 1852
  10171. integer taborder = 20
  10172. boolean titlebar = true
  10173. string title = "费用明细"
  10174. string dataobject = "dw_outware_itemmx_edit"
  10175. boolean maxbox = true
  10176. boolean hscrollbar = true
  10177. boolean vscrollbar = true
  10178. boolean resizable = true
  10179. boolean hsplitscroll = true
  10180. boolean rbutton_setposition_use = true
  10181. string old_dwobject = "0"
  10182. string curdw_colfilter = "0"
  10183. end type
  10184. event rowfocuschanged;call super::rowfocuschanged;This.SelectRow(0,False)
  10185. IF currentrow <= 0 THEN RETURN
  10186. This.SelectRow(currentrow,True)
  10187. end event
  10188. event doubleclicked;call super::doubleclicked;IF dw_edit_mode THEN
  10189. Parent.TriggerEvent('ue_add_fymx')
  10190. END IF
  10191. end event
  10192. event dwnkey;call super::dwnkey;Parent.TriggerEvent('user_key')
  10193. String ls_itemcode,ls_itemname,ls_itemtype
  10194. Long ll_itemid
  10195. Long child_row
  10196. IF dw_edit_mode THEN
  10197. IF KeyDown(keydownarrow!) THEN
  10198. Long li_row
  10199. IF dw_fymx.GetRow() = dw_fymx.RowCount() THEN
  10200. Parent.TriggerEvent("insert_childrow_fymx")
  10201. END IF
  10202. ELSE
  10203. IF KeyDown(keyenter!) And Not KeyDown(keycontrol!) And Not KeyDown(keyshift!) THEN
  10204. IF dw_fymx.GetColumnName() = 'u_itemdef_itemcode' THEN
  10205. dw_fymx.AcceptText()
  10206. child_row = dw_fymx.GetRow()
  10207. ls_itemcode = dw_fymx.Object.u_itemdef_itemcode[child_row]
  10208. SELECT itemid,
  10209. itemname,
  10210. itemtype
  10211. INTO :ll_itemid,
  10212. :ls_itemname,
  10213. :ls_itemtype
  10214. FROM u_itemdef
  10215. Where itemcode = :ls_itemcode;
  10216. IF sqlca.SQLCode <> 0 THEN
  10217. Parent.TriggerEvent('ue_f11')
  10218. RETURN
  10219. END IF
  10220. dw_fymx.Object.u_itemdef_itemname[child_row] = ls_itemname
  10221. dw_fymx.Object.u_itemdef_itemtype[child_row] = ls_itemtype
  10222. dw_fymx.Object.u_outware_itemmx_itemid[child_row] = ll_itemid
  10223. dw_fymx.accepttext()
  10224. IF Key = keyenter! THEN
  10225. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  10226. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  10227. RETURN 1
  10228. END IF
  10229. ELSEIF dw_fymx.GetColumnName( ) = 'u_outware_itemmx_mxdscrp' And dw_fymx.GetRow() = dw_fymx.RowCount() THEN
  10230. Parent.TriggerEvent("insert_childrow_fymx")
  10231. RETURN 1
  10232. ELSE
  10233. IF Key = keyenter! THEN
  10234. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  10235. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  10236. RETURN 1
  10237. END IF
  10238. END IF
  10239. END IF
  10240. END IF
  10241. END IF
  10242. end event
  10243. type cbx_packqty_cmpl from checkbox within w_outware_sale
  10244. boolean visible = false
  10245. integer x = 3950
  10246. integer y = 28
  10247. integer width = 690
  10248. integer height = 60
  10249. boolean bringtotop = true
  10250. integer textsize = -9
  10251. integer weight = 400
  10252. fontcharset fontcharset = gb2312charset!
  10253. fontpitch fontpitch = variable!
  10254. string facename = "宋体"
  10255. long textcolor = 33554432
  10256. long backcolor = 134217739
  10257. string text = "录入包装数计算数量"
  10258. end type
  10259. event clicked;IF THIS.Checked THEN
  10260. ii_packqty_cmpl = 1
  10261. this.textcolor = 255
  10262. this.weight = 700
  10263. ELSE
  10264. ii_packqty_cmpl = 0
  10265. this.textcolor = 0
  10266. this.weight = 400
  10267. END IF
  10268. f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "packqty_cmpl",String(ii_packqty_cmpl))
  10269. end event
  10270. event constructor;this.backcolor = 14215660
  10271. ii_packqty_cmpl = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "packqty_cmpl",'0'))
  10272. IF ii_packqty_cmpl = 1 THEN
  10273. THIS.Checked = TRUE
  10274. this.weight = 700
  10275. this.textcolor = 255
  10276. ELSE
  10277. THIS.Checked = FALSE
  10278. this.weight = 400
  10279. this.textcolor = 0
  10280. END IF
  10281. this.y = cbx_enamt_edit.y
  10282. this.x = cbx_zk.x + cbx_zk.width + cbx_enamt_notax_edit.width
  10283. end event
  10284. type cbx_enamt_notax_edit from checkbox within w_outware_sale
  10285. boolean visible = false
  10286. integer x = 3214
  10287. integer y = 100
  10288. integer width = 539
  10289. integer height = 60
  10290. boolean bringtotop = true
  10291. integer textsize = -9
  10292. integer weight = 400
  10293. fontcharset fontcharset = gb2312charset!
  10294. fontpitch fontpitch = variable!
  10295. string facename = "宋体"
  10296. long textcolor = 33554432
  10297. long backcolor = 134217739
  10298. string text = "录入不含税单价"
  10299. end type
  10300. event clicked;IF THIS.Checked THEN
  10301. ii_enamt_notax_edit = 1
  10302. this.weight = 700
  10303. this.textcolor = 255
  10304. ELSE
  10305. ii_enamt_notax_edit = 0
  10306. this.weight = 400
  10307. this.textcolor = 0
  10308. END IF
  10309. f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_notax_edit",String(ii_enamt_notax_edit))
  10310. wf_enamt_facechg()
  10311. //IF ii_enamt_notax_edit = 0 THEN
  10312. // dw_child.Modify('enamt.protect = 1~t enamt.Color = 0')
  10313. // dw_child.Modify('enamt_t.Color = 0')
  10314. //ELSE
  10315. // dw_child.Modify('enamt.protect = 0~t enamt.Color = "0~trgb(0,0,255)"')
  10316. // dw_child.Modify('enamt_t.Color = "0~trgb(0,0,255)"')
  10317. //END IF
  10318. end event
  10319. event constructor;this.backcolor = 14215660
  10320. ii_enamt_notax_edit = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_notax_edit",'0'))
  10321. IF ii_enamt_notax_edit = 1 THEN
  10322. THIS.Checked = TRUE
  10323. this.weight = 700
  10324. this.textcolor = 255
  10325. ELSE
  10326. THIS.Checked = FALSE
  10327. this.weight = 400
  10328. this.textcolor = 0
  10329. END IF
  10330. //wf_enamt_facechg()
  10331. //
  10332. this.y = cbx_enamt_edit.y
  10333. this.x = cbx_enamt_edit.x + cbx_enamt_edit.width + 10
  10334. end event
  10335. type cb_scanbill from commandbutton within w_outware_sale
  10336. integer x = 997
  10337. integer y = 1840
  10338. integer width = 384
  10339. integer height = 84
  10340. integer taborder = 40
  10341. boolean bringtotop = true
  10342. integer textsize = -9
  10343. integer weight = 400
  10344. fontcharset fontcharset = gb2312charset!
  10345. fontpitch fontpitch = variable!
  10346. string facename = "宋体"
  10347. boolean underline = true
  10348. string text = "条码扫描检测"
  10349. end type
  10350. event clicked;String em,ls_str
  10351. Long this_parrow
  10352. Long i,ll_row,ll_ucrow
  10353. long ll_scid,ll_outwareid
  10354. this_parrow = dw_pageretr.GetRow()
  10355. IF dw_edit_mode THEN
  10356. MessageBox('NO','请在非编辑状态操作!')
  10357. return
  10358. end if
  10359. IF this_parrow <= 0 THEN
  10360. MessageBox('NO','请选择单据!')
  10361. RETURN
  10362. END IF
  10363. ll_scid=dw_pageretr.object.u_outware_scid[this_parrow]
  10364. ll_outwareid=dw_pageretr.object.u_outware_outwareid[this_parrow]
  10365. s_edit_index_tran s_tran_mod
  10366. s_tran_mod.b_long = ll_scid
  10367. s_tran_mod.c_long = ll_outwareid
  10368. s_tran_mod.d_long = 0
  10369. s_tran_mod.c_string = ''
  10370. OpenWithParm(w_outwaremx_p_scanqty,s_tran_mod)
  10371. parent.TriggerEvent('retrieve_childdw')
  10372. //String em,ls_str
  10373. //Long this_parrow
  10374. //Long i,ll_row,ll_ucrow
  10375. //this_parrow = dw_pageretr.GetRow()
  10376. //IF this_parrow <= 0 THEN
  10377. // MessageBox('NO','请选择单据!')
  10378. // RETURN
  10379. //END IF
  10380. //
  10381. //TRY
  10382. // s_edit_index_tran s_ch_tran //传递参数使用
  10383. //
  10384. // OpenWithParm(w_scanbill,s_ch_tran )
  10385. //
  10386. //
  10387. // w_scanbill.cb_add.TriggerEvent('clicked')
  10388. // w_scanbill.cur_thflag = 0
  10389. // ll_ucrow = w_scanbill.dw_uc.GetRow()
  10390. // IF ll_ucrow <= 0 THEN RETURN
  10391. // w_scanbill.dw_uc.object.billtype[ll_ucrow]=0 //0 表示发货退货 1 表示盘点单
  10392. // w_scanbill.dw_uc.object.scid[ll_ucrow]=dw_pageretr.object.u_outware_scid[this_parrow]
  10393. // w_scanbill.dw_uc.object.outwareid[ll_ucrow]=dw_pageretr.object.u_outware_outwareid[this_parrow]
  10394. // w_scanbill.dw_uc.object.outwarecode[ll_ucrow]=dw_pageretr.object.u_outware_outwarecode[this_parrow]
  10395. //
  10396. // FOR i = 1 To dw_child.RowCount()
  10397. // w_scanbill.dw_child.Reset()
  10398. // ll_row = w_scanbill.dw_child.InsertRow(0)
  10399. // w_scanbill.dw_child.Object.u_outwaremx_mtrlid[ll_row] = dw_child.Object.u_outwaremx_mtrlid[i]
  10400. // w_scanbill.dw_child.Object.u_mtrldef_mtrlcode[ll_row] = dw_child.Object.u_mtrldef_mtrlcode[i]
  10401. // w_scanbill.dw_child.Object.u_mtrldef_mtrlname[ll_row] = dw_child.Object.u_mtrldef_mtrlname[i]
  10402. // w_scanbill.dw_child.Object.u_mtrldef_mtrlmode[ll_row] = dw_child.Object.u_mtrldef_mtrlmode[i]
  10403. // w_scanbill.dw_child.Object.u_mtrldef_unit[ll_row] = dw_child.Object.u_outwaremx_unit[i]
  10404. // w_scanbill.dw_child.Object.u_outwaremx_uqty[ll_row] = dw_child.Object.u_outwaremx_uqty[i]
  10405. // w_scanbill.dw_child.Object.u_scanbillmx_scanqty[ll_row] = 0
  10406. //
  10407. //
  10408. // NEXT
  10409. //
  10410. //
  10411. //
  10412. //
  10413. //
  10414. //Catch (RuntimeError rrrr)
  10415. // RETURN
  10416. //END TRY
  10417. //
  10418. //
  10419. //
  10420. end event
  10421. event constructor;//系统选项267销售发货单,销售退货单 扫描数不等于出仓数不能仓审
  10422. IF sys_option_check_scanqty = 1 THEN
  10423. This.Visible = True
  10424. ELSE
  10425. This.Visible = False
  10426. END IF
  10427. end event
  10428. type cbx_zk from checkbox within w_outware_sale
  10429. boolean visible = false
  10430. integer x = 3922
  10431. integer y = 108
  10432. integer width = 645
  10433. integer height = 60
  10434. boolean bringtotop = true
  10435. integer textsize = -9
  10436. integer weight = 400
  10437. fontcharset fontcharset = gb2312charset!
  10438. fontpitch fontpitch = variable!
  10439. string facename = "宋体"
  10440. long textcolor = 33554432
  10441. long backcolor = 134217739
  10442. string text = "录入金额计算折扣"
  10443. end type
  10444. event clicked;IF THIS.Checked THEN
  10445. ii_enamt_edit_1 = 1
  10446. this.weight = 700
  10447. this.textcolor = 255
  10448. ELSE
  10449. ii_enamt_edit_1 = 0
  10450. this.weight = 400
  10451. this.textcolor = 0
  10452. END IF
  10453. f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_edit_1",String(ii_enamt_edit_1))
  10454. wf_enamt_facechg()
  10455. //IF THIS.Checked THEN
  10456. // ii_enamt_edit = 1
  10457. //
  10458. //ELSE
  10459. // ii_enamt_edit = 0
  10460. //// cbx_enamt_notax_edit.checked = false
  10461. //
  10462. //END IF
  10463. //
  10464. //f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_edit",String(ii_enamt_edit))
  10465. //
  10466. //wf_enamt_facechg()
  10467. end event
  10468. event constructor;This.BackColor = 14215660
  10469. Long li_cbx_zk
  10470. ii_enamt_edit_1 = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_edit_1",'0'))
  10471. IF ii_enamt_edit_1 = 1 THEN
  10472. This.Checked = True
  10473. this.weight = 700
  10474. this.textcolor = 255
  10475. ELSE
  10476. This.Checked = False
  10477. this.weight =400
  10478. this.textcolor = 0
  10479. END IF
  10480. wf_enamt_facechg()
  10481. this.y = cbx_enamt_edit.y
  10482. this.x = cbx_enamt_notax_edit.x + cbx_enamt_notax_edit.width + 10
  10483. end event
  10484. type cb_new_scanbill from commandbutton within w_outware_sale
  10485. integer x = 1385
  10486. integer y = 1840
  10487. integer width = 384
  10488. integer height = 84
  10489. integer taborder = 60
  10490. boolean bringtotop = true
  10491. integer textsize = -9
  10492. integer weight = 400
  10493. fontcharset fontcharset = gb2312charset!
  10494. fontpitch fontpitch = variable!
  10495. string facename = "宋体"
  10496. boolean underline = true
  10497. string text = "条码扫描开单"
  10498. end type
  10499. event clicked;String em,ls_str
  10500. Long this_parrow
  10501. Long i,ll_row,ll_ucrow
  10502. Long ll_scid,ll_outwareid
  10503. IF Not dw_edit_mode THEN
  10504. MessageBox('NO','请在编辑状态操作!')
  10505. RETURN
  10506. END IF
  10507. this_parrow = dw_pageretr.GetRow()
  10508. IF this_parrow <= 0 THEN
  10509. MessageBox('NO','请选择单据!')
  10510. RETURN
  10511. END IF
  10512. dw_uc.AcceptText()
  10513. //ll_scid=dw_pageretr.object.u_outware_scid[this_parrow]
  10514. //ll_outwareid=dw_pageretr.object.u_outware_outwareid[this_parrow]
  10515. s_edit_index_tran s_tran_mod
  10516. //s_tran_mod.b_long = ll_scid
  10517. s_tran_mod.c_long = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  10518. //s_tran_mod.d_long = 0
  10519. //s_tran_mod.c_string = ''
  10520. OpenWithParm(w_outwaremx_p_new_scanqty,s_tran_mod)
  10521. dw_child.AcceptText()
  10522. FOR i = 1 To dw_child.RowCount()
  10523. wf_get_price(i)
  10524. NEXT
  10525. wf_set_barcode()
  10526. end event
  10527. event constructor;//系统选项267销售发货单,销售退货单 扫描数不等于出仓数不能仓审
  10528. IF sys_option_check_scanqty = 1 THEN
  10529. This.Visible = True
  10530. ELSE
  10531. This.Visible = False
  10532. END IF
  10533. end event
  10534. type st_cusbalc from statictext within w_outware_sale
  10535. integer x = 2112
  10536. integer y = 188
  10537. integer width = 1851
  10538. integer height = 92
  10539. integer textsize = -9
  10540. integer weight = 400
  10541. fontcharset fontcharset = gb2312charset!
  10542. fontpitch fontpitch = variable!
  10543. string facename = "宋体"
  10544. long textcolor = 33554432
  10545. long backcolor = 134217739
  10546. string text = "客户信用额信息"
  10547. boolean focusrectangle = false
  10548. end type
  10549. type st_cusbalc_sign from statictext within w_outware_sale
  10550. boolean visible = false
  10551. integer x = 1847
  10552. integer y = 188
  10553. integer width = 261
  10554. integer height = 76
  10555. boolean bringtotop = true
  10556. integer textsize = -11
  10557. integer weight = 700
  10558. fontcharset fontcharset = gb2312charset!
  10559. fontpitch fontpitch = variable!
  10560. string facename = "宋体"
  10561. long textcolor = 255
  10562. long backcolor = 134217739
  10563. string text = "超信用!"
  10564. boolean focusrectangle = false
  10565. end type
  10566. type cbx_all from checkbox within w_outware_sale
  10567. integer x = 3968
  10568. integer y = 196
  10569. integer width = 197
  10570. integer height = 60
  10571. boolean bringtotop = true
  10572. integer textsize = -9
  10573. integer weight = 400
  10574. fontcharset fontcharset = gb2312charset!
  10575. fontpitch fontpitch = variable!
  10576. string facename = "宋体"
  10577. long textcolor = 33554432
  10578. long backcolor = 134217739
  10579. string text = "全选"
  10580. end type
  10581. event clicked;Int i
  10582. If This.Checked = True Then
  10583. For i = 1 To dw_pageretr.RowCount()
  10584. dw_pageretr.Object.if_ch[i] = 1
  10585. Next
  10586. Else
  10587. For i = 1 To dw_pageretr.RowCount()
  10588. dw_pageretr.Object.if_ch[i] = 0
  10589. Next
  10590. End If
  10591. end event
  10592. event constructor;
  10593. this.y = p_msg.y
  10594. this.x = st_cusbalc.x + st_cusbalc.width +5
  10595. end event