w_outware_sale.srw 395 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127
  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. ,sum(otherprice) AS otherprice
  3087. FROM u_outwaremx
  3088. GROUP BY u_outwaremx.scid
  3089. ,u_outwaremx.outwareid
  3090. ) AS mxout ON mxout.scid = u_outware.scid
  3091. AND mxout.outwareid = u_outware.outwareid
  3092. WHERE ( u_outware.outwareid = :arg_wareid ) AND
  3093. ( u_outware.scid = :arg_scid);
  3094. IF sqlca.SQLCode <> 0 THEN
  3095. MessageBox('错误',"查询操作失败(错误单据唯一码)",stopsign!,OK!)
  3096. RETURN 0
  3097. END IF
  3098. dw_pageretr.Object.u_outware_storageid[uc_row] = storageid
  3099. dw_pageretr.Object.u_outware_scid[uc_row] = arg_scid
  3100. dw_pageretr.Object.u_outware_outwareid[uc_row] = arg_wareid
  3101. dw_pageretr.Object.u_outware_outdate[uc_row] = outdate
  3102. dw_pageretr.Object.u_outware_part[uc_row] = part
  3103. dw_pageretr.Object.u_outware_outrep[uc_row] = outrep
  3104. dw_pageretr.Object.u_outware_dscrp[uc_row] = dscrp
  3105. dw_pageretr.Object.u_outware_dscrp2[uc_row] = dscrp2
  3106. dw_pageretr.Object.u_outware_dscrp3[uc_row] = dscrp3
  3107. dw_pageretr.Object.u_outware_balcflag[uc_row] = balcflag
  3108. dw_pageretr.Object.u_outware_outwarecode[uc_row] = outwarecode
  3109. dw_pageretr.Object.u_outware_opdate[uc_row] = opdate
  3110. dw_pageretr.Object.u_outware_opemp[uc_row] = operator
  3111. dw_pageretr.Object.flag[uc_row] = li_flag
  3112. dw_pageretr.Object.u_outware_Auditingdate[uc_row] = auditingdate
  3113. dw_pageretr.Object.u_outware_Auditingrep[uc_row] = Auditingrep
  3114. dw_pageretr.Object.u_outware_cusid[uc_row] = cusid
  3115. dw_pageretr.Object.u_cust_cuscode[uc_row] = cuscode
  3116. dw_pageretr.Object.u_cust_name[uc_row] = cusname
  3117. dw_pageretr.Object.u_storage_storagename[uc_row] = storagename
  3118. dw_pageretr.Object.u_outware_thflag[uc_row] = thflag
  3119. dw_pageretr.Object.secflag[uc_row] = li_secflag
  3120. dw_pageretr.Object.u_outware_secAuditingdate[uc_row] = secauditingdate
  3121. dw_pageretr.Object.u_outware_secAuditingrep[uc_row] = secAuditingrep
  3122. dw_pageretr.Object.u_outware_moddate[uc_row] = moddate
  3123. dw_pageretr.Object.u_outware_modemp[uc_row] = modemp
  3124. dw_pageretr.Object.u_outware_priceflag[uc_row] = li_priceflag
  3125. dw_pageretr.Object.u_outware_pricedate[uc_row] = pricedate
  3126. dw_pageretr.Object.u_outware_priceemp[uc_row] = priceemp
  3127. dw_pageretr.Object.u_outware_secpflag[uc_row] = secpflag
  3128. dw_pageretr.Object.u_outware_secpdate[uc_row] = secpdate
  3129. dw_pageretr.Object.u_outware_secpemp[uc_row] = secpemp
  3130. dw_pageretr.Object.u_outware_mrate[uc_row] = mrate
  3131. dw_pageretr.Object.u_outware_otheramt[uc_row] = otheramt
  3132. dw_pageretr.Object.u_outware_deposit[uc_row] = deposit
  3133. dw_pageretr.Object.u_outware_rel_address[uc_row] = rel_address
  3134. dw_pageretr.Object.u_outware_rel_rep[uc_row] = rel_rep
  3135. dw_pageretr.Object.u_outware_rel_tele[uc_row] = rel_tele
  3136. dw_pageretr.Object.u_outware_rel_tele1[uc_row] = rel_tele1
  3137. dw_pageretr.Object.u_outware_rel_fax[uc_row] = rel_fax
  3138. dw_pageretr.Object.u_outware_relstr_1[uc_row] = relstr_1
  3139. dw_pageretr.Object.u_outware_relstr_2[uc_row] = relstr_2
  3140. dw_pageretr.Object.u_outware_relstr_3[uc_row] = relstr_3
  3141. dw_pageretr.Object.u_outware_relint_1[uc_row] = relint_1
  3142. dw_pageretr.Object.u_outware_relint_2[uc_row] = relint_2
  3143. dw_pageretr.Object.u_outware_printnum[uc_row] = ll_printnum
  3144. dw_pageretr.Object.u_outware_transcode[uc_row] = transcode
  3145. dw_pageretr.Object.u_outware_carcode[uc_row] = carcode
  3146. dw_pageretr.Object.u_outware_paytype[uc_row] = paytype
  3147. dw_pageretr.Object.typeid[uc_row] = typeid
  3148. dw_pageretr.Object.viewdate[uc_row] = viewdate
  3149. dw_pageretr.Object.enamt_tax[uc_row] = enamt_tax
  3150. dw_pageretr.Object.ifenamt_tax[uc_row] = ifenamt_tax
  3151. dw_pageretr.ResetUpdate()
  3152. dw_pageretr.SetRedraw(TRUE)
  3153. dw_uc.Reset()
  3154. dw_pageretr.RowsCopy(dw_pageretr.GetRow(), dw_pageretr.GetRow(), Primary!, dw_uc, 1, Primary!)
  3155. dw_uc.ResetUpdate()
  3156. dw_uc.SetRedraw(TRUE)
  3157. wf_flagstatus_rf()
  3158. RETURN 1
  3159. end function
  3160. public subroutine wf_check_billfj ();String arg_msg
  3161. Long ll_ConnectionID
  3162. Long cur_billtype
  3163. long ll_relid,ll_relid_mx,ll_scid
  3164. Long ls_filecount = 0
  3165. Int rslt = 1
  3166. uo_fj_mng_billtype ls_uo_fjbt
  3167. ls_uo_fjbt = CREATE uo_fj_mng_billtype
  3168. Long row,uc_relid
  3169. row = dw_pageretr.GetRow()
  3170. IF row > 0 THEN
  3171. ll_relid = dw_pageretr.Object.u_outware_outwareid[row]
  3172. ll_scid = dw_pageretr.Object.u_outware_scid[row]
  3173. ll_relid_mx = 0
  3174. ELSE
  3175. rslt = 0
  3176. GOTO ext
  3177. END IF
  3178. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  3179. rslt = 0
  3180. GOTO ext
  3181. END IF
  3182. cur_billtype = 104 //客户投拆单的 mainiD
  3183. ls_uo_fjbt.uf_check_billfj( cur_billtype, ll_relid,ll_relid_mx,ll_scid, sys_fileDB_sqlca, arg_msg, ls_filecount)
  3184. IF ls_filecount > 0 THEN
  3185. rslt = 1
  3186. GOTO ext
  3187. ELSE
  3188. rslt = 0
  3189. GOTO ext
  3190. END IF
  3191. ext:
  3192. wf_encl(rslt)
  3193. DESTROY ls_uo_fjbt
  3194. end subroutine
  3195. 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);//==============================================================================
  3196. // 函数: w_publ_1ton_share_detail::wf_xls_retrievedata()
  3197. //------------------------------------------------------------------------------
  3198. // 描述: 此函数需要 重载,复制祖先范例代码,然后修改retrieve参数部分两处即可
  3199. //------------------------------------------------------------------------------
  3200. Long LS_ROW,ll_id,i,ll_scid
  3201. LS_ROW = dw_pageretr.GetRow()
  3202. IF LS_ROW <= 0 THEN
  3203. arg_msg = '没有目标单据!'
  3204. RETURN 0
  3205. END IF
  3206. //修改点:获取 指定retriev参数
  3207. ll_id = dw_pageretr.Object.#1[LS_ROW]
  3208. ll_scid = dw_pageretr.Object.U_outware_scid[LS_ROW]
  3209. //查询所选模版是否含有图片信息
  3210. Long ll_ifpic
  3211. Long ll_classid
  3212. SELECT ifpic
  3213. INTO :ll_ifpic
  3214. FROM U_XLS_Templates
  3215. Where id = :ll_xls_Templatesid;
  3216. IF sqlca.SQLCode <> 0 THEN
  3217. ll_ifpic = 0
  3218. END IF
  3219. Long ll_i,ll_j
  3220. Long ll_mtrlid, ll_relid, ll_relid_mx
  3221. Long ll_fileid
  3222. Blob ls_filedata
  3223. SetNull(ls_filedata)
  3224. String Pathname,ls_filename,ls_filetype
  3225. String errmsg
  3226. uo_fj_mng_billtype ls_uo_fjbt
  3227. ls_uo_fjbt = Create uo_fj_mng_billtype
  3228. s_xls_pic_list s_pic //结构数组-用于保存图片路径
  3229. IF ll_ifpic = 1 THEN //如果含有图片信息,则查询本类型单据需要带出哪类附件
  3230. SELECT classid
  3231. INTO :ll_classid
  3232. FROM u_billpic_fileclass
  3233. Where (billtype = 102);
  3234. IF sqlca.SQLCode <> 0 THEN
  3235. ll_classid = 0
  3236. END IF
  3237. IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息.
  3238. FOR ll_i = 1 To dw_child.RowCount()
  3239. ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ll_i]
  3240. // ll_relid = dw_child.Object.u_outwaremx_outwareid[ll_i]
  3241. // ll_relid_mx = dw_child.Object.u_outwaremx_printid[ll_i]
  3242. //取该附件类型中的第一个附件.
  3243. SELECT top 1 fileid,DisplayName,FileType INTO :ll_fileid,:ls_filename,:ls_filetype
  3244. FROM u_file
  3245. WHERE relid = :ll_mtrlid
  3246. AND classid = :ll_classid
  3247. AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf'
  3248. OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg')
  3249. Using sys_fileDB_sqlca;
  3250. IF sys_fileDB_sqlca.SQLCode <> 0 THEN
  3251. ll_fileid = 0
  3252. END IF
  3253. IF ll_fileid > 0 THEN
  3254. Pathname = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ls_filename+'.'+ls_filetype
  3255. IF Trim(Pathname) <> '' THEN
  3256. IF ls_uo_fjbt.uf_getfjbolb_fromdb( ll_fileid, ls_filedata, sys_fileDB_sqlca, arg_msg) = 0 THEN
  3257. RETURN 0
  3258. END IF
  3259. IF f_saveblobtofile(ls_filedata,Pathname,errmsg) = 0 THEN
  3260. RETURN 0
  3261. ELSE
  3262. s_pic.path[ll_i] = Pathname
  3263. //记录临时文件位置,本窗口退出后删除
  3264. wf_addlog_tempfilepathname(Pathname)
  3265. END IF
  3266. ELSE
  3267. s_pic.path[ll_i] = ''
  3268. END IF
  3269. ELSE
  3270. s_pic.path[ll_i] = ''
  3271. END IF
  3272. NEXT
  3273. END IF
  3274. //
  3275. END IF
  3276. ////可选设置/ //
  3277. arg_obj_st.uo_const.create_new_pwd( ) //创建随机密码
  3278. IF sys_option_xls_ifuse_passwd = 1 THEN arg_obj_st.uo_const.pwd = Trim(sys_option_xls_user_passwd) //默认加密密码 默认为随即密码
  3279. Boolean xls_locked
  3280. xls_locked = Not (sys_option_xls_lock = 1)
  3281. // Excel 的可选设置
  3282. IF arg_obj_st.of_setoption(arg_ationid, xls_locked,True,arg_msg) <> 1 THEN
  3283. RETURN 0
  3284. END IF
  3285. FOR i = 1 To arg_str_billlist.count
  3286. ////可选操作/ //
  3287. arg_str_billlist.bill[i].ds_data = Create datastore //
  3288. arg_str_billlist.bill[i].ds_data.DataObject = arg_str_billlist.bill[i].datawindow //
  3289. arg_str_billlist.bill[i].ds_data.SetTransObject(sqlca)
  3290. //修改点:注意retrieve 参数与上文对应
  3291. arg_str_billlist.bill[i].ds_data.Retrieve(ll_scid,ll_id)
  3292. IF ll_ifpic = 1 and ll_classid > 0 THEN
  3293. IF arg_str_billlist.bill[i].datawindow = 'dw_xls_outwaremx' AND arg_str_billlist.bill[i].ds_data.RowCount() > 0 THEN //设置图片路径
  3294. FOR ll_j = 1 TO arg_str_billlist.bill[i].ds_data.RowCount()
  3295. arg_str_billlist.bill[i].ds_data.Object.pic[ll_j] = s_pic.path[ll_j]
  3296. NEXT
  3297. END IF
  3298. END IF
  3299. NEXT
  3300. RETURN 1
  3301. end function
  3302. 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)
  3303. //查询合同物料资料
  3304. //把物料资料写入数组
  3305. Long rslt = 1
  3306. Long i
  3307. //查询合同物料
  3308. DECLARE pf_cur CURSOR FOR
  3309. SELECT u_saletaskmx.mtrlid,
  3310. u_saletaskmx.uSaleQty - u_saletaskmx.consignedqty - u_saletaskmx.stopqty - ISNULL(uv_outware_sale_noaudit_qty.qty,0),
  3311. u_saletaskmx.enprice,
  3312. u_saletaskmx.fprice,
  3313. u_saletaskmx.rebate,
  3314. u_saletaskmx.mxdscrp,
  3315. u_saletaskmx.status,
  3316. u_saletaskmx.woodcode,
  3317. u_saletaskmx.pcode,
  3318. u_saletaskmx.unit,
  3319. u_saletaskmx.rate,
  3320. u_saletaskmx.mtrlcuscode,
  3321. u_saletaskmx.outtype,
  3322. u_saletaskmx.formula,
  3323. u_saletaskmx.addqty,
  3324. convert(text,u_SaleTaskMx.mxdscrp2) as mxdscrp2,
  3325. u_saletask.taskdate,
  3326. u_saletaskmx.printid,
  3327. u_saletaskmx.taskid,
  3328. u_saletask.taskcode,
  3329. u_saletaskmx.plancode,
  3330. u_saletaskmx.packqty,
  3331. u_saletaskmx.net_weight,
  3332. u_saletaskmx.gross_weight,
  3333. u_saletaskmx.cubage,
  3334. u_saletaskmx.tax,
  3335. u_saletaskmx.mxdscrp3,
  3336. u_saletaskmx.mxdscrp4,
  3337. u_saletaskmx.priceformula,
  3338. u_saletaskmx.otherprice
  3339. FROM u_saletaskmx LEFT OUTER JOIN
  3340. uv_outware_sale_noaudit_qty ON
  3341. u_SaleTaskMx.scid = uv_outware_sale_noaudit_qty.scid AND
  3342. u_SaleTaskMx.TaskID = uv_outware_sale_noaudit_qty.relid AND
  3343. u_SaleTaskMx.printid = uv_outware_sale_noaudit_qty.relprintid ,
  3344. u_mtrldef,u_saletask
  3345. WHERE u_saletaskmx.mtrlid = u_mtrldef.mtrlid AND
  3346. ( u_saletaskmx.taskid = :arg_taskid )
  3347. AND ( u_saletaskmx.uSaleQty - u_saletaskmx.consignedqty - u_saletaskmx.stopqty <> 0 )
  3348. And ( u_saletaskmx.scid = :arg_scid )
  3349. and u_saletask.taskid = u_saletaskmx.taskid
  3350. and u_saletask.scid = u_saletaskmx.scid;
  3351. OPEN pf_cur;
  3352. arg_p_rqmtrl = 1
  3353. FETCH pf_cur INTO :arg_s_rqmtrl.mtrlid[arg_p_rqmtrl],:arg_s_rqmtrl.qty[arg_p_rqmtrl],
  3354. :arg_s_rqmtrl.enprice[arg_p_rqmtrl],:arg_s_rqmtrl.fprice[arg_p_rqmtrl],
  3355. :arg_s_rqmtrl.rebate[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp[arg_p_rqmtrl],
  3356. :arg_s_rqmtrl.status[arg_p_rqmtrl],:arg_s_rqmtrl.woodcode[arg_p_rqmtrl],
  3357. :arg_s_rqmtrl.pcode[arg_p_rqmtrl],:arg_s_rqmtrl.unit[arg_p_rqmtrl],
  3358. :arg_s_rqmtrl.rate[arg_p_rqmtrl],:arg_s_rqmtrl.mtrlcuscode[arg_p_rqmtrl],
  3359. :arg_s_rqmtrl.outtype[arg_p_rqmtrl],:arg_s_rqmtrl.formula[arg_p_rqmtrl],
  3360. :arg_s_rqmtrl.addqty[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp2[arg_p_rqmtrl],
  3361. :arg_s_rqmtrl.taskdate[arg_p_rqmtrl],
  3362. :arg_s_rqmtrl.printid[arg_p_rqmtrl],
  3363. :arg_s_rqmtrl.taskid[arg_p_rqmtrl],
  3364. :arg_s_rqmtrl.taskcode[arg_p_rqmtrl],
  3365. :arg_s_rqmtrl.plancode[arg_p_rqmtrl],
  3366. :arg_s_rqmtrl.packqty[arg_p_rqmtrl],
  3367. :arg_s_rqmtrl.net_weight[arg_p_rqmtrl],
  3368. :arg_s_rqmtrl.gross_weight[arg_p_rqmtrl],
  3369. :arg_s_rqmtrl.cubage[arg_p_rqmtrl],
  3370. :arg_s_rqmtrl.tax[arg_p_rqmtrl],
  3371. :arg_s_rqmtrl.mxdscrp3[arg_p_rqmtrl],
  3372. :arg_s_rqmtrl.mxdscrp4[arg_p_rqmtrl],
  3373. :arg_s_rqmtrl.priceformula[arg_p_rqmtrl],
  3374. :arg_s_rqmtrl.otherprice[arg_p_rqmtrl]
  3375. ;
  3376. DO WHILE sqlca.SQLCode = 0
  3377. arg_p_rqmtrl++
  3378. FETCH pf_cur INTO :arg_s_rqmtrl.mtrlid[arg_p_rqmtrl],:arg_s_rqmtrl.qty[arg_p_rqmtrl],
  3379. :arg_s_rqmtrl.enprice[arg_p_rqmtrl],:arg_s_rqmtrl.fprice[arg_p_rqmtrl],
  3380. :arg_s_rqmtrl.rebate[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp[arg_p_rqmtrl],
  3381. :arg_s_rqmtrl.status[arg_p_rqmtrl],:arg_s_rqmtrl.woodcode[arg_p_rqmtrl],
  3382. :arg_s_rqmtrl.pcode[arg_p_rqmtrl],:arg_s_rqmtrl.unit[arg_p_rqmtrl],
  3383. :arg_s_rqmtrl.rate[arg_p_rqmtrl],:arg_s_rqmtrl.mtrlcuscode[arg_p_rqmtrl],
  3384. :arg_s_rqmtrl.outtype[arg_p_rqmtrl],:arg_s_rqmtrl.formula[arg_p_rqmtrl],
  3385. :arg_s_rqmtrl.addqty[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp2[arg_p_rqmtrl],
  3386. :arg_s_rqmtrl.taskdate[arg_p_rqmtrl],
  3387. :arg_s_rqmtrl.printid[arg_p_rqmtrl],
  3388. :arg_s_rqmtrl.taskid[arg_p_rqmtrl],
  3389. :arg_s_rqmtrl.taskcode[arg_p_rqmtrl],
  3390. :arg_s_rqmtrl.plancode[arg_p_rqmtrl],
  3391. :arg_s_rqmtrl.packqty[arg_p_rqmtrl],
  3392. :arg_s_rqmtrl.net_weight[arg_p_rqmtrl],
  3393. :arg_s_rqmtrl.gross_weight[arg_p_rqmtrl],
  3394. :arg_s_rqmtrl.cubage[arg_p_rqmtrl],
  3395. :arg_s_rqmtrl.tax[arg_p_rqmtrl],
  3396. :arg_s_rqmtrl.mxdscrp3[arg_p_rqmtrl],
  3397. :arg_s_rqmtrl.mxdscrp4[arg_p_rqmtrl],
  3398. :arg_s_rqmtrl.priceformula[arg_p_rqmtrl],
  3399. :arg_s_rqmtrl.otherprice[arg_p_rqmtrl]
  3400. ;
  3401. LOOP
  3402. arg_p_rqmtrl = arg_p_rqmtrl - 1
  3403. CLOSE pf_cur;
  3404. RETURN rslt
  3405. end function
  3406. 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);//淘汰 //引入订单
  3407. //wf_autoaddmx(arg_saletaskid,arg_storageid,arg_msg)
  3408. //查询合同物料于数组中
  3409. //循环数组
  3410. //查询物料库存总额
  3411. //查询库存批/插入明细记录
  3412. IF Not dw_edit_mode THEN RETURN 0
  3413. long rslt = 1
  3414. //s_saletask_mtrl arg_s_rqmtrlI
  3415. //long P_rqmtrl
  3416. //
  3417. ////Long lrow,li
  3418. ////Decimal mtrlwaresum_qty,sumqty,i_qty,ins_qty,ins_planprice,ins_price,noallocqty,allocqty,r_qty
  3419. ////Long ins_storageid,count = 0,ins_mtrlwareid = 0,child_llrow
  3420. ////String ins_prdpackcode,ins_mtrlcode,ins_mtrlname,ins_plancode,ins_unit,ins_mtrlsectype,ins_zxmtrlmode,ins_mtrlmode
  3421. ////Boolean lb_find = True
  3422. ////Long storageid
  3423. ////Long mtrlwareid
  3424. ////String plancode
  3425. ////Decimal planprice
  3426. ////
  3427. ////Date l_rqdate
  3428. ////l_rqdate = Today()
  3429. //
  3430. ////Int li_if_cus_mtrlware,li_noallocflag,li_inwaretype
  3431. ////Long ls_sptid
  3432. ////SELECT balctype,noallocflag,inwaretype
  3433. //// INTO :li_if_cus_mtrlware,:li_noallocflag,:li_inwaretype
  3434. //// FROM u_storage
  3435. //// Where storageid = :arg_storageid;
  3436. ////IF sqlca.SQLCode <> 0 THEN
  3437. //// arg_msg = '查询仓库是否使用客户库存失败'
  3438. //// rslt = 0
  3439. //// GOTO ext
  3440. ////END IF
  3441. ////
  3442. ////IF li_if_cus_mtrlware = 1 THEN
  3443. //// ls_sptid = arg_cusid
  3444. ////ELSE
  3445. //// ls_sptid = -1
  3446. ////END IF
  3447. //
  3448. //IF wf_saletaskmtrltoarr(arg_scid,arg_saletaskid,arg_s_rqmtrlI,P_rqmtrl,arg_msg) = 0 THEN
  3449. // rslt = 0
  3450. // GOTO ext
  3451. //END IF
  3452. //
  3453. //IF wf_set_outwaremx(arg_cusid, arg_storageid, arg_s_rqmtrlI,arg_msg) = 0 THEN
  3454. // rslt = 0
  3455. // GOTO ext
  3456. //END IF
  3457. //
  3458. ////FOR li = 1 To P_rqmtrl
  3459. //// sumqty = 0
  3460. //// ins_mtrlcode = ''
  3461. //// ins_mtrlname = ''
  3462. //// lb_find = True
  3463. //// allocqty = 0
  3464. //// noallocqty = 0
  3465. //// i_qty = 0
  3466. //// r_qty = 0
  3467. ////
  3468. //// SELECT u_mtrldef.mtrlcode,
  3469. //// u_mtrldef.mtrlname,
  3470. //// u_mtrldef.unit,
  3471. //// u_mtrldef.mtrlmode,
  3472. //// u_mtrldef.mtrlsectype,
  3473. //// u_mtrldef.zxmtrlmode
  3474. //// INTO :ins_mtrlcode,
  3475. //// :ins_mtrlname,
  3476. //// :ins_unit,
  3477. //// :ins_mtrlmode,
  3478. //// :ins_mtrlsectype,
  3479. //// :ins_zxmtrlmode
  3480. //// FROM u_mtrldef
  3481. //// Where u_mtrldef.mtrlid = :arg_s_rqmtrlI.mtrlid[li];
  3482. //// IF sqlca.SQLCode <> 0 THEN
  3483. //// arg_msg = '查询物料资料失败[错误物料唯一码]>'+sqlca.SQLErrText
  3484. //// rslt = 0
  3485. //// GOTO ext
  3486. //// END IF
  3487. ////
  3488. //// SELECT ISNULL(SUM(u_mtrlware.noallocqty), 0) AS sum_qty
  3489. //// INTO :mtrlwaresum_qty
  3490. //// FROM u_mtrlware
  3491. //// WHERE u_mtrlware.mtrlid = :arg_s_rqmtrlI.mtrlid[li]
  3492. //// AND u_mtrlware.storageid = :arg_storageid
  3493. //// AND u_mtrlware.status = :arg_s_rqmtrlI.status[li]
  3494. //// AND u_mtrlware.pcode = :arg_s_rqmtrlI.pcode[li]
  3495. //// AND u_mtrlware.woodcode = :arg_s_rqmtrlI.woodcode[li]
  3496. //// AND u_mtrlware.scid = :cur_scid
  3497. //// AND ( u_mtrlware.sptid = :ls_sptid OR :ls_sptid = -1 )
  3498. //// And (plancode = :arg_s_rqmtrlI.plancode[li] Or :arg_s_rqmtrlI.plancode[li] = '');
  3499. //// // and ( (:ifmtrlware = 1 and plancode = :arg_taskcode ) or :ifmtrlware = 0);
  3500. //// IF sqlca.SQLCode = 0 THEN
  3501. ////
  3502. //// ELSEIF sqlca.SQLCode = 100 THEN
  3503. //// mtrlwaresum_qty = -100000
  3504. //// ELSE
  3505. //// arg_msg = '查询库存量失败>'+sqlca.SQLErrText
  3506. //// MessageBox('提示',String(arg_s_rqmtrlI.mtrlid[li] )+'颜色:'+arg_s_rqmtrlI.status[li]+' '+arg_msg,stopsign!,OK!)
  3507. //// rslt = 0
  3508. //// GOTO ext
  3509. //// END IF
  3510. ////
  3511. //// IF li_noallocflag = 1 And mtrlwaresum_qty = 0 Or mtrlwaresum_qty = -100000 THEN
  3512. //// IF dw_child.GetRow() <= 0 THEN
  3513. //// child_llrow = dw_child.InsertRow(0)
  3514. //// ELSE
  3515. //// IF dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] > 0 THEN
  3516. //// child_llrow = dw_child.InsertRow(0)
  3517. //// ELSE
  3518. //// child_llrow = dw_child.GetRow()
  3519. //// END IF
  3520. //// END IF
  3521. ////
  3522. //// dw_child.Object.u_outwaremx_ifrel[child_llrow] = 1
  3523. //// dw_child.Object.u_outwaremx_relid[child_llrow] = arg_saletaskid
  3524. //// dw_child.Object.u_outwaremx_relprintid[child_llrow] = arg_s_rqmtrlI.printid[li]
  3525. //// dw_child.Object.taskcode[child_llrow] = arg_taskcode
  3526. ////
  3527. //// dw_child.Object.u_outwaremx_mtrlwareid[child_llrow] = 0
  3528. //// dw_child.Object.u_outwaremx_mtrlid[child_llrow] = 0
  3529. //// dw_child.Object.u_outwaremx_enprice[child_llrow] = arg_s_rqmtrlI.enprice[li]
  3530. //// dw_child.Object.u_outwaremx_fprice[child_llrow] = arg_s_rqmtrlI.fprice[li]
  3531. //// dw_child.Object.u_outwaremx_rebate[child_llrow] = arg_s_rqmtrlI.rebate[li]
  3532. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = 0
  3533. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = 0
  3534. ////
  3535. //// dw_child.Object.u_outwaremx_unit[child_llrow] = arg_s_rqmtrlI.unit[li]
  3536. //// dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode
  3537. //// dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname
  3538. //// dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit
  3539. //// dw_child.Object.u_outwaremx_mxdscrp[child_llrow] = arg_s_rqmtrlI.mxdscrp[li]
  3540. //// dw_child.Object.mxdscrp2[child_llrow] = arg_s_rqmtrlI.mxdscrp2[li]
  3541. //// dw_child.Object.u_outwaremx_status[child_llrow] = arg_s_rqmtrlI.status[li]
  3542. //// dw_child.Object.u_outwaremx_woodcode[child_llrow] = arg_s_rqmtrlI.woodcode[li]
  3543. //// dw_child.Object.u_outwaremx_pcode[child_llrow] = arg_s_rqmtrlI.pcode[li]
  3544. //// dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode
  3545. //// dw_child.Object.u_mtrldef_curware_qty[child_llrow] = 0
  3546. //// dw_child.Object.u_mtrldef_sumneed_qty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3547. //// dw_child.Object.u_mtrldef_sumware_qty[child_llrow] = 0
  3548. //// dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype
  3549. //// dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode
  3550. //// dw_child.Object.u_outwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrlI.mtrlcuscode[li]
  3551. //// dw_child.Object.u_outwaremx_rate[child_llrow] = arg_s_rqmtrlI.rate[li]
  3552. //// dw_child.Object.u_outwaremx_outtype[child_llrow] = arg_s_rqmtrlI.outtype[li]
  3553. //// dw_child.Object.u_outwaremx_formula[child_llrow] = arg_s_rqmtrlI.formula[li]
  3554. //// dw_child.Object.u_outwaremx_addqty[child_llrow] = arg_s_rqmtrlI.addqty[li]
  3555. //// dw_child.Object.u_mtrldef_taskdate[child_llrow] = arg_s_rqmtrlI.taskdate[li]
  3556. //// GOTO nextmtrl
  3557. //// END IF
  3558. ////
  3559. //// child_llrow = dw_child.GetRow()
  3560. ////
  3561. //// IF mtrlwaresum_qty = 0 THEN
  3562. //// IF dw_child.GetRow() > 0 THEN
  3563. //// IF dw_child.Object.u_outwaremx_mtrlid[child_llrow] <> 0 THEN
  3564. //// child_llrow = dw_child.InsertRow (0)
  3565. //// ELSE
  3566. //// child_llrow = dw_child.GetRow()
  3567. //// END IF
  3568. //// ELSE
  3569. //// child_llrow = dw_child.InsertRow (0)
  3570. //// END IF
  3571. ////
  3572. //// mtrlwareid = 0
  3573. //// plancode = ''
  3574. //// noallocqty = 0
  3575. //// planprice = 0
  3576. ////
  3577. //// SELECT top 1
  3578. //// u_mtrlware.mtrlwareid,
  3579. //// u_mtrlware.plancode,
  3580. //// u_mtrlware.noallocqty,
  3581. //// u_mtrlware.planprice
  3582. //// INTO
  3583. //// :mtrlwareid,
  3584. //// :plancode,
  3585. //// :noallocqty,
  3586. //// :planprice
  3587. //// FROM u_mtrlware
  3588. //// WHERE ( u_mtrlware.mtrlid = :arg_s_rqmtrlI.mtrlid[li] ) AND
  3589. //// ( u_mtrlware.storageid = :arg_storageid ) AND
  3590. //// ( u_mtrlware.status = :arg_s_rqmtrlI.status[li] ) AND
  3591. //// ( u_mtrlware.pcode = :arg_s_rqmtrlI.pcode[li] ) AND
  3592. //// ( u_mtrlware.woodcode = :arg_s_rqmtrlI.woodcode[li] ) AND
  3593. //// ( u_mtrlware.scid = :cur_scid ) AND
  3594. //// ( u_mtrlware.sptid = :ls_sptid OR :ls_sptid = -1 )
  3595. //// AND (plancode = :arg_s_rqmtrlI.plancode[li] OR :arg_s_rqmtrlI.plancode[li] = '')
  3596. //// Order By u_mtrlware.mtrlwareid Desc ;
  3597. //// IF sqlca.SQLCode = -1 THEN
  3598. //// arg_msg = '查询库存量失败>'+sqlca.SQLErrText
  3599. //// MessageBox('提示',String(arg_s_rqmtrlI.mtrlid[li] )+'颜色:'+arg_s_rqmtrlI.status[li]+' '+arg_msg,stopsign!,OK!)
  3600. //// rslt = 0
  3601. //// GOTO ext
  3602. //// END IF
  3603. ////
  3604. ////
  3605. //// dw_child.Object.u_outwaremx_ifrel[child_llrow] = 1
  3606. //// dw_child.Object.u_outwaremx_relid[child_llrow] = arg_saletaskid
  3607. //// dw_child.Object.u_outwaremx_relprintid[child_llrow] = arg_s_rqmtrlI.printid[li]
  3608. //// dw_child.Object.taskcode[child_llrow] = arg_taskcode
  3609. ////
  3610. //// dw_child.Object.u_outwaremx_mtrlwareid[child_llrow] = mtrlwareid
  3611. //// dw_child.Object.u_outwaremx_mtrlid[child_llrow] = arg_s_rqmtrlI.mtrlid[li]
  3612. ////
  3613. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3614. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3615. ////
  3616. //// dw_child.Object.u_outwaremx_storageid[child_llrow] = arg_storageid
  3617. //// dw_child.Object.u_outwaremx_plancode[child_llrow] = plancode
  3618. //// dw_child.Object.u_outwaremx_planprice[child_llrow] = planprice
  3619. //// dw_child.Object.u_outwaremx_unit[child_llrow] = arg_s_rqmtrlI.unit[li]
  3620. //// dw_child.Object.u_outwaremx_enprice[child_llrow] = arg_s_rqmtrlI.enprice[li]
  3621. //// dw_child.Object.u_outwaremx_fprice[child_llrow] = arg_s_rqmtrlI.fprice[li]
  3622. //// dw_child.Object.u_outwaremx_rebate[child_llrow] = arg_s_rqmtrlI.rebate[li]
  3623. //// dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode
  3624. //// dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname
  3625. //// dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode
  3626. //// dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit
  3627. //// dw_child.Object.u_outwaremx_mxdscrp[child_llrow] = arg_s_rqmtrlI.mxdscrp[li]
  3628. //// dw_child.Object.mxdscrp2[child_llrow] = arg_s_rqmtrlI.mxdscrp2[li]
  3629. //// dw_child.Object.u_outwaremx_status[child_llrow] = arg_s_rqmtrlI.status[li]
  3630. //// dw_child.Object.u_outwaremx_woodcode[child_llrow] = arg_s_rqmtrlI.woodcode[li]
  3631. //// dw_child.Object.u_outwaremx_pcode[child_llrow] = arg_s_rqmtrlI.pcode[li]
  3632. //// dw_child.Object.u_mtrldef_curware_qty[child_llrow] = 0
  3633. //// dw_child.Object.u_mtrldef_sumneed_qty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3634. //// dw_child.Object.u_mtrldef_sumware_qty[child_llrow] = 0
  3635. //// dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype
  3636. //// dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode
  3637. //// dw_child.Object.u_outwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrlI.mtrlcuscode[li]
  3638. //// dw_child.Object.u_outwaremx_rate[child_llrow] = arg_s_rqmtrlI.rate[li]
  3639. //// dw_child.Object.u_outwaremx_outtype[child_llrow] = arg_s_rqmtrlI.outtype[li]
  3640. //// dw_child.Object.u_outwaremx_formula[child_llrow] = arg_s_rqmtrlI.formula[li]
  3641. //// dw_child.Object.u_outwaremx_addqty[child_llrow] = arg_s_rqmtrlI.addqty[li]
  3642. //// dw_child.Object.u_mtrldef_taskdate[child_llrow] = arg_s_rqmtrlI.taskdate[li]
  3643. //// ELSE
  3644. //// DECLARE pf_cur CURSOR FOR
  3645. //// SELECT u_mtrlware.storageid,
  3646. //// u_mtrlware.mtrlwareid,
  3647. //// u_mtrlware.plancode,
  3648. //// u_mtrlware.noallocqty,
  3649. //// u_mtrlware.planprice
  3650. //// FROM u_mtrlware
  3651. //// WHERE ( u_mtrlware.mtrlid = :arg_s_rqmtrlI.mtrlid[li] ) AND
  3652. //// ( u_mtrlware.storageid = :arg_storageid ) AND
  3653. //// ( u_mtrlware.status = :arg_s_rqmtrlI.status[li] ) AND
  3654. //// ( u_mtrlware.pcode = :arg_s_rqmtrlI.pcode[li] ) AND
  3655. //// ( u_mtrlware.woodcode = :arg_s_rqmtrlI.woodcode[li] ) AND
  3656. //// ( u_mtrlware.scid = :cur_scid ) AND
  3657. //// ( u_mtrlware.sptid = :ls_sptid OR :ls_sptid = -1 ) AND
  3658. //// ( u_mtrlware.noallocqty > 0)
  3659. //// AND (plancode = :arg_s_rqmtrlI.plancode[li] OR :arg_s_rqmtrlI.plancode[li] = '')
  3660. //// Order By u_mtrlware.noallocqty Desc ;
  3661. ////
  3662. //// OPEN pf_cur;
  3663. //// count = 1
  3664. //// FETCH pf_cur INTO :ins_storageid,:ins_mtrlwareid,:ins_plancode,&
  3665. //// :ins_qty,:ins_planprice ;
  3666. //// DO WHILE sqlca.SQLCode = 0 And r_qty < arg_s_rqmtrlI.qty[li]
  3667. //// count++
  3668. //// i_qty = ins_qty
  3669. //// r_qty = r_qty+i_qty
  3670. //// IF r_qty > arg_s_rqmtrlI.qty[li] THEN
  3671. //// i_qty = ins_qty - ( r_qty - arg_s_rqmtrlI.qty[li] )
  3672. ////
  3673. //// END IF
  3674. ////
  3675. //// IF dw_child.GetRow() > 0 THEN
  3676. //// IF dw_child.Object.u_outwaremx_mtrlid[child_llrow] <> 0 THEN
  3677. //// child_llrow = dw_child.InsertRow (0)
  3678. //// ELSE
  3679. //// child_llrow = dw_child.GetRow()
  3680. //// END IF
  3681. //// ELSE
  3682. //// child_llrow = dw_child.InsertRow (0)
  3683. //// END IF
  3684. ////
  3685. //// dw_child.Object.u_outwaremx_ifrel[child_llrow] = 1
  3686. //// dw_child.Object.u_outwaremx_relid[child_llrow] = arg_saletaskid
  3687. //// dw_child.Object.u_outwaremx_relprintid[child_llrow] = arg_s_rqmtrlI.printid[li]
  3688. //// dw_child.Object.taskcode[child_llrow] = arg_taskcode
  3689. ////
  3690. //// dw_child.Object.u_outwaremx_mtrlwareid[child_llrow] = ins_mtrlwareid
  3691. //// dw_child.Object.u_outwaremx_mtrlid[child_llrow] = arg_s_rqmtrlI.mtrlid[li]
  3692. //// dw_child.Object.u_outwaremx_storageid[child_llrow] = ins_storageid
  3693. //// dw_child.Object.u_outwaremx_plancode[child_llrow] = ins_plancode
  3694. //// dw_child.Object.u_outwaremx_planprice[child_llrow] = ins_planprice
  3695. //// dw_child.Object.u_outwaremx_unit[child_llrow] = arg_s_rqmtrlI.unit[li]
  3696. //// dw_child.Object.u_outwaremx_enprice[child_llrow] = arg_s_rqmtrlI.enprice[li]
  3697. //// dw_child.Object.u_outwaremx_fprice[child_llrow] = arg_s_rqmtrlI.fprice[li]
  3698. //// dw_child.Object.u_outwaremx_rebate[child_llrow] = arg_s_rqmtrlI.rebate[li]
  3699. //// dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode
  3700. //// dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname
  3701. //// dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode
  3702. //// dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit
  3703. //// dw_child.Object.u_outwaremx_mxdscrp[child_llrow] = arg_s_rqmtrlI.mxdscrp[li]
  3704. //// dw_child.Object.mxdscrp2[child_llrow] = arg_s_rqmtrlI.mxdscrp2[li]
  3705. //// dw_child.Object.u_outwaremx_status[child_llrow] = arg_s_rqmtrlI.status[li]
  3706. //// dw_child.Object.u_outwaremx_woodcode[child_llrow] = arg_s_rqmtrlI.woodcode[li]
  3707. //// dw_child.Object.u_outwaremx_pcode[child_llrow] = arg_s_rqmtrlI.pcode[li]
  3708. //// dw_child.Object.u_mtrldef_curware_qty[child_llrow] = ins_qty
  3709. //// dw_child.Object.u_mtrldef_sumneed_qty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3710. //// dw_child.Object.u_mtrldef_sumware_qty[child_llrow] = mtrlwaresum_qty
  3711. //// dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype
  3712. //// dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode
  3713. //// dw_child.Object.u_outwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrlI.mtrlcuscode[li]
  3714. //// dw_child.Object.u_outwaremx_rate[child_llrow] = arg_s_rqmtrlI.rate[li]
  3715. //// dw_child.Object.u_outwaremx_outtype[child_llrow] = arg_s_rqmtrlI.outtype[li]
  3716. //// dw_child.Object.u_outwaremx_formula[child_llrow] = arg_s_rqmtrlI.formula[li]
  3717. //// dw_child.Object.u_outwaremx_addqty[child_llrow] = arg_s_rqmtrlI.addqty[li]
  3718. //// dw_child.Object.u_mtrldef_taskdate[child_llrow] = arg_s_rqmtrlI.taskdate[li]
  3719. //// IF ins_qty <= arg_s_rqmtrlI.qty[li] THEN
  3720. //// IF li_noallocflag = 0 THEN
  3721. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3722. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3723. //// ELSE
  3724. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = i_qty
  3725. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = i_qty
  3726. //// END IF
  3727. //// ELSE
  3728. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3729. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3730. //// END IF
  3731. ////
  3732. ////
  3733. //// FETCH pf_cur INTO :ins_storageid,:ins_mtrlwareid,:ins_plancode,&
  3734. //// :ins_qty,:ins_planprice ;
  3735. ////
  3736. //// LOOP
  3737. //// count = count - 1
  3738. //// CLOSE pf_cur;
  3739. //// END IF
  3740. //// nextmtrl:
  3741. ////NEXT
  3742. //
  3743. //
  3744. //ext:
  3745. RETURN rslt
  3746. end function
  3747. 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)
  3748. //查询合同物料资料
  3749. //把物料资料写入数组
  3750. Long rslt = 1
  3751. Long i
  3752. FOR i = 1 To UpperBound(arg_s_rqmtrl.taskid)
  3753. SELECT u_saletaskmx.mtrlid,
  3754. u_saletaskmx.uSaleQty - u_saletaskmx.consignedqty - u_saletaskmx.stopqty - isnull(uv_outware_sale_noaudit_qty.qty,0),
  3755. u_saletaskmx.enprice,
  3756. u_saletaskmx.fprice,
  3757. u_saletaskmx.rebate,
  3758. u_saletaskmx.mxdscrp,
  3759. u_saletaskmx.status,
  3760. u_saletaskmx.woodcode,
  3761. u_saletaskmx.pcode,
  3762. u_saletaskmx.unit,
  3763. u_saletaskmx.rate,
  3764. u_saletaskmx.mtrlcuscode,
  3765. u_saletaskmx.outtype,
  3766. u_saletaskmx.formula,
  3767. u_saletaskmx.addqty,
  3768. convert(text,u_SaleTaskMx.mxdscrp2) as mxdscrp2,
  3769. u_saletask.taskdate,
  3770. u_saletaskmx.plancode,
  3771. u_saletaskmx.packqty,
  3772. u_saletaskmx.net_weight,
  3773. u_saletaskmx.gross_weight,
  3774. u_saletaskmx.cubage,
  3775. u_saletaskmx.tax,
  3776. u_saletaskmx.mxdscrp3,
  3777. u_saletaskmx.mxdscrp4,
  3778. u_saletaskmx.priceformula,
  3779. u_saletaskmx.otherprice
  3780. INTO :arg_s_rqmtrl.mtrlid[i],
  3781. :arg_s_rqmtrl.qty[i],
  3782. :arg_s_rqmtrl.enprice[i],
  3783. :arg_s_rqmtrl.fprice[i],
  3784. :arg_s_rqmtrl.rebate[i],
  3785. :arg_s_rqmtrl.mxdscrp[i],
  3786. :arg_s_rqmtrl.status[i],
  3787. :arg_s_rqmtrl.woodcode[i],
  3788. :arg_s_rqmtrl.pcode[i],
  3789. :arg_s_rqmtrl.unit[i],
  3790. :arg_s_rqmtrl.rate[i],
  3791. :arg_s_rqmtrl.mtrlcuscode[i],
  3792. :arg_s_rqmtrl.outtype[i],
  3793. :arg_s_rqmtrl.formula[i],
  3794. :arg_s_rqmtrl.addqty[i],
  3795. :arg_s_rqmtrl.mxdscrp2[i],
  3796. :arg_s_rqmtrl.taskdate[i],
  3797. :arg_s_rqmtrl.plancode[i],
  3798. :arg_s_rqmtrl.packqty[i],
  3799. :arg_s_rqmtrl.net_weight[i],
  3800. :arg_s_rqmtrl.gross_weight[i],
  3801. :arg_s_rqmtrl.cubage[i],
  3802. :arg_s_rqmtrl.tax[i],
  3803. :arg_s_rqmtrl.mxdscrp3[i],
  3804. :arg_s_rqmtrl.mxdscrp4[i],
  3805. :arg_s_rqmtrl.priceformula[i],
  3806. :arg_s_rqmtrl.otherprice[i]
  3807. FROM u_SaleTaskMx INNER JOIN
  3808. u_SaleTask ON u_SaleTaskMx.TaskID = u_SaleTask.TaskID AND
  3809. u_SaleTaskMx.scid = u_SaleTask.scid LEFT OUTER JOIN
  3810. uv_outware_sale_noaudit_qty ON
  3811. u_SaleTaskMx.scid = uv_outware_sale_noaudit_qty.scid AND
  3812. u_SaleTaskMx.TaskID = uv_outware_sale_noaudit_qty.relid AND
  3813. u_SaleTaskMx.printid = uv_outware_sale_noaudit_qty.relprintid
  3814. WHERE ( u_saletaskmx.scid = :arg_scid )
  3815. AND ( u_saletaskmx.taskid = :arg_s_rqmtrl.taskid[i] )
  3816. And u_saletaskmx.printid = :arg_s_rqmtrl.printid[i]
  3817. And ( u_saletaskmx.uSaleQty - u_saletaskmx.consignedqty - u_saletaskmx.stopqty <> 0 );
  3818. IF sqlca.SQLCode <> 0 THEN
  3819. rslt = 0
  3820. arg_msg = '查询订单明细信息失败!'+sqlca.SQLErrText
  3821. GOTO ext
  3822. END IF
  3823. NEXT
  3824. ext:
  3825. RETURN rslt
  3826. end function
  3827. 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);//淘汰 //引入订单明细
  3828. //wf_autoaddmx(arg_taskid,arg_storageid,arg_msg)
  3829. //查询合同物料于数组中
  3830. //循环数组
  3831. //查询物料库存总额
  3832. //查询库存批/插入明细记录
  3833. IF NOT dw_edit_mode THEN RETURN 0
  3834. Long li,rslt = 1
  3835. ////Long count = 0,child_llrow
  3836. ////
  3837. ////Decimal mtrlwaresum_qty,sumqty,i_qty,ins_qty,ins_planprice,noallocqty,allocqty,r_qty
  3838. ////Long ins_storageid,ins_mtrlwareid = 0
  3839. ////String ins_mtrlcode,ins_mtrlname,ins_plancode,ins_unit,ins_mtrlsectype,ins_zxmtrlmode,ins_mtrlmode
  3840. ////Long mtrlwareid
  3841. ////String plancode
  3842. ////Decimal planprice
  3843. ////
  3844. ////Boolean lb_find = TRUE
  3845. //
  3846. ////Int li_if_cus_mtrlware,li_noallocflag
  3847. ////Long ll_sptid
  3848. ////
  3849. //////客户库存, 未开单库存
  3850. ////SELECT balctype, noallocflag
  3851. //// INTO :li_if_cus_mtrlware, :li_noallocflag
  3852. //// FROM u_storage
  3853. //// Where storageid = :arg_storageid;
  3854. ////IF sqlca.SQLCode <> 0 THEN
  3855. //// arg_msg = '查询仓库是否使用客户库存失败'
  3856. //// rslt = 0
  3857. //// GOTO ext
  3858. ////END IF
  3859. ////
  3860. ////IF li_if_cus_mtrlware = 1 THEN
  3861. //// ll_sptid = arg_cusid
  3862. ////ELSE
  3863. //// ll_sptid = -1
  3864. ////END IF
  3865. //
  3866. //IF wf_saletaskmtrltoarr_salemx(arg_scid,arg_s_rqmtrlI,arg_msg) = 0 THEN
  3867. // rslt = 0
  3868. // GOTO ext
  3869. //END IF
  3870. //
  3871. //IF wf_set_outwaremx(arg_cusid, arg_storageid, arg_s_rqmtrlI,arg_msg) = 0 THEN
  3872. // rslt = 0
  3873. // GOTO ext
  3874. //END IF
  3875. //
  3876. ////FOR li = 1 TO UpperBound(arg_s_rqmtrlI.taskid)
  3877. //// sumqty = 0
  3878. //// ins_mtrlcode = ''
  3879. //// ins_mtrlname = ''
  3880. //// lb_find = TRUE
  3881. //// allocqty = 0
  3882. //// noallocqty = 0
  3883. //// i_qty = 0
  3884. //// r_qty = 0
  3885. ////
  3886. //// SELECT u_mtrldef.mtrlcode,
  3887. //// u_mtrldef.mtrlname,
  3888. //// u_mtrldef.unit,
  3889. //// u_mtrldef.mtrlmode,
  3890. //// u_mtrldef.mtrlsectype,
  3891. //// u_mtrldef.zxmtrlmode
  3892. //// INTO :ins_mtrlcode,
  3893. //// :ins_mtrlname,
  3894. //// :ins_unit,
  3895. //// :ins_mtrlmode,
  3896. //// :ins_mtrlsectype,
  3897. //// :ins_zxmtrlmode
  3898. //// FROM u_mtrldef
  3899. //// Where u_mtrldef.mtrlid = :arg_s_rqmtrlI.mtrlid[li];
  3900. //// IF sqlca.SQLCode <> 0 THEN
  3901. //// arg_msg = '查询物料资料失败[错误物料唯一码]>'+sqlca.SQLErrText
  3902. //// rslt = 0
  3903. //// GOTO ext
  3904. //// END IF
  3905. ////
  3906. //// SELECT ISNULL(SUM(u_mtrlware.noallocqty), 0) AS sum_qty
  3907. //// INTO :mtrlwaresum_qty
  3908. //// FROM u_mtrlware
  3909. //// WHERE u_mtrlware.scid = :cur_scid
  3910. //// AND u_mtrlware.mtrlid = :arg_s_rqmtrlI.mtrlid[li]
  3911. //// AND u_mtrlware.storageid = :arg_storageid
  3912. //// AND u_mtrlware.status = :arg_s_rqmtrlI.status[li]
  3913. //// AND u_mtrlware.pcode = :arg_s_rqmtrlI.pcode[li]
  3914. //// AND u_mtrlware.woodcode = :arg_s_rqmtrlI.woodcode[li]
  3915. //// AND ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 )
  3916. //// And (plancode = :arg_s_rqmtrlI.plancode[li] Or :arg_s_rqmtrlI.plancode[li] = '');
  3917. ////// And ( (:ifmtrlware = 1 AND plancode = :arg_s_rqmtrlI.taskcode[li] ) OR :ifmtrlware = 0) ;
  3918. ////
  3919. //// IF sqlca.SQLCode = 0 THEN
  3920. ////
  3921. //// ELSEIF sqlca.SQLCode = 100 THEN
  3922. //// mtrlwaresum_qty = -100000
  3923. //// ELSE
  3924. //// arg_msg = '查询库存量失败>'+sqlca.SQLErrText
  3925. //// MessageBox('错误',String(arg_s_rqmtrlI.mtrlid[li] )+'颜色:'+arg_s_rqmtrlI.status[li]+' '+arg_msg,stopsign!,OK!)
  3926. //// rslt = 0
  3927. //// GOTO ext
  3928. //// END IF
  3929. ////
  3930. //// IF li_noallocflag = 1 AND mtrlwaresum_qty = 0 OR mtrlwaresum_qty = -100000 THEN
  3931. //// IF dw_child.GetRow() <= 0 THEN
  3932. //// child_llrow = dw_child.InsertRow(0)
  3933. //// ELSE
  3934. //// IF dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] > 0 THEN
  3935. //// child_llrow = dw_child.InsertRow(0)
  3936. //// ELSE
  3937. //// child_llrow = dw_child.GetRow()
  3938. //// END IF
  3939. //// END IF
  3940. ////
  3941. //// dw_child.Object.u_outwaremx_ifrel[child_llrow] = 1
  3942. //// dw_child.Object.u_outwaremx_relid[child_llrow] = arg_s_rqmtrlI.taskid[li]
  3943. //// dw_child.Object.u_outwaremx_relprintid[child_llrow] = arg_s_rqmtrlI.printid[li]
  3944. //// dw_child.Object.taskcode[child_llrow] = arg_s_rqmtrlI.taskcode[li]
  3945. ////
  3946. //// dw_child.Object.u_outwaremx_mtrlwareid[child_llrow] = 0
  3947. //// dw_child.Object.u_outwaremx_mtrlid[child_llrow] = 0
  3948. //// dw_child.Object.u_outwaremx_enprice[child_llrow] = arg_s_rqmtrlI.enprice[li]
  3949. //// dw_child.Object.u_outwaremx_fprice[child_llrow] = arg_s_rqmtrlI.fprice[li]
  3950. //// dw_child.Object.u_outwaremx_rebate[child_llrow] = arg_s_rqmtrlI.rebate[li]
  3951. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = 0
  3952. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = 0
  3953. //// dw_child.Object.u_outwaremx_unit[child_llrow] = arg_s_rqmtrlI.unit[li]
  3954. //// dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode
  3955. //// dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname
  3956. //// dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit
  3957. //// dw_child.Object.u_outwaremx_mxdscrp[child_llrow] = arg_s_rqmtrlI.mxdscrp[li]
  3958. //// dw_child.Object.mxdscrp2[child_llrow] = arg_s_rqmtrlI.mxdscrp2[li]
  3959. //// dw_child.Object.u_outwaremx_status[child_llrow] = arg_s_rqmtrlI.status[li]
  3960. //// dw_child.Object.u_outwaremx_woodcode[child_llrow] = arg_s_rqmtrlI.woodcode[li]
  3961. //// dw_child.Object.u_outwaremx_pcode[child_llrow] = arg_s_rqmtrlI.pcode[li]
  3962. //// dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode
  3963. //// dw_child.Object.u_mtrldef_curware_qty[child_llrow] = 0
  3964. //// dw_child.Object.u_mtrldef_sumneed_qty[child_llrow] = arg_s_rqmtrlI.qty[li]
  3965. //// dw_child.Object.u_mtrldef_sumware_qty[child_llrow] = 0
  3966. //// dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype
  3967. //// dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode
  3968. //// dw_child.Object.u_outwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrlI.mtrlcuscode[li]
  3969. //// dw_child.Object.u_outwaremx_rate[child_llrow] = arg_s_rqmtrlI.rate[li]
  3970. //// dw_child.Object.u_outwaremx_outtype[child_llrow] = arg_s_rqmtrlI.outtype[li]
  3971. //// dw_child.Object.u_outwaremx_formula[child_llrow] = arg_s_rqmtrlI.formula[li]
  3972. //// dw_child.Object.u_outwaremx_addqty[child_llrow] = arg_s_rqmtrlI.addqty[li]
  3973. //// dw_child.Object.u_mtrldef_taskdate[child_llrow] = arg_s_rqmtrlI.taskdate[li]
  3974. //// GOTO nextmtrl
  3975. //// END IF
  3976. ////
  3977. //// child_llrow = dw_child.GetRow()
  3978. ////
  3979. //// IF mtrlwaresum_qty = 0 THEN
  3980. //// IF dw_child.GetRow() > 0 THEN
  3981. //// IF dw_child.Object.u_outwaremx_mtrlid[child_llrow] <> 0 THEN
  3982. //// child_llrow = dw_child.InsertRow (0)
  3983. //// ELSE
  3984. //// child_llrow = dw_child.GetRow()
  3985. //// END IF
  3986. //// ELSE
  3987. //// child_llrow = dw_child.InsertRow (0)
  3988. //// END IF
  3989. ////
  3990. //// mtrlwareid = 0
  3991. //// plancode = ''
  3992. //// noallocqty = 0
  3993. //// planprice = 0
  3994. ////
  3995. //// SELECT top 1
  3996. //// u_mtrlware.mtrlwareid,
  3997. //// u_mtrlware.plancode,
  3998. //// u_mtrlware.noallocqty,
  3999. //// u_mtrlware.planprice
  4000. //// INTO
  4001. //// :mtrlwareid,
  4002. //// :plancode,
  4003. //// :noallocqty,
  4004. //// :planprice
  4005. //// FROM u_mtrlware
  4006. //// WHERE ( u_mtrlware.mtrlid = :arg_s_rqmtrlI.mtrlid[li] ) AND
  4007. //// ( u_mtrlware.storageid = :arg_storageid ) AND
  4008. //// ( u_mtrlware.status = :arg_s_rqmtrlI.status[li] ) AND
  4009. //// ( u_mtrlware.pcode = :arg_s_rqmtrlI.pcode[li] ) AND
  4010. //// ( u_mtrlware.woodcode = :arg_s_rqmtrlI.woodcode[li] ) AND
  4011. //// ( u_mtrlware.scid = :cur_scid ) AND
  4012. //// ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 )
  4013. //// And (plancode = :arg_s_rqmtrlI.plancode[li] Or :arg_s_rqmtrlI.plancode[li] = '')
  4014. //// Order By u_mtrlware.mtrlwareid Desc ;
  4015. //// IF sqlca.SQLCode = -1 THEN
  4016. //// arg_msg = '查询库存信息失败>'+sqlca.SQLErrText
  4017. //// MessageBox('错误',String(arg_s_rqmtrlI.mtrlid[li] )+'颜色:'+arg_s_rqmtrlI.status[li]+' '+arg_msg,information!,OK!)
  4018. //// rslt = 0
  4019. //// GOTO ext
  4020. //// END IF
  4021. ////
  4022. ////
  4023. //// dw_child.Object.u_outwaremx_ifrel[child_llrow] = 1
  4024. //// dw_child.Object.u_outwaremx_relid[child_llrow] = arg_s_rqmtrlI.taskid[li]
  4025. //// dw_child.Object.u_outwaremx_relprintid[child_llrow] = arg_s_rqmtrlI.printid[li]
  4026. //// dw_child.Object.taskcode[child_llrow] = arg_s_rqmtrlI.taskcode[li]
  4027. ////
  4028. //// dw_child.Object.u_outwaremx_mtrlwareid[child_llrow] = mtrlwareid
  4029. //// dw_child.Object.u_outwaremx_mtrlid[child_llrow] = arg_s_rqmtrlI.mtrlid[li]
  4030. //// dw_child.Object.u_outwaremx_storageid[child_llrow] = arg_storageid
  4031. //// dw_child.Object.u_outwaremx_plancode[child_llrow] = plancode
  4032. //// dw_child.Object.u_outwaremx_planprice[child_llrow] = planprice
  4033. //// dw_child.Object.u_outwaremx_unit[child_llrow] = arg_s_rqmtrlI.unit[li]
  4034. //// dw_child.Object.u_outwaremx_enprice[child_llrow] = arg_s_rqmtrlI.enprice[li]
  4035. //// dw_child.Object.u_outwaremx_fprice[child_llrow] = arg_s_rqmtrlI.fprice[li]
  4036. //// dw_child.Object.u_outwaremx_rebate[child_llrow] = arg_s_rqmtrlI.rebate[li]
  4037. //// dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode
  4038. //// dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname
  4039. //// dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode
  4040. //// dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit
  4041. //// dw_child.Object.u_outwaremx_mxdscrp[child_llrow] = arg_s_rqmtrlI.mxdscrp[li]
  4042. //// dw_child.Object.mxdscrp2[child_llrow] = arg_s_rqmtrlI.mxdscrp2[li]
  4043. //// dw_child.Object.u_outwaremx_status[child_llrow] = arg_s_rqmtrlI.status[li]
  4044. //// dw_child.Object.u_outwaremx_woodcode[child_llrow] = arg_s_rqmtrlI.woodcode[li]
  4045. //// dw_child.Object.u_outwaremx_pcode[child_llrow] = arg_s_rqmtrlI.pcode[li]
  4046. //// dw_child.Object.u_mtrldef_curware_qty[child_llrow] = 0
  4047. //// dw_child.Object.u_mtrldef_sumneed_qty[child_llrow] = arg_s_rqmtrlI.qty[li]
  4048. //// dw_child.Object.u_mtrldef_sumware_qty[child_llrow] = 0
  4049. //// dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype
  4050. //// dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode
  4051. //// dw_child.Object.u_outwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrlI.mtrlcuscode[li]
  4052. //// dw_child.Object.u_outwaremx_rate[child_llrow] = arg_s_rqmtrlI.rate[li]
  4053. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  4054. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  4055. //// dw_child.Object.u_outwaremx_outtype[child_llrow] = arg_s_rqmtrlI.outtype[li]
  4056. //// dw_child.Object.u_outwaremx_formula[child_llrow] = arg_s_rqmtrlI.formula[li]
  4057. //// dw_child.Object.u_outwaremx_addqty[child_llrow] = arg_s_rqmtrlI.addqty[li]
  4058. //// dw_child.Object.u_mtrldef_taskdate[child_llrow] = arg_s_rqmtrlI.taskdate[li]
  4059. //// ELSE
  4060. //// DECLARE pf_cur CURSOR FOR
  4061. //// SELECT u_mtrlware.storageid,
  4062. //// u_mtrlware.mtrlwareid,
  4063. //// u_mtrlware.plancode,
  4064. //// u_mtrlware.noallocqty,
  4065. //// u_mtrlware.planprice
  4066. //// FROM u_mtrlware
  4067. //// WHERE ( u_mtrlware.mtrlid = :arg_s_rqmtrlI.mtrlid[li] ) AND
  4068. //// ( u_mtrlware.storageid = :arg_storageid ) AND
  4069. //// ( u_mtrlware.status = :arg_s_rqmtrlI.status[li] ) AND
  4070. //// ( u_mtrlware.pcode = :arg_s_rqmtrlI.pcode[li] ) AND
  4071. //// ( u_mtrlware.woodcode = :arg_s_rqmtrlI.woodcode[li] ) AND
  4072. //// ( u_mtrlware.scid = :cur_scid ) AND
  4073. //// ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 ) AND
  4074. //// ( u_mtrlware.noallocqty > 0)
  4075. //// And (plancode = :arg_s_rqmtrlI.plancode[li] Or :arg_s_rqmtrlI.plancode[li] = '')
  4076. //// Order By u_mtrlware.noallocqty Desc ;
  4077. ////
  4078. //// OPEN pf_cur;
  4079. //// count = 1
  4080. //// FETCH pf_cur INTO :ins_storageid,:ins_mtrlwareid,:ins_plancode,&
  4081. //// :ins_qty,:ins_planprice ;
  4082. //// DO WHILE sqlca.SQLCode = 0 AND r_qty < arg_s_rqmtrlI.qty[li]
  4083. //// count++
  4084. //// i_qty = ins_qty
  4085. //// r_qty = r_qty+i_qty
  4086. //// IF r_qty > arg_s_rqmtrlI.qty[li] THEN
  4087. //// i_qty = ins_qty - ( r_qty - arg_s_rqmtrlI.qty[li] )
  4088. ////
  4089. //// END IF
  4090. ////
  4091. //// IF dw_child.GetRow() > 0 THEN
  4092. //// IF dw_child.Object.u_outwaremx_mtrlid[child_llrow] <> 0 THEN
  4093. //// child_llrow = dw_child.InsertRow (0)
  4094. //// ELSE
  4095. //// child_llrow = dw_child.GetRow()
  4096. //// END IF
  4097. //// ELSE
  4098. //// child_llrow = dw_child.InsertRow (0)
  4099. //// END IF
  4100. ////
  4101. //// dw_child.Object.u_outwaremx_ifrel[child_llrow] = 1
  4102. //// dw_child.Object.u_outwaremx_relid[child_llrow] = arg_s_rqmtrlI.taskid[li]
  4103. //// dw_child.Object.u_outwaremx_relprintid[child_llrow] = arg_s_rqmtrlI.printid[li]
  4104. //// dw_child.Object.taskcode[child_llrow] = arg_s_rqmtrlI.taskcode[li]
  4105. ////
  4106. //// dw_child.Object.u_outwaremx_mtrlwareid[child_llrow] = ins_mtrlwareid
  4107. //// dw_child.Object.u_outwaremx_mtrlid[child_llrow] = arg_s_rqmtrlI.mtrlid[li]
  4108. //// dw_child.Object.u_outwaremx_storageid[child_llrow] = ins_storageid
  4109. //// dw_child.Object.u_outwaremx_plancode[child_llrow] = ins_plancode
  4110. //// dw_child.Object.u_outwaremx_planprice[child_llrow] = ins_planprice
  4111. //// dw_child.Object.u_outwaremx_unit[child_llrow] = arg_s_rqmtrlI.unit[li]
  4112. //// dw_child.Object.u_outwaremx_enprice[child_llrow] = arg_s_rqmtrlI.enprice[li]
  4113. //// dw_child.Object.u_outwaremx_fprice[child_llrow] = arg_s_rqmtrlI.fprice[li]
  4114. //// dw_child.Object.u_outwaremx_rebate[child_llrow] = arg_s_rqmtrlI.rebate[li]
  4115. //// dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode
  4116. //// dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname
  4117. //// dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode
  4118. //// dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit
  4119. //// dw_child.Object.u_outwaremx_mxdscrp[child_llrow] = arg_s_rqmtrlI.mxdscrp[li]
  4120. //// dw_child.Object.mxdscrp2[child_llrow] = arg_s_rqmtrlI.mxdscrp2[li]
  4121. //// dw_child.Object.u_outwaremx_status[child_llrow] = arg_s_rqmtrlI.status[li]
  4122. //// dw_child.Object.u_outwaremx_woodcode[child_llrow] = arg_s_rqmtrlI.woodcode[li]
  4123. //// dw_child.Object.u_outwaremx_pcode[child_llrow] = arg_s_rqmtrlI.pcode[li]
  4124. //// dw_child.Object.u_mtrldef_curware_qty[child_llrow] = ins_qty
  4125. //// dw_child.Object.u_mtrldef_sumneed_qty[child_llrow] = arg_s_rqmtrlI.qty[li]
  4126. //// dw_child.Object.u_mtrldef_sumware_qty[child_llrow] = mtrlwaresum_qty
  4127. //// dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype
  4128. //// dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode
  4129. //// dw_child.Object.u_outwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrlI.mtrlcuscode[li]
  4130. //// dw_child.Object.u_outwaremx_rate[child_llrow] = arg_s_rqmtrlI.rate[li]
  4131. //// dw_child.Object.u_outwaremx_outtype[child_llrow] = arg_s_rqmtrlI.outtype[li]
  4132. //// dw_child.Object.u_outwaremx_formula[child_llrow] = arg_s_rqmtrlI.formula[li]
  4133. //// dw_child.Object.u_outwaremx_addqty[child_llrow] = arg_s_rqmtrlI.addqty[li]
  4134. //// dw_child.Object.u_mtrldef_taskdate[child_llrow] = arg_s_rqmtrlI.taskdate[li]
  4135. //// IF ins_qty <= arg_s_rqmtrlI.qty[li] THEN
  4136. //// IF li_noallocflag = 0 THEN
  4137. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  4138. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  4139. //// ELSE
  4140. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = i_qty
  4141. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = i_qty
  4142. //// END IF
  4143. //// ELSE
  4144. //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  4145. //// dw_child.Object.u_outwaremx_uqty[child_llrow] = arg_s_rqmtrlI.qty[li]
  4146. //// END IF
  4147. ////
  4148. ////
  4149. //// FETCH pf_cur INTO :ins_storageid,:ins_mtrlwareid,:ins_plancode,&
  4150. //// :ins_qty,:ins_planprice ;
  4151. ////
  4152. //// LOOP
  4153. //// count = count - 1
  4154. //// CLOSE pf_cur;
  4155. //// END IF
  4156. ////nextmtrl:
  4157. ////NEXT
  4158. //
  4159. //
  4160. //ext:
  4161. RETURN rslt
  4162. end function
  4163. public function integer wf_refresh_interface ();//wf_refresh_interface
  4164. IF dw_edit_mode THEN
  4165. cb_retrieve.Enabled = FALSE
  4166. cb_delet.Enabled = FALSE
  4167. cb_print.Enabled = FALSE
  4168. cb_viewprint.Enabled = FALSE
  4169. cb_auditing.Enabled = FALSE
  4170. cb_auditing_cancel.Enabled = FALSE
  4171. dw_pageretr.RBUTTON_FILTER_USE = FALSE //右键查询功能开关
  4172. dw_pageretr.titleclick_sort_use = FALSE //单击标题排序功能开关
  4173. dw_child.RBUTTON_SETPOSITION_USE = FALSE //定位
  4174. cb_edit.Enabled = TRUE
  4175. cb_add.Enabled = TRUE
  4176. // cbx_ifmtrlware.Enabled = TRUE
  4177. cb_xls.Enabled = FALSE
  4178. cb_edit.Text = "放弃&E"
  4179. cb_add.Text = "保存&S"
  4180. cb_edit.normalpicname = 'Undo.bmp'
  4181. cb_add.normalpicname = 'Save.bmp'
  4182. ELSE
  4183. cb_retrieve.Enabled = TRUE
  4184. cb_delet.Enabled = TRUE
  4185. cb_print.Enabled = TRUE
  4186. cb_viewprint.Enabled = TRUE
  4187. cb_auditing.Enabled = TRUE
  4188. cb_auditing_cancel.Enabled = TRUE
  4189. // cbx_ifmtrlware.Enabled = FALSE
  4190. cb_add.Enabled = TRUE
  4191. cb_edit.Enabled = TRUE
  4192. cb_xls.Enabled = TRUE
  4193. dw_pageretr.RBUTTON_FILTER_USE = TRUE //右键查询功能开关
  4194. dw_pageretr.titleclick_sort_use = TRUE //单击标题排序功能开关
  4195. dw_child.RBUTTON_SETPOSITION_USE = TRUE //定位
  4196. cb_edit.Text = "修改&E"
  4197. cb_add.Text = "新建&S"
  4198. cb_edit.normalpicname = 'OPEN.bmp'
  4199. cb_add.normalpicname = 'new.bmp'
  4200. IF dw_pageretr.GetRow() <= 0 THEN
  4201. cb_edit.Enabled = FALSE
  4202. cb_delet.Enabled = FALSE
  4203. cb_addzy.Enabled = FALSE
  4204. cb_auditing.Enabled = FALSE
  4205. END IF
  4206. END IF
  4207. IF retrieve_all OR dw_edit_mode THEN
  4208. cb_nextpage.Enabled = FALSE
  4209. cb_retrieveall.Enabled = FALSE
  4210. em_pagerowno.Enabled = FALSE
  4211. cb_func.Enabled = FALSE
  4212. sle_usual_query.Enabled = not dw_edit_mode
  4213. ELSE
  4214. cb_nextpage.Enabled = TRUE
  4215. cb_retrieveall.Enabled = TRUE
  4216. em_pagerowno.Enabled = TRUE
  4217. sle_usual_query.Enabled = TRUE
  4218. cb_func.Enabled = TRUE
  4219. END IF
  4220. wf_lock_child()
  4221. //修改uc_taborder
  4222. IF dw_edit_mode THEN
  4223. dw_uc.TriggerEvent("ue_taborder")
  4224. IF dw_uc.ins_if_nomodify_uc_taborder THEN
  4225. Long ll_uc_int
  4226. FOR ll_uc_int = 1 TO uc_column_int
  4227. dw_uc.SetTabOrder (ll_uc_int,ll_uc_int*10 )
  4228. NEXT
  4229. END IF
  4230. ELSE
  4231. dw_uc.TriggerEvent("ue_taborder_cancel")
  4232. END IF
  4233. cb_edit.of_init_draw()
  4234. cb_add.of_init_draw()
  4235. cb_edit.of_paint()
  4236. cb_add.of_paint()
  4237. cb_add.TriggerEvent('ue_textchange')
  4238. cb_edit.TriggerEvent('ue_textchange')
  4239. ll_lastrow = 0
  4240. THIS.TriggerEvent('refresh_interface')
  4241. RETURN 1
  4242. end function
  4243. 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
  4244. LS_ROW = dw_pageretr.GetRow()
  4245. IF LS_ROW <= 0 THEN
  4246. arg_msg = '没有目标单据!'
  4247. RETURN 0
  4248. END IF
  4249. //修改点:获取 指定retriev参数
  4250. ll_id = dw_pageretr.Object.#1[LS_ROW]
  4251. ll_scid = dw_pageretr.Object.U_outware_scid[LS_ROW]
  4252. Long ll_i,ll_j
  4253. Long ll_mtrlid
  4254. Long ll_fileid
  4255. Blob ls_filedata
  4256. SetNull(ls_filedata)
  4257. String Pathname,ls_filename,ls_filetype
  4258. String errmsg
  4259. uo_fj_mng_billtype ls_uo_fjbt
  4260. ls_uo_fjbt = CREATE uo_fj_mng_billtype
  4261. Long ll_classid
  4262. SELECT classid
  4263. INTO :ll_classid
  4264. FROM u_billpic_fileclass
  4265. Where (billtype = 102);
  4266. IF sqlca.SQLCode <> 0 THEN
  4267. ll_classid = 0
  4268. END IF
  4269. IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息.
  4270. FOR ll_i = 1 TO dw_child.RowCount()
  4271. ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ll_i]
  4272. arg_s_pic.mtrlid[ll_i] = ll_mtrlid
  4273. //取该附件类型中的第一个附件.
  4274. SELECT top 1 fileid,DisplayName,FileType INTO :ll_fileid,:ls_filename,:ls_filetype
  4275. FROM u_file
  4276. WHERE relid = :ll_mtrlid
  4277. AND classid = :ll_classid
  4278. AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf'
  4279. OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg')
  4280. USING sys_fileDB_sqlca;
  4281. IF sys_fileDB_sqlca.SQLCode <> 0 THEN
  4282. ll_fileid = 0
  4283. END IF
  4284. IF ll_fileid > 0 THEN
  4285. Pathname = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ls_filename+'.'+ls_filetype
  4286. IF Trim(Pathname) <> '' THEN
  4287. IF ls_uo_fjbt.uf_getfjbolb_fromdb( ll_fileid, ls_filedata, sys_fileDB_sqlca, arg_msg) = 0 THEN
  4288. RETURN 0
  4289. END IF
  4290. IF f_saveblobtofile(ls_filedata,Pathname,errmsg) = 0 THEN
  4291. RETURN 0
  4292. ELSE
  4293. arg_s_pic.path[ll_i] = Pathname
  4294. //记录临时文件位置,本窗口退出后删除
  4295. wf_addlog_tempfilepathname(Pathname)
  4296. END IF
  4297. ELSE
  4298. arg_s_pic.path[ll_i] = ''
  4299. END IF
  4300. ELSE
  4301. arg_s_pic.path[ll_i] = ''
  4302. END IF
  4303. NEXT
  4304. END IF
  4305. RETURN 1
  4306. end function
  4307. public subroutine wf_cusbalc (long arg_scid, long arg_cusid, long arg_moneyid);IF NOT f_power_ind(1506) THEN
  4308. st_cusbalc.Text = ''
  4309. RETURN
  4310. END IF
  4311. IF dw_edit_mode THEN
  4312. st_cusbalc.Text = ''
  4313. RETURN
  4314. END IF
  4315. IF arg_cusid = 0 THEN RETURN
  4316. String ls_cusname,ls_moneyname
  4317. Decimal ld_cus_balcamt,ld_maxmtnum, ld_canamt
  4318. Decimal ld_notsecaudit_amt,ld_notsecaudit_enamt
  4319. Decimal ld_notsecaudit_billamt, ldt_cusmaxamt
  4320. Decimal ld_outrep_balcamt,ld_outrep_maxamt
  4321. SELECT name
  4322. INTO :ls_moneyname
  4323. FROM cw_currency
  4324. Where moneyid = :arg_moneyid;
  4325. IF sqlca.SQLCode <> 0 THEN
  4326. st_cusbalc.Text = '查询币种信息失败'
  4327. RETURN
  4328. END IF
  4329. SELECT u_cust.name,
  4330. u_cust.maxmtnum ,
  4331. isnull(v_cus_balcamt.cus_balcamt,0)
  4332. INTO :ls_cusname,:ld_maxmtnum,:ld_cus_balcamt
  4333. FROM u_cust left OUTER join
  4334. v_cus_balcamt on u_cust.cusid = v_cus_balcamt.cusid
  4335. WHERE u_cust.cusid = :arg_cusid
  4336. AND isnull(v_cus_balcamt.scid,0) = :arg_scid
  4337. AND IsNull(v_cus_balcamt.moneyid,0) = :arg_moneyid;
  4338. IF sqlca.SQLCode <> 0 THEN
  4339. st_cusbalc.Text = '查询客户信息失败'
  4340. RETURN
  4341. END IF
  4342. st_cusbalc.Text = "客户:"+ls_cusname + ' 币种:'+ls_moneyname+'~r~n'
  4343. IF ld_maxmtnum > 0 THEN
  4344. IF ld_maxmtnum - ld_cus_balcamt < 0 THEN
  4345. ld_canamt = 0
  4346. ELSE
  4347. ld_canamt = ld_maxmtnum - ld_cus_balcamt
  4348. END IF
  4349. st_cusbalc.Text += '信用额:'+String(ld_maxmtnum,'#,##0.00')+' 欠款:' + String(ld_cus_balcamt,'#,##0.00') + ' 可用额:' + String(ld_canamt ,'#,##0.00')
  4350. ELSE
  4351. st_cusbalc.Text += '欠款:'+ String(ld_cus_balcamt,'#,##0.00')
  4352. END IF
  4353. IF ld_maxmtnum < ld_cus_balcamt THEN
  4354. st_cusbalc.TextColor = RGB(255,0,0)
  4355. ELSE
  4356. st_cusbalc.TextColor = RGB(0,0,0)
  4357. END IF
  4358. //
  4359. wf_getcusrepamt_info_show(arg_scid,arg_cusid,arg_moneyid)
  4360. st_cusbalc.Text = ls_cusname+'['+ls_moneyname+'] ' + cur_cusrepamtstr_show
  4361. end subroutine
  4362. public subroutine wf_getcusrepamt_info (long arg_scid, long arg_cusid, long arg_moneyid);Int lst
  4363. Long i
  4364. String cstr = '',rstr = '',msg = ''
  4365. Decimal arg_cusbalcamt,arg_cusmaxamt,arg_outrep_balcamt,arg_outrep_maxamt
  4366. String ls_moneyname
  4367. Decimal ld_canamt
  4368. Decimal lde_billamt
  4369. Decimal ld_mrate
  4370. Long ll_outwareid
  4371. //dw_child.accepttext()
  4372. SELECT name
  4373. INTO :ls_moneyname
  4374. FROM cw_currency
  4375. Where moneyid = :arg_moneyid;
  4376. IF sqlca.SQLCode <> 0 THEN
  4377. st_msg.Text = '查询币种信息失败'
  4378. st_msg.BackColor = RGB(255,255,255)
  4379. RETURN
  4380. END IF
  4381. //本单金额
  4382. // IF sys_option_mst_multimoney = 0 THEN
  4383. // ll_moneyid = f_moneyid_native()
  4384. // IF ll_moneyid = -1 THEN
  4385. // MessageBox('系统提示','查询本位币失败')
  4386. // RETURN
  4387. // END IF
  4388. // ld_mrate = dw_pageretr.Object.u_outware_mrate[dw_pageretr.GetRow()]
  4389. // ELSE
  4390. // ll_moneyid = dw_pageretr.Object.u_outware_relint_2[dw_pageretr.GetRow()]
  4391. ld_mrate = 1
  4392. // END IF
  4393. dw_child.AcceptText()
  4394. //lde_billamt = dw_child.Object.enamt_sm[1] * ld_mrate - dw_uc.Object.u_outware_otheramt[dw_uc.GetRow()]
  4395. ////MessageBox('',String(dw_child.Object.enamt_sm[1] ))
  4396. //IF lde_billamt = 0 THEN lde_billamt = wf_sum_mxamt()
  4397. //IF lde_billamt < 0 THEN
  4398. lde_billamt = wf_sum_mxamt() - dw_uc.Object.u_outware_otheramt[dw_uc.GetRow()]
  4399. //End if
  4400. //其他单未财审金额
  4401. dw_uc.AcceptText()
  4402. ll_outwareid = dw_uc.Object.u_outware_outwareid[dw_uc.GetRow()]
  4403. Decimal ld_notsecaudit_amt, ld_notsecaudit_enamt, ld_notsecaudit_billamt, ld_notsecaudit_otheramt, ld_notsecaudit_enotheramt
  4404. SELECT sum(round(u_outwaremx.saleqty * u_outwaremx.price,2)),
  4405. sum(round(u_outwaremx.saleqty * u_outwaremx.enprice * u_outwaremx.rebate,2))
  4406. INTO :ld_notsecaudit_amt,:ld_notsecaudit_enamt
  4407. FROM u_outware,u_outwaremx
  4408. WHERE u_outware.scid = u_outwaremx.scid
  4409. AND u_outware.outwareid = u_outwaremx.outwareid
  4410. AND u_outware.billtype = 1
  4411. AND u_outware.secflag = 0
  4412. AND u_outware.outwareid <> :ll_outwareid
  4413. AND u_outware.cusid = :arg_cusid
  4414. AND (:sys_option_scid_msttake_mstpay = 1 AND u_outware.scid = :arg_scid OR :sys_option_scid_msttake_mstpay = 0 )
  4415. And (:sys_option_mst_multimoney = 1 And u_outware.relint_2 = :arg_moneyid Or :sys_option_mst_multimoney = 0);
  4416. IF sqlca.SQLCode <> 0 THEN
  4417. ld_notsecaudit_amt = 0
  4418. ld_notsecaudit_enamt = 0
  4419. END IF
  4420. SELECT sum(round(u_outware.otheramt,2)),
  4421. sum(round(u_outware.otheramt * u_outware.mrate,2))
  4422. INTO :ld_notsecaudit_enotheramt,:ld_notsecaudit_otheramt
  4423. FROM u_outware
  4424. WHERE u_outware.billtype = 1
  4425. AND u_outware.secflag = 0
  4426. AND u_outware.outwareid <> :ll_outwareid
  4427. AND u_outware.cusid = :arg_cusid
  4428. AND (:sys_option_scid_msttake_mstpay = 1 AND u_outware.scid = :arg_scid OR :sys_option_scid_msttake_mstpay = 0 )
  4429. And (:sys_option_mst_multimoney = 1 And u_outware.relint_2 = :arg_moneyid Or :sys_option_mst_multimoney = 0);
  4430. IF sqlca.SQLCode <> 0 THEN
  4431. ld_notsecaudit_enotheramt = 0
  4432. ld_notsecaudit_otheramt = 0
  4433. END IF
  4434. IF IsNull(ld_notsecaudit_amt) THEN ld_notsecaudit_amt = 0
  4435. IF IsNull(ld_notsecaudit_enamt) THEN ld_notsecaudit_enamt = 0
  4436. IF IsNull(ld_notsecaudit_otheramt) THEN ld_notsecaudit_otheramt = 0
  4437. IF IsNull(ld_notsecaudit_enotheramt) THEN ld_notsecaudit_enotheramt = 0
  4438. IF sys_option_mst_multimoney = 1 THEN
  4439. ld_notsecaudit_billamt = ld_notsecaudit_enamt - ld_notsecaudit_enotheramt
  4440. ELSE
  4441. ld_notsecaudit_billamt = ld_notsecaudit_amt - ld_notsecaudit_otheramt
  4442. END IF
  4443. cur_cusrepamtflag = 0
  4444. //--------检查信用额
  4445. lst = f_getcusrepamt_info(arg_scid,arg_cusid,arg_moneyid,arg_cusbalcamt,arg_cusmaxamt,arg_outrep_balcamt,arg_outrep_maxamt)
  4446. IF lst < 0 THEN
  4447. msg = '提示:查询信用额及欠款失败!'
  4448. st_msg.Text = msg
  4449. st_msg.BackColor = RGB(255,255,255)
  4450. cur_cusrepamtflag = -1
  4451. cur_cusrepamtstr = msg
  4452. ELSE
  4453. //客户欠款
  4454. IF arg_cusmaxamt > 0 THEN
  4455. IF arg_cusbalcamt > arg_cusmaxamt THEN
  4456. cstr = ' 客户欠款超信用额! '
  4457. ELSEIF arg_cusbalcamt = arg_cusmaxamt THEN
  4458. cstr = ' 客户欠款平信用额! '
  4459. END IF
  4460. ELSE
  4461. IF arg_cusbalcamt > arg_cusmaxamt THEN cstr = ' 客户有欠款! '
  4462. END IF
  4463. //业务员欠款
  4464. IF arg_outrep_maxamt > 0 THEN
  4465. IF arg_outrep_balcamt > arg_outrep_maxamt THEN
  4466. rstr = ' 业务员欠款超信用额! '
  4467. ELSEIF arg_outrep_balcamt = arg_outrep_maxamt THEN
  4468. cstr = ' 业务员欠款平信用额! '
  4469. END IF
  4470. ELSE
  4471. IF arg_outrep_balcamt > arg_outrep_maxamt THEN rstr = ' 业务员有欠款! '
  4472. END IF
  4473. msg = '提示:~r~n~r~n币种:'+ls_moneyname+"~r~n~r~n"
  4474. IF arg_cusmaxamt > 0 THEN
  4475. IF arg_cusmaxamt - arg_cusbalcamt < 0 THEN
  4476. ld_canamt = 0
  4477. ELSE
  4478. ld_canamt = arg_cusmaxamt - arg_cusbalcamt
  4479. END IF
  4480. msg += '客户信用额:'+String(arg_cusmaxamt,'#,##0.00')+' 欠款:' + String(arg_cusbalcamt,'#,##0.00') + ' 可用额:' + String(ld_canamt ,'#,##0.00') + cstr + "~r~n~r~n"
  4481. ELSE
  4482. msg += '客户欠款:' + String(arg_cusbalcamt,'#,##0.00') + cstr + "~r~n~r~n"
  4483. END IF
  4484. //msg += '客户信用额-欠款:'+String(arg_cusmaxamt,'#0.0#')+'-'+String(arg_cusbalcamt,'#0.0#')+'='+String(arg_cusmaxamt - arg_cusbalcamt,'#0.0#')+cstr+"~r~n~r~n"
  4485. IF arg_outrep_maxamt > 0 THEN
  4486. IF arg_outrep_maxamt - arg_outrep_balcamt < 0 THEN
  4487. ld_canamt = 0
  4488. ELSE
  4489. ld_canamt = arg_outrep_maxamt - arg_outrep_balcamt
  4490. END IF
  4491. msg += '业务员信用额:'+String(arg_outrep_maxamt,'#,##0.00') +' 欠款'+String(arg_outrep_balcamt,'#,##0.00')+' 可用额:'+String(ld_canamt,'#,##0.00') + rstr
  4492. ELSE
  4493. msg += '业务员欠款:'+String(arg_outrep_balcamt,'#,##0.00') + rstr
  4494. END IF
  4495. //msg += '业务员信用额-欠款:'+String(arg_outrep_maxamt,'#0.0#')+'-'+String(arg_outrep_balcamt,'#0.0#')+'='+String(arg_outrep_maxamt - arg_outrep_balcamt,'#0.0#')+rstr
  4496. st_msg.Text = msg
  4497. cur_cusrepamtstr = msg
  4498. IF arg_outrep_balcamt >= arg_outrep_maxamt &
  4499. Or arg_cusbalcamt >= arg_cusmaxamt THEN //有欠款
  4500. st_msg.BackColor = RGB(255,200,200)
  4501. ELSE
  4502. st_msg.BackColor = RGB(255,255,255)
  4503. END IF
  4504. IF arg_cusbalcamt + ld_notsecaudit_billamt + lde_billamt > arg_cusmaxamt THEN
  4505. cur_cusrepamtflag = -1
  4506. 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'
  4507. cur_cusrepamtstr += '超信用额:'+String(arg_cusbalcamt + ld_notsecaudit_billamt + lde_billamt - arg_cusmaxamt,'#,##0.00')
  4508. ELSE
  4509. cur_cusrepamtflag = 0
  4510. cur_cusrepamtstr = ""
  4511. END IF
  4512. END IF
  4513. st_cusbalc.Text = ""
  4514. end subroutine
  4515. public function integer wf_get_pricelist_price (long arg_pricelistid, long arg_moneyid, ref string arg_msg);Int rslt = 1
  4516. Long ll_row
  4517. Long ll_pricelistid, ll_moneyid, ll_mtrlid
  4518. String ls_status,ls_pcode,ls_woodcode,ls_unit, ls_mtrlname
  4519. String ls_msg
  4520. ll_pricelistid = arg_pricelistid
  4521. ll_moneyid = arg_moneyid
  4522. IF uo_cus_price.uof_chk_pricelistid(ll_pricelistid, ll_moneyid, arg_msg) = 0 THEN
  4523. rslt = 0
  4524. GOTO ext
  4525. END IF
  4526. s_sale_price_mx s_mx
  4527. dw_child.AcceptText()
  4528. FOR ll_row = 1 To dw_child.RowCount()
  4529. ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ll_row]
  4530. ls_status = dw_child.Object.u_outwaremx_status[ll_row]
  4531. ls_pcode = dw_child.Object.u_outwaremx_pcode[ll_row]
  4532. ls_woodcode = dw_child.Object.u_outwaremx_woodcode[ll_row]
  4533. ls_unit = dw_child.Object.u_outwaremx_unit[ll_row]
  4534. ls_mtrlname = dw_child.Object.u_mtrldef_mtrlname[ll_row]
  4535. IF sys_option_price_if_status = 0 THEN
  4536. ls_status = ''
  4537. ls_pcode = ''
  4538. ls_woodcode = ''
  4539. END IF
  4540. s_mx.mtrlid = ll_mtrlid
  4541. s_mx.status = ls_status
  4542. s_mx.woodcode = ls_woodcode
  4543. s_mx.pcode = ls_pcode
  4544. s_mx.unit = ls_unit
  4545. s_mx.moneyid = ll_moneyid
  4546. s_mx.pricelistid = ll_pricelistid
  4547. IF uo_cus_price.uof_get_pricelist_price(s_mx, ls_msg) = 0 THEN
  4548. arg_msg += "行:"+String(ll_row)+", "+ls_mtrlname+" ~n"
  4549. rslt = 0 //无标准价格表 或未审核
  4550. END IF
  4551. dw_child.Object.u_outwaremx_enprice[ll_row] = s_mx.price
  4552. dw_child.Object.u_outwaremx_rebate[ll_row] = s_mx.rebate
  4553. //dw_child.Object.u_saletaskmx_rate[ll_row] = obj_rate
  4554. NEXT
  4555. IF rslt = 0 THEN
  4556. arg_msg += "导入价格表售价失败或没有设置售价! ~n "
  4557. END IF
  4558. ext:
  4559. RETURN rslt
  4560. end function
  4561. public function integer wf_get_price (long arg_row);IF arg_row <= 0 THEN RETURN 1
  4562. IF arg_row > dw_child.RowCount() THEN RETURN 1
  4563. Long rslt = 1
  4564. Long ll_cusid, ll_moneyid
  4565. Long ll_i,ll_mtrlid
  4566. String ls_msg
  4567. String ls_status,ls_woodcode,ls_pcode, ls_unit
  4568. String arg_msg
  4569. Decimal lde_enprice,lde_rebate,lde_rate
  4570. decimal lde_usaleqty
  4571. dw_uc.AcceptText()
  4572. dw_child.AcceptText()
  4573. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  4574. IF ll_moneyid = 0 THEN RETURN 1
  4575. ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  4576. IF ll_cusid = 0 THEN RETURN 1
  4577. lde_enprice = 0
  4578. lde_rebate = 1
  4579. lde_rate = 1
  4580. ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[arg_row]
  4581. ls_status = dw_child.Object.u_outwaremx_status[arg_row]
  4582. ls_pcode = dw_child.Object.u_outwaremx_pcode[arg_row]
  4583. ls_woodcode = dw_child.Object.u_outwaremx_woodcode[arg_row]
  4584. ls_unit = dw_child.Object.u_outwaremx_unit[arg_row]
  4585. lde_usaleqty = dw_child.Object.u_outwaremx_uqty[arg_row]
  4586. //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
  4587. // lde_enprice = 0
  4588. // lde_rebate = 1
  4589. //END IF
  4590. 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
  4591. lde_enprice = 0
  4592. lde_rebate = 1
  4593. END IF
  4594. IF sys_option_price_if_list = 0 AND sys_option_saletask_rebate = 1 THEN
  4595. lde_rebate = 1
  4596. END IF
  4597. dw_child.Object.u_outwaremx_enprice[arg_row] = lde_enprice
  4598. dw_child.Object.u_outwaremx_rebate[arg_row] = lde_rebate
  4599. RETURN rslt
  4600. end function
  4601. public function integer wf_get_mtrlwareid (long arg_row);IF arg_row <= 0 THEN RETURN 1
  4602. IF arg_row > dw_child.RowCount() THEN RETURN 1
  4603. Long rslt = 1
  4604. Long ll_cusid
  4605. Long ll_i,ll_mtrlid, ll_mtrlwareid, ll_storageid,ll_sptid
  4606. String ls_mtrlcode
  4607. String ls_msg
  4608. String ls_status,ls_woodcode,ls_pcode, ls_unit,ls_plancode
  4609. String arg_msg
  4610. Decimal lde_price,lde_zqrate,lde_rate
  4611. dw_child.AcceptText()
  4612. ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  4613. ll_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  4614. ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[arg_row]
  4615. ls_status = dw_child.Object.u_outwaremx_status[arg_row]
  4616. ls_pcode = dw_child.Object.u_outwaremx_pcode[arg_row]
  4617. ls_woodcode = dw_child.Object.u_outwaremx_woodcode[arg_row]
  4618. ls_plancode = dw_child.Object.u_outwaremx_plancode[arg_row]
  4619. ls_unit = dw_child.Object.u_outwaremx_unit[arg_row]
  4620. ll_sptid = dw_child.Object.u_outwaremx_sptid[arg_row]
  4621. Int li_if_cus_mtrlware,li_noallocflag,li_if_plancode
  4622. //客户库存
  4623. SELECT balctype
  4624. INTO :li_if_cus_mtrlware
  4625. FROM u_storage
  4626. Where storageid = :ll_storageid;
  4627. IF sqlca.SQLCode <> 0 THEN
  4628. arg_msg = '查询仓库是否使用客户库存失败'
  4629. rslt = 0
  4630. END IF
  4631. IF li_if_cus_mtrlware = 1 And ll_sptid = 0 THEN
  4632. ll_sptid = ll_cusid
  4633. END IF
  4634. 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
  4635. rslt = 0
  4636. ll_mtrlwareid = 0
  4637. END IF
  4638. dw_child.Object.u_outwaremx_mtrlwareid[arg_row] = ll_mtrlwareid
  4639. RETURN rslt
  4640. end function
  4641. public function integer wf_lock_child ();
  4642. long i
  4643. if dw_edit_mode then
  4644. for i = 1 to fy_column_int
  4645. dw_fymx.SetTabOrder(i, i * 10)
  4646. next
  4647. else
  4648. for i = 1 to fy_column_int
  4649. dw_fymx.SetTabOrder(i, 0)
  4650. next
  4651. end if
  4652. return super::wf_lock_child()
  4653. end function
  4654. public subroutine wf_ue_f7 (s_saletask_ch s_saletask);long rslt = 1
  4655. string arg_msg
  4656. Long ll_storageid
  4657. Long ll_scid
  4658. Long ll_taskid
  4659. String ls_taskcode
  4660. dw_uc.SetRedraw(False)
  4661. dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] = s_saletask.cusid
  4662. dw_uc.Object.u_cust_name[dw_uc.GetRow()] = s_saletask.cusname
  4663. dw_uc.Object.u_cust_cuscode[dw_uc.GetRow()] = s_saletask.cuscode
  4664. dw_uc.Object.u_outware_outrep[dw_uc.GetRow()] = s_saletask.assign_emp
  4665. dw_uc.Object.u_outware_dscrp[dw_uc.GetRow()] = s_saletask.dscrp
  4666. dw_uc.Object.u_outware_dscrp2[dw_uc.GetRow()] = s_saletask.dscrp2
  4667. dw_uc.Object.u_outware_dscrp3[dw_uc.GetRow()] = s_saletask.dscrp3
  4668. dw_uc.Object.u_outware_paytype[dw_uc.GetRow()] = s_saletask.paytype
  4669. dw_uc.Object.u_outware_relint_1[dw_uc.GetRow()] = s_saletask.banktypeid
  4670. dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] = s_saletask.moneyid
  4671. dw_uc.Object.u_outware_mrate[dw_uc.GetRow()] = f_get_mrate(s_saletask.moneyid)
  4672. dw_uc.Object.u_outware_relstr_1[dw_uc.GetRow()] = s_saletask.freight
  4673. dw_uc.Object.u_outware_relstr_2[dw_uc.GetRow()] = s_saletask.freight_tele
  4674. dw_uc.Object.u_outware_relstr_3[dw_uc.GetRow()] = s_saletask.freight_address
  4675. dw_uc.Object.u_outware_deposit[dw_uc.GetRow()] = s_saletask.damt
  4676. dw_uc.Object.u_outware_otheramt[dw_uc.GetRow()] = s_saletask.otheramt
  4677. dw_uc.Object.u_outware_rel_address[dw_uc.GetRow()] = s_saletask.Address
  4678. dw_uc.Object.u_outware_rel_tele[dw_uc.GetRow()] = s_saletask.tele
  4679. dw_uc.Object.u_outware_rel_tele1[dw_uc.GetRow()] = s_saletask.tele1
  4680. dw_uc.Object.u_outware_rel_fax[dw_uc.GetRow()] = s_saletask.fax
  4681. dw_uc.Object.u_outware_rel_rep[dw_uc.GetRow()] = s_saletask.rel_rep
  4682. dw_uc.Object.u_outware_transcode[dw_uc.GetRow()] = s_saletask.transcode
  4683. dw_uc.Object.u_outware_carcode[dw_uc.GetRow()] = s_saletask.carcode
  4684. //dw_uc.Object.u_outware_rel_rep[dw_uc.GetRow()] = s_saletask.rep
  4685. dw_uc.Object.u_outware_part[dw_uc.GetRow()] = s_saletask.relcode
  4686. ll_scid = dw_uc.Object.u_outware_scid[dw_uc.GetRow()]
  4687. ll_taskid = s_saletask.taskid
  4688. ls_taskcode = s_saletask.taskcode
  4689. ll_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  4690. IF s_saletask.lsflag = 1 THEN
  4691. dw_uc.Object.u_outware_dscrp[dw_uc.GetRow()] = s_saletask.dscrp2
  4692. END IF
  4693. //String errmsg = ''
  4694. //wf_autoaddmx(ll_scid,ll_taskid,ls_taskcode,ll_storageid,s_saletask.cusid,s_saletask.if_zeromtrlware,errmsg)
  4695. //引入订单
  4696. //查询合同物料于数组中
  4697. //循环数组
  4698. //查询物料库存总额
  4699. //查询库存批/插入明细记录
  4700. s_saletask_mtrl arg_s_rqmtrlI
  4701. long P_rqmtrl
  4702. IF wf_saletaskmtrltoarr(ll_scid,ll_taskid,arg_s_rqmtrlI,P_rqmtrl,arg_msg) = 0 THEN
  4703. rslt = 0
  4704. GOTO ext
  4705. END IF
  4706. //带出订单明细费用项目dw_cost.Reset()
  4707. IF wf_set_outware_itemmx(ll_scid,ll_taskid) = 0 THEN
  4708. rslt = 0
  4709. GOTO ext
  4710. END IF
  4711. IF wf_set_outwaremx(ll_scid,s_saletask.cusid, ll_storageid, arg_s_rqmtrlI,arg_msg) = 0 THEN
  4712. rslt = 0
  4713. GOTO ext
  4714. END IF
  4715. ext:
  4716. dw_uc.SetRedraw(True)
  4717. dw_uc.SetColumn("u_outware_rel_address")
  4718. return
  4719. end subroutine
  4720. public function integer wf_set_outwaremx_bk (long arg_cusid, long arg_storageid, s_saletask_mtrl arg_mx, string arg_msg);//备份用,以后可删
  4721. //由订单明细结构插入dw_child
  4722. //li_if_cus_mtrlware 0:不使用客户库存 ; 1:使用客户库存;
  4723. //li_noallocflag 0:不使用未开单库存; 1:使用未开单库存;
  4724. //li_if_plancode 0:不使用批号; 1:使用批号;
  4725. //sys_option_outware_ifpublware 0:不使用公共库存; 1:使用公共库存
  4726. Long i, j, rslt = 1
  4727. //Long ll_rowcnt = 0,child_row, count
  4728. //
  4729. //Decimal lde_taskqty_rest, lde_qty_add, lde_uqty_add, lde_noallocqty, lde_mtrlwaresum_qty
  4730. //Long ll_mtrlwareid = 0
  4731. //Decimal i_qty, r_qty
  4732. //String ls_plancode
  4733. //Decimal lde_planprice
  4734. //
  4735. //String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlsectype,ls_zxmtrlmode,ls_mtrlmode
  4736. //
  4737. //
  4738. ////Boolean lb_find = TRUE
  4739. //
  4740. //Int li_if_cus_mtrlware,li_noallocflag,li_if_plancode
  4741. //
  4742. //Long ll_sptid, ll_sptid_mx
  4743. //
  4744. //datastore ds
  4745. //ds = Create datastore
  4746. //ds.DataObject = "ds_outware_sale_taskmx"
  4747. //ds.SetTransObject(sqlca)
  4748. //
  4749. ////客户库存, 未开单库存
  4750. //SELECT balctype, noallocflag, if_plancode
  4751. // INTO :li_if_cus_mtrlware, :li_noallocflag, :li_if_plancode
  4752. // FROM u_storage
  4753. // Where storageid = :arg_storageid;
  4754. //IF sqlca.SQLCode <> 0 THEN
  4755. // arg_msg = '查询仓库是否使用客户库存失败'
  4756. // rslt = 0
  4757. // GOTO ext
  4758. //END IF
  4759. //
  4760. ////li_noallocflag = 0 , 不使用未开单库存, 即只需要找的一条库存,将订单所有数量都挂在此库存id就可以了
  4761. //
  4762. //IF li_if_cus_mtrlware = 1 THEN
  4763. // ll_sptid = arg_cusid
  4764. // ll_sptid_mx = ll_sptid
  4765. //ELSE
  4766. // ll_sptid = -1
  4767. // ll_sptid_mx = 0
  4768. //END IF
  4769. //
  4770. //FOR i = 1 To UpperBound(arg_mx.taskid)
  4771. //// sumqty = 0
  4772. // ls_mtrlcode = ''
  4773. // ls_mtrlname = ''
  4774. //// lb_find = True
  4775. //// allocqty = 0
  4776. // lde_noallocqty = 0
  4777. // i_qty = 0
  4778. // r_qty = 0
  4779. //
  4780. // SELECT u_mtrldef.mtrlcode,
  4781. // u_mtrldef.mtrlname,
  4782. // u_mtrldef.unit,
  4783. // u_mtrldef.mtrlmode,
  4784. // u_mtrldef.mtrlsectype,
  4785. // u_mtrldef.zxmtrlmode
  4786. // INTO :ls_mtrlcode,
  4787. // :ls_mtrlname,
  4788. // :ls_unit,
  4789. // :ls_mtrlmode,
  4790. // :ls_mtrlsectype,
  4791. // :ls_zxmtrlmode
  4792. // FROM u_mtrldef
  4793. // Where u_mtrldef.mtrlid = :arg_mx.mtrlid[i];
  4794. // IF sqlca.SQLCode <> 0 THEN
  4795. // arg_msg = '查询物料资料失败[错误物料唯一码]>'+sqlca.SQLErrText
  4796. // rslt = 0
  4797. // GOTO ext
  4798. // END IF
  4799. //
  4800. // SELECT ISNULL(SUM(u_mtrlware.noallocqty), 0) AS sum_qty
  4801. // INTO :lde_mtrlwaresum_qty
  4802. // FROM u_mtrlware
  4803. // WHERE u_mtrlware.mtrlid = :arg_mx.mtrlid[i]
  4804. // AND u_mtrlware.storageid = :arg_storageid
  4805. // AND u_mtrlware.status = :arg_mx.status[i]
  4806. // AND u_mtrlware.pcode = :arg_mx.pcode[i]
  4807. // AND u_mtrlware.woodcode = :arg_mx.woodcode[i]
  4808. // AND u_mtrlware.scid = :cur_scid
  4809. // AND ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 )
  4810. // And (:li_if_plancode = 0 or plancode = :arg_mx.plancode[i] );
  4811. // IF sqlca.SQLCode = 0 THEN
  4812. //
  4813. // ELSEIF sqlca.SQLCode = 100 THEN
  4814. // lde_mtrlwaresum_qty = -100000
  4815. // ELSE
  4816. // arg_msg = '查询库存量失败>'+sqlca.SQLErrText
  4817. // MessageBox('提示',String(arg_mx.mtrlid[i] )+'颜色:'+arg_mx.status[i]+' '+arg_msg,stopsign!,OK!)
  4818. // rslt = 0
  4819. // GOTO ext
  4820. // END IF
  4821. //
  4822. // //没有库存记录, 且使用未开单库存
  4823. // IF li_noallocflag = 1 And lde_mtrlwaresum_qty = 0 Or lde_mtrlwaresum_qty = -100000 THEN
  4824. // IF dw_child.GetRow() <= 0 THEN
  4825. // child_row = dw_child.InsertRow(0)
  4826. // ELSE
  4827. // IF dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] > 0 THEN
  4828. // child_row = dw_child.InsertRow(0)
  4829. // ELSE
  4830. // child_row = dw_child.GetRow()
  4831. // END IF
  4832. // END IF
  4833. //
  4834. // dw_child.Object.u_outwaremx_ifrel[child_row] = 1
  4835. // dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i]
  4836. // dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i]
  4837. // dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i]
  4838. //
  4839. // dw_child.Object.u_outwaremx_mtrlwareid[child_row] = 0
  4840. // dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i]
  4841. // dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i]
  4842. // dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i]
  4843. // dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i]
  4844. // dw_child.Object.u_outwaremx_saleqty[child_row] = 0
  4845. // dw_child.Object.u_outwaremx_uqty[child_row] = 0
  4846. //
  4847. // dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i]
  4848. // dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  4849. // dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  4850. // dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  4851. // dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i]
  4852. // dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i]
  4853. // dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i]
  4854. // dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i]
  4855. // dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i]
  4856. // dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  4857. // dw_child.Object.u_mtrldef_curware_qty[child_row] = 0
  4858. // dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i]
  4859. // dw_child.Object.u_mtrldef_sumware_qty[child_row] = 0
  4860. // dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  4861. // dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  4862. // dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i]
  4863. // dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i]
  4864. // dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i]
  4865. // dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i]
  4866. // dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i]
  4867. // dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i]
  4868. // GOTO nextmtrl
  4869. // END IF
  4870. //
  4871. // child_row = dw_child.GetRow()
  4872. //
  4873. // //没有库存记录, 且不使用未开单库存
  4874. // IF lde_mtrlwaresum_qty = 0 THEN
  4875. // IF dw_child.GetRow() > 0 THEN
  4876. // IF dw_child.Object.u_outwaremx_mtrlid[child_row] <> 0 THEN
  4877. // child_row = dw_child.InsertRow (0)
  4878. // ELSE
  4879. // child_row = dw_child.GetRow()
  4880. // END IF
  4881. // ELSE
  4882. // child_row = dw_child.InsertRow (0)
  4883. // END IF
  4884. //
  4885. // ll_mtrlwareid = 0
  4886. // ls_plancode = ''
  4887. // lde_noallocqty = 0
  4888. // lde_planprice = 0
  4889. //
  4890. // SELECT top 1
  4891. // u_mtrlware.mtrlwareid,
  4892. // u_mtrlware.plancode,
  4893. // u_mtrlware.noallocqty,
  4894. // u_mtrlware.planprice,
  4895. // u_mtrlware.plancode
  4896. // INTO
  4897. // :ll_mtrlwareid,
  4898. // :ls_plancode,
  4899. // :lde_noallocqty,
  4900. // :lde_planprice,
  4901. // :ls_plancode
  4902. // FROM u_mtrlware
  4903. // WHERE ( u_mtrlware.mtrlid = :arg_mx.mtrlid[i] ) AND
  4904. // ( u_mtrlware.storageid = :arg_storageid ) AND
  4905. // ( u_mtrlware.status = :arg_mx.status[i] ) AND
  4906. // ( u_mtrlware.pcode = :arg_mx.pcode[i] ) AND
  4907. // ( u_mtrlware.woodcode = :arg_mx.woodcode[i] ) AND
  4908. // ( u_mtrlware.scid = :cur_scid ) AND
  4909. // ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 )
  4910. // AND (:li_if_plancode = 0 or plancode = :arg_mx.plancode[i] )
  4911. // Order By u_mtrlware.mtrlwareid Desc ;
  4912. // IF sqlca.SQLCode = -1 THEN
  4913. // arg_msg = '查询库存量失败>'+sqlca.SQLErrText
  4914. // MessageBox('提示',String(arg_mx.mtrlid[i] )+'颜色:'+arg_mx.status[i]+' '+arg_msg,stopsign!,OK!)
  4915. // rslt = 0
  4916. // GOTO ext
  4917. // END IF
  4918. //
  4919. //
  4920. // dw_child.Object.u_outwaremx_ifrel[child_row] = 1
  4921. // dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i]
  4922. // dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i]
  4923. // dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i]
  4924. //
  4925. // dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ll_mtrlwareid
  4926. // dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i]
  4927. //
  4928. // dw_child.Object.u_outwaremx_saleqty[child_row] = arg_mx.qty[i]
  4929. // dw_child.Object.u_outwaremx_uqty[child_row] = arg_mx.qty[i]
  4930. //
  4931. // dw_child.Object.u_outwaremx_storageid[child_row] = arg_storageid
  4932. // dw_child.Object.u_outwaremx_plancode[child_row] = ls_plancode
  4933. // dw_child.Object.u_outwaremx_planprice[child_row] = lde_planprice
  4934. // dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i]
  4935. // dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i]
  4936. // dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i]
  4937. // dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i]
  4938. // dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  4939. // dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  4940. // dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  4941. // dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  4942. // dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i]
  4943. // dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i]
  4944. // dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i]
  4945. // dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i]
  4946. // dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i]
  4947. //
  4948. // dw_child.Object.u_mtrldef_curware_qty[child_row] = 0
  4949. // dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i]
  4950. // dw_child.Object.u_mtrldef_sumware_qty[child_row] = 0
  4951. //
  4952. // dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  4953. // dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  4954. // dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i]
  4955. // dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i]
  4956. // dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i]
  4957. // dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i]
  4958. // dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i]
  4959. // dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i]
  4960. // ELSE
  4961. // DECLARE pf_cur CURSOR FOR
  4962. // SELECT
  4963. // u_mtrlware.mtrlwareid,
  4964. // u_mtrlware.plancode,
  4965. // u_mtrlware.noallocqty,
  4966. // u_mtrlware.planprice,
  4967. // u_mtrlware.plancode
  4968. // FROM u_mtrlware
  4969. // WHERE ( u_mtrlware.mtrlid = :arg_mx.mtrlid[i] ) AND
  4970. // ( u_mtrlware.storageid = :arg_storageid ) AND
  4971. // ( u_mtrlware.status = :arg_mx.status[i] ) AND
  4972. // ( u_mtrlware.pcode = :arg_mx.pcode[i] ) AND
  4973. // ( u_mtrlware.woodcode = :arg_mx.woodcode[i] ) AND
  4974. // ( u_mtrlware.scid = :cur_scid ) AND
  4975. // ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 ) AND
  4976. // ( u_mtrlware.noallocqty > 0)
  4977. // AND (:li_if_plancode = 0 or plancode = :arg_mx.plancode[i] )
  4978. // Order By u_mtrlware.noallocqty Desc ;
  4979. //
  4980. // OPEN pf_cur;
  4981. // count = 1
  4982. // FETCH pf_cur INTO :ll_mtrlwareid,:ls_plancode,&
  4983. // :lde_noallocqty,:lde_planprice,:ls_plancode ;
  4984. // DO WHILE sqlca.SQLCode = 0 And r_qty < arg_mx.qty[i]
  4985. // count++
  4986. // i_qty = lde_noallocqty
  4987. // r_qty = r_qty+i_qty
  4988. // IF r_qty > arg_mx.qty[i] THEN
  4989. // i_qty = lde_noallocqty - ( r_qty - arg_mx.qty[i] )
  4990. // END IF
  4991. //
  4992. // IF dw_child.GetRow() > 0 THEN
  4993. // IF dw_child.Object.u_outwaremx_mtrlid[child_row] <> 0 THEN
  4994. // child_row = dw_child.InsertRow (0)
  4995. // ELSE
  4996. // child_row = dw_child.GetRow()
  4997. // END IF
  4998. // ELSE
  4999. // child_row = dw_child.InsertRow (0)
  5000. // END IF
  5001. //
  5002. // dw_child.Object.u_outwaremx_ifrel[child_row] = 1
  5003. // dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i]
  5004. // dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i]
  5005. // dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i]
  5006. //
  5007. // dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ll_mtrlwareid
  5008. // dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i]
  5009. //
  5010. // IF lde_noallocqty <= arg_mx.qty[i] THEN
  5011. // IF li_noallocflag = 0 THEN
  5012. // dw_child.Object.u_outwaremx_saleqty[child_row] = arg_mx.qty[i]
  5013. // dw_child.Object.u_outwaremx_uqty[child_row] = arg_mx.qty[i]
  5014. // ELSE
  5015. // dw_child.Object.u_outwaremx_saleqty[child_row] = i_qty
  5016. // dw_child.Object.u_outwaremx_uqty[child_row] = i_qty
  5017. // END IF
  5018. // ELSE
  5019. // dw_child.Object.u_outwaremx_saleqty[child_row] = arg_mx.qty[i]
  5020. // dw_child.Object.u_outwaremx_uqty[child_row] = arg_mx.qty[i]
  5021. // END IF
  5022. //
  5023. // dw_child.Object.u_outwaremx_storageid[child_row] = arg_storageid
  5024. // dw_child.Object.u_outwaremx_plancode[child_row] = ls_plancode
  5025. // dw_child.Object.u_outwaremx_planprice[child_row] = lde_planprice
  5026. // dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i]
  5027. // dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i]
  5028. // dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i]
  5029. // dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i]
  5030. // dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  5031. // dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  5032. // dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  5033. // dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  5034. // dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i]
  5035. // dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i]
  5036. // dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i]
  5037. // dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i]
  5038. // dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i]
  5039. //
  5040. // dw_child.Object.u_mtrldef_curware_qty[child_row] = lde_noallocqty
  5041. // dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i]
  5042. // dw_child.Object.u_mtrldef_sumware_qty[child_row] = lde_mtrlwaresum_qty
  5043. //
  5044. // dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  5045. // dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  5046. // dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i]
  5047. // dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i]
  5048. // dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i]
  5049. // dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i]
  5050. // dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i]
  5051. // dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i]
  5052. //
  5053. //
  5054. // FETCH pf_cur INTO :ll_mtrlwareid,:ls_plancode,&
  5055. // :lde_noallocqty,:lde_planprice,:ls_plancode ;
  5056. //
  5057. // LOOP
  5058. // count = count - 1
  5059. // CLOSE pf_cur;
  5060. // END IF
  5061. // nextmtrl:
  5062. //NEXT
  5063. //
  5064. //
  5065. ////FOR i = 1 To UpperBound(arg_mx.taskid)
  5066. //// ls_mtrlcode = ''
  5067. //// ls_mtrlname = ''
  5068. ////
  5069. //// lde_taskqty_rest = arg_mx.qty[i] //库存单位
  5070. //// lde_qty_add = 0
  5071. ////
  5072. //// // lb_find = TRUE
  5073. //// // i_qty = 0
  5074. //// // r_qty = 0
  5075. ////
  5076. ////
  5077. //// //查找物料资料
  5078. //// SELECT u_mtrldef.mtrlcode,
  5079. //// u_mtrldef.mtrlname,
  5080. //// u_mtrldef.mtrlmode,
  5081. //// u_mtrldef.unit,
  5082. //// u_mtrldef.mtrlsectype,
  5083. //// u_mtrldef.zxmtrlmode
  5084. //// INTO :ls_mtrlcode,
  5085. //// :ls_mtrlname,
  5086. //// :ls_mtrlmode,
  5087. //// :ls_unit,
  5088. //// :ls_mtrlsectype,
  5089. //// :ls_zxmtrlmode
  5090. //// FROM u_mtrldef
  5091. //// Where u_mtrldef.mtrlid = :arg_mx.mtrlid[i];
  5092. //// IF sqlca.SQLCode <> 0 THEN
  5093. //// arg_msg = '查询物料资料失败,错误物料ID['+String(arg_mx.mtrlid[i])+'],~r~n'+sqlca.SQLErrText
  5094. //// rslt = 0
  5095. //// GOTO ext
  5096. //// END IF
  5097. ////
  5098. ////
  5099. ////
  5100. ////
  5101. //// ll_rowcnt = ds.Retrieve(cur_scid, arg_storageid, arg_mx.mtrlid[i],&
  5102. //// arg_mx.status[i], arg_mx.woodcode[i], arg_mx.pcode[i],&
  5103. //// ll_sptid, arg_mx.plancode[i])
  5104. ////
  5105. //// FOR j = 1 To ll_rowcnt
  5106. //// ll_mtrlwareid = ds.Object.mtrlwareid[j]
  5107. //// ls_plancode = ds.Object.plancode[j]
  5108. ////
  5109. //// IF li_noallocflag = 0 THEN
  5110. //// //li_noallocflag = 0 , 不使用未开单库存, 即只需要找的一条库存,将订单所有数量都挂在此库存id就可以了
  5111. //// //lde_noallocqty = ds.Object.noallocqty[j]
  5112. //// lde_noallocqty = lde_taskqty_rest
  5113. //// ELSE
  5114. //// lde_noallocqty = ds.Object.noallocqty[j] - ds.Object.noauditingqty[j]
  5115. //// END IF
  5116. //// IF lde_noallocqty <= 0 THEN CONTINUE
  5117. ////
  5118. //// IF lde_taskqty_rest > lde_noallocqty THEN
  5119. //// lde_qty_add = lde_noallocqty
  5120. //// lde_taskqty_rest -= lde_qty_add
  5121. //// ELSE
  5122. //// lde_qty_add = lde_taskqty_rest
  5123. //// lde_taskqty_rest = 0
  5124. //// END IF
  5125. ////
  5126. //// lde_uqty_add = lde_qty_add * arg_mx.rate[i] //销售单位
  5127. ////
  5128. //// IF lde_uqty_add > 0 THEN
  5129. ////
  5130. //// IF dw_child.GetRow() > 0 THEN
  5131. //// IF dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 0 THEN
  5132. //// child_row = dw_child.InsertRow (0)
  5133. //// ELSE
  5134. //// child_row = dw_child.GetRow()
  5135. //// END IF
  5136. //// ELSE
  5137. //// child_row = dw_child.InsertRow (0)
  5138. //// END IF
  5139. ////
  5140. //// dw_child.Object.u_outwaremx_ifrel[child_row] = 1
  5141. //// dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i]
  5142. //// dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i]
  5143. //// dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i]
  5144. ////
  5145. //// dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ll_mtrlwareid
  5146. //// dw_child.Object.u_outwaremx_storageid[child_row] = arg_storageid
  5147. //// dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i]
  5148. //// dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  5149. //// dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  5150. //// dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  5151. //// dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  5152. //// dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i]
  5153. //// dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i]
  5154. //// dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i]
  5155. //// dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  5156. //// dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  5157. ////
  5158. //// dw_child.Object.u_outwaremx_plancode[child_row] = ls_plancode
  5159. //// dw_child.Object.u_outwaremx_sptid[child_row] = ll_sptid_mx
  5160. ////
  5161. //// dw_child.Object.u_outwaremx_planprice[child_row] = lde_planprice
  5162. ////
  5163. ////
  5164. //// dw_child.Object.u_outwaremx_saleqty[child_row] = lde_uqty_add
  5165. //// dw_child.Object.u_outwaremx_uqty[child_row] = lde_uqty_add
  5166. //// dw_child.Object.u_outwaremx_qty[child_row] = lde_qty_add
  5167. //// dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i]
  5168. //// dw_child.Object.u_outwaremx_packqty[child_row] = arg_mx.packqty[i]
  5169. ////
  5170. //// dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i]
  5171. //// dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i]
  5172. ////
  5173. //// dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i]
  5174. //// dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i]
  5175. //// dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i]
  5176. //// dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i]
  5177. //// dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i]
  5178. ////
  5179. //// dw_child.Object.u_mtrldef_curware_qty[child_row] = lde_noallocqty
  5180. //// dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i]
  5181. //// dw_child.Object.u_mtrldef_sumware_qty[child_row] = lde_noallocqty
  5182. //// dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i]
  5183. //// dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i]
  5184. //// dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i]
  5185. //// dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i]
  5186. //// END IF
  5187. //// //IF li_noallocflag = 0 THEN EXIT //不使用为开单库存,显示总出仓数,所以只取一条记录,否则重复数量 //????????
  5188. //// IF lde_taskqty_rest = 0 THEN EXIT
  5189. //// NEXT
  5190. ////
  5191. ////
  5192. //// IF lde_taskqty_rest > 0 THEN
  5193. //// ll_mtrlwareid = 0
  5194. //// ls_plancode = ''
  5195. //// lde_noallocqty = 0
  5196. //// lde_qty_add = lde_taskqty_rest
  5197. //// lde_uqty_add = lde_qty_add * arg_mx.rate[i] //销售单位
  5198. ////
  5199. //// // SELECT top 1
  5200. //// // u_mtrlware.mtrlwareid,
  5201. //// // u_mtrlware.plancode,
  5202. //// // u_mtrlware.noallocqty,
  5203. //// // u_mtrlware.planprice
  5204. //// // INTO
  5205. //// // :ll_mtrlwareid,
  5206. //// // :ls_plancode,
  5207. //// // :lde_noallocqty,
  5208. //// // :lde_planprice
  5209. //// // FROM u_mtrlware
  5210. //// // WHERE ( u_mtrlware.mtrlid = :arg_mx.mtrlid[i] ) AND
  5211. //// // ( u_mtrlware.storageid = :arg_storageid ) AND
  5212. //// // ( u_mtrlware.status = :arg_mx.status[i] ) AND
  5213. //// // ( u_mtrlware.pcode = :arg_mx.pcode[i] ) AND
  5214. //// // ( u_mtrlware.woodcode = :arg_mx.woodcode[i] ) AND
  5215. //// // ( u_mtrlware.scid = :cur_scid ) AND
  5216. //// // ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 )
  5217. //// // And (plancode = :arg_mx.plancode[i] Or :arg_mx.plancode[i] = '')
  5218. //// // Order By u_mtrlware.mtrlwareid Desc ;
  5219. //// // IF sqlca.SQLCode = -1 THEN
  5220. //// // arg_msg = '查询库存信息失败>'+sqlca.SQLErrText
  5221. //// // MessageBox('错误',String(arg_mx.mtrlid[i] )+'颜色:'+arg_mx.status[i]+' '+arg_msg,information!,OK!)
  5222. //// // rslt = 0
  5223. //// // GOTO ext
  5224. //// // END IF
  5225. ////
  5226. //// IF dw_child.GetRow() > 0 THEN
  5227. //// IF dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 0 THEN
  5228. //// child_row = dw_child.InsertRow (0)
  5229. //// ELSE
  5230. //// child_row = dw_child.GetRow()
  5231. //// END IF
  5232. //// ELSE
  5233. //// child_row = dw_child.InsertRow (0)
  5234. //// END IF
  5235. ////
  5236. //// dw_child.Object.u_outwaremx_ifrel[child_row] = 1
  5237. //// dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i]
  5238. //// dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i]
  5239. //// dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i]
  5240. ////
  5241. //// dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ll_mtrlwareid
  5242. //// dw_child.Object.u_outwaremx_storageid[child_row] = arg_storageid
  5243. //// dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i]
  5244. //// dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  5245. //// dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  5246. //// dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  5247. //// dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  5248. //// dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i]
  5249. //// dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i]
  5250. //// dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i]
  5251. //// dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  5252. //// dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  5253. ////
  5254. //// dw_child.Object.u_outwaremx_plancode[child_row] = ls_plancode
  5255. //// dw_child.Object.u_outwaremx_sptid[child_row] = ll_sptid_mx
  5256. ////
  5257. //// dw_child.Object.u_outwaremx_planprice[child_row] = lde_planprice
  5258. ////
  5259. ////
  5260. //// dw_child.Object.u_outwaremx_saleqty[child_row] = lde_uqty_add
  5261. //// dw_child.Object.u_outwaremx_uqty[child_row] = lde_uqty_add
  5262. //// dw_child.Object.u_outwaremx_qty[child_row] = lde_qty_add
  5263. //// dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i]
  5264. ////
  5265. //// dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i]
  5266. //// dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i]
  5267. ////
  5268. //// dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i]
  5269. //// dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i]
  5270. //// dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i]
  5271. //// dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i]
  5272. //// dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i]
  5273. ////
  5274. //// dw_child.Object.u_mtrldef_curware_qty[child_row] = lde_noallocqty
  5275. //// dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i]
  5276. //// dw_child.Object.u_mtrldef_sumware_qty[child_row] = lde_noallocqty
  5277. //// dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i]
  5278. //// dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i]
  5279. //// dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i]
  5280. //// dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i]
  5281. //// END IF
  5282. ////
  5283. ////NEXT
  5284. ////
  5285. //
  5286. //ext:
  5287. RETURN rslt
  5288. end function
  5289. 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
  5290. //li_noallocflag 0:不使用未开单库存; 1:使用未开单库存;
  5291. //li_if_cus_mtrlware 0:不使用客户库存 ; 1:使用客户库存;
  5292. //sys_option_outware_ifpublware 0:不使用公共库存; 1:使用公共库存
  5293. //li_if_plancode 0:不使用批号; 1:使用批号;
  5294. //如果1.库存使用未开单库存, 按总库存数安排;即发货总数=Min(库存总数,总未完成数);
  5295. //如果1.库存不使用未开单库存,按总未完成数安排,即发货总数=总未完成数;多出库存部分安排在最后一条库存;
  5296. //如果1.订单不使用批号;2.库存使用批号,且使用客户库存; 按生产进仓单找对应订单的进仓记录先安排,再按其他订单,该客户库存安排;
  5297. Long i, j, rslt = 1
  5298. Long ll_rowcnt = 0,child_row, count, ll_addmxcnt
  5299. Decimal lde_taskqty_rest, lde_qty_add, lde_uqty_add, lde_noallocqty, lde_noallocqty_sum
  5300. Long ll_mtrlwareid = 0
  5301. String ls_plancode
  5302. Decimal lde_planprice
  5303. String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlsectype,ls_zxmtrlmode,ls_mtrlmode,ls_mtrltype,ls_mtrlengname,ls_barcode
  5304. Boolean lb_find = False
  5305. Int li_if_cus_mtrlware,li_noallocflag,li_if_plancode
  5306. Long ll_sptid, ll_sptid_mx
  5307. String ls_msg
  5308. s_cmpl_qty arg_cmpl,null_cmpl
  5309. Decimal ld_qty,ld_LMsaleprice
  5310. Int li_mtrlid,li_cusid
  5311. dec ld_cusprice
  5312. string ls_cusmtrlcode,ls_cusmtrlname,ls_cusmtrlmode
  5313. //客户库存, 未开单库存
  5314. Select balctype, noallocflag, if_plancode
  5315. Into :li_if_cus_mtrlware, :li_noallocflag, :li_if_plancode
  5316. From u_storage
  5317. Where storageid = :arg_storageid;
  5318. If sqlca.SQLCode <> 0 Then
  5319. arg_msg = '查询仓库是否使用客户库存失败'
  5320. rslt = 0
  5321. Goto ext
  5322. End If
  5323. //li_noallocflag = 0 , 不使用未开单库存, 即只需要找的一条库存,将订单所有数量都挂在此库存id就可以了
  5324. //sys_option_outware_if_di = 0 //销售发货单仓审自动组装 084 Or (li_noallocflag = 1 And sys_option_outware_if_di = 1)
  5325. If li_if_cus_mtrlware = 1 Then
  5326. ll_sptid = arg_cusid
  5327. ll_sptid_mx = ll_sptid
  5328. Else
  5329. ll_sptid = -1
  5330. ll_sptid_mx = 0
  5331. End If
  5332. For i = 1 To UpperBound(arg_mx.taskid)
  5333. If arg_mx.taskid[i] = 0 Then Continue
  5334. lde_noallocqty = 0
  5335. li_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]//客户物料名称
  5336. Select isnull(cusmtrlcode,''), isnull(cusmtrlname,''), isnull(cusmtrlmode,'')
  5337. Into :ls_cusmtrlcode, :ls_cusmtrlname, :ls_cusmtrlmode
  5338. From u_cusmtrlname
  5339. Where mtrlid= :arg_mx.mtrlid[i] and cusid= :li_cusid ;
  5340. Select u_mtrldef.mtrlcode,
  5341. u_mtrldef.mtrlname,
  5342. u_mtrldef.unit,
  5343. u_mtrldef.mtrlmode,
  5344. u_mtrldef.mtrlsectype,
  5345. u_mtrldef.zxmtrlmode,
  5346. u_mtrldef.mtrltype,
  5347. u_mtrldef.LMsaleprice,
  5348. u_mtrldef.mtrlengname,
  5349. u_mtrldef.barcode
  5350. Into :ls_mtrlcode,
  5351. :ls_mtrlname,
  5352. :ls_unit,
  5353. :ls_mtrlmode,
  5354. :ls_mtrlsectype,
  5355. :ls_zxmtrlmode,
  5356. :ls_mtrltype,
  5357. :ld_LMsaleprice,
  5358. :ls_mtrlengname,
  5359. :ls_barcode
  5360. From u_mtrldef
  5361. Where u_mtrldef.mtrlid = :arg_mx.mtrlid[i];
  5362. If sqlca.SQLCode <> 0 Then
  5363. arg_msg = '查询物料:'+String(arg_mx.mtrlid[i] )+'资料失败,'+sqlca.SQLErrText
  5364. rslt = 0
  5365. Goto ext
  5366. End If
  5367. Select SUM(u_mtrlware.noallocqty)
  5368. Into :lde_noallocqty_sum
  5369. From u_mtrlware
  5370. Where u_mtrlware.mtrlid = :arg_mx.mtrlid[i]
  5371. And u_mtrlware.storageid = :arg_storageid
  5372. And u_mtrlware.status = :arg_mx.status[i]
  5373. And u_mtrlware.pcode = :arg_mx.pcode[i]
  5374. And u_mtrlware.woodcode = :arg_mx.woodcode[i]
  5375. And u_mtrlware.scid = :arg_scid
  5376. And ( u_mtrlware.sptid = :ll_sptid Or :ll_sptid = -1 Or (:sys_option_outware_ifpublware = 1 And u_mtrlware.sptid = 0) )
  5377. And (:li_if_plancode = 0 Or plancode = :arg_mx.plancode[i] );
  5378. If sqlca.SQLCode <> 0 Then
  5379. lde_noallocqty_sum = 0
  5380. End If
  5381. If IsNull(lde_noallocqty_sum) Then lde_noallocqty_sum = 0
  5382. //没有库存记录 或者 不考虑未开单库存?
  5383. If lde_noallocqty_sum = 0 Then
  5384. ll_mtrlwareid = 0
  5385. ls_plancode = ''
  5386. lde_noallocqty = 0
  5387. lde_planprice = 0
  5388. If dw_child.GetRow() > 0 Then
  5389. If dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 0 Then
  5390. child_row = dw_child.InsertRow (0)
  5391. Else
  5392. child_row = dw_child.GetRow()
  5393. End If
  5394. Else
  5395. child_row = dw_child.InsertRow (0)
  5396. End If
  5397. If li_noallocflag = 1 Then //没有库存记录, 且使用未开单库存
  5398. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = 0
  5399. dw_child.Object.u_outwaremx_saleqty[child_row] = 0
  5400. dw_child.Object.u_outwaremx_uqty[child_row] = 0
  5401. dw_child.Object.u_outwaremx_qty[child_row] = 0
  5402. Else //没有库存记录, 且不使用未开单库存, 取 top 1
  5403. //
  5404. // SELECT top 1 mtrlwareid, plancode, noallocqty, planprice
  5405. // INTO :ll_mtrlwareid, :ls_plancode, :lde_noallocqty, :lde_planprice
  5406. // FROM u_mtrlware
  5407. // WHERE ( mtrlid = :arg_mx.mtrlid[i] )
  5408. // AND ( storageid = :arg_storageid )
  5409. // AND ( status = :arg_mx.status[i] )
  5410. // AND ( pcode = :arg_mx.pcode[i] )
  5411. // AND ( woodcode = :arg_mx.woodcode[i] )
  5412. // AND ( scid = :arg_scid )
  5413. // AND ( sptid = :ll_sptid OR :ll_sptid = -1 )
  5414. // AND (:li_if_plancode = 0 OR plancode = :arg_mx.plancode[i] OR (:sys_option_outware_ifpublware = 1 AND u_mtrlware.sptid = 0) )
  5415. // Order By CASE when u_mtrlware.sptid = :ll_sptid THEN 1 ELSE 0 END Desc,mtrlwareid Desc ;
  5416. // IF sqlca.SQLCode = -1 THEN
  5417. // arg_msg = '查询物料:'+String(arg_mx.mtrlid[i] )+'库存信息失败,'+sqlca.SQLErrText
  5418. // rslt = 0
  5419. // GOTO ext
  5420. // END IF
  5421. Select top 1 mtrlwareid, plancode, noallocqty, planprice
  5422. Into :ll_mtrlwareid, :ls_plancode, :lde_noallocqty, :lde_planprice
  5423. From u_mtrlware
  5424. Where ( mtrlid = :arg_mx.mtrlid[i] )
  5425. And ( storageid = :arg_storageid )
  5426. And ( status = :arg_mx.status[i] )
  5427. And ( pcode = :arg_mx.pcode[i] )
  5428. And ( woodcode = :arg_mx.woodcode[i] )
  5429. And ( scid = :arg_scid )
  5430. And ( sptid = :ll_sptid Or :ll_sptid = -1 )
  5431. And (:li_if_plancode = 0 Or plancode = :arg_mx.plancode[i] )
  5432. And (:sys_option_outware_ifpublware = 1 And u_mtrlware.sptid = 0)
  5433. Order By Case when u_mtrlware.sptid = :ll_sptid Then 1 Else 0 End Desc,mtrlwareid Desc ;
  5434. If sqlca.SQLCode = -1 Then
  5435. arg_msg = '查询物料:'+String(arg_mx.mtrlid[i] )+'库存信息失败,'+sqlca.SQLErrText
  5436. rslt = 0
  5437. Goto ext
  5438. End If
  5439. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ll_mtrlwareid
  5440. dw_child.Object.u_outwaremx_saleqty[child_row] = arg_mx.qty[i]
  5441. dw_child.Object.u_outwaremx_uqty[child_row] = arg_mx.qty[i]
  5442. dw_child.Object.u_outwaremx_qty[child_row] = arg_mx.qty[i] * arg_mx.rate[i]
  5443. End If
  5444. dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i]
  5445. dw_child.Object.u_outwaremx_packqty[child_row] = arg_mx.packqty[i]
  5446. dw_child.Object.u_outwaremx_ifrel[child_row] = 1
  5447. dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i]
  5448. dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i]
  5449. dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i]
  5450. dw_child.Object.u_outwaremx_storageid[child_row] = arg_storageid
  5451. dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i]
  5452. dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  5453. dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  5454. dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  5455. dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  5456. dw_child.Object.u_mtrldef_mtrltype[child_row] = ls_mtrltype
  5457. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  5458. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  5459. dw_child.Object.u_mtrldef_lmsaleprice[child_row] = ld_LMsaleprice
  5460. dw_child.Object.u_mtrldef_mtrlengname[child_row] = ls_mtrlengname
  5461. dw_child.Object.u_mtrldef_barcode[child_row] = ls_barcode
  5462. dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i]
  5463. dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i]
  5464. dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i]
  5465. dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i]
  5466. dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i]
  5467. dw_child.Object.u_outwaremx_plancode[child_row] = arg_mx.plancode[i] // ls_plancode
  5468. dw_child.Object.u_outwaremx_planprice[child_row] = lde_planprice
  5469. dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i]
  5470. dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i]
  5471. dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i]
  5472. dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i]
  5473. dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i]
  5474. dw_child.Object.u_outwaremx_mxdscrp3[child_row] = arg_mx.mxdscrp3[i]
  5475. dw_child.Object.u_outwaremx_mxdscrp4[child_row] = arg_mx.mxdscrp4[i]
  5476. dw_child.Object.u_mtrldef_curware_qty[child_row] = 0
  5477. dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i] * arg_mx.rate[i]
  5478. dw_child.Object.u_mtrldef_sumware_qty[child_row] = 0
  5479. dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i]
  5480. dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i]
  5481. dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i]
  5482. dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i]
  5483. dw_child.Object.u_outwaremx_net_weight[child_row] = arg_mx.net_weight[i]
  5484. dw_child.Object.u_outwaremx_gross_weight[child_row] = arg_mx.gross_weight[i]
  5485. dw_child.Object.u_outwaremx_cubage[child_row] = arg_mx.cubage[i]
  5486. dw_child.Object.u_outwaremx_tax[child_row] = arg_mx.tax[i]
  5487. dw_child.Object.u_outwaremx_priceformula[child_row] = arg_mx.priceformula[i]
  5488. dw_child.Object.u_cusmtrlname_cusmtrlname[child_row] = ls_cusmtrlname
  5489. dw_child.Object.u_cusmtrlname_cusmtrlcode[child_row] = ls_cusmtrlname
  5490. dw_child.Object.u_cusmtrlname_cusmtrlmode[child_row] =ls_cusmtrlname
  5491. dw_child.Object.u_outwaremx_otherprice[child_row] = arg_mx.otherprice[i]
  5492. //dw_
  5493. //计算单价
  5494. If arg_mx.priceformula[i] <> '' and dw_child.Object.u_outwaremx_ifrel[child_row] = 0 Then
  5495. arg_cmpl = null_cmpl
  5496. arg_cmpl.qty = dw_child.Object.u_outwaremx_enprice[child_row]
  5497. arg_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[child_row]
  5498. arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row]
  5499. arg_cmpl.price = dw_child.Object.u_outwaremx_enprice[child_row]
  5500. arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row]
  5501. arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row]
  5502. arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row]
  5503. arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row]
  5504. arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row]
  5505. arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row]
  5506. li_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row]
  5507. li_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  5508. Select price
  5509. Into :ld_cusprice
  5510. From u_cust
  5511. Inner JOIN u_sale_price_mx ON u_sale_price_mx.Pricelistid = u_cust.Pricelistid
  5512. Where u_sale_price_mx.mtrlid = :li_mtrlid
  5513. And u_cust.cusid = :li_cusid;
  5514. If sqlca.SQLCode <> 0 Then
  5515. ld_cusprice = 0
  5516. End If
  5517. arg_cmpl.cusprice = ld_cusprice
  5518. arg_cmpl.num = 2
  5519. arg_cmpl.addvalue = 1
  5520. arg_cmpl.flag = True
  5521. ld_qty = 0
  5522. If f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 Then
  5523. arg_msg = arg_msg + "~r~n" + ls_msg
  5524. rslt = 0
  5525. Goto ext
  5526. End If
  5527. dw_child.Object.u_outwaremx_enprice[child_row] = ld_qty
  5528. End If
  5529. Else //IF lde_noallocqty_sum = 0 THEN 有库存数
  5530. lde_taskqty_rest = arg_mx.qty[i] * arg_mx.rate[i]
  5531. Declare pf_cur Cursor For
  5532. Select
  5533. u_mtrlware.mtrlwareid,
  5534. u_mtrlware.plancode,
  5535. u_mtrlware.noallocqty,
  5536. u_mtrlware.planprice
  5537. From u_mtrlware
  5538. Where ( u_mtrlware.mtrlid = :arg_mx.mtrlid[i] ) And
  5539. ( u_mtrlware.scid = :arg_scid ) And
  5540. ( u_mtrlware.storageid = :arg_storageid ) And
  5541. ( u_mtrlware.status = :arg_mx.status[i] ) And
  5542. ( u_mtrlware.pcode = :arg_mx.pcode[i] ) And
  5543. ( u_mtrlware.woodcode = :arg_mx.woodcode[i] ) And
  5544. ( u_mtrlware.sptid = :ll_sptid Or :ll_sptid = -1 Or (:sys_option_outware_ifpublware = 1 And u_mtrlware.sptid = 0) ) And
  5545. ( u_mtrlware.noallocqty > 0)
  5546. And (:li_if_plancode = 0 Or plancode = :arg_mx.plancode[i] )
  5547. Order By Case when u_mtrlware.sptid = :ll_sptid Then 1 Else 0 End Desc, u_mtrlware.noallocqty Desc ;
  5548. Open pf_cur;
  5549. count = 1
  5550. Fetch pf_cur Into :ll_mtrlwareid,:ls_plancode, :lde_noallocqty,:lde_planprice ;
  5551. Do While sqlca.SQLCode = 0
  5552. count++
  5553. If lde_taskqty_rest <= lde_noallocqty Then
  5554. lde_qty_add = lde_taskqty_rest
  5555. Else
  5556. lde_qty_add = lde_noallocqty
  5557. End If
  5558. lde_taskqty_rest -= lde_qty_add
  5559. lde_uqty_add = lde_qty_add / arg_mx.rate[i]
  5560. If dw_child.GetRow() > 0 Then
  5561. If dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 0 Then
  5562. child_row = dw_child.InsertRow (0)
  5563. Else
  5564. child_row = dw_child.GetRow()
  5565. End If
  5566. Else
  5567. child_row = dw_child.InsertRow (0)
  5568. End If
  5569. dw_child.Object.u_outwaremx_ifrel[child_row] = 1
  5570. dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i]
  5571. dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i]
  5572. dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i]
  5573. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ll_mtrlwareid
  5574. dw_child.Object.u_outwaremx_storageid[child_row] = arg_storageid
  5575. dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i]
  5576. dw_child.Object.u_outwaremx_saleqty[child_row] = lde_uqty_add
  5577. dw_child.Object.u_outwaremx_uqty[child_row] = lde_uqty_add
  5578. dw_child.Object.u_outwaremx_qty[child_row] = lde_qty_add
  5579. dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i]
  5580. dw_child.Object.u_outwaremx_plancode[child_row] = ls_plancode
  5581. dw_child.Object.u_outwaremx_planprice[child_row] = lde_planprice
  5582. dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i]
  5583. dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i]
  5584. dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i]
  5585. dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i]
  5586. dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i]
  5587. dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  5588. dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  5589. dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  5590. dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  5591. dw_child.Object.u_mtrldef_mtrltype[child_row] = ls_mtrltype
  5592. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  5593. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  5594. dw_child.Object.u_mtrldef_lmsaleprice[child_row] = ld_LMsaleprice
  5595. dw_child.Object.u_mtrldef_mtrlengname[child_row] = ls_mtrlengname
  5596. dw_child.Object.u_mtrldef_barcode[child_row] = ls_barcode
  5597. dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i]
  5598. dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i]
  5599. dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i]
  5600. dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i]
  5601. dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i]
  5602. dw_child.Object.u_outwaremx_mxdscrp3[child_row] = arg_mx.mxdscrp3[i] //新加
  5603. dw_child.Object.u_outwaremx_mxdscrp4[child_row] = arg_mx.mxdscrp4[i] //新加
  5604. dw_child.Object.u_mtrldef_curware_qty[child_row] = lde_noallocqty
  5605. dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i] * arg_mx.rate[i]
  5606. dw_child.Object.u_mtrldef_sumware_qty[child_row] = lde_noallocqty_sum
  5607. dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i]
  5608. dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i]
  5609. dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i]
  5610. dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i]
  5611. dw_child.Object.u_outwaremx_net_weight[child_row] = arg_mx.net_weight[i]
  5612. dw_child.Object.u_outwaremx_gross_weight[child_row] = arg_mx.gross_weight[i]
  5613. dw_child.Object.u_outwaremx_cubage[child_row] = arg_mx.cubage[i]
  5614. dw_child.Object.u_outwaremx_tax[child_row] = arg_mx.tax[i]
  5615. dw_child.Object.u_outwaremx_priceformula[child_row] = arg_mx.priceformula[i]
  5616. dw_child.Object.u_outwaremx_packqty[child_row] = arg_mx.packqty[i]
  5617. dw_child.Object.u_cusmtrlname_cusmtrlname[child_row] = ls_cusmtrlname
  5618. dw_child.Object.u_cusmtrlname_cusmtrlcode[child_row] = ls_cusmtrlname
  5619. dw_child.Object.u_cusmtrlname_cusmtrlmode[child_row] =ls_cusmtrlname
  5620. dw_child.Object.u_outwaremx_otherprice[child_row] = arg_mx.otherprice[i]
  5621. //计算单价
  5622. If arg_mx.priceformula[i] <> '' and dw_child.Object.u_outwaremx_ifrel[child_row] = 0 Then
  5623. arg_cmpl = null_cmpl
  5624. arg_cmpl.qty = dw_child.Object.u_outwaremx_enprice[child_row]
  5625. arg_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[child_row]
  5626. arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row]
  5627. arg_cmpl.price = dw_child.Object.u_outwaremx_enprice[child_row]
  5628. arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row]
  5629. arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row]
  5630. arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row]
  5631. arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row]
  5632. arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row]
  5633. arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row]
  5634. li_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row]
  5635. li_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  5636. Select price
  5637. Into :ld_cusprice
  5638. From u_cust
  5639. Inner JOIN u_sale_price_mx ON u_sale_price_mx.Pricelistid = u_cust.Pricelistid
  5640. Where u_sale_price_mx.mtrlid = :li_mtrlid
  5641. And u_cust.cusid = :li_cusid;
  5642. If sqlca.SQLCode <> 0 Then
  5643. ld_cusprice = 0
  5644. End If
  5645. arg_cmpl.cusprice = ld_cusprice
  5646. arg_cmpl.num = sys_option_outware_price_amt_round
  5647. arg_cmpl.addvalue = 1
  5648. arg_cmpl.flag = True
  5649. ld_qty = 0
  5650. If f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 Then
  5651. arg_msg = arg_msg + "~r~n" + ls_msg
  5652. rslt = 0
  5653. Goto ext
  5654. End If
  5655. dw_child.Object.u_outwaremx_enprice[child_row] = ld_qty
  5656. End If
  5657. If lde_taskqty_rest <= 0 Then Exit //跳出循环
  5658. Fetch pf_cur Into :ll_mtrlwareid,:ls_plancode, :lde_noallocqty,:lde_planprice ;
  5659. Loop
  5660. count = count - 1
  5661. Close pf_cur;
  5662. If lde_taskqty_rest > 0 Then //如果还有未分配的数
  5663. If li_noallocflag = 0 Then //不使用未开单库存, 将剩余数安排在最后一条记录
  5664. If count > 0 And child_row > 0 Then
  5665. lde_qty_add = lde_taskqty_rest
  5666. lde_taskqty_rest -= lde_qty_add
  5667. lde_uqty_add = lde_qty_add / arg_mx.rate[i]
  5668. dw_child.Object.u_outwaremx_saleqty[child_row] = dw_child.Object.u_outwaremx_saleqty[child_row] + lde_uqty_add
  5669. dw_child.Object.u_outwaremx_uqty[child_row] = dw_child.Object.u_outwaremx_uqty[child_row] + lde_uqty_add
  5670. dw_child.Object.u_outwaremx_qty[child_row] = dw_child.Object.u_outwaremx_qty[child_row] + lde_qty_add
  5671. End If
  5672. End If
  5673. End If
  5674. End If
  5675. Next
  5676. //计算明细库存数和不足数
  5677. This.TriggerEvent('ue_mx_cmplnoallocqty')
  5678. ext:
  5679. Return rslt
  5680. end function
  5681. public function integer wf_set_outware_itemmx (integer arg_scid, long arg_taskid);
  5682. Long i, j, rslt = 1
  5683. Long ll_rowcnt = 0,child_row, count, ll_addmxcnt,ll_itemid
  5684. String ls_itemcode,ls_itemname,ls_itemtype
  5685. dw_fymx.Reset()
  5686. datastore dw_itemmx
  5687. dw_itemmx = Create datastore
  5688. dw_itemmx.DataObject = 'dw_saletask_itemmx_edit_1'
  5689. dw_itemmx.SetTransObject(sqlca)
  5690. dw_itemmx.Retrieve(arg_scid,arg_taskid)
  5691. FOR i = 1 To dw_itemmx.RowCount()
  5692. child_row = dw_fymx.InsertRow (0)
  5693. dw_fymx.Object.u_outware_itemmx_scid[child_row] = dw_itemmx.Object.u_saletask_itemmx_scid[i]
  5694. dw_fymx.Object.u_outware_itemmx_itemid[child_row] = dw_itemmx.Object.u_saletask_itemmx_itemid[i]
  5695. 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])
  5696. dw_fymx.Object.u_outware_itemmx_mxdscrp[child_row] = dw_itemmx.Object.u_saletask_itemmx_mxdscrp[i]
  5697. dw_fymx.Object.u_outware_itemmx_saletaskid[child_row] = dw_itemmx.Object.u_saletask_itemmx_saletaskid[i]
  5698. dw_fymx.Object.u_outware_itemmx_saletaskprintid[child_row] = dw_itemmx.Object.u_saletask_itemmx_printid[i]
  5699. dw_fymx.Object.u_outware_itemmx_itype[child_row] = dw_itemmx.Object.u_saletask_itemmx_itype[i]
  5700. dw_fymx.Object.u_outware_itemmx_printid[child_row] = i
  5701. NEXT
  5702. dw_fymx.AcceptText()
  5703. FOR i = 1 To dw_fymx.RowCount()
  5704. ll_itemid = dw_fymx.Object.u_outware_itemmx_itemid[i]
  5705. SELECT Top 1 itemcode,itemname,itemtype Into :ls_itemcode,:ls_itemname,:ls_itemtype From u_itemdef Where u_itemdef.itemid = :ll_itemid;
  5706. dw_fymx.Object.u_itemdef_itemcode[i] = ls_itemcode
  5707. dw_fymx.Object.u_itemdef_itemname[i] = ls_itemname
  5708. dw_fymx.Object.u_itemdef_itemtype[i] = ls_itemtype
  5709. NEXT
  5710. Destroy dw_itemmx
  5711. RETURN rslt
  5712. end function
  5713. public function integer wf_change_cusid (long arg_cusid);Long rslt = 1,ll_row,i
  5714. Long ll_mtrlcus,ll_scid = 0,ll_outwareid = 0,ll_mtrlwareid = 0
  5715. Boolean for_buytask = False //是否按订单
  5716. s_mtrlware_noalloc_array INS_RT_STRU
  5717. s_mtrldef_array S_INSCUST2
  5718. ll_row = dw_uc.GetRow()
  5719. ll_scid = dw_pageretr.Object.u_outware_scid[dw_pageretr.GetRow()]
  5720. ll_outwareid = dw_pageretr.Object.u_outware_outwareid[dw_pageretr.GetRow()]
  5721. IF ll_row <= 0 THEN RETURN rslt
  5722. IF dw_uc.Object.u_outware_cusid[ll_row] > 0 And dw_uc.Object.u_outware_cusid[ll_row] <> arg_cusid THEN
  5723. FOR i = 1 To dw_child.RowCount()
  5724. IF dw_child.Object.u_outwaremx_relid[i] <> 0 THEN
  5725. for_buytask = True
  5726. EXIT
  5727. END IF
  5728. NEXT
  5729. FOR i = 1 To dw_child.RowCount()
  5730. ll_mtrlwareid = dw_child.Object.u_outwaremx_mtrlwareid[i]
  5731. SELECT top 1 u_mtrlware.sptid INTO :ll_mtrlcus FROM u_outwaremx
  5732. INNER join u_mtrlware on u_outwaremx.scid = u_mtrlware.scid AND
  5733. u_outwaremx.mtrlwareid = u_mtrlware.mtrlwareid WHERE u_outwaremx.scid = :ll_scid AND
  5734. u_outwaremx.outwareid = :ll_outwareid And u_outwaremx.mtrlwareid = :ll_mtrlwareid ;
  5735. IF ll_mtrlcus <> 0 THEN
  5736. for_buytask = True
  5737. EXIT
  5738. END IF
  5739. NEXT
  5740. IF for_buytask = True THEN //按订单
  5741. IF MessageBox('询问','由于发货单按订单收货 或者 使用客户库存,更换客户会删除全部明细,是否继续?',question!,yesno!) = 2 THEN
  5742. rslt = 0
  5743. RETURN rslt
  5744. END IF
  5745. dw_child.Reset()
  5746. This.TriggerEvent("insert_childrow")
  5747. ELSE //不按订单
  5748. IF sys_option_hide_ware = 0 THEN //如果隐藏仓库的,直接选物料
  5749. wf_cusprice_mtrlware(INS_RT_STRU)
  5750. wf_cusprice_in(INS_RT_STRU)
  5751. ELSE
  5752. wf_cusprice_mtrl(S_INSCUST2)
  5753. wf_cusprice_in(S_INSCUST2)
  5754. END IF
  5755. END IF
  5756. END IF
  5757. RETURN rslt
  5758. end function
  5759. public function integer wf_get_cusid (ref long arg_cusid);Long ll_cusid
  5760. ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  5761. IF IsNull(ll_cusid) Or ll_cusid = 0 THEN
  5762. This.TriggerEvent("ue_f9")
  5763. ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  5764. IF IsNull(ll_cusid) Or ll_cusid = 0 THEN
  5765. MessageBox('提示','请先选择客户',information!,OK!)
  5766. RETURN 0
  5767. END IF
  5768. END IF
  5769. arg_cusid = ll_cusid
  5770. RETURN 1
  5771. end function
  5772. public subroutine wf_cusprice_mtrlware (ref s_mtrlware_noalloc_array ins_rt_stru);datastore dw_mtrlwaremx
  5773. Long i,ls_i,chC,ll_mtrlwareid[]
  5774. //s_mtrlware_noalloc_array INS_RT_STRU wf_cusprice_mtrlware
  5775. dw_mtrlwaremx = Create datastore
  5776. dw_mtrlwaremx.DataObject = 'dw_mtrlware_noalloc_storageid_ch_cusprice'
  5777. dw_mtrlwaremx.SetTransObject(sqlca)
  5778. FOR i = 1 To dw_child.RowCount()
  5779. ll_mtrlwareid[i] = dw_child.Object.u_outwaremx_mtrlwareid[i]
  5780. NEXT
  5781. dw_mtrlwaremx.Retrieve(ll_mtrlwareid)
  5782. FOR i = 1 To dw_mtrlwaremx.RowCount()
  5783. dw_mtrlwaremx.SelectRow(i,True)
  5784. NEXT
  5785. FOR ls_i = 1 To dw_mtrlwaremx.RowCount()
  5786. IF dw_mtrlwaremx.IsSelected(ls_i) THEN
  5787. chC++
  5788. INS_RT_STRU.mtrlwareid[chC] = dw_mtrlwaremx.Object.mtrlwareid[ls_i]
  5789. INS_RT_STRU.mtrlid[chC] = dw_mtrlwaremx.Object.mtrlid[ls_i]
  5790. INS_RT_STRU.u_mtrldef_mtrlcode[chC] = dw_mtrlwaremx.Object.u_mtrldef_mtrlcode[ls_i]
  5791. INS_RT_STRU.u_mtrldef_mtrlname[chC] = dw_mtrlwaremx.Object.u_mtrldef_mtrlname[ls_i]
  5792. INS_RT_STRU.u_mtrldef_mtrlmode[chC] = dw_mtrlwaremx.Object.mtrlmode[ls_i]
  5793. INS_RT_STRU.u_mtrldef_unit[chC] = dw_mtrlwaremx.Object.u_mtrldef_unit[ls_i]
  5794. INS_RT_STRU.u_mtrldef_prdpackcode[chC] = dw_mtrlwaremx.Object.u_mtrldef_prdpackcode[ls_i]
  5795. INS_RT_STRU.u_mtrldef_packqty[chC] = dw_mtrlwaremx.Object.u_mtrldef_packqty[ls_i]
  5796. INS_RT_STRU.noallocqty[chC] = dw_mtrlwaremx.Object.noallocqty[ls_i]
  5797. INS_RT_STRU.cost[chC] = dw_mtrlwaremx.Object.cost[ls_i]
  5798. INS_RT_STRU.planprice[chC] = dw_mtrlwaremx.Object.planprice[ls_i]
  5799. INS_RT_STRU.storageid[chC] = dw_mtrlwaremx.Object.storageid[ls_i]
  5800. INS_RT_STRU.plancode[chC] = dw_mtrlwaremx.Object.plancode[ls_i]
  5801. INS_RT_STRU.status[chC] = dw_mtrlwaremx.Object.u_mtrlware_status[ls_i]
  5802. INS_RT_STRU.sptid[chC] = dw_mtrlwaremx.Object.u_mtrlware_sptid[ls_i]
  5803. INS_RT_STRU.dxflag[chC] = dw_mtrlwaremx.Object.u_mtrlware_dxflag[ls_i]
  5804. INS_RT_STRU.noauditingqty[chC] = dw_mtrlwaremx.Object.noauditingqty[ls_i]
  5805. INS_RT_STRU.woodcode[chC] = dw_mtrlwaremx.Object.u_mtrlware_woodcode[ls_i]
  5806. INS_RT_STRU.pcode[chC] = dw_mtrlwaremx.Object.u_mtrlware_pcode[ls_i]
  5807. INS_RT_STRU.u_mtrldef_mtrlsectype[chC] = dw_mtrlwaremx.Object.u_mtrldef_mtrlsectype[ls_i]
  5808. INS_RT_STRU.u_mtrldef_zxmtrlmode[chC] = dw_mtrlwaremx.Object.u_mtrldef_zxmtrlmode[ls_i]
  5809. INS_RT_STRU.sptcode[chC] = dw_mtrlwaremx.Object.sptcode[ls_i]
  5810. INS_RT_STRU.sptname[chC] = dw_mtrlwaremx.Object.sptname[ls_i]
  5811. INS_RT_STRU.noallocaddqty[chC] = dw_mtrlwaremx.Object.noallocaddqty[ls_i]
  5812. INS_RT_STRU.noauditingaddqty[chC] = dw_mtrlwaremx.Object.noauditingaddqty[ls_i]
  5813. INS_RT_STRU.wareamt[chC] = dw_mtrlwaremx.Object.wareamt[ls_i]
  5814. INS_RT_STRU.barcode[chC] = dw_mtrlwaremx.Object.u_mtrldef_barcode[ls_i]
  5815. IF IsNull(INS_RT_STRU.noauditingqty[chC]) THEN INS_RT_STRU.noauditingqty[ls_i] = 0
  5816. IF IsNull(INS_RT_STRU.noauditingaddqty[chC]) THEN INS_RT_STRU.noauditingaddqty[ls_i] = 0
  5817. END IF
  5818. NEXT
  5819. Destroy dw_mtrlwaremx
  5820. end subroutine
  5821. public subroutine wf_cusprice_in (s_mtrlware_noalloc_array ins_rt_stru);//用于选择明细内容,被F8[默认]\dw_child.doubleclicked调用
  5822. Long i
  5823. IF Not dw_edit_mode THEN RETURN
  5824. IF dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 THEN RETURN
  5825. //IF flag = 1 THEN RETURN
  5826. Long child_row,ins_storageid = 0,cnt_childdw
  5827. Long ll_moneyid
  5828. Long ls_null
  5829. Long chc = 1,ls_j,ll_custid
  5830. Decimal lde_rate
  5831. s_edit_index_tran s_tranf8 //传递参数使用
  5832. SetNull(ls_null)
  5833. dw_uc.AcceptText()
  5834. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  5835. IF ll_moneyid = 0 Or IsNull(ll_moneyid) THEN
  5836. MessageBox('提示','请先选择币种',information!,OK!)
  5837. RETURN
  5838. END IF
  5839. IF wf_get_cusid(ll_custid) = 0 THEN
  5840. RETURN
  5841. END IF
  5842. dw_uc.AcceptText()
  5843. dw_child.AcceptText()
  5844. child_row = dw_child.GetRow()
  5845. IF sys_option_hide_ware = 0 THEN //如果隐藏仓库的,直接选物料
  5846. ins_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  5847. IF ins_storageid = 0 Or IsNull(ins_storageid) THEN
  5848. MessageBox('提示','请先选择仓库',information!,OK!)
  5849. RETURN
  5850. END IF
  5851. Int li_if_cus_mtrlware
  5852. SELECT balctype INTO :li_if_cus_mtrlware
  5853. FROM u_storage
  5854. Where storageid = :ins_storageid;
  5855. IF sqlca.SQLCode <> 0 THEN
  5856. MessageBox('错误','查询仓库是否使用客户库存失败',stopsign!,OK!)
  5857. RETURN
  5858. END IF
  5859. //ll_custid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  5860. //初始化参数
  5861. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  5862. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  5863. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  5864. s_tranf8.b_long = 0
  5865. IF li_if_cus_mtrlware = 1 THEN
  5866. s_tranf8.c_long = ll_custid
  5867. ELSE
  5868. s_tranf8.c_long = -1
  5869. END IF
  5870. IF Not IsValid(w_mtrlware_storageid_ch) THEN
  5871. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  5872. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  5873. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  5874. s_tranf8.d_long = ins_storageid
  5875. IF dw_child.GetRow() > 0 THEN s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()])
  5876. // OpenWithParm(w_mtrlware_storageid_ch,s_tranf8)
  5877. s_mtrlware_noalloc_array S_INSCUST
  5878. S_INSCUST = ins_rt_stru
  5879. FOR ls_j = 1 To UpperBound(S_INSCUST.mtrlwareid)
  5880. IF S_INSCUST.mtrlwareid[ls_j] > 0 THEN
  5881. FOR i = 1 To dw_child.RowCount()
  5882. IF S_INSCUST.mtrlwareid[ls_j] = dw_child.Object.u_outwaremx_mtrlwareid[i] THEN
  5883. child_row = i
  5884. EXIT
  5885. END IF
  5886. NEXT
  5887. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[ls_j]
  5888. dw_child.Object.u_outwaremx_mtrlid[child_row] = S_INSCUST.mtrlid[ls_j]
  5889. dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.u_mtrldef_mtrlcode[ls_j]
  5890. dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.u_mtrldef_mtrlname[ls_j]
  5891. dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST.u_mtrldef_mtrlmode[ls_j]
  5892. dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j]
  5893. IF sys_option_outware_Sale_ware = 0 THEN
  5894. // dw_child.Object.u_outwaremx_saleqty[child_row] = 0
  5895. // dw_child.Object.u_outwaremx_uqty[child_row] = 0
  5896. // dw_child.Object.u_outwaremx_addqty[child_row] = 0
  5897. ELSEIF sys_option_outware_Sale_ware = 1 THEN
  5898. dw_child.Object.u_outwaremx_saleqty[child_row] = S_INSCUST.noallocqty[ls_j]- S_INSCUST.noauditingqty[ls_j]
  5899. dw_child.Object.u_outwaremx_uqty[child_row] = S_INSCUST.noallocqty[ls_j]- S_INSCUST.noauditingqty[ls_j]
  5900. dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j]- S_INSCUST.noauditingaddqty[ls_j]
  5901. ELSE
  5902. dw_child.Object.u_outwaremx_saleqty[child_row] = S_INSCUST.noallocqty[ls_j]
  5903. dw_child.Object.u_outwaremx_uqty[child_row] = S_INSCUST.noallocqty[ls_j]
  5904. dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j]
  5905. END IF
  5906. dw_child.Object.u_outwaremx_planprice[child_row] = S_INSCUST.planprice[ls_j]
  5907. dw_child.Object.u_outwaremx_storageid[child_row] = S_INSCUST.storageid[ls_j]
  5908. dw_child.Object.u_outwaremx_plancode[child_row] = S_INSCUST.plancode[ls_j]
  5909. dw_child.Object.u_outwaremx_dxflag[child_row] = S_INSCUST.dxflag[ls_j]
  5910. dw_child.Object.u_outwaremx_status[child_row] = S_INSCUST.status[ls_j]
  5911. dw_child.Object.u_outwaremx_woodcode[child_row] = S_INSCUST.woodcode[ls_j]
  5912. dw_child.Object.u_outwaremx_pcode[child_row] = S_INSCUST.pcode[ls_j]
  5913. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST.u_mtrldef_zxmtrlmode[ls_j]
  5914. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST.u_mtrldef_mtrlsectype[ls_j]
  5915. dw_child.Object.u_outwaremx_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j]
  5916. f_find_unitrate(S_INSCUST.mtrlid[ls_j], S_INSCUST.u_mtrldef_unit[ls_j], lde_rate)
  5917. dw_child.Object.u_outwaremx_rate[child_row] = lde_rate
  5918. wf_get_price(child_row)
  5919. dw_child.Object.u_mtrldef_curware_qty[child_row] = S_INSCUST.noallocqty[ls_j]
  5920. dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null
  5921. dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null
  5922. END IF
  5923. NEXT
  5924. END IF
  5925. ELSE
  5926. END IF
  5927. IF sys_option_outware_if_saleqty = 0 THEN
  5928. dw_child.SetColumn('u_outwaremx_uqty')
  5929. ELSE
  5930. dw_child.SetColumn('u_outwaremx_saleqty')
  5931. END IF
  5932. dw_child.SetRedraw(True)
  5933. dw_child.SetFocus()
  5934. ////////////////////////////////// //
  5935. end subroutine
  5936. public subroutine wf_cusprice_mtrl (ref s_mtrldef_array ins_rt_stru);datastore dw_mtrlmx
  5937. Long i,ls_i,chC,ll_mtrl[]
  5938. dw_mtrlmx = Create datastore
  5939. dw_mtrlmx.DataObject = 'dw_mtrl_index_sptprice'
  5940. dw_mtrlmx.SetTransObject(sqlca)
  5941. if dw_child.RowCount() > 0 then
  5942. FOR i = 1 To dw_child.RowCount()
  5943. IF sys_option_hide_ware = 0 THEN //隐藏仓库
  5944. ll_mtrl[i] = dw_child.Object.u_outwaremx_mtrlid[i]
  5945. ELSE
  5946. ll_mtrl[i] = dw_child.Object.u_outwaremx_mtrlid[i]
  5947. END IF
  5948. NEXT
  5949. end if
  5950. dw_mtrlmx.Retrieve(ll_mtrl)
  5951. FOR i = 1 To dw_mtrlmx.RowCount()
  5952. dw_mtrlmx.SelectRow(i,True)
  5953. NEXT
  5954. FOR ls_i = 1 To dw_mtrlmx.RowCount()
  5955. IF dw_mtrlmx.IsSelected(ls_i) THEN
  5956. chC++
  5957. ins_rt_stru.mtrlid[chC] = dw_mtrlmx.Object.mtrlid[ls_i]
  5958. ins_rt_stru.mtrlname[chC] = dw_mtrlmx.Object.mtrlname[ls_i]
  5959. ins_rt_stru.mtrlengname[chC] = dw_mtrlmx.Object.mtrlengname[ls_i]
  5960. ins_rt_stru.mtrlcode[chC] = dw_mtrlmx.Object.mtrlcode[ls_i]
  5961. ins_rt_stru.mtrltype[chC] = dw_mtrlmx.Object.mtrltype[ls_i]
  5962. ins_rt_stru.mtrlmode[chC] = dw_mtrlmx.Object.mtrlmode[ls_i]
  5963. ins_rt_stru.unit[chC] = dw_mtrlmx.Object.unit[ls_i]
  5964. ins_rt_stru.storageid[chC] = dw_uc.Object.storageid[dw_uc.GetRow()]
  5965. ins_rt_stru.planprice[chC] = dw_mtrlmx.Object.planprice[ls_i]
  5966. ins_rt_stru.dscrp[chC] = dw_mtrlmx.Object.dscrp[ls_i]
  5967. ins_rt_stru.mtrlsectype[chC] = dw_mtrlmx.Object.mtrlsectype[ls_i]
  5968. ins_rt_stru.lmbuyprice[chC] = dw_mtrlmx.Object.lmbuyprice[ls_i]
  5969. ins_rt_stru.lmsaleprice[chC] = dw_mtrlmx.Object.lmsaleprice[ls_i]
  5970. ins_rt_stru.prdpackcode[chC] = dw_mtrlmx.Object.prdpackcode[ls_i]
  5971. ins_rt_stru.packqty[chC] = dw_mtrlmx.Object.packqty[ls_i]
  5972. ins_rt_stru.zxmtrlmode[chC] = dw_mtrlmx.Object.zxmtrlmode[ls_i]
  5973. ins_rt_stru.unit_buy[chC] = dw_mtrlmx.Object.u_mtrldef_unit_buy[ls_i]
  5974. ins_rt_stru.rate_buy[chC] = dw_mtrlmx.Object.u_mtrldef_rate_buy[ls_i]
  5975. ins_rt_stru.unit_scll[chC] = dw_mtrlmx.Object.u_mtrldef_unit_scll[ls_i]
  5976. ins_rt_stru.rate_scll[chC] = dw_mtrlmx.Object.u_mtrldef_rate_scll[ls_i]
  5977. ins_rt_stru.unit_sale[chC] = dw_mtrlmx.Object.u_mtrldef_unit_sale[ls_i]
  5978. ins_rt_stru.rate_sale[chC] = dw_mtrlmx.Object.u_mtrldef_rate_sale[ls_i]
  5979. IF dw_mtrlmx.Object.u_mtrldef_unit_buy[chC] = '' THEN
  5980. ins_rt_stru.unit_buy[chC] = dw_mtrlmx.Object.unit[ls_i]
  5981. ins_rt_stru.rate_buy[chC] = 1
  5982. ELSE
  5983. ins_rt_stru.unit_buy[ls_i] = dw_mtrlmx.Object.u_mtrldef_unit_buy[ls_i]
  5984. ins_rt_stru.rate_buy[chC] = dw_mtrlmx.Object.u_mtrldef_rate_buy[ls_i]
  5985. END IF
  5986. IF dw_mtrlmx.Object.u_mtrldef_unit_scll[chC] = '' THEN
  5987. ins_rt_stru.unit_scll[chC] = dw_mtrlmx.Object.unit[ls_i]
  5988. ins_rt_stru.rate_scll[chC] = 1
  5989. ELSE
  5990. ins_rt_stru.unit_scll[chC] = dw_mtrlmx.Object.u_mtrldef_unit_scll[ls_i]
  5991. ins_rt_stru.rate_scll[chC] = dw_mtrlmx.Object.u_mtrldef_rate_scll[ls_i]
  5992. END IF
  5993. IF dw_mtrlmx.Object.u_mtrldef_unit_sale[chC] = '' THEN
  5994. ins_rt_stru.unit_sale[chC] = dw_mtrlmx.Object.unit[ls_i]
  5995. ins_rt_stru.rate_sale[chC] = 1
  5996. ELSE
  5997. ins_rt_stru.unit_sale[chC] = dw_mtrlmx.Object.u_mtrldef_unit_sale[ls_i]
  5998. ins_rt_stru.rate_sale[chC] = dw_mtrlmx.Object.u_mtrldef_rate_sale[ls_i]
  5999. END IF
  6000. ins_rt_stru.ifcustom[chC] = dw_mtrlmx.Object.u_mtrldef_ifcustom[ls_i]
  6001. ins_rt_stru.statusflag[chC] = dw_mtrlmx.Object.statusflag[ls_i]
  6002. ins_rt_stru.woodcodeflag[chC] = dw_mtrlmx.Object.woodcodeflag[ls_i]
  6003. ins_rt_stru.pcodeflag[chC] = dw_mtrlmx.Object.pcodeflag[ls_i]
  6004. ins_rt_stru.statustype[chC] = dw_mtrlmx.Object.u_mtrldef_statustype[ls_i]
  6005. ins_rt_stru.woodcodetype[chC] = dw_mtrlmx.Object.u_mtrldef_woodcodetype[ls_i]
  6006. ins_rt_stru.pcodetype[chC] = dw_mtrlmx.Object.u_mtrldef_pcodetype[ls_i]
  6007. ins_rt_stru.status_check[chC] = dw_mtrlmx.Object.u_mtrldef_status_check[ls_i]
  6008. ins_rt_stru.woodcode_check[chC] = dw_mtrlmx.Object.u_mtrldef_woodcode_check[ls_i]
  6009. ins_rt_stru.pcode_check[chC] = dw_mtrlmx.Object.u_mtrldef_pcode_check[ls_i]
  6010. ins_rt_stru.configcode[chC] = dw_mtrlmx.Object.u_mtrldef_configcode[ls_i]
  6011. ins_rt_stru.configname[chC] = dw_mtrlmx.Object.u_mtrldef_configname[ls_i]
  6012. ins_rt_stru.configcodetype[chC] = dw_mtrlmx.Object.u_mtrldef_configcodetype[ls_i]
  6013. ins_rt_stru.mtrlcolor[chC] = dw_mtrlmx.Object.u_mtrldef_mtrlcolor[ls_i]
  6014. ins_rt_stru.status_config[chC] = dw_mtrlmx.Object.u_mtrldef_status_config[ls_i]
  6015. ins_rt_stru.woodcode_config[chC] = dw_mtrlmx.Object.u_mtrldef_woodcode_config[ls_i]
  6016. ins_rt_stru.pcode_config[chC] = dw_mtrlmx.Object.u_mtrldef_pcode_config[ls_i]
  6017. IF ins_rt_stru.statusflag[chC] = 4 THEN
  6018. ins_rt_stru.status[chC] = dw_mtrlmx.Object.u_mtrldef_status_config[ls_i]
  6019. ELSE
  6020. ins_rt_stru.status[chC] = ""
  6021. END IF
  6022. IF ins_rt_stru.woodcodeflag[chC] = 4 THEN
  6023. ins_rt_stru.woodcode[chC] = dw_mtrlmx.Object.u_mtrldef_woodcode_config[ls_i]
  6024. ELSE
  6025. ins_rt_stru.woodcode[chC] = ""
  6026. END IF
  6027. IF ins_rt_stru.pcodeflag[chC] = 4 THEN
  6028. ins_rt_stru.pcode[chC] = dw_mtrlmx.Object.u_mtrldef_pcode_config[ls_i]
  6029. ELSE
  6030. ins_rt_stru.pcode[chC] = ""
  6031. END IF
  6032. ins_rt_stru.usermtrlmode[chC] = dw_mtrlmx.Object.u_mtrldef_usermtrlmode[ls_i]
  6033. ins_rt_stru.buyunit[chC] = dw_mtrlmx.Object.u_mtrldef_buyunit[ls_i]
  6034. ins_rt_stru.wfjgunit[chC] = dw_mtrlmx.Object.u_mtrldef_wfjgunit[ls_i]
  6035. ins_rt_stru.scllunit[chC] = dw_mtrlmx.Object.u_mtrldef_scllunit[ls_i]
  6036. ins_rt_stru.saleunit[chC] = dw_mtrlmx.Object.u_mtrldef_saleunit[ls_i]
  6037. ins_rt_stru.buydec[chC] = dw_mtrlmx.Object.u_mtrldef_buydec[ls_i]
  6038. ins_rt_stru.wfjgdec[chC] = dw_mtrlmx.Object.u_mtrldef_wfjgdec[ls_i]
  6039. ins_rt_stru.sclldec[chC] = dw_mtrlmx.Object.u_mtrldef_sclldec[ls_i]
  6040. ins_rt_stru.saledec[chC] = dw_mtrlmx.Object.u_mtrldef_saledec[ls_i]
  6041. ins_rt_stru.ifpack[chC] = dw_mtrlmx.Object.u_mtrldef_ifpack[ls_i]
  6042. ins_rt_stru.ifpackpro[chC] = dw_mtrlmx.Object.u_mtrldef_ifpackpro[ls_i]
  6043. ins_rt_stru.ifpackpz[chC] = dw_mtrlmx.Object.u_mtrldef_ifpackpz[ls_i]
  6044. ins_rt_stru.ifpackpro2[chC] = dw_mtrlmx.Object.u_mtrldef_ifpackpro2[ls_i]
  6045. ins_rt_stru.ifpacktype[chC] = dw_mtrlmx.Object.u_mtrldef_ifpacktype[ls_i]
  6046. ins_rt_stru.net_weight[chC] = dw_mtrlmx.Object.net_weight[ls_i]
  6047. ins_rt_stru.gross_weight[chC] = dw_mtrlmx.Object.gross_weight[ls_i]
  6048. ins_rt_stru.cubage[chC] = dw_mtrlmx.Object.cubage[ls_i]
  6049. ins_rt_stru.handtype[chC] = dw_mtrlmx.Object.handtype[ls_i]
  6050. ins_rt_stru.mtrltypeid[chC] = dw_mtrlmx.Object.mtrltypeid[ls_i]
  6051. ins_rt_stru.mtrlorigin[chC] = dw_mtrlmx.Object.mtrlorigin[ls_i]
  6052. ins_rt_stru.mtrlprp[chC] = dw_mtrlmx.Object.mtrlprp[ls_i]
  6053. END IF
  6054. NEXT
  6055. Destroy dw_mtrlmx
  6056. end subroutine
  6057. public subroutine wf_cusprice_in (s_mtrldef_array ins_rt_stru);//用于选择明细内容,被F8[默认]\dw_child.doubleclicked调用
  6058. Long i
  6059. IF Not dw_edit_mode THEN RETURN
  6060. IF dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 THEN RETURN
  6061. //IF flag = 1 THEN RETURN
  6062. Long child_row,ins_storageid = 0,cnt_childdw
  6063. Long ll_moneyid
  6064. Long ls_null
  6065. Long chc = 1,ls_j,ll_custid
  6066. Decimal lde_rate
  6067. s_edit_index_tran s_tranf8 //传递参数使用
  6068. SetNull(ls_null)
  6069. dw_uc.AcceptText()
  6070. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  6071. IF ll_moneyid = 0 Or IsNull(ll_moneyid) THEN
  6072. MessageBox('提示','请先选择币种',information!,OK!)
  6073. RETURN
  6074. END IF
  6075. IF wf_get_cusid(ll_custid) = 0 THEN
  6076. RETURN
  6077. END IF
  6078. dw_uc.AcceptText()
  6079. dw_child.AcceptText()
  6080. child_row = dw_child.GetRow()
  6081. IF sys_option_hide_ware = 0 THEN //如果隐藏仓库的,直接选物料
  6082. ELSE
  6083. IF Not IsValid(W_mtrldef_edit) THEN
  6084. //传递参数使用
  6085. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  6086. s_tranf8.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  6087. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  6088. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  6089. s_tranf8.if_select_all = True //多选
  6090. s_tranf8.b_long = -1 //选采购
  6091. s_tranf8.c_long = -1
  6092. IF dw_child.GetRow() > 0 THEN s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()])
  6093. // OpenWithParm(W_mtrldef_edit,s_tranf8) //调用
  6094. s_mtrldef_array S_INSCUST2
  6095. S_INSCUST2 = ins_rt_stru //接受返回结构
  6096. FOR ls_j = 1 To UpperBound(S_INSCUST2.mtrlid)
  6097. IF S_INSCUST2.mtrlid[ls_j] > 0 THEN //正常返回值则可以取以下值
  6098. IF dw_child.GetRow() > 0 THEN
  6099. IF dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 0 THEN
  6100. child_row = dw_child.InsertRow (0)
  6101. ELSE
  6102. child_row = dw_child.GetRow()
  6103. END IF
  6104. ELSE
  6105. child_row = dw_child.InsertRow (0)
  6106. END IF
  6107. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = 0
  6108. dw_child.Object.u_outwaremx_mtrlid[child_row] = S_INSCUST2.mtrlid[ls_j]
  6109. dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST2.mtrlcode[ls_j]
  6110. dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST2.mtrlname[ls_j]
  6111. dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST2.mtrlmode[ls_j]
  6112. dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST2.unit[ls_j]
  6113. dw_child.Object.u_outwaremx_saleqty[child_row] = 0
  6114. dw_child.Object.u_outwaremx_uqty[child_row] = 0
  6115. dw_child.Object.u_outwaremx_addqty[child_row] = 0
  6116. dw_child.Object.u_outwaremx_planprice[child_row] = S_INSCUST2.planprice[ls_j]
  6117. dw_child.Object.u_outwaremx_storageid[child_row] = 0
  6118. dw_child.Object.u_outwaremx_plancode[child_row] = ''
  6119. //dw_child.Object.u_outwaremx_dxflag[child_row] = 0
  6120. dw_child.Object.u_outwaremx_status[child_row] = S_INSCUST2.status[ls_j]
  6121. dw_child.Object.u_outwaremx_woodcode[child_row] = S_INSCUST2.woodcode[ls_j]
  6122. dw_child.Object.u_outwaremx_pcode[child_row] = S_INSCUST2.pcode[ls_j]
  6123. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST2.zxmtrlmode[ls_j]
  6124. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST2.mtrlsectype[ls_j]
  6125. dw_child.Object.u_outwaremx_unit[child_row] = S_INSCUST2.unit[ls_j]
  6126. f_find_unitrate(S_INSCUST2.mtrlid[ls_j], S_INSCUST2.unit[ls_j], lde_rate)
  6127. dw_child.Object.u_outwaremx_rate[child_row] = lde_rate
  6128. wf_get_price(child_row)
  6129. dw_child.Object.u_mtrldef_curware_qty[child_row] = ls_null
  6130. dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null
  6131. dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null
  6132. END IF
  6133. NEXT
  6134. END IF
  6135. END IF
  6136. IF sys_option_outware_if_saleqty = 0 THEN
  6137. dw_child.SetColumn('u_outwaremx_uqty')
  6138. ELSE
  6139. dw_child.SetColumn('u_outwaremx_saleqty')
  6140. END IF
  6141. dw_child.SetRedraw(True)
  6142. dw_child.SetFocus()
  6143. ////////////////////////////////// //
  6144. end subroutine
  6145. public function integer wf_check_qtyandaddqty (ref string arg_msg);Long i
  6146. Int rslt = 1
  6147. Long lk_mtrlid,lk_ifcheckaddqty
  6148. String ls_strcheckaddqty,ls_mtrlmode
  6149. Decimal dec_qty,dec_addqty,dec_danpackqty,dec_packqty,dec_rebate
  6150. String ls_status,ls_woodcode,ls_pcode,ls_mtrlsectype,ls_zxmtrlmode
  6151. Long num
  6152. s_cmpl_qty s_cmpl
  6153. s_cmpl.addvalue = 1
  6154. String ls_msg
  6155. dw_child.AcceptText()
  6156. FOR i = 1 To dw_child.RowCount()
  6157. lk_mtrlid = dw_child.Object.u_outwaremx_mtrlid[i]
  6158. dec_qty = dw_child.Object.u_outwaremx_uqty[i]
  6159. dec_addqty = dw_child.Object.u_outwaremx_addqty[i]
  6160. ls_status = dw_child.Object.u_outwaremx_status[i]
  6161. ls_woodcode = dw_child.Object.u_outwaremx_woodcode[i]
  6162. ls_pcode = dw_child.Object.u_outwaremx_pcode[i]
  6163. ls_mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[i]
  6164. ls_zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[i]
  6165. ls_mtrlmode = dw_child.Object.u_mtrldef_mtrlmode[i]
  6166. dec_danpackqty=dw_child.Object.u_mtrldef_packqty[i]
  6167. dec_packqty=dw_child.Object.u_outwaremx_packqty[i]
  6168. dec_rebate = dw_child.Object.u_outwaremx_rebate[i]
  6169. SELECT ifcheckaddqty,strcheckaddqty,strcheck_digit Into :lk_ifcheckaddqty,:ls_strcheckaddqty,:num From u_mtrldef Where mtrlid = :lk_mtrlid;
  6170. s_cmpl.formula = ls_strcheckaddqty
  6171. s_cmpl.status = ls_status
  6172. s_cmpl.woodcode = ls_woodcode
  6173. s_cmpl.pcode = ls_pcode
  6174. s_cmpl.mtrlsectype = ls_mtrlsectype
  6175. s_cmpl.zxmtrlmode = ls_zxmtrlmode
  6176. s_cmpl.addqty = dec_addqty
  6177. s_cmpl.num = num
  6178. s_cmpl.oldqty = dec_qty
  6179. s_cmpl.mtrlsectype = ls_mtrlsectype
  6180. s_cmpl.zxmtrlmode = ls_zxmtrlmode
  6181. s_cmpl.packqty = dec_packqty
  6182. s_cmpl.rebate = dec_rebate
  6183. //如果有填写数量 则 只检查数量和辅数的关系
  6184. Decimal dec_tmp
  6185. IF lk_mtrlid > 0 And dec_qty <> 0 THEN
  6186. IF f_cmpl_qty_check(s_cmpl,dec_tmp,ls_msg) <> TRUE THEN
  6187. rslt = 0
  6188. arg_msg = '根据物料资料 数量和辅数的关系定义,第' + String(i) + '行不符合该项定义,公式是 ' + ls_strcheckaddqty
  6189. GOTO ext
  6190. END IF
  6191. END IF
  6192. //如果没有填写数量 则 由辅数计算出数量
  6193. IF lk_mtrlid > 0 And dec_qty = 0 THEN
  6194. IF f_cmpl_qty(s_cmpl,dec_tmp,ls_msg) = 0 THEN
  6195. rslt = 0
  6196. arg_msg += '根据物料资料 数量和辅数的关系定义,第' + String(i) + '行由辅数计算出数量为0,请检查资料定义公式是 ' + ls_strcheckaddqty
  6197. goto ext
  6198. END IF
  6199. dw_child.Object.u_outwaremx_uqty[i] = dec_tmp
  6200. END IF
  6201. NEXT
  6202. dw_child.AcceptText()
  6203. ext:
  6204. RETURN rslt
  6205. end function
  6206. public function integer wf_enamt_facechg ();//IF ii_enamt_edit = 0 THEN //金额计算单价 为 false
  6207. // dw_child.Modify('enamt.protect = 1~t enamt.Color = 0')
  6208. // dw_child.Modify('enamt_t.Color = 0')
  6209. //
  6210. //
  6211. //
  6212. //
  6213. //ELSEIF ii_enamt_edit = 1 THEN
  6214. //
  6215. // dw_child.Modify('enamt.protect = 0~t enamt.Color = "0~trgb(0,0,255)"')
  6216. // dw_child.Modify('enamt_t.Color = "0~trgb(0,0,255)"')
  6217. //
  6218. //
  6219. //
  6220. //END IF
  6221. IF cbx_enamt_edit.Checked = True Or cbx_zk.Checked = True THEN
  6222. dw_child.Modify('enamt.protect = 0~t enamt.Color = "0~trgb(0,0,255)"')
  6223. dw_child.Modify('enamt_t.Color = "0~trgb(0,0,255)"')
  6224. ELSE
  6225. dw_child.Modify('enamt.protect = 1~t enamt.Color = 0')
  6226. dw_child.Modify('enamt_t.Color = 0')
  6227. END IF
  6228. IF ii_enamt_notax_edit = 0 THEN //录入不含税单价 为 false
  6229. dw_child.Modify('enprice_notax.protect = 1~t enprice_notax.Color = "0~trgb(0,0,0)"')
  6230. dw_child.Modify('enprice_notax_t.Color = "0~trgb(0,0,0)"')
  6231. dw_child.Modify('enamt_notax.protect =1~t enamt_notax.Color = 0') //现在不录入 不含税金额
  6232. ELSEIF ii_enamt_notax_edit = 1 THEN
  6233. dw_child.Modify('enprice_notax.protect = 0~t enprice_notax.Color = "0~trgb(0,0,255)"')
  6234. dw_child.Modify('enprice_notax_t.Color = "0~trgb(0,0,255)"')
  6235. dw_child.Modify('enamt_notax.protect =1~t enamt_notax.Color = 0') //现在不录入 不含税金额
  6236. END IF
  6237. RETURN 1
  6238. end function
  6239. public function integer wf_ck_taobao (string arg_outwarecode);Int rslt = 1
  6240. Long cnt
  6241. String ls_msg
  6242. IF Mid(sys_pwrstr,1794,1) = '0' THEN
  6243. rslt = 1
  6244. GOTO ext
  6245. END IF
  6246. SELECT count(*) INTO :cnt
  6247. FROM u_outwaremx INNER JOIN
  6248. u_outware ON u_outwaremx.scid = u_outware.scid AND u_outwaremx.outwareid = u_outware.outwareid INNER JOIN
  6249. u_SaleTaskMx ON u_outwaremx.relid = u_SaleTaskMx.TaskID AND u_outwaremx.scid = u_SaleTaskMx.scid AND
  6250. u_outwaremx.relprintid = u_SaleTaskMx.printid INNER JOIN
  6251. u_SaleTask ON u_SaleTaskMx.scid = u_SaleTask.scid AND u_SaleTaskMx.TaskID = u_SaleTask.TaskID INNER JOIN
  6252. eb_saletask_import ON u_SaleTask.TaskCode = eb_saletask_import.taskcode LEFT OUTER JOIN
  6253. tb_trade ON eb_saletask_import.tid = tb_trade.tid
  6254. WHERE (tb_trade.status NOT IN ('TRADE_FINISHED', 'WAIT_BUYER_CONFIRM_GOODS'))
  6255. And u_outware.outwarecode = :arg_outwarecode;
  6256. IF sqlca.SQLCode <> 0 THEN
  6257. ls_msg = '查询发货单淘宝已发货标志失败,操作取消。~n'+sqlca.SQLErrText
  6258. rslt = 0
  6259. GOTO ext
  6260. END IF
  6261. IF cnt > 0 THEN
  6262. ls_msg = '发货单淘宝未发货,操作取消。'
  6263. rslt = 0
  6264. GOTO ext
  6265. END IF
  6266. ext:
  6267. IF rslt = 0 THEN
  6268. MessageBox('提示',ls_msg)
  6269. END IF
  6270. RETURN rslt
  6271. end function
  6272. public subroutine wf_check_ware (long arg_scid, long arg_billid);IF sys_option_outware_ware_check = 0 THEN RETURN
  6273. LONG CNT
  6274. //IF THEN
  6275. select
  6276. count(*) into :cnt
  6277. from (select
  6278. scid,
  6279. outwareid,
  6280. mtrlid,
  6281. status,
  6282. pcode,
  6283. woodcode
  6284. from u_outwaremx
  6285. group by scid,
  6286. outwareid,
  6287. mtrlid,
  6288. status,
  6289. pcode,
  6290. woodcode) as u_outwaremx
  6291. inner join u_mtrldef on u_mtrldef.mtrlid = u_outwaremx.mtrlid
  6292. left outer join u_mtrldef_maxminqty on u_mtrldef_maxminqty.mtrlid = u_outwaremx.mtrlid
  6293. and u_mtrldef_maxminqty.status = u_outwaremx.status
  6294. and u_mtrldef_maxminqty.woodcode = u_outwaremx.woodcode
  6295. and u_mtrldef_maxminqty.pcode = u_outwaremx.pcode
  6296. left outer join (select
  6297. mtrlid,
  6298. status,
  6299. pcode,
  6300. woodcode,
  6301. sum(noallocqty) as noallocqty
  6302. from u_mtrlware
  6303. group by mtrlid,
  6304. status,
  6305. pcode,
  6306. woodcode) as u_mtrlware_a
  6307. on u_mtrldef_maxminqty.mtrlid = u_mtrlware_a.mtrlid
  6308. and u_mtrldef_maxminqty.status = u_mtrlware_a.status
  6309. and u_mtrldef_maxminqty.woodcode = u_mtrlware_a.woodcode
  6310. and u_mtrldef_maxminqty.pcode = u_mtrlware_a.pcode
  6311. where u_outwaremx.scid = :arg_scid and u_outwaremx.outwareid = :arg_billid
  6312. and ( isnull(u_mtrlware_a.noallocqty,0) - isnull(u_mtrldef_maxminqty.minqty,0)<=0);
  6313. IF CNT>0 THEN
  6314. s_edit_index_tran s_tran1
  6315. s_tran1.c_long = arg_scid
  6316. s_tran1.d_long = arg_billid
  6317. OPENWITHPARM(w_check_ware,s_tran1)
  6318. END IF
  6319. //END IF
  6320. end subroutine
  6321. public function string wf_check_sys_option_check_scanqty ();string arg_msg
  6322. long i
  6323. FOR i = 1 To dw_child.RowCount()
  6324. IF dw_child.Object.u_outwaremx_uqty[i] <> dw_child.Object.u_outwaremx_scanqty[i] THEN
  6325. arg_msg = arg_msg + '第' + String(i) + '~n '
  6326. END IF
  6327. NEXT
  6328. IF arg_msg <> '' THEN
  6329. arg_msg='系统选项267,销售发货单,销售退货单 扫描数不等于出仓数不能审核,~n'
  6330. END IF
  6331. RETURN arg_msg
  6332. end function
  6333. public function integer wf_get_pricelist_price_buchong (long arg_pricelistid, long arg_moneyid, ref string arg_msg);
  6334. Int rslt = 1
  6335. Long ll_row
  6336. Long ll_pricelistid, ll_moneyid, ll_mtrlid
  6337. String ls_status,ls_pcode,ls_woodcode,ls_unit, ls_mtrlname
  6338. String ls_msg
  6339. ll_pricelistid = arg_pricelistid
  6340. ll_moneyid = arg_moneyid
  6341. IF uo_cus_price.uof_chk_pricelistid(ll_pricelistid, ll_moneyid, arg_msg) = 0 THEN
  6342. rslt = 0
  6343. GOTO ext
  6344. END IF
  6345. s_sale_price_mx s_mx
  6346. dw_child.AcceptText()
  6347. FOR ll_row = 1 To dw_child.RowCount()
  6348. IF dw_child.Object.u_outwaremx_enprice[ll_row] <> 0 THEN CONTINUE
  6349. ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ll_row]
  6350. ls_status = dw_child.Object.u_outwaremx_status[ll_row]
  6351. ls_pcode = dw_child.Object.u_outwaremx_pcode[ll_row]
  6352. ls_woodcode = dw_child.Object.u_outwaremx_woodcode[ll_row]
  6353. ls_unit = dw_child.Object.u_outwaremx_unit[ll_row]
  6354. ls_mtrlname = dw_child.Object.u_mtrldef_mtrlname[ll_row]
  6355. IF sys_option_price_if_status = 0 THEN
  6356. ls_status = ''
  6357. ls_pcode = ''
  6358. ls_woodcode = ''
  6359. END IF
  6360. s_mx.mtrlid = ll_mtrlid
  6361. s_mx.status = ls_status
  6362. s_mx.woodcode = ls_woodcode
  6363. s_mx.pcode = ls_pcode
  6364. s_mx.unit = ls_unit
  6365. s_mx.moneyid = ll_moneyid
  6366. s_mx.pricelistid = ll_pricelistid
  6367. IF uo_cus_price.uof_get_pricelist_price(s_mx, ls_msg) = 0 THEN
  6368. arg_msg += "行:"+String(ll_row)+", "+ls_mtrlname+" ~n"
  6369. rslt = 0 //无标准价格表 或未审核
  6370. END IF
  6371. dw_child.Object.u_outwaremx_enprice[ll_row] = s_mx.price
  6372. dw_child.Object.u_outwaremx_rebate[ll_row] = s_mx.rebate
  6373. //dw_child.Object.u_saletaskmx_rate[ll_row] = obj_rate
  6374. NEXT
  6375. IF rslt = 0 THEN
  6376. arg_msg += "导入价格表售价失败或没有设置售价! ~n "
  6377. END IF
  6378. ext:
  6379. RETURN rslt
  6380. end function
  6381. public subroutine wf_set_barcode ();long i,ll_mtrlid
  6382. string ls_barcode
  6383. dw_child.accepttext()
  6384. for i=1 to dw_child.rowcount()
  6385. ll_mtrlid=0
  6386. ls_barcode=''
  6387. ll_mtrlid=dw_child.object.u_outwaremx_mtrlid[i]
  6388. select barcode into :ls_barcode from u_mtrldef where mtrlid=:ll_mtrlid;
  6389. dw_child.object.u_mtrldef_barcode[i]=ls_barcode
  6390. next
  6391. end subroutine
  6392. public subroutine wf_cmpl_amt (long row);IF row <= 0 THEN RETURN
  6393. IF row > dw_child.RowCount() THEN RETURN
  6394. dw_child.AcceptText()
  6395. Decimal lde_saleqty, lde_rebate, lde_tax, lde_enamt, lde_enamt_tax, lde_enamt_notax
  6396. IF sys_option_outware_if_saleqty = 0 THEN
  6397. lde_saleqty = dw_child.Object.u_outwaremx_uqty[row]
  6398. ELSE
  6399. lde_saleqty = dw_child.Object.u_outwaremx_saleqty[row]
  6400. END IF
  6401. lde_rebate = dw_child.Object.u_outwaremx_rebate[row]
  6402. lde_tax = dw_child.Object.u_outwaremx_tax[row]
  6403. //由金额计算单价
  6404. IF cbx_enamt_edit.Checked THEN
  6405. IF dw_child.Object.enamt[row] <> 0 THEN
  6406. IF lde_rebate <> 0 And lde_saleqty <> 0 THEN
  6407. dw_child.Object.u_outwaremx_enprice[row] = dw_child.Object.enamt[row] / lde_rebate / lde_saleqty
  6408. dw_child.Object.u_outwaremx_enamt_tax[row] = Round(dw_child.Object.enamt[row]*lde_tax/(1+lde_tax), 2)
  6409. dw_child.Object.enamt_notax[row] = dw_child.Object.enamt[row] - dw_child.Object.u_outwaremx_enamt_tax[row]
  6410. dw_child.Object.enprice_notax[row] = dw_child.Object.u_outwaremx_enprice[row] / (1 + lde_tax)
  6411. END IF
  6412. END IF
  6413. ELSEIF cbx_enamt_notax_edit.Checked THEN // 录入不含税单价
  6414. dw_child.Object.enamt_notax[row] = dw_child.Object.enprice_notax[row] * lde_saleqty //录入的是不含税单价 单价 * 数量=金额
  6415. IF dw_child.Object.enamt_notax[row] <> 0 THEN
  6416. IF lde_rebate <> 0 And lde_saleqty <> 0 THEN
  6417. dw_child.Object.u_outwaremx_enamt_tax[row] = Round(dw_child.Object.enamt_notax[row]*lde_tax, 2)
  6418. dw_child.Object.enamt[row] = dw_child.Object.u_outwaremx_enamt_tax[row] + dw_child.Object.enamt_notax[row]
  6419. dw_child.Object.u_outwaremx_enprice[row] = dw_child.Object.enamt[row] / lde_rebate / lde_saleqty
  6420. IF dw_child.Object.enprice_notax[row] = 0 THEN
  6421. dw_child.Object.enprice_notax[row] = dw_child.Object.u_outwaremx_enprice[row] / (1 + lde_tax)
  6422. END IF
  6423. END IF
  6424. END IF
  6425. ELSEIF cbx_zk.Checked THEN //录入金额计算折扣
  6426. IF dw_child.Object.u_outwaremx_enprice[row] <> 0 And dw_child.Object.u_outwaremx_saleqty[row] <> 0 THEN
  6427. 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]
  6428. END IF
  6429. ELSE
  6430. dw_child.Object.enamt[row] = Round(dw_child.Object.u_outwaremx_enprice[row]*lde_rebate*lde_saleqty, 2)
  6431. 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)
  6432. dw_child.Object.enamt_notax[row] = dw_child.Object.enamt[row] - dw_child.Object.u_outwaremx_enamt_tax[row]
  6433. dw_child.Object.enprice_notax[row] = dw_child.Object.u_outwaremx_enprice[row] / (1 + lde_tax)
  6434. END IF
  6435. CHOOSE CASE sys_option_outware_sale_amt_round
  6436. CASE 0 //分
  6437. dw_child.Object.enamt[row] = Round(dw_child.Object.enamt[row], 2)
  6438. CASE 1
  6439. dw_child.Object.enamt[row] = Round(dw_child.Object.enamt[row], 1)
  6440. CASE 2
  6441. dw_child.Object.enamt[row] = Round(dw_child.Object.enamt[row], 0)
  6442. CASE 3
  6443. dw_child.Object.enamt[row] = Round(dw_child.Object.enamt[row] / 10, 2) * 10
  6444. CASE 4
  6445. dw_child.Object.enamt[row] = Round(dw_child.Object.enamt[row] / 100, 2) * 100
  6446. END CHOOSE
  6447. //20180103
  6448. // //由金额计算单价
  6449. //IF cbx_enamt_edit.Checked THEN
  6450. // IF Not cbx_enamt_notax_edit.Checked THEN
  6451. // IF dw_child.Object.enamt[row] <> 0 THEN
  6452. // IF lde_rebate <> 0 And lde_saleqty <> 0 THEN
  6453. // dw_child.Object.u_outwaremx_enprice[row] = dw_child.Object.enamt[row] / lde_rebate / lde_saleqty
  6454. // dw_child.Object.u_outwaremx_enamt_tax[row] = Round(dw_child.Object.enamt[row]*lde_tax/(1+lde_tax), 2)
  6455. // dw_child.Object.enamt_notax[row] = dw_child.Object.enamt[row] - dw_child.Object.u_outwaremx_enamt_tax[row]
  6456. // END IF
  6457. // END IF
  6458. //
  6459. //
  6460. // ELSE
  6461. // IF dw_child.Object.enamt_notax[row] <> 0 THEN
  6462. // IF lde_rebate <> 0 And lde_saleqty <> 0 THEN
  6463. // dw_child.Object.u_outwaremx_enamt_tax[row] = Round(dw_child.Object.enamt_notax[row]*lde_tax, 2)
  6464. // dw_child.Object.enamt[row] = dw_child.Object.u_outwaremx_enamt_tax[row] + dw_child.Object.enamt_notax[row]
  6465. // dw_child.Object.u_outwaremx_enprice[row] = dw_child.Object.enamt[row] / lde_rebate / lde_saleqty
  6466. // // dw_child.Object.u_outwaremx_enamt_tax[row] = Round(dw_child.Object.enamt[row]*lde_tax/(1+lde_tax), 2)
  6467. // // dw_child.Object.enamt_notax[row] = dw_child.Object.enamt[row] - dw_child.Object.u_outwaremx_enamt_tax[row]
  6468. // END IF
  6469. // END IF
  6470. // END IF
  6471. //20180103
  6472. //IF sys_option_outware_if_saleqty = 0 THEN
  6473. // IF cbx_enamt_edit.Checked THEN
  6474. // IF dw_child.Object.enamt[row] <> 0 THEN
  6475. // IF dw_child.Object.u_outwaremx_rebate[row] <> 0 And dw_child.Object.u_outwaremx_uqty[row] <> 0 THEN
  6476. // 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]
  6477. // END IF
  6478. // END IF
  6479. // ELSE
  6480. // 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)
  6481. // END IF
  6482. //ELSE
  6483. // IF cbx_enamt_edit.Checked THEN
  6484. //// if dw_child.GetColumnName() = 'u_outwaremx_enprice' or dw_child.GetColumnName() = 'u_outwaremx_rebate' then
  6485. //// 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)
  6486. //// else
  6487. // IF dw_child.Object.enamt[row] <> 0 THEN
  6488. // IF dw_child.Object.u_outwaremx_rebate[row] <> 0 And dw_child.Object.u_outwaremx_saleqty[row] <> 0 THEN
  6489. // 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]
  6490. // END IF
  6491. // END IF
  6492. //// end if
  6493. // ELSE
  6494. // 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)
  6495. // END IF
  6496. //END IF
  6497. //
  6498. //
  6499. //
  6500. end subroutine
  6501. public subroutine wf_getcusrepamt_info_show (long arg_scid, long arg_cusid, long arg_moneyid);Int lst
  6502. long i
  6503. String cstr = '',rstr = '',msg = ''
  6504. Decimal arg_cusbalcamt,arg_cusmaxamt,arg_outrep_balcamt,arg_outrep_maxamt
  6505. String ls_moneyname
  6506. Decimal ld_canamt
  6507. Decimal lde_billamt
  6508. Decimal ld_mrate
  6509. Long ll_outwareid
  6510. //dw_child.accepttext()
  6511. SELECT name
  6512. INTO :ls_moneyname
  6513. FROM cw_currency
  6514. Where moneyid = :arg_moneyid;
  6515. IF sqlca.SQLCode <> 0 THEN
  6516. st_msg.Text = '查询币种信息失败'
  6517. st_msg.BackColor = RGB(255,255,255)
  6518. RETURN
  6519. END IF
  6520. //本单金额
  6521. // IF sys_option_mst_multimoney = 0 THEN
  6522. // ll_moneyid = f_moneyid_native()
  6523. // IF ll_moneyid = -1 THEN
  6524. // MessageBox('系统提示','查询本位币失败')
  6525. // RETURN
  6526. // END IF
  6527. // ld_mrate = dw_pageretr.Object.u_outware_mrate[dw_pageretr.GetRow()]
  6528. // ELSE
  6529. // ll_moneyid = dw_pageretr.Object.u_outware_relint_2[dw_pageretr.GetRow()]
  6530. ld_mrate = 1
  6531. // END IF
  6532. lde_billamt = dw_child.Object.enamt_sm[1] * ld_mrate - dw_uc.Object.u_outware_otheramt[dw_uc.getrow()]
  6533. //其他单未财审金额
  6534. dw_uc.AcceptText()
  6535. ll_outwareid = dw_uc.Object.u_outware_outwareid[dw_uc.GetRow()]
  6536. Decimal ld_notsecaudit_amt, ld_notsecaudit_enamt, ld_notsecaudit_billamt, ld_notsecaudit_otheramt, ld_notsecaudit_enotheramt
  6537. SELECT sum(round(u_outwaremx.saleqty * u_outwaremx.price,2)),
  6538. sum(round(u_outwaremx.saleqty * u_outwaremx.enprice * u_outwaremx.rebate,2))
  6539. INTO :ld_notsecaudit_amt,:ld_notsecaudit_enamt
  6540. FROM u_outware,u_outwaremx
  6541. WHERE u_outware.scid = u_outwaremx.scid
  6542. AND u_outware.outwareid = u_outwaremx.outwareid
  6543. AND u_outware.billtype = 1
  6544. AND u_outware.secflag = 0
  6545. AND u_outware.cusid = :arg_cusid
  6546. AND (:sys_option_scid_msttake_mstpay = 1 AND u_outware.scid = :arg_scid OR :sys_option_scid_msttake_mstpay = 0 )
  6547. And (:sys_option_mst_multimoney = 1 And u_outware.relint_2 = :arg_moneyid Or :sys_option_mst_multimoney = 0);
  6548. IF sqlca.SQLCode <> 0 THEN
  6549. ld_notsecaudit_amt = 0
  6550. ld_notsecaudit_enamt = 0
  6551. END IF
  6552. SELECT sum(round(u_outware.otheramt,2)),
  6553. sum(round(u_outware.otheramt * u_outware.mrate,2))
  6554. INTO :ld_notsecaudit_enotheramt,:ld_notsecaudit_otheramt
  6555. FROM u_outware
  6556. WHERE u_outware.billtype = 1
  6557. AND u_outware.secflag = 0
  6558. AND u_outware.cusid = :arg_cusid
  6559. AND (:sys_option_scid_msttake_mstpay = 1 AND u_outware.scid = :arg_scid OR :sys_option_scid_msttake_mstpay = 0 )
  6560. And (:sys_option_mst_multimoney = 1 And u_outware.relint_2 = :arg_moneyid Or :sys_option_mst_multimoney = 0);
  6561. IF sqlca.SQLCode <> 0 THEN
  6562. ld_notsecaudit_enotheramt = 0
  6563. ld_notsecaudit_otheramt = 0
  6564. END IF
  6565. IF IsNull(ld_notsecaudit_amt) THEN ld_notsecaudit_amt = 0
  6566. IF IsNull(ld_notsecaudit_enamt) THEN ld_notsecaudit_enamt = 0
  6567. IF IsNull(ld_notsecaudit_otheramt) THEN ld_notsecaudit_otheramt = 0
  6568. IF IsNull(ld_notsecaudit_enotheramt) THEN ld_notsecaudit_enotheramt = 0
  6569. IF sys_option_mst_multimoney = 1 THEN
  6570. ld_notsecaudit_billamt = ld_notsecaudit_enamt - ld_notsecaudit_enotheramt
  6571. ELSE
  6572. ld_notsecaudit_billamt = ld_notsecaudit_amt - ld_notsecaudit_otheramt
  6573. END IF
  6574. cur_cusrepamtflag = 0
  6575. //--------检查信用额
  6576. lst = f_getcusrepamt_info(arg_scid,arg_cusid,arg_moneyid,arg_cusbalcamt,arg_cusmaxamt,arg_outrep_balcamt,arg_outrep_maxamt)
  6577. //IF lst < 0 THEN
  6578. // msg = '提示:查询信用额及欠款失败!'
  6579. // st_msg.Text = msg
  6580. // st_msg.BackColor = RGB(255,255,255)
  6581. //
  6582. // cur_cusrepamtflag = -1
  6583. // cur_cusrepamtstr = msg
  6584. //ELSE
  6585. // //客户欠款
  6586. // IF arg_cusmaxamt > 0 THEN
  6587. // IF arg_cusbalcamt > arg_cusmaxamt THEN
  6588. // cstr = ' 客户欠款超信用额! '
  6589. // ELSEIF arg_cusbalcamt = arg_cusmaxamt THEN
  6590. // cstr = ' 客户欠款平信用额! '
  6591. // END IF
  6592. // ELSE
  6593. // IF arg_cusbalcamt > arg_cusmaxamt THEN cstr = ' 客户有欠款! '
  6594. // END IF
  6595. //
  6596. //end if
  6597. // cur_cusrepamtstr_show = '' //非编辑状态下 显示信息
  6598. 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')
  6599. If arg_cusmaxamt - arg_cusbalcamt - ld_notsecaudit_billamt >= 0 Then
  6600. st_cusbalc_sign.Visible = False
  6601. Else
  6602. st_cusbalc_sign.Visible = True
  6603. End If
  6604. end subroutine
  6605. public subroutine wf_set_decimal_place ();Long i
  6606. IF sys_option_outware_price_amt_round = 99 THEN RETURN
  6607. //设置单价保留位数
  6608. dw_child.AcceptText()
  6609. FOR i = 1 To dw_child.RowCount()
  6610. CHOOSE CASE sys_option_outware_price_amt_round
  6611. CASE 0
  6612. dw_child.Object.u_outwaremx_enprice[i] = Dec(String(dw_child.Object.u_outwaremx_enprice[i],'#,##0') )
  6613. CASE 1
  6614. dw_child.Object.u_outwaremx_enprice[i] = Dec(String(dw_child.Object.u_outwaremx_enprice[i],'#,##0.#') )
  6615. CASE 2
  6616. dw_child.Object.u_outwaremx_enprice[i] = Dec(String(dw_child.Object.u_outwaremx_enprice[i],'#,##0.##') )
  6617. CASE 3
  6618. dw_child.Object.u_outwaremx_enprice[i] = Dec(String(dw_child.Object.u_outwaremx_enprice[i],'#,##0.###') )
  6619. CASE 4
  6620. dw_child.Object.u_outwaremx_enprice[i] = Dec(String(dw_child.Object.u_outwaremx_enprice[i],'#,##0.####') )
  6621. END CHOOSE
  6622. NEXT
  6623. dw_child.AcceptText()
  6624. //设置单价保留位数
  6625. end subroutine
  6626. public function decimal wf_sum_mxamt ();//
  6627. dw_child.AcceptText()
  6628. Long i
  6629. Decimal dec_sum
  6630. dec_sum = 0
  6631. FOR i = 1 To dw_child.RowCount()
  6632. 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])
  6633. NEXT
  6634. IF IsNull(dec_sum) THEN dec_sum = 0
  6635. RETURN dec_sum
  6636. end function
  6637. public function decimal wf_get_cusprice (integer arg_cusid, integer arg_mtrlid);////
  6638. decimal cusprice
  6639. SELECT
  6640. u_sale_price_mx.price
  6641. INTO :cusprice
  6642. from
  6643. u_cust left join u_sale_price_mx
  6644. on u_cust.pricelistid = u_sale_price_mx.pricelistid
  6645. where mtrlid = :arg_mtrlid and cusid = :arg_cusid
  6646. order by u_sale_price_mx.sys_changetime desc;
  6647. IF sqlca.SQLCode <> 0 THEN
  6648. cusprice = 0
  6649. END IF
  6650. return cusprice
  6651. end function
  6652. public subroutine wf_price (integer arg_row);s_cmpl_qty arg_cmpl,null_cmpl
  6653. decimal ld_cusprice,ld_qty
  6654. int li_mtrlid,li_cusid
  6655. string ls_msg
  6656. if li_mtrlid = 0 or li_cusid = 0 then return
  6657. arg_cmpl = null_cmpl
  6658. arg_cmpl.qty = dw_child.Object.u_outwaremx_enprice[arg_row]
  6659. arg_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[arg_row]
  6660. arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[arg_row]
  6661. arg_cmpl.price = dw_child.Object.u_outwaremx_enprice[arg_row]
  6662. arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[arg_row]
  6663. arg_cmpl.status = dw_child.Object.u_outwaremx_status[arg_row]
  6664. arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[arg_row]
  6665. arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[arg_row]
  6666. arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[arg_row]
  6667. arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[arg_row]
  6668. li_mtrlid = dw_child.Object.u_outwaremx_mtrlid[arg_row]
  6669. li_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  6670. Select price
  6671. Into :ld_cusprice
  6672. From u_cust
  6673. Inner JOIN u_sale_price_mx ON u_sale_price_mx.Pricelistid = u_cust.Pricelistid
  6674. Where u_sale_price_mx.mtrlid = :li_mtrlid
  6675. And u_cust.cusid = :li_cusid;
  6676. If sqlca.SQLCode <> 0 Then
  6677. ld_cusprice = 0
  6678. End If
  6679. arg_cmpl.cusprice = ld_cusprice
  6680. arg_cmpl.num = 2
  6681. arg_cmpl.addvalue = 1
  6682. arg_cmpl.flag = True
  6683. ld_qty = 0
  6684. If f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 Then
  6685. MessageBox('提示',ls_msg, information!, OK! )
  6686. Return
  6687. End If
  6688. dw_child.Object.u_outwaremx_enprice[arg_row] = ld_qty
  6689. end subroutine
  6690. 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
  6691. long cusid,storageid,scid
  6692. string Name,cuscode,bsntype,freight,freight_tele,freight_address,Address,tele,tele1,faxno,rep,custype
  6693. int rslt = 1 ,i,child_llrow
  6694. scid = arg_s_tran.c_long
  6695. long uc_row
  6696. cusid = arg_s_tran.g_long
  6697. storageid = arg_s_tran.f_long
  6698. select
  6699. Name,
  6700. cuscode,
  6701. freight,
  6702. freight_tele,
  6703. freight_address,
  6704. Address,
  6705. tele,
  6706. tele1,
  6707. faxno,
  6708. rep,
  6709. custype
  6710. into
  6711. :Name,
  6712. :cuscode,
  6713. :freight,
  6714. :freight_tele,
  6715. :freight_address,
  6716. :Address,
  6717. :tele,
  6718. :tele1,
  6719. :faxno,
  6720. :rep,
  6721. :custype
  6722. from u_cust
  6723. where cusid = :cusid;
  6724. IF sqlca.SQLCode <> 0 THEN
  6725. arg_msg = '查询客户资料失败>'+sqlca.SQLErrText
  6726. rslt = 0
  6727. GOTO ext
  6728. END IF
  6729. uc_row = dw_uc.rowcount()
  6730. uc_row = dw_uc.getrow()
  6731. dw_uc.Object.u_outware_cusid[uc_row] = cusid
  6732. dw_uc.Object.u_cust_name[uc_row] = Name
  6733. dw_uc.Object.u_cust_cuscode[uc_row] = cuscode
  6734. dw_uc.Object.u_outware_outrep[uc_row] = custype
  6735. dw_uc.Object.u_outware_relstr_1[uc_row] = freight
  6736. dw_uc.Object.u_outware_relstr_2[uc_row] = freight_tele
  6737. dw_uc.Object.u_outware_relstr_3[uc_row] = freight_address
  6738. dw_uc.Object.u_outware_rel_address[uc_row] = Address
  6739. dw_uc.Object.u_outware_rel_tele[uc_row] = tele
  6740. dw_uc.Object.u_outware_rel_tele1[uc_row] = tele1
  6741. dw_uc.Object.u_outware_rel_fax[uc_row] = faxno
  6742. dw_uc.Object.u_outware_rel_rep[uc_row] = rep
  6743. dw_uc.Object.u_outware_storageid[uc_row] = storageid
  6744. //
  6745. s_saletask_mtrl s_saletask
  6746. for i = 1 to upperbound(arg_s_tran.arr_long)
  6747. s_saletask.TaskID[i] = arg_s_tran.arr_long[i]
  6748. s_saletask.printid[i] = arg_s_tran.arr_long2[i]
  6749. s_saletask.mtrlid[i] = arg_s_tran.arr_long3[i]
  6750. s_saletask.TaskCode[i] = arg_s_tran.arr_string[i]
  6751. next
  6752. IF wf_saletaskmtrltoarr_salemx(scid,s_saletask,arg_msg) = 0 THEN
  6753. rslt = 0
  6754. GOTO ext
  6755. END IF
  6756. IF wf_set_outwaremx(scid,cusid, storageid, s_saletask,arg_msg) = 0 THEN
  6757. rslt = 0
  6758. GOTO ext
  6759. END IF
  6760. ext:
  6761. return rslt
  6762. end function
  6763. on w_outware_sale.create
  6764. int iCurrent
  6765. call super::create
  6766. this.ddlb_scid=create ddlb_scid
  6767. this.st_3=create st_3
  6768. this.st_2=create st_2
  6769. this.st_msg=create st_msg
  6770. this.cbx_ifmtrlware=create cbx_ifmtrlware
  6771. this.cbx_enamt_edit=create cbx_enamt_edit
  6772. this.ddlb_status=create ddlb_status
  6773. this.cb_fhmx=create cb_fhmx
  6774. this.cb_fymx=create cb_fymx
  6775. this.cb_bjmx=create cb_bjmx
  6776. this.dw_bjmx=create dw_bjmx
  6777. this.dw_fymx=create dw_fymx
  6778. this.cbx_packqty_cmpl=create cbx_packqty_cmpl
  6779. this.cbx_enamt_notax_edit=create cbx_enamt_notax_edit
  6780. this.cb_scanbill=create cb_scanbill
  6781. this.cbx_zk=create cbx_zk
  6782. this.cb_new_scanbill=create cb_new_scanbill
  6783. this.st_cusbalc=create st_cusbalc
  6784. this.st_cusbalc_sign=create st_cusbalc_sign
  6785. this.cbx_all=create cbx_all
  6786. iCurrent=UpperBound(this.Control)
  6787. this.Control[iCurrent+1]=this.ddlb_scid
  6788. this.Control[iCurrent+2]=this.st_3
  6789. this.Control[iCurrent+3]=this.st_2
  6790. this.Control[iCurrent+4]=this.st_msg
  6791. this.Control[iCurrent+5]=this.cbx_ifmtrlware
  6792. this.Control[iCurrent+6]=this.cbx_enamt_edit
  6793. this.Control[iCurrent+7]=this.ddlb_status
  6794. this.Control[iCurrent+8]=this.cb_fhmx
  6795. this.Control[iCurrent+9]=this.cb_fymx
  6796. this.Control[iCurrent+10]=this.cb_bjmx
  6797. this.Control[iCurrent+11]=this.dw_bjmx
  6798. this.Control[iCurrent+12]=this.dw_fymx
  6799. this.Control[iCurrent+13]=this.cbx_packqty_cmpl
  6800. this.Control[iCurrent+14]=this.cbx_enamt_notax_edit
  6801. this.Control[iCurrent+15]=this.cb_scanbill
  6802. this.Control[iCurrent+16]=this.cbx_zk
  6803. this.Control[iCurrent+17]=this.cb_new_scanbill
  6804. this.Control[iCurrent+18]=this.st_cusbalc
  6805. this.Control[iCurrent+19]=this.st_cusbalc_sign
  6806. this.Control[iCurrent+20]=this.cbx_all
  6807. end on
  6808. on w_outware_sale.destroy
  6809. call super::destroy
  6810. destroy(this.ddlb_scid)
  6811. destroy(this.st_3)
  6812. destroy(this.st_2)
  6813. destroy(this.st_msg)
  6814. destroy(this.cbx_ifmtrlware)
  6815. destroy(this.cbx_enamt_edit)
  6816. destroy(this.ddlb_status)
  6817. destroy(this.cb_fhmx)
  6818. destroy(this.cb_fymx)
  6819. destroy(this.cb_bjmx)
  6820. destroy(this.dw_bjmx)
  6821. destroy(this.dw_fymx)
  6822. destroy(this.cbx_packqty_cmpl)
  6823. destroy(this.cbx_enamt_notax_edit)
  6824. destroy(this.cb_scanbill)
  6825. destroy(this.cbx_zk)
  6826. destroy(this.cb_new_scanbill)
  6827. destroy(this.st_cusbalc)
  6828. destroy(this.st_cusbalc_sign)
  6829. destroy(this.cbx_all)
  6830. end on
  6831. event retrieve_pageretr;Boolean cb_firstpage_enabled,cb_nextpage_enabled,cb_retrieveall_enabled
  6832. Boolean cb_priorpage_enabled,cb_func_enabled,cb_retrieve_enabled
  6833. cb_nextpage_enabled = cb_nextpage.Enabled
  6834. cb_retrieveall_enabled = cb_retrieveall.Enabled
  6835. cb_func_enabled = cb_func.Enabled
  6836. cb_nextpage.Enabled = False
  6837. cb_retrieveall.Enabled = False
  6838. cb_func.Enabled = False
  6839. //只显未自已管的仓库
  6840. datawindowchild childdw
  6841. String new_sqlstr,modify_str
  6842. dw_uc.SetTransObject (sqlca)
  6843. dw_uc.GetChild("u_outware_storageid",childdw)
  6844. childdw.SetTransObject (sqlca)
  6845. new_sqlstr = childdw.Describe("DataWindow.Table.Select")
  6846. IF Len(ol_cdw_str) = 0 THEN ol_cdw_str = new_sqlstr
  6847. new_sqlstr = f_modify_selectstr(ol_cdw_str)
  6848. modify_str = "DataWindow.Table.Select='" + new_sqlstr +"'"
  6849. childdw.Modify ( modify_str )
  6850. IF childdw.Retrieve(cur_scid) = 0 THEN
  6851. childdw.InsertRow(0)
  6852. END IF
  6853. ///////////// //
  6854. Int li_option_outrep, li_option_area,li_option_opemp
  6855. string ls_option_opemp
  6856. IF sys_power_issuper THEN
  6857. li_option_outrep = 0
  6858. ELSE
  6859. li_option_outrep = sys_option_outrep
  6860. END IF
  6861. IF sys_power_issuper THEN
  6862. li_option_area = 0
  6863. ELSE
  6864. li_option_area = sys_option_cusarea
  6865. END IF
  6866. 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
  6867. li_option_opemp = 0
  6868. // ls_option_opemp = publ_operator
  6869. ELSE
  6870. li_option_opemp = sys_option_opemp_sale
  6871. ls_option_opemp = publ_operator
  6872. END IF
  6873. long ll_row
  6874. ll_row = dw_pageretr.getrow()
  6875. dw_uc.Retrieve() //dw_uc的dw改左select top 0 并肯不带参数
  6876. 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)
  6877. IF dw_pageretr.RowCount() > 0 and ll_row = 1 THEN
  6878. dw_pageretr.SetRow(1)
  6879. dw_pageretr.TriggerEvent(RowFocusChanged!)
  6880. END IF
  6881. wf_flagstatus_rf()
  6882. This.TriggerEvent('retrieve_childdw')
  6883. //改为独立触发
  6884. //THIS.TriggerEvent('retrieve_fjnum')
  6885. cb_nextpage.Enabled = cb_nextpage_enabled
  6886. cb_retrieveall.Enabled = cb_retrieveall_enabled
  6887. cb_func.Enabled = cb_func_enabled
  6888. //childdw.retrieve()
  6889. end event
  6890. event ue_usual_query_filt;string obj_expr=''
  6891. if trim(sle_usual_query.text)<>'' then
  6892. IF POS(trim(sle_usual_query.text),'%')=0 THEN
  6893. obj_expr=obj_expr+'( u_outware_outwarecode LIKE "%'+trim(sle_usual_query.text)+'%" )'
  6894. ELSE
  6895. obj_expr=obj_expr+'( u_outware_outwarecode LIKE "'+trim(sle_usual_query.text)+'" )'
  6896. END IF
  6897. end if
  6898. dw_pageretr.setfilter(obj_expr)
  6899. dw_pageretr.SetRedraw(False)
  6900. dw_pageretr.filter()
  6901. if dw_pageretr.rowcount()>=1 then
  6902. dw_pageretr.selectrow(0,false)
  6903. dw_pageretr.selectrow(1,true)
  6904. dw_pageretr.SetRow(1)
  6905. dw_pageretr.triggerevent(rowfocuschanged!)
  6906. end if
  6907. dw_pageretr.SetRedraw(TRUE)
  6908. end event
  6909. event ue_usual_query_retr;string ls_querystrpart=''
  6910. ls_newselect=lower(ori_oldselect)
  6911. if trim(sle_usual_query.text)<>'' then
  6912. if pos(trim(sle_usual_query.text),'%')=0 then
  6913. ls_querystrpart="(u_outware.outwarecode like '%"+trim(sle_usual_query.text)+"%')"
  6914. else
  6915. ls_querystrpart="(u_outware.outwarecode like '"+trim(sle_usual_query.text)+"')"
  6916. end if
  6917. if Pos(ls_newselect," where ") <> 0 then
  6918. ls_newselect=ls_newselect+" AND ("+ls_querystrpart+')'
  6919. else
  6920. ls_newselect=ls_newselect+" where ("+ls_querystrpart+')'
  6921. end if
  6922. end if
  6923. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  6924. this.triggerevent('retrieve_pageretr')
  6925. end event
  6926. event open;THIS.TriggerEvent('ue_before_open')
  6927. wf_movetocenter()
  6928. ds_copy_bill = CREATE datastore
  6929. ds_copy_bill.DataObject = dw_child.dataobject
  6930. ds_copy_bill.SetTransObject(sqlca)
  6931. OLD_TITLE = THIS.Title
  6932. s_tran = Message.PowerObjectParm
  6933. IF NOT IsNull(s_tran) THEN
  6934. retrieve_all = s_tran.if_retrieve_all
  6935. mode = s_tran.work_mode
  6936. arg_pkid = s_tran.arg_pkid
  6937. arg_string_code = s_tran.arg_string_code
  6938. if_sharedata = s_tran.if_sharedata //是否应用sharedata,当retrieve_all=true是生效
  6939. ds_share = s_tran.ds_share
  6940. END IF
  6941. dw_pageretr.RBUTTON_FILTER_USE = TRUE //右键查询功能开关
  6942. dw_pageretr.titleclick_sort_use = TRUE //单击标题排序功能开关
  6943. dw_pageretr.SetTransObject (sqlca)
  6944. pkcolumndbtname = wf_get_pkcolumndbtname(dw_pageretr) //取第一列为关键字
  6945. ori_oldselect = dw_pageretr.Describe("DataWindow.Table.Select")
  6946. //====================================================================
  6947. // Script - w_outware_sale inherited from w_publ_1ton_share_detail for open
  6948. // Reason:
  6949. //--------------------------------------------------------------------
  6950. // Modified By: yyx Date: 2003.12.01
  6951. //--------------------------------------------------------------------
  6952. ori_oldselect = f_modify_selectstr(ori_oldselect)//只显示所管的仓库单据
  6953. //====================================================================
  6954. ls_newselect = ori_oldselect
  6955. ds_curquery = CREATE DATASTORE
  6956. ds_curquery.DataObject = 'd_extr_find'
  6957. ds_curquery.SetTransObject (sqlca)
  6958. int rtncode // 保留联系人初始sql
  6959. DataWindowChild dw_child_dddw
  6960. rtncode = dw_uc.GetChild("u_outware_rel_rep",dw_child_dddw)
  6961. old_rep_select = Lower(dw_child_dddw.GetSQLSelect())
  6962. wf_editindex_lockf()
  6963. IF s_tran.d_long = 2 THEN
  6964. cur_scid = s_tran.c_long
  6965. Int li_item
  6966. li_item = ddlb_scid.FindItem(s_tran.d_string,0)
  6967. IF li_item > 0 THEN
  6968. ddlb_scid.SelectItem(li_item)
  6969. END IF
  6970. END IF
  6971. sle_usual_query.Text = Trim(arg_string_code)
  6972. IF NOT retrieve_all THEN
  6973. THIS.TriggerEvent("ue_usual_query_RETR") //修改ls_newselect,retrieve
  6974. ELSE
  6975. IF if_sharedata THEN
  6976. ds_share.ShareData(dw_pageretr)
  6977. ELSE
  6978. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  6979. THIS.TriggerEvent('RETRIEVE_pageretr')
  6980. END IF
  6981. END IF
  6982. IF retrieve_all THEN
  6983. THIS.TriggerEvent("ue_usual_query_filt")
  6984. END IF
  6985. uc_column_int = 27 //uc dw前7列可以编辑
  6986. child_column_int = 31 //子dw前18列可以编辑
  6987. uo_ware = CREATE uo_outware_sale
  6988. uo_ware.commit_transaction = sqlca
  6989. IF sys_option_outwaresale_rateedit = 1 THEN
  6990. dw_child.Modify ("u_outwaremx_rate_t.color=16711680")
  6991. dw_child.Modify ("u_outwaremx_rate.color=16711680")
  6992. dw_child.Modify ("u_outwaremx_rate.protect=0")
  6993. ELSE
  6994. dw_child.Modify ("u_outwaremx_rate.protect=1")
  6995. END IF
  6996. if sys_option_hide_ware = 1 then
  6997. dw_child.Modify ("u_outwaremx_status_t.color=16711680")
  6998. dw_child.Modify ("u_outwaremx_status.color=16711680")
  6999. dw_child.Modify ("u_outwaremx_status.protect=0")
  7000. dw_child.Modify ("u_outwaremx_woodcode_t.color=16711680")
  7001. dw_child.Modify ("u_outwaremx_woodcode.color=16711680")
  7002. dw_child.Modify ("u_outwaremx_woodcode.protect=0")
  7003. dw_child.Modify ("u_outwaremx_pcode_t.color=16711680")
  7004. dw_child.Modify ("u_outwaremx_pcode.color=16711680")
  7005. dw_child.Modify ("u_outwaremx_pcode.protect=0")
  7006. ELSE
  7007. dw_child.Modify ("u_outwaremx_status.protect=1")
  7008. dw_child.Modify ("u_outwaremx_woodcode.protect=1")
  7009. dw_child.Modify ("u_outwaremx_pcode.protect=1")
  7010. end if
  7011. uo_fieb = create uo_ljfieb
  7012. uo_fieb.commit_transaction = sys_email_sqlca
  7013. uo_cus_price = CREATE uo_cusprice
  7014. s_hide_col s_col, s_null
  7015. s_col = s_null
  7016. s_col.col_1 = 'billamt'
  7017. f_hide_col(122,dw_uc,s_col) //隐藏销售价
  7018. s_col = s_null
  7019. s_col.col_1 = 'u_outwaremx_enprice'
  7020. s_col.col_2 = 'u_outwaremx_rebate'
  7021. s_col.col_3 = 'u_outwaremx_tax'
  7022. s_col.col_4 = 'enamt'
  7023. s_col.col_5 = 'u_outwaremx_enamt_tax'
  7024. s_col.col_6 = 'u_outwaremx_fprice'
  7025. s_col.col_7 = 'u_outwaremx_bsamt'
  7026. s_col.col_8 = 'u_outwaremx_bsamt_tax'
  7027. s_col.col_9 = 'u_outwaremx_price'
  7028. s_col.col_10 = 'u_outwaremx_otherprice'
  7029. f_hide_col(122,dw_child,s_col) //隐藏销售价
  7030. s_col = s_null
  7031. s_col.col_1 = 'u_outwaremx_ware_fprice'
  7032. s_col.col_2 = 'enamt2'
  7033. s_col.col_3 = 'u_outwaremx_dftsaleprice'
  7034. s_col.col_4 = 'enamt_notax'
  7035. s_col.col_5 = 'enamt2o'
  7036. s_col.col_6 = 'enprice_notax'
  7037. s_col.col_7 = 'z_h_price'
  7038. s_col.col_8 = 'z_h_amt'
  7039. f_hide_col(122,dw_child,s_col) //隐藏销售价
  7040. s_col = s_null
  7041. s_col.col_1 = 'gpamt'
  7042. f_hide_col(843,dw_child,s_col) //隐藏销售毛利
  7043. s_col = s_null
  7044. s_col.col_1 = 'u_outwaremx_cost'
  7045. s_col.col_2 = 'u_outwaremx_costamt'
  7046. f_hide_col(490,dw_child,s_col) //隐藏 出仓成本价
  7047. s_col = s_null
  7048. s_col.col_2 = 'u_outwaremx_cost_notax'
  7049. f_hide_col(123,dw_child,s_col)
  7050. s_hide_col s_col_mtrlsectype
  7051. s_col_mtrlsectype.col_1 = 'u_mtrldef_mtrlsectype'
  7052. f_hide_col(1308,dw_child,s_col_mtrlsectype)
  7053. s_hide_col s_col_zxmtrlmode
  7054. s_col_zxmtrlmode.col_1 = 'u_mtrldef_zxmtrlmode'
  7055. f_hide_col(1309,dw_child,s_col_zxmtrlmode)
  7056. //if sys_option_outware_if_saleqty = 0 then
  7057. // dw_child.modify( "u_outwaremx_uqty_t.text = '数量'")
  7058. // dw_child.modify( "destroy u_outwaremx_saleqty ")
  7059. //else
  7060. // dw_child.modify( "u_outwaremx_uqty_t.text = '出仓数量'")
  7061. // dw_child.modify( "u_outwaremx_saleqty.visible = 1 ")
  7062. //end if
  7063. //String arg_msg
  7064. //IF s_tran.e_long = 1 And UpperBound(s_tran.arr_long) > 0 THEN
  7065. // cb_add.TriggerEvent(Clicked!)
  7066. // wf_autoaddmx_rp(s_tran,arg_msg)
  7067. //END IF
  7068. end event
  7069. event refresh_interface;call super::refresh_interface;ddlb_status.Enabled = Not dw_edit_mode
  7070. ddlb_scid.Enabled = Not dw_edit_mode
  7071. cbx_enamt_edit.Enabled = Not dw_edit_mode
  7072. cbx_enamt_notax_edit.Enabled = Not dw_edit_mode
  7073. cbx_packqty_cmpl.Enabled = Not dw_edit_mode
  7074. cbx_zk.Enabled = Not dw_edit_mode
  7075. IF dw_edit_mode THEN
  7076. ddlb_scid.Enabled = False
  7077. ELSE
  7078. IF sys_scid > 0 THEN
  7079. ddlb_scid.Enabled = False
  7080. ELSE
  7081. ddlb_scid.Enabled = True
  7082. END IF
  7083. END IF
  7084. st_msg.X = dw_pageretr.X
  7085. st_msg.Y = dw_pageretr.Y
  7086. st_msg.Width = dw_pageretr.Width
  7087. st_msg.Height = dw_pageretr.Height
  7088. st_msg.Visible = dw_edit_mode
  7089. IF Not dw_edit_mode THEN
  7090. st_msg.Text = ''
  7091. END IF
  7092. wf_flagstatus_rf()
  7093. String ls_sqlstr
  7094. //编缉状态明细不选择
  7095. IF dw_edit_mode THEN
  7096. dw_child.SelectRow(0,False)
  7097. END IF
  7098. IF Not dw_edit_mode THEN cur_editfocus = 0
  7099. Long ls_sit = 0
  7100. //后面还有对金额的分权限处理
  7101. wf_enamt_facechg()
  7102. //IF ii_enamt_edit = 0 THEN
  7103. // dw_child.Modify('enamt.protect = 1~t enamt.Color = 0')
  7104. // dw_child.Modify('enamt_t.Color = 0')
  7105. //ELSE
  7106. // dw_child.Modify('enamt.protect = 0~t enamt.Color = "0~trgb(0,0,255)"')
  7107. // dw_child.Modify('enamt_t.Color = "0~trgb(0,0,255)"')
  7108. //END IF
  7109. //973-限制销售价,折扣(只能按价格表、报价、限价,不能手动录入)
  7110. //866-仓审后修改单价
  7111. //销售数量使用
  7112. IF sys_option_outware_if_saleqty = 0 THEN //不分离
  7113. dw_child.Modify('u_outwaremx_saleqty.protect = 1~t u_outwaremx_saleqty.Color = 0')
  7114. dw_child.Modify('u_outwaremx_saleqty_t.Color = 0')
  7115. ELSE
  7116. dw_child.Modify('u_outwaremx_saleqty.protect = 0~t u_outwaremx_saleqty.Color = "0~trgb(0,0,255)"')
  7117. dw_child.Modify('u_outwaremx_saleqty_t.Color = "0~trgb(0,0,255)"')
  7118. END IF
  7119. IF Not dw_edit_mode THEN
  7120. dw_child.Modify('u_mtrldef_sumneed_qty.visible=0 ~n u_mtrldef_sumware_qty.visible=0 ~n u_mtrldef_curware_qty.visible=0')
  7121. ELSE
  7122. 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')
  7123. dw_child.Modify('u_mtrldef_sumneed_qty.visible=1 ~n u_mtrldef_sumware_qty.visible=1 ~n u_mtrldef_curware_qty.visible=1')
  7124. ls_sit = Long(dw_child.Describe('u_outwaremx_mxdscrp.X'))+Long(dw_child.Describe('u_outwaremx_mxdscrp.width'))
  7125. dw_child.Modify('u_mtrldef_curware_qty.x='+String(ls_sit))
  7126. ls_sit = Long(dw_child.Describe('u_mtrldef_curware_qty.X'))+Long(dw_child.Describe('u_mtrldef_curware_qty.width'))
  7127. dw_child.Modify('u_mtrldef_sumware_qty.x='+String(ls_sit))
  7128. ls_sit = Long(dw_child.Describe('u_mtrldef_sumware_qty.X'))+Long(dw_child.Describe('u_mtrldef_sumware_qty.width'))
  7129. dw_child.Modify('u_mtrldef_sumneed_qty.x='+String(ls_sit))
  7130. END IF
  7131. IF dw_edit_mode THEN
  7132. IF cur_editfocus = 1 Or cur_editfocus = 0 THEN //新建 or 非编辑
  7133. 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')
  7134. 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')
  7135. cb_xm.Enabled = True
  7136. ELSE //修改
  7137. IF sys_option_confirmaudit_sale = 1 THEN
  7138. IF priceflag = 1 THEN
  7139. 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')
  7140. IF flag = 0 THEN
  7141. 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')
  7142. ELSEIF flag = 1 And secflag = 0 THEN
  7143. 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')
  7144. IF Not f_power_ind(866) THEN
  7145. dw_child.Modify('u_outwaremx_enprice.protect=1 ~n u_outwaremx_rebate.protect=1 ~n enamt.protect=1 ~n ')
  7146. END IF
  7147. END IF
  7148. cb_xm.Enabled = False
  7149. ELSE
  7150. 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')
  7151. 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')
  7152. cb_xm.Enabled = True
  7153. END IF
  7154. ELSE
  7155. IF flag = 1 And secflag = 0 THEN
  7156. 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')
  7157. 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')
  7158. IF Not f_power_ind(866) THEN
  7159. dw_child.Modify('u_outwaremx_enprice.protect=1 ~n u_outwaremx_rebate.protect=1 ~n enamt.protect=1 ~n ')
  7160. END IF
  7161. cb_xm.Enabled = False
  7162. ELSE
  7163. 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')
  7164. 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')
  7165. cb_xm.Enabled = True
  7166. END IF
  7167. END IF
  7168. END IF
  7169. ELSE
  7170. dw_uc.Modify('u_outware_storageid.protect=0')
  7171. dw_child.Modify('u_mtrldef_mtrlcode.protect=0 ~n u_outwaremx_uqty.protect=0 ~n u_outwaremx_addqty.protect=0 ~n ')
  7172. END IF
  7173. IF sys_power_issuper Or Not f_power_ind(973) THEN
  7174. IF sys_power_issuper Or Not f_power_ind(1710) THEN
  7175. IF ii_enamt_edit = 0 THEN
  7176. // dw_child.Modify('u_outwaremx_enprice.protect=0 ~n u_outwaremx_rebate.protect=0 ')
  7177. dw_child.Modify('u_outwaremx_enprice.protect=0 ') //973 限制单价
  7178. ELSE
  7179. dw_child.Modify('u_outwaremx_enprice.protect=1 ')
  7180. // IF ii_enamt_notax_edit = 0 THEN
  7181. // dw_child.Modify('enamt.protect=0 ~n ')
  7182. // ELSE
  7183. // // dw_child.Modify('enamt_notax.protect=0 ~n ')
  7184. // END IF
  7185. END IF
  7186. ELSE
  7187. dw_child.Modify('u_outwaremx_enprice.protect=1 ')
  7188. // IF ii_enamt_edit = 0 THEN
  7189. // 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) "')
  7190. // ELSE
  7191. //
  7192. // IF ii_enamt_notax_edit = 0 THEN
  7193. // dw_child.Modify('enamt.protect="0~tif (u_outwaremx_ifrel =1 , 1 ,0)" ~n ')
  7194. // ELSE
  7195. // // dw_child.Modify('enamt_notax.protect="0~tif (u_outwaremx_ifrel =1 , 1 ,0)" ~n ')
  7196. // END IF
  7197. // END IF
  7198. END IF
  7199. ELSE
  7200. // dw_child.Modify('u_outwaremx_enprice.protect=1 ~n u_outwaremx_rebate.protect=1 ~n enamt.protect=1 ~n enamt_notax.protect=1 ~n ')
  7201. dw_child.Modify('u_outwaremx_enprice.protect=1 ')
  7202. END IF
  7203. IF sys_power_issuper Or Not f_power_ind(492) THEN //492 限制折扣
  7204. dw_child.Modify('u_outwaremx_rebate.protect=0 ')
  7205. ELSE
  7206. dw_child.Modify('u_outwaremx_rebate.protect=1 ')
  7207. END IF
  7208. IF sys_power_issuper Or not f_power_ind(1710) THEN //1710 销售订单限制单价
  7209. dw_child.Modify('u_outwaremx_enprice.protect=0 ')
  7210. ELSE
  7211. dw_child.Modify('u_outwaremx_enprice.protect="0~tif (u_outwaremx_ifrel =1 , 1 ,0)"')
  7212. END IF
  7213. IF sys_option_packqty_sale = 0 THEN
  7214. dw_child.Modify('u_outwaremx_packqty.protect=1 ')
  7215. ELSE
  7216. dw_child.Modify('u_outwaremx_packqty.protect=0 ')
  7217. END IF
  7218. end event
  7219. event close;call super::close;destroy uo_ware
  7220. destroy uo_fieb
  7221. DESTROY uo_cus_price
  7222. wf_del_tempfilepathname()
  7223. end event
  7224. event ue_f8;call super::ue_f8;//用于选择明细内容,被F8[默认]\dw_child.doubleclicked调用
  7225. If Not dw_edit_mode Then Return
  7226. If dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 Then Return
  7227. //IF flag = 1 THEN RETURN
  7228. Long child_row,ll_storageid = 0,cnt_childdw
  7229. Long ll_moneyid
  7230. Long ls_null
  7231. Long chc = 1,ls_j,ll_custid
  7232. Decimal lde_rate,ld_tax
  7233. String ls_msg
  7234. s_cmpl_qty arg_cmpl,null_cmpl
  7235. Decimal ld_qty
  7236. Int li_mtrlid,li_cusid
  7237. Dec ld_cusprice
  7238. string ls_cusmtrlcode,ls_cusmtrlname,ls_cusmtrlmode
  7239. s_edit_index_tran s_tranf8 //传递参数使用
  7240. SetNull(ls_null)
  7241. dw_uc.AcceptText()
  7242. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  7243. If ll_moneyid = 0 Or IsNull(ll_moneyid) Then
  7244. MessageBox('提示','请先选择币种',information!,OK!)
  7245. Return
  7246. End If
  7247. If wf_get_cusid(ll_custid) = 0 Then
  7248. Return
  7249. End If
  7250. dw_uc.AcceptText()
  7251. dw_child.AcceptText()
  7252. child_row = dw_child.GetRow()
  7253. If sys_option_hide_ware = 0 Then //如果隐藏仓库的,直接选物料
  7254. ll_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  7255. If ll_storageid = 0 Or IsNull(ll_storageid) Then
  7256. MessageBox('提示','请先选择仓库',information!,OK!)
  7257. Return
  7258. End If
  7259. Int li_if_cus_mtrlware
  7260. Select balctype Into :li_if_cus_mtrlware
  7261. From u_storage
  7262. Where storageid = :ll_storageid;
  7263. If sqlca.SQLCode <> 0 Then
  7264. MessageBox('错误','查询仓库是否使用客户库存失败',stopsign!,OK!)
  7265. Return
  7266. End If
  7267. //初始化参数
  7268. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  7269. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  7270. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  7271. s_tranf8.b_long = 0
  7272. If li_if_cus_mtrlware = 1 Then ///////////// //
  7273. s_tranf8.c_long = ll_custid
  7274. Else
  7275. s_tranf8.c_long = -1
  7276. End If
  7277. If Not IsValid(w_mtrlware_storageid_ch) Then
  7278. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  7279. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  7280. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  7281. s_tranf8.d_long = ll_storageid
  7282. If dw_child.GetRow() > 0 Then s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()])
  7283. OpenWithParm(w_mtrlware_storageid_ch,s_tranf8)
  7284. s_mtrlware_noalloc_array S_INSCUST
  7285. S_INSCUST = Message.PowerObjectParm
  7286. For ls_j = 1 To UpperBound(S_INSCUST.mtrlwareid)
  7287. If S_INSCUST.mtrlwareid[ls_j] > 0 Then
  7288. If dw_child.GetRow() > 0 Then
  7289. If dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 0 Then
  7290. child_row = dw_child.InsertRow (0)
  7291. Else
  7292. child_row = dw_child.GetRow()
  7293. End If
  7294. Else
  7295. child_row = dw_child.InsertRow (0)
  7296. End If
  7297. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[ls_j]
  7298. dw_child.Object.u_outwaremx_mtrlid[child_row] = S_INSCUST.mtrlid[ls_j]
  7299. dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.u_mtrldef_mtrlcode[ls_j]
  7300. dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.u_mtrldef_mtrlname[ls_j]
  7301. dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST.u_mtrldef_mtrlmode[ls_j]
  7302. dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j]
  7303. If sys_option_outware_Sale_ware = 0 Then
  7304. dw_child.Object.u_outwaremx_saleqty[child_row] = 0
  7305. dw_child.Object.u_outwaremx_uqty[child_row] = 0
  7306. dw_child.Object.u_outwaremx_addqty[child_row] = 0
  7307. ElseIf sys_option_outware_Sale_ware = 1 Then
  7308. dw_child.Object.u_outwaremx_saleqty[child_row] = S_INSCUST.noallocqty[ls_j]- S_INSCUST.noauditingqty[ls_j]
  7309. dw_child.Object.u_outwaremx_uqty[child_row] = S_INSCUST.noallocqty[ls_j]- S_INSCUST.noauditingqty[ls_j]
  7310. dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j]- S_INSCUST.noauditingaddqty[ls_j]
  7311. Else
  7312. dw_child.Object.u_outwaremx_saleqty[child_row] = S_INSCUST.noallocqty[ls_j]
  7313. dw_child.Object.u_outwaremx_uqty[child_row] = S_INSCUST.noallocqty[ls_j]
  7314. dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j]
  7315. End If
  7316. dw_child.Object.u_outwaremx_planprice[child_row] = S_INSCUST.planprice[ls_j]
  7317. dw_child.Object.u_outwaremx_storageid[child_row] = S_INSCUST.storageid[ls_j]
  7318. dw_child.Object.u_outwaremx_plancode[child_row] = S_INSCUST.plancode[ls_j]
  7319. dw_child.Object.u_outwaremx_dxflag[child_row] = S_INSCUST.dxflag[ls_j]
  7320. dw_child.Object.u_outwaremx_status[child_row] = S_INSCUST.status[ls_j]
  7321. dw_child.Object.u_outwaremx_woodcode[child_row] = S_INSCUST.woodcode[ls_j]
  7322. dw_child.Object.u_outwaremx_pcode[child_row] = S_INSCUST.pcode[ls_j]
  7323. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST.u_mtrldef_zxmtrlmode[ls_j]
  7324. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST.u_mtrldef_mtrlsectype[ls_j]
  7325. dw_child.Object.u_mtrldef_mtrltype[child_row] = S_INSCUST.u_mtrldef_mtrltype[ls_j]
  7326. dw_child.Object.u_outwaremx_net_weight[child_row] = S_INSCUST.u_mtrldef_net_weight[ls_j]
  7327. dw_child.Object.u_outwaremx_gross_weight[child_row] = S_INSCUST.u_mtrldef_gross_weight[ls_j]
  7328. dw_child.Object.u_outwaremx_cubage[child_row] = S_INSCUST.u_mtrldef_cubage[ls_j]
  7329. dw_child.Object.u_mtrldef_lmsaleprice[child_row] = S_INSCUST.lmsaleprice[ls_j]
  7330. f_find_unitrate(S_INSCUST.mtrlid[ls_j], S_INSCUST.u_mtrldef_unit[ls_j], lde_rate)
  7331. dw_child.Object.u_outwaremx_rate[child_row] = lde_rate
  7332. dw_child.Object.u_outwaremx_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j]
  7333. String ls_priceformula
  7334. s_mtrldef_array arg_s_mtrldef
  7335. If f_find_mtrl(S_INSCUST.u_mtrldef_mtrlcode[ls_j],-1,arg_s_mtrldef) = 0 Then
  7336. ls_priceformula = ''
  7337. Else
  7338. ls_priceformula = arg_s_mtrldef.priceformula[1]
  7339. IF arg_s_mtrldef.saleunit[1] = 1 THEN
  7340. dw_child.Object.u_outwaremx_unit[child_row] = arg_s_mtrldef.unit_buy[1]
  7341. dw_child.Object.u_outwaremx_rate[child_row] = arg_s_mtrldef.rate_buy[1]
  7342. ELSEIF arg_s_mtrldef.saleunit[1] = 2 THEN
  7343. dw_child.Object.u_outwaremx_unit[child_row] = arg_s_mtrldef.unit_scll[1]
  7344. dw_child.Object.u_outwaremx_rate[child_row] = arg_s_mtrldef.rate_scll[1]
  7345. ELSEIF arg_s_mtrldef.saleunit[1] = 3 THEN
  7346. dw_child.Object.u_outwaremx_unit[child_row] = arg_s_mtrldef.unit_sale[1]
  7347. dw_child.Object.u_outwaremx_rate[child_row] = arg_s_mtrldef.rate_sale[1]
  7348. END IF
  7349. End If
  7350. dw_child.Object.u_outwaremx_priceformula[child_row] = ls_priceformula
  7351. wf_get_price(child_row)
  7352. dw_child.Object.u_mtrldef_curware_qty[child_row] = S_INSCUST.noallocqty[ls_j]
  7353. dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null
  7354. dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null
  7355. dw_child.Object.u_mtrldef_handtype[child_row] = S_INSCUST.u_mtrldef_handtype[ls_j]
  7356. dw_child.Object.u_mtrldef_mtrlengname[child_row] = S_INSCUST.u_mtrldef_mtrlengname[ls_j]
  7357. dw_child.Object.u_mtrldef_barcode[child_row] = S_INSCUST.barcode[ls_j]
  7358. li_mtrlid=S_INSCUST.mtrlid[ls_j] //客户物料名称
  7359. li_cusid=dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  7360. Select isnull(cusmtrlcode,''), isnull(cusmtrlname,''), isnull(cusmtrlmode,'')
  7361. Into :ls_cusmtrlcode, :ls_cusmtrlname, :ls_cusmtrlmode From u_cusmtrlname Where mtrlid= :li_mtrlid and cusid= :li_cusid ;
  7362. dw_child.Object.u_cusmtrlname_cusmtrlname[child_row] = ls_cusmtrlname
  7363. dw_child.Object.u_cusmtrlname_cusmtrlcode[child_row] = ls_cusmtrlcode
  7364. dw_child.Object.u_cusmtrlname_cusmtrlmode[child_row] =ls_cusmtrlmode
  7365. //计算单价
  7366. If ls_priceformula <> '' Then
  7367. arg_cmpl = null_cmpl
  7368. arg_cmpl.qty = dw_child.Object.u_outwaremx_enprice[child_row]
  7369. arg_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[child_row]
  7370. arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row]
  7371. arg_cmpl.price = dw_child.Object.u_outwaremx_enprice[child_row]
  7372. arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row]
  7373. arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row]
  7374. arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row]
  7375. arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row]
  7376. arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row]
  7377. arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row]
  7378. li_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row]
  7379. li_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  7380. Select price
  7381. Into :ld_cusprice
  7382. From u_cust
  7383. Inner JOIN u_sale_price_mx ON u_sale_price_mx.Pricelistid = u_cust.Pricelistid
  7384. Where u_sale_price_mx.mtrlid = :li_mtrlid
  7385. And u_cust.cusid = :li_cusid
  7386. order by u_sale_price_mx.sys_changetime desc;
  7387. If sqlca.SQLCode <> 0 Then
  7388. ld_cusprice = 0
  7389. End If
  7390. arg_cmpl.cusprice = ld_cusprice
  7391. arg_cmpl.num = sys_option_outware_price_amt_round
  7392. arg_cmpl.addvalue = 1
  7393. arg_cmpl.flag = True
  7394. ld_qty = 0
  7395. If f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 Then
  7396. MessageBox('提示',ls_msg, information!, OK! )
  7397. Return
  7398. End If
  7399. dw_child.Object.u_outwaremx_enprice[child_row] = ld_qty
  7400. End If
  7401. If f_find_tax(ll_custid,'u_cust',ld_tax) = 0 Then
  7402. ld_tax = 0
  7403. Else
  7404. dw_child.Object.u_outwaremx_tax[child_row] = ld_tax
  7405. End If
  7406. End If
  7407. Next
  7408. End If
  7409. Else
  7410. If Not IsValid(W_mtrldef_edit) Then
  7411. //传递参数使用
  7412. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  7413. s_tranf8.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  7414. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  7415. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  7416. s_tranf8.if_select_all = True //多选
  7417. s_tranf8.b_long = -1 //选采购
  7418. s_tranf8.c_long = -1
  7419. If dw_child.GetRow() > 0 Then s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()])
  7420. OpenWithParm(W_mtrldef_edit,s_tranf8) //调用
  7421. s_mtrldef_array S_INSCUST2
  7422. S_INSCUST2 = Message.PowerObjectParm //接受返回结构
  7423. For ls_j = 1 To UpperBound(S_INSCUST2.mtrlid)
  7424. If S_INSCUST2.mtrlid[ls_j] > 0 Then //正常返回值则可以取以下值
  7425. If dw_child.GetRow() > 0 Then
  7426. If dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 0 Then
  7427. child_row = dw_child.InsertRow (0)
  7428. Else
  7429. child_row = dw_child.GetRow()
  7430. End If
  7431. Else
  7432. child_row = dw_child.InsertRow (0)
  7433. End If
  7434. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = 0
  7435. dw_child.Object.u_outwaremx_mtrlid[child_row] = S_INSCUST2.mtrlid[ls_j]
  7436. dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST2.mtrlcode[ls_j]
  7437. dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST2.mtrlname[ls_j]
  7438. dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST2.mtrlmode[ls_j]
  7439. dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST2.unit[ls_j]
  7440. dw_child.Object.u_outwaremx_saleqty[child_row] = 0
  7441. dw_child.Object.u_outwaremx_uqty[child_row] = 0
  7442. dw_child.Object.u_outwaremx_addqty[child_row] = 0
  7443. dw_child.Object.u_outwaremx_planprice[child_row] = S_INSCUST2.planprice[ls_j]
  7444. dw_child.Object.u_outwaremx_storageid[child_row] = 0
  7445. dw_child.Object.u_outwaremx_plancode[child_row] = ''
  7446. //dw_child.Object.u_outwaremx_dxflag[child_row] = 0
  7447. dw_child.Object.u_outwaremx_status[child_row] = S_INSCUST2.status[ls_j]
  7448. dw_child.Object.u_outwaremx_woodcode[child_row] = S_INSCUST2.woodcode[ls_j]
  7449. dw_child.Object.u_outwaremx_pcode[child_row] = S_INSCUST2.pcode[ls_j]
  7450. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST2.zxmtrlmode[ls_j]
  7451. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST2.mtrlsectype[ls_j]
  7452. dw_child.Object.u_mtrldef_mtrlengname[child_row] = S_INSCUST2.mtrlengname[ls_j]//
  7453. dw_child.Object.u_mtrldef_barcode[child_row] = S_INSCUST2.barcode[ls_j]
  7454. dw_child.Object.u_outwaremx_unit[child_row] = S_INSCUST2.unit[ls_j]
  7455. f_find_unitrate(S_INSCUST2.mtrlid[ls_j], S_INSCUST2.unit[ls_j], lde_rate)
  7456. dw_child.Object.u_outwaremx_rate[child_row] = lde_rate
  7457. s_mtrldef_array arg_s_mtrldef_1
  7458. If f_find_mtrl(S_INSCUST2.mtrlcode[ls_j],-1,arg_s_mtrldef_1) <> 0 Then
  7459. IF arg_s_mtrldef_1.saleunit[1] = 1 THEN
  7460. dw_child.Object.u_outwaremx_unit[child_row] = arg_s_mtrldef_1.unit_buy[1]
  7461. dw_child.Object.u_outwaremx_rate[child_row] = arg_s_mtrldef_1.rate_buy[1]
  7462. ELSEIF arg_s_mtrldef_1.saleunit[1] = 2 THEN
  7463. dw_child.Object.u_outwaremx_unit[child_row] = arg_s_mtrldef_1.unit_scll[1]
  7464. dw_child.Object.u_outwaremx_rate[child_row] = arg_s_mtrldef_1.rate_scll[1]
  7465. ELSEIF arg_s_mtrldef_1.saleunit[1] = 3 THEN
  7466. dw_child.Object.u_outwaremx_unit[child_row] = arg_s_mtrldef_1.unit_sale[1]
  7467. dw_child.Object.u_outwaremx_rate[child_row] = arg_s_mtrldef_1.rate_sale[1]
  7468. END IF
  7469. End If
  7470. wf_get_price(child_row)
  7471. dw_child.Object.u_mtrldef_curware_qty[child_row] = ls_null
  7472. dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null
  7473. dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null
  7474. li_mtrlid=S_INSCUST2.mtrlid[ls_j] //客户物料名称
  7475. li_cusid=dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  7476. Select isnull(cusmtrlcode,''), isnull(cusmtrlname,''), isnull(cusmtrlmode,'')
  7477. Into :ls_cusmtrlmode, :ls_cusmtrlname, :ls_cusmtrlcode
  7478. From u_cusmtrlname
  7479. Where mtrlid= :li_mtrlid and cusid= :li_cusid ;
  7480. dw_child.Object.u_cusmtrlname_cusmtrlname[child_row] = ls_cusmtrlname
  7481. dw_child.Object.u_cusmtrlname_cusmtrlcode[child_row] = ls_cusmtrlcode
  7482. dw_child.Object.u_cusmtrlname_cusmtrlmode[child_row] =ls_cusmtrlmode
  7483. If f_find_tax(ll_custid,'u_cust',ld_tax) = 0 Then
  7484. ld_tax = 0
  7485. Else
  7486. dw_child.Object.u_outwaremx_tax[child_row] = ld_tax
  7487. End If
  7488. dw_child.Object.u_outwaremx_priceformula[child_row] = S_INSCUST2.priceformula[ls_j]
  7489. //计算单价
  7490. If S_INSCUST2.priceformula[ls_j] <> '' Then
  7491. arg_cmpl = null_cmpl
  7492. arg_cmpl.qty = dw_child.Object.u_outwaremx_enprice[child_row]
  7493. arg_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[child_row]
  7494. arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row]
  7495. arg_cmpl.price = dw_child.Object.u_outwaremx_enprice[child_row]
  7496. arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row]
  7497. arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row]
  7498. arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row]
  7499. arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row]
  7500. arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row]
  7501. arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row]
  7502. li_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row]
  7503. li_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  7504. Select price
  7505. Into :ld_cusprice
  7506. From u_cust
  7507. Inner JOIN u_sale_price_mx ON u_sale_price_mx.Pricelistid = u_cust.Pricelistid
  7508. Where u_sale_price_mx.mtrlid = :li_mtrlid
  7509. And u_cust.cusid = :li_cusid
  7510. order by u_sale_price_mx.sys_changetime desc;
  7511. If sqlca.SQLCode <> 0 Then
  7512. ld_cusprice = 0
  7513. End If
  7514. arg_cmpl.cusprice = ld_cusprice
  7515. arg_cmpl.num = 2
  7516. arg_cmpl.addvalue = 1
  7517. arg_cmpl.flag = True
  7518. ld_qty = 0
  7519. If f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 Then
  7520. MessageBox('提示',ls_msg, information!, OK! )
  7521. Return
  7522. End If
  7523. dw_child.Object.u_outwaremx_enprice[child_row] = ld_qty
  7524. End If
  7525. End If
  7526. Next
  7527. End If
  7528. End If
  7529. If sys_option_outware_if_saleqty = 0 Then
  7530. If ii_packqty_cmpl = 1 Then
  7531. dw_child.SetColumn('u_outwaremx_packqty')
  7532. Else
  7533. dw_child.SetColumn('u_outwaremx_uqty')
  7534. End If
  7535. // dw_child.SetColumn('u_outwaremx_uqty')
  7536. Else
  7537. dw_child.SetColumn('u_outwaremx_saleqty')
  7538. End If
  7539. dw_child.SetRedraw(True)
  7540. dw_child.SetFocus()
  7541. ////////////////////////////////// //
  7542. end event
  7543. event retrieve_childdw;call super::retrieve_childdw;Long row,uc_relid,ll_scid
  7544. row = dw_pageretr.GetRow()
  7545. IF row > 0 THEN
  7546. ll_scid = dw_pageretr.Object.u_outware_scid[row]
  7547. uc_relid = dw_pageretr.Object.u_outware_outwareid[row]
  7548. dw_child.SetRedraw (False)
  7549. dw_child.Retrieve(ll_scid,uc_relid)
  7550. dw_child.SetRedraw (True)
  7551. dw_fymx.SetRedraw (False)
  7552. dw_fymx.Retrieve(ll_scid,uc_relid)
  7553. dw_fymx.SetRedraw (True)
  7554. dw_bjmx.SetRedraw (False)
  7555. dw_bjmx.Retrieve(ll_scid,uc_relid)
  7556. dw_bjmx.SetRedraw (True)
  7557. this.TriggerEvent('ue_retrieve_his_pricemx')
  7558. ELSE
  7559. dw_child.Reset()
  7560. dw_fymx.Reset()
  7561. dw_bjmx.Reset()
  7562. END IF
  7563. end event
  7564. event ue_f9;call super::ue_f9;IF Not dw_edit_mode THEN RETURN
  7565. Long child_row
  7566. child_row = dw_uc.GetRow()
  7567. IF child_row = 0 THEN
  7568. MessageBox('提示','请选定出仓单!',information!,OK!)
  7569. RETURN
  7570. END IF
  7571. Long ll_ori_cusid
  7572. Long ll_scid, ll_moneyid
  7573. String ls_address
  7574. ll_ori_cusid = dw_uc.Object.u_outware_cusid[child_row]
  7575. IF Not IsValid(W_cust_edit) THEN
  7576. s_edit_index_tran s_ch_tran //传递参数使用
  7577. s_ch_tran.if_retrieve_all = False //是否一次RETRIEVE所有行
  7578. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  7579. s_ch_tran.arg_pkid = 0 //目标定位PKID (备用)
  7580. //查询列(物料编码)部分内容,用于初步筛选
  7581. dw_uc.AcceptText()
  7582. s_ch_tran.arg_string_code = Trim(dw_uc.Object.u_cust_cuscode[child_row])
  7583. OpenWithParm(W_cust_edit,s_ch_tran) //调用
  7584. s_custom S_INSCUST
  7585. S_INSCUST = Message.PowerObjectParm //接受返回结构
  7586. Long li_ifrel,ll_i
  7587. IF S_INSCUST.cusid > 0 THEN //正常返回值则可以取以下值
  7588. // IF S_INSCUST.cusid <> ll_ori_cusid And ll_ori_cusid <> 0 THEN
  7589. // FOR ll_i = 1 To dw_child.RowCount()
  7590. // IF dw_child.Object.u_outwaremx_relid[ll_i] > 0 THEN
  7591. // li_ifrel = 1
  7592. // EXIT
  7593. // END IF
  7594. // NEXT
  7595. //
  7596. // IF li_ifrel = 1 THEN
  7597. // IF MessageBox('询问','客户将要改变,明细内容已有原客户的订单内容,是否断续?',Question!,YesNo!) = 2 THEN
  7598. // RETURN
  7599. // ELSE
  7600. // FOR ll_i = 1 To dw_child.RowCount()
  7601. // dw_child.Object.u_outwaremx_ifrel[ll_i] = 0
  7602. // dw_child.Object.u_outwaremx_relid[ll_i] = 0
  7603. // dw_child.Object.u_outwaremx_relcode[ll_i] = ''
  7604. // NEXT
  7605. // END IF
  7606. // END IF
  7607. // END IF
  7608. //重置dw_child
  7609. IF wf_change_cusid(S_INSCUST.cusid) = 0 THEN RETURN
  7610. dw_uc.SetRedraw(False)
  7611. dw_uc.Object.u_outware_cusid[child_row] = S_INSCUST.cusid
  7612. dw_uc.Object.u_cust_name[child_row] = S_INSCUST.Name
  7613. dw_uc.Object.u_cust_cuscode[child_row] = S_INSCUST.cuscode
  7614. dw_uc.Object.u_outware_outrep[child_row] = S_INSCUST.bsntype
  7615. dw_uc.Object.u_outware_relstr_1[child_row] = S_INSCUST.freight
  7616. dw_uc.Object.u_outware_relstr_2[child_row] = S_INSCUST.freight_tele
  7617. dw_uc.Object.u_outware_relstr_3[child_row] = S_INSCUST.freight_address
  7618. dw_uc.Object.u_outware_rel_address[child_row] = S_INSCUST.Address
  7619. dw_uc.Object.u_outware_rel_tele[child_row] = S_INSCUST.tele
  7620. dw_uc.Object.u_outware_rel_tele1[child_row] = S_INSCUST.tele1
  7621. dw_uc.Object.u_outware_rel_fax[child_row] = S_INSCUST.faxno
  7622. dw_uc.Object.u_outware_rel_rep[child_row] = S_INSCUST.rep
  7623. IF S_INSCUST.banktypeid > 0 THEN
  7624. dw_uc.Object.u_outware_relint_1[child_row] = S_INSCUST.banktypeid
  7625. END IF
  7626. IF Len(S_INSCUST.freight_address) > 0 THEN
  7627. dw_uc.Object.u_outware_relstr_3[child_row] = S_INSCUST.freight_address
  7628. ELSE
  7629. SELECT
  7630. Address Into :ls_address
  7631. From u_station
  7632. Where stationname = :S_INSCUST.freight;
  7633. dw_uc.Object.u_outware_relstr_3[child_row] = ls_address
  7634. END IF
  7635. dw_uc.SetRedraw(True)
  7636. ll_scid = dw_uc.Object.u_outware_scid[child_row]
  7637. ll_moneyid = dw_uc.Object.u_outware_relint_2[child_row]
  7638. wf_getcusrepamt_info(ll_scid,S_INSCUST.cusid,ll_moneyid)
  7639. dw_uc.SetColumn("u_outware_rel_address")
  7640. END IF
  7641. END IF
  7642. end event
  7643. event ue_f7;call super::ue_f7;//引入销售订单
  7644. IF Not dw_edit_mode THEN RETURN
  7645. IF dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 THEN RETURN
  7646. Long ll_storageid
  7647. Long ll_scid
  7648. Long ll_taskid
  7649. String ls_taskcode
  7650. long ll_cusid
  7651. dw_uc.AcceptText()
  7652. ll_scid = dw_uc.Object.u_outware_scid[dw_uc.GetRow()]
  7653. IF sys_option_hide_ware = 0 THEN
  7654. ll_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  7655. IF ll_storageid = 0 Or IsNull(ll_storageid) THEN
  7656. MessageBox('提示','请先选择仓库',information!,OK!)
  7657. RETURN
  7658. END IF
  7659. END IF
  7660. s_saletask_find s_find
  7661. s_find.scid = ll_scid
  7662. s_find.areaid = sys_areaid
  7663. s_find.cusid= dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  7664. //THIS.Enabled = FALSE
  7665. IF Not IsValid(w_saletask_ch) THEN
  7666. s_saletask_ch s_saletask
  7667. OpenWithParm(w_saletask_ch,s_find)
  7668. s_saletask = Message.PowerObjectParm
  7669. IF s_saletask.taskid > 0 THEN
  7670. wf_ue_f7(s_saletask)
  7671. if IsNull(s_saletask.relcode) or s_saletask.relcode = '' then
  7672. dw_uc.Object.u_outware_part[dw_uc.GetRow()] = s_saletask.taskcode
  7673. else
  7674. dw_uc.Object.u_outware_part[dw_uc.GetRow()] = s_saletask.relcode
  7675. end if
  7676. END IF
  7677. END IF
  7678. //THIS.Enabled = TRUE
  7679. end event
  7680. event ue_viewprint;call super::ue_viewprint;//IF Not (f_power_ind(18) or f_power_ind(472)) THEN
  7681. IF Not (f_power_ind(18) ) THEN
  7682. MessageBox('提示',sys_msg_pow,information!,OK!)
  7683. RETURN
  7684. END IF
  7685. s_print_msg ls_prmsg
  7686. ls_prmsg.retr_pram_falg = 15
  7687. IF dw_pageretr.RowCount() = 0 THEN
  7688. MessageBox('提示','没有可打印的单据!',information!,OK!)
  7689. RETURN
  7690. END IF
  7691. IF sys_option_confirmprint_sale = 1 THEN
  7692. IF dw_pageretr.Object.u_outware_priceflag[dw_pageretr.GetRow()] <> 1 THEN
  7693. MessageBox('提示','单据还未确认,不能打印!',information!,OK!)
  7694. RETURN
  7695. END IF
  7696. END IF
  7697. IF sys_option_auditprint_sale = 1 THEN
  7698. IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] <> 1 THEN
  7699. MessageBox('提示','单据还未审核,不能打印!',information!,OK!)
  7700. RETURN
  7701. END IF
  7702. END IF
  7703. IF sys_option_print_one = 1 THEN
  7704. IF dw_pageretr.Object.u_outware_printnum[dw_pageretr.GetRow()] > 0 THEN
  7705. MessageBox('提示','根据系统选项275设置,发货单只能打印一次!',information!,OK!)
  7706. RETURN
  7707. END IF
  7708. END IF
  7709. If f_power_ind(2002,sys_msg_pow) And Not sys_power_issuper Then
  7710. If dw_pageretr.Object.u_outware_printnum[dw_pageretr.GetRow()] > 0 Then
  7711. MessageBox('系统提示','目标单据已打印,你当前权限不能重复打印单据!')
  7712. Return
  7713. End If
  7714. End If
  7715. long ll_scid, ll_outwareid, ll_cusid, ll_moneyid
  7716. ll_scid = dw_pageretr.Object.u_outware_scid[dw_pageretr.GetRow()]
  7717. ll_outwareid = dw_pageretr.Object.u_outware_outwareid[dw_pageretr.GetRow()]
  7718. ll_cusid = dw_pageretr.Object.u_outware_cusid[dw_pageretr.GetRow()]
  7719. ll_moneyid = dw_pageretr.Object.u_outware_relint_2[dw_pageretr.GetRow()]
  7720. IF sys_option_cusrepamt_limit = 2 THEN
  7721. wf_getcusrepamt_info(ll_scid,ll_cusid,ll_moneyid)
  7722. IF cur_cusrepamtflag = -1 THEN
  7723. MessageBox('系统提示','系统选项080限制~r~n'+cur_cusrepamtstr)
  7724. RETURN
  7725. END IF
  7726. END IF
  7727. IF ls_newname <> '' THEN
  7728. IF li_auditprint = 1 THEN
  7729. IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] = 0 THEN
  7730. MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!)
  7731. RETURN
  7732. END IF
  7733. END IF
  7734. ls_prmsg.obj_dwNAME = ls_newname
  7735. ELSE
  7736. ls_prmsg.obj_dwNAME = 'dw_rp_outware_sale_edit'
  7737. END IF
  7738. ls_prmsg.tag_text = '销售发货单'
  7739. ls_prmsg.filter_string = ''
  7740. ls_prmsg.pagech_flag = 0
  7741. ls_prmsg.retr_scid = ll_scid
  7742. ls_prmsg.retr_pramnmb = ll_outwareid
  7743. ls_prmsg.rowcnt = dw_child.RowCount()
  7744. IF ifpic = 1 THEN
  7745. String ls_msg
  7746. IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN
  7747. MessageBox('提示','下载图片失败!',information!,OK!)
  7748. RETURN
  7749. END IF
  7750. END IF
  7751. OpenWithParm(w_publ_preview,ls_prmsg)
  7752. IF ifpic = 1 THEN
  7753. Long li
  7754. FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path)
  7755. IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN
  7756. FileDelete(LS_PRMSG.s_pic.path[li])
  7757. END IF
  7758. NEXT
  7759. END IF
  7760. //**更新打印次料
  7761. String arg_msg
  7762. printnum = Message.DoubleParm
  7763. f_update_printnum('u_outware',printnum,ll_scid,ll_outwareid,'','',arg_msg,TRUE)
  7764. wf_refresh_curuc(ll_scid,ll_outwareid)
  7765. string ls_code
  7766. ls_code = dw_pageretr.Object.u_outware_outwarecode[dw_pageretr.GetRow()]
  7767. IF f_billevent_trigger (104, 1, ls_code, arg_msg) = 0 THEN
  7768. MessageBox('Error',arg_msg)
  7769. END IF
  7770. end event
  7771. event ue_print;call super::ue_print;//--直接打印
  7772. IF Not (f_power_ind(18) ) THEN
  7773. MessageBox('提示',sys_msg_pow,information!,OK!)
  7774. RETURN
  7775. END IF
  7776. uo_print_preview uo_print
  7777. S_print_MSG LS_PRMSG
  7778. IF dw_pageretr.RowCount() = 0 THEN
  7779. MessageBox('提示','没有可打印的单据!',information!,OK!)
  7780. RETURN
  7781. END IF
  7782. IF MessageBox ("询问","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  7783. IF sys_option_confirmprint_sale = 1 THEN
  7784. IF dw_pageretr.Object.u_outware_priceflag[dw_pageretr.GetRow()] <> 1 THEN
  7785. MessageBox('提示','单据还未确认,不能打印!',information!,OK!)
  7786. RETURN
  7787. END IF
  7788. END IF
  7789. IF sys_option_auditprint_sale = 1 THEN
  7790. IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] <> 1 THEN
  7791. MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!)
  7792. RETURN
  7793. END IF
  7794. END IF
  7795. IF sys_option_print_one = 1 THEN
  7796. IF dw_pageretr.Object.u_outware_printnum[dw_pageretr.GetRow()] > 0 THEN
  7797. MessageBox('提示','根据系统选项275设置,发货单只能打印一次!',information!,OK!)
  7798. RETURN
  7799. END IF
  7800. END IF
  7801. If f_power_ind(2002,sys_msg_pow) And Not sys_power_issuper Then
  7802. If dw_pageretr.Object.u_outware_printnum[dw_pageretr.GetRow()] > 0 Then
  7803. MessageBox('系统提示','目标单据已打印,你当前权限不能重复打印单据!')
  7804. Return
  7805. End If
  7806. End If
  7807. long ll_scid, ll_outwareid, ll_cusid, ll_moneyid
  7808. ll_scid = dw_pageretr.Object.u_outware_scid[dw_pageretr.GetRow()]
  7809. ll_outwareid = dw_pageretr.Object.u_outware_outwareid[dw_pageretr.GetRow()]
  7810. ll_cusid = dw_pageretr.Object.u_outware_cusid[dw_pageretr.GetRow()]
  7811. ll_moneyid = dw_pageretr.Object.u_outware_relint_2[dw_pageretr.GetRow()]
  7812. IF sys_option_cusrepamt_limit = 2 THEN
  7813. wf_getcusrepamt_info(ll_scid,ll_cusid,ll_moneyid)
  7814. IF cur_cusrepamtflag = -1 THEN
  7815. MessageBox('系统提示','系统选项080限制~r~n'+cur_cusrepamtstr)
  7816. RETURN
  7817. END IF
  7818. END IF
  7819. LS_PRMSG.retr_pram_falg = 15
  7820. IF ls_newname <> '' THEN
  7821. IF li_auditprint = 1 THEN
  7822. IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] = 0 THEN
  7823. MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!)
  7824. RETURN
  7825. END IF
  7826. END IF
  7827. LS_PRMSG.obj_dwNAME = ls_newname
  7828. ELSE
  7829. LS_PRMSG.obj_dwNAME = 'dw_rp_outware_sale_edit'
  7830. END IF
  7831. LS_PRMSG.TAG_TEXT = '销售单'
  7832. LS_PRMSG.FILTER_STRING = ''
  7833. LS_PRMSG.PAGECH_FLAG = 0
  7834. LS_PRMSG.retr_scid = ll_scid
  7835. LS_PRMSG.retr_pramnmb = ll_outwareid
  7836. LS_PRMSG.rowcnt = dw_child.RowCount()
  7837. IF ifpic = 1 THEN
  7838. String ls_msg
  7839. IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN
  7840. MessageBox('提示','下载图片失败!',information!,OK!)
  7841. RETURN
  7842. END IF
  7843. END IF
  7844. uo_print.FACT_PRINT_MSG = LS_PRMSG
  7845. String arg_msg
  7846. IF uo_print.uof_print_begin(arg_msg) = 0 THEN
  7847. MessageBox("错误",arg_msg,stopsign!,OK!)
  7848. RETURN
  7849. END IF
  7850. uo_print.ds_print()
  7851. IF ifpic = 1 THEN
  7852. Long li
  7853. FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path)
  7854. IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN
  7855. FileDelete(LS_PRMSG.s_pic.path[li])
  7856. END IF
  7857. NEXT
  7858. END IF
  7859. f_update_printnum('u_outware',1,ll_scid,ll_outwareid,'','',arg_msg,TRUE)
  7860. wf_refresh_curuc(ll_scid,ll_outwareid)
  7861. string ls_code
  7862. ls_code = dw_pageretr.Object.u_outware_outwarecode[dw_pageretr.GetRow()]
  7863. IF f_billevent_trigger (104, 1, ls_code, arg_msg) = 0 THEN
  7864. MessageBox('Error',arg_msg)
  7865. END IF
  7866. end event
  7867. event ue_addzy;call super::ue_addzy;IF Not (f_power_ind(699) OR f_power_ind(766)) THEN
  7868. MessageBox('提示',sys_msg_pow,information!,OK!)
  7869. RETURN
  7870. END IF
  7871. IF dw_edit_mode THEN RETURN
  7872. String arg_msg = ''
  7873. String ls_str
  7874. Long uc_row
  7875. s_inputbox s_sreu
  7876. uc_row = dw_pageretr.GetRow()
  7877. IF uc_row <= 0 THEN
  7878. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  7879. RETURN
  7880. END IF
  7881. s_sreu.Title = '请输入要补充到备注的内容'
  7882. s_sreu.old_text = ''
  7883. OpenWithParm(w_inputbox,s_sreu)
  7884. ls_str = Message.StringParm
  7885. IF Trim(ls_str) = '' OR IsNull(ls_str) THEN RETURN
  7886. 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
  7887. MessageBox('错误',arg_msg,stopsign!,OK!)
  7888. RETURN
  7889. ELSE
  7890. MessageBox('提示','添加备注操作成功!',information!,OK!)
  7891. wf_refresh_curuc(dw_pageretr.Object.u_outware_scid[uc_row],dw_pageretr.Object.u_outware_outwareid[uc_row])
  7892. END IF
  7893. end event
  7894. event resize;call super::resize;st_msg.width = this.width - (3600 - 1170)
  7895. st_cusbalc.width = this.width / 2
  7896. cb_fhmx.Y = dw_uc.Y + dw_uc.Height
  7897. cb_fymx.Y = cb_fhmx.Y
  7898. cb_bjmx.Y = cb_fhmx.Y
  7899. cb_scanbill.Y= cb_fhmx.Y
  7900. cb_new_scanbill.y= cb_fhmx.Y
  7901. dw_child.X = 0
  7902. dw_child.Y = cb_fhmx.Y + cb_fhmx.Height
  7903. dw_child.Width = this.workspacewidth() - dw_child.X
  7904. dw_child.Height = THIS.workspaceheight() - dw_child.Y
  7905. dw_fymx.x = 0
  7906. dw_fymx.y = dw_child.Y
  7907. dw_fymx.width = dw_child.width
  7908. dw_fymx.height = dw_child.height
  7909. dw_bjmx.x = 0
  7910. dw_bjmx.y = dw_child.Y
  7911. dw_bjmx.width = dw_child.width
  7912. dw_bjmx.height = dw_child.height
  7913. end event
  7914. event ue_f12;call super::ue_f12;IF NOT IsValid(w_unit_ch) THEN
  7915. IF dw_child.GetRow() < 1 THEN RETURN
  7916. Long ls_mtrlid //,ls_cusid,ls_moneyid
  7917. // String ls_1stunit,arg_msg,ls_status,ls_woodcode,ls_pcode
  7918. // Decimal rtn_price,rtn_zqrate,rtn_rate
  7919. // ls_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  7920. // ls_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  7921. //
  7922. // IF IsNull(ls_cusid) OR ls_cusid = 0 THEN
  7923. // THIS.TriggerEvent("ue_f9")
  7924. // END IF
  7925. ls_mtrlid = dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()]
  7926. // ls_status = dw_child.Object.u_outwaremx_status[dw_child.GetRow()]
  7927. // ls_woodcode = dw_child.Object.u_outwaremx_woodcode[dw_child.GetRow()]
  7928. // ls_pcode = dw_child.Object.u_outwaremx_pcode[dw_child.GetRow()]
  7929. OpenWithParm(w_unit_ch,ls_mtrlid)
  7930. s_unit s_inscust
  7931. s_inscust = Message.PowerObjectParm //接受返回结构
  7932. IF s_inscust.unit <> '' THEN
  7933. dw_child.Object.u_outwaremx_unit[dw_child.GetRow()] = s_inscust.unit
  7934. dw_child.Object.u_outwaremx_rate[dw_child.GetRow()] = s_inscust.rate
  7935. wf_get_price(dw_child.GetRow())
  7936. END IF
  7937. END IF
  7938. end event
  7939. event ue_addmx;IF Not dw_edit_mode THEN RETURN
  7940. Long uc_row,ll_flag,ll_priceflag
  7941. uc_row = dw_pageretr.GetRow()
  7942. IF uc_row <= 0 THEN
  7943. MessageBox('提示','请先选择单据',information!,OK!)
  7944. RETURN
  7945. END IF
  7946. dw_uc.AcceptText()
  7947. IF ins_dw_select = 0 THEN
  7948. ll_priceflag = dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()]
  7949. IF ll_priceflag = 1 THEN
  7950. MessageBox('提示','单据已确认,不能增加明细内容',information!,OK!)
  7951. RETURN
  7952. END IF
  7953. ll_flag = dw_pageretr.Object.flag[uc_row]
  7954. IF ll_flag = 1 THEN
  7955. MessageBox('提示','单据已仓审,不能增加明细内容',information!,OK!)
  7956. RETURN
  7957. END IF
  7958. This.TriggerEvent('ue_f8')
  7959. dw_child.SetFocus()
  7960. ELSE
  7961. This.TriggerEvent('ue_add_fymx')
  7962. dw_fymx.SetFocus()
  7963. END IF
  7964. end event
  7965. event ue_deletemx;IF Not dw_edit_mode THEN RETURN
  7966. Long uc_row,ll_flag,ll_priceflag
  7967. uc_row = dw_pageretr.GetRow()
  7968. IF uc_row <= 0 THEN
  7969. MessageBox('提示','请先选择单据',information!,OK!)
  7970. RETURN
  7971. END IF
  7972. ll_flag = dw_pageretr.Object.flag[uc_row]
  7973. IF ll_flag = 1 THEN
  7974. MessageBox('提示','单据已仓审,不能删除明细内容',information!,OK!)
  7975. RETURN
  7976. END IF
  7977. ll_priceflag = dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()]
  7978. IF ll_priceflag = 1 THEN
  7979. MessageBox('提示','单据已确认,不能删除明细内容',information!,OK!)
  7980. RETURN
  7981. END IF
  7982. IF MessageBox ("询问","是否确定要删除当前细目记录?",Question!,YesNo! ) = 2 THEN RETURN
  7983. IF ins_dw_select = 0 THEN
  7984. IF dw_child.GetRow() = 0 THEN
  7985. MessageBox('提示','请选择删除的行对象!',information!,OK!)
  7986. RETURN
  7987. END IF
  7988. dw_child.DeleteRow (0)
  7989. dw_child.TriggerEvent (RowFocusChanged!)
  7990. ELSE
  7991. IF dw_fymx.GetRow() = 0 THEN
  7992. MessageBox('提示','请选择删除的行对象!')
  7993. RETURN
  7994. END IF
  7995. dw_fymx.DeleteRow (dw_fymx.GetRow() )
  7996. IF dw_fymx.RowCount() = 0 THEN dw_fymx.InsertRow(0)
  7997. dw_fymx.TriggerEvent (RowFocusChanged!)
  7998. END IF
  7999. end event
  8000. event ue_copyrow;Long uc_row,ll_flag,ll_priceflag
  8001. uc_row = dw_uc.GetRow()
  8002. IF uc_row <= 0 THEN
  8003. MessageBox('提示','请先选择单据',information!,OK!)
  8004. RETURN
  8005. END IF
  8006. ll_priceflag = dw_uc.object.u_outware_priceflag[dw_uc.GetRow()]
  8007. IF ll_priceflag = 1 THEN
  8008. MessageBox('提示','单据已确认,不能复制明细内容',information!,OK!)
  8009. RETURN
  8010. END IF
  8011. ll_flag = dw_pageretr.Object.flag[uc_row]
  8012. IF ll_flag = 1 THEN
  8013. MessageBox('提示','单据已仓审,不能复制明细内容',information!,OK!)
  8014. RETURN
  8015. END IF
  8016. long ll_childrow
  8017. ll_childrow = dw_child.GETROW()
  8018. IF ll_childrow=0 THEN
  8019. MESSAGEBOX('提示','请选择复制对象!',information!,OK!)
  8020. RETURN
  8021. END IF
  8022. dw_child.RowsCopy (ll_childrow,ll_childrow,Primary!,ds_copypaste,1,Primary!)
  8023. ds_copypaste.RowsCopy (1,1,Primary!,dw_child,dw_child.rowcount() + 1,Primary!)
  8024. ds_copypaste.reset()
  8025. dw_child.selectrow(0,false)
  8026. dw_child.setrow(dw_child.rowcount())
  8027. dw_child.scrolltorow(dw_child.rowcount())
  8028. dw_child.selectrow(dw_child.rowcount(),true)
  8029. end event
  8030. event ue_insertmx;Long uc_row,ll_flag,ll_priceflag
  8031. uc_row = dw_pageretr.GetRow()
  8032. IF uc_row <= 0 THEN
  8033. MessageBox('提示','请先选择单据',information!,OK!)
  8034. RETURN
  8035. END IF
  8036. ll_priceflag = dw_uc.object.u_outware_priceflag[dw_uc.GetRow()]
  8037. IF ll_priceflag = 1 THEN
  8038. MessageBox('提示','单据已确认,不能增加明细内容',information!,OK!)
  8039. RETURN
  8040. END IF
  8041. ll_flag = dw_pageretr.Object.flag[uc_row]
  8042. IF ll_flag = 1 THEN
  8043. MessageBox('提示','单据已仓审,不能增加明细内容',information!,OK!)
  8044. RETURN
  8045. END IF
  8046. long ll_childrow,li_row
  8047. ll_childrow = dw_child.getrow()
  8048. li_row = dw_child.insertrow(ll_childrow)
  8049. dw_child.selectrow(0,false)
  8050. dw_child.setrow(li_row)
  8051. dw_child.scrolltorow(li_row)
  8052. dw_child.selectrow(li_row,true)
  8053. end event
  8054. event ue_before_open;call super::ue_before_open;dw_fymx.SetTransObject(sqlca)
  8055. dw_bjmx.SetTransObject(sqlca)
  8056. IF sys_option_allow_edit_outrep = 1 THEN
  8057. dw_uc.Modify( 'b_1.visible = '+'"1"')
  8058. END IF
  8059. end event
  8060. event ue_rpt_viewprint;call super::ue_rpt_viewprint;IF Not (f_power_ind(18) ) THEN
  8061. MessageBox('提示',sys_msg_pow,information!,OK!)
  8062. RETURN
  8063. END IF
  8064. Long row,uc_relid,ll_scid
  8065. row = dw_pageretr.GetRow()
  8066. IF row = 0 THEN RETURN
  8067. IF ls_rpname = '' THEN RETURN
  8068. IF li_auditprint = 1 THEN
  8069. IF dw_pageretr.Object.flag[row] = 0 THEN
  8070. MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!)
  8071. RETURN
  8072. END IF
  8073. END IF
  8074. s_rpt_print_msg s_print
  8075. s_print.retr_pram_falg = 15
  8076. s_print.rpid = ls_msgprintid_rpt
  8077. s_print.retr_flag = TRUE
  8078. s_print.tag_text = THIS.Title
  8079. s_print.rpname = ls_rpname
  8080. s_print.retr_scid = dw_pageretr.Object.u_outware_scid[row]
  8081. s_print.retr_pramnmb = dw_pageretr.Object.u_outware_outwareid[row]
  8082. s_print.rowcnt = dw_child.RowCount()
  8083. OpenWithParm(w_rpt_preview,s_print)
  8084. //**更新打印次料
  8085. String arg_msg
  8086. printnum = Message.DoubleParm
  8087. 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)
  8088. end event
  8089. event ue_rpt_print;call super::ue_rpt_print;IF Not (f_power_ind(18) ) THEN
  8090. MessageBox('提示',sys_msg_pow,information!,OK!)
  8091. RETURN
  8092. END IF
  8093. Long row,uc_relid,ll_scid
  8094. row = dw_pageretr.GetRow()
  8095. IF row = 0 THEN RETURN
  8096. uo_rpt_print_preview uo_print
  8097. S_rpt_print_MSG LS_PRMSG
  8098. IF dw_pageretr.RowCount() = 0 THEN
  8099. MessageBox('提示','没有可打印的单据!',information!,OK!)
  8100. RETURN
  8101. END IF
  8102. IF ls_rpname = '' THEN RETURN
  8103. IF li_auditprint = 1 THEN
  8104. IF dw_pageretr.Object.flag[row] = 0 THEN
  8105. MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!)
  8106. RETURN
  8107. END IF
  8108. END IF
  8109. IF MessageBox ("询问","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  8110. LS_PRMSG.retr_pram_falg = 15
  8111. LS_PRMSG.TAG_TEXT = THIS.Title
  8112. LS_PRMSG.rpname = ls_rpname
  8113. LS_PRMSG.FILTER_STRING = ''
  8114. LS_PRMSG.PAGECH_FLAG = 0
  8115. LS_PRMSG.rpid = ls_msgprintid_rpt
  8116. LS_PRMSG.retr_scid = dw_pageretr.Object.u_outware_scid[row]
  8117. LS_PRMSG.retr_pramnmb = dw_pageretr.Object.u_outware_outwareid[row]
  8118. LS_PRMSG.rowcnt = dw_child.RowCount()
  8119. uo_print.FACT_PRINT_MSG = LS_PRMSG
  8120. String arg_msg
  8121. IF uo_print.uof_print_begin(arg_msg) = 0 THEN
  8122. MessageBox("错误",arg_msg,stopsign!,OK!)
  8123. RETURN
  8124. END IF
  8125. uo_print.ds_print()
  8126. //**更新打印次料
  8127. printnum = Message.DoubleParm
  8128. 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)
  8129. end event
  8130. event ue_allowedit;call super::ue_allowedit;
  8131. IF sys_option_packqty_sale = 0 THEN
  8132. dw_child.Modify("u_outwaremx_packqty.protect = 1")
  8133. ELSE
  8134. dw_child.Modify("u_outwaremx_packqty.protect = 0")
  8135. END IF
  8136. end event
  8137. event ue_send_ljfieb;call super::ue_send_ljfieb;IF Not f_power_ind(3152) THEN
  8138. MessageBox(publ_operator,sys_msg_pow)
  8139. RETURN
  8140. END IF
  8141. IF dw_edit_mode THEN RETURN
  8142. IF sys_email_sqlca.DBHandle() = 0 THEN
  8143. MessageBox('Error','电子商务数据库连接失败,请检查')
  8144. RETURN
  8145. END IF
  8146. IF MessageBox('询问','是否确认要发送单据给客户?',question!,yesno!) = 2 THEN RETURN
  8147. Long ll_scid,ll_outwareid
  8148. String ls_taskcode
  8149. Long ll_row
  8150. Int li_ifecomm
  8151. String arg_summary,arg_postscript,arg_remark
  8152. String arg_msg
  8153. ll_row = dw_pageretr.GetRow()
  8154. IF ll_row <= 0 THEN
  8155. MessageBox('系统提示','请选择要发送的单据')
  8156. RETURN
  8157. END IF
  8158. ll_scid = dw_pageretr.Object.u_outware_scid[ll_row]
  8159. ll_outwareid = dw_pageretr.Object.u_outware_outwareid[ll_row]
  8160. SELECT u_cust.ifecomm
  8161. INTO :li_ifecomm
  8162. FROM u_outware INNER JOIN
  8163. u_cust ON u_outware.cusid = u_cust.cusid
  8164. WHERE u_outware.scid = :ll_scid
  8165. And u_outware.outwareid = :ll_outwareid Using sqlca;
  8166. IF sqlca.SQLCode <> 0 THEN
  8167. MessageBox('系统提示','查询销售发货单相关客户通信信息失败,请检查设置,'+sqlca.SQLErrText)
  8168. RETURN
  8169. END IF
  8170. IF li_ifecomm = 0 THEN
  8171. MessageBox('系统提示','客户没有使用电子商务,不能发送单据')
  8172. RETURN
  8173. END IF
  8174. s_packet_ljfieb s_pack,s_return
  8175. OpenWithParm(w_dscrp_edit_ljfieb,s_pack)
  8176. s_return = Message.PowerObjectParm
  8177. if s_return.returnflag <> 1 then return
  8178. arg_postscript = s_return.postscript
  8179. arg_remark = s_return.remark
  8180. IF uo_fieb.send_outware(ll_scid,ll_outwareid,arg_postscript,arg_remark,arg_msg,True) = 0 THEN
  8181. MessageBox('Erorr',arg_msg)
  8182. RETURN
  8183. END IF
  8184. MessageBox('系统提示','提交成功!')
  8185. end event
  8186. event ue_f11;call super::ue_f11;//引入销售发货历史, 用于选择明细内容
  8187. IF Not dw_edit_mode THEN RETURN
  8188. IF flag = 1 THEN RETURN
  8189. Long child_row,ins_storageid = 0,cnt_childdw
  8190. Long ll_moneyid
  8191. decimal ld_tax
  8192. dw_uc.AcceptText()
  8193. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  8194. IF ll_moneyid = 0 Or IsNull(ll_moneyid) THEN
  8195. MessageBox('提示','请先选择币种',information!,OK!)
  8196. RETURN
  8197. END IF
  8198. IF dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 THEN RETURN
  8199. ins_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  8200. IF ins_storageid = 0 Or IsNull(ins_storageid) THEN
  8201. MessageBox('提示','请先选择仓库',information!,OK!)
  8202. RETURN
  8203. END IF
  8204. Int li_if_cus_mtrlware
  8205. SELECT balctype INTO :li_if_cus_mtrlware
  8206. FROM u_storage
  8207. Where storageid = :ins_storageid;
  8208. IF sqlca.SQLCode <> 0 THEN
  8209. MessageBox('错误','查询仓库是否使用客户库存失败',stopsign!,OK!)
  8210. RETURN
  8211. END IF
  8212. Long ls_null
  8213. s_edit_index_tran s_tranf8 //传递参数使用
  8214. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  8215. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  8216. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  8217. s_tranf8.b_long = 0
  8218. Long chc = 1,ls_j,ls_custid
  8219. SetNull(ls_null)
  8220. ls_custid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  8221. IF IsNull(ls_custid) Or ls_custid = 0 THEN
  8222. This.TriggerEvent("ue_f9")
  8223. END IF
  8224. child_row = dw_child.GetRow()
  8225. cnt_childdw = dw_child.RowCount()
  8226. dw_uc.AcceptText()
  8227. ls_custid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  8228. IF li_if_cus_mtrlware = 1 THEN //是否客户库存
  8229. s_tranf8.c_long = ls_custid
  8230. ELSE
  8231. s_tranf8.c_long = -1
  8232. END IF
  8233. IF Not IsValid(w_mtrlware_storageid_ch_2) THEN
  8234. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  8235. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  8236. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  8237. s_tranf8.d_long = ins_storageid
  8238. s_tranf8.e_long = ls_custid
  8239. dw_child.AcceptText()
  8240. IF dw_child.GetRow() > 0 THEN s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()])
  8241. OpenWithParm(w_mtrlware_storageid_ch_2,s_tranf8)
  8242. s_mtrlware_noalloc_array S_INSCUST
  8243. S_INSCUST = Message.PowerObjectParm
  8244. FOR ls_j = 1 To UpperBound(S_INSCUST.mtrlwareid)
  8245. IF S_INSCUST.mtrlwareid[ls_j] > 0 THEN
  8246. IF dw_child.GetRow() > 0 THEN
  8247. IF dw_child.Object.u_outwaremx_mtrlid[child_row] <> 0 THEN
  8248. child_row = dw_child.InsertRow (0)
  8249. ELSE
  8250. child_row = dw_child.GetRow()
  8251. END IF
  8252. ELSE
  8253. child_row = dw_child.InsertRow (0)
  8254. END IF
  8255. string ls_cusmtrlcode,ls_cusmtrlname,ls_cusmtrlmode//客户物料名称
  8256. long ls_cusid,ls_mtrlid
  8257. ls_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  8258. ls_mtrlid =S_INSCUST.mtrlid[ls_j]
  8259. Select isnull(cusmtrlcode,''), isnull(cusmtrlname,''), isnull(cusmtrlmode,'')
  8260. Into :ls_cusmtrlcode, :ls_cusmtrlname, :ls_cusmtrlmode
  8261. From u_cusmtrlname
  8262. Where mtrlid= :ls_mtrlid and cusid= :ls_cusid ;
  8263. dw_child.Object.u_cusmtrlname_cusmtrlname[child_row] = ls_cusmtrlname
  8264. dw_child.Object.u_cusmtrlname_cusmtrlcode[child_row] = ls_cusmtrlcode
  8265. dw_child.Object.u_cusmtrlname_cusmtrlmode[child_row] =ls_cusmtrlmode
  8266. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[ls_j]
  8267. dw_child.Object.u_outwaremx_mtrlid[child_row] = S_INSCUST.mtrlid[ls_j]
  8268. dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.u_mtrldef_mtrlcode[ls_j]
  8269. dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.u_mtrldef_mtrlname[ls_j]
  8270. dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST.u_mtrldef_mtrlmode[ls_j]
  8271. dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j]
  8272. IF sys_option_outware_Sale_ware = 0 THEN
  8273. dw_child.Object.u_outwaremx_saleqty[child_row] = 0
  8274. dw_child.Object.u_outwaremx_uqty[child_row] = 0
  8275. dw_child.Object.u_outwaremx_addqty[child_row] = 0
  8276. ELSEIF sys_option_outware_Sale_ware = 1 THEN
  8277. dw_child.Object.u_outwaremx_saleqty[child_row] = S_INSCUST.noallocqty[ls_j]- S_INSCUST.noauditingqty[ls_j]
  8278. dw_child.Object.u_outwaremx_uqty[child_row] = S_INSCUST.noallocqty[ls_j]- S_INSCUST.noauditingqty[ls_j]
  8279. dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j]- S_INSCUST.noauditingaddqty[ls_j]
  8280. ELSE
  8281. dw_child.Object.u_outwaremx_saleqty[child_row] = S_INSCUST.noallocqty[ls_j]
  8282. dw_child.Object.u_outwaremx_uqty[child_row] = S_INSCUST.noallocqty[ls_j]
  8283. dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j]
  8284. END IF
  8285. dw_child.Object.u_outwaremx_planprice[child_row] = S_INSCUST.planprice[ls_j]
  8286. dw_child.Object.u_outwaremx_storageid[child_row] = S_INSCUST.storageid[ls_j]
  8287. dw_child.Object.u_outwaremx_plancode[child_row] = S_INSCUST.plancode[ls_j]
  8288. dw_child.Object.u_outwaremx_dxflag[child_row] = S_INSCUST.dxflag[ls_j]
  8289. dw_child.Object.u_outwaremx_status[child_row] = S_INSCUST.status[ls_j]
  8290. dw_child.Object.u_outwaremx_woodcode[child_row] = S_INSCUST.woodcode[ls_j]
  8291. dw_child.Object.u_outwaremx_pcode[child_row] = S_INSCUST.pcode[ls_j]
  8292. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST.u_mtrldef_zxmtrlmode[ls_j]
  8293. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST.u_mtrldef_mtrlsectype[ls_j]
  8294. dw_child.Object.u_mtrldef_lmsaleprice[child_row] = S_INSCUST.lmsaleprice[ls_j]
  8295. //查询单位
  8296. dw_child.Object.u_outwaremx_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j]
  8297. decimal lde_rate
  8298. f_find_unitrate(s_inscust.mtrlid[ls_j], s_inscust.u_mtrldef_unit[ls_j], lde_rate)
  8299. dw_child.Object.u_outwaremx_rate[child_row] = lde_rate
  8300. //查询单价
  8301. wf_get_price(child_row)
  8302. dw_child.Object.u_mtrldef_curware_qty[child_row] = S_INSCUST.noallocqty[ls_j]
  8303. dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null
  8304. dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null
  8305. // dw_child.SetColumn('u_outwaremx_uqty')
  8306. dw_child.Object.u_outwaremx_net_weight[child_row] = S_INSCUST.u_mtrldef_net_weight[ls_j]
  8307. dw_child.Object.u_outwaremx_gross_weight[child_row] = S_INSCUST.u_mtrldef_gross_weight[ls_j]
  8308. dw_child.Object.u_outwaremx_cubage[child_row] = S_INSCUST.u_mtrldef_cubage[ls_j]
  8309. dw_child.Object.u_mtrldef_mtrlengname[child_row] = S_INSCUST.u_mtrldef_mtrlengname[ls_j]
  8310. dw_child.Object.u_mtrldef_barcode[child_row] = S_INSCUST.barcode[ls_j]
  8311. if f_find_tax(ls_custid,'u_cust',ld_tax) = 0 then
  8312. ld_tax = 0
  8313. else
  8314. dw_child.Object.u_outwaremx_tax[child_row] = ld_tax
  8315. end if
  8316. END IF
  8317. NEXT
  8318. END IF
  8319. IF sys_option_outware_if_saleqty = 0 THEN
  8320. dw_child.SetColumn('u_outwaremx_uqty')
  8321. ELSE
  8322. dw_child.SetColumn('u_outwaremx_saleqty')
  8323. END IF
  8324. dw_child.SetRedraw(True)
  8325. dw_child.SetFocus()
  8326. ////////////////////////////////// //
  8327. end event
  8328. event ue_f10;call super::ue_f10;//引入销售订单明细
  8329. IF Not dw_edit_mode THEN RETURN
  8330. IF dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 THEN RETURN
  8331. Int rslt = 1
  8332. String arg_msg
  8333. Long ll_scid
  8334. Long ll_storageid
  8335. Long ls_taskid
  8336. Long ll_cusid
  8337. String ls_taskcode
  8338. String errmsg
  8339. dw_uc.AcceptText()
  8340. ll_scid = dw_uc.Object.u_outware_scid[dw_uc.GetRow()]
  8341. ll_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  8342. ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  8343. IF ll_storageid = 0 Or IsNull(ll_storageid) THEN
  8344. MessageBox('提示','请先选择仓库',information!,OK!)
  8345. RETURN
  8346. END IF
  8347. IF ll_cusid = 0 Or IsNull(ll_cusid) THEN
  8348. MessageBox('提示','请先选择客户',information!,OK!)
  8349. RETURN
  8350. END IF
  8351. s_saletask_find s_find
  8352. s_find.scid = ll_scid
  8353. s_find.areaid = sys_areaid
  8354. s_find.cusid = ll_cusid
  8355. //s_find.if_retrieve_all = local_retrieve_all
  8356. //THIS.Enabled = FALSE
  8357. IF Not IsValid(w_saletask_outware_ch) THEN
  8358. s_saletask_mtrl s_saletask
  8359. OpenWithParm(w_saletask_outware_ch,s_find)
  8360. s_saletask = Message.PowerObjectParm
  8361. IF UpperBound(s_saletask.taskid ) > 0 THEN
  8362. // wf_autoaddmx_salemx(ll_scid, s_saletask, ll_storageid, ll_cusid, s_saletask.if_zeromtrlware, errmsg)
  8363. IF wf_saletaskmtrltoarr_salemx(ll_scid,s_saletask,arg_msg) = 0 THEN
  8364. rslt = 0
  8365. GOTO ext
  8366. END IF
  8367. IF wf_set_outwaremx(ll_scid,ll_cusid, ll_storageid, s_saletask,arg_msg) = 0 THEN
  8368. rslt = 0
  8369. GOTO ext
  8370. END IF
  8371. END IF
  8372. END IF
  8373. //THIS.Enabled = TRUE
  8374. ext:
  8375. dw_uc.SetColumn("u_outware_rel_address")
  8376. dw_uc.SetRedraw(True)
  8377. RETURN
  8378. end event
  8379. type cb_func from w_publ_1ton_share_detail`cb_func within w_outware_sale
  8380. end type
  8381. type cb_exit from w_publ_1ton_share_detail`cb_exit within w_outware_sale
  8382. integer x = 2560
  8383. integer taborder = 230
  8384. end type
  8385. type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_outware_sale
  8386. integer x = 183
  8387. integer width = 503
  8388. boolean autohscroll = true
  8389. end type
  8390. type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_outware_sale
  8391. integer x = 2981
  8392. integer taborder = 190
  8393. end type
  8394. type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_outware_sale
  8395. integer x = 2738
  8396. integer y = 36
  8397. integer width = 251
  8398. integer taborder = 180
  8399. end type
  8400. type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_outware_sale
  8401. integer x = 2825
  8402. integer y = 300
  8403. integer width = 754
  8404. integer height = 1324
  8405. integer taborder = 90
  8406. string dataobject = "dw_outware_sale_index"
  8407. string old_dwobject = "0"
  8408. string curdw_colfilter = "0"
  8409. end type
  8410. event dw_pageretr::rowfocuschanged;wf_flagstatus_rf()
  8411. wf_check_billfj()
  8412. IF dw_edit_mode THEN RETURN
  8413. IF currentrow <= 0 THEN
  8414. dw_child.Reset()
  8415. RETURN
  8416. END IF
  8417. THIS.SelectRow(0,FALSE)
  8418. THIS.SelectRow(currentrow,TRUE)
  8419. dw_uc.SetRow(currentrow)
  8420. dw_uc.ScrollToRow (currentrow)
  8421. st_cusbalc.Text = ''
  8422. st_cusbalc_sign.visible = false
  8423. IF NOT dw_edit_mode THEN
  8424. PARENT.TriggerEvent('retrieve_childdw_uc')
  8425. PARENT.TriggerEvent('retrieve_childdw')
  8426. END IF
  8427. IF if_ChkMtrlInfo THEN
  8428. Parent.TriggerEvent('ue_mtrl_info_retr')
  8429. END IF
  8430. Long ll_scid,ll_cusid, ll_moneyid
  8431. IF NOT dw_edit_mode AND currentrow > 0 THEN
  8432. ll_scid = THIS.Object.u_outware_scid[currentrow]
  8433. ll_cusid = THIS.Object.u_outware_cusid[currentrow]
  8434. ll_moneyid = THIS.Object.u_outware_relint_2[currentrow]
  8435. wf_cusbalc(ll_scid,ll_cusid,ll_moneyid)
  8436. END IF
  8437. IF if_ChkMtrlInfo THEN
  8438. Parent.TriggerEvent('ue_mtrl_info_retr')
  8439. END IF
  8440. end event
  8441. type st_1 from w_publ_1ton_share_detail`st_1 within w_outware_sale
  8442. end type
  8443. type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_outware_sale
  8444. integer x = 3131
  8445. integer taborder = 220
  8446. end type
  8447. type dw_uc from w_publ_1ton_share_detail`dw_uc within w_outware_sale
  8448. integer width = 2752
  8449. integer height = 1420
  8450. integer taborder = 170
  8451. string dataobject = "dw_outware_sale_edit"
  8452. end type
  8453. event dw_uc::dwnkey;Parent.TriggerEvent('user_key')
  8454. Long li_option_outrep
  8455. IF Key = KeyDownArrow! THEN RETURN 1
  8456. IF dw_edit_mode THEN
  8457. IF dw_uc.GetColumnName ( ) = 'u_outware_dscrp' And Key = KeyEnter! THEN
  8458. dw_child.SetFocus()
  8459. dw_child.ScrollToRow(dw_child.RowCount())
  8460. dw_child.SetColumn ('u_mtrldef_mtrlcode')
  8461. RETURN 1
  8462. ELSEIF dw_uc.GetColumnName ( ) = 'u_cust_cuscode' And Key = KeyEnter! THEN
  8463. s_custom s_cus
  8464. String ls_code
  8465. // String ls_code,ls_name,ls_custype,ls_find_code
  8466. // String ls_freight,ls_freight_tele
  8467. // String ls_rel_address,ls_rel_tele,ls_rel_fax,ls_rel_rep
  8468. Long ls_cusid,ll_ori_cusid
  8469. // Long cnt = 0
  8470. // Boolean if_find = False
  8471. // Int li_banktypeid,li_ifrel,ll_i
  8472. String ls_ori_cuscode
  8473. Long ll_scid, ll_moneyid
  8474. dw_uc.AcceptText()
  8475. ls_code = Trim(dw_uc.Object.u_cust_cuscode[dw_uc.GetRow()])
  8476. ll_ori_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  8477. ls_ori_cuscode = dw_uc.Object.u_cust_cuscode[dw_uc.GetRow()]
  8478. IF f_find_cust(ls_code, s_cus) = 0 THEN
  8479. Parent.TriggerEvent('ue_f9')
  8480. RETURN 1
  8481. END IF
  8482. // if_find = True
  8483. //
  8484. //
  8485. // IF if_find THEN
  8486. //重置dw_child
  8487. IF wf_change_cusid(s_cus.cusid) = 0 THEN RETURN
  8488. dw_uc.SetRedraw(False)
  8489. dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] = s_cus.cusid
  8490. dw_uc.Object.u_cust_cuscode[dw_uc.GetRow()] = s_cus.cuscode
  8491. dw_uc.Object.u_cust_name[dw_uc.GetRow()] = s_cus.Name
  8492. dw_uc.Object.u_outware_outrep[dw_uc.GetRow()] = s_cus.custype
  8493. dw_uc.Object.u_outware_relstr_1[dw_uc.GetRow()] = s_cus.freight
  8494. dw_uc.Object.u_outware_relstr_2[dw_uc.GetRow()] = s_cus.freight_tele
  8495. dw_uc.Object.u_outware_relstr_3[dw_uc.GetRow()] = s_cus.freight_address
  8496. dw_uc.Object.u_outware_rel_address[dw_uc.GetRow()] = s_cus.Address
  8497. dw_uc.Object.u_outware_rel_tele[dw_uc.GetRow()] = s_cus.tele
  8498. dw_uc.Object.u_outware_rel_tele1[dw_uc.GetRow()] = s_cus.tele1
  8499. dw_uc.Object.u_outware_rel_fax[dw_uc.GetRow()] = s_cus.faxno
  8500. dw_uc.Object.u_outware_rel_rep[dw_uc.GetRow()] = s_cus.rep
  8501. IF s_cus.banktypeid > 0 THEN
  8502. dw_uc.Object.u_outware_relint_1[dw_uc.GetRow()] = s_cus.banktypeid
  8503. END IF
  8504. dw_uc.SetRedraw(True)
  8505. dw_uc.AcceptText()
  8506. ll_scid = dw_uc.Object.u_outware_scid[dw_uc.GetRow()]
  8507. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  8508. wf_getcusrepamt_info(ll_scid,s_cus.cusid,ll_moneyid)
  8509. dw_uc.SetColumn("u_outware_rel_address")
  8510. // dw_child.Reset()
  8511. // Parent.TriggerEvent("insert_childrow")
  8512. RETURN 1
  8513. // END IF
  8514. // IF sys_power_issuper THEN
  8515. // li_option_outrep = 0
  8516. // ELSE
  8517. // li_option_outrep = sys_option_outrep
  8518. // END IF
  8519. //
  8520. //
  8521. //
  8522. // SELECT u_cust.cusid,
  8523. // u_cust.name,
  8524. // u_cust.custype,
  8525. // u_cust.cuscode,
  8526. // u_cust.freight,
  8527. // u_cust.freight_tele,
  8528. // u_cust.address,
  8529. // u_cust.tele,
  8530. // u_cust.faxno,
  8531. // u_cust.rep,
  8532. // u_cust.banktypeid
  8533. // INTO :ls_cusid,:ls_name,:ls_custype,:ls_code,
  8534. // :ls_freight,:ls_freight_tele,
  8535. // :ls_rel_address,:ls_rel_tele,:ls_rel_fax,:ls_rel_rep,:li_banktypeid
  8536. // FROM u_cust
  8537. // Where ( cuscode = :ls_code Or Name = :ls_code ) and
  8538. // ( :li_option_outrep = 0 OR (u_cust.custype IN (:sys_user_outrepstr) or :sys_user_outrepstr='0'));
  8539. // IF sqlca.SQLCode <> 0 THEN
  8540. //
  8541. // IF Pos(Trim(ls_code),'%') = 0 THEN
  8542. // ls_find_code = '%'+ Trim(ls_code) + '%'
  8543. // ELSE
  8544. // ls_find_code = Trim(ls_code)
  8545. // END IF
  8546. //
  8547. // SELECT count(*) INTO :cnt
  8548. // FROM u_cust
  8549. // Where ( cuscode Like :ls_find_code Or Name Like :ls_find_code ) and
  8550. // ( :li_option_outrep = 0 OR (u_cust.custype IN (:sys_user_outrepstr) or :sys_user_outrepstr='0'));
  8551. // IF sqlca.SQLCode <> 0 THEN
  8552. // Parent.TriggerEvent('ue_f9')
  8553. // RETURN 1
  8554. // END IF
  8555. // IF cnt <> 1 THEN
  8556. // Parent.TriggerEvent('ue_f9')
  8557. // RETURN 1
  8558. // END IF
  8559. //
  8560. // SELECT u_cust.cusid,
  8561. // u_cust.cuscode,
  8562. // u_cust.name,
  8563. // u_cust.custype,
  8564. // u_cust.freight,
  8565. // u_cust.freight_tele,
  8566. // u_cust.address,
  8567. // u_cust.tele,
  8568. // u_cust.faxno,
  8569. // u_cust.rep
  8570. // INTO :ls_cusid,:ls_code,:ls_name,:ls_custype,
  8571. // :ls_freight,:ls_freight_tele,
  8572. // :ls_rel_address,:ls_rel_tele,:ls_rel_fax,:ls_rel_rep
  8573. // FROM u_cust
  8574. // Where ( cuscode Like :ls_find_code Or Name Like :ls_find_code );
  8575. // IF sqlca.SQLCode <> 0 THEN
  8576. // Parent.TriggerEvent('ue_f9')
  8577. // RETURN 1
  8578. // END IF
  8579. //
  8580. // END IF
  8581. // if_find = True
  8582. //
  8583. //
  8584. // IF if_find THEN
  8585. //
  8586. // //重置dw_child
  8587. // wf_change_cusid(ls_cusid)
  8588. //
  8589. // dw_uc.SetRedraw(False)
  8590. // dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] = ls_cusid
  8591. // dw_uc.Object.u_cust_cuscode[dw_uc.GetRow()] = ls_code
  8592. // dw_uc.Object.u_cust_name[dw_uc.GetRow()] = ls_name
  8593. // dw_uc.Object.u_outware_outrep[dw_uc.GetRow()] = ls_custype
  8594. // dw_uc.Object.u_outware_relstr_1[dw_uc.GetRow()] = ls_freight
  8595. // dw_uc.Object.u_outware_relstr_2[dw_uc.GetRow()] = ls_freight_tele
  8596. // dw_uc.Object.u_outware_rel_address[dw_uc.GetRow()] = ls_rel_address
  8597. // dw_uc.Object.u_outware_rel_tele[dw_uc.GetRow()] = ls_rel_tele
  8598. // dw_uc.Object.u_outware_rel_fax[dw_uc.GetRow()] = ls_rel_fax
  8599. // dw_uc.Object.u_outware_rel_rep[dw_uc.GetRow()] = ls_rel_rep
  8600. // IF li_banktypeid > 0 THEN
  8601. // dw_uc.Object.u_outware_relint_1[dw_uc.GetRow()] = li_banktypeid
  8602. // END IF
  8603. // dw_uc.SetRedraw(True)
  8604. //
  8605. // ll_scid = dw_uc.Object.u_outware_scid[dw_uc.GetRow()]
  8606. // ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  8607. //
  8608. // wf_getcusrepamt_info(ll_scid,ls_cusid,ll_moneyid)
  8609. //
  8610. // dw_uc.SetColumn("u_outware_rel_address")
  8611. // dw_child.Reset()
  8612. // Parent.TriggerEvent("insert_childrow")
  8613. // RETURN 1
  8614. // END IF
  8615. ELSE
  8616. IF Key = KeyEnter! THEN //
  8617. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  8618. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  8619. RETURN 1
  8620. END IF
  8621. END IF
  8622. END IF
  8623. end event
  8624. event dw_uc::itemchanged;call super::itemchanged;IF NOT dw_edit_mode THEN RETURN
  8625. IF dwo.Name = 'u_outware_storageid' THEN
  8626. dw_child.Reset()
  8627. PARENT.TriggerEvent("insert_childrow")
  8628. ELSEIF dwo.Name = 'u_outware_relint_2' THEN
  8629. Long ll_moneyid,ll_scid,ll_cusid
  8630. dw_uc.accepttext()
  8631. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  8632. dw_uc.SetRedraw(FALSE)
  8633. dw_uc.Object.u_outware_mrate[dw_uc.GetRow()] = f_get_mrate(ll_moneyid)
  8634. dw_uc.SetRedraw(TRUE)
  8635. ll_scid = dw_uc.Object.u_outware_scid[dw_uc.GetRow()]
  8636. ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  8637. wf_getcusrepamt_info(ll_scid,ll_cusid,ll_moneyid)
  8638. elseif dwo.name = 'u_outware_rel_rep' then
  8639. if data <> '' then
  8640. string ll_officetel,ll_handtel
  8641. long ls_cusid
  8642. ls_cusid = dw_uc.object.u_outware_cusid[row]
  8643. select officetel,handtel into :ll_officetel,:ll_handtel from u_cust_rep where repname = :data and cusid = :ls_cusid;
  8644. if sqlca.sqlcode = 0 then
  8645. dw_uc.object.u_outware_rel_tele[row] = ll_officetel
  8646. dw_uc.object.u_outware_rel_tele1[row] = ll_handtel
  8647. end if
  8648. select tele,tele1 into :ll_officetel,:ll_handtel from u_cust where cusid = :ls_cusid and rep = :data;
  8649. if sqlca.sqlcode = 0 then
  8650. dw_uc.object.u_outware_rel_tele[row] = ll_officetel
  8651. dw_uc.object.u_outware_rel_tele1[row] = ll_handtel
  8652. end if
  8653. end if
  8654. END IF
  8655. end event
  8656. event dw_uc::doubleclicked;IF dw_edit_mode AND row > 0 THEN
  8657. IF dwo.Name = 'u_cust_cuscode' OR dwo.Name = 'u_cust_name' THEN
  8658. PARENT.TriggerEvent('ue_f9')
  8659. END IF
  8660. END IF
  8661. end event
  8662. event dw_uc::clicked;call super::clicked;
  8663. IF row <= 0 THEN RETURN
  8664. IF dwo.Name = 'p_dview' THEN
  8665. Parent.TriggerEvent('ue_ch_dscrp')
  8666. ELSEIF dwo.Name = 'p_dview2' THEN
  8667. Parent.TriggerEvent('ue_ch_dscrp2')
  8668. ELSEIF dwo.Name = 'p_dview3' THEN
  8669. Parent.TriggerEvent('ue_ch_dscrp3')
  8670. ELSEIF dwo.Name = 'p_dview4' THEN
  8671. Parent.TriggerEvent('ue_ch_rel_address')
  8672. ELSEIF dwo.Name = 'p_dview5' THEN
  8673. Parent.TriggerEvent('ue_ch_station')
  8674. ELSEIF dwo.Name = 'p_relstr_3' THEN
  8675. Parent.TriggerEvent('ue_ch_relstr_3')
  8676. END IF
  8677. IF Not dw_edit_mode THEN RETURN
  8678. IF dw_uc.Object.u_outware_thflag[row] = 1 THEN RETURN
  8679. IF dwo.Name = 'p_b' Or dwo.Name = 'choicesaletask_t' THEN
  8680. Parent.TriggerEvent('ue_f7')
  8681. Parent.TriggerEvent('ue_setprice_forformula')
  8682. ELSEIF dwo.Name = 'p_c' Or dwo.Name = 'choicesaletaskmx_t' THEN
  8683. Parent.TriggerEvent('ue_f10')
  8684. Parent.TriggerEvent('ue_setprice_forformula')
  8685. ELSEIF dwo.Name = 'p_d' Or dwo.Name = 'choicesalehis_t' THEN
  8686. Parent.TriggerEvent('ue_f11')
  8687. Parent.TriggerEvent('ue_setprice_forformula')
  8688. ELSEIF dwo.Name = 'p_ware' Or dwo.Name = 'choiceware_t' THEN
  8689. Parent.TriggerEvent('ue_f8')
  8690. Parent.TriggerEvent('ue_setprice_forformula')
  8691. ELSEIF dwo.Name = 'p_p' THEN
  8692. Parent.TriggerEvent('ue_f9')
  8693. ELSEIF dwo.Name = 'p_emp' THEN
  8694. Parent.TriggerEvent('ue_ch_outrepdef')
  8695. ELSEIF dwo.Name = 'p_money' THEN
  8696. Parent.TriggerEvent('ue_ch_money')
  8697. ELSEIF dwo.Name = 'p_banktype' THEN
  8698. Parent.TriggerEvent('ue_ch_banktype')
  8699. END IF
  8700. end event
  8701. event dw_uc::constructor;call super::constructor;this.object.p_emp.visible = (sys_option_allow_edit_outrep = 1)
  8702. end event
  8703. event dw_uc::ue_dwndropdown;IF Not dw_edit_mode THEN RETURN
  8704. String ls_col_pz,ls_col_mtrlid
  8705. String ls_pz_ch
  8706. String ls_col_value
  8707. Long ll_col_value
  8708. String ls_data_type
  8709. Long ll_row,ll_mtrlid
  8710. ll_row = This.GetRow()
  8711. IF ll_row > 0 THEN
  8712. ls_col_pz = This.GetColumnName( )
  8713. ls_data_type = dw_child.Describe(ls_col_pz+".ColType")
  8714. IF Left(Lower(ls_data_type),4 ) = "char" THEN
  8715. ls_col_value = This.GetItemString(ll_row,ls_col_pz)
  8716. ELSEIF Left(Lower(ls_data_type),4) = "long" THEN
  8717. ll_col_value = This.GetItemNumber(ll_row,ls_col_pz)
  8718. END IF
  8719. if ls_col_pz = 'u_outware_rel_rep' then
  8720. int rtncode
  8721. string ls_sql
  8722. long ls_cusid
  8723. ls_cusid = dw_uc.object.u_outware_cusid[dw_uc.getrow()]
  8724. DataWindowChild dw_child_dddw
  8725. rtncode = dw_uc.GetChild("u_outware_rel_rep",dw_child_dddw)
  8726. dw_child_dddw.SetTransObject(SQLCA)
  8727. ls_sql = old_rep_select
  8728. ls_sql = ls_sql + " or cusid = "+string(ls_cusid);
  8729. dw_child_dddw.SetSQLSelect(ls_sql)
  8730. dw_child_dddw.Retrieve()
  8731. end if
  8732. This.SetItem(ll_row,ls_col_pz,ls_pz_ch)
  8733. END IF
  8734. end event
  8735. type gb_2 from w_publ_1ton_share_detail`gb_2 within w_outware_sale
  8736. end type
  8737. type dw_child from w_publ_1ton_share_detail`dw_child within w_outware_sale
  8738. integer y = 1964
  8739. integer width = 3543
  8740. integer height = 748
  8741. integer taborder = 40
  8742. string dataobject = "dw_outwaremx_sale_edit"
  8743. boolean minbox = true
  8744. string old_dwobject = "0"
  8745. string curdw_colfilter = "0"
  8746. end type
  8747. event dw_child::dwnkey;call super::dwnkey;PARENT.TriggerEvent('user_key')
  8748. //THIS.TriggerEvent('user_key')
  8749. IF NOT dw_edit_mode THEN RETURN
  8750. IF flag = 1 THEN RETURN
  8751. String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode,ls_mtrlsectype,ls_zxmtrlmode,ls_mtrltype
  8752. String ls_plancode,ls_status,ls_woodcode,ls_pcode
  8753. Long ls_mtrlwareid,ls_mtrlid,ls_storageid,ll_moneyid
  8754. Dec ls_noallocqty,ls_noauditingqty,ls_planprice,ls_cost,ls_lmsaleprice
  8755. s_mtrlware_noalloc_array arg_s_mtrlware
  8756. Long child_row
  8757. Long ls_null
  8758. String arg_msg
  8759. Long ls_custid,ls_sptid
  8760. Decimal ls_1stnewprice,ls_1stzqrate,ls_1strate
  8761. SetNull(ls_null)
  8762. IF dw_edit_mode THEN
  8763. dw_uc.AcceptText()
  8764. ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]
  8765. IF ll_moneyid = 0 OR IsNull(ll_moneyid) THEN
  8766. MessageBox('提示','请先选择币种',information!,OK!)
  8767. RETURN
  8768. END IF
  8769. ls_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  8770. IF ls_storageid = 0 OR IsNull(ls_storageid) THEN
  8771. MessageBox('提示','请先选择仓库',information!,OK!)
  8772. RETURN
  8773. END IF
  8774. Int li_if_cus_mtrlware
  8775. SELECT balctype INTO :li_if_cus_mtrlware
  8776. FROM u_storage
  8777. Where storageid = :ls_storageid;
  8778. IF sqlca.SQLCode <> 0 THEN
  8779. MessageBox('提示','查询仓库是否使用客户库存失败',information!,OK!)
  8780. RETURN
  8781. END IF
  8782. ls_custid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  8783. IF IsNull(ls_custid) OR ls_custid = 0 THEN
  8784. THIS.TriggerEvent("ue_f9")
  8785. ls_custid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]
  8786. END IF
  8787. IF KeyDown(Keydownarrow!) THEN
  8788. Long li_row
  8789. IF dw_child.GetRow() = dw_child.RowCount() THEN
  8790. PARENT.TriggerEvent("insert_childrow")
  8791. END IF
  8792. ELSE
  8793. IF KeyDown(KeyEnter!) AND NOT KeyDown(KeyControl!) AND NOT KeyDown(KeyShift!) THEN
  8794. IF dw_child.GetColumnName( ) = 'u_mtrldef_mtrlcode' THEN
  8795. dw_child.AcceptText()
  8796. child_row = dw_child.GetRow()
  8797. ls_mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[child_row]
  8798. IF li_if_cus_mtrlware = 1 THEN
  8799. ls_sptid = ls_custid
  8800. ELSE
  8801. ls_sptid = -1
  8802. END IF
  8803. IF f_find_mtrlware(ls_mtrlcode,ls_storageid,ls_sptid,arg_s_mtrlware) = 0 THEN
  8804. PARENT.TriggerEvent('ue_f8')
  8805. RETURN 1
  8806. ELSE
  8807. ls_mtrlwareid = arg_s_mtrlware.mtrlwareid[1]
  8808. ls_mtrlid = arg_s_mtrlware.mtrlid[1]
  8809. ls_mtrlcode = arg_s_mtrlware.u_mtrldef_mtrlcode[1]
  8810. ls_mtrlname = arg_s_mtrlware.u_mtrldef_mtrlname[1]
  8811. ls_unit = arg_s_mtrlware.u_mtrldef_unit[1]
  8812. ls_mtrlmode = arg_s_mtrlware.u_mtrldef_mtrlmode[1]
  8813. ls_planprice = arg_s_mtrlware.planprice[1]
  8814. ls_noallocqty = arg_s_mtrlware.noallocqty[1]
  8815. ls_storageid = arg_s_mtrlware.storageid[1]
  8816. ls_plancode = arg_s_mtrlware.plancode[1]
  8817. ls_noauditingqty = arg_s_mtrlware.noauditingqty[1]
  8818. ls_lmsaleprice = arg_s_mtrlware.lmsaleprice[1]
  8819. ls_status = arg_s_mtrlware.status[1]
  8820. ls_woodcode = arg_s_mtrlware.woodcode[1]
  8821. ls_pcode = arg_s_mtrlware.pcode[1]
  8822. ls_mtrlsectype = arg_s_mtrlware.u_mtrldef_mtrlsectype[1]
  8823. ls_zxmtrlmode = arg_s_mtrlware.u_mtrldef_zxmtrlmode[1]
  8824. ls_mtrltype = arg_s_mtrlware.u_mtrldef_mtrltype[1]
  8825. END IF
  8826. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ls_mtrlwareid
  8827. dw_child.Object.u_outwaremx_mtrlid[child_row] = ls_mtrlid
  8828. dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  8829. dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  8830. dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  8831. dw_child.Object.u_outwaremx_uqty[child_row] = 0
  8832. dw_child.Object.u_outwaremx_planprice[child_row] = ls_planprice
  8833. dw_child.Object.u_outwaremx_storageid[child_row] = ls_storageid
  8834. dw_child.Object.u_outwaremx_plancode[child_row] = ls_plancode
  8835. dw_child.Object.u_outwaremx_status[child_row] = ls_status
  8836. dw_child.Object.u_outwaremx_woodcode[child_row] = ls_woodcode
  8837. dw_child.Object.u_outwaremx_pcode[child_row] = ls_pcode
  8838. dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  8839. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  8840. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  8841. dw_child.Object.u_mtrldef_mtrltype[child_row] = ls_mtrltype
  8842. dw_child.Object.u_outwaremx_unit[child_row] = ls_unit
  8843. //导入单价
  8844. wf_get_price(child_row)
  8845. dw_child.Object.u_mtrldef_curware_qty[child_row] = ls_noallocqty
  8846. dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null
  8847. dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null
  8848. IF Key = KeyEnter! THEN //
  8849. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  8850. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  8851. RETURN 1
  8852. END IF
  8853. // ELSEIF dw_child.GetColumnName( ) = 'u_outwaremx_rebate' AND dw_child.GetRow() = dw_child.RowCount() THEN
  8854. // Long i_mtrlid
  8855. // String i_mtrlcode
  8856. // Decimal i_price,i_zqrate
  8857. // Int i_thflag = 0
  8858. // dw_child.AcceptText()
  8859. //
  8860. // i_mtrlid = dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()]
  8861. // i_mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()]
  8862. // i_price = dw_child.Object.u_outwaremx_fprice[dw_child.GetRow()]
  8863. // i_zqrate = dw_child.Object.u_outwaremx_rebate[dw_child.GetRow()]
  8864. //
  8865. // IF Key = KeyEnter! THEN //
  8866. // keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  8867. // keybd_event ( 9, 0, 2, 0 ) // 释放tab
  8868. // RETURN 1
  8869. // END IF
  8870. ELSEIF dw_child.GetColumnName( ) = 'u_outwaremx_mxdscrp' AND dw_child.GetRow() = dw_child.RowCount() THEN
  8871. PARENT.TriggerEvent("insert_childrow")
  8872. RETURN 1
  8873. ELSEIF dw_child.GetColumnName( ) = 'u_outwaremx_priceformula' THEN
  8874. PARENT.TriggerEvent("ue_setprice_forformula_1")
  8875. RETURN 1
  8876. ELSEIF dw_child.GetColumnName( ) = 'u_outwaremx_formula' THEN
  8877. PARENT.TriggerEvent("ue_setqty_forformula_1")
  8878. RETURN 1
  8879. ELSE
  8880. IF Key = KeyEnter! THEN //
  8881. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  8882. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  8883. RETURN 1
  8884. END IF
  8885. END IF
  8886. END IF
  8887. END IF
  8888. END IF
  8889. end event
  8890. event dw_child::itemchanged;call super::itemchanged;IF Not dw_edit_mode THEN RETURN
  8891. This.AcceptText()
  8892. IF row > 0 THEN
  8893. IF dw_child.Object.u_outwaremx_relid[row] > 0 THEN
  8894. ELSE
  8895. 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 //价格表增加数量下限,数量上 
  8896. wf_get_price(row)
  8897. END IF
  8898. END IF
  8899. END IF
  8900. IF dwo.Name = 'u_outwaremx_ifrel' THEN
  8901. IF This.Object.u_outwaremx_ifrel[row] = 0 THEN
  8902. dw_child.Object.u_outwaremx_relid[row] = 0
  8903. dw_child.Object.taskcode[row] = ''
  8904. END IF
  8905. ELSEIF dwo.Name = 'u_outwaremx_saleqty' THEN
  8906. String ls_protect
  8907. ls_protect = This.Describe( 'u_outwaremx_uqty.protect')
  8908. IF ls_protect = '0' THEN
  8909. This.Object.u_outwaremx_uqty[row] = This.Object.u_outwaremx_saleqty[row]
  8910. wf_cmpl_amt(row)
  8911. END IF
  8912. 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
  8913. // MessageBox('',String(dwo.Name))
  8914. wf_cmpl_amt(row)
  8915. ELSEIF dwo.Name = 'u_outwaremx_packqty' THEN
  8916. Long ll_mtrlid
  8917. Decimal lde_packqty_single, lde_packqty, lde_rate
  8918. IF ii_packqty_cmpl = 1 THEN
  8919. ll_mtrlid = This.Object.u_outwaremx_mtrlid[row]
  8920. lde_packqty_single = f_get_packqty(ll_mtrlid)
  8921. lde_packqty = This.Object.u_outwaremx_packqty[row]
  8922. lde_rate = This.Object.u_outwaremx_rate[row]
  8923. IF lde_rate = 0 THEN lde_rate = 1
  8924. This.Object.u_outwaremx_qty[row] = lde_packqty * lde_packqty_single
  8925. This.Object.u_outwaremx_uqty[row] = lde_packqty * lde_packqty_single / lde_rate
  8926. This.Object.u_outwaremx_saleqty[row] = lde_packqty * lde_packqty_single / lde_rate
  8927. END IF
  8928. END IF
  8929. end event
  8930. event dw_child::doubleclicked;long i
  8931. IF dw_edit_mode And row > 0 THEN
  8932. IF dwo.Name = 'u_outwaremx_addqty' THEN
  8933. Parent.TriggerEvent('ue_add_addqty')
  8934. ELSEIF dwo.Name = 'u_outwaremx_outtype' THEN
  8935. Parent.TriggerEvent('ue_ch_outtype')
  8936. ELSEIF dwo.Name = 'u_outwaremx_unit' THEN
  8937. Parent.TriggerEvent('ue_f12')
  8938. ELSEIF dwo.Name = 'u_outwaremx_formula' Or dwo.Name = 'u_outwaremx_uqty' THEN
  8939. Parent.TriggerEvent('ue_cmpl_qty')
  8940. ELSEIF dwo.Name = 'u_outwaremx_priceformula' THEN
  8941. Parent.TriggerEvent('ue_cmpl_price')
  8942. ELSEIF dwo.name = 'u_outwaremx_status' or dwo.name = 'u_outwaremx_woodcode' or dwo.name = 'u_outwaremx_pcode' then
  8943. string name
  8944. name =dwo.name
  8945. PARENT.trigger event ue_view_status(row,name)
  8946. ELSEIF dwo.Name = 'u_outwaremx_mxdscrp' THEN
  8947. Parent.TriggerEvent('ue_view_mxdscrp')
  8948. RETURN
  8949. ELSEIF dwo.Name = 'mxdscrp2' THEN
  8950. Parent.TriggerEvent('ue_view_mxdscrp2')
  8951. RETURN
  8952. ELSEIF dwo.Name = 'u_outwaremx_mxdscrp3' THEN
  8953. Parent.TriggerEvent('ue_view_mxdscrp3')
  8954. RETURN
  8955. ELSEIF dwo.Name = 'u_outwaremx_mxdscrp4' THEN
  8956. Parent.TriggerEvent('ue_view_mxdscrp4')
  8957. RETURN
  8958. ELSEIF dwo.Name = 'u_outwaremx_plancode' THEN
  8959. Parent.TriggerEvent('ue_choose_mtrlware_plancode')
  8960. RETURN
  8961. ELSE
  8962. IF this.Object.u_outwaremx_ifrel[row] = 1 THEN //选订单
  8963. IF this.Object.u_outwaremx_relid[row] = 0 THEN
  8964. Parent.TriggerEvent('ue_f7') //选订单
  8965. ELSE
  8966. Parent.TriggerEvent('ue_ch_mtrlware') //选库存
  8967. END IF
  8968. ELSE //选库存
  8969. Parent.TriggerEvent('ue_f8')
  8970. END IF
  8971. Parent.TriggerEvent('ue_setprice_forformula')
  8972. wf_set_barcode()
  8973. END IF
  8974. for i = 1 to dw_child.rowcount()
  8975. round(dw_child.Object.u_outwaremx_enprice[i],sys_option_outware_price_amt_round)
  8976. next
  8977. END IF
  8978. end event
  8979. event dw_child::itemfocuschanged;call super::itemfocuschanged;dw_child.AcceptText()
  8980. end event
  8981. event dw_child::losefocus;call super::losefocus;//long row
  8982. //row = this.getrow()
  8983. //IF row > 0 THEN
  8984. // dw_child.AcceptText()
  8985. //
  8986. // //由金额计算单价
  8987. // IF cbx_enamt_edit.Checked THEN
  8988. // IF dw_child.Object.enamt[row] <> 0 THEN
  8989. // IF dw_child.Object.u_outwaremx_rebate[row] <> 0 And dw_child.Object.u_outwaremx_uqty[row] <> 0 THEN
  8990. // 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]
  8991. // END IF
  8992. // END IF
  8993. // ELSE
  8994. // 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)
  8995. // END IF
  8996. //
  8997. //END IF
  8998. end event
  8999. event dw_child::rowfocuschanged;call super::rowfocuschanged;Parent.TriggerEvent('ue_retrieve_fifo_cbmx')
  9000. Parent.TriggerEvent('ue_retrieve_his_pricemx')
  9001. end event
  9002. event dw_child::ue_dwndropdown;IF NOT dw_edit_mode THEN RETURN
  9003. String ls_col_pz,ls_col_mtrlid
  9004. String ls_pz_ch
  9005. String ls_col_value
  9006. String ls_data_type
  9007. Long ll_row,ll_mtrlid
  9008. long statusflag
  9009. s_pzwin_open arg_s_win
  9010. ll_row = THIS.GetRow()
  9011. IF ll_row > 0 THEN
  9012. ls_col_mtrlid = THIS.Describe("#1.Name")
  9013. IF NOT Pos(Lower(ls_col_mtrlid),'mtrlid') > 0 THEN RETURN
  9014. ll_mtrlid = THIS.GetItemNumber(ll_row,ls_col_mtrlid)
  9015. ls_col_pz = THIS.GetColumnName( )
  9016. ls_data_type = dw_child.Describe(ls_col_pz+".ColType")
  9017. IF Pos(Lower(ls_data_type),"char") > 0 THEN
  9018. ls_col_value = THIS.GetItemString(ll_row,ls_col_pz)
  9019. END IF
  9020. arg_s_win.arg_x = THIS.X + THIS.PointerX() + PARENT.X
  9021. arg_s_win.arg_y = THIS.Y + THIS.PointerY() + PARENT.Y
  9022. arg_s_win.arg_col = ls_col_pz
  9023. arg_s_win.arg_mtrlid = ll_mtrlid
  9024. arg_s_win.arg_col_value = ls_col_value
  9025. ls_pz_ch = f_mtrl_pz(arg_s_win)
  9026. IF isnull(ls_pz_ch) THEN RETURN
  9027. THIS.SetItem(ll_row,ls_col_pz,ls_pz_ch)
  9028. IF ls_col_pz = 'u_outwaremx_status' Or ls_col_pz = 'u_outwaremx_woodcode' Or ls_col_pz = 'u_outwaremx_pcode' THEN
  9029. IF ll_row > 0 THEN
  9030. if isnull(This.Object.u_mtrldef_statusflag[ll_row]) then
  9031. select statusflag into :statusflag from u_mtrldef where mtrlid = :ll_mtrlid;
  9032. if sqlca.sqlcode <> 0 then
  9033. return
  9034. end if
  9035. else
  9036. statusflag = This.Object.u_mtrldef_statusflag[ll_row]
  9037. end if
  9038. IF statusflag = 2 or statusflag = 4 THEN
  9039. wf_get_price(ll_row)
  9040. END IF
  9041. return 1
  9042. END IF
  9043. END IF
  9044. END IF
  9045. end event
  9046. type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_outware_sale
  9047. integer x = 1915
  9048. integer taborder = 60
  9049. end type
  9050. type cb_print from w_publ_1ton_share_detail`cb_print within w_outware_sale
  9051. integer x = 1723
  9052. integer taborder = 70
  9053. end type
  9054. type cb_add from w_publ_1ton_share_detail`cb_add within w_outware_sale
  9055. event ue_cmpl_qty ( )
  9056. integer taborder = 240
  9057. end type
  9058. event cb_add::ue_cmpl_qty();//IF dw_child.GetRow() = 0 THEN RETURN
  9059. //Long child_row
  9060. //dw_child.AcceptText()
  9061. //child_row = dw_child.GetRow()
  9062. //s_cmpl_qty s_cmpl,s_return
  9063. //
  9064. //s_cmpl.qty = dw_child.Object.u_outwaremx_uqty[child_row]
  9065. //s_cmpl.formula = dw_child.Object.u_outwaremx_formula[child_row]
  9066. //
  9067. //IF NOT IsValid(w_cmpl_qty_ch) THEN
  9068. // OpenWithParm(w_cmpl_qty_ch,s_cmpl)
  9069. // s_return = Message.PowerObjectParm
  9070. // IF s_return.formula <> s_cmpl.formula THEN
  9071. // dw_child.Object.u_outwaremx_uqty[child_row] = s_return.qty
  9072. // dw_child.Object.u_outwaremx_formula[child_row] = s_return.formula
  9073. // END IF
  9074. //END IF
  9075. //
  9076. end event
  9077. event cb_add::clicked;IF Not (f_power_ind(11) Or f_power_ind(371)) THEN
  9078. MessageBox('提示',sys_msg_pow,information!,OK!)
  9079. RETURN
  9080. END IF
  9081. String arg_msg = ''
  9082. Long uc_row,pagerert_row
  9083. Long relid_pageretr,reld_uc,i
  9084. Long ll_printid,ll_outwareid,ll_scid, ll_cusid, ll_moneyid
  9085. Int li_flag,li_secflag,li_priceflag
  9086. Decimal ld_packqty
  9087. Decimal lde_billamt, lde_mrate
  9088. String ls_taskcode
  9089. s_outwaremx s_mx
  9090. s_outware_itemmx s_item
  9091. IF dw_edit_mode THEN
  9092. dw_uc.AcceptText()
  9093. dw_child.AcceptText()
  9094. dw_fymx.AcceptText()
  9095. uc_row = dw_uc.GetRow()
  9096. IF uc_row <= 0 THEN
  9097. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  9098. RETURN
  9099. END IF
  9100. IF Not dw_uc.Object.u_outware_outdate[uc_row] > DateTime(2000-01-01,Now()) THEN
  9101. MessageBox('提示','不合理发生时间',information!,OK!)
  9102. dw_uc.SetFocus()
  9103. dw_uc.SetColumn("u_outware_outrep")
  9104. RETURN
  9105. END IF
  9106. IF Not Len(String(dw_uc.Object.u_outware_outrep[uc_row])) > 0 THEN
  9107. MessageBox('提示','请填写业务员',information!,OK!)
  9108. dw_uc.SetFocus()
  9109. dw_uc.SetColumn("u_outware_outrep")
  9110. RETURN
  9111. END IF
  9112. IF dw_uc.Object.u_outware_relint_1[uc_row] = 0 THEN
  9113. MessageBox('提示','请选择结算方式',information!,OK!)
  9114. dw_uc.SetFocus()
  9115. dw_uc.SetColumn("u_outware_relint_1")
  9116. RETURN
  9117. END IF
  9118. IF dw_uc.Object.u_outware_relint_2[uc_row] = 0 THEN
  9119. MessageBox('提示','请选择币种',information!,OK!)
  9120. dw_uc.SetFocus()
  9121. dw_uc.SetColumn("u_outware_relint_2")
  9122. RETURN
  9123. END IF
  9124. //处理一次数量
  9125. IF sys_option_outware_if_saleqty = 0 THEN //不分离
  9126. FOR i = 1 To dw_child.RowCount()
  9127. dw_child.Object.u_outwaremx_saleqty[i] = dw_child.Object.u_outwaremx_uqty[i]
  9128. NEXT
  9129. ELSE
  9130. END IF
  9131. //由金额计算单价
  9132. IF cbx_enamt_edit.Checked THEN
  9133. FOR i = 1 To dw_child.RowCount()
  9134. IF dw_child.Object.enamt[i] <> 0 THEN
  9135. IF dw_child.Object.u_outwaremx_rebate[i] <> 0 And dw_child.Object.u_outwaremx_uqty[i] <> 0 THEN
  9136. 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]
  9137. END IF
  9138. END IF
  9139. NEXT
  9140. END IF
  9141. //录入不含税单价
  9142. IF cbx_enamt_notax_edit.Checked THEN
  9143. FOR i = 1 To dw_child.RowCount()
  9144. wf_cmpl_amt(i)
  9145. NEXT
  9146. END IF
  9147. //由金额计算折扣
  9148. IF cbx_zk.Checked THEN
  9149. FOR i = 1 To dw_child.RowCount()
  9150. IF dw_child.Object.enamt[i] <> 0 THEN
  9151. IF dw_child.Object.u_outwaremx_enprice[i] > 0 THEN
  9152. ELSE
  9153. MessageBox('提示','第' + String(i) + '行请输入单价')
  9154. RETURN
  9155. END IF
  9156. IF dw_child.Object.u_outwaremx_enprice[i] <> 0 And dw_child.Object.u_outwaremx_saleqty[i] <> 0 THEN
  9157. 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]
  9158. END IF
  9159. END IF
  9160. NEXT
  9161. END IF
  9162. //检查库存ID, 生成0库存
  9163. // IF sys_option_hide_ware = 1 THEN
  9164. FOR i = 1 To dw_child.RowCount()
  9165. IF dw_child.Object.u_outwaremx_mtrlwareid[i] = 0 THEN
  9166. IF dw_child.Object.u_outwaremx_uqty[i] <> 0 THEN
  9167. wf_get_mtrlwareid(i)
  9168. END IF
  9169. END IF
  9170. NEXT
  9171. // END IF
  9172. //
  9173. IF Not sys_power_issuper And f_power_ind(978) THEN
  9174. arg_msg = ''
  9175. FOR i = 1 To dw_child.RowCount()
  9176. IF dw_child.Object.u_outwaremx_mtrlwareid[i] > 0 THEN
  9177. IF dw_child.Object.u_outwaremx_uqty[i] > 0 THEN
  9178. IF dw_child.Object.u_outwaremx_outtype[i] > 0 And sys_option_saletask_price = 1 THEN
  9179. ELSE
  9180. IF dw_child.Object.u_outwaremx_enprice[i] = 0 THEN
  9181. arg_msg = arg_msg + '第' + String(i) + '行,产品:' + dw_child.Object.u_mtrldef_mtrlcode[i] + ',单价为零!~n '
  9182. END IF
  9183. END IF
  9184. END IF
  9185. END IF
  9186. NEXT
  9187. IF arg_msg <> '' THEN
  9188. MessageBox('提示',arg_msg + '用户权限限制,不能保存!',information!,OK!)
  9189. RETURN
  9190. END IF
  9191. END IF
  9192. IF Not f_power_ind(520) THEN
  9193. arg_msg = ''
  9194. FOR i = 1 To dw_child.RowCount()
  9195. IF dw_child.Object.u_outwaremx_mtrlwareid[i] > 0 THEN
  9196. IF dw_child.Object.u_outwaremx_uqty[i] > 0 THEN
  9197. IF dw_child.Object.u_outwaremx_outtype[i] = 0 THEN //一般发货
  9198. If (dw_child.Object.u_outwaremx_ifrel[i] = 1 &
  9199. And dw_child.Object.u_outwaremx_relid[i] = 0) &
  9200. Or dw_child.Object.u_outwaremx_ifrel[i] = 0 THEN
  9201. arg_msg = arg_msg + '第' + String(i) + '行,产品:' + dw_child.Object.u_mtrldef_mtrlcode[i] + ',请选择订单!~n '
  9202. END IF
  9203. END IF
  9204. END IF
  9205. END IF
  9206. NEXT
  9207. IF arg_msg <> '' THEN
  9208. MessageBox('提示',arg_msg + '用户权限限制,不能保存!',information!,OK!)
  9209. RETURN
  9210. END IF
  9211. END IF
  9212. ll_scid = dw_uc.Object.u_outware_scid[uc_row]
  9213. ll_outwareid = dw_uc.Object.u_outware_outwareid[uc_row]
  9214. ll_cusid = dw_uc.Object.u_outware_cusid[uc_row]
  9215. ll_moneyid = dw_uc.Object.u_outware_relint_2[uc_row]
  9216. IF sys_option_cusrepamt_limit = 1 THEN
  9217. wf_getcusrepamt_info(ll_scid,ll_cusid,ll_moneyid)
  9218. IF cur_cusrepamtflag = -1 THEN
  9219. MessageBox('系统提示','系统选项080限制~r~n'+cur_cusrepamtstr)
  9220. RETURN 0
  9221. END IF
  9222. END IF
  9223. //保存前根据物料资料定义,检查数量和辅数的关系是否正确,如果辅数有填写 ,数量没有填写 ,会根据物料资料里的定义自动计算出数量
  9224. IF wf_check_qtyandaddqty(arg_msg) = 0 THEN
  9225. MessageBox('提示',arg_msg + ',不能保存!',information!,OK!)
  9226. RETURN
  9227. END IF
  9228. //系统选项280 设置单价小数位数
  9229. wf_set_decimal_place()
  9230. uo_ware.outdate = dw_uc.Object.u_outware_outdate[uc_row] // 发生时间
  9231. uo_ware.outrep = dw_uc.Object.u_outware_outrep[uc_row] // 经手人
  9232. uo_ware.part = dw_uc.Object.u_outware_part[uc_row] //相关部门
  9233. uo_ware.dscrp = dw_uc.Object.u_outware_dscrp[uc_row] //备注
  9234. uo_ware.dscrp2 = dw_uc.Object.u_outware_dscrp2[uc_row] //备注
  9235. uo_ware.dscrp3 = dw_uc.Object.u_outware_dscrp3[uc_row] //备注
  9236. uo_ware.cusid = dw_uc.Object.u_outware_cusid[uc_row]
  9237. uo_ware.storageid = dw_uc.Object.u_outware_storageid[uc_row]
  9238. uo_ware.relid = dw_uc.Object.u_outware_relid[uc_row]
  9239. uo_ware.relint_1 = dw_uc.Object.u_outware_relint_1[uc_row] //结算方式
  9240. uo_ware.relint_2 = dw_uc.Object.u_outware_relint_2[uc_row] //币种
  9241. uo_ware.relstr_1 = dw_uc.Object.u_outware_relstr_1[uc_row]
  9242. uo_ware.relstr_2 = dw_uc.Object.u_outware_relstr_2[uc_row]
  9243. uo_ware.relstr_3 = dw_uc.Object.u_outware_relstr_3[uc_row]
  9244. uo_ware.mrate = dw_uc.Object.u_outware_mrate[uc_row]
  9245. uo_ware.thflag = 0
  9246. uo_ware.otheramt = dw_uc.Object.u_outware_otheramt[uc_row]
  9247. uo_ware.deposit = dw_uc.Object.u_outware_deposit[uc_row]
  9248. uo_ware.rel_address = dw_uc.Object.u_outware_rel_address[uc_row]
  9249. uo_ware.rel_tele = dw_uc.Object.u_outware_rel_tele[uc_row]
  9250. uo_ware.rel_tele1 = dw_uc.Object.u_outware_rel_tele1[uc_row]
  9251. uo_ware.rel_fax = dw_uc.Object.u_outware_rel_fax[uc_row]
  9252. uo_ware.rel_rep = dw_uc.Object.u_outware_rel_rep[uc_row]
  9253. uo_ware.deposit = dw_uc.Object.u_outware_deposit[uc_row]
  9254. uo_ware.transcode = dw_uc.Object.u_outware_transcode[uc_row]
  9255. uo_ware.carcode = dw_uc.Object.u_outware_carcode[uc_row]
  9256. uo_ware.paytype = dw_uc.Object.u_outware_paytype[uc_row]
  9257. uo_ware.typeid = dw_uc.Object.u_outware_typeid[uc_row]
  9258. uo_ware.viewdate = dw_uc.Object.u_outware_viewdate[uc_row] // 预收款时间
  9259. IF ll_outwareid > 0 THEN
  9260. SELECT flag,secflag,priceflag
  9261. INTO :li_flag,:li_secflag,:li_priceflag
  9262. FROM u_outware
  9263. WHERE scid = :ll_scid
  9264. And outwareid = :ll_outwareid;
  9265. IF sqlca.SQLCode <> 0 THEN
  9266. MessageBox('错误','查询销售单审核标记失败',stopsign!,OK!)
  9267. RETURN
  9268. END IF
  9269. END IF
  9270. ll_printid = 0
  9271. dw_child.AcceptText()
  9272. FOR i = 1 To dw_child.RowCount()
  9273. IF dw_child.Object.u_outwaremx_mtrlwareid[i] > 0 THEN
  9274. IF li_priceflag = 0 And li_flag = 0 THEN
  9275. ll_printid ++
  9276. ELSE
  9277. ll_printid = dw_child.Object.u_outwaremx_printid[i]
  9278. END IF
  9279. s_mx.mtrlwareid = dw_child.Object.u_outwaremx_mtrlwareid[i]
  9280. s_mx.saleqty = dw_child.Object.u_outwaremx_saleqty[i]
  9281. s_mx.qty = dw_child.Object.u_outwaremx_uqty[i]
  9282. s_mx.addqty = dw_child.Object.u_outwaremx_addqty[i]
  9283. s_mx.tax = dw_child.Object.u_outwaremx_tax[i]
  9284. s_mx.fprice = dw_child.Object.u_outwaremx_enprice[i]
  9285. s_mx.rebate = dw_child.Object.u_outwaremx_rebate[i]
  9286. s_mx.mxdscrp = dw_child.Object.u_outwaremx_mxdscrp[i]
  9287. s_mx.printid = ll_printid
  9288. s_mx.ifrel = dw_child.Object.u_outwaremx_ifrel[i]
  9289. s_mx.relid = dw_child.Object.u_outwaremx_relid[i]
  9290. s_mx.relprintid = dw_child.Object.u_outwaremx_relprintid[i]
  9291. s_mx.relid2 = 0
  9292. s_mx.olmtrlid = 0
  9293. s_mx.packqty = dw_child.Object.u_outwaremx_packqty[i]
  9294. s_mx.outtype = dw_child.Object.u_outwaremx_outtype[i]
  9295. s_mx.unit = dw_child.Object.u_outwaremx_unit[i]
  9296. s_mx.rate = dw_child.Object.u_outwaremx_rate[i]
  9297. s_mx.mtrlcuscode = dw_child.Object.u_outwaremx_mtrlcuscode[i]
  9298. s_mx.formula = dw_child.Object.u_outwaremx_formula[i]
  9299. s_mx.mxdscrp2 = dw_child.Object.mxdscrp2[i]
  9300. s_mx.net_weight = dw_child.Object.u_outwaremx_net_weight[i]
  9301. s_mx.gross_weight = dw_child.Object.u_outwaremx_gross_weight[i]
  9302. s_mx.cubage = dw_child.Object.u_outwaremx_cubage[i]
  9303. s_mx.mxdscrp3 = dw_child.Object.u_outwaremx_mxdscrp3[i]
  9304. s_mx.mxdscrp4 = dw_child.Object.u_outwaremx_mxdscrp4[i]
  9305. s_mx.enprice_notax = dw_child.Object.enprice_notax[i] //不含税单价
  9306. s_mx.priceformula = dw_child.Object.u_outwaremx_priceformula[i]
  9307. s_mx.enamt_tax = dw_child.Object.u_outwaremx_enamt_tax[i]
  9308. s_mx.status = dw_child.Object.u_outwaremx_status[i]
  9309. s_mx.woodcode = dw_child.Object.u_outwaremx_woodcode[i]
  9310. s_mx.pcode = dw_child.Object.u_outwaremx_pcode[i]
  9311. s_mx.otherprice = dw_child.Object.u_outwaremx_otherprice[i]
  9312. IF uo_ware.acceptmx(s_mx, arg_msg) = 0 THEN
  9313. MessageBox('错误',arg_msg,stopsign!,OK!)
  9314. RETURN
  9315. END IF
  9316. END IF
  9317. NEXT
  9318. IF uo_ware.createmxmx(arg_msg) <> 1 THEN
  9319. MessageBox('错误',arg_msg,stopsign!,OK!)
  9320. RETURN
  9321. END IF
  9322. FOR i = 1 To dw_fymx.RowCount()
  9323. IF dw_fymx.Object.u_outware_itemmx_itemid[i] > 0 THEN
  9324. s_item.printid = i
  9325. s_item.itemid = dw_fymx.Object.u_outware_itemmx_itemid[i]
  9326. s_item.amt = dw_fymx.Object.u_outware_itemmx_amt[i]
  9327. s_item.mxdscrp = dw_fymx.Object.u_outware_itemmx_mxdscrp[i]
  9328. s_item.saletaskid = dw_fymx.Object.u_outware_itemmx_saletaskid[i]
  9329. s_item.saletaskprintid = dw_fymx.Object.u_outware_itemmx_saletaskprintid[i]
  9330. s_item.itype = dw_fymx.Object.u_outware_itemmx_itype[i]
  9331. IF uo_ware.acceptmx_item(s_item, arg_msg) = 0 THEN
  9332. MessageBox('Error!',arg_msg)
  9333. RETURN
  9334. END IF
  9335. END IF
  9336. NEXT
  9337. IF uo_ware.Save(True,arg_msg) = 0 THEN
  9338. MessageBox('错误',arg_msg,stopsign!,OK!)
  9339. RETURN
  9340. END IF
  9341. // MessageBox(publ_operator,'保存操作成功!')
  9342. //write ini
  9343. f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "ddlb_storageid",String(dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]))
  9344. f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "moneyid",String(dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()]))
  9345. f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "banktypeid",String(dw_uc.Object.u_outware_relint_1[dw_uc.GetRow()]))
  9346. Long ll_row
  9347. ll_row = dw_pageretr.GetRow()
  9348. dw_pageretr.SelectRow(0,False)
  9349. dw_pageretr.SelectRow(ll_row,True)
  9350. wf_refresh_curuc(ll_scid,uo_ware.outwareid) //刷新uc
  9351. ls_taskcode = dw_uc.Object.u_outware_outwarecode[uc_row]
  9352. IF f_billevent_trigger (104, 2, ls_taskcode, arg_msg) = 0 THEN
  9353. MessageBox('Error',arg_msg)
  9354. END IF
  9355. ELSE
  9356. IF uo_ware.newbegin(cur_scid,1,arg_msg) = 0 THEN
  9357. MessageBox('错误',arg_msg,stopsign!,OK!)
  9358. RETURN
  9359. END IF
  9360. cur_editfocus = 1
  9361. flag = -1
  9362. secflag = -1
  9363. END IF
  9364. CALL Super::Clicked
  9365. //read ini
  9366. IF dw_edit_mode THEN
  9367. dw_fymx.Reset()
  9368. Parent.TriggerEvent("insert_childrow")
  9369. String ls_storageid,ls_moneyid,ls_banktypeid
  9370. IF sys_option_hide_ware = 1 THEN
  9371. ls_storageid = '11'
  9372. ELSE
  9373. ls_storageid = f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "ddlb_storageid",'0')
  9374. IF f_find_storageid(ls_storageid) = '' THEN
  9375. ls_storageid = '0'
  9376. END IF
  9377. END IF
  9378. ls_moneyid = f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "moneyid",'0')
  9379. ls_banktypeid = f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "banktypeid",'0')
  9380. dw_uc.SetRedraw(False)
  9381. dw_uc.Object.u_outware_storageid[dw_uc.GetRow()] = Long(ls_storageid)
  9382. dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] = Long(ls_moneyid)
  9383. dw_uc.Object.u_outware_mrate[dw_uc.GetRow()] = f_get_mrate(Long(ls_moneyid))
  9384. dw_uc.Object.u_outware_relint_1[dw_uc.GetRow()] = Long(ls_banktypeid)
  9385. dw_uc.Object.u_outware_scid[dw_uc.GetRow()] = cur_scid
  9386. dw_uc.Object.u_outware_viewdate[dw_uc.GetRow()] = relativedate(today(), 1 - day(today()))
  9387. IF sys_option_hide_ware = 0 THEN
  9388. dw_uc.SetColumn("u_outware_storageid")
  9389. ELSE
  9390. dw_uc.SetColumn("u_cust_cuscode")
  9391. END IF
  9392. dw_uc.SetRedraw(True)
  9393. ELSE
  9394. Parent.TriggerEvent("retrieve_childdw")
  9395. END IF
  9396. //
  9397. end event
  9398. type cb_edit from w_publ_1ton_share_detail`cb_edit within w_outware_sale
  9399. integer taborder = 100
  9400. end type
  9401. event cb_edit::clicked;IF priceflag = 1 OR flag = 1 THEN
  9402. IF NOT f_power_ind(1294) THEN
  9403. //MessageBox('提示','你没有仓审或确认后修改权限!',information!,OK!)
  9404. MessageBox('提示',sys_msg_pow)
  9405. RETURN
  9406. END IF
  9407. ELSE
  9408. IF Not (f_power_ind(11) OR f_power_ind(371)) THEN
  9409. MessageBox('提示',sys_msg_pow)
  9410. RETURN
  9411. END IF
  9412. END IF
  9413. String arg_msg = ''
  9414. Long uc_row,ll_flag
  9415. uc_row = dw_pageretr.GetRow()
  9416. IF uc_row <= 0 THEN
  9417. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  9418. RETURN
  9419. END IF
  9420. IF NOT dw_edit_mode THEN
  9421. 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
  9422. MessageBox('错误',arg_msg,stopsign!,OK!)
  9423. RETURN
  9424. END IF
  9425. cur_editfocus = 2
  9426. ELSE
  9427. cur_editfocus = 0
  9428. END IF
  9429. CALL SUPER::Clicked
  9430. THIS.TriggerEvent('refresh_interface')
  9431. end event
  9432. type cb_delet from w_publ_1ton_share_detail`cb_delet within w_outware_sale
  9433. integer taborder = 110
  9434. end type
  9435. event cb_delet::clicked;call super::clicked;if not (f_power_ind(580) or f_power_ind(583)) then
  9436. messagebox('提示',sys_msg_pow,information!,OK!)
  9437. return
  9438. end if
  9439. string arg_msg=''
  9440. if dw_edit_mode then return
  9441. long uc_row
  9442. uc_row=dw_pageretr.getrow()
  9443. if uc_row<=0 then
  9444. messagebox('提示','请选定当前目标单据!',information!,OK!)
  9445. return
  9446. end if
  9447. if messagebox ("询问","是否确定要删除当前单据?",question!,yesno! ) = 2 then return
  9448. 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
  9449. messagebox('错误',arg_msg,stopsign!,OK!)
  9450. else
  9451. //日志
  9452. long ls_id
  9453. string ls_code
  9454. ls_id=dw_pageretr.object.u_outware_outwareid[uc_row]
  9455. ls_code=dw_pageretr.object.u_outware_outwarecode[uc_row]
  9456. f_setsysoplog('销售发货单','删除,id:'+string(ls_id)+',code:'+ls_code,arg_msg,true)
  9457. //--
  9458. messagebox('提示','删除单据'+string(dw_pageretr.object.u_outware_outwarecode[uc_row])+'成功!',information!,OK!)
  9459. dw_pageretr.deleterow(uc_row)
  9460. dw_pageretr.postevent(rowfocuschanged!)
  9461. end if
  9462. end event
  9463. type cb_addzy from w_publ_1ton_share_detail`cb_addzy within w_outware_sale
  9464. integer x = 1221
  9465. end type
  9466. event cb_addzy::clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  9467. String menustr
  9468. IF dw_edit_mode THEN
  9469. menustr = menustr + "|" + "Text=导入单价~tEvent=ue_importseleprice"
  9470. menustr = menustr + "|" + "Text=补充导入单价~tEvent=ue_importcusseleprice_buchong"
  9471. menustr = menustr + "|" + "Text=导入客户单价~tEvent=ue_importcusseleprice"
  9472. IF sys_option_price_if_list = 3 THEN //取设定售价, 1时只能取价格表
  9473. menustr = menustr + "|" + "Text=导入设定售价~tEvent=ue_importlmsaleprice"
  9474. END IF
  9475. IF sys_option_price_if_list = 0 THEN //取销售历史, 1时只能取价格表
  9476. menustr = menustr + "|" + "Text=导入客户历史售价~tEvent=ue_importcusseleprice_his"
  9477. END IF
  9478. menustr = menustr + "|" + "Text=-"
  9479. menustr = menustr + "|" + "Text=辅助计算辅数~tEvent=ue_cmpl_addqty"
  9480. menustr = menustr + "|" + "Text=-"
  9481. menustr = menustr + "|" + "Text=粘贴单据~tEvent=ue_bill_paste"
  9482. ELSE
  9483. menustr = "Text=增加备注~tEvent=ue_addzy"
  9484. menustr = menustr + "|" + "Text=-"
  9485. menustr = menustr + "|" + "Text=确认~tEvent=ue_priceaudit"
  9486. menustr = menustr + "|" + "Text=反确认~tEvent=ue_cpriceaudit"
  9487. menustr = menustr + "|" + "Text=-"
  9488. menustr = menustr + "|" + "Text=回单~tEvent=ue_secpriceaudit"
  9489. menustr = menustr + "|" + "Text=反回单~tEvent=ue_csecpriceaudit"
  9490. menustr = menustr + "|" + "Text=-"
  9491. menustr = menustr + "|" + "Text=计算(所属仓库)可装数~tEvent=ue_cmpdi"
  9492. menustr = menustr + "|" + "Text=计算(全部仓库)可装数~tEvent=ue_cmpdi_all"
  9493. menustr = menustr + "|" + "Text=辅助建立拆装单~tEvent=ue_di"
  9494. menustr = menustr + "|" + "Text=自动组装~tEvent=ue_di_auto"
  9495. menustr = menustr + "|" + "Text=删除自动组装~tEvent=ue_di_auto_del"
  9496. menustr = menustr + "|" + "Text=-"
  9497. menustr = menustr + "|" + "Text=复制单据~tEvent=ue_bill_copy"
  9498. menustr = menustr + "|" + "Text=-"
  9499. menustr = menustr + "|" + "Text=查看附件~tEvent=ue_fj_view"
  9500. menustr = menustr + "|" + "Text=添加附件~tEvent=ue_fj_edit"
  9501. menustr = menustr + "|" + "Text=刷新列表附件数~tEvent=retrieve_fjnum"
  9502. menustr = menustr + "|" + "Text=-"
  9503. menustr = menustr + "|" + "Text=全选~tEvent=ue_all_choice"
  9504. menustr = menustr + "|" + "Text=全不选~tEvent=ue_allnot_choice"
  9505. menustr = menustr + "|" + "Text=批仓审核(选中的)~tEvent=ue_all_audit"
  9506. menustr = menustr + "|" + "Text=批仓撤审(选中的)~tEvent=ue_allnot_audit"
  9507. menustr = menustr + "|" + "Text=批删除(选中的)~tEvent=ue_all_delete"
  9508. menustr = menustr + "|" + "Text=批财撤(选中的)~tEvent=ue_all_c_secaudit"
  9509. menustr = menustr + "|" + "Text=批修改销售时间(选中的)~tEvent=ue_mod_outdate"
  9510. menustr = menustr + "|" + "Text=-"
  9511. menustr = menustr + "|" + "Text=辅助建立客户收款结算单~tEvent=ue_create_bmstamt"
  9512. menustr = menustr + "|" + "Text=-"
  9513. menustr = menustr + "|" + "Text=仓审后修改结算方式~tEvent=ue_bill_mod"
  9514. menustr = menustr + "|" + "Text=按物料批修改单价~tEvent=ue_price_mod"
  9515. menustr = menustr + "|" + "Text=-"
  9516. menustr = menustr + "|" + "Text=界面属性选项设置方案~tEvent=ue_outware_choose"
  9517. END IF
  9518. IF Len(Trim(menustr)) <> 0 THEN
  9519. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  9520. dmPopupMenu.mf_BuildMenu(This, menustr)
  9521. dmPopupMenu.mf_PopMenu()
  9522. Destroy dmPopupMenu
  9523. END IF
  9524. end event
  9525. type cb_auditing from w_publ_1ton_share_detail`cb_auditing within w_outware_sale
  9526. integer taborder = 120
  9527. string text = "仓审&F"
  9528. end type
  9529. event cb_auditing::clicked;call super::clicked;IF dw_edit_mode THEN RETURN
  9530. String ls_taskcode,ls_outwarecode
  9531. String ls_msg = ''
  9532. Long rslt = 1
  9533. Int li_priceflag, li_flag, li_secflag
  9534. Long ll_i,ll_billid, ll_scid,ll_peg
  9535. IF Not KeyDown(KeyControl!) THEN
  9536. String arg_msg = '',ls_code
  9537. Long pagerert_row,ls_id
  9538. pagerert_row = dw_pageretr.GetRow()
  9539. IF pagerert_row <= 0 THEN
  9540. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  9541. RETURN
  9542. END IF
  9543. ll_scid = dw_pageretr.Object.u_outware_scid[pagerert_row]
  9544. ll_billid = dw_pageretr.Object.u_outware_outwareid[pagerert_row]
  9545. li_priceflag = dw_pageretr.Object.u_outware_priceflag[pagerert_row]
  9546. li_flag = dw_pageretr.Object.flag[pagerert_row]
  9547. li_secflag = dw_pageretr.Object.secflag[pagerert_row]
  9548. ls_outwarecode = dw_pageretr.Object.u_outware_outwarecode[pagerert_row]
  9549. ls_msg = '审核'
  9550. IF sys_option_confirmaudit_sale = 1 And li_priceflag = 0 THEN ls_msg = '确认'
  9551. IF MessageBox ("询问","是否确定要"+This.Text+"当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  9552. IF uo_ware.getinfo(ll_scid,ll_billid,arg_msg) = 0 THEN
  9553. MessageBox('错误',arg_msg,stopsign!,OK!)
  9554. RETURN
  9555. END IF
  9556. IF sys_option_confirmaudit_sale = 1 And li_priceflag = 0 THEN
  9557. IF Not f_power_ind(491) THEN
  9558. MessageBox('提示',sys_msg_pow,information!,OK!)
  9559. RETURN
  9560. END IF
  9561. IF uo_ware.priceaudit(ll_scid,ll_billid,True,arg_msg) = 0 THEN
  9562. rslt = 0
  9563. GOTO ext
  9564. END IF
  9565. ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[pagerert_row]
  9566. IF f_billevent_trigger (104, 4, ls_taskcode, arg_msg) = 0 THEN
  9567. MessageBox('Error',arg_msg)
  9568. END IF
  9569. ELSE
  9570. IF sys_option_hide_ware = 0 THEN
  9571. IF li_flag = 0 THEN
  9572. IF Not (f_power_ind(65) Or f_power_ind(369)) THEN
  9573. MessageBox('提示',sys_msg_pow,information!,OK!)
  9574. RETURN
  9575. END IF
  9576. //系统选项267销售发货单,销售退货单 扫描数不等于出仓数不能仓审
  9577. IF sys_option_check_scanqty = 1 THEN
  9578. ls_msg = wf_check_sys_option_check_scanqty()
  9579. IF ls_msg <> '' THEN
  9580. MessageBox('NO',ls_msg)
  9581. RETURN
  9582. END IF
  9583. END IF
  9584. //检查淘宝发货标记yyx20151118
  9585. IF wf_ck_taobao(ls_outwarecode) = 0 THEN
  9586. RETURN
  9587. END IF
  9588. //检查淘宝发货标记yyx20151118_end
  9589. ls_msg = '仓库审核'
  9590. IF uo_ware.auditing(True,arg_msg) = 0 THEN
  9591. rslt = 0
  9592. GOTO ext
  9593. ELSE
  9594. ll_peg = 1
  9595. END IF
  9596. ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[pagerert_row]
  9597. IF f_billevent_trigger (104, 3, ls_taskcode, arg_msg) = 0 THEN
  9598. MessageBox('Error',arg_msg)
  9599. END IF
  9600. ELSEIF li_flag = 1 And li_secflag = 0 THEN
  9601. IF Not (f_power_ind(137) Or f_power_ind(370)) THEN
  9602. MessageBox('提示',sys_msg_pow,information!,OK!)
  9603. RETURN
  9604. END IF
  9605. ls_msg = '财务审核'
  9606. IF uo_ware.secauditing(True,arg_msg) = 0 THEN
  9607. rslt = 0
  9608. GOTO ext
  9609. END IF
  9610. ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[pagerert_row]
  9611. IF f_billevent_trigger (104, 5, ls_taskcode, arg_msg) = 0 THEN
  9612. MessageBox('Error',arg_msg)
  9613. END IF
  9614. END IF
  9615. ELSE
  9616. IF dw_pageretr.Object.flag[pagerert_row] = 0 THEN
  9617. IF Not (f_power_ind(137) Or f_power_ind(370)) THEN
  9618. MessageBox('提示',sys_msg_pow,information!,OK!)
  9619. RETURN
  9620. END IF
  9621. //检查淘宝发货标记yyx20151118
  9622. IF wf_ck_taobao(ls_outwarecode) = 0 THEN
  9623. RETURN
  9624. END IF
  9625. //检查淘宝发货标记yyx20151118_end
  9626. IF uo_ware.auditing(False,arg_msg) = 0 THEN
  9627. rslt = 0
  9628. GOTO ext
  9629. END IF
  9630. IF uo_ware.secauditing(True,arg_msg) = 0 THEN
  9631. rslt = 0
  9632. GOTO ext
  9633. END IF
  9634. END IF
  9635. END IF
  9636. END IF
  9637. ext:
  9638. IF rslt = 0 THEN
  9639. MessageBox('错误',arg_msg,stopsign!,OK!)
  9640. ELSE
  9641. MessageBox('提示',ls_msg+'成功!',information!,OK!)
  9642. wf_refresh_curuc(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row])
  9643. IF ll_peg = 1 THEN
  9644. wf_check_ware(ll_scid,ll_billid)
  9645. END IF
  9646. END IF
  9647. ELSE
  9648. Int li_type
  9649. Long ll_suc,ll_fail
  9650. dw_pageretr.AcceptText()
  9651. li_flag = dw_pageretr.Object.flag[dw_pageretr.GetRow()]
  9652. li_secflag = dw_pageretr.Object.secflag[dw_pageretr.GetRow()]
  9653. IF li_flag = 0 And li_secflag = 0 THEN
  9654. li_type = 0
  9655. ls_msg = '审核'
  9656. IF Not (f_power_ind(65) Or f_power_ind(369)) THEN
  9657. MessageBox('提示',sys_msg_pow,information!,OK!)
  9658. RETURN
  9659. END IF
  9660. ELSEIF li_flag = 1 And li_secflag = 0 THEN
  9661. li_type = 1
  9662. ls_msg = '财审'
  9663. IF Not (f_power_ind(137) Or f_power_ind(370)) THEN
  9664. MessageBox('提示',sys_msg_pow,information!,OK!)
  9665. RETURN
  9666. END IF
  9667. ELSE
  9668. RETURN
  9669. END IF
  9670. IF MessageBox ("询问","是否确定要批"+ls_msg+"列表中未"+ls_msg+"的单据?",Question!,YesNo! ) = 2 THEN RETURN
  9671. Open(w_sys_wait_jdt) //初始化进度条
  9672. w_sys_wait_jdt.Show()
  9673. w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount())
  9674. FOR ll_i = 1 To dw_pageretr.RowCount()
  9675. w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.u_outware_outwarecode[ll_i] + " 正在审核..." //进度信息
  9676. ll_billid = dw_pageretr.Object.u_outware_outwareid[ll_i]
  9677. ll_scid = dw_pageretr.Object.u_outware_scid[ll_i]
  9678. ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[ll_i]
  9679. li_flag = dw_pageretr.Object.flag[ll_i]
  9680. li_secflag = dw_pageretr.Object.secflag[ll_i]
  9681. IF li_type = 0 THEN //仓审
  9682. IF li_flag = 1 THEN CONTINUE
  9683. IF uo_ware.getinfo(ll_scid,ll_billid,arg_msg) = 0 THEN
  9684. ll_fail++
  9685. CONTINUE
  9686. END IF
  9687. IF uo_ware.auditing(True,arg_msg) = 0 THEN
  9688. ll_fail++
  9689. CONTINUE
  9690. END IF
  9691. ll_suc++
  9692. IF f_billevent_trigger (104, 3, ls_taskcode, arg_msg) = 0 THEN
  9693. ls_msg = ls_msg + arg_msg + '~r~n'
  9694. END IF
  9695. ELSEIF li_type = 1 THEN //财审
  9696. IF li_flag = 0 Or li_secflag = 1 THEN CONTINUE
  9697. IF uo_ware.getinfo(ll_scid,ll_billid,arg_msg) = 0 THEN
  9698. ll_fail++
  9699. CONTINUE
  9700. END IF
  9701. IF uo_ware.secauditing(True,arg_msg) = 0 THEN
  9702. ll_fail++
  9703. CONTINUE
  9704. END IF
  9705. ll_suc++
  9706. IF f_billevent_trigger (104, 5, ls_taskcode, arg_msg) = 0 THEN
  9707. ls_msg = ls_msg + arg_msg + '~r~n'
  9708. END IF
  9709. END IF
  9710. w_sys_wait_jdt.wf_inc(ll_i) //进度
  9711. NEXT
  9712. Close(w_sys_wait_jdt)
  9713. MessageBox('提示','批'+ls_msg+'审核成功!成功:'+String(ll_suc)+',失败:'+String(ll_fail) + ls_msg,information!,OK!)
  9714. Parent.TriggerEvent('retrieve_pageretr')
  9715. END IF
  9716. end event
  9717. type cb_xm from w_publ_1ton_share_detail`cb_xm within w_outware_sale
  9718. integer x = 1472
  9719. integer taborder = 140
  9720. end type
  9721. event cb_xm::clicked;//
  9722. is_mx_menustr = ''
  9723. Long ll_storageid,uc_row
  9724. uc_row = dw_pageretr.GetRow()
  9725. IF uc_row <= 0 THEN
  9726. RETURN
  9727. END IF
  9728. ll_storageid = dw_pageretr.Object.u_outware_storageid[uc_row]
  9729. Long li_if_fifo = 0
  9730. SELECT if_fifo
  9731. INTO :li_if_fifo
  9732. FROM u_storage
  9733. Where storageid = :ll_storageid Using sqlca;
  9734. IF dw_edit_mode THEN
  9735. is_mx_menustr += "|" + "Text=批设定折扣~tEvent=ue_p_rebate"
  9736. is_mx_menustr += "|" + "Text=批设定公式~tEvent=ue_p_formula_set"
  9737. is_mx_menustr += "|" + "Text=批由公式计算数量~tEvent=ue_p_cmpl_qty"
  9738. is_mx_menustr += "|" + "Text=批由辅数和配置计算数量~tEvent=ue_cmpl_status_qty"
  9739. is_mx_menustr += "|" + "Text=批设数量为0~tEvent=ue_cmpl_set0"
  9740. is_mx_menustr += "|" + "Text=计算税率~tEvent=ue_cmpl_tax"
  9741. is_mx_menustr += "|" + "Text=按第一行批设税率~tEvent=ue_set_tax"
  9742. ELSE
  9743. IF li_if_fifo = 1 THEN
  9744. is_mx_menustr += "|" + "Text=查看成本组成明细~tEvent=ue_show_fifo_cbmx"
  9745. is_mx_menustr += "|" + "Text=查看销售历史价格~tEvent=ue_show_his_pricemx"
  9746. END IF
  9747. is_mx_menustr += "|" + "Text=计算明细库存数量和不足数量~tEvent=ue_mx_cmplnoallocqty"
  9748. END IF
  9749. CALL Super::Clicked
  9750. end event
  9751. type cb_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_outware_sale
  9752. integer taborder = 50
  9753. end type
  9754. type cb_xls from w_publ_1ton_share_detail`cb_xls within w_outware_sale
  9755. integer x = 2107
  9756. end type
  9757. type cb_help from w_publ_1ton_share_detail`cb_help within w_outware_sale
  9758. integer x = 2409
  9759. integer taborder = 160
  9760. end type
  9761. type cb_auditing_cancel from w_publ_1ton_share_detail`cb_auditing_cancel within w_outware_sale
  9762. integer width = 192
  9763. end type
  9764. event cb_auditing_cancel::clicked;call super::clicked;IF dw_edit_mode THEN RETURN
  9765. String arg_msg = '',ls_code,ls_opemp,ls_outpart
  9766. Long pagerert_row,ls_id
  9767. Long rslt = 1
  9768. String ls_msg
  9769. Int li_priceflag, li_flag, li_secflag
  9770. Long ll_i,ll_billid, ll_scid
  9771. pagerert_row = dw_pageretr.GetRow()
  9772. IF pagerert_row <= 0 THEN
  9773. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  9774. RETURN
  9775. END IF
  9776. ll_scid = dw_pageretr.Object.u_outware_scid[pagerert_row]
  9777. ll_billid = dw_pageretr.Object.u_outware_outwareid[pagerert_row]
  9778. li_priceflag = dw_pageretr.Object.u_outware_priceflag[pagerert_row]
  9779. li_flag = dw_pageretr.Object.flag[pagerert_row]
  9780. li_secflag = dw_pageretr.Object.secflag[pagerert_row]
  9781. ls_msg = "撤审"
  9782. IF sys_option_confirmaudit_sale = 1 And li_priceflag = 1 And li_flag = 0 THEN ls_msg = '反确认'
  9783. IF MessageBox ("询问","是否确定要"+This.Text+"当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  9784. IF uo_ware.getinfo(ll_scid,ll_billid,arg_msg) = 0 THEN
  9785. MessageBox('错误',arg_msg,stopsign!,OK!)
  9786. RETURN
  9787. END IF
  9788. IF sys_option_hide_ware = 0 THEN
  9789. //两级审
  9790. IF li_secflag = 1 THEN
  9791. IF Not f_power_ind(870) THEN
  9792. MessageBox('提示',sys_msg_pow,information!,OK!)
  9793. RETURN
  9794. END IF
  9795. ls_msg = '财务撤审'
  9796. IF uo_ware.c_secauditing(True,arg_msg) = 0 THEN
  9797. rslt = 0
  9798. GOTO ext
  9799. END IF
  9800. ELSEIF li_flag = 1 And li_secflag = 0 THEN
  9801. IF Not (f_power_ind(869) Or f_power_ind(868) ) THEN
  9802. MessageBox('提示',sys_msg_pow,information!,OK!)
  9803. RETURN
  9804. END IF
  9805. ls_msg = '仓库撤审'
  9806. IF uo_ware.c_auditing(True,arg_msg) = 0 THEN
  9807. rslt = 0
  9808. GOTO ext
  9809. END IF
  9810. ELSEIF li_priceflag = 1 And li_flag = 0 THEN
  9811. IF sys_option_confirmaudit_sale = 1 THEN
  9812. IF Not f_power_ind(1779) THEN
  9813. MessageBox('提示',sys_msg_pow,information!,OK!)
  9814. RETURN
  9815. END IF
  9816. ls_msg = '反确认'
  9817. IF uo_ware.c_priceaudit(ll_scid,ll_billid,True,arg_msg) = 0 THEN
  9818. rslt = 0
  9819. GOTO ext
  9820. END IF
  9821. END IF
  9822. END IF
  9823. ELSE
  9824. IF li_secflag = 1 THEN
  9825. IF Not f_power_ind(870) THEN
  9826. MessageBox('提示',sys_msg_pow,information!,OK!)
  9827. RETURN
  9828. END IF
  9829. IF uo_ware.c_secauditing(False,arg_msg) = 0 THEN
  9830. rslt = 0
  9831. GOTO ext
  9832. END IF
  9833. IF uo_ware.c_auditing(True,arg_msg) = 0 THEN
  9834. rslt = 0
  9835. GOTO ext
  9836. END IF
  9837. ELSEIF li_priceflag = 1 And li_flag = 0 THEN
  9838. IF sys_option_confirmaudit_sale = 1 THEN
  9839. IF Not f_power_ind(491) THEN
  9840. MessageBox('提示',sys_msg_pow,information!,OK!)
  9841. RETURN
  9842. END IF
  9843. ls_msg = '反确认'
  9844. IF uo_ware.c_priceaudit(ll_scid,ll_billid,True,arg_msg) = 0 THEN
  9845. rslt = 0
  9846. GOTO ext
  9847. END IF
  9848. END IF
  9849. END IF
  9850. END IF
  9851. ext:
  9852. IF rslt = 0 THEN
  9853. MessageBox('错误',arg_msg,stopsign!,OK!)
  9854. ELSE
  9855. MessageBox('提示',ls_msg+'成功!',information!,OK!)
  9856. //日志
  9857. ls_code = dw_pageretr.Object.u_outware_outwarecode[pagerert_row]
  9858. ls_opemp = dw_pageretr.Object.u_outware_opemp[pagerert_row]
  9859. ls_outpart = dw_pageretr.Object.u_outware_part[pagerert_row]
  9860. f_setsysoplog('销售发货单',ls_msg+',code:'+ls_code+',相关号码:'+ls_outpart+',建立人:'+ls_opemp,arg_msg,True)
  9861. //--
  9862. wf_refresh_curuc(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row])
  9863. END IF
  9864. end event
  9865. type p_msg from w_publ_1ton_share_detail`p_msg within w_outware_sale
  9866. integer x = 4174
  9867. end type
  9868. type p_help from w_publ_1ton_share_detail`p_help within w_outware_sale
  9869. integer x = 4361
  9870. end type
  9871. type p_encl from w_publ_1ton_share_detail`p_encl within w_outware_sale
  9872. integer x = 4265
  9873. end type
  9874. event p_encl::clicked;call super::clicked;//m_Dfc_Control_PopupMenu dmPopupMenu
  9875. //String menustr
  9876. //
  9877. //
  9878. //menustr = "Text=添加附件~tEvent=ue_fj_edit"
  9879. //menustr = menustr + "|" + "Text=查看附件~tEvent=ue_fj_view"
  9880. //menustr = menustr + "|" + "Text=-"
  9881. //menustr = menustr + "|" + "Text=添加明细附件~tEvent=ue_fj_edit_mx"
  9882. //menustr = menustr + "|" + "Text=查看明细附件~tEvent=ue_fj_view_mx"
  9883. ////menustr = menustr + "|" + "Text=产品附件另存为明细附件~tEvent=ue_fj_mx_add_p"
  9884. //menustr = menustr + "|" + "Text=-"
  9885. //menustr = menustr + "|" + "Text=打开副本~tEvent=ue_copyself"
  9886. //
  9887. //
  9888. //
  9889. //IF Len(Trim(menustr)) <> 0 THEN
  9890. // dmPopupMenu = Create m_Dfc_Control_PopupMenu
  9891. // dmPopupMenu.mf_BuildMenu(This, menustr)
  9892. // dmPopupMenu.mf_PopMenu()
  9893. // Destroy dmPopupMenu
  9894. //END IF
  9895. //
  9896. end event
  9897. type p_other from w_publ_1ton_share_detail`p_other within w_outware_sale
  9898. integer x = 4457
  9899. end type
  9900. type gb_3 from w_publ_1ton_share_detail`gb_3 within w_outware_sale
  9901. end type
  9902. type ln_bar from w_publ_1ton_share_detail`ln_bar within w_outware_sale
  9903. end type
  9904. type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_outware_sale
  9905. end type
  9906. type r_bar from w_publ_1ton_share_detail`r_bar within w_outware_sale
  9907. end type
  9908. type ln_1 from w_publ_1ton_share_detail`ln_1 within w_outware_sale
  9909. end type
  9910. type ln_2 from w_publ_1ton_share_detail`ln_2 within w_outware_sale
  9911. end type
  9912. type ddlb_scid from uo_ddlb_scid within w_outware_sale
  9913. integer x = 827
  9914. integer y = 188
  9915. integer width = 489
  9916. integer height = 468
  9917. integer taborder = 20
  9918. boolean bringtotop = true
  9919. end type
  9920. event constructor;call super::constructor;cur_scid = THIS.uo_scid
  9921. cur_scid_arr = THIS.uo_scid_arr
  9922. end event
  9923. event selectionchanged;call super::selectionchanged;cur_scid=this.uo_scid
  9924. cur_scid_arr = THIS.uo_scid_arr
  9925. parent.triggerevent("retrieve_pageretr")
  9926. end event
  9927. type st_3 from statictext within w_outware_sale
  9928. integer x = 1330
  9929. integer y = 204
  9930. integer width = 137
  9931. integer height = 48
  9932. integer textsize = -9
  9933. integer weight = 400
  9934. fontcharset fontcharset = gb2312charset!
  9935. fontpitch fontpitch = variable!
  9936. string facename = "宋体"
  9937. long textcolor = 33554432
  9938. long backcolor = 134217739
  9939. string text = "状态"
  9940. boolean focusrectangle = false
  9941. end type
  9942. type st_2 from statictext within w_outware_sale
  9943. integer x = 704
  9944. integer y = 204
  9945. integer width = 123
  9946. integer height = 48
  9947. integer textsize = -9
  9948. integer weight = 400
  9949. fontcharset fontcharset = gb2312charset!
  9950. fontpitch fontpitch = variable!
  9951. string facename = "宋体"
  9952. long textcolor = 33554432
  9953. long backcolor = 134217739
  9954. string text = "分部"
  9955. boolean focusrectangle = false
  9956. end type
  9957. type st_msg from statictext within w_outware_sale
  9958. integer x = 2377
  9959. integer y = 432
  9960. integer width = 1170
  9961. integer height = 892
  9962. integer textsize = -9
  9963. integer weight = 400
  9964. fontcharset fontcharset = gb2312charset!
  9965. fontpitch fontpitch = variable!
  9966. string facename = "宋体"
  9967. long backcolor = 15793151
  9968. boolean border = true
  9969. borderstyle borderstyle = styleraised!
  9970. boolean focusrectangle = false
  9971. end type
  9972. type cbx_ifmtrlware from checkbox within w_outware_sale
  9973. boolean visible = false
  9974. integer x = 3168
  9975. integer width = 795
  9976. integer height = 80
  9977. boolean bringtotop = true
  9978. integer textsize = -9
  9979. integer weight = 400
  9980. fontcharset fontcharset = gb2312charset!
  9981. fontpitch fontpitch = variable!
  9982. string facename = "宋体"
  9983. long textcolor = 33554432
  9984. long backcolor = 134217739
  9985. string text = "引入订单时优先考虑订单库存"
  9986. end type
  9987. event clicked;if this.checked then
  9988. ifmtrlware = 1
  9989. else
  9990. ifmtrlware = 0
  9991. end if
  9992. f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "ifmtrlware",String(ifmtrlware))
  9993. end event
  9994. event constructor;this.backcolor = 14215660
  9995. ifmtrlware = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "ifmtrlware",'0'))
  9996. IF ifmtrlware = 1 THEN
  9997. THIS.Checked = TRUE
  9998. ELSE
  9999. THIS.Checked = FALSE
  10000. END IF
  10001. end event
  10002. type cbx_enamt_edit from checkbox within w_outware_sale
  10003. boolean visible = false
  10004. integer x = 3214
  10005. integer y = 44
  10006. integer width = 617
  10007. integer height = 60
  10008. boolean bringtotop = true
  10009. integer textsize = -9
  10010. integer weight = 400
  10011. fontcharset fontcharset = gb2312charset!
  10012. fontpitch fontpitch = variable!
  10013. string facename = "宋体"
  10014. long textcolor = 33554432
  10015. long backcolor = 134217739
  10016. string text = "录入金额计算单价"
  10017. end type
  10018. event clicked;IF THIS.Checked THEN
  10019. ii_enamt_edit = 1
  10020. this.weight = 700
  10021. this.textcolor = 255
  10022. ELSE
  10023. ii_enamt_edit = 0
  10024. // cbx_enamt_notax_edit.checked = false
  10025. this.weight = 400
  10026. this.textcolor = 0
  10027. END IF
  10028. f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_edit",String(ii_enamt_edit))
  10029. wf_enamt_facechg()
  10030. //IF ii_enamt_edit = 0 THEN
  10031. // dw_child.Modify('enamt.protect = 1~t enamt.Color = 0')
  10032. // dw_child.Modify('enamt_t.Color = 0')
  10033. //ELSE
  10034. // dw_child.Modify('enamt.protect = 0~t enamt.Color = "0~trgb(0,0,255)"')
  10035. // dw_child.Modify('enamt_t.Color = "0~trgb(0,0,255)"')
  10036. //END IF
  10037. end event
  10038. event constructor;this.backcolor = 14215660
  10039. ii_enamt_edit = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_edit",'0'))
  10040. IF ii_enamt_edit = 1 THEN
  10041. THIS.Checked = TRUE
  10042. this.weight = 700
  10043. this.textcolor = 255
  10044. cbx_zk.Checked = FALSE
  10045. ELSE
  10046. THIS.Checked = FALSE
  10047. // cbx_enamt_notax_edit.enabled = FALSE
  10048. this.weight = 400
  10049. this.textcolor = 0
  10050. END IF
  10051. wf_enamt_facechg()
  10052. end event
  10053. type ddlb_status from uo_ddlb_status within w_outware_sale
  10054. integer x = 1458
  10055. integer y = 188
  10056. integer width = 370
  10057. integer height = 812
  10058. integer taborder = 30
  10059. boolean bringtotop = true
  10060. string item[] = {"[全部]","待确认","待仓审","待财审","已审核"}
  10061. end type
  10062. event selectionchanged;call super::selectionchanged;PARENT.TriggerEvent('retrieve_pageretr')
  10063. end event
  10064. event uof_getvalue;IF this.text = "[全部]" THEN
  10065. cur_flag = -1
  10066. cur_secflag = -1
  10067. cur_priceflag = -1
  10068. ELSEIF this.text = "待确认" THEN
  10069. cur_flag = -1
  10070. cur_secflag = -1
  10071. cur_priceflag = 0
  10072. ELSEIF this.text = "待仓审" THEN
  10073. cur_flag = 0
  10074. cur_secflag = -1
  10075. cur_priceflag = -1
  10076. ELSEIF this.text = "待财审" THEN
  10077. cur_flag = 1
  10078. cur_secflag = 0
  10079. cur_priceflag = -1
  10080. ELSEIF this.text = "已审核" THEN
  10081. cur_flag = 1
  10082. cur_secflag = 1
  10083. cur_priceflag = -1
  10084. END IF
  10085. end event
  10086. type cb_fhmx from commandbutton within w_outware_sale
  10087. integer x = 37
  10088. integer y = 1840
  10089. integer width = 315
  10090. integer height = 84
  10091. integer taborder = 100
  10092. boolean bringtotop = true
  10093. integer textsize = -9
  10094. integer weight = 700
  10095. fontcharset fontcharset = gb2312charset!
  10096. fontpitch fontpitch = variable!
  10097. string facename = "宋体"
  10098. boolean underline = true
  10099. string text = "发货明细"
  10100. end type
  10101. event clicked;cb_fhmx.Underline = True
  10102. cb_fymx.Underline = False
  10103. cb_bjmx.Underline = False
  10104. cb_fhmx.weight = 700
  10105. cb_fymx.weight = 400
  10106. cb_bjmx.weight = 400
  10107. dw_child.BringToTop = True
  10108. ins_dw_select = 0
  10109. end event
  10110. type cb_fymx from commandbutton within w_outware_sale
  10111. integer x = 357
  10112. integer y = 1840
  10113. integer width = 315
  10114. integer height = 84
  10115. integer taborder = 110
  10116. boolean bringtotop = true
  10117. integer textsize = -9
  10118. integer weight = 400
  10119. fontcharset fontcharset = gb2312charset!
  10120. fontpitch fontpitch = variable!
  10121. string facename = "宋体"
  10122. boolean underline = true
  10123. string text = "费用明细"
  10124. end type
  10125. event clicked;cb_fhmx.Underline = False
  10126. cb_fymx.Underline = True
  10127. cb_bjmx.Underline = False
  10128. cb_fhmx.weight = 400
  10129. cb_fymx.weight = 700
  10130. cb_bjmx.weight = 400
  10131. dw_fymx.BringToTop = True
  10132. ins_dw_select = 1
  10133. end event
  10134. type cb_bjmx from commandbutton within w_outware_sale
  10135. integer x = 677
  10136. integer y = 1840
  10137. integer width = 315
  10138. integer height = 84
  10139. integer taborder = 120
  10140. boolean bringtotop = true
  10141. integer textsize = -9
  10142. integer weight = 400
  10143. fontcharset fontcharset = gb2312charset!
  10144. fontpitch fontpitch = variable!
  10145. string facename = "宋体"
  10146. boolean underline = true
  10147. string text = "包件明细"
  10148. end type
  10149. event clicked;cb_fhmx.Underline = False
  10150. cb_fymx.Underline = False
  10151. cb_bjmx.Underline = True
  10152. cb_fhmx.weight = 400
  10153. cb_fymx.weight = 400
  10154. cb_bjmx.weight = 700
  10155. dw_bjmx.BringToTop = True
  10156. end event
  10157. type dw_bjmx from u_dw_rbtnfilter within w_outware_sale
  10158. integer x = 2565
  10159. integer y = 1856
  10160. integer taborder = 30
  10161. boolean titlebar = true
  10162. string title = "包件明细"
  10163. string dataobject = "dw_outwaremx_mx_edit"
  10164. boolean maxbox = true
  10165. boolean hscrollbar = true
  10166. boolean vscrollbar = true
  10167. boolean resizable = true
  10168. boolean hsplitscroll = true
  10169. boolean rbutton_setposition_use = true
  10170. string old_dwobject = "0"
  10171. string curdw_colfilter = "0"
  10172. end type
  10173. event rowfocuschanged;call super::rowfocuschanged;This.SelectRow(0,False)
  10174. IF currentrow <= 0 THEN RETURN
  10175. This.SelectRow(currentrow,True)
  10176. end event
  10177. type dw_fymx from u_dw_rbtnfilter within w_outware_sale
  10178. integer x = 1929
  10179. integer y = 1852
  10180. integer taborder = 20
  10181. boolean titlebar = true
  10182. string title = "费用明细"
  10183. string dataobject = "dw_outware_itemmx_edit"
  10184. boolean maxbox = true
  10185. boolean hscrollbar = true
  10186. boolean vscrollbar = true
  10187. boolean resizable = true
  10188. boolean hsplitscroll = true
  10189. boolean rbutton_setposition_use = true
  10190. string old_dwobject = "0"
  10191. string curdw_colfilter = "0"
  10192. end type
  10193. event rowfocuschanged;call super::rowfocuschanged;This.SelectRow(0,False)
  10194. IF currentrow <= 0 THEN RETURN
  10195. This.SelectRow(currentrow,True)
  10196. end event
  10197. event doubleclicked;call super::doubleclicked;IF dw_edit_mode THEN
  10198. Parent.TriggerEvent('ue_add_fymx')
  10199. END IF
  10200. end event
  10201. event dwnkey;call super::dwnkey;Parent.TriggerEvent('user_key')
  10202. String ls_itemcode,ls_itemname,ls_itemtype
  10203. Long ll_itemid
  10204. Long child_row
  10205. IF dw_edit_mode THEN
  10206. IF KeyDown(keydownarrow!) THEN
  10207. Long li_row
  10208. IF dw_fymx.GetRow() = dw_fymx.RowCount() THEN
  10209. Parent.TriggerEvent("insert_childrow_fymx")
  10210. END IF
  10211. ELSE
  10212. IF KeyDown(keyenter!) And Not KeyDown(keycontrol!) And Not KeyDown(keyshift!) THEN
  10213. IF dw_fymx.GetColumnName() = 'u_itemdef_itemcode' THEN
  10214. dw_fymx.AcceptText()
  10215. child_row = dw_fymx.GetRow()
  10216. ls_itemcode = dw_fymx.Object.u_itemdef_itemcode[child_row]
  10217. SELECT itemid,
  10218. itemname,
  10219. itemtype
  10220. INTO :ll_itemid,
  10221. :ls_itemname,
  10222. :ls_itemtype
  10223. FROM u_itemdef
  10224. Where itemcode = :ls_itemcode;
  10225. IF sqlca.SQLCode <> 0 THEN
  10226. Parent.TriggerEvent('ue_f11')
  10227. RETURN
  10228. END IF
  10229. dw_fymx.Object.u_itemdef_itemname[child_row] = ls_itemname
  10230. dw_fymx.Object.u_itemdef_itemtype[child_row] = ls_itemtype
  10231. dw_fymx.Object.u_outware_itemmx_itemid[child_row] = ll_itemid
  10232. dw_fymx.accepttext()
  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. ELSEIF dw_fymx.GetColumnName( ) = 'u_outware_itemmx_mxdscrp' And dw_fymx.GetRow() = dw_fymx.RowCount() THEN
  10239. Parent.TriggerEvent("insert_childrow_fymx")
  10240. RETURN 1
  10241. ELSE
  10242. IF Key = keyenter! THEN
  10243. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  10244. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  10245. RETURN 1
  10246. END IF
  10247. END IF
  10248. END IF
  10249. END IF
  10250. END IF
  10251. end event
  10252. type cbx_packqty_cmpl from checkbox within w_outware_sale
  10253. boolean visible = false
  10254. integer x = 3950
  10255. integer y = 28
  10256. integer width = 690
  10257. integer height = 60
  10258. boolean bringtotop = true
  10259. integer textsize = -9
  10260. integer weight = 400
  10261. fontcharset fontcharset = gb2312charset!
  10262. fontpitch fontpitch = variable!
  10263. string facename = "宋体"
  10264. long textcolor = 33554432
  10265. long backcolor = 134217739
  10266. string text = "录入包装数计算数量"
  10267. end type
  10268. event clicked;IF THIS.Checked THEN
  10269. ii_packqty_cmpl = 1
  10270. this.textcolor = 255
  10271. this.weight = 700
  10272. ELSE
  10273. ii_packqty_cmpl = 0
  10274. this.textcolor = 0
  10275. this.weight = 400
  10276. END IF
  10277. f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "packqty_cmpl",String(ii_packqty_cmpl))
  10278. end event
  10279. event constructor;this.backcolor = 14215660
  10280. ii_packqty_cmpl = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "packqty_cmpl",'0'))
  10281. IF ii_packqty_cmpl = 1 THEN
  10282. THIS.Checked = TRUE
  10283. this.weight = 700
  10284. this.textcolor = 255
  10285. ELSE
  10286. THIS.Checked = FALSE
  10287. this.weight = 400
  10288. this.textcolor = 0
  10289. END IF
  10290. this.y = cbx_enamt_edit.y
  10291. this.x = cbx_zk.x + cbx_zk.width + cbx_enamt_notax_edit.width
  10292. end event
  10293. type cbx_enamt_notax_edit from checkbox within w_outware_sale
  10294. boolean visible = false
  10295. integer x = 3214
  10296. integer y = 100
  10297. integer width = 539
  10298. integer height = 60
  10299. boolean bringtotop = true
  10300. integer textsize = -9
  10301. integer weight = 400
  10302. fontcharset fontcharset = gb2312charset!
  10303. fontpitch fontpitch = variable!
  10304. string facename = "宋体"
  10305. long textcolor = 33554432
  10306. long backcolor = 134217739
  10307. string text = "录入不含税单价"
  10308. end type
  10309. event clicked;IF THIS.Checked THEN
  10310. ii_enamt_notax_edit = 1
  10311. this.weight = 700
  10312. this.textcolor = 255
  10313. ELSE
  10314. ii_enamt_notax_edit = 0
  10315. this.weight = 400
  10316. this.textcolor = 0
  10317. END IF
  10318. f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_notax_edit",String(ii_enamt_notax_edit))
  10319. wf_enamt_facechg()
  10320. //IF ii_enamt_notax_edit = 0 THEN
  10321. // dw_child.Modify('enamt.protect = 1~t enamt.Color = 0')
  10322. // dw_child.Modify('enamt_t.Color = 0')
  10323. //ELSE
  10324. // dw_child.Modify('enamt.protect = 0~t enamt.Color = "0~trgb(0,0,255)"')
  10325. // dw_child.Modify('enamt_t.Color = "0~trgb(0,0,255)"')
  10326. //END IF
  10327. end event
  10328. event constructor;this.backcolor = 14215660
  10329. ii_enamt_notax_edit = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_notax_edit",'0'))
  10330. IF ii_enamt_notax_edit = 1 THEN
  10331. THIS.Checked = TRUE
  10332. this.weight = 700
  10333. this.textcolor = 255
  10334. ELSE
  10335. THIS.Checked = FALSE
  10336. this.weight = 400
  10337. this.textcolor = 0
  10338. END IF
  10339. //wf_enamt_facechg()
  10340. //
  10341. this.y = cbx_enamt_edit.y
  10342. this.x = cbx_enamt_edit.x + cbx_enamt_edit.width + 10
  10343. end event
  10344. type cb_scanbill from commandbutton within w_outware_sale
  10345. integer x = 997
  10346. integer y = 1840
  10347. integer width = 384
  10348. integer height = 84
  10349. integer taborder = 40
  10350. boolean bringtotop = true
  10351. integer textsize = -9
  10352. integer weight = 400
  10353. fontcharset fontcharset = gb2312charset!
  10354. fontpitch fontpitch = variable!
  10355. string facename = "宋体"
  10356. boolean underline = true
  10357. string text = "条码扫描检测"
  10358. end type
  10359. event clicked;String em,ls_str
  10360. Long this_parrow
  10361. Long i,ll_row,ll_ucrow
  10362. long ll_scid,ll_outwareid
  10363. this_parrow = dw_pageretr.GetRow()
  10364. IF dw_edit_mode THEN
  10365. MessageBox('NO','请在非编辑状态操作!')
  10366. return
  10367. end if
  10368. IF this_parrow <= 0 THEN
  10369. MessageBox('NO','请选择单据!')
  10370. RETURN
  10371. END IF
  10372. ll_scid=dw_pageretr.object.u_outware_scid[this_parrow]
  10373. ll_outwareid=dw_pageretr.object.u_outware_outwareid[this_parrow]
  10374. s_edit_index_tran s_tran_mod
  10375. s_tran_mod.b_long = ll_scid
  10376. s_tran_mod.c_long = ll_outwareid
  10377. s_tran_mod.d_long = 0
  10378. s_tran_mod.c_string = ''
  10379. OpenWithParm(w_outwaremx_p_scanqty,s_tran_mod)
  10380. parent.TriggerEvent('retrieve_childdw')
  10381. //String em,ls_str
  10382. //Long this_parrow
  10383. //Long i,ll_row,ll_ucrow
  10384. //this_parrow = dw_pageretr.GetRow()
  10385. //IF this_parrow <= 0 THEN
  10386. // MessageBox('NO','请选择单据!')
  10387. // RETURN
  10388. //END IF
  10389. //
  10390. //TRY
  10391. // s_edit_index_tran s_ch_tran //传递参数使用
  10392. //
  10393. // OpenWithParm(w_scanbill,s_ch_tran )
  10394. //
  10395. //
  10396. // w_scanbill.cb_add.TriggerEvent('clicked')
  10397. // w_scanbill.cur_thflag = 0
  10398. // ll_ucrow = w_scanbill.dw_uc.GetRow()
  10399. // IF ll_ucrow <= 0 THEN RETURN
  10400. // w_scanbill.dw_uc.object.billtype[ll_ucrow]=0 //0 表示发货退货 1 表示盘点单
  10401. // w_scanbill.dw_uc.object.scid[ll_ucrow]=dw_pageretr.object.u_outware_scid[this_parrow]
  10402. // w_scanbill.dw_uc.object.outwareid[ll_ucrow]=dw_pageretr.object.u_outware_outwareid[this_parrow]
  10403. // w_scanbill.dw_uc.object.outwarecode[ll_ucrow]=dw_pageretr.object.u_outware_outwarecode[this_parrow]
  10404. //
  10405. // FOR i = 1 To dw_child.RowCount()
  10406. // w_scanbill.dw_child.Reset()
  10407. // ll_row = w_scanbill.dw_child.InsertRow(0)
  10408. // w_scanbill.dw_child.Object.u_outwaremx_mtrlid[ll_row] = dw_child.Object.u_outwaremx_mtrlid[i]
  10409. // w_scanbill.dw_child.Object.u_mtrldef_mtrlcode[ll_row] = dw_child.Object.u_mtrldef_mtrlcode[i]
  10410. // w_scanbill.dw_child.Object.u_mtrldef_mtrlname[ll_row] = dw_child.Object.u_mtrldef_mtrlname[i]
  10411. // w_scanbill.dw_child.Object.u_mtrldef_mtrlmode[ll_row] = dw_child.Object.u_mtrldef_mtrlmode[i]
  10412. // w_scanbill.dw_child.Object.u_mtrldef_unit[ll_row] = dw_child.Object.u_outwaremx_unit[i]
  10413. // w_scanbill.dw_child.Object.u_outwaremx_uqty[ll_row] = dw_child.Object.u_outwaremx_uqty[i]
  10414. // w_scanbill.dw_child.Object.u_scanbillmx_scanqty[ll_row] = 0
  10415. //
  10416. //
  10417. // NEXT
  10418. //
  10419. //
  10420. //
  10421. //
  10422. //
  10423. //Catch (RuntimeError rrrr)
  10424. // RETURN
  10425. //END TRY
  10426. //
  10427. //
  10428. //
  10429. end event
  10430. event constructor;//系统选项267销售发货单,销售退货单 扫描数不等于出仓数不能仓审
  10431. IF sys_option_check_scanqty = 1 THEN
  10432. This.Visible = True
  10433. ELSE
  10434. This.Visible = False
  10435. END IF
  10436. end event
  10437. type cbx_zk from checkbox within w_outware_sale
  10438. boolean visible = false
  10439. integer x = 3922
  10440. integer y = 108
  10441. integer width = 645
  10442. integer height = 60
  10443. boolean bringtotop = true
  10444. integer textsize = -9
  10445. integer weight = 400
  10446. fontcharset fontcharset = gb2312charset!
  10447. fontpitch fontpitch = variable!
  10448. string facename = "宋体"
  10449. long textcolor = 33554432
  10450. long backcolor = 134217739
  10451. string text = "录入金额计算折扣"
  10452. end type
  10453. event clicked;IF THIS.Checked THEN
  10454. ii_enamt_edit_1 = 1
  10455. this.weight = 700
  10456. this.textcolor = 255
  10457. ELSE
  10458. ii_enamt_edit_1 = 0
  10459. this.weight = 400
  10460. this.textcolor = 0
  10461. END IF
  10462. f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_edit_1",String(ii_enamt_edit_1))
  10463. wf_enamt_facechg()
  10464. //IF THIS.Checked THEN
  10465. // ii_enamt_edit = 1
  10466. //
  10467. //ELSE
  10468. // ii_enamt_edit = 0
  10469. //// cbx_enamt_notax_edit.checked = false
  10470. //
  10471. //END IF
  10472. //
  10473. //f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_edit",String(ii_enamt_edit))
  10474. //
  10475. //wf_enamt_facechg()
  10476. end event
  10477. event constructor;This.BackColor = 14215660
  10478. Long li_cbx_zk
  10479. ii_enamt_edit_1 = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_edit_1",'0'))
  10480. IF ii_enamt_edit_1 = 1 THEN
  10481. This.Checked = True
  10482. this.weight = 700
  10483. this.textcolor = 255
  10484. ELSE
  10485. This.Checked = False
  10486. this.weight =400
  10487. this.textcolor = 0
  10488. END IF
  10489. wf_enamt_facechg()
  10490. this.y = cbx_enamt_edit.y
  10491. this.x = cbx_enamt_notax_edit.x + cbx_enamt_notax_edit.width + 10
  10492. end event
  10493. type cb_new_scanbill from commandbutton within w_outware_sale
  10494. integer x = 1385
  10495. integer y = 1840
  10496. integer width = 384
  10497. integer height = 84
  10498. integer taborder = 60
  10499. boolean bringtotop = true
  10500. integer textsize = -9
  10501. integer weight = 400
  10502. fontcharset fontcharset = gb2312charset!
  10503. fontpitch fontpitch = variable!
  10504. string facename = "宋体"
  10505. boolean underline = true
  10506. string text = "条码扫描开单"
  10507. end type
  10508. event clicked;String em,ls_str
  10509. Long this_parrow
  10510. Long i,ll_row,ll_ucrow
  10511. Long ll_scid,ll_outwareid
  10512. IF Not dw_edit_mode THEN
  10513. MessageBox('NO','请在编辑状态操作!')
  10514. RETURN
  10515. END IF
  10516. this_parrow = dw_pageretr.GetRow()
  10517. IF this_parrow <= 0 THEN
  10518. MessageBox('NO','请选择单据!')
  10519. RETURN
  10520. END IF
  10521. dw_uc.AcceptText()
  10522. //ll_scid=dw_pageretr.object.u_outware_scid[this_parrow]
  10523. //ll_outwareid=dw_pageretr.object.u_outware_outwareid[this_parrow]
  10524. s_edit_index_tran s_tran_mod
  10525. //s_tran_mod.b_long = ll_scid
  10526. s_tran_mod.c_long = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()]
  10527. //s_tran_mod.d_long = 0
  10528. //s_tran_mod.c_string = ''
  10529. OpenWithParm(w_outwaremx_p_new_scanqty,s_tran_mod)
  10530. dw_child.AcceptText()
  10531. FOR i = 1 To dw_child.RowCount()
  10532. wf_get_price(i)
  10533. NEXT
  10534. wf_set_barcode()
  10535. end event
  10536. event constructor;//系统选项267销售发货单,销售退货单 扫描数不等于出仓数不能仓审
  10537. IF sys_option_check_scanqty = 1 THEN
  10538. This.Visible = True
  10539. ELSE
  10540. This.Visible = False
  10541. END IF
  10542. end event
  10543. type st_cusbalc from statictext within w_outware_sale
  10544. integer x = 2112
  10545. integer y = 188
  10546. integer width = 1851
  10547. integer height = 92
  10548. integer textsize = -9
  10549. integer weight = 400
  10550. fontcharset fontcharset = gb2312charset!
  10551. fontpitch fontpitch = variable!
  10552. string facename = "宋体"
  10553. long textcolor = 33554432
  10554. long backcolor = 134217739
  10555. string text = "客户信用额信息"
  10556. boolean focusrectangle = false
  10557. end type
  10558. type st_cusbalc_sign from statictext within w_outware_sale
  10559. boolean visible = false
  10560. integer x = 1847
  10561. integer y = 188
  10562. integer width = 261
  10563. integer height = 76
  10564. boolean bringtotop = true
  10565. integer textsize = -11
  10566. integer weight = 700
  10567. fontcharset fontcharset = gb2312charset!
  10568. fontpitch fontpitch = variable!
  10569. string facename = "宋体"
  10570. long textcolor = 255
  10571. long backcolor = 134217739
  10572. string text = "超信用!"
  10573. boolean focusrectangle = false
  10574. end type
  10575. type cbx_all from checkbox within w_outware_sale
  10576. integer x = 3968
  10577. integer y = 196
  10578. integer width = 197
  10579. integer height = 60
  10580. boolean bringtotop = true
  10581. integer textsize = -9
  10582. integer weight = 400
  10583. fontcharset fontcharset = gb2312charset!
  10584. fontpitch fontpitch = variable!
  10585. string facename = "宋体"
  10586. long textcolor = 33554432
  10587. long backcolor = 134217739
  10588. string text = "全选"
  10589. end type
  10590. event clicked;Int i
  10591. If This.Checked = True Then
  10592. For i = 1 To dw_pageretr.RowCount()
  10593. dw_pageretr.Object.if_ch[i] = 1
  10594. Next
  10595. Else
  10596. For i = 1 To dw_pageretr.RowCount()
  10597. dw_pageretr.Object.if_ch[i] = 0
  10598. Next
  10599. End If
  10600. end event
  10601. event constructor;
  10602. this.y = p_msg.y
  10603. this.x = st_cusbalc.x + st_cusbalc.width +5
  10604. end event