uo_mtrldef.sru 83 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361
  1. $PBExportHeader$uo_mtrldef.sru
  2. forward
  3. global type uo_mtrldef from nonvisualobject
  4. end type
  5. end forward
  6. global type uo_mtrldef from nonvisualobject
  7. end type
  8. global uo_mtrldef uo_mtrldef
  9. type variables
  10. Long uo_mtrlid
  11. int uo_option_use_suliao,uo_option_use_machining_ll
  12. string uo_option_change_status,uo_option_change_woodcode,uo_option_change_pcode
  13. int uo_option_inout_type
  14. end variables
  15. forward prototypes
  16. public function integer uof_del_mtrl (long arg_mtrlid, ref string arg_msg, boolean arg_ifcommit)
  17. public function integer uo_add_mtrl_storage (long arg_mtrlid, long arg_storageid, ref string arg_msg, boolean arg_ifcommit)
  18. public function integer uof_code_find (long arg_id, string arg_code, ref string arg_msg)
  19. public function integer uof_update_configure2 (long arg_mtrlid, s_mtrl_configure_array arg_s_config, boolean arg_ifcommit, ref string arg_msg)
  20. public function integer uof_add_skmtrl (long arg_mtrlid, string arg_mtrlcode, string arg_mtrlname, string arg_usermtrlmode, string arg_mtrlmode, long arg_sk_mtrltypeid, decimal arg_period, string arg_zxmtrlmode, ref string arg_msg, boolean arg_ifcommit)
  21. public function integer uof_tech_del (long arg_mtrlid, boolean arg_ifcommit, ref string arg_msg)
  22. public function integer uof_tech_update (long arg_mtrlid, s_addon_techdef arg_s_tech, boolean arg_ifcommit, ref string arg_msg)
  23. public function integer uof_skmtrl_add (long arg_mtrlid, long arg_skmtrlid, decimal arg_period, ref string arg_msg, boolean arg_ifcommit)
  24. public function integer uof_qc_update (s_mtrl_qc arg_s_qc, ref string arg_msg, boolean arg_ifcommit)
  25. public function integer uof_qc_del (long arg_mtrlid, long arg_qcid, ref string arg_msg)
  26. public function integer uof_zb_update (s_mtrl_zb arg_s_zb, ref string arg_msg, boolean arg_ifcommit)
  27. public function integer uof_zb_del (long arg_mtrlid, ref string arg_msg, boolean arg_ifcommit)
  28. public function integer uof_jgdscrp_update (long arg_mtrlid, s_mtrljgdscrp_array s_mtrjgdscrp, boolean arg_ifcommit, ref string arg_msg)
  29. public function integer uof_audit (long arg_mtrlid, string arg_emp, ref string arg_msg, boolean arg_ifcommit)
  30. public function integer uof_c_audit (long arg_mtrlid, ref string arg_msg, boolean arg_ifcommit)
  31. public function integer uof_c_secaudit (long arg_mtrlid, ref string arg_msg, boolean arg_ifcommit)
  32. public function integer uof_secaudit (long arg_mtrlid, string arg_emp, ref string arg_msg, boolean arg_ifcommit)
  33. public function integer uof_add_mtrl (s_mtrldef arg_s_mtrl, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  34. public function integer uof_update_ban (long arg_mtrlid, s_mtrldef_ban arg_s_ban, ref string arg_msg, boolean arg_ifcommit)
  35. public function integer uof_update_ppqty (long arg_mtrlid, s_mtrldef arg_s_mtrl, ref string arg_msg)
  36. public function integer uof_update_pzdftflag (long arg_flag, long arg_typeid, string arg_config, ref string arg_msg)
  37. public function integer uof_get_pztype (integer arg_type, string arg_pzname, ref long arg_pzid, ref string arg_msg)
  38. end prototypes
  39. public function integer uof_del_mtrl (long arg_mtrlid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  40. Long cnt
  41. cnt = 0
  42. Select count(*) Into :cnt
  43. From u_mtrldef
  44. Where mtrlid = :arg_mtrlid;
  45. If sqlca.SQLCode <> 0 Then
  46. arg_msg = '查询物料资料失败,'+sqlca.SQLErrText
  47. rslt = 0
  48. Goto ext
  49. End If
  50. //申购单汇总明细
  51. cnt = 0
  52. Select count(*) Into :cnt
  53. From u_requestbuymx Where mtrlid = :arg_mtrlid ;
  54. If sqlca.SQLCode <> 0 Then
  55. arg_msg = "数据(申购单汇总明细)查询操作失败!(请重试!)"
  56. rslt = 0
  57. Goto ext
  58. End If
  59. If cnt > 0 Then
  60. arg_msg = "该资料已经使用于申购单汇总明细,不可以删除!"
  61. rslt = 0
  62. Goto ext
  63. End If
  64. //申购单汇总明细
  65. cnt = 0
  66. Select count(*) Into :cnt
  67. From u_requestbuymxmx Where mtrlid = :arg_mtrlid ;
  68. If sqlca.SQLCode <> 0 Then
  69. arg_msg = "数据(申购单明细)查询操作失败!(请重试!)"
  70. rslt = 0
  71. Goto ext
  72. End If
  73. If cnt > 0 Then
  74. arg_msg = "该资料已经使用于申购单明细,不可以删除!"
  75. rslt = 0
  76. Goto ext
  77. End If
  78. //外协申请单明细
  79. cnt = 0
  80. Select count(*) Into :cnt
  81. From u_request_wfjgmxmx Where mtrlid = :arg_mtrlid ;
  82. If sqlca.SQLCode <> 0 Then
  83. arg_msg = "数据(外协申请单明细)查询操作失败!(请重试!)"
  84. rslt = 0
  85. Goto ext
  86. End If
  87. If cnt > 0 Then
  88. arg_msg = "该资料已经使用于外协申请单明细,不可以删除!"
  89. rslt = 0
  90. Goto ext
  91. End If
  92. //外协申请单汇总明细
  93. cnt = 0
  94. Select count(*) Into :cnt
  95. From u_request_wfjgMx Where mtrlid = :arg_mtrlid ;
  96. If sqlca.SQLCode <> 0 Then
  97. arg_msg = "数据(外协申请单汇总明细)查询操作失败!(请重试!)"
  98. rslt = 0
  99. Goto ext
  100. End If
  101. If cnt > 0 Then
  102. arg_msg = "该资料已经使用于外协申请单汇总明细,不可以删除!"
  103. rslt = 0
  104. Goto ext
  105. End If
  106. //外协申请单汇总明细
  107. cnt = 0
  108. Select count(*) Into :cnt
  109. From u_request_wfjgMx_out Where mtrlid = :arg_mtrlid ;
  110. If sqlca.SQLCode <> 0 Then
  111. arg_msg = "数据(外协申请单发出明细)查询操作失败!(请重试!)"
  112. rslt = 0
  113. Goto ext
  114. End If
  115. If cnt > 0 Then
  116. arg_msg = "该资料已经使用于外协申请单发出明细,不可以删除!"
  117. rslt = 0
  118. Goto ext
  119. End If
  120. //采购订单明细
  121. cnt = 0
  122. Select count(*) Into :cnt
  123. From u_buytaskmx Where mtrlid = :arg_mtrlid ;
  124. If sqlca.SQLCode <> 0 Then
  125. arg_msg = "数据(采购订单明细)查询操作失败!(请重试!)"
  126. rslt = 0
  127. Goto ext
  128. End If
  129. If cnt > 0 Then
  130. arg_msg = "该资料已经使用于采购订单明细,不可以删除!"
  131. rslt = 0
  132. Goto ext
  133. End If
  134. //外协订单明细
  135. cnt = 0
  136. Select count(*) Into :cnt
  137. From u_order_wfjgMx Where mtrlid = :arg_mtrlid ;
  138. If sqlca.SQLCode <> 0 Then
  139. arg_msg = "数据(外协订单收货明细)查询操作失败!(请重试!)"
  140. rslt = 0
  141. Goto ext
  142. End If
  143. If cnt > 0 Then
  144. arg_msg = "该资料已经使用于外协订单收货明细,不可以删除!"
  145. rslt = 0
  146. Goto ext
  147. End If
  148. //外协订单发出明细
  149. cnt = 0
  150. Select count(*) Into :cnt
  151. From u_order_wfjgMx_out Where mtrlid = :arg_mtrlid ;
  152. If sqlca.SQLCode <> 0 Then
  153. arg_msg = "数据(外协订单发出明细)查询操作失败!(请重试!)"
  154. rslt = 0
  155. Goto ext
  156. End If
  157. If cnt > 0 Then
  158. arg_msg = "该资料已经使用于外协订单发出明细,不可以删除!"
  159. rslt = 0
  160. Goto ext
  161. End If
  162. //销售订单明细
  163. cnt = 0
  164. Select count(*) Into :cnt
  165. From u_saletaskmx Where mtrlid = :arg_mtrlid ;
  166. If sqlca.SQLCode <> 0 Then
  167. arg_msg = "数据(销售订单明细)查询操作失败!(请重试!)"
  168. rslt = 0
  169. Goto ext
  170. End If
  171. If cnt > 0 Then
  172. arg_msg = "该资料已经使用于销售订单明细,不可以删除!"
  173. rslt = 0
  174. Goto ext
  175. End If
  176. //生产计划
  177. cnt = 0
  178. Select count(*) Into :cnt
  179. From u_Order_ml Where mtrlid = :arg_mtrlid ;
  180. If sqlca.SQLCode <> 0 Then
  181. arg_msg = "数据(生产计划)查询操作失败!(请重试!)"
  182. rslt = 0
  183. Goto ext
  184. End If
  185. If cnt > 0 Then
  186. arg_msg = "该资料已经使用于生产计划,不可以删除!"
  187. rslt = 0
  188. Goto ext
  189. End If
  190. //进仓明细
  191. cnt = 0
  192. Select count(*) Into :cnt
  193. From u_inwaremx Where mtrlid = :arg_mtrlid ;
  194. If sqlca.SQLCode <> 0 Then
  195. arg_msg = "数据(进仓明细)查询操作失败!(请重试!)"
  196. rslt = 0
  197. Goto ext
  198. End If
  199. If cnt > 0 Then
  200. arg_msg = "该资料已经使用于仓库进仓,不可以删除!"
  201. rslt = 0
  202. Goto ext
  203. End If
  204. //出仓明细
  205. cnt = 0
  206. Select count(*) Into :cnt
  207. From u_outwaremx Where mtrlid = :arg_mtrlid ;
  208. If sqlca.SQLCode <> 0 Then
  209. arg_msg = "数据(出仓明细)查询操作失败!(请重试!)"
  210. rslt = 0
  211. Goto ext
  212. End If
  213. If cnt > 0 Then
  214. arg_msg = "该资料已经使用于仓库出仓,不可以删除!"
  215. rslt = 0
  216. Goto ext
  217. End If
  218. //出仓明细mx
  219. cnt = 0
  220. Select count(*) Into :cnt
  221. From u_outwaremx_mx Where mtrlid = :arg_mtrlid ;
  222. If sqlca.SQLCode <> 0 Then
  223. arg_msg = "数据(出仓明细)查询操作失败!(请重试!)"
  224. rslt = 0
  225. Goto ext
  226. End If
  227. If cnt > 0 Then
  228. arg_msg = "该资料已经使用于仓库出仓,不可以删除!"
  229. rslt = 0
  230. Goto ext
  231. End If
  232. //外协收货单明细
  233. cnt = 0
  234. Select count(*) Into :cnt
  235. From ow_wfjgmx_in_aft Where mtrlid = :arg_mtrlid ;
  236. If sqlca.SQLCode <> 0 Then
  237. arg_msg = "数据(外协收货单明细)查询操作失败!(请重试!)"
  238. rslt = 0
  239. Goto ext
  240. End If
  241. If cnt > 0 Then
  242. arg_msg = "该资料已经使用于外协收货单明细,不可以删除!"
  243. rslt = 0
  244. Goto ext
  245. End If
  246. //外协发出单明细
  247. cnt = 0
  248. Select count(*) Into :cnt
  249. From ow_wfjgmx_out Where mtrlid = :arg_mtrlid ;
  250. If sqlca.SQLCode <> 0 Then
  251. arg_msg = "数据(外协发出单明细)查询操作失败!(请重试!)"
  252. rslt = 0
  253. Goto ext
  254. End If
  255. If cnt > 0 Then
  256. arg_msg = "该资料已经使用于外协发出单明细,不可以删除!"
  257. rslt = 0
  258. Goto ext
  259. End If
  260. //供应商询价单明细
  261. cnt = 0
  262. Select count(*) Into :cnt
  263. From u_spt_price_changemx Where mtrlid = :arg_mtrlid ;
  264. If sqlca.SQLCode <> 0 Then
  265. arg_msg = "数据(供应商询价单明细)查询操作失败!(请重试!)"
  266. rslt = 0
  267. Goto ext
  268. End If
  269. If cnt > 0 Then
  270. arg_msg = "该资料已经使用于供应商询价单明细,不可以删除!"
  271. rslt = 0
  272. Goto ext
  273. End If
  274. //库存
  275. cnt = 0
  276. Select COUNT(*) Into :cnt
  277. From u_mtrlware Where mtrlid = :arg_mtrlid;
  278. If sqlca.SQLCode <> 0 Then
  279. arg_msg = "数据(仓库库存)查询操作失败!(请重试!)"
  280. rslt = 0
  281. Goto ext
  282. End If
  283. If cnt > 0 Then
  284. arg_msg = "该资料已经使用于仓库库存,不可以删除!"
  285. rslt = 0
  286. Goto ext
  287. End If
  288. //物料清单
  289. cnt = 0
  290. Select COUNT(*) Into :cnt
  291. From u_PrdPF Where sonmtrlid = :arg_mtrlid;
  292. If sqlca.SQLCode <> 0 Then
  293. arg_msg = "数据(物料清单)查询操作失败!(请重试!)"
  294. rslt = 0
  295. Goto ext
  296. End If
  297. If cnt > 0 Then
  298. arg_msg = "该资料已经使用于物料清单,不可以删除!"
  299. rslt = 0
  300. Goto ext
  301. End If
  302. If Not f_power_ind(3673,sys_msg_pow) Then
  303. //价格表明细
  304. cnt = 0
  305. Select COUNT(*) Into :cnt
  306. From u_sale_price_mx Where mtrlid = :arg_mtrlid;
  307. If sqlca.SQLCode <> 0 Then
  308. arg_msg = "数据(价格表)查询操作失败!(请重试!)"
  309. rslt = 0
  310. Goto ext
  311. End If
  312. If cnt > 0 Then
  313. arg_msg = "该资料已经使用于价格表,不可以删除!"
  314. rslt = 0
  315. Goto ext
  316. End If
  317. //物料清单
  318. cnt = 0
  319. Select COUNT(*) Into :cnt
  320. From u_PrdPF Where mtrlid = :arg_mtrlid;
  321. If sqlca.SQLCode <> 0 Then
  322. arg_msg = "数据(物料清单)查询操作失败!(请重试!)"
  323. rslt = 0
  324. Goto ext
  325. End If
  326. If cnt > 0 Then
  327. arg_msg = "该资料已经使用于物料清单,不可以删除!"
  328. rslt = 0
  329. Goto ext
  330. End If
  331. //生产流程
  332. cnt = 0
  333. Select COUNT(*) Into :cnt
  334. From u_mtrl_wkp Where mtrlid = :arg_mtrlid;
  335. If sqlca.SQLCode <> 0 Then
  336. arg_msg = "数据(物料生产流程)查询操作失败!(请重试!)"
  337. rslt = 0
  338. Goto ext
  339. End If
  340. If cnt > 0 Then
  341. arg_msg = "该资料已经使用于物料生产流程,不可以删除!"
  342. rslt = 0
  343. Goto ext
  344. End If
  345. //工价表
  346. cnt = 0
  347. Select COUNT(*) Into :cnt
  348. From u_sc_workprice Where mtrlid = :arg_mtrlid;
  349. If sqlca.SQLCode <> 0 Then
  350. arg_msg = "数据(工价表)查询操作失败!(请重试!)"
  351. rslt = 0
  352. Goto ext
  353. End If
  354. If cnt > 0 Then
  355. arg_msg = "该资料已经使用于物料工价表,不可以删除!"
  356. rslt = 0
  357. Goto ext
  358. End If
  359. //工艺路线
  360. cnt = 0
  361. Select COUNT(*) Into :cnt
  362. From u_mtrl_wkp_tech Where mtrlid = :arg_mtrlid;
  363. If sqlca.SQLCode <> 0 Then
  364. arg_msg = "数据(工价表)查询操作失败!(请重试!)"
  365. rslt = 0
  366. Goto ext
  367. End If
  368. If cnt > 0 Then
  369. arg_msg = "该资料已经使用于物料工价表,不可以删除!"
  370. rslt = 0
  371. Goto ext
  372. End If
  373. //
  374. Int li_issuliao,li_issuliao_sk
  375. Long ll_sk_mtrlid
  376. Select issuliao Into :li_issuliao
  377. From u_mtrldef
  378. Where mtrlid = :arg_mtrlid;
  379. If sqlca.SQLCode <> 0 Then
  380. rslt = 0
  381. arg_msg = '查询物料塑料属性失败,'+sqlca.SQLErrText
  382. Goto ext
  383. End If
  384. If li_issuliao = 2 Then
  385. Select count(*) Into :cnt
  386. From u_mtrldef_sl
  387. Where sk_mtrlid = :arg_mtrlid;
  388. If sqlca.SQLCode <> 0 Then
  389. rslt = 0
  390. arg_msg = '查询水口料是否已被使用失败,'+sqlca.SQLErrText
  391. Goto ext
  392. End If
  393. If cnt > 0 Then
  394. arg_msg = "该水口料已经使用于物料资料,不可以删除!"
  395. rslt = 0
  396. Goto ext
  397. End If
  398. End If
  399. End If
  400. //
  401. //_del:
  402. /////// //
  403. Delete From u_mtrl_storage Where mtrlid = :arg_mtrlid;
  404. If sqlca.SQLCode <> 0 Then
  405. arg_msg = '删除物料存放仓库资料失败,'+sqlca.SQLErrText
  406. rslt = 0
  407. Goto ext
  408. End If
  409. Delete From u_mtrldef_ban Where mtrlid = :arg_mtrlid;
  410. If sqlca.SQLCode <> 0 Then
  411. arg_msg = '删除物料板件信息失败,'+sqlca.SQLErrText
  412. rslt = 0
  413. Goto ext
  414. End If
  415. Delete From u_mtrldef Where mtrlid = :arg_mtrlid;
  416. If sqlca.SQLCode <> 0 Then
  417. arg_msg = '删除物料资料失败,'+sqlca.SQLErrText
  418. rslt = 0
  419. Goto ext
  420. End If
  421. Delete From u_mtrl_pf Where mtrlid = :arg_mtrlid;
  422. If sqlca.SQLCode <> 0 Then
  423. arg_msg = '删除物料清单失败,原因:'+sqlca.SQLErrText
  424. rslt = 0
  425. Goto ext
  426. End If
  427. Delete From u_mtrl_wkp_tech Where mtrlid = :arg_mtrlid;
  428. If sqlca.SQLCode <> 0 Then
  429. arg_msg = '删除物料工艺路线失败,原因:'+sqlca.SQLErrText
  430. rslt = 0
  431. Goto ext
  432. End If
  433. Delete From u_sc_workprice Where mtrlid = :arg_mtrlid;
  434. If sqlca.SQLCode <> 0 Then
  435. arg_msg = '删除物料工价表失败,原因:'+sqlca.SQLErrText
  436. rslt = 0
  437. Goto ext
  438. End If
  439. Delete From u_mtrl_wkp Where mtrlid = :arg_mtrlid;
  440. If sqlca.SQLCode <> 0 Then
  441. arg_msg = '删除物料工组流程失败,原因:'+sqlca.SQLErrText
  442. rslt = 0
  443. Goto ext
  444. End If
  445. Delete From u_mtrldef_sl Where mtrlid = :arg_mtrlid;
  446. If sqlca.SQLCode <> 0 Then
  447. arg_msg = '删除物料水口料失败,原因:'+sqlca.SQLErrText
  448. rslt = 0
  449. Goto ext
  450. End If
  451. Delete From u_PrdPF Where mtrlid = :arg_mtrlid;
  452. If sqlca.SQLCode <> 0 Then
  453. arg_msg = '删除物料清单失败,原因:'+sqlca.SQLErrText
  454. rslt = 0
  455. Goto ext
  456. End If
  457. Delete From u_sale_price_mx Where mtrlid = :arg_mtrlid;
  458. If sqlca.SQLCode <> 0 Then
  459. arg_msg = '删除价格表明细失败,原因:'+sqlca.SQLErrText
  460. rslt = 0
  461. Goto ext
  462. End If
  463. Delete From u_mtrl_configure2
  464. Where mtrlid = :arg_mtrlid ;
  465. If sqlca.SQLCode <> 0 Then
  466. rslt = 0
  467. arg_msg = '删除物料包件配置资料操作失败:'+sqlca.SQLErrText
  468. Goto ext
  469. End If
  470. Delete From u_mtrldef_planprice
  471. Where mtrlid = :arg_mtrlid ;
  472. If sqlca.SQLCode <> 0 Then
  473. rslt = 0
  474. arg_msg = '删除物料计划成本价资料操作失败:'+sqlca.SQLErrText
  475. Goto ext
  476. End If
  477. Long ll_ConnectionID
  478. If f_get_outerconnection(ll_ConnectionID,arg_msg) = 1 Then
  479. Delete From U_File
  480. Where relid = :arg_mtrlid
  481. And (billtype = 201 or billtype = 202) Using sys_fileDB_sqlca ;
  482. If sys_fileDB_sqlca.SQLCode <> 0 Then
  483. arg_msg = '删除物料图片失败,原因:'+sys_fileDB_sqlca.SQLErrText
  484. rslt = 0
  485. Goto ext
  486. End If
  487. End If
  488. ext:
  489. If rslt = 0 Then
  490. Rollback;
  491. ElseIf rslt = 1 And arg_ifcommit Then
  492. Commit;
  493. Commit Using sys_fileDB_sqlca;
  494. End If
  495. Return rslt
  496. end function
  497. public function integer uo_add_mtrl_storage (long arg_mtrlid, long arg_storageid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  498. INSERT INTO u_mtrl_storage(mtrlid,storageid)
  499. Values(:arg_mtrlid,:arg_storageid);
  500. IF sqlca.SQLCode <> 0 THEN
  501. arg_msg = "物料指定默认仓库失败,"+sqlca.SQLErrText
  502. rslt = 0
  503. GOTO ext
  504. END IF
  505. ext:
  506. IF rslt = 0 THEN
  507. ROLLBACK;
  508. ELSEIF rslt = 1 AND arg_ifcommit THEN
  509. COMMIT;
  510. END IF
  511. RETURN rslt
  512. end function
  513. public function integer uof_code_find (long arg_id, string arg_code, ref string arg_msg);Int rslt = 1
  514. long cnt
  515. SELECT count(*) INTO :cnt
  516. FROM u_mtrldef
  517. WHERE mtrlid <> :arg_id
  518. AND mtrlcode = :arg_code;
  519. IF sqlca.SQLCode <> 0 THEN
  520. arg_msg = '查询物料编码:'+arg_code+',是否已用失败,'+sqlca.SQLErrText
  521. rslt = 0
  522. GOTO ext
  523. END IF
  524. IF cnt > 0 THEN
  525. arg_msg = '查询物料编码:'+arg_code+',已用,请重新输入'
  526. rslt = 0
  527. GOTO ext
  528. END IF
  529. ext:
  530. RETURN rslt
  531. end function
  532. public function integer uof_update_configure2 (long arg_mtrlid, s_mtrl_configure_array arg_s_config, boolean arg_ifcommit, ref string arg_msg);Long rslt = 1
  533. IF arg_mtrlid <= 0 THEN
  534. rslt = 0
  535. arg_msg = '错误的物料ID'
  536. GOTO ext
  537. END IF
  538. DELETE FROM u_mtrl_configure2
  539. Where mtrlid = :arg_mtrlid ;
  540. IF sqlca.SQLCode <> 0 THEN
  541. rslt = 0
  542. arg_msg = '删除物料包件配置资料操作失败:'+sqlca.SQLErrText
  543. GOTO ext
  544. END IF
  545. Long ls_i
  546. String ls_pzcode,ls_name,ls_pzcodemx,ls_namemx
  547. Long ls_printid,ls_pzid
  548. Long ll_pzflag = 0
  549. FOR ls_i = 1 TO UpperBound(arg_s_config.pzid)
  550. ls_pzid = arg_s_config.pzid[ls_i]
  551. ls_pzcode = arg_s_config.pzcode[ls_i]
  552. ls_name = arg_s_config.pzname[ls_i]
  553. ls_pzcodemx = arg_s_config.pzcodemx[ls_i]
  554. ls_namemx = arg_s_config.pznamemx[ls_i]
  555. ls_printid = arg_s_config.printid[ls_i]
  556. INSERT INTO u_mtrl_configure2
  557. (mtrlid, pzid, printid, pzcode, pzname, pzcodemx, pznamemx)
  558. Values(:arg_mtrlid,:ls_pzid,:ls_printid,:ls_pzcode,:ls_name,:ls_pzcodemx,:ls_namemx) USING sqlca;
  559. IF sqlca.SQLCode <> 0 THEN
  560. rslt = 0
  561. arg_msg = '插入物料包件配置资料操作失败:'+sqlca.SQLErrText
  562. GOTO ext
  563. END IF
  564. NEXT
  565. ext:
  566. IF rslt = 0 THEN
  567. ROLLBACK ;
  568. ELSEIF rslt = 1 AND arg_ifcommit THEN
  569. COMMIT ;
  570. END IF
  571. RETURN rslt
  572. end function
  573. public function integer uof_add_skmtrl (long arg_mtrlid, string arg_mtrlcode, string arg_mtrlname, string arg_usermtrlmode, string arg_mtrlmode, long arg_sk_mtrltypeid, decimal arg_period, string arg_zxmtrlmode, ref string arg_msg, boolean arg_ifcommit);//2011-11-09 起, 停用本函数,代码作备用保留//
  574. Int rslt = 1
  575. Long cnt
  576. Long ll_sk_mtrlid
  577. String sk_handtype
  578. String ls_code,ls_name
  579. String ls_mtrlmode
  580. SELECT sk_mtrlid INTO :ll_sk_mtrlid
  581. FROM u_mtrldef_sl
  582. Where mtrlid = :arg_mtrlid;
  583. IF sqlca.SQLCode = -1 THEN
  584. rslt = 0
  585. arg_msg = '查询物料是否已有相关水口料失败,'+sqlca.SQLErrText
  586. GOTO ext
  587. ELSEIF sqlca.SQLCode = 100 THEN
  588. ll_sk_mtrlid = 0
  589. END IF
  590. SELECT count(*) INTO :cnt
  591. FROM u_mtrldef_sl
  592. Where mtrlid = :arg_mtrlid;
  593. IF sqlca.SQLCode <> 0 THEN
  594. rslt = 0
  595. arg_msg = '查询塑料资料失败'
  596. GOTO ext
  597. END IF
  598. SELECT handtype INTO :sk_handtype
  599. FROM u_mtrltype
  600. Where mtrltypeid = :arg_sk_mtrltypeid;
  601. IF sqlca.SQLCode <> 0 THEN
  602. rslt = 0
  603. arg_msg = '查询水口料详细类别失败!'
  604. GOTO ext
  605. END IF
  606. IF ll_sk_mtrlid = 0 THEN
  607. ll_sk_mtrlid = f_sys_scidentity(0,"u_mtrldef","mtrlid",arg_msg,TRUE,id_sqlca)
  608. IF ll_sk_mtrlid <= 0 THEN
  609. rslt = 0
  610. GOTO ext
  611. END IF
  612. ls_code = arg_mtrlcode + '~~'+'(skl)'
  613. ls_name = arg_mtrlname + '~~'+'(水口料)'
  614. INSERT INTO u_mtrldef
  615. (mtrlid,
  616. mtrlname,
  617. mtrlcode,
  618. mtrltypeid,
  619. handtype,
  620. unit,
  621. issuliao,
  622. usermtrlmode,
  623. mtrlorigin,
  624. mtrlmode,
  625. mtrlprp,
  626. zxmtrlmode)
  627. VALUES
  628. (:ll_sk_mtrlid,
  629. :ls_name,
  630. :ls_code,
  631. :arg_sk_mtrltypeid,
  632. :sk_handtype,
  633. '公斤',
  634. 2,
  635. :arg_usermtrlmode,
  636. 2,
  637. :arg_mtrlmode,
  638. 2,
  639. :arg_zxmtrlmode) ;
  640. IF sqlca.SQLCode <> 0 THEN
  641. rslt = 0
  642. arg_msg = '插入相关水口料信息失败!'+sqlca.SQLErrText
  643. GOTO ext
  644. END IF
  645. IF cnt = 0 THEN
  646. INSERT INTO u_mtrldef_sl
  647. (mtrlid,
  648. sk_mtrlid,
  649. sk_mtrlname,
  650. sk_mtrltypeid,
  651. period)
  652. VALUES
  653. (:arg_mtrlid,
  654. :ll_sk_mtrlid,
  655. :ls_name,
  656. :arg_sk_mtrltypeid,
  657. :arg_period);
  658. IF sqlca.SQLCode <> 0 THEN
  659. rslt = 0
  660. arg_msg = '插入相关水口料信息失败!'+sqlca.SQLErrText
  661. GOTO ext
  662. END IF
  663. ELSE
  664. UPDATE u_mtrldef_sl
  665. SET sk_mtrlid = :ll_sk_mtrlid,
  666. sk_mtrlname = :ls_name,
  667. sk_mtrltypeid = :arg_sk_mtrltypeid,
  668. period = :arg_period
  669. Where mtrlid = :arg_mtrlid;
  670. IF sqlca.SQLCode <> 0 THEN
  671. rslt = 0
  672. arg_msg = '更新物料相关水口料信息失败,'+sqlca.SQLErrText
  673. GOTO ext
  674. END IF
  675. END IF
  676. ELSE
  677. SELECT sk_mtrlid INTO :ll_sk_mtrlid
  678. FROM u_mtrldef_sl
  679. Where mtrlid = :arg_mtrlid;
  680. IF sqlca.SQLCode <> 0 THEN
  681. rslt = 0
  682. arg_msg = '查询物料相关水口料信息失败,'+sqlca.SQLErrText
  683. GOTO ext
  684. END IF
  685. ls_code = arg_mtrlcode + '~~'+'(skl)'
  686. ls_name = arg_mtrlname + '~~'+'(水口料)'
  687. UPDATE u_mtrldef
  688. SET mtrltypeid = :arg_sk_mtrltypeid,
  689. handtype = :sk_handtype,
  690. usermtrlmode = :arg_usermtrlmode,
  691. mtrlmode = :arg_mtrlmode,
  692. mtrlcode = :ls_code,
  693. mtrlname = :ls_name,
  694. zxmtrlmode = :arg_zxmtrlmode
  695. Where mtrlid = :ll_sk_mtrlid;
  696. IF sqlca.SQLCode <> 0 THEN
  697. rslt = 0
  698. arg_msg = '更新物料相关水口料信息失败,'+sqlca.SQLErrText
  699. GOTO ext
  700. END IF
  701. UPDATE u_mtrldef_sl
  702. SET sk_mtrltypeid = :arg_sk_mtrltypeid,
  703. period = :arg_period
  704. Where mtrlid = :arg_mtrlid;
  705. IF sqlca.SQLCode <> 0 THEN
  706. rslt = 0
  707. arg_msg = '更新物料相关水口料信息失败,'+sqlca.SQLErrText
  708. GOTO ext
  709. END IF
  710. END IF
  711. ext:
  712. IF rslt = 0 THEN
  713. ROLLBACK;
  714. ELSEIF rslt = 1 AND arg_ifcommit THEN
  715. COMMIT;
  716. END IF
  717. RETURN rslt
  718. end function
  719. public function integer uof_tech_del (long arg_mtrlid, boolean arg_ifcommit, ref string arg_msg);Int rslt = 1
  720. DELETE FROM u_mtrl_tech Where mtrlid = :arg_mtrlid using sqlca;
  721. IF sqlca.SQLCode <> 0 THEN
  722. arg_msg = '删除物料工艺明细失败,原因:'+sqlca.SQLErrText
  723. rslt = 0
  724. GOTO ext
  725. END IF
  726. ext:
  727. if rslt = 0 then
  728. rollback using sqlca;
  729. elseif rslt = 1 and arg_ifcommit then
  730. commit using sqlca;
  731. end if
  732. return rslt
  733. end function
  734. public function integer uof_tech_update (long arg_mtrlid, s_addon_techdef arg_s_tech, boolean arg_ifcommit, ref string arg_msg);long rslt = 1
  735. if arg_mtrlid<=0 then
  736. rslt = 0
  737. arg_msg = '错误的物料ID'
  738. goto ext
  739. end if
  740. delete from u_mtrl_tech
  741. where mtrlid = :arg_mtrlid using sqlca;
  742. if sqlca.sqlcode<>0 then
  743. rslt = 0
  744. arg_msg = '删除操作失败:'+sqlca.sqlerrtext
  745. goto ext
  746. end if
  747. long ls_i
  748. for ls_i=1 to UpperBound(arg_s_tech.techid)
  749. if arg_s_tech.techid[ls_i]>0 then
  750. insert into u_mtrl_tech
  751. (mtrlid, techdefid,qty,unit,dscrp,width, len, heightdegree)
  752. values(:arg_mtrlid,:arg_s_tech.techid[ls_i],:arg_s_tech.qty[ls_i],:arg_s_tech.unit[ls_i],:arg_s_tech.dscrp[ls_i],
  753. :arg_s_tech.width[ls_i], :arg_s_tech.len[ls_i], :arg_s_tech.heightdegree[ls_i]) using sqlca;
  754. if sqlca.sqlcode<>0 then
  755. rslt = 0
  756. arg_msg = '删除操作失败:'+sqlca.sqlerrtext
  757. goto ext
  758. end if
  759. end if
  760. next
  761. ext:
  762. if rslt = 0 then
  763. rollback using sqlca;
  764. elseif rslt = 1 and arg_ifcommit then
  765. commit using sqlca;
  766. end if
  767. return rslt
  768. end function
  769. public function integer uof_skmtrl_add (long arg_mtrlid, long arg_skmtrlid, decimal arg_period, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  770. String ls_skmtrlname
  771. Long ll_skmtrltypeid
  772. Long cnt
  773. SELECT mtrlname,mtrltypeid
  774. INTO :ls_skmtrlname,:ll_skmtrltypeid
  775. FROM u_mtrldef
  776. Where mtrlid = :arg_skmtrlid;
  777. IF sqlca.SQLCode <> 0 THEN
  778. rslt = 0
  779. arg_msg = '查询水口料信息失败 '+sqlca.SQLErrText
  780. GOTO ext
  781. END IF
  782. SELECT count(*) INTO :cnt
  783. FROM u_mtrldef_sl
  784. Where mtrlid = :arg_mtrlid;
  785. IF sqlca.SQLCode <> 0 THEN
  786. rslt = 0
  787. arg_msg = '查询塑料资料失败 '+sqlca.SQLErrText
  788. GOTO ext
  789. END IF
  790. IF cnt = 0 THEN
  791. INSERT INTO u_mtrldef_sl
  792. (mtrlid,
  793. sk_mtrlid,
  794. sk_mtrlname,
  795. sk_mtrltypeid,
  796. period)
  797. VALUES
  798. (:arg_mtrlid,
  799. :arg_skmtrlid,
  800. :ls_skmtrlname,
  801. :ll_skmtrltypeid,
  802. :arg_period);
  803. IF sqlca.SQLCode <> 0 THEN
  804. rslt = 0
  805. arg_msg = '插入相关水口料信息失败!'+sqlca.SQLErrText
  806. GOTO ext
  807. END IF
  808. ELSE
  809. UPDATE u_mtrldef_sl
  810. SET sk_mtrlid = :arg_skmtrlid,
  811. sk_mtrlname = :ls_skmtrlname,
  812. sk_mtrltypeid = :ll_skmtrltypeid,
  813. period = :arg_period
  814. Where mtrlid = :arg_mtrlid;
  815. IF sqlca.SQLCode <> 0 THEN
  816. rslt = 0
  817. arg_msg = '更新物料相关水口料信息失败,'+sqlca.SQLErrText
  818. GOTO ext
  819. END IF
  820. END IF
  821. ext:
  822. IF rslt = 0 THEN
  823. ROLLBACK;
  824. ELSEIF rslt = 1 And arg_ifcommit THEN
  825. COMMIT;
  826. END IF
  827. RETURN rslt
  828. end function
  829. public function integer uof_qc_update (s_mtrl_qc arg_s_qc, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  830. Long ll_qcid
  831. IF arg_s_qc.mtrlid = 0 THEN
  832. rslt = 0
  833. arg_msg = "物料ID错误"
  834. GOTO ext
  835. END IF
  836. IF arg_s_qc.dftflag = 1 THEN
  837. UPDATE u_mtrldef_qc
  838. SET dftflag = 0
  839. WHERE mtrlid = :arg_s_qc.mtrlid
  840. And qcid <> :arg_s_qc.qcid;
  841. IF sqlca.SQLCode <> 0 THEN
  842. rslt = 0
  843. arg_msg = "更新默认质检组合失败,"+sqlca.SQLErrText
  844. GOTO ext
  845. END IF
  846. END IF
  847. IF arg_s_qc.qcid = 0 THEN //新增
  848. ll_qcid = f_sys_scidentity(0,"u_mtrldef_qc","qcid",arg_msg,True,id_sqlca)
  849. IF ll_qcid <= 0 THEN
  850. rslt = 0
  851. GOTO ext
  852. END IF
  853. INSERT INTO u_mtrldef_qc
  854. (mtrlid,
  855. qcid,
  856. qcname,
  857. dftflag,
  858. inuse)
  859. VALUES
  860. (:arg_s_qc.mtrlid,
  861. :ll_qcid,
  862. :arg_s_qc.qcname,
  863. :arg_s_qc.dftflag,
  864. :arg_s_qc.inuse);
  865. IF sqlca.SQLCode <> 0 THEN
  866. rslt = 0
  867. arg_msg = "新建质检组合资料失败,"+sqlca.SQLErrText
  868. GOTO ext
  869. END IF
  870. ELSE //修改
  871. UPDATE u_mtrldef_qc
  872. SET qcname = :arg_s_qc.qcname,
  873. dftflag = :arg_s_qc.dftflag,
  874. inuse = :arg_s_qc.inuse
  875. WHERE mtrlid = :arg_s_qc.mtrlid
  876. And qcid = :arg_s_qc.qcid;
  877. IF sqlca.SQLCode <> 0 THEN
  878. rslt = 0
  879. arg_msg = "更新质检组合资料失败,"+sqlca.SQLErrText
  880. GOTO ext
  881. END IF
  882. END IF
  883. ext:
  884. IF rslt = 0 THEN
  885. ROLLBACK;
  886. ELSE
  887. COMMIT;
  888. END IF
  889. RETURN rslt
  890. end function
  891. public function integer uof_qc_del (long arg_mtrlid, long arg_qcid, ref string arg_msg);Int rslt = 1
  892. DELETE FROM u_mtrldef_qcmx
  893. WHERE mtrlid = :arg_mtrlid
  894. And qcid = :arg_qcid;
  895. IF sqlca.SQLCode <> 0 THEN
  896. arg_msg = '删除质检项目明细失败'+sqlca.SQLErrText
  897. rslt = 0
  898. GOTO ext
  899. END IF
  900. DELETE FROM u_mtrldef_qc
  901. WHERE mtrlid = :arg_mtrlid
  902. And qcid = :arg_qcid;
  903. IF sqlca.SQLCode <> 0 THEN
  904. arg_msg = '删除质检组合失败'+sqlca.SQLErrText
  905. rslt = 0
  906. GOTO ext
  907. END IF
  908. ext:
  909. IF rslt = 0 THEN
  910. ROLLBACK;
  911. ELSE
  912. COMMIT;
  913. END IF
  914. RETURN rslt
  915. end function
  916. public function integer uof_zb_update (s_mtrl_zb arg_s_zb, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  917. Long ll_sonmtrlid
  918. IF arg_s_zb.mtrlid = 0 THEN
  919. rslt = 0
  920. arg_msg = "物料ID错误"
  921. GOTO ext
  922. END IF
  923. //IF arg_s_zb.sonmtrlid = 0 THEN
  924. // rslt = 0
  925. // arg_msg = "纸板ID错误,请选择纸板"
  926. // GOTO ext
  927. //END IF
  928. IF arg_s_zb.zxtypeid = 0 THEN
  929. rslt = 0
  930. arg_msg = "纸箱类别ID错误,请选择纸箱类别"
  931. GOTO ext
  932. END IF
  933. UPDATE u_mtrldef_add_property
  934. SET exp = :arg_s_zb.exp,
  935. dscrp = :arg_s_zb.dscrp,
  936. sonmtrlid = :arg_s_zb.sonmtrlid,
  937. zxtypeid = :arg_s_zb.zxtypeid,
  938. modemp = :publ_operator,
  939. moddate = getdate()
  940. Where mtrlid = :arg_s_zb.mtrlid;
  941. IF sqlca.SQLCode = 0 THEN
  942. IF sqlca.SQLNRows = 0 THEN
  943. INSERT INTO u_mtrldef_add_property
  944. (mtrlid,
  945. sonmtrlid,
  946. zxtypeid,
  947. exp,
  948. dscrp,
  949. opemp,
  950. opdate)
  951. VALUES
  952. (:arg_s_zb.mtrlid,
  953. :arg_s_zb.sonmtrlid,
  954. :arg_s_zb.zxtypeid,
  955. :arg_s_zb.exp,
  956. :arg_s_zb.dscrp,
  957. :publ_operator,
  958. getdate());
  959. IF sqlca.SQLCode <> 0 THEN
  960. rslt = 0
  961. arg_msg = "新建纸板资料失败,"+sqlca.SQLErrText
  962. GOTO ext
  963. END IF
  964. END IF
  965. ELSE
  966. rslt = 0
  967. arg_msg = "更新纸板资料失败,"+sqlca.SQLErrText
  968. GOTO ext
  969. END IF
  970. ext:
  971. IF rslt = 0 THEN
  972. ROLLBACK;
  973. ELSE
  974. COMMIT;
  975. END IF
  976. RETURN rslt
  977. end function
  978. public function integer uof_zb_del (long arg_mtrlid, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  979. DELETE FROM u_mtrldef_add_property
  980. WHERE mtrlid = :arg_mtrlid;
  981. IF sqlca.SQLCode <> 0 THEN
  982. arg_msg = '删除纸板失败'+sqlca.SQLErrText
  983. rslt = 0
  984. GOTO ext
  985. END IF
  986. ext:
  987. IF rslt = 0 THEN
  988. ROLLBACK;
  989. ELSEif arg_ifcommit then
  990. COMMIT;
  991. END IF
  992. RETURN rslt
  993. end function
  994. public function integer uof_jgdscrp_update (long arg_mtrlid, s_mtrljgdscrp_array s_mtrjgdscrp, boolean arg_ifcommit, ref string arg_msg);Long rslt = 1
  995. IF arg_mtrlid <= 0 THEN
  996. rslt = 0
  997. arg_msg = '错误的物料ID'
  998. GOTO ext
  999. END IF
  1000. DELETE FROM u_mtrl_jgdscrp
  1001. Where mtrlid = :arg_mtrlid USING sqlca;
  1002. IF sqlca.SQLCode <> 0 THEN
  1003. rslt = 0
  1004. arg_msg = '删除操作失败:'+sqlca.SQLErrText
  1005. GOTO ext
  1006. END IF
  1007. Long ls_i
  1008. String ls_jgdscrpcode,ls_jgdscrpname,ls_jgdscrpmxcode,ls_jgdscrpmxname
  1009. Long ls_jgdscrpmxid
  1010. String ls_jgdscrp
  1011. FOR ls_i = 1 TO UpperBound(s_mtrjgdscrp.jgdscrpmxid)
  1012. ls_jgdscrpmxid = s_mtrjgdscrp.jgdscrpmxid[ls_i]
  1013. ls_jgdscrpcode = s_mtrjgdscrp.jgdscrpcode[ls_i]
  1014. ls_jgdscrpname = s_mtrjgdscrp.jgdscrpname[ls_i]
  1015. ls_jgdscrpmxname = s_mtrjgdscrp.jgdscrpmxname[ls_i]
  1016. ls_jgdscrpmxcode = s_mtrjgdscrp.jgdscrpmxcode[ls_i]
  1017. ls_jgdscrp = ls_jgdscrp +ls_jgdscrpcode+ls_jgdscrpname+ls_jgdscrpmxcode+ls_jgdscrpmxname +' '
  1018. INSERT INTO u_mtrl_jgdscrp
  1019. (mtrlid, jgdscrpmxid)
  1020. Values(:arg_mtrlid,:ls_jgdscrpmxid) USING sqlca;
  1021. IF sqlca.SQLCode <> 0 THEN
  1022. rslt = 0
  1023. arg_msg = '插入操作失败:'+sqlca.SQLErrText
  1024. GOTO ext
  1025. END IF
  1026. NEXT
  1027. UPDATE u_mtrldef
  1028. SET jgdscrp = :ls_jgdscrp
  1029. Where mtrlid = :arg_mtrlid USING sqlca;
  1030. IF sqlca.SQLCode <> 0 THEN
  1031. rslt = 0
  1032. arg_msg = '更新工艺说明操作失败:'+sqlca.SQLErrText
  1033. GOTO ext
  1034. END IF
  1035. ext:
  1036. IF rslt = 0 THEN
  1037. ROLLBACK USING sqlca;
  1038. ELSEIF rslt = 1 AND arg_ifcommit THEN
  1039. COMMIT USING sqlca;
  1040. END IF
  1041. RETURN rslt
  1042. end function
  1043. public function integer uof_audit (long arg_mtrlid, string arg_emp, ref string arg_msg, boolean arg_ifcommit);Int li_flag
  1044. Int rslt = 1
  1045. Select flag
  1046. Into :li_flag
  1047. From u_mtrldef
  1048. Where mtrlid = :arg_mtrlid;
  1049. If sqlca.SQLCode <> 0 Then
  1050. rslt = 0
  1051. arg_msg = '查询物料审核状态失败,'+sqlca.SQLErrText
  1052. Goto ext
  1053. End If
  1054. If li_flag <> 0 Then
  1055. rslt = 0
  1056. arg_msg = '物料不是在待审核状态,不能审核'
  1057. Goto ext
  1058. End If
  1059. Update u_mtrldef
  1060. Set flag = 1 ,
  1061. auditemp = :arg_emp,
  1062. auditdate = getdate()
  1063. Where mtrlid = :arg_mtrlid
  1064. And flag = 0 ;
  1065. If sqlca.SQLCode = 0 Then
  1066. If sqlca.SQLNRows = 0 Then
  1067. rslt = 0
  1068. arg_msg = '物料正在审核,请刷新 '+sqlca.SQLErrText
  1069. Goto ext
  1070. End If
  1071. Else
  1072. rslt = 0
  1073. arg_msg = '物料审核失败 '+sqlca.SQLErrText
  1074. Goto ext
  1075. End If
  1076. ext:
  1077. If rslt = 0 Then
  1078. Rollback;
  1079. ElseIf rslt = 1 And arg_ifcommit Then
  1080. Commit;
  1081. End If
  1082. Return rslt
  1083. end function
  1084. public function integer uof_c_audit (long arg_mtrlid, ref string arg_msg, boolean arg_ifcommit);Int li_flag
  1085. Int rslt = 1
  1086. datetime ld_nulldt
  1087. setnull(ld_nulldt)
  1088. Select flag
  1089. Into :li_flag
  1090. From u_mtrldef
  1091. Where mtrlid = :arg_mtrlid;
  1092. If sqlca.SQLCode <> 0 Then
  1093. rslt = 0
  1094. arg_msg = '查询物料审核状态失败,'+sqlca.SQLErrText
  1095. Goto ext
  1096. End If
  1097. If li_flag <> 1 Then
  1098. rslt = 0
  1099. arg_msg = '物料不是在待终审状态,不能撤初审'
  1100. Goto ext
  1101. End If
  1102. Update u_mtrldef
  1103. Set flag = 0 ,
  1104. auditemp = '',
  1105. auditdate = :ld_nulldt
  1106. Where mtrlid = :arg_mtrlid
  1107. And flag = 1 ;
  1108. If sqlca.SQLCode = 0 Then
  1109. If sqlca.SQLNRows = 0 Then
  1110. rslt = 0
  1111. arg_msg = '物料正在撤审,请刷新 '+sqlca.SQLErrText
  1112. Goto ext
  1113. End If
  1114. Else
  1115. rslt = 0
  1116. arg_msg = '物料撤初审失败 '+sqlca.SQLErrText
  1117. Goto ext
  1118. End If
  1119. ext:
  1120. If rslt = 0 Then
  1121. Rollback;
  1122. ElseIf rslt = 1 And arg_ifcommit Then
  1123. Commit;
  1124. End If
  1125. Return rslt
  1126. end function
  1127. public function integer uof_c_secaudit (long arg_mtrlid, ref string arg_msg, boolean arg_ifcommit);Int li_flag
  1128. Int rslt = 1
  1129. datetime ld_nulldt
  1130. setnull(ld_nulldt)
  1131. Select flag
  1132. Into :li_flag
  1133. From u_mtrldef
  1134. Where mtrlid = :arg_mtrlid;
  1135. If sqlca.SQLCode <> 0 Then
  1136. rslt = 0
  1137. arg_msg = '查询物料审核状态失败,'+sqlca.SQLErrText
  1138. Goto ext
  1139. End If
  1140. If li_flag <> 2 Then
  1141. rslt = 0
  1142. arg_msg = '物料不是在终审状态,不能撤终审'
  1143. Goto ext
  1144. End If
  1145. Update u_mtrldef
  1146. Set flag = 1 ,
  1147. secauditemp = '',
  1148. secauditdate = :ld_nulldt
  1149. Where mtrlid = :arg_mtrlid
  1150. And flag = 2 ;
  1151. If sqlca.SQLCode = 0 Then
  1152. If sqlca.SQLNRows = 0 Then
  1153. rslt = 0
  1154. arg_msg = '物料正在撤审,请刷新 '+sqlca.SQLErrText
  1155. Goto ext
  1156. End If
  1157. Else
  1158. rslt = 0
  1159. arg_msg = '物料撤终审失败 '+sqlca.SQLErrText
  1160. Goto ext
  1161. End If
  1162. ext:
  1163. If rslt = 0 Then
  1164. Rollback;
  1165. ElseIf rslt = 1 And arg_ifcommit Then
  1166. Commit;
  1167. End If
  1168. Return rslt
  1169. end function
  1170. public function integer uof_secaudit (long arg_mtrlid, string arg_emp, ref string arg_msg, boolean arg_ifcommit);Int li_flag
  1171. Int rslt = 1
  1172. Select flag
  1173. Into :li_flag
  1174. From u_mtrldef
  1175. Where mtrlid = :arg_mtrlid;
  1176. If sqlca.SQLCode <> 0 Then
  1177. rslt = 0
  1178. arg_msg = '查询物料审核状态失败,'+sqlca.SQLErrText
  1179. Goto ext
  1180. End If
  1181. If li_flag <> 1 Then
  1182. rslt = 0
  1183. arg_msg = '物料不是在待终审状态,不能终审'
  1184. Goto ext
  1185. End If
  1186. Update u_mtrldef
  1187. Set flag = 2 ,
  1188. secauditemp = :arg_emp,
  1189. secauditdate = getdate()
  1190. Where mtrlid = :arg_mtrlid
  1191. And flag = 1 ;
  1192. If sqlca.SQLCode = 0 Then
  1193. If sqlca.SQLNRows = 0 Then
  1194. rslt = 0
  1195. arg_msg = '物料正在审核,请刷新 '+sqlca.SQLErrText
  1196. Goto ext
  1197. End If
  1198. Else
  1199. rslt = 0
  1200. arg_msg = '物料审核失败 '+sqlca.SQLErrText
  1201. Goto ext
  1202. End If
  1203. ext:
  1204. If rslt = 0 Then
  1205. Rollback;
  1206. ElseIf rslt = 1 And arg_ifcommit Then
  1207. Commit;
  1208. End If
  1209. Return rslt
  1210. end function
  1211. public function integer uof_add_mtrl (s_mtrldef arg_s_mtrl, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  1212. Long cnt,ll_mtrlid,ll_i
  1213. String ls_mtrltype,ls_handtype
  1214. Long ll_scid_wrkGrpid
  1215. Int li_ifunit
  1216. Int li_issuliao_ori
  1217. Long ll_sk_mtrlid
  1218. String ls_barcode
  1219. If uo_option_use_suliao = -1000 Then
  1220. rslt = 0
  1221. arg_msg = '选项:[159]启用注塑模块,读取初始默认值失败,操作取消!'
  1222. Goto ext
  1223. End If
  1224. If uo_option_use_machining_ll = -1000 Then
  1225. rslt = 0
  1226. arg_msg = '选项:[170]启用来料加工模块,读取初始默认值失败,操作取消!'
  1227. Goto ext
  1228. End If
  1229. If uo_option_change_status = '-1000' Then
  1230. rslt = 0
  1231. arg_msg = '选项:[029]配置标题文本,读取初始默认值失败,操作取消!'
  1232. Goto ext
  1233. End If
  1234. If uo_option_change_woodcode = '-1000' Then
  1235. rslt = 0
  1236. arg_msg = '选项:[027]配置1标题文本,读取初始默认值失败,操作取消!'
  1237. Goto ext
  1238. End If
  1239. If uo_option_change_pcode = '-1000' Then
  1240. rslt = 0
  1241. arg_msg = '选项:[028]配置2标题文本,读取初始默认值失败,操作取消!'
  1242. Goto ext
  1243. End If
  1244. If uo_option_inout_type = -1000 Then
  1245. rslt = 0
  1246. arg_msg = '选项:[142]进出仓高级选项,读取初始默认值失败,操作取消!'
  1247. Goto ext
  1248. End If
  1249. If IsNull(arg_s_mtrl.mtrlid) Then arg_s_mtrl.mtrlid = 0
  1250. If IsNull(arg_s_mtrl.mtrlcode) Then arg_s_mtrl.mtrlcode = ''
  1251. If IsNull(arg_s_mtrl.mtrlname) Then arg_s_mtrl.mtrlname = ''
  1252. If IsNull(arg_s_mtrl.mtrlsectype) Then arg_s_mtrl.mtrlsectype = ''
  1253. If IsNull(arg_s_mtrl.mtrlmode) Then arg_s_mtrl.mtrlmode = ''
  1254. If IsNull(arg_s_mtrl.unit) Then arg_s_mtrl.unit = ''
  1255. If IsNull(arg_s_mtrl.dscrp) Then arg_s_mtrl.dscrp = ''
  1256. If IsNull(arg_s_mtrl.lmbuyprice) Then arg_s_mtrl.lmbuyprice = 0
  1257. If IsNull(arg_s_mtrl.lmsaleprice) Then arg_s_mtrl.lmsaleprice = 0
  1258. If IsNull(arg_s_mtrl.prdpackcode) Then arg_s_mtrl.prdpackcode = ''
  1259. If IsNull(arg_s_mtrl.packqty) Then arg_s_mtrl.packqty = 0
  1260. If IsNull(arg_s_mtrl.zxmtrlmode) Then arg_s_mtrl.zxmtrlmode = ''
  1261. If IsNull(arg_s_mtrl.unit_buy) Then arg_s_mtrl.unit_buy = ''
  1262. If IsNull(arg_s_mtrl.rate_buy) Then arg_s_mtrl.rate_buy = 0
  1263. If IsNull(arg_s_mtrl.unit_scll) Then arg_s_mtrl.unit_scll = ''
  1264. If IsNull(arg_s_mtrl.rate_scll) Then arg_s_mtrl.rate_scll = 0
  1265. If IsNull(arg_s_mtrl.unit_sale) Then arg_s_mtrl.unit_sale = ''
  1266. If IsNull(arg_s_mtrl.rate_sale) Then arg_s_mtrl.rate_sale = 0
  1267. If IsNull(arg_s_mtrl.orderdays) Then arg_s_mtrl.orderdays = 0
  1268. If IsNull(arg_s_mtrl.buydays) Then arg_s_mtrl.buydays = 0
  1269. If IsNull(arg_s_mtrl.wfjgdays) Then arg_s_mtrl.wfjgdays = 0
  1270. If IsNull(arg_s_mtrl.minbuyqty) Then arg_s_mtrl.minbuyqty = 0
  1271. If IsNull(arg_s_mtrl.aheaddays) Then arg_s_mtrl.aheaddays = 0
  1272. If IsNull(arg_s_mtrl.ifselforder) Then arg_s_mtrl.ifselforder = 0
  1273. If IsNull(arg_s_mtrl.mprice) Then arg_s_mtrl.mprice = 0
  1274. If IsNull(arg_s_mtrl.mtrlorigin) Then arg_s_mtrl.mtrlorigin = 0
  1275. If IsNull(arg_s_mtrl.mtrlkind) Then arg_s_mtrl.mtrlkind = 0
  1276. If IsNull(arg_s_mtrl.lspacklimit) Then arg_s_mtrl.lspacklimit = 0
  1277. If IsNull(arg_s_mtrl.maxqty) Then arg_s_mtrl.maxqty = 0
  1278. If IsNull(arg_s_mtrl.minqty) Then arg_s_mtrl.minqty = 0
  1279. If IsNull(arg_s_mtrl.isuse) Then arg_s_mtrl.isuse = 1
  1280. If IsNull(arg_s_mtrl.mtrltypeid) Then arg_s_mtrl.mtrltypeid = 0
  1281. If IsNull(arg_s_mtrl.barcode) Then arg_s_mtrl.barcode = ''
  1282. If IsNull(arg_s_mtrl.net_weight) Then arg_s_mtrl.net_weight = 0
  1283. If IsNull(arg_s_mtrl.gross_weight) Then arg_s_mtrl.gross_weight = 0
  1284. If IsNull(arg_s_mtrl.cubage) Then arg_s_mtrl.cubage = 0
  1285. If IsNull(arg_s_mtrl.mtrlengname) Then arg_s_mtrl.mtrlengname = ''
  1286. If IsNull(arg_s_mtrl.scllflag) Then arg_s_mtrl.scllflag = 0
  1287. If IsNull(arg_s_mtrl.dftwrkGrpid) Then arg_s_mtrl.dftwrkGrpid = 0
  1288. If IsNull(arg_s_mtrl.dftsptid) Then arg_s_mtrl.dftsptid = 0
  1289. If IsNull(arg_s_mtrl.scid) Then arg_s_mtrl.scid = 0
  1290. If IsNull(arg_s_mtrl.ifscid) Then arg_s_mtrl.ifscid = 0
  1291. If IsNull(arg_s_mtrl.mtrlprp) Then arg_s_mtrl.mtrlprp = 0
  1292. If IsNull(arg_s_mtrl.uprate) Then arg_s_mtrl.uprate = 0
  1293. If IsNull(arg_s_mtrl.upqty) Then arg_s_mtrl.upqty = 0
  1294. If IsNull(arg_s_mtrl.ordertype) Then arg_s_mtrl.ordertype = 0
  1295. If IsNull(arg_s_mtrl.statusflag) Then arg_s_mtrl.statusflag = 0
  1296. If IsNull(arg_s_mtrl.statustype) Then arg_s_mtrl.statustype = 0
  1297. If IsNull(arg_s_mtrl.woodcodeflag) Then arg_s_mtrl.woodcodeflag = 0
  1298. If IsNull(arg_s_mtrl.woodcodetype) Then arg_s_mtrl.woodcodetype = 0
  1299. If IsNull(arg_s_mtrl.pcodeflag) Then arg_s_mtrl.pcodeflag = 0
  1300. If IsNull(arg_s_mtrl.pcodetype) Then arg_s_mtrl.pcodetype = 0
  1301. If IsNull(arg_s_mtrl.mtrlarea) Then arg_s_mtrl.mtrlarea = 0
  1302. If IsNull(arg_s_mtrl.mtrlarea1) Then arg_s_mtrl.mtrlarea1 = 0
  1303. If IsNull(arg_s_mtrl.mtrlarea2) Then arg_s_mtrl.mtrlarea2 = 0
  1304. If IsNull(arg_s_mtrl.configcode) Then arg_s_mtrl.configcode = ''
  1305. If IsNull(arg_s_mtrl.configname) Then arg_s_mtrl.configname = ''
  1306. If IsNull(arg_s_mtrl.ifpack) Then arg_s_mtrl.ifpack = 0
  1307. If IsNull(arg_s_mtrl.ifpackpro) Then arg_s_mtrl.ifpackpro = 0
  1308. If IsNull(arg_s_mtrl.autoinstall) Then arg_s_mtrl.autoinstall = 0
  1309. If IsNull(arg_s_mtrl.iflimitprice) Then arg_s_mtrl.iflimitprice = 0
  1310. If IsNull(arg_s_mtrl.mtrlcolor) Then arg_s_mtrl.mtrlcolor = ''
  1311. If IsNull(arg_s_mtrl.configcodetype) Then arg_s_mtrl.configcodetype = 0
  1312. If IsNull(arg_s_mtrl.ifautodd) Then arg_s_mtrl.ifautodd = 0
  1313. If IsNull(arg_s_mtrl.iflljg) Then arg_s_mtrl.iflljg = 0
  1314. If IsNull(arg_s_mtrl.ifunit) Then arg_s_mtrl.ifunit = 0
  1315. If IsNull(arg_s_mtrl.ifpackpz) Then arg_s_mtrl.ifpackpz = 0
  1316. If IsNull(arg_s_mtrl.ifpacktype) Then arg_s_mtrl.ifpacktype = 0
  1317. If IsNull(arg_s_mtrl.scllrate) Then arg_s_mtrl.scllrate = 0
  1318. If IsNull(arg_s_mtrl.cmpqty) Then arg_s_mtrl.cmpqty = 1
  1319. If IsNull(arg_s_mtrl.usermtrlmode) Then arg_s_mtrl.usermtrlmode = ''
  1320. If IsNull(arg_s_mtrl.storagetype) Then arg_s_mtrl.storagetype = 0
  1321. If IsNull(arg_s_mtrl.ifmtrlcuscode) Then arg_s_mtrl.ifmtrlcuscode = 0
  1322. If IsNull(arg_s_mtrl.mrptype) Then arg_s_mtrl.mrptype = 0
  1323. If IsNull(arg_s_mtrl.mrparg) Then arg_s_mtrl.mrparg = 0
  1324. If IsNull(arg_s_mtrl.updownprice) Then arg_s_mtrl.updownprice = 0
  1325. If IsNull(arg_s_mtrl.outtype) Then arg_s_mtrl.outtype = 0
  1326. If IsNull(arg_s_mtrl.ifpricepack) Then arg_s_mtrl.ifpricepack = 0
  1327. If IsNull(arg_s_mtrl.gydscrp) Then arg_s_mtrl.gydscrp = ''
  1328. If IsNull(arg_s_mtrl.downrate) Then arg_s_mtrl.downrate = 0
  1329. If IsNull(arg_s_mtrl.ifcustom) Then arg_s_mtrl.ifcustom = 0
  1330. If IsNull(arg_s_mtrl.buyunit) Then arg_s_mtrl.buyunit = 0
  1331. If IsNull(arg_s_mtrl.wfjgunit) Then arg_s_mtrl.wfjgunit = 0
  1332. If IsNull(arg_s_mtrl.scllunit) Then arg_s_mtrl.scllunit = 0
  1333. If IsNull(arg_s_mtrl.saleunit) Then arg_s_mtrl.saleunit = 0
  1334. If IsNull(arg_s_mtrl.buydec) Then arg_s_mtrl.buydec = 5
  1335. If IsNull(arg_s_mtrl.wfjgdec) Then arg_s_mtrl.wfjgdec = 5
  1336. If IsNull(arg_s_mtrl.sclldec) Then arg_s_mtrl.sclldec = 5
  1337. If IsNull(arg_s_mtrl.saledec) Then arg_s_mtrl.saledec = 5
  1338. If IsNull(arg_s_mtrl.issuliao) Then arg_s_mtrl.issuliao = 0
  1339. If IsNull(arg_s_mtrl.period) Then arg_s_mtrl.period = 0
  1340. If IsNull(arg_s_mtrl.skmtrlid) Then arg_s_mtrl.skmtrlid = 0
  1341. If IsNull(arg_s_mtrl.ifenough) Then arg_s_mtrl.ifenough = 0
  1342. If IsNull(arg_s_mtrl.capacity) Then arg_s_mtrl.capacity = 0
  1343. If IsNull(arg_s_mtrl.expday) Then arg_s_mtrl.expday = 0
  1344. If IsNull(arg_s_mtrl.capaparm) Then arg_s_mtrl.capaparm = 1
  1345. If IsNull(arg_s_mtrl.sctaskqty) Then arg_s_mtrl.sctaskqty = 0
  1346. If IsNull(arg_s_mtrl.minarg) Then arg_s_mtrl.minarg = 0
  1347. If IsNull(arg_s_mtrl.maxarg) Then arg_s_mtrl.maxarg = 0
  1348. If IsNull(arg_s_mtrl.status_check) Then arg_s_mtrl.status_check = 0
  1349. If IsNull(arg_s_mtrl.woodcode_check) Then arg_s_mtrl.woodcode_check = 0
  1350. If IsNull(arg_s_mtrl.pcode_check) Then arg_s_mtrl.pcode_check = 0
  1351. If IsNull(arg_s_mtrl.maxdays) Then arg_s_mtrl.maxdays = 0
  1352. If IsNull(arg_s_mtrl.mindays) Then arg_s_mtrl.mindays = 0
  1353. If IsNull(arg_s_mtrl.ifmrppackpf) Then arg_s_mtrl.ifmrppackpf = 0
  1354. If IsNull(arg_s_mtrl.maxzjday) Then arg_s_mtrl.maxzjday = 0
  1355. If IsNull(arg_s_mtrl.eoq) Then arg_s_mtrl.eoq = 0
  1356. If IsNull(arg_s_mtrl.splitrate) Then arg_s_mtrl.splitrate = 0
  1357. If IsNull(arg_s_mtrl.mrp_unit) Then arg_s_mtrl.mrp_unit = 0
  1358. If IsNull(arg_s_mtrl.rebuytype) Then arg_s_mtrl.rebuytype = 0
  1359. If IsNull(arg_s_mtrl.rebuylot) Then arg_s_mtrl.rebuylot = 0
  1360. If IsNull(arg_s_mtrl.ifsendlot) Then arg_s_mtrl.ifsendlot = 0
  1361. If IsNull(arg_s_mtrl.upddrate) Then arg_s_mtrl.upddrate = 0
  1362. If IsNull(arg_s_mtrl.upddqty) Then arg_s_mtrl.upddqty = 0
  1363. If IsNull(arg_s_mtrl.upsalerate) Then arg_s_mtrl.upsalerate = 0
  1364. If IsNull(arg_s_mtrl.upsaleqty) Then arg_s_mtrl.upsaleqty = 0
  1365. If IsNull(arg_s_mtrl.status_config) Then arg_s_mtrl.status_config = ''
  1366. If IsNull(arg_s_mtrl.woodcode_config) Then arg_s_mtrl.woodcode_config = ''
  1367. If IsNull(arg_s_mtrl.pcode_config) Then arg_s_mtrl.pcode_config = ''
  1368. If IsNull(arg_s_mtrl.pricepztype) Then arg_s_mtrl.pricepztype = 0
  1369. If IsNull(arg_s_mtrl.useday) Then arg_s_mtrl.useday = 0
  1370. If arg_s_mtrl.rebuytype <> 2 Then arg_s_mtrl.rebuylot = 0
  1371. If IsNull(arg_s_mtrl.ifusedeliqty) Then arg_s_mtrl.ifusedeliqty = 0
  1372. If IsNull(arg_s_mtrl.equiptype) Then arg_s_mtrl.equiptype = 0
  1373. If IsNull(arg_s_mtrl.ifpackpro2) Then arg_s_mtrl.ifpackpro2 = 0
  1374. If IsNull(arg_s_mtrl.ifkl) Then arg_s_mtrl.ifkl = 0
  1375. If IsNull(arg_s_mtrl.ifturn) Then arg_s_mtrl.ifturn = 0
  1376. If IsNull(arg_s_mtrl.iffp) Then arg_s_mtrl.iffp = 0
  1377. If IsNull(arg_s_mtrl.scllqty) Then arg_s_mtrl.scllqty = 0
  1378. If IsNull(arg_s_mtrl.if_hourpay) Then arg_s_mtrl.if_hourpay = 0
  1379. If IsNull(arg_s_mtrl.ifmrp) Then arg_s_mtrl.ifmrp = 1
  1380. If IsNull(arg_s_mtrl.if_inherit) Then arg_s_mtrl.if_inherit = 0
  1381. If arg_s_mtrl.statusflag <> 4 And arg_s_mtrl.statusflag <> 5 And arg_s_mtrl.statusflag <> 1 Or arg_s_mtrl.statustype <= 0 Then arg_s_mtrl.status_config = ''
  1382. If arg_s_mtrl.woodcodeflag <> 4 And arg_s_mtrl.woodcodeflag <> 5 And arg_s_mtrl.woodcodeflag <> 1 Or arg_s_mtrl.woodcodetype <= 0 Then arg_s_mtrl.woodcode_config = ''
  1383. If arg_s_mtrl.pcodeflag <> 4 And arg_s_mtrl.pcodeflag <> 5 And arg_s_mtrl.pcodeflag <> 1 Or arg_s_mtrl.pcodetype <= 0 Then arg_s_mtrl.pcode_config = ''
  1384. If arg_s_mtrl.statusflag <> 4 And arg_s_mtrl.statusflag <> 5 And arg_s_mtrl.statusflag <> 1 Then arg_s_mtrl.status_spc = 0
  1385. If arg_s_mtrl.woodcodeflag <> 4 And arg_s_mtrl.woodcodeflag <> 5 And arg_s_mtrl.woodcodeflag <> 1 Then arg_s_mtrl.woodcode_spc = 0
  1386. If arg_s_mtrl.pcodeflag <> 4 And arg_s_mtrl.pcodeflag <> 5 And arg_s_mtrl.pcodeflag <> 1 Then arg_s_mtrl.pcode_spc = 0
  1387. If IsNull(arg_s_mtrl.status_spc) Then arg_s_mtrl.status_spc = 0
  1388. If IsNull(arg_s_mtrl.woodcode_spc) Then arg_s_mtrl.woodcode_spc = 0
  1389. If IsNull(arg_s_mtrl.pcode_spc) Then arg_s_mtrl.pcode_spc = 0
  1390. If arg_s_mtrl.ifkl = 0 Then arg_s_mtrl.ifturn = 0
  1391. If IsNull(arg_s_mtrl.groupstr) Then arg_s_mtrl.groupstr = ''
  1392. If IsNull(arg_s_mtrl.groupday) Then arg_s_mtrl.groupday = 0
  1393. If IsNull(arg_s_mtrl.aps_capacity_type) Then arg_s_mtrl.aps_capacity_type = ''
  1394. If IsNull(arg_s_mtrl.scllplan_mode) Then arg_s_mtrl.scllplan_mode = 0
  1395. If IsNull(arg_s_mtrl.ifcheck) Then arg_s_mtrl.ifcheck = 0
  1396. If IsNull(arg_s_mtrl.checkrate) Then arg_s_mtrl.checkrate = 0
  1397. If IsNull(arg_s_mtrl.chkpassrate) Then arg_s_mtrl.chkpassrate = 0
  1398. If IsNull(arg_s_mtrl.dftcusid) Then arg_s_mtrl.dftcusid = 0
  1399. If IsNull(arg_s_mtrl.sendtype) Then arg_s_mtrl.sendtype = 0
  1400. If IsNull(arg_s_mtrl.mb_mtrlid) Then arg_s_mtrl.mb_mtrlid = 0
  1401. If IsNull(arg_s_mtrl.buy_ceiling) Then arg_s_mtrl.buy_ceiling = 0
  1402. If IsNull(arg_s_mtrl.scll_ceiling) Then arg_s_mtrl.scll_ceiling = 0
  1403. If IsNull(arg_s_mtrl.wfjg_ceiling) Then arg_s_mtrl.wfjg_ceiling = 0
  1404. If IsNull(arg_s_mtrl.sale_ceiling) Then arg_s_mtrl.sale_ceiling = 0
  1405. If IsNull(arg_s_mtrl.material) Then arg_s_mtrl.material = ''
  1406. If IsNull(arg_s_mtrl.adddec) Then arg_s_mtrl.adddec = 0
  1407. If IsNull(arg_s_mtrl.ifbarcodefp) Then arg_s_mtrl.ifbarcodefp = 0
  1408. If IsNull(arg_s_mtrl.stoppqty) Then arg_s_mtrl.stoppqty = 0
  1409. If IsNull(arg_s_mtrl.buy_autoday) Then arg_s_mtrl.buy_autoday = 0
  1410. If IsNull(arg_s_mtrl.upbuyrate) Then arg_s_mtrl.upbuyrate = 0
  1411. If IsNull(arg_s_mtrl.upbuyqty) Then arg_s_mtrl.upbuyqty = 0
  1412. If IsNull(arg_s_mtrl.ifrebuypack) Then arg_s_mtrl.ifrebuypack = 0
  1413. If IsNull(arg_s_mtrl.protype) Then arg_s_mtrl.protype = 0
  1414. If IsNull(arg_s_mtrl.buydays_bx) Then arg_s_mtrl.buydays_bx = 0
  1415. If IsNull(arg_s_mtrl.wfjgdays_bx) Then arg_s_mtrl.wfjgdays_bx = 0
  1416. If IsNull(arg_s_mtrl.multqty) Then arg_s_mtrl.multqty = 0
  1417. If IsNull(arg_s_mtrl.buyer) Then arg_s_mtrl.buyer = ''
  1418. If IsNull(arg_s_mtrl.multtype) Then arg_s_mtrl.multtype = 0
  1419. If IsNull(arg_s_mtrl.bantype) Then arg_s_mtrl.bantype = 0
  1420. If IsNull(arg_s_mtrl.midu) Then arg_s_mtrl.midu = 0
  1421. If IsNull(arg_s_mtrl.BalcCmplNotUpdate) Then arg_s_mtrl.BalcCmplNotUpdate = 0
  1422. If arg_s_mtrl.ifpack = 1 And arg_s_mtrl.mtrlorigin <> 2 And arg_s_mtrl.ifselforder = 0 Then
  1423. rslt = 0
  1424. arg_msg = '非采购包件,生产属性不能设无,请重新选择'
  1425. Goto ext
  1426. End If
  1427. If arg_s_mtrl.ifpack <> 0 And arg_s_mtrl.ifmrp = 0 Then
  1428. rslt = 0
  1429. arg_msg = '包件必须使用参加物料运算,请重新选择'
  1430. Goto ext
  1431. End If
  1432. If arg_s_mtrl.ifpackpro = 1 And uo_option_inout_type <> 0 And arg_s_mtrl.outtype = 0 Then
  1433. rslt = 0
  1434. arg_msg = '系统选项设置了包件出仓或条码出仓,包件产品必须设包件出仓或条码出仓,请检查'
  1435. Goto ext
  1436. End If
  1437. Int li_sonflag
  1438. Select sonflag
  1439. Into :li_sonflag
  1440. From u_mtrltype
  1441. Where mtrltypeid = :arg_s_mtrl.mtrltypeid;
  1442. If sqlca.SQLCode <> 0 Then
  1443. rslt = 0
  1444. arg_msg = '查询物料类别是否最下级失败,'+sqlca.SQLErrText
  1445. Goto ext
  1446. End If
  1447. If li_sonflag = 0 Then
  1448. rslt = 0
  1449. arg_msg = '所选的物料类别不是最下级物料类别,请重新选择'
  1450. Goto ext
  1451. End If
  1452. If uo_option_use_suliao = 1 Then
  1453. If arg_s_mtrl.issuliao = 1 And arg_s_mtrl.skmtrlid = 0 Then
  1454. arg_msg = '塑料件必须先指定对应水口料的物料类别'
  1455. rslt = 0
  1456. Goto ext
  1457. End If
  1458. If arg_s_mtrl.issuliao = 1 And arg_s_mtrl.net_weight = 0 Then
  1459. arg_msg = '塑料件必须指定净重'
  1460. rslt = 0
  1461. Goto ext
  1462. End If
  1463. End If
  1464. If arg_s_mtrl.mtrlid <> 0 Then
  1465. Select issuliao Into :li_issuliao_ori
  1466. From u_mtrldef
  1467. Where mtrlid = :arg_s_mtrl.mtrlid;
  1468. If sqlca.SQLCode <> 0 Then
  1469. arg_msg = '查询物料塑料属性失败,'+sqlca.SQLErrText
  1470. rslt = 0
  1471. Goto ext
  1472. End If
  1473. If li_issuliao_ori = 1 And arg_s_mtrl.issuliao <> 1 Then
  1474. Select sk_mtrlid Into :ll_sk_mtrlid
  1475. From u_mtrldef_sl
  1476. Where mtrlid = :arg_s_mtrl.mtrlid;
  1477. If sqlca.SQLCode <> 0 Then
  1478. ll_sk_mtrlid = 0
  1479. End If
  1480. If ll_sk_mtrlid > 0 Then
  1481. Update u_mtrldef_sl
  1482. Set sk_mtrlid = 0,
  1483. sk_mtrltypeid = 0,
  1484. sk_mtrlname = ''
  1485. Where mtrlid = :arg_s_mtrl.mtrlid;
  1486. If sqlca.SQLCode <> 0 Then
  1487. rslt = 0
  1488. arg_msg = '清除物料相关水口料信息失败'
  1489. Goto ext
  1490. End If
  1491. End If
  1492. End If
  1493. If li_issuliao_ori = 2 And arg_s_mtrl.issuliao <> 2 Then
  1494. Select count(*) Into :cnt
  1495. From u_mtrldef_sl
  1496. Where sk_mtrlid = :arg_s_mtrl.mtrlid;
  1497. If sqlca.SQLCode <> 0 Then
  1498. rslt = 0
  1499. arg_msg = '查询水口料是否已被使用失败,'+sqlca.SQLErrText
  1500. Goto ext
  1501. End If
  1502. If cnt > 0 Then
  1503. arg_msg = "该水口料已经使用于物料资料,不可以更改属性!"
  1504. rslt = 0
  1505. Goto ext
  1506. End If
  1507. End If
  1508. End If
  1509. If arg_s_mtrl.mtrlcode = '' Then
  1510. arg_msg = '请输入物料编码!'
  1511. rslt = 0
  1512. Goto ext
  1513. End If
  1514. If arg_s_mtrl.mtrlname = '' Then
  1515. arg_msg = '请输入物料名称!'
  1516. rslt = 0
  1517. Goto ext
  1518. End If
  1519. If arg_s_mtrl.mtrltypeid = 0 Then
  1520. arg_msg = '请选择物料类别!'
  1521. rslt = 0
  1522. Goto ext
  1523. End If
  1524. Select mtrltype,handtype
  1525. Into :ls_mtrltype,
  1526. :ls_handtype
  1527. From u_mtrltype
  1528. Where mtrltypeid = :arg_s_mtrl.mtrltypeid;
  1529. If sqlca.SQLCode <> 0 Then
  1530. arg_msg = '查询物料类别失败,'+sqlca.SQLErrText
  1531. rslt = 0
  1532. Goto ext
  1533. End If
  1534. If arg_s_mtrl.mtrlorigin < 0 Then
  1535. arg_msg = '请选择物料来源'
  1536. rslt = 0
  1537. Goto ext
  1538. End If
  1539. If arg_s_mtrl.mtrlorigin = 2 Then arg_s_mtrl.ifselforder = 0
  1540. If uo_option_use_machining_ll = 0 And arg_s_mtrl.mtrlorigin = 6 Then
  1541. arg_msg = '系统选项设为不启用来料加工,不能建立来料加工的物料'
  1542. rslt = 0
  1543. Goto ext
  1544. End If
  1545. If arg_s_mtrl.iflljg = 1 And arg_s_mtrl.mtrlorigin <> 0 Then
  1546. arg_msg = '来源不是自制[0]的物料,不能设为来料自制,请检查'
  1547. rslt = 0
  1548. Goto ext
  1549. End If
  1550. If arg_s_mtrl.mtrlid > 0 Then
  1551. Select ifunit Into :li_ifunit
  1552. From u_mtrldef
  1553. Where mtrlid = :arg_s_mtrl.mtrlid;
  1554. If sqlca.SQLCode <> 0 Then
  1555. rslt = 0
  1556. arg_msg = '查询物料是否使用库存双数量失败'+sqlca.SQLErrText
  1557. Goto ext
  1558. End If
  1559. If li_ifunit <> arg_s_mtrl.ifunit Then
  1560. Select count(*) Into :cnt
  1561. From u_mtrlware
  1562. Where mtrlid = :arg_s_mtrl.mtrlid
  1563. And noallocqty <> 0;
  1564. If sqlca.SQLCode <> 0 Then
  1565. rslt = 0
  1566. arg_msg = '查询物料相关库存信息失败'+sqlca.SQLErrText
  1567. Goto ext
  1568. End If
  1569. If cnt > 0 Then
  1570. rslt = 0
  1571. arg_msg = '变更库存双数量核算属性前,必须先把物料相关的库存数清零,请检查'
  1572. Goto ext
  1573. End If
  1574. End If
  1575. End If
  1576. If arg_s_mtrl.ifunit = 1 And (arg_s_mtrl.unit_buy = '' Or arg_s_mtrl.rate_buy = 0 ) Then
  1577. arg_msg = '使用库存双数量核算必须同时设定辅单位1及其转换率'
  1578. rslt = 0
  1579. Goto ext
  1580. End If
  1581. Choose Case arg_s_mtrl.mtrlorigin
  1582. Case 6
  1583. If arg_s_mtrl.mtrlprp = 1 Then
  1584. arg_msg = '来源为来料加工的物料,物料属性不能设置为半产品,请重新选择物料属性'
  1585. rslt = 0
  1586. Goto ext
  1587. End If
  1588. If arg_s_mtrl.mtrlprp = 0 Then
  1589. arg_msg = '来源为来料加工的物料,物料属性不能设置为成品[0],请重新选择物料属性'
  1590. rslt = 0
  1591. Goto ext
  1592. End If
  1593. If arg_s_mtrl.ifselforder <> 0 Then
  1594. arg_msg = '来源为来料加工的物料,生产属性只能设置为无[0],请重新选择生产属性'
  1595. rslt = 0
  1596. Goto ext
  1597. End If
  1598. Case 2
  1599. If arg_s_mtrl.ifselforder <> 0 Then
  1600. arg_msg = '来源为采购[2]的物料,生产属性只能设置为无[0],请重新选择生产属性'
  1601. rslt = 0
  1602. Goto ext
  1603. End If
  1604. Case 3
  1605. If arg_s_mtrl.ifselforder <> 0 Then
  1606. If arg_s_mtrl.dftwrkGrpid = 0 Then
  1607. arg_msg = '请选择生产车间'
  1608. rslt = 0
  1609. Goto ext
  1610. End If
  1611. Select scid Into :ll_scid_wrkGrpid
  1612. From u_sc_wkp
  1613. Where wrkGrpid = :arg_s_mtrl.dftwrkGrpid;
  1614. If sqlca.SQLCode <> 0 Then
  1615. arg_msg = '查询生产车间所属分部失败'
  1616. rslt = 0
  1617. Goto ext
  1618. End If
  1619. If ll_scid_wrkGrpid <> arg_s_mtrl.scid Then
  1620. arg_msg = '生产车间所属分部与生产分部不相符,请检查'
  1621. rslt = 0
  1622. Goto ext
  1623. End If
  1624. End If
  1625. Case 0
  1626. If arg_s_mtrl.dftwrkGrpid = 0 Then
  1627. arg_msg = '请选择生产车间'
  1628. rslt = 0
  1629. Goto ext
  1630. End If
  1631. Select scid Into :ll_scid_wrkGrpid
  1632. From u_sc_wkp
  1633. Where wrkGrpid = :arg_s_mtrl.dftwrkGrpid;
  1634. If sqlca.SQLCode <> 0 Then
  1635. arg_msg = '查询生产车间所属分部失败'
  1636. rslt = 0
  1637. Goto ext
  1638. End If
  1639. If ll_scid_wrkGrpid <> arg_s_mtrl.scid Then
  1640. arg_msg = '生产车间所属分部与生产分部不相符,请检查'
  1641. rslt = 0
  1642. Goto ext
  1643. End If
  1644. End Choose
  1645. If arg_s_mtrl.mtrlprp < 0 Then
  1646. arg_msg = '请选择物料属性'
  1647. rslt = 0
  1648. Goto ext
  1649. End If
  1650. Choose Case arg_s_mtrl.mtrlprp
  1651. Case 0
  1652. If arg_s_mtrl.ifpackpro <> 0 Then
  1653. If arg_s_mtrl.ifpackpz = 1 Then
  1654. arg_msg = '下级包件可使用上级包件产品配置属性只能设在包件上,不能设在全包件成品上,请检查'
  1655. rslt = 0
  1656. Goto ext
  1657. End If
  1658. If arg_s_mtrl.statusflag = 2 And (arg_s_mtrl.ifpackpro <> 3 And arg_s_mtrl.ifpackpro <> 4) Then
  1659. arg_msg = '包件产品'+uo_option_change_status+'类型只能使用自由选填或严格选择或不使用,请检查'
  1660. rslt = 0
  1661. Goto ext
  1662. End If
  1663. if arg_s_mtrl.ifpackpro = 5 and not (arg_s_mtrl.statusflag = 0 or arg_s_mtrl.statusflag = 1) then
  1664. arg_msg = '全订制板式家具包件产品'+uo_option_change_status+'类型只能使用自由选填或严格选择,请检查'
  1665. rslt = 0
  1666. Goto ext
  1667. end if
  1668. if arg_s_mtrl.ifpackpro = 5 and not (arg_s_mtrl.woodcodeflag = 0 or arg_s_mtrl.woodcodeflag = 1) then
  1669. arg_msg = '全订制板式家具包件产品'+uo_option_change_woodcode+'类型只能使用自由选填或严格选择,请检查'
  1670. rslt = 0
  1671. Goto ext
  1672. end if
  1673. // IF arg_s_mtrl.statusflag = 4 THEN
  1674. // arg_msg = '包件产品'+uo_option_change_status+'类型只能使用自由选填或严格选择或不使用,请检查'
  1675. // rslt = 0
  1676. // GOTO ext
  1677. // END IF
  1678. // IF arg_s_mtrl.woodcodeflag = 4 THEN
  1679. // arg_msg = '包件产品'+uo_option_change_woodcode+'类型只能使用自由选填或严格选择或不使用,请检查'
  1680. // rslt = 0
  1681. // GOTO ext
  1682. // END IF
  1683. //
  1684. // IF arg_s_mtrl.pcodeflag = 4 THEN
  1685. // arg_msg = '包件产品'+uo_option_change_pcode+'类型只能使用自由选填或严格选择或不使用,请检查'
  1686. // rslt = 0
  1687. // GOTO ext
  1688. // END IF
  1689. Else
  1690. // IF arg_s_mtrl.ifmrppackpf = 1 THEN
  1691. // arg_msg = '物料不是包件产品,不能使用包件产品MRP运算考虑包件类型清单属性,请检查'
  1692. // rslt = 0
  1693. // GOTO ext
  1694. // END IF
  1695. End If
  1696. Case Else
  1697. If arg_s_mtrl.ifpackpro <> 0 Then
  1698. arg_msg = '物料属性不为成品,包件产品分类不能设置为包件成品,请检查'
  1699. rslt = 0
  1700. Goto ext
  1701. End If
  1702. If arg_s_mtrl.autoinstall = 1 Then
  1703. arg_msg = '物料属性不为成品,包件配置不能设置为自动组装,请检查'
  1704. rslt = 0
  1705. Goto ext
  1706. End If
  1707. End Choose
  1708. If arg_s_mtrl.statusflag = 2 Then arg_s_mtrl.capacity = 0
  1709. If arg_s_mtrl.ifpackpro <> 0 And arg_s_mtrl.ifpack <> 0 Then
  1710. rslt = 0
  1711. arg_msg = '物料不能同时设为全包件产品及包件,请检查'
  1712. Goto ext
  1713. End If
  1714. //IF arg_s_mtrl.ifpackpro = 1 And arg_s_mtrl.ifpackpro2 = 1 THEN
  1715. // arg_msg = '包件产品与组合配置包件产品不能同时设置,请检查'
  1716. // rslt = 0
  1717. // GOTO ext
  1718. //END IF
  1719. If arg_s_mtrl.ifpackpro = 3 And arg_s_mtrl.statusflag <> 2 Then
  1720. arg_msg = '组合配置包件产品必须使用组合配置,请检查'
  1721. rslt = 0
  1722. Goto ext
  1723. End If
  1724. //IF arg_s_mtrl.ifpackpro = 0 And arg_s_mtrl.ifpricepack = 1 THEN
  1725. // arg_msg = '价格表按包件产品属性只能设在包件产品上,请检查'
  1726. // rslt = 0
  1727. // GOTO ext
  1728. //END IF
  1729. If arg_s_mtrl.ifpackpro = 3 And arg_s_mtrl.ordertype <> 0 Then
  1730. rslt = 0
  1731. arg_msg = '组合配置散排散进包件产品只能设置“指令单合并”'
  1732. Goto ext
  1733. End If
  1734. If arg_s_mtrl.ifpackpro = 2 And arg_s_mtrl.ordertype <> 1 Then
  1735. rslt = 0
  1736. arg_msg = '个性包件产品只能设置“指令单分离”'
  1737. Goto ext
  1738. End If
  1739. If arg_s_mtrl.ifpack = 0 And arg_s_mtrl.ifpackpz = 1 Then
  1740. rslt = 0
  1741. arg_msg = '下级包件可使用上级包件产品配置属性只能设在包件上,请检查'
  1742. Goto ext
  1743. End If
  1744. If arg_s_mtrl.ifmtrlcuscode = 0 And (arg_s_mtrl.ifpackpro = 2 Or arg_s_mtrl.ifpackpro = 4) Then
  1745. rslt = 0
  1746. arg_msg = '个性包件产品和组合配置整排散进包件产品必须使用产品批号,请检查'
  1747. Goto ext
  1748. End If
  1749. If arg_s_mtrl.unit = '' Then
  1750. arg_msg = '请输入物料计量单位!'
  1751. rslt = 0
  1752. Goto ext
  1753. End If
  1754. If arg_s_mtrl.unit_buy <> '' And arg_s_mtrl.rate_buy <= 0 Then
  1755. arg_msg = '不合理的转换率1'
  1756. rslt = 0
  1757. Goto ext
  1758. End If
  1759. If arg_s_mtrl.unit_buy = '' And arg_s_mtrl.rate_buy <> 0 Then
  1760. arg_msg = '必须输入辅单位1才能设定转换率1'
  1761. rslt = 0
  1762. Goto ext
  1763. End If
  1764. If arg_s_mtrl.unit_scll <> '' And arg_s_mtrl.rate_scll <= 0 Then
  1765. arg_msg = '不合理的转换率2'
  1766. rslt = 0
  1767. Goto ext
  1768. End If
  1769. If arg_s_mtrl.unit_scll = '' And arg_s_mtrl.rate_scll <> 0 Then
  1770. arg_msg = '必须输入辅单位2才能设定转换率2'
  1771. rslt = 0
  1772. Goto ext
  1773. End If
  1774. If arg_s_mtrl.unit_sale <> '' And arg_s_mtrl.rate_sale <= 0 Then
  1775. arg_msg = '不合理的转换率3'
  1776. rslt = 0
  1777. Goto ext
  1778. End If
  1779. If arg_s_mtrl.unit_sale = '' And arg_s_mtrl.rate_sale <> 0 Then
  1780. arg_msg = '必须输入辅单位3才能设定转换率3'
  1781. rslt = 0
  1782. Goto ext
  1783. End If
  1784. string ls_pzname
  1785. long ll_pzid
  1786. if arg_s_mtrl.statusflag = 1 or arg_s_mtrl.statusflag = 4 or arg_s_mtrl.statusflag = 5 then
  1787. if arg_s_mtrl.status_spc = 1 then //自动查找或新建分类
  1788. ll_pzid = 0
  1789. ls_pzname = trim(arg_s_mtrl.mtrlcode)+' '+uo_option_change_status
  1790. if uof_get_pztype(arg_s_mtrl.statusflag, ls_pzname, ll_pzid, arg_msg) = 0 then
  1791. arg_msg = uo_option_change_status+',查找对应专用配置类型失败,'+arg_msg
  1792. rslt = 0
  1793. Goto ext
  1794. end if
  1795. arg_s_mtrl.statustype = ll_pzid
  1796. end if
  1797. end if
  1798. if arg_s_mtrl.woodcodeflag = 1 or arg_s_mtrl.woodcodeflag = 4 or arg_s_mtrl.woodcodeflag = 5 then
  1799. if arg_s_mtrl.woodcode_spc = 1 then //自动查找或新建分类
  1800. ll_pzid = 0
  1801. ls_pzname = trim(arg_s_mtrl.mtrlcode)+' '+uo_option_change_woodcode
  1802. if uof_get_pztype(arg_s_mtrl.woodcodeflag, ls_pzname, ll_pzid, arg_msg) = 0 then
  1803. arg_msg = uo_option_change_woodcode+',查找对应专用配置类型失败,'+arg_msg
  1804. rslt = 0
  1805. Goto ext
  1806. end if
  1807. arg_s_mtrl.woodcodetype = ll_pzid
  1808. end if
  1809. end if
  1810. if arg_s_mtrl.pcodeflag = 1 or arg_s_mtrl.pcodeflag = 4 or arg_s_mtrl.pcodeflag = 5 then
  1811. if arg_s_mtrl.pcode_spc = 1 then //自动查找或新建分类
  1812. ll_pzid = 0
  1813. ls_pzname = trim(arg_s_mtrl.mtrlcode)+' '+uo_option_change_pcode
  1814. if uof_get_pztype(arg_s_mtrl.pcodeflag, ls_pzname, ll_pzid, arg_msg) = 0 then
  1815. arg_msg = uo_option_change_pcode+',查找对应专用配置类型失败,'+arg_msg
  1816. rslt = 0
  1817. Goto ext
  1818. end if
  1819. arg_s_mtrl.pcodetype = ll_pzid
  1820. end if
  1821. end if
  1822. If arg_s_mtrl.statusflag = 1 And arg_s_mtrl.statustype = 0 Then
  1823. arg_msg = uo_option_change_status+' 类型为严格选择,必须选定一个待选类别'
  1824. rslt = 0
  1825. Goto ext
  1826. End If
  1827. If arg_s_mtrl.woodcodeflag = 1 And arg_s_mtrl.woodcodetype = 0 Then
  1828. arg_msg = uo_option_change_woodcode+' 类型为严格选择,必须选定一个待选类别'
  1829. rslt = 0
  1830. Goto ext
  1831. End If
  1832. If arg_s_mtrl.pcodeflag = 1 And arg_s_mtrl.pcodetype = 0 Then
  1833. arg_msg = uo_option_change_pcode+' 类型为严格选择,必须选定一个待选类别'
  1834. rslt = 0
  1835. Goto ext
  1836. End If
  1837. If (arg_s_mtrl.statusflag = 4 or arg_s_mtrl.statusflag = 5) And arg_s_mtrl.statustype = 0 Then
  1838. arg_msg = uo_option_change_status+' 类型为部件选配,必须选定一个待选类别'
  1839. rslt = 0
  1840. Goto ext
  1841. End If
  1842. If (arg_s_mtrl.woodcodeflag = 4 or arg_s_mtrl.woodcodeflag = 5) And arg_s_mtrl.woodcodetype = 0 Then
  1843. arg_msg = uo_option_change_woodcode+' 类型为部件选配,必须选定一个待选类别'
  1844. rslt = 0
  1845. Goto ext
  1846. End If
  1847. If (arg_s_mtrl.pcodeflag = 4 or arg_s_mtrl.pcodeflag = 5) And arg_s_mtrl.pcodetype = 0 Then
  1848. arg_msg = uo_option_change_pcode+' 类型为部件选配,必须选定一个待选类别'
  1849. rslt = 0
  1850. Goto ext
  1851. End If
  1852. If (arg_s_mtrl.statusflag <> 4 and arg_s_mtrl.statusflag <> 5) Then arg_s_mtrl.status_check = 0
  1853. If (arg_s_mtrl.woodcodeflag <> 4 and arg_s_mtrl.woodcodeflag <> 5) Then arg_s_mtrl.woodcode_check = 0
  1854. If (arg_s_mtrl.pcodeflag <> 4 and arg_s_mtrl.pcodeflag <> 5) Then arg_s_mtrl.pcode_check = 0
  1855. If arg_s_mtrl.buydec < 0 Then
  1856. arg_msg = '不合理的默认采购单位小数位数'
  1857. rslt = 0
  1858. Goto ext
  1859. End If
  1860. If arg_s_mtrl.wfjgdec < 0 Then
  1861. arg_msg = '不合理的默认外协单位小数位数'
  1862. rslt = 0
  1863. Goto ext
  1864. End If
  1865. If arg_s_mtrl.sclldec < 0 Then
  1866. arg_msg = '不合理的默认领料单位小数位数'
  1867. rslt = 0
  1868. Goto ext
  1869. End If
  1870. If arg_s_mtrl.saledec < 0 Then
  1871. arg_msg = '不合理的默认销售单位小数位数'
  1872. rslt = 0
  1873. Goto ext
  1874. End If
  1875. If arg_s_mtrl.cmpqty <= 0 Then
  1876. arg_msg = '不合理的物料清单基数'
  1877. rslt = 0
  1878. Goto ext
  1879. End If
  1880. If arg_s_mtrl.maxarg < 0 Then
  1881. arg_msg = '不合理的库存上限系数'
  1882. rslt = 0
  1883. Goto ext
  1884. End If
  1885. If arg_s_mtrl.minarg < 0 Then
  1886. arg_msg = '不合理的库存下限系数'
  1887. rslt = 0
  1888. Goto ext
  1889. End If
  1890. //If arg_s_mtrl.mrptype = 1 Then
  1891. // arg_s_mtrl.mrparg = 0
  1892. //End If
  1893. If arg_s_mtrl.mrparg < 0 Or arg_s_mtrl.mrparg > 10 Then
  1894. arg_msg = '不合理的物料运算精度,精度范围:0至10'
  1895. rslt = 0
  1896. Goto ext
  1897. End If
  1898. If arg_s_mtrl.capacity < 0 Then
  1899. arg_msg = '不合理的产能参数'
  1900. rslt = 0
  1901. Goto ext
  1902. End If
  1903. If arg_s_mtrl.expday < 0 Then
  1904. arg_msg = '不合理的经验生产周期'
  1905. rslt = 0
  1906. Goto ext
  1907. End If
  1908. If arg_s_mtrl.sctaskqty < 0 Then
  1909. arg_msg = '不合理的工序派工基数'
  1910. rslt = 0
  1911. Goto ext
  1912. End If
  1913. If arg_s_mtrl.maxzjday < 0 Then
  1914. arg_msg = '不合理的自制周期上限'
  1915. rslt = 0
  1916. Goto ext
  1917. End If
  1918. If arg_s_mtrl.eoq < 0 Then
  1919. arg_msg = '不合理的经济批量'
  1920. rslt = 0
  1921. Goto ext
  1922. End If
  1923. If arg_s_mtrl.splitrate < 0 Then
  1924. arg_msg = '不合理的分拆极限百分比'
  1925. rslt = 0
  1926. Goto ext
  1927. End If
  1928. If arg_s_mtrl.iffp = 1 And arg_s_mtrl.mtrlkind <> 0 Then
  1929. arg_msg = '使用库存分配,领料属性必须是严格按计划'
  1930. rslt = 0
  1931. Goto ext
  1932. End If
  1933. If arg_s_mtrl.scllrate < 0 Then
  1934. arg_msg = '不合理的超领比例'
  1935. rslt = 0
  1936. Goto ext
  1937. End If
  1938. If arg_s_mtrl.scllqty < 0 Then
  1939. arg_msg = '不合理的附加超领数量'
  1940. rslt = 0
  1941. Goto ext
  1942. End If
  1943. If arg_s_mtrl.adddec < 0 Then
  1944. arg_msg = '不合理的申购误差'
  1945. rslt = 0
  1946. Goto ext
  1947. End If
  1948. If Trim(arg_s_mtrl.barcode) <> '' Then
  1949. ls_barcode = Trim(arg_s_mtrl.barcode)
  1950. Select count(*)
  1951. Into :cnt
  1952. From u_mtrldef
  1953. Where barcode = :ls_barcode
  1954. And mtrlid <> :arg_s_mtrl.mtrlid;
  1955. If sqlca.SQLCode <> 0 Then
  1956. rslt = 0
  1957. arg_msg = '查询条码是否已被使用失败,'+sqlca.SQLErrText
  1958. Goto ext
  1959. End If
  1960. If cnt > 0 Then
  1961. rslt = 0
  1962. arg_msg = '条形码已被其他物料资料使用,请重新输入条形码'
  1963. Goto ext
  1964. End If
  1965. End If
  1966. String ls_simplename
  1967. If arg_s_mtrl.dftcusid > 0 Then
  1968. Select simplename
  1969. Into :ls_simplename
  1970. From u_cust
  1971. Where cusid = :arg_s_mtrl.dftcusid;
  1972. If sqlca.SQLCode <> 0 Then
  1973. rslt = 0
  1974. arg_msg = '查询默认客户的简称失败,'+sqlca.SQLErrText
  1975. Goto ext
  1976. End If
  1977. arg_s_mtrl.simplename = ls_simplename
  1978. End If
  1979. If arg_s_mtrl.ifbarcodefp = 1 And arg_s_mtrl.outtype <> 2 Then
  1980. rslt = 0
  1981. arg_msg = '使用库存条码指定分配订单必须同时使用条码进出仓'
  1982. Goto ext
  1983. End If
  1984. //如果状态是无效,检查有在进行的主计划,指令单,有采购未到货数,外协未到货数,则不允许设成将物料的状态设为无效,需提示只能设“待停产”状态
  1985. If arg_s_mtrl.mtrlid <> 0 And arg_s_mtrl.isuse = 0 Then
  1986. cnt = 0
  1987. Select count(*)
  1988. Into :cnt
  1989. From u_order_ml
  1990. Where mtrlid = :arg_s_mtrl.mtrlid
  1991. And status = 1;
  1992. If sqlca.SQLCode <> 0 Then cnt = 0
  1993. If cnt > 0 Then
  1994. rslt = 0
  1995. arg_msg = '物料有在进行的主生产计划或指令单,不能设为无效(停产),只能设为待停产'
  1996. Goto ext
  1997. End If
  1998. cnt = 0
  1999. Select count(*)
  2000. Into :cnt
  2001. From uv_materiel_willfinish_buytask
  2002. Where mtrlid = :arg_s_mtrl.mtrlid;
  2003. If sqlca.SQLCode <> 0 Then cnt = 0
  2004. If cnt > 0 Then
  2005. rslt = 0
  2006. arg_msg = '物料有有采购未到货数,不能设为无效(停产),只能设为待停产'
  2007. Goto ext
  2008. End If
  2009. cnt = 0
  2010. Select count(*)
  2011. Into :cnt
  2012. From uv_materiel_willfinish_wfjg
  2013. Where mtrlid = :arg_s_mtrl.mtrlid;
  2014. If sqlca.SQLCode <> 0 Then cnt = 0
  2015. If cnt > 0 Then
  2016. rslt = 0
  2017. arg_msg = '物料有有外协未到货数,不能设为无效(停产),只能设为待停产'
  2018. Goto ext
  2019. End If
  2020. End If
  2021. If arg_s_mtrl.mtrlid = 0 Then
  2022. ll_mtrlid = f_sys_scidentity(0,"u_mtrldef","mtrlid",arg_msg,True,id_sqlca)
  2023. If ll_mtrlid <= 0 Then
  2024. rslt = 0
  2025. Goto ext
  2026. End If
  2027. Insert Into u_mtrldef
  2028. (mtrlid,
  2029. mtrlcode,
  2030. mtrlname,
  2031. mtrltype,
  2032. mtrlsectype,
  2033. mtrlmode,
  2034. Mtrlorigin,
  2035. unit,
  2036. lspacklimit,
  2037. LMsaleprice,
  2038. lmbuyprice,
  2039. dscrp,
  2040. MaxQTY,
  2041. MinQTY,
  2042. isuse,
  2043. packqty,
  2044. prdpackcode,
  2045. opdate,
  2046. opemp,
  2047. mtrltypeid,
  2048. handtype,
  2049. barcode,
  2050. mtrlkind,
  2051. net_weight,
  2052. gross_weight,
  2053. cubage,
  2054. mtrlengname,
  2055. zxmtrlmode,
  2056. unit_scll,
  2057. unit_buy,
  2058. rate_buy,
  2059. rate_scll,
  2060. rate_sale,
  2061. unit_sale,
  2062. scllflag,
  2063. dftwrkGrpid,
  2064. orderdays,
  2065. buydays,
  2066. wfjgdays,
  2067. ifselforder,
  2068. minbuyqty,
  2069. aheaddays,
  2070. mprice,
  2071. dftsptid,
  2072. scid,
  2073. ifscid,
  2074. mtrlprp,
  2075. uprate,
  2076. upqty,
  2077. ordertype,
  2078. statusflag,
  2079. statustype,
  2080. woodcodeflag,
  2081. woodcodetype,
  2082. pcodeflag,
  2083. pcodetype,
  2084. mtrlarea,
  2085. mtrlarea1,
  2086. mtrlarea2,
  2087. configcode,
  2088. configname,
  2089. ifpack,
  2090. ifpackpro,
  2091. autoinstall,
  2092. iflimitprice,
  2093. mtrlcolor,
  2094. configcodetype,
  2095. ifautodd,
  2096. iflljg,
  2097. ifunit,
  2098. ifpackpz,
  2099. ifpacktype,
  2100. scllrate,
  2101. cmpqty,
  2102. usermtrlmode,
  2103. storagetype,
  2104. ifmtrlcuscode,
  2105. mrptype,
  2106. mrparg,
  2107. updownprice,
  2108. outtype,
  2109. ifpricepack,
  2110. gydscrp,
  2111. downrate,
  2112. ifcustom,
  2113. buyunit,
  2114. wfjgunit,
  2115. scllunit,
  2116. saleunit,
  2117. buydec,
  2118. wfjgdec,
  2119. sclldec,
  2120. saledec,
  2121. issuliao,
  2122. ifenough,
  2123. capacity,
  2124. expday,
  2125. capaparm,
  2126. sctaskqty,
  2127. minarg,
  2128. maxarg,
  2129. status_check,
  2130. woodcode_check,
  2131. pcode_check,
  2132. maxdays,
  2133. mindays,
  2134. ifmrppackpf,
  2135. maxzjday,
  2136. eoq,
  2137. splitrate,
  2138. mrp_unit,
  2139. rebuytype,
  2140. rebuylot,
  2141. ifsendlot,
  2142. upddrate,
  2143. upddqty,
  2144. upsalerate,
  2145. upsaleqty,
  2146. ifusedeliqty,
  2147. status_config,
  2148. woodcode_config,
  2149. pcode_config,
  2150. pricepztype,
  2151. useday,
  2152. equiptype,
  2153. ifpackpro2,
  2154. ifkl,
  2155. ifturn,
  2156. iffp,
  2157. scllqty,
  2158. piccode,
  2159. dftscllwkpid,
  2160. if_hourpay,
  2161. ifmrp,
  2162. if_inherit,
  2163. groupstr,
  2164. groupday,
  2165. aps_capacity_type,
  2166. ifcheck,
  2167. checkrate,
  2168. scllplan_mode,
  2169. chkpassrate,
  2170. dftcusid,
  2171. simplename,
  2172. sendtype,
  2173. mb_mtrlid,
  2174. buy_ceiling,
  2175. wfjg_ceiling,
  2176. scll_ceiling,
  2177. sale_ceiling,
  2178. material,
  2179. adddec,
  2180. ifbarcodefp,
  2181. stoppqty,
  2182. buy_autoday,
  2183. upbuyrate,
  2184. upbuyqty,
  2185. ifrebuypack,
  2186. protype,
  2187. buydays_bx,
  2188. wfjgdays_bx,
  2189. multqty,
  2190. buyer,
  2191. multtype,
  2192. bantype,
  2193. midu,
  2194. BalcCmplNotUpdate,
  2195. status_spc,
  2196. woodcode_spc,
  2197. pcode_spc)
  2198. Values(:ll_mtrlid,
  2199. :arg_s_mtrl.mtrlcode,
  2200. :arg_s_mtrl.mtrlname,
  2201. :ls_mtrltype,
  2202. :arg_s_mtrl.mtrlsectype,
  2203. :arg_s_mtrl.mtrlmode,
  2204. :arg_s_mtrl.Mtrlorigin,
  2205. :arg_s_mtrl.unit,
  2206. :arg_s_mtrl.lspacklimit,
  2207. :arg_s_mtrl.LMsaleprice,
  2208. :arg_s_mtrl.lmbuyprice,
  2209. :arg_s_mtrl.dscrp,
  2210. :arg_s_mtrl.MaxQTY,
  2211. :arg_s_mtrl.MinQTY,
  2212. :arg_s_mtrl.isuse,
  2213. :arg_s_mtrl.packqty,
  2214. :arg_s_mtrl.prdpackcode,
  2215. getdate(),
  2216. :arg_opemp,
  2217. :arg_s_mtrl.mtrltypeid,
  2218. :ls_handtype,
  2219. :arg_s_mtrl.barcode,
  2220. :arg_s_mtrl.mtrlkind,
  2221. :arg_s_mtrl.net_weight,
  2222. :arg_s_mtrl.gross_weight,
  2223. :arg_s_mtrl.cubage,
  2224. :arg_s_mtrl.mtrlengname,
  2225. :arg_s_mtrl.zxmtrlmode,
  2226. :arg_s_mtrl.unit_scll,
  2227. :arg_s_mtrl.unit_buy,
  2228. :arg_s_mtrl.rate_buy,
  2229. :arg_s_mtrl.rate_scll,
  2230. :arg_s_mtrl.rate_sale,
  2231. :arg_s_mtrl.unit_sale,
  2232. :arg_s_mtrl.scllflag,
  2233. :arg_s_mtrl.dftwrkGrpid,
  2234. :arg_s_mtrl.orderdays,
  2235. :arg_s_mtrl.buydays,
  2236. :arg_s_mtrl.wfjgdays,
  2237. :arg_s_mtrl.ifselforder,
  2238. :arg_s_mtrl.minbuyqty,
  2239. :arg_s_mtrl.aheaddays,
  2240. :arg_s_mtrl.mprice,
  2241. :arg_s_mtrl.dftsptid,
  2242. :arg_s_mtrl.scid,
  2243. :arg_s_mtrl.ifscid,
  2244. :arg_s_mtrl.mtrlprp,
  2245. :arg_s_mtrl.uprate,
  2246. :arg_s_mtrl.upqty,
  2247. :arg_s_mtrl.ordertype,
  2248. :arg_s_mtrl.statusflag,
  2249. :arg_s_mtrl.statustype,
  2250. :arg_s_mtrl.woodcodeflag,
  2251. :arg_s_mtrl.woodcodetype,
  2252. :arg_s_mtrl.pcodeflag,
  2253. :arg_s_mtrl.pcodetype,
  2254. :arg_s_mtrl.mtrlarea,
  2255. :arg_s_mtrl.mtrlarea1,
  2256. :arg_s_mtrl.mtrlarea2,
  2257. :arg_s_mtrl.configcode,
  2258. :arg_s_mtrl.configname,
  2259. :arg_s_mtrl.ifpack,
  2260. :arg_s_mtrl.ifpackpro,
  2261. :arg_s_mtrl.autoinstall,
  2262. :arg_s_mtrl.iflimitprice,
  2263. :arg_s_mtrl.mtrlcolor,
  2264. :arg_s_mtrl.configcodetype,
  2265. :arg_s_mtrl.ifautodd,
  2266. :arg_s_mtrl.iflljg,
  2267. :arg_s_mtrl.ifunit,
  2268. :arg_s_mtrl.ifpackpz,
  2269. :arg_s_mtrl.ifpacktype,
  2270. :arg_s_mtrl.scllrate,
  2271. :arg_s_mtrl.cmpqty,
  2272. :arg_s_mtrl.usermtrlmode,
  2273. :arg_s_mtrl.storagetype,
  2274. :arg_s_mtrl.ifmtrlcuscode,
  2275. :arg_s_mtrl.mrptype,
  2276. :arg_s_mtrl.mrparg,
  2277. :arg_s_mtrl.updownprice,
  2278. :arg_s_mtrl.outtype,
  2279. :arg_s_mtrl.ifpricepack,
  2280. :arg_s_mtrl.gydscrp,
  2281. :arg_s_mtrl.downrate,
  2282. :arg_s_mtrl.ifcustom,
  2283. :arg_s_mtrl.buyunit,
  2284. :arg_s_mtrl.wfjgunit,
  2285. :arg_s_mtrl.scllunit,
  2286. :arg_s_mtrl.saleunit,
  2287. :arg_s_mtrl.buydec,
  2288. :arg_s_mtrl.wfjgdec,
  2289. :arg_s_mtrl.sclldec,
  2290. :arg_s_mtrl.saledec,
  2291. :arg_s_mtrl.issuliao,
  2292. :arg_s_mtrl.ifenough,
  2293. :arg_s_mtrl.capacity,
  2294. :arg_s_mtrl.expday,
  2295. :arg_s_mtrl.capaparm,
  2296. :arg_s_mtrl.sctaskqty,
  2297. :arg_s_mtrl.minarg,
  2298. :arg_s_mtrl.maxarg,
  2299. :arg_s_mtrl.status_check,
  2300. :arg_s_mtrl.woodcode_check,
  2301. :arg_s_mtrl.pcode_check,
  2302. :arg_s_mtrl.maxdays,
  2303. :arg_s_mtrl.mindays,
  2304. :arg_s_mtrl.ifmrppackpf,
  2305. :arg_s_mtrl.maxzjday,
  2306. :arg_s_mtrl.eoq,
  2307. :arg_s_mtrl.splitrate,
  2308. :arg_s_mtrl.mrp_unit,
  2309. :arg_s_mtrl.rebuytype,
  2310. :arg_s_mtrl.rebuylot,
  2311. :arg_s_mtrl.ifsendlot,
  2312. :arg_s_mtrl.upddrate,
  2313. :arg_s_mtrl.upddqty,
  2314. :arg_s_mtrl.upsalerate,
  2315. :arg_s_mtrl.upsaleqty,
  2316. :arg_s_mtrl.ifusedeliqty,
  2317. :arg_s_mtrl.status_config,
  2318. :arg_s_mtrl.woodcode_config,
  2319. :arg_s_mtrl.pcode_config,
  2320. :arg_s_mtrl.pricepztype,
  2321. :arg_s_mtrl.useday,
  2322. :arg_s_mtrl.equiptype,
  2323. :arg_s_mtrl.ifpackpro2,
  2324. :arg_s_mtrl.ifkl,
  2325. :arg_s_mtrl.ifturn,
  2326. :arg_s_mtrl.iffp,
  2327. :arg_s_mtrl.scllqty,
  2328. :arg_s_mtrl.piccode,
  2329. :arg_s_mtrl.dftscllwkpid,
  2330. :arg_s_mtrl.if_hourpay,
  2331. :arg_s_mtrl.ifmrp,
  2332. :arg_s_mtrl.if_inherit,
  2333. :arg_s_mtrl.groupstr,
  2334. :arg_s_mtrl.groupday,
  2335. :arg_s_mtrl.aps_capacity_type,
  2336. :arg_s_mtrl.ifcheck,
  2337. :arg_s_mtrl.checkrate,
  2338. :arg_s_mtrl.scllplan_mode,
  2339. :arg_s_mtrl.chkpassrate,
  2340. :arg_s_mtrl.dftcusid,
  2341. :arg_s_mtrl.simplename,
  2342. :arg_s_mtrl.sendtype,
  2343. :arg_s_mtrl.mb_mtrlid,
  2344. :arg_s_mtrl.buy_ceiling,
  2345. :arg_s_mtrl.wfjg_ceiling,
  2346. :arg_s_mtrl.scll_ceiling,
  2347. :arg_s_mtrl.sale_ceiling,
  2348. :arg_s_mtrl.material,
  2349. :arg_s_mtrl.adddec,
  2350. :arg_s_mtrl.ifbarcodefp,
  2351. :arg_s_mtrl.stoppqty,
  2352. :arg_s_mtrl.buy_autoday,
  2353. :arg_s_mtrl.upbuyrate,
  2354. :arg_s_mtrl.upbuyqty,
  2355. :arg_s_mtrl.ifrebuypack,
  2356. :arg_s_mtrl.protype,
  2357. :arg_s_mtrl.buydays_bx,
  2358. :arg_s_mtrl.wfjgdays_bx,
  2359. :arg_s_mtrl.multqty,
  2360. :arg_s_mtrl.buyer,
  2361. :arg_s_mtrl.multtype,
  2362. :arg_s_mtrl.bantype,
  2363. :arg_s_mtrl.midu,
  2364. :arg_s_mtrl.BalcCmplNotUpdate,
  2365. :arg_s_mtrl.status_spc,
  2366. :arg_s_mtrl.woodcode_spc,
  2367. :arg_s_mtrl.pcode_spc);
  2368. If sqlca.SQLCode <> 0 Then
  2369. arg_msg = '建立物料资料失败,'+sqlca.SQLErrText
  2370. rslt = 0
  2371. Goto ext
  2372. End If
  2373. Update u_mtrldef_planprice
  2374. Set planprice = 0
  2375. Where mtrlid = :ll_mtrlid;
  2376. If sqlca.SQLCode = 0 Then
  2377. If sqlca.SQLNRows = 0 Then
  2378. Insert Into u_mtrldef_planprice
  2379. (mtrlid,planprice)
  2380. Values
  2381. (:ll_mtrlid,0);
  2382. If sqlca.SQLCode <> 0 Then
  2383. arg_msg = '建立物料计划成本价资料失败,'+sqlca.SQLErrText
  2384. rslt = 0
  2385. Goto ext
  2386. End If
  2387. End If
  2388. End If
  2389. uo_mtrlid = ll_mtrlid
  2390. Else
  2391. Update u_mtrldef
  2392. Set mtrlcode = :arg_s_mtrl.mtrlcode,
  2393. mtrlname = :arg_s_mtrl.mtrlname,
  2394. mtrltype = :ls_mtrltype,
  2395. mtrlsectype = :arg_s_mtrl.mtrlsectype,
  2396. mtrlmode = :arg_s_mtrl.mtrlmode,
  2397. Mtrlorigin = :arg_s_mtrl.Mtrlorigin,
  2398. unit = :arg_s_mtrl.unit,
  2399. lspacklimit = :arg_s_mtrl.lspacklimit,
  2400. LMsaleprice = :arg_s_mtrl.LMsaleprice,
  2401. lmbuyprice = :arg_s_mtrl.lmbuyprice,
  2402. dscrp = :arg_s_mtrl.dscrp,
  2403. MaxQTY = :arg_s_mtrl.MaxQTY,
  2404. MinQTY = :arg_s_mtrl.MinQTY,
  2405. isuse = :arg_s_mtrl.isuse,
  2406. packqty = :arg_s_mtrl.packqty,
  2407. prdpackcode = :arg_s_mtrl.prdpackcode,
  2408. mtrltypeid = :arg_s_mtrl.mtrltypeid,
  2409. handtype = :ls_handtype,
  2410. barcode = :arg_s_mtrl.barcode,
  2411. mtrlkind = :arg_s_mtrl.mtrlkind,
  2412. net_weight = :arg_s_mtrl.net_weight,
  2413. gross_weight = :arg_s_mtrl.gross_weight,
  2414. cubage = :arg_s_mtrl.cubage,
  2415. mtrlengname = :arg_s_mtrl.mtrlengname,
  2416. zxmtrlmode = :arg_s_mtrl.zxmtrlmode,
  2417. unit_scll = :arg_s_mtrl.unit_scll,
  2418. unit_buy = :arg_s_mtrl.unit_buy,
  2419. rate_buy = :arg_s_mtrl.rate_buy,
  2420. rate_scll = :arg_s_mtrl.rate_scll,
  2421. rate_sale = :arg_s_mtrl.rate_sale,
  2422. unit_sale = :arg_s_mtrl.unit_sale,
  2423. scllflag = :arg_s_mtrl.scllflag,
  2424. dftwrkGrpid = :arg_s_mtrl.dftwrkGrpid,
  2425. orderdays = :arg_s_mtrl.orderdays,
  2426. buydays = :arg_s_mtrl.buydays,
  2427. wfjgdays = :arg_s_mtrl.wfjgdays,
  2428. ifselforder = :arg_s_mtrl.ifselforder,
  2429. minbuyqty = :arg_s_mtrl.minbuyqty,
  2430. aheaddays = :arg_s_mtrl.aheaddays,
  2431. mprice = :arg_s_mtrl.mprice,
  2432. dftsptid = :arg_s_mtrl.dftsptid,
  2433. scid = :arg_s_mtrl.scid,
  2434. ifscid = :arg_s_mtrl.ifscid,
  2435. mtrlprp = :arg_s_mtrl.mtrlprp,
  2436. moddate = getdate(),
  2437. modemp = :arg_opemp,
  2438. uprate = :arg_s_mtrl.uprate,
  2439. upqty = :arg_s_mtrl.upqty,
  2440. ordertype = :arg_s_mtrl.ordertype,
  2441. statusflag = :arg_s_mtrl.statusflag,
  2442. statustype = :arg_s_mtrl.statustype,
  2443. woodcodeflag = :arg_s_mtrl.woodcodeflag,
  2444. woodcodetype = :arg_s_mtrl.woodcodetype,
  2445. pcodeflag = :arg_s_mtrl.pcodeflag,
  2446. pcodetype = :arg_s_mtrl.pcodetype,
  2447. mtrlarea = :arg_s_mtrl.mtrlarea,
  2448. mtrlarea1 = :arg_s_mtrl.mtrlarea1,
  2449. mtrlarea2 = :arg_s_mtrl.mtrlarea2,
  2450. configcode = :arg_s_mtrl.configcode,
  2451. configname = :arg_s_mtrl.configname,
  2452. ifpack = :arg_s_mtrl.ifpack,
  2453. ifpackpro = :arg_s_mtrl.ifpackpro,
  2454. autoinstall = :arg_s_mtrl.autoinstall,
  2455. iflimitprice = :arg_s_mtrl.iflimitprice,
  2456. mtrlcolor = :arg_s_mtrl.mtrlcolor,
  2457. configcodetype = :arg_s_mtrl.configcodetype,
  2458. ifautodd = :arg_s_mtrl.ifautodd,
  2459. iflljg = :arg_s_mtrl.iflljg,
  2460. ifunit = :arg_s_mtrl.ifunit,
  2461. ifpackpz = :arg_s_mtrl.ifpackpz,
  2462. ifpacktype = :arg_s_mtrl.ifpacktype,
  2463. scllrate = :arg_s_mtrl.scllrate,
  2464. cmpqty = :arg_s_mtrl.cmpqty,
  2465. usermtrlmode = :arg_s_mtrl.usermtrlmode,
  2466. storagetype = :arg_s_mtrl.storagetype,
  2467. ifmtrlcuscode = :arg_s_mtrl.ifmtrlcuscode,
  2468. mrptype = :arg_s_mtrl.mrptype,
  2469. mrparg = :arg_s_mtrl.mrparg,
  2470. updownprice = :arg_s_mtrl.updownprice,
  2471. outtype = :arg_s_mtrl.outtype,
  2472. ifpricepack = :arg_s_mtrl.ifpricepack,
  2473. gydscrp = :arg_s_mtrl.gydscrp,
  2474. downrate = :arg_s_mtrl.downrate,
  2475. ifcustom = :arg_s_mtrl.ifcustom,
  2476. buyunit = :arg_s_mtrl.buyunit,
  2477. wfjgunit = :arg_s_mtrl.wfjgunit,
  2478. scllunit = :arg_s_mtrl.scllunit,
  2479. saleunit = :arg_s_mtrl.saleunit,
  2480. buydec = :arg_s_mtrl.buydec,
  2481. wfjgdec = :arg_s_mtrl.wfjgdec,
  2482. sclldec = :arg_s_mtrl.sclldec,
  2483. saledec = :arg_s_mtrl.saledec,
  2484. issuliao = :arg_s_mtrl.issuliao,
  2485. ifenough = :arg_s_mtrl.ifenough,
  2486. capacity = :arg_s_mtrl.capacity,
  2487. expday = :arg_s_mtrl.expday,
  2488. capaparm = :arg_s_mtrl.capaparm,
  2489. sctaskqty = :arg_s_mtrl.sctaskqty,
  2490. minarg = :arg_s_mtrl.minarg,
  2491. maxarg = :arg_s_mtrl.maxarg,
  2492. status_check = :arg_s_mtrl.status_check,
  2493. woodcode_check = :arg_s_mtrl.woodcode_check,
  2494. pcode_check = :arg_s_mtrl.pcode_check,
  2495. maxdays = :arg_s_mtrl.maxdays,
  2496. mindays = :arg_s_mtrl.mindays,
  2497. ifmrppackpf = :arg_s_mtrl.ifmrppackpf,
  2498. maxzjday = :arg_s_mtrl.maxzjday,
  2499. eoq = :arg_s_mtrl.eoq,
  2500. splitrate = :arg_s_mtrl.splitrate,
  2501. mrp_unit = :arg_s_mtrl.mrp_unit,
  2502. rebuytype = :arg_s_mtrl.rebuytype,
  2503. rebuylot = :arg_s_mtrl.rebuylot,
  2504. ifsendlot = :arg_s_mtrl.ifsendlot,
  2505. upddrate = :arg_s_mtrl.upddrate,
  2506. upddqty = :arg_s_mtrl.upddqty,
  2507. upsalerate = :arg_s_mtrl.upsalerate,
  2508. upsaleqty = :arg_s_mtrl.upsaleqty,
  2509. ifusedeliqty = :arg_s_mtrl.ifusedeliqty,
  2510. status_config = :arg_s_mtrl.status_config,
  2511. woodcode_config = :arg_s_mtrl.woodcode_config,
  2512. pcode_config = :arg_s_mtrl.pcode_config,
  2513. pricepztype = :arg_s_mtrl.pricepztype,
  2514. useday = :arg_s_mtrl.useday,
  2515. equiptype = :arg_s_mtrl.equiptype,
  2516. ifpackpro2 = :arg_s_mtrl.ifpackpro2,
  2517. ifkl = :arg_s_mtrl.ifkl,
  2518. ifturn = :arg_s_mtrl.ifturn,
  2519. iffp = :arg_s_mtrl.iffp,
  2520. scllqty = :arg_s_mtrl.scllqty,
  2521. piccode = :arg_s_mtrl.piccode,
  2522. dftscllwkpid = :arg_s_mtrl.dftscllwkpid,
  2523. if_hourpay = :arg_s_mtrl.if_hourpay,
  2524. ifmrp = :arg_s_mtrl.ifmrp,
  2525. if_inherit = :arg_s_mtrl.if_inherit,
  2526. groupstr = :arg_s_mtrl.groupstr,
  2527. groupday = :arg_s_mtrl.groupday,
  2528. aps_capacity_type = :arg_s_mtrl.aps_capacity_type,
  2529. ifcheck = :arg_s_mtrl.ifcheck,
  2530. checkrate = :arg_s_mtrl.checkrate,
  2531. scllplan_mode = :arg_s_mtrl.scllplan_mode,
  2532. chkpassrate = :arg_s_mtrl.chkpassrate,
  2533. dftcusid = :arg_s_mtrl.dftcusid,
  2534. simplename = :arg_s_mtrl.simplename,
  2535. sendtype = :arg_s_mtrl.sendtype,
  2536. mb_mtrlid = :arg_s_mtrl.mb_mtrlid,
  2537. buy_ceiling = :arg_s_mtrl.buy_ceiling,
  2538. wfjg_ceiling = :arg_s_mtrl.wfjg_ceiling,
  2539. scll_ceiling = :arg_s_mtrl.scll_ceiling,
  2540. sale_ceiling = :arg_s_mtrl.sale_ceiling,
  2541. material = :arg_s_mtrl.material,
  2542. adddec = :arg_s_mtrl.adddec,
  2543. ifbarcodefp = :arg_s_mtrl.ifbarcodefp,
  2544. stoppqty = :arg_s_mtrl.stoppqty,
  2545. buy_autoday = :arg_s_mtrl.buy_autoday,
  2546. upbuyrate = :arg_s_mtrl.upbuyrate,
  2547. upbuyqty = :arg_s_mtrl.upbuyqty,
  2548. ifrebuypack = :arg_s_mtrl.ifrebuypack,
  2549. protype = :arg_s_mtrl.protype,
  2550. buydays_bx = :arg_s_mtrl.buydays_bx,
  2551. wfjgdays_bx = :arg_s_mtrl.wfjgdays_bx,
  2552. multqty = :arg_s_mtrl.multqty ,
  2553. buyer = :arg_s_mtrl.buyer,
  2554. multtype = :arg_s_mtrl.multtype,
  2555. bantype = :arg_s_mtrl.bantype,
  2556. midu = :arg_s_mtrl.midu,
  2557. BalcCmplNotUpdate = :arg_s_mtrl.BalcCmplNotUpdate,
  2558. status_spc = :arg_s_mtrl.status_spc,
  2559. woodcode_spc = :arg_s_mtrl.woodcode_spc,
  2560. pcode_spc = :arg_s_mtrl.pcode_spc
  2561. Where mtrlid = :arg_s_mtrl.mtrlid;
  2562. If sqlca.SQLCode <> 0 Then
  2563. arg_msg = '更新物料资料失败,'+sqlca.SQLErrText
  2564. rslt = 0
  2565. Goto ext
  2566. End If
  2567. uo_mtrlid = arg_s_mtrl.mtrlid
  2568. End If
  2569. If uo_option_use_suliao = 1 And arg_s_mtrl.issuliao = 1 Then
  2570. If uof_skmtrl_add(uo_mtrlid,arg_s_mtrl.skmtrlid,arg_s_mtrl.period,arg_msg,False) = 0 Then
  2571. rslt = 0
  2572. Goto ext
  2573. End If
  2574. End If
  2575. //增加检查,如果系部件选配,设置了默认值,且分类唯一应用在当前物料,更新部件选配默认值的标准标记
  2576. IF uof_update_ppqty(uo_mtrlid,arg_s_mtrl, arg_msg) = 0 THEN
  2577. rslt = 0
  2578. Goto ext
  2579. End If
  2580. ext:
  2581. If rslt = 0 Then
  2582. Rollback;
  2583. ElseIf rslt = 1 And arg_ifcommit Then
  2584. Commit;
  2585. End If
  2586. Return rslt
  2587. end function
  2588. public function integer uof_update_ban (long arg_mtrlid, s_mtrldef_ban arg_s_ban, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  2589. If arg_mtrlid <= 0 Then
  2590. rslt = 0
  2591. arg_msg = '不合理的物料ID'
  2592. Goto ext
  2593. End If
  2594. If IsNull(arg_s_ban.promode) Then arg_s_ban.promode = ''
  2595. If IsNull(arg_s_ban.wenli) Then arg_s_ban.wenli = ''
  2596. If IsNull(arg_s_ban.fengbian) Then arg_s_ban.fengbian = ''
  2597. If IsNull(arg_s_ban.paikong) Then arg_s_ban.paikong = ''
  2598. If IsNull(arg_s_ban.luoji) Then arg_s_ban.luoji = ''
  2599. If IsNull(arg_s_ban.penyou) Then arg_s_ban.penyou = ''
  2600. If IsNull(arg_s_ban.gydscrp) Then arg_s_ban.gydscrp = ''
  2601. If IsNull(arg_s_ban.direction) Then arg_s_ban.direction = 0
  2602. If IsNull(arg_s_ban.pfklmode) Then arg_s_ban.pfklmode = ''
  2603. Update u_mtrldef_ban
  2604. Set promode = :arg_s_ban.promode,
  2605. wenli = :arg_s_ban.wenli,
  2606. fengbian = :arg_s_ban.fengbian,
  2607. paikong = :arg_s_ban.paikong,
  2608. luoji = :arg_s_ban.luoji,
  2609. penyou = :arg_s_ban.penyou,
  2610. gydscrp = :arg_s_ban.gydscrp,
  2611. direction = :arg_s_ban.direction,
  2612. pfklmode = :arg_s_ban.pfklmode
  2613. Where mtrlid = :arg_mtrlid;
  2614. If sqlca.SQLCode = 0 Then
  2615. If sqlca.SQLNRows = 0 Then
  2616. Insert Into u_mtrldef_ban
  2617. (mtrlid,
  2618. promode,
  2619. wenli,
  2620. fengbian,
  2621. paikong,
  2622. luoji,
  2623. penyou,
  2624. gydscrp,
  2625. direction,
  2626. pfklmode)
  2627. Values (:arg_mtrlid,
  2628. :arg_s_ban.promode,
  2629. :arg_s_ban.wenli,
  2630. :arg_s_ban.fengbian,
  2631. :arg_s_ban.paikong,
  2632. :arg_s_ban.luoji,
  2633. :arg_s_ban.penyou,
  2634. :arg_s_ban.gydscrp,
  2635. :arg_s_ban.direction,
  2636. :arg_s_ban.pfklmode);
  2637. If sqlca.SQLCode <> 0 Then
  2638. rslt = 0
  2639. arg_msg = '插入物料板件信息失败,'+sqlca.SQLErrText
  2640. Goto ext
  2641. End If
  2642. End If
  2643. Else
  2644. rslt = 0
  2645. arg_msg = '更新物料板件信息失败,'+sqlca.SQLErrText
  2646. Goto ext
  2647. End If
  2648. ext:
  2649. If rslt = 0 Then
  2650. Rollback;
  2651. ElseIf arg_ifcommit Then
  2652. Commit;
  2653. End If
  2654. Return rslt
  2655. end function
  2656. public function integer uof_update_ppqty (long arg_mtrlid, s_mtrldef arg_s_mtrl, ref string arg_msg);//更新相应部件选配类型的匹配数量(ppqty)
  2657. Long rslt = 1
  2658. //If arg_s_mtrl.statusflag = 1 And arg_s_mtrl.statustype = 0 Then
  2659. // arg_msg = uo_option_change_status+' 类型为严格选择,必须选定一个待选类别'
  2660. // rslt = 0
  2661. // Goto ext
  2662. //End If
  2663. //
  2664. //If arg_s_mtrl.woodcodeflag = 1 And arg_s_mtrl.woodcodetype = 0 Then
  2665. // arg_msg = uo_option_change_woodcode+' 类型为严格选择,必须选定一个待选类别'
  2666. // rslt = 0
  2667. // Goto ext
  2668. //End If
  2669. //
  2670. //If arg_s_mtrl.pcodeflag = 1 And arg_s_mtrl.pcodetype = 0 Then
  2671. // arg_msg = uo_option_change_pcode+' 类型为严格选择,必须选定一个待选类别'
  2672. // rslt = 0
  2673. // Goto ext
  2674. //End If
  2675. //
  2676. IF uof_update_pzdftflag(arg_s_mtrl.statusflag, arg_s_mtrl.statustype, arg_s_mtrl.status_config, arg_msg) = 0 THEN
  2677. rslt = 0
  2678. GOTO ext
  2679. END IF
  2680. IF uof_update_pzdftflag(arg_s_mtrl.woodcodeflag, arg_s_mtrl.woodcodetype, arg_s_mtrl.woodcode_config, arg_msg) = 0 THEN
  2681. rslt = 0
  2682. GOTO ext
  2683. END IF
  2684. IF uof_update_pzdftflag(arg_s_mtrl.pcodeflag, arg_s_mtrl.pcodetype, arg_s_mtrl.pcode_config, arg_msg) = 0 THEN
  2685. rslt = 0
  2686. GOTO ext
  2687. END IF
  2688. ext:
  2689. RETURN rslt
  2690. end function
  2691. public function integer uof_update_pzdftflag (long arg_flag, long arg_typeid, string arg_config, ref string arg_msg);Int rslt = 1
  2692. Long i, ll_start, ll_i, cnt
  2693. String ls_name[], ls_namemx[]
  2694. Long ll_printid
  2695. IF arg_flag = 4 THEN
  2696. SELECT cnt
  2697. INTO :cnt
  2698. FROM uv_configure_type_ppqty
  2699. Where pzid = :arg_typeid;
  2700. IF sqlca.SQLCode <> 0 THEN
  2701. cnt = 0
  2702. END IF
  2703. IF cnt = 1 And arg_config <> '' THEN
  2704. //更新标准标记
  2705. IF Right(arg_config,1) <> "|" THEN
  2706. arg_config += "|"
  2707. END IF
  2708. i = 0
  2709. ll_start = Pos(arg_config, "|")
  2710. DO WHILE ll_start > 0 And arg_config <> "|"
  2711. i++
  2712. ls_name[i] = Left(arg_config, Pos(arg_config,":") - 1)
  2713. ls_namemx[i] = Left(arg_config, ll_start - 1)
  2714. ls_namemx[i] = Mid(ls_namemx[i],Pos(ls_namemx[i],':') + 1)
  2715. arg_config = Mid(arg_config, ll_start + 1)
  2716. ll_start = Pos(arg_config, "|")
  2717. LOOP
  2718. FOR ll_i = 1 To UpperBound(ls_name)
  2719. UPDATE u_configure_codemx
  2720. SET ifdft = 1
  2721. FROM u_configure_code INNER JOIN
  2722. u_configure_codemx ON u_configure_code.pzid = u_configure_codemx.pzid
  2723. WHERE u_configure_code.typeid = :arg_typeid
  2724. AND u_configure_code.name = :ls_name[ll_i]
  2725. And u_configure_codemx.namemx = :ls_namemx[ll_i];
  2726. IF sqlca.SQLCode <> 0 THEN
  2727. rslt = 0
  2728. arg_msg = "更新配置标准值失败,"+sqlca.SQLErrText
  2729. GOTO ext
  2730. END IF
  2731. NEXT
  2732. ELSE
  2733. //取消标准标记
  2734. UPDATE u_configure_codemx
  2735. SET ifdft = 0
  2736. FROM u_configure_code INNER JOIN
  2737. u_configure_codemx ON u_configure_code.pzid = u_configure_codemx.pzid
  2738. Where u_configure_code.typeid = :arg_typeid;
  2739. IF sqlca.SQLCode <> 0 THEN
  2740. rslt = 0
  2741. arg_msg = "取消配置标准值失败,"+sqlca.SQLErrText
  2742. GOTO ext
  2743. END IF
  2744. END IF
  2745. END IF
  2746. ext:
  2747. IF rslt = 0 THEN
  2748. //rollback;
  2749. ELSE
  2750. END IF
  2751. RETURN rslt
  2752. end function
  2753. public function integer uof_get_pztype (integer arg_type, string arg_pzname, ref long arg_pzid, ref string arg_msg);Int rslt = 1
  2754. Long ll_cnt
  2755. Long ll_newid
  2756. IF arg_type = 1 THEN
  2757. SELECT count(*)
  2758. INTO :ll_cnt
  2759. FROM u_pztype_def
  2760. Where typename = :arg_pzname;
  2761. IF sqlca.SQLCode <> 0 THEN
  2762. arg_msg = '查询新配置类型名称是否重复失败,'+sqlca.SQLErrText
  2763. rslt = 0
  2764. GOTO ext
  2765. END IF
  2766. IF ll_cnt > 0 THEN
  2767. SELECT typeid
  2768. INTO :ll_newid
  2769. FROM u_pztype_def
  2770. Where typename = :arg_pzname;
  2771. IF sqlca.SQLCode <> 0 THEN
  2772. arg_msg = '查询新配置类型名称失败,'+sqlca.SQLErrText
  2773. rslt = 0
  2774. GOTO ext
  2775. END IF
  2776. //arg_pzid = ll_newid
  2777. //RETURN 1
  2778. END IF
  2779. IF ll_newid = 0 THEN
  2780. ll_newid = f_sys_scidentity(0,"u_pztype_def","typeid",arg_msg,True,id_sqlca)
  2781. IF ll_newid <= 0 THEN
  2782. arg_msg = '获取新ID失败,'+arg_msg
  2783. rslt = 0
  2784. GOTO ext
  2785. END IF
  2786. INSERT INTO u_pztype_def
  2787. (typeid, typename)
  2788. Values ( :ll_newid, :arg_pzname);
  2789. IF sqlca.SQLCode <> 0 THEN
  2790. arg_msg = '新建严格选择配置类型:'+arg_pzname+'失败,'+sqlca.SQLErrText
  2791. rslt = 0
  2792. GOTO ext
  2793. END IF
  2794. END IF
  2795. ELSE
  2796. SELECT count(*)
  2797. INTO :ll_cnt
  2798. FROM u_configure_type
  2799. Where contfigtypename = :arg_pzname;
  2800. IF sqlca.SQLCode <> 0 THEN
  2801. arg_msg = '查询新部件选配类型名称是否重复失败,'+sqlca.SQLErrText
  2802. rslt = 0
  2803. GOTO ext
  2804. END IF
  2805. IF ll_cnt > 0 THEN
  2806. SELECT contfigtypeid
  2807. INTO :ll_newid
  2808. FROM u_configure_type
  2809. Where contfigtypename = :arg_pzname;
  2810. IF sqlca.SQLCode <> 0 THEN
  2811. arg_msg = '查询新部件选配类型名称失败,'+sqlca.SQLErrText
  2812. rslt = 0
  2813. GOTO ext
  2814. END IF
  2815. // arg_pzid = ll_newid
  2816. // RETURN 1
  2817. END IF
  2818. IF ll_newid = 0 THEN
  2819. ll_newid = f_sys_scidentity(0,"u_configure_type","contfigtypeid",arg_msg,True,id_sqlca)
  2820. IF ll_newid <= 0 THEN
  2821. arg_msg = '获取新ID失败,'+arg_msg
  2822. rslt = 0
  2823. GOTO ext
  2824. END IF
  2825. INSERT INTO u_configure_type
  2826. (contfigtypeid, contfigtypename)
  2827. Values ( :ll_newid, :arg_pzname);
  2828. IF sqlca.SQLCode <> 0 THEN
  2829. arg_msg = '新建部件选配类型:'+arg_pzname+'失败,'+sqlca.SQLErrText
  2830. rslt = 0
  2831. GOTO ext
  2832. END IF
  2833. END IF
  2834. END IF
  2835. arg_pzid = ll_newid
  2836. ext:
  2837. RETURN rslt
  2838. end function
  2839. on uo_mtrldef.create
  2840. call super::create
  2841. TriggerEvent( this, "constructor" )
  2842. end on
  2843. on uo_mtrldef.destroy
  2844. TriggerEvent( this, "destructor" )
  2845. call super::destroy
  2846. end on
  2847. event constructor;String str_optionvalue,arg_msg
  2848. f_get_sys_option_value('159',str_optionvalue,arg_msg)
  2849. uo_option_use_suliao = Long(str_optionvalue)
  2850. f_get_sys_option_value('170',str_optionvalue,arg_msg)
  2851. uo_option_use_machining_ll = Long(str_optionvalue)
  2852. f_get_sys_option_value('029',str_optionvalue,arg_msg)
  2853. uo_option_change_status = str_optionvalue
  2854. f_get_sys_option_value('027',str_optionvalue,arg_msg)
  2855. uo_option_change_woodcode = str_optionvalue
  2856. f_get_sys_option_value('028',str_optionvalue,arg_msg)
  2857. uo_option_change_pcode = str_optionvalue
  2858. f_get_sys_option_value('142',str_optionvalue,arg_msg)
  2859. uo_option_inout_type = Long(str_optionvalue)
  2860. end event