w_wfjg_sptpdb.srw 48 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050
  1. $PBExportHeader$w_wfjg_sptpdb.srw
  2. forward
  3. global type w_wfjg_sptpdb from w_publ_easyq
  4. end type
  5. type cb_3 from uo_imflatbutton within w_wfjg_sptpdb
  6. end type
  7. type cb_edit from uo_imflatbutton within w_wfjg_sptpdb
  8. end type
  9. type cb_del from uo_imflatbutton within w_wfjg_sptpdb
  10. end type
  11. type cb_4 from uo_imflatbutton within w_wfjg_sptpdb
  12. end type
  13. type cb_5 from uo_imflatbutton within w_wfjg_sptpdb
  14. end type
  15. type st_5 from statictext within w_wfjg_sptpdb
  16. end type
  17. type cb_addmx from uo_imflatbutton within w_wfjg_sptpdb
  18. end type
  19. type cb_delmx from uo_imflatbutton within w_wfjg_sptpdb
  20. end type
  21. type ddlb_1 from dropdownlistbox within w_wfjg_sptpdb
  22. end type
  23. type ddlb_sptid from uo_ddlb_wfjg_sptid within w_wfjg_sptpdb
  24. end type
  25. type ddlb_scid from uo_ddlb_scid within w_wfjg_sptpdb
  26. end type
  27. type st_1 from statictext within w_wfjg_sptpdb
  28. end type
  29. type cb_audit from uo_imflatbutton within w_wfjg_sptpdb
  30. end type
  31. type cb_caudit from uo_imflatbutton within w_wfjg_sptpdb
  32. end type
  33. type cbx_auto_audit from checkbox within w_wfjg_sptpdb
  34. end type
  35. type cb_6 from uo_imflatbutton within w_wfjg_sptpdb
  36. end type
  37. end forward
  38. global type w_wfjg_sptpdb from w_publ_easyq
  39. integer width = 3611
  40. integer height = 2380
  41. string title = "外协商盘点表"
  42. boolean resizable = false
  43. event ue_f8 ( )
  44. event ue_unit_ch ( )
  45. event ue_pdqty ( )
  46. event ue_unit_buy ( )
  47. event ue_unit_scll ( )
  48. event ue_unit_sale ( )
  49. event ue_unit ( )
  50. cb_3 cb_3
  51. cb_edit cb_edit
  52. cb_del cb_del
  53. cb_4 cb_4
  54. cb_5 cb_5
  55. st_5 st_5
  56. cb_addmx cb_addmx
  57. cb_delmx cb_delmx
  58. ddlb_1 ddlb_1
  59. ddlb_sptid ddlb_sptid
  60. ddlb_scid ddlb_scid
  61. st_1 st_1
  62. cb_audit cb_audit
  63. cb_caudit cb_caudit
  64. cbx_auto_audit cbx_auto_audit
  65. cb_6 cb_6
  66. end type
  67. global w_wfjg_sptpdb w_wfjg_sptpdb
  68. type variables
  69. long cur_sptid = -1
  70. String ins_pdbdate = ''
  71. string cur_sptname = ''
  72. long il_scid
  73. end variables
  74. forward prototypes
  75. public function integer wf_face ()
  76. public subroutine wf_del ()
  77. public function integer wf_init_pdb ()
  78. public function integer wf_check_ifmtrlware (ref string arg_msg)
  79. public function integer wf_inspt (date arg_enddate)
  80. public function integer wf_audit (long arg_scid, long arg_sptid, string arg_pdbdate, string arg_opemp, ref string arg_msg, boolean arg_ifcommit)
  81. public function integer wf_caudit (long arg_scid, long arg_sptid, string arg_pdbdate, ref string arg_msg, boolean arg_ifcommit)
  82. public subroutine wf_flagstatus_rf (long arg_scid, long arg_sptid, string arg_pdbdate)
  83. public subroutine wf_init_spt ()
  84. end prototypes
  85. event ue_f8();IF NOT dw_edit_mode THEN RETURN
  86. Long child_row
  87. String ls_sptname = ''
  88. Long ls_sptid,ls_warepdbid
  89. child_row = dw_1.GetRow()
  90. IF cur_sptid = 0 OR IsNull(cur_sptid) THEN
  91. MessageBox(publ_operator,'请先选择外协商')
  92. RETURN
  93. END IF
  94. IF ins_pdbdate = '' OR IsNull(ins_pdbdate) THEN
  95. MessageBox(publ_operator,'请先选择盘点日')
  96. RETURN
  97. END IF
  98. SELECT name
  99. INTO :ls_sptname
  100. FROM u_spt
  101. Where sptid = :cur_sptid USING sqlca;
  102. IF sqlca.SQLCode <> 0 THEN
  103. MessageBox('系统提示','查询外协商操作失败!')
  104. RETURN
  105. END IF
  106. IF NOT IsValid(w_add_mtrlware_spt) THEN
  107. s_edit_index_tran s_ch_tran //传递参数使用
  108. s_ch_tran.if_retrieve_all = FALSE //是否一次RETRIEVE所有行
  109. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  110. s_ch_tran.arg_pkid = 0 //目标定位PKID (备用)
  111. s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  112. s_ch_tran.if_select_all = TRUE
  113. s_ch_tran.b_long = -1
  114. s_ch_tran.c_long = cur_sptid
  115. OpenWithParm(w_add_mtrlware_spt,s_ch_tran)
  116. s_mtrlware_noalloc_array S_INSCUST
  117. S_INSCUST = Message.PowerObjectParm
  118. IF UpperBound(S_INSCUST.mtrlwareid[]) > 0 THEN
  119. IF S_INSCUST.mtrlwareid[1] > 0 THEN
  120. child_row = dw_1.InsertRow( 0)
  121. dw_1.Object.ow_wfjg_sptpdb_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[1]
  122. dw_1.Object.mtrlid[child_row] = S_INSCUST.mtrlid[1]
  123. dw_1.Object.ow_wfjg_sptpdb_plancode[child_row] = S_INSCUST.plancode[1]
  124. dw_1.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.u_mtrldef_mtrlcode[1]
  125. dw_1.Object.u_mtrldef_unit[child_row] = S_INSCUST.u_mtrldef_unit[1]
  126. dw_1.Object.ow_wfjg_sptpdb_sptid[child_row] = cur_sptid
  127. dw_1.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.u_mtrldef_mtrlname[1]
  128. dw_1.Object.ow_wfjg_sptpdb_status[child_row] = S_INSCUST.status[1]
  129. dw_1.Object.sptname[child_row] = ls_sptname
  130. dw_1.Object.factqty[child_row] = S_INSCUST.noallocqty[1]
  131. dw_1.Object.qty[child_row] = 0
  132. dw_1.Object.ow_wfjg_sptpdb_woodcode[child_row] = S_INSCUST.woodcode[1]
  133. dw_1.Object.ow_wfjg_sptpdb_pcode[child_row] = S_INSCUST.pcode[1]
  134. dw_1.Object.ow_wfjg_sptpdb_pdbdate[child_row] = ins_pdbdate
  135. dw_1.Object.ow_wfjg_sptpdb_scid[child_row] = il_scid
  136. dw_1.Object.ow_wfjg_sptpdb_wareamt[child_row] = S_INSCUST.cost[1] * S_INSCUST.noallocqty[1]
  137. dw_1.Object.ow_wfjg_sptpdb_uqty[child_row] = 0
  138. dw_1.Object.ow_wfjg_sptpdb_unit[child_row] = S_INSCUST.u_mtrldef_unit[1]
  139. dw_1.Object.ow_wfjg_sptpdb_rate[child_row] = 1
  140. END IF
  141. END IF
  142. dw_1.SetFocus()
  143. END IF
  144. end event
  145. event ue_unit_ch();IF NOT dw_edit_mode THEN RETURN
  146. Long ll_mtrlid
  147. IF NOT IsValid(w_unit_ch) THEN
  148. IF dw_1.GetRow() < 1 THEN RETURN
  149. ll_mtrlid = dw_1.Object.mtrlid[dw_1.GetRow()]
  150. OpenWithParm(w_unit_ch,ll_mtrlid)
  151. s_unit s_inscust
  152. s_inscust = Message.PowerObjectParm //接受返回结构
  153. dw_1.accepttext()
  154. IF s_inscust.unit <> '' THEN
  155. dw_1.Object.ow_wfjg_sptpdb_uqty[dw_1.GetRow()] = (dw_1.Object.ow_wfjg_sptpdb_uqty[dw_1.GetRow()] * dw_1.Object.ow_wfjg_sptpdb_rate[dw_1.GetRow()]) / s_inscust.rate
  156. dw_1.Object.ow_wfjg_sptpdb_rate[dw_1.GetRow()] = s_inscust.rate
  157. dw_1.Object.unit_qty[dw_1.GetRow()] = dw_1.Object.qty[dw_1.GetRow()] / s_inscust.rate
  158. dw_1.Object.ow_wfjg_sptpdb_unit[dw_1.GetRow()] = s_inscust.unit
  159. END IF
  160. END IF
  161. end event
  162. event ue_pdqty();IF NOT dw_edit_mode THEN
  163. MessageBox('系统提示','非编辑状态下不可使用')
  164. RETURN
  165. END IF
  166. IF MessageBox("询问","你确定要将列表中的盘点数据按库存数填写到盘点数吗?",Exclamation!, OKCancel!, 2) = 2 THEN RETURN
  167. dw_1.AcceptText()
  168. Long ll_i = 1
  169. dw_1.SetRedraw(FALSE)
  170. FOR ll_i = 1 TO dw_1.RowCount()
  171. dw_1.Object.factqty[ll_i] = dw_1.Object.qty[ll_i]
  172. dw_1.Object.pypkqty[ll_i] = 0
  173. dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] = dw_1.Object.unit_qty[ll_i]
  174. dw_1.Object.pypkqty_unit[ll_i] = 0
  175. NEXT
  176. dw_1.SetRedraw(TRUE)
  177. dw_1.AcceptText()
  178. end event
  179. event ue_unit_buy();IF NOT dw_edit_mode THEN
  180. MessageBox('系统提示','非编辑状态下不可使用')
  181. RETURN
  182. END IF
  183. Long ll_i
  184. Long ll_mtrlid
  185. String ls_unit_buy,ls_unit
  186. Decimal ld_rate
  187. dw_1.accepttext()
  188. dw_1.setredraw(false)
  189. FOR ll_i = 1 TO dw_1.RowCount()
  190. ll_mtrlid = dw_1.Object.mtrlid[ll_i]
  191. SELECT unit,unit_buy,rate_buy
  192. INTO :ls_unit,:ls_unit_buy,:ld_rate
  193. FROM u_mtrldef
  194. Where mtrlid = :ll_mtrlid;
  195. IF sqlca.SQLCode <> 0 THEN
  196. ld_rate = 0
  197. ls_unit = dw_1.object.u_mtrldef_unit[ll_i]
  198. END IF
  199. IF ld_rate = 0 THEN
  200. dw_1.Object.ow_wfjg_sptpdb_unit[ll_i] = ls_unit
  201. dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] = dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] * dw_1.Object.ow_wfjg_sptpdb_rate[ll_i]
  202. dw_1.Object.ow_wfjg_sptpdb_rate[ll_i] = 1
  203. ELSE
  204. dw_1.Object.ow_wfjg_sptpdb_unit[ll_i] = ls_unit_buy
  205. dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] = (dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] * dw_1.Object.ow_wfjg_sptpdb_rate[ll_i]) / ld_rate
  206. dw_1.Object.ow_wfjg_sptpdb_rate[ll_i] = ld_rate
  207. END IF
  208. NEXT
  209. dw_1.setredraw(true)
  210. end event
  211. event ue_unit_scll();IF NOT dw_edit_mode THEN
  212. MessageBox('系统提示','非编辑状态下不可使用')
  213. RETURN
  214. END IF
  215. Long ll_i
  216. Long ll_mtrlid
  217. String ls_unit_scll,ls_unit
  218. Decimal ld_rate
  219. dw_1.accepttext()
  220. dw_1.setredraw(false)
  221. FOR ll_i = 1 TO dw_1.RowCount()
  222. ll_mtrlid = dw_1.Object.mtrlid[ll_i]
  223. SELECT unit,unit_scll,rate_scll
  224. INTO :ls_unit,:ls_unit_scll,:ld_rate
  225. FROM u_mtrldef
  226. Where mtrlid = :ll_mtrlid;
  227. IF sqlca.SQLCode <> 0 THEN
  228. ld_rate = 0
  229. ls_unit = dw_1.object.u_mtrldef_unit[ll_i]
  230. END IF
  231. IF ld_rate = 0 THEN
  232. dw_1.Object.ow_wfjg_sptpdb_unit[ll_i] = ls_unit
  233. dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] = dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] * dw_1.Object.ow_wfjg_sptpdb_rate[ll_i]
  234. dw_1.Object.ow_wfjg_sptpdb_rate[ll_i] = 1
  235. ELSE
  236. dw_1.Object.ow_wfjg_sptpdb_unit[ll_i] = ls_unit_scll
  237. dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] = (dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] * dw_1.Object.ow_wfjg_sptpdb_rate[ll_i]) / ld_rate
  238. dw_1.Object.ow_wfjg_sptpdb_rate[ll_i] = ld_rate
  239. END IF
  240. NEXT
  241. dw_1.setredraw(true)
  242. end event
  243. event ue_unit_sale();IF NOT dw_edit_mode THEN
  244. MessageBox('系统提示','非编辑状态下不可使用')
  245. RETURN
  246. END IF
  247. Long ll_i
  248. Long ll_mtrlid
  249. String ls_unit_sale,ls_unit
  250. Decimal ld_rate
  251. dw_1.accepttext()
  252. dw_1.setredraw(false)
  253. FOR ll_i = 1 TO dw_1.RowCount()
  254. ll_mtrlid = dw_1.Object.mtrlid[ll_i]
  255. SELECT unit,unit_sale,rate_sale
  256. INTO :ls_unit,:ls_unit_sale,:ld_rate
  257. FROM u_mtrldef
  258. Where mtrlid = :ll_mtrlid;
  259. IF sqlca.SQLCode <> 0 THEN
  260. ld_rate = 0
  261. ls_unit = dw_1.object.u_mtrldef_unit[ll_i]
  262. END IF
  263. IF ld_rate = 0 THEN
  264. dw_1.Object.ow_wfjg_sptpdb_unit[ll_i] = ls_unit
  265. dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] = dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] * dw_1.Object.ow_wfjg_sptpdb_rate[ll_i]
  266. dw_1.Object.ow_wfjg_sptpdb_rate[ll_i] = 1
  267. ELSE
  268. dw_1.Object.ow_wfjg_sptpdb_unit[ll_i] = ls_unit_sale
  269. dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] = (dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] * dw_1.Object.ow_wfjg_sptpdb_rate[ll_i]) / ld_rate
  270. dw_1.Object.ow_wfjg_sptpdb_rate[ll_i] = ld_rate
  271. END IF
  272. NEXT
  273. dw_1.setredraw(true)
  274. end event
  275. event ue_unit();IF NOT dw_edit_mode THEN
  276. MessageBox('系统提示','非编辑状态下不可使用')
  277. RETURN
  278. END IF
  279. Long ll_i
  280. String ls_unit
  281. dw_1.accepttext()
  282. dw_1.setredraw(false)
  283. FOR ll_i = 1 TO dw_1.RowCount()
  284. ls_unit = dw_1.Object.u_mtrldef_unit[ll_i]
  285. dw_1.Object.ow_wfjg_sptpdb_unit[ll_i] = ls_unit
  286. dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] = dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] * dw_1.Object.ow_wfjg_sptpdb_rate[ll_i]
  287. dw_1.Object.ow_wfjg_sptpdb_rate[ll_i] = 1
  288. NEXT
  289. dw_1.setredraw(true)
  290. end event
  291. public function integer wf_face ();IF dw_edit_mode THEN
  292. dw_1.SetFocus()
  293. dw_1.SetTabOrder("ow_wfjg_sptpdb_unit",10)
  294. dw_1.SetTabOrder("ow_wfjg_sptpdb_uqty",20)
  295. cb_edit.Text = '保存'
  296. cb_del.Enabled = TRUE
  297. cb_addmx.Enabled = TRUE
  298. cb_delmx.Enabled = TRUE
  299. cb_3.Enabled = false
  300. cb_4.Enabled = false
  301. cb_5.Enabled = false
  302. ddlb_sptid.Enabled = false
  303. ddlb_1.Enabled = false
  304. ELSE
  305. dw_1.SetTabOrder("ow_wfjg_sptpdb_unit",0)
  306. dw_1.SetTabOrder("ow_wfjg_sptpdb_uqty",0)
  307. cb_edit.Text = '修改'
  308. cb_del.Enabled = FALSE
  309. cb_addmx.Enabled = false
  310. cb_delmx.Enabled = false
  311. cb_3.Enabled = true
  312. cb_4.Enabled = true
  313. cb_5.Enabled = true
  314. ddlb_sptid.Enabled = true
  315. ddlb_1.Enabled = true
  316. END IF
  317. cb_edit.TriggerEvent('ue_textchange')
  318. RETURN 1
  319. end function
  320. public subroutine wf_del ();String arg_msg
  321. Int cnt = 0
  322. IF MessageBox("IF","你是否要删除盘点日为"+trim(ins_pdbdate)+",外协商:"+Trim(ddlb_sptid.Text)+",分部:"+trim(ddlb_scid.text)+"的盘点表吗?",Exclamation!, OKCancel!, 2) = 2 THEN
  323. RETURN
  324. END IF
  325. SELECT count(*)
  326. INTO :cnt
  327. FROM ow_wfjg_sptpdb
  328. WHERE ow_wfjg_sptpdb.sptid = :cur_sptid
  329. AND ow_wfjg_sptpdb.pdbdate = :ins_pdbdate
  330. and ow_wfjg_sptpdb.scid = :il_scid
  331. AND ow_wfjg_sptpdb.flag = 1 USING sqlca;
  332. IF sqlca.SQLCode <> 0 THEN
  333. MessageBox('系统提示:','查询操作失败,在盘点日:'+trim(String(ins_pdbdate))+',外协商:'+Trim(ddlb_sptid.Text)+',分部:'+trim(ddlb_scid.text)+'的数据资料!')
  334. RETURN
  335. ELSE
  336. IF cnt > 0 THEN
  337. MessageBox('系统提示:','盘点日:'+trim(String(ins_pdbdate))+',外协商:'+Trim(ddlb_sptid.Text)+',分部:'+trim(ddlb_scid.text)+'的盘点数据已经审核,不能删除!')
  338. RETURN
  339. END IF
  340. END IF
  341. IF cur_sptid <= 0 THEN
  342. MessageBox('系统提示','请选择要盘点的外协商?')
  343. RETURN
  344. END IF
  345. DELETE FROM ow_wfjg_sptpdb
  346. Where pdbdate = :ins_pdbdate
  347. AND sptid = :cur_sptid
  348. and scid = :il_scid;
  349. IF sqlca.SQLCode <> 0 THEN
  350. MessageBox('系统提示','删除当前期的盘点表失败!')
  351. ROLLBACK;
  352. RETURN
  353. END IF
  354. COMMIT;
  355. MessageBox('系统提示','删除'+Trim(ddlb_1.Text)+'的盘点表成功!')
  356. end subroutine
  357. public function integer wf_init_pdb ();String ls_pdbdate
  358. ddlb_1.setredraw(false)
  359. ddlb_1.reset()
  360. DECLARE pdbdate_cur CURSOR FOR
  361. SELECT DISTINCT (pdbdate)
  362. FROM ow_wfjg_sptpdb
  363. Where (ow_wfjg_sptpdb.sptid = :cur_sptid)
  364. and (ow_wfjg_sptpdb.scid = :il_scid or :il_scid = -1 )
  365. order by pdbdate desc;
  366. OPEN pdbdate_cur;
  367. FETCH pdbdate_cur INTO :ls_pdbdate;
  368. ins_pdbdate = ls_pdbdate
  369. DO WHILE sqlca.SQLCode = 0 //循环读取明细数据
  370. ddlb_1.AddItem (ls_pdbdate)
  371. FETCH pdbdate_cur INTO :ls_pdbdate;
  372. LOOP
  373. CLOSE pdbdate_cur;
  374. ddlb_1.Text = ins_pdbdate
  375. ddlb_1.setredraw(true)
  376. return 1
  377. end function
  378. public function integer wf_check_ifmtrlware (ref string arg_msg);// //
  379. Long i,rowcnt,rslt = 1
  380. Long ls_mtrlwareid,ls_mtrlid,ls_sptid
  381. String ls_mtrlcode
  382. String ls_plancode
  383. String ls_status,ls_woodcode,ls_pcode
  384. Decimal ls_qty
  385. rowcnt = dw_1.RowCount( )
  386. ls_sptid = cur_sptid
  387. Open(w_sys_wait_jdt) //初始化进度条
  388. w_sys_wait_jdt.Show()
  389. w_sys_wait_jdt.wf_accepttol(dw_1.RowCount()) //初始化进度条1
  390. FOR i = 1 TO rowcnt
  391. w_sys_wait_jdt.st_msg.Text = "处理:"+ls_mtrlcode //进度信息
  392. w_sys_wait_jdt.wf_inc(i) //进度
  393. ls_mtrlwareid = dw_1.Object.ow_wfjg_sptpdb_mtrlwareid[i]
  394. ls_mtrlid = dw_1.Object.mtrlid[i]
  395. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[i]
  396. ls_plancode = dw_1.Object.ow_wfjg_sptpdb_plancode[i]
  397. ls_status = dw_1.Object.ow_wfjg_sptpdb_status[i]
  398. ls_woodcode = dw_1.Object.ow_wfjg_sptpdb_woodcode[i]
  399. ls_pcode = dw_1.Object.ow_wfjg_sptpdb_pcode[i]
  400. ls_qty = dw_1.Object.qty[i]
  401. IF ls_mtrlwareid > 0 THEN CONTINUE
  402. IF f_insert_0_sptware(il_scid,ls_mtrlwareid,ls_mtrlid,ls_mtrlcode,ls_sptid,ls_status,ls_woodcode,ls_pcode,ls_plancode,0,arg_msg) = 0 THEN
  403. rslt = 0
  404. GOTO ext
  405. ELSE
  406. dw_1.Object.ow_wfjg_sptpdb_mtrlwareid[i] = ls_mtrlwareid
  407. END IF
  408. NEXT
  409. dw_1.AcceptText( )
  410. ext:
  411. Close(w_sys_wait_jdt)
  412. RETURN rslt
  413. end function
  414. public function integer wf_inspt (date arg_enddate);String ls_waredate
  415. String arg_msg
  416. DateTime st_date,ed_date,ls_serverdate
  417. IF MessageBox("IF","你是否要盘点"+String(arg_enddate,'yyyy-mm-dd')+"的库存吗?",Exclamation!, OKCancel!, 2) = 2 THEN
  418. GOTO ext
  419. END IF
  420. ls_waredate = String(arg_enddate,'yyyymmdd')
  421. IF cur_sptid <= 0 THEN
  422. MessageBox('系统提示:','请选择要盘点的外协商')
  423. RETURN 0
  424. END IF
  425. SELECT Top 1 getdate() INTO :ls_serverdate FROM u_user ;
  426. //取得系统时间,借用操作员表
  427. IF sqlca.SQLCode <> 0 THEN
  428. MessageBox('系统提示:','查询操作失败,日期'+sqlca.SQLErrText)
  429. RETURN 0
  430. END IF
  431. //**********************************************************
  432. st_date = DateTime(RelativeDate(Date(arg_enddate),1),Time('0:0'))
  433. ed_date = DateTime(RelativeDate(Date(ls_serverdate),1),Time('0:0'))
  434. IF st_date > ed_date THEN
  435. MessageBox('系统提示:','盘点日期不能大过于当前日期'+sqlca.SQLErrText)
  436. RETURN 0
  437. END IF
  438. //选择单位
  439. Long li_unit //0-库存单位,1-辅单位1 ,2-辅单位2,3-辅单位3 , -1 - 取消
  440. Open(w_mtrl_unit_ch)
  441. li_unit = Message.DoubleParm
  442. IF li_unit = -1 THEN RETURN 0
  443. // //
  444. DELETE u_parm_balcdate_sptpdb ;
  445. IF sqlca.SQLCode <> 0 THEN
  446. ROLLBACK ;
  447. MessageBox(publ_operator,"因网络或其它原因导致操作失败,请重试!")
  448. RETURN 0
  449. END IF
  450. INSERT INTO u_parm_balcdate_sptpdb (first_date,end_date) Values (:st_date,:ed_date) ;
  451. IF sqlca.SQLCode <> 0 THEN
  452. ROLLBACK ;
  453. MessageBox(publ_operator,"因网络或其它原因导致操作失败,请重试!")
  454. RETURN 0
  455. ELSE
  456. COMMIT ;
  457. END IF
  458. INSERT INTO ow_wfjg_sptpdb (
  459. scid,
  460. flag,
  461. pdbdate,
  462. mtrlwareid,
  463. mtrlid,
  464. sptid,
  465. plancode,
  466. Status,
  467. planprice,
  468. newprice,
  469. woodcode,
  470. pcode,
  471. cost,
  472. qty,
  473. factqty,
  474. wareamt,
  475. uqty,
  476. unit,
  477. rate)
  478. SELECT :il_scid,
  479. 0,
  480. :ls_waredate ,
  481. ow_wfjgware.mtrlwareid,
  482. ow_wfjgware.mtrlid,
  483. ow_wfjgware.sptid,
  484. ow_wfjgware.plancode,
  485. ow_wfjgware.status,
  486. u_mtrldef.planprice,
  487. ow_wfjgware.newprice,
  488. ow_wfjgware.woodcode,
  489. ow_wfjgware.pcode,
  490. ow_wfjgware.cost,
  491. ow_wfjgware.noallocqty + ISNULL(uv_pdb_outware_sptpdb.desqty, 0) - ISNULL(uv_pdb_inware_sptpdb.incqty, 0) ,
  492. 0,
  493. ow_wfjgware.wareamt + ISNULL(uv_pdb_outware_sptpdb.desamt, 0) - ISNULL(uv_pdb_inware_sptpdb.incamt, 0) ,
  494. 0 ,
  495. case :li_unit when 0 then (u_mtrldef.unit)
  496. when 1 then (case u_mtrldef.rate_buy when 0 then u_mtrldef.unit else u_mtrldef.unit_buy END )
  497. when 2 then (case u_mtrldef.rate_scll when 0 then u_mtrldef.unit else u_mtrldef.unit_scll END)
  498. when 3 then (case u_mtrldef.rate_sale when 0 then u_mtrldef.unit else u_mtrldef.unit_sale END) END ,
  499. case :li_unit when 0 then (1)
  500. when 1 then (case u_mtrldef.rate_buy when 0 then 1 else u_mtrldef.rate_buy END )
  501. when 2 then (case u_mtrldef.rate_scll when 0 then 1 else u_mtrldef.rate_scll END)
  502. when 3 then (case u_mtrldef.rate_sale when 0 then 1 else u_mtrldef.rate_sale END) END
  503. FROM ow_wfjgware INNER JOIN
  504. u_mtrldef ON ow_wfjgware.mtrlid = u_mtrldef.mtrlid LEFT OUTER JOIN
  505. uv_pdb_outware_sptpdb ON ow_wfjgware.sptid = uv_pdb_outware_sptpdb.sptid AND
  506. ow_wfjgware.mtrlid = uv_pdb_outware_sptpdb.mtrlid AND
  507. ow_wfjgware.plancode = uv_pdb_outware_sptpdb.plancode AND
  508. ow_wfjgware.status = uv_pdb_outware_sptpdb.status AND
  509. ow_wfjgware.woodcode = uv_pdb_outware_sptpdb.woodcode AND
  510. ow_wfjgware.pcode = uv_pdb_outware_sptpdb.pcode LEFT OUTER JOIN
  511. uv_pdb_inware_sptpdb ON ow_wfjgware.sptid = uv_pdb_inware_sptpdb.sptid AND
  512. ow_wfjgware.mtrlid = uv_pdb_inware_sptpdb.mtrlid AND
  513. ow_wfjgware.plancode = uv_pdb_inware_sptpdb.plancode AND
  514. ow_wfjgware.status = uv_pdb_inware_sptpdb.status AND
  515. ow_wfjgware.woodcode = uv_pdb_inware_sptpdb.woodcode AND
  516. ow_wfjgware.pcode = uv_pdb_inware_sptpdb.pcode
  517. WHERE ow_wfjgware.sptid = :cur_sptid AND
  518. ow_wfjgware.scid = :il_scid;
  519. IF sqlca.SQLCode <> 0 THEN
  520. IF Pos(sqlca.SQLErrText,'Cannot insert duplicate key in') > 0 THEN
  521. arg_msg = '该外协商当前日期的盘点表已经存!'
  522. ELSE
  523. arg_msg = ''
  524. END IF
  525. MessageBox('系统提示','生成当前期的盘点表失败!~n原因是:'+sqlca.SQLErrText)
  526. ROLLBACK;
  527. GOTO ext
  528. END IF
  529. COMMIT;
  530. MessageBox('系统提示','生成'+String(arg_enddate,'yyyy-mm-dd')+'的盘点表成功!')
  531. ext:
  532. RETURN 1
  533. end function
  534. public function integer wf_audit (long arg_scid, long arg_sptid, string arg_pdbdate, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  535. Long cnt
  536. SELECT count(*) INTO :cnt
  537. FROM u_scdef
  538. Where scid = :arg_scid;
  539. IF sqlca.SQLCode <> 0 THEN
  540. arg_msg = '查询分部资料失败'+sqlca.SQLErrText
  541. rslt = 0
  542. GOTO ext
  543. END IF
  544. IF cnt <> 1 THEN
  545. arg_msg = '分部资料不存在或重复,请检查'
  546. rslt = 0
  547. GOTO ext
  548. END IF
  549. cnt = 0
  550. SELECT count(*) INTO :cnt
  551. FROM u_spt
  552. Where sptid = :arg_sptid;
  553. IF sqlca.SQLCode <> 0 THEN
  554. arg_msg = '查询外协商资料失败'+sqlca.SQLErrText
  555. rslt = 0
  556. GOTO ext
  557. END IF
  558. IF cnt <> 1 THEN
  559. arg_msg = '外协商资料不存在或重复,请检查'
  560. rslt = 0
  561. GOTO ext
  562. END IF
  563. cnt = 0
  564. SELECT count(*) INTO :cnt
  565. FROM ow_wfjg_sptpdb
  566. WHERE sptid = :arg_sptid
  567. AND pdbdate = :arg_pdbdate
  568. AND scid = :arg_scid;
  569. IF sqlca.SQLCode <> 0 THEN
  570. arg_msg = '查询盘点表失败,'+sqlca.SQLErrText
  571. rslt = 0
  572. GOTO ext
  573. END IF
  574. IF cnt = 0 THEN
  575. arg_msg = '盘点表没有盘点内容,不能审核'
  576. rslt = 0
  577. GOTO ext
  578. END IF
  579. cnt = 0
  580. SELECT count(*) INTO :cnt
  581. FROM ow_wfjg_sptpdb
  582. WHERE sptid = :arg_sptid
  583. AND pdbdate = :arg_pdbdate
  584. AND scid = :arg_scid
  585. AND flag = 1;
  586. IF sqlca.SQLCode <> 0 THEN
  587. arg_msg = '查询盘点表是否已审核失败,'+sqlca.SQLErrText
  588. rslt = 0
  589. GOTO ext
  590. END IF
  591. IF cnt > 0 THEN
  592. arg_msg = '盘点表已审核,不能审核'
  593. rslt = 0
  594. GOTO ext
  595. END IF
  596. UPDATE ow_wfjg_sptpdb
  597. SET flag = 1,
  598. auditemp = :arg_opemp,
  599. auditdate = getdate()
  600. WHERE sptid = :arg_sptid
  601. AND pdbdate = :arg_pdbdate
  602. AND scid = :arg_scid;
  603. IF sqlca.SQLCode <> 0 THEN
  604. arg_msg = '更新盘点表审核标记失败,'+sqlca.SQLErrText
  605. rslt = 0
  606. GOTO ext
  607. END IF
  608. ext:
  609. IF rslt = 0 THEN
  610. ROLLBACK;
  611. ELSEIF rslt = 1 AND arg_ifcommit THEN
  612. COMMIT;
  613. END IF
  614. RETURN rslt
  615. end function
  616. public function integer wf_caudit (long arg_scid, long arg_sptid, string arg_pdbdate, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1
  617. Long cnt
  618. datetime null_dt
  619. setnull(null_dt)
  620. SELECT count(*) INTO :cnt
  621. FROM u_scdef
  622. Where scid = :arg_scid;
  623. IF sqlca.SQLCode <> 0 THEN
  624. arg_msg = '查询分部资料失败,'+sqlca.SQLErrText
  625. rslt = 0
  626. GOTO ext
  627. END IF
  628. IF cnt <> 1 THEN
  629. arg_msg = '分部资料不存在或重复,请检查'
  630. rslt = 0
  631. GOTO ext
  632. END IF
  633. SELECT count(*) INTO :cnt
  634. FROM u_spt
  635. Where sptid = :arg_sptid;
  636. IF sqlca.SQLCode <> 0 THEN
  637. arg_msg = '查询外协商资料失败,'+sqlca.SQLErrText
  638. rslt = 0
  639. GOTO ext
  640. END IF
  641. IF cnt <> 1 THEN
  642. arg_msg = '外协商资料不存在或重复,请检查'
  643. rslt = 0
  644. GOTO ext
  645. END IF
  646. cnt = 0
  647. SELECT count(*) INTO :cnt
  648. FROM ow_wfjg_sptpdb
  649. WHERE sptid = :arg_sptid
  650. and scid = :arg_scid
  651. AND pdbdate = :arg_pdbdate;
  652. IF sqlca.SQLCode <> 0 THEN
  653. arg_msg = '查询盘点表失败,'+sqlca.SQLErrText
  654. rslt = 0
  655. GOTO ext
  656. END IF
  657. IF cnt = 0 THEN
  658. arg_msg = '盘点表没有盘点内容,不能撤审'
  659. rslt = 0
  660. GOTO ext
  661. END IF
  662. cnt = 0
  663. SELECT count(*) INTO :cnt
  664. FROM ow_wfjg_sptpdb
  665. WHERE sptid = :arg_sptid
  666. and scid = :Arg_scid
  667. AND pdbdate = :arg_pdbdate
  668. AND flag = 0;
  669. IF sqlca.SQLCode <> 0 THEN
  670. arg_msg = '查询盘点表是否未审核失败,'+sqlca.SQLErrText
  671. rslt = 0
  672. GOTO ext
  673. END IF
  674. IF cnt > 0 THEN
  675. arg_msg = '盘点表未审核,不能撤审'
  676. rslt = 0
  677. GOTO ext
  678. END IF
  679. long ll_inwareid_pk,ll_scid_pk,ll_outwareid_py,ll_scid_py //撤审删除自动类型盘盈亏单据
  680. uo_wfjg_py uo_ware_py
  681. uo_ware_py = Create uo_wfjg_py
  682. uo_ware_py.commit_transaction = sqlca
  683. uo_inware_wfjg uo_ware_pk
  684. uo_ware_pk = Create uo_inware_wfjg
  685. uo_ware_pk.commit_transaction = sqlca
  686. Open(w_sys_wait_2jdt) //初始化进度条
  687. w_sys_wait_2jdt.wf_inc(1) //进度
  688. w_sys_wait_2jdt.st_msg.Text = "正在取消外协商盘亏单......"
  689. SELECT count(*)
  690. INTO :cnt
  691. FROM ow_wfjg_in
  692. WHERE billtype = 9
  693. AND dscrp = '电脑生成的'+:ins_pdbdate+'的盘亏单'
  694. And sptid = :cur_sptid;
  695. IF sqlca.SQLNRows <= 0 THEN
  696. arg_msg = '查询外协商盘亏单id失败,'+sqlca.SQLErrText
  697. rslt = 0
  698. GOTO ext
  699. END IF
  700. IF cnt > 0 THEN
  701. SELECT inwareid,scid
  702. INTO :ll_inwareid_pk,:ll_scid_pk
  703. FROM ow_wfjg_in
  704. WHERE billtype = 9
  705. AND dscrp = '电脑生成的'+:ins_pdbdate+'的盘亏单'
  706. And sptid = :cur_sptid;
  707. IF sqlca.SQLNRows <= 0 THEN
  708. arg_msg = '查询外协商盘亏单id失败,'+sqlca.SQLErrText
  709. rslt = 0
  710. GOTO ext
  711. END IF
  712. IF uo_ware_pk.getinfo(ll_scid_pk,ll_inwareid_pk,arg_msg) = 0 THEN
  713. rslt = 0
  714. GOTO ext
  715. END IF
  716. IF uo_ware_pk.c_auditing(False,arg_msg) = 0 THEN
  717. rslt = 0
  718. GOTO ext
  719. END IF
  720. IF uo_ware_pk.del(ll_scid_pk,ll_inwareid_pk,arg_msg,False) = 0 THEN
  721. rslt = 0
  722. GOTO ext
  723. END IF
  724. END IF
  725. w_sys_wait_2jdt.wf_inc(2) //进度
  726. w_sys_wait_2jdt.st_msg.Text = "正在取消外协商盘盈单......"
  727. SELECT count(*)
  728. INTO :cnt
  729. FROM ow_wfjg_out
  730. WHERE billtype = 9
  731. AND dscrp = '电脑生成的'+:ins_pdbdate+'的盘盈单'
  732. And sptid = :cur_sptid;
  733. IF sqlca.SQLCode <> 0 THEN
  734. arg_msg = '查询外协商盘盈单id失败,'+sqlca.SQLErrText
  735. rslt = 0
  736. GOTO ext
  737. END IF
  738. IF cnt > 0 THEN
  739. SELECT outwareid,scid
  740. INTO :ll_outwareid_py,:ll_scid_py
  741. FROM ow_wfjg_out
  742. WHERE billtype = 9
  743. AND dscrp = '电脑生成的'+:ins_pdbdate+'的盘盈单'
  744. And sptid = :cur_sptid;
  745. IF sqlca.SQLCode <> 0 THEN
  746. arg_msg = '查询外协商盘盈单id失败,'+sqlca.SQLErrText
  747. rslt = 0
  748. GOTO ext
  749. END IF
  750. IF uo_ware_py.getinfo(ll_scid_py,ll_outwareid_py,arg_msg) = 0 THEN
  751. rslt = 0
  752. GOTO ext
  753. END IF
  754. IF uo_ware_py.c_auditing(False,arg_msg) = 0 THEN
  755. rslt = 0
  756. GOTO ext
  757. END IF
  758. IF uo_ware_py.del(ll_scid_py,ll_outwareid_py,arg_msg,False) = 0 THEN
  759. rslt = 0
  760. GOTO ext
  761. END IF
  762. END IF
  763. Close(w_sys_wait_2jdt)//关闭进度条
  764. UPDATE ow_wfjg_sptpdb
  765. SET flag = 0,
  766. auditemp = '',
  767. auditdate = :null_dt
  768. WHERE sptid = :arg_sptid
  769. and scid = :arg_scid
  770. AND pdbdate = :arg_pdbdate;
  771. IF sqlca.SQLCode <> 0 THEN
  772. arg_msg = '更新盘点表审核标记失败,'+sqlca.SQLErrText
  773. rslt = 0
  774. GOTO ext
  775. END IF
  776. ext:
  777. IF rslt = 0 THEN
  778. ROLLBACK;
  779. ELSEIF rslt = 1 AND arg_ifcommit THEN
  780. COMMIT;
  781. END IF
  782. RETURN rslt
  783. end function
  784. public subroutine wf_flagstatus_rf (long arg_scid, long arg_sptid, string arg_pdbdate);
  785. IF arg_scid = - 1 OR arg_sptid = -1 or arg_pdbdate = '' THEN
  786. IF arg_scid = - 1 or arg_sptid = -1 THEN
  787. cb_3.Enabled = FALSE
  788. ELSE
  789. cb_3.Enabled = TRUE
  790. END IF
  791. cb_5.Enabled = FALSE
  792. cb_edit.Enabled = FALSE
  793. cb_del.Enabled = FALSE
  794. cb_addmx.Enabled = FALSE
  795. cb_delmx.Enabled = FALSE
  796. cb_4.Enabled = FALSE
  797. cb_audit.Enabled = FALSE
  798. cb_caudit.Enabled = FALSE
  799. ELSE
  800. Long ll_audit_cnt
  801. SELECT count(*) INTO :ll_audit_cnt
  802. FROM ow_wfjg_sptpdb
  803. WHERE sptid = :arg_sptid
  804. and scid = :arg_scid
  805. AND pdbdate = :arg_pdbdate
  806. AND flag = 1;
  807. IF sqlca.SQLCode <> 0 THEN ll_audit_cnt = -1
  808. IF IsNull(ll_audit_cnt) THEN ll_audit_cnt = -1
  809. IF ll_audit_cnt > 0 THEN ll_audit_cnt = 1
  810. CHOOSE CASE ll_audit_cnt
  811. CASE 0
  812. cb_3.Enabled = TRUE
  813. cb_5.Enabled = TRUE
  814. cb_edit.Enabled = TRUE
  815. cb_del.Enabled = FALSE
  816. cb_addmx.Enabled = FALSE
  817. cb_delmx.Enabled = FALSE
  818. cb_4.Enabled = TRUE
  819. cb_audit.Enabled = TRUE
  820. cb_caudit.Enabled = FALSE
  821. CASE 1
  822. cb_3.Enabled = TRUE
  823. cb_5.Enabled = FALSE
  824. cb_edit.Enabled = FALSE
  825. cb_del.Enabled = FALSE
  826. cb_addmx.Enabled = FALSE
  827. cb_delmx.Enabled = FALSE
  828. cb_4.Enabled = FALSE
  829. cb_audit.Enabled = FALSE
  830. cb_caudit.Enabled = TRUE
  831. CASE -1
  832. cb_3.Enabled = TRUE
  833. cb_5.Enabled = FALSE
  834. cb_edit.Enabled = FALSE
  835. cb_del.Enabled = FALSE
  836. cb_addmx.Enabled = FALSE
  837. cb_delmx.Enabled = FALSE
  838. cb_4.Enabled = FALSE
  839. cb_audit.Enabled = FALSE
  840. cb_caudit.Enabled = FALSE
  841. END CHOOSE
  842. END IF
  843. end subroutine
  844. public subroutine wf_init_spt ();Long ls_sptid
  845. String ls_sptname
  846. Long cnt = 0
  847. long ll_i
  848. string ls_space
  849. int li_spacenum
  850. ddlb_sptid.setredraw(false)
  851. ddlb_sptid.reset()
  852. DECLARE find_wfjgspt CURSOR FOR
  853. SELECT DISTINCT DERIVEDTBL.sptid, u_spt.name
  854. FROM (SELECT DISTINCT sptid
  855. FROM ow_wfjgware
  856. where (scid = :il_scid or :il_scid = -1)
  857. UNION ALL
  858. SELECT DISTINCT sptid
  859. FROM ow_wfjgbalc
  860. where (scid = :il_scid or :il_scid = -1)) DERIVEDTBL INNER JOIN
  861. u_spt ON DERIVEDTBL.sptid = u_spt.sptid;
  862. open find_wfjgspt;
  863. fetch find_wfjgspt into :ls_sptid,:ls_sptname ;
  864. do while sqlca.sqlcode =0
  865. li_spacenum = 50 - len(trim(ls_sptname)) - 2 - len(string(ls_sptid))
  866. ls_space = fill(' ',li_spacenum)
  867. ddlb_sptid.AddItem (ls_sptname+ls_space+'['+String(ls_sptid)+']')
  868. fetch find_wfjgspt into :ls_sptid,:ls_sptname ;
  869. loop
  870. close find_wfjgspt;
  871. ddlb_sptid.uo_sptid = ls_sptid
  872. ddlb_sptid.Text = ls_sptname+ls_space+'['+String(ls_sptid)+']'
  873. cur_sptid = ls_sptid
  874. SELECT count(*)
  875. into :cnt
  876. FROM ow_wfjgbalc
  877. where ow_wfjgbalc.balcdateint = 0
  878. and (scid = :il_scid or :il_scid = -1);
  879. IF cnt > 1 THEN
  880. ddlb_sptid.AddItem ('[全部]')
  881. END IF
  882. ddlb_sptid.setredraw(true)
  883. end subroutine
  884. on w_wfjg_sptpdb.create
  885. int iCurrent
  886. call super::create
  887. this.cb_3=create cb_3
  888. this.cb_edit=create cb_edit
  889. this.cb_del=create cb_del
  890. this.cb_4=create cb_4
  891. this.cb_5=create cb_5
  892. this.st_5=create st_5
  893. this.cb_addmx=create cb_addmx
  894. this.cb_delmx=create cb_delmx
  895. this.ddlb_1=create ddlb_1
  896. this.ddlb_sptid=create ddlb_sptid
  897. this.ddlb_scid=create ddlb_scid
  898. this.st_1=create st_1
  899. this.cb_audit=create cb_audit
  900. this.cb_caudit=create cb_caudit
  901. this.cbx_auto_audit=create cbx_auto_audit
  902. this.cb_6=create cb_6
  903. iCurrent=UpperBound(this.Control)
  904. this.Control[iCurrent+1]=this.cb_3
  905. this.Control[iCurrent+2]=this.cb_edit
  906. this.Control[iCurrent+3]=this.cb_del
  907. this.Control[iCurrent+4]=this.cb_4
  908. this.Control[iCurrent+5]=this.cb_5
  909. this.Control[iCurrent+6]=this.st_5
  910. this.Control[iCurrent+7]=this.cb_addmx
  911. this.Control[iCurrent+8]=this.cb_delmx
  912. this.Control[iCurrent+9]=this.ddlb_1
  913. this.Control[iCurrent+10]=this.ddlb_sptid
  914. this.Control[iCurrent+11]=this.ddlb_scid
  915. this.Control[iCurrent+12]=this.st_1
  916. this.Control[iCurrent+13]=this.cb_audit
  917. this.Control[iCurrent+14]=this.cb_caudit
  918. this.Control[iCurrent+15]=this.cbx_auto_audit
  919. this.Control[iCurrent+16]=this.cb_6
  920. end on
  921. on w_wfjg_sptpdb.destroy
  922. call super::destroy
  923. destroy(this.cb_3)
  924. destroy(this.cb_edit)
  925. destroy(this.cb_del)
  926. destroy(this.cb_4)
  927. destroy(this.cb_5)
  928. destroy(this.st_5)
  929. destroy(this.cb_addmx)
  930. destroy(this.cb_delmx)
  931. destroy(this.ddlb_1)
  932. destroy(this.ddlb_sptid)
  933. destroy(this.ddlb_scid)
  934. destroy(this.st_1)
  935. destroy(this.cb_audit)
  936. destroy(this.cb_caudit)
  937. destroy(this.cbx_auto_audit)
  938. destroy(this.cb_6)
  939. end on
  940. event open;call super::open;s_hide_col s_col
  941. s_col.col_1 = 'ow_wfjg_sptpdb_wareamt'
  942. //f_hide_col(121,dw_1,s_col)
  943. f_hide_col(1448,dw_1,s_col)
  944. wf_init_pdb()
  945. cb_1.triggerevent(clicked!)
  946. end event
  947. event ue_before_open;call super::ue_before_open;
  948. if_ue_filter=true
  949. if_ue_sort=true
  950. if_ue_sentdataout=true
  951. end event
  952. type cb_func from w_publ_easyq`cb_func within w_wfjg_sptpdb
  953. integer x = 1911
  954. integer width = 165
  955. end type
  956. type cb_exit from w_publ_easyq`cb_exit within w_wfjg_sptpdb
  957. integer x = 2638
  958. integer width = 165
  959. end type
  960. type cb_2 from w_publ_easyq`cb_2 within w_wfjg_sptpdb
  961. integer x = 2331
  962. integer width = 165
  963. integer taborder = 100
  964. boolean bringtotop = true
  965. end type
  966. type cb_psetup from w_publ_easyq`cb_psetup within w_wfjg_sptpdb
  967. integer x = 2075
  968. boolean bringtotop = true
  969. end type
  970. type cb_1 from w_publ_easyq`cb_1 within w_wfjg_sptpdb
  971. integer width = 165
  972. boolean bringtotop = true
  973. end type
  974. event cb_1::clicked;call super::clicked;dw_1.retrieve(il_scid,cur_sptid,ins_pdbdate)
  975. wf_flagstatus_rf(il_scid,cur_sptid,ins_pdbdate)
  976. end event
  977. type st_3 from w_publ_easyq`st_3 within w_wfjg_sptpdb
  978. boolean visible = false
  979. integer x = 0
  980. integer y = 328
  981. end type
  982. type st_4 from w_publ_easyq`st_4 within w_wfjg_sptpdb
  983. integer x = 750
  984. integer y = 204
  985. integer width = 206
  986. boolean enabled = true
  987. string text = "外协商:"
  988. end type
  989. type em_1 from w_publ_easyq`em_1 within w_wfjg_sptpdb
  990. boolean visible = false
  991. integer x = 210
  992. integer y = 324
  993. integer taborder = 110
  994. end type
  995. type em_2 from w_publ_easyq`em_2 within w_wfjg_sptpdb
  996. boolean visible = false
  997. integer x = 667
  998. integer y = 316
  999. integer taborder = 120
  1000. end type
  1001. type ddlb_yl from w_publ_easyq`ddlb_yl within w_wfjg_sptpdb
  1002. integer x = 3310
  1003. integer y = 36
  1004. end type
  1005. type cbx_yl from w_publ_easyq`cbx_yl within w_wfjg_sptpdb
  1006. integer x = 3104
  1007. integer y = 36
  1008. end type
  1009. type dw_1 from w_publ_easyq`dw_1 within w_wfjg_sptpdb
  1010. integer y = 300
  1011. integer width = 3278
  1012. integer height = 1064
  1013. string dataobject = "dw_rp_wfjg_sptpdb"
  1014. end type
  1015. event dw_1::rowfocuschanged;call super::rowfocuschanged;IF currentrow <=0 THEN RETURN
  1016. this.selectrow(0,false)
  1017. this.selectrow(currentrow,true)
  1018. end event
  1019. event dw_1::clicked;call super::clicked;IF row > 0 THEN
  1020. THIS.SelectRow(0,FALSE)
  1021. THIS.SelectRow(row,TRUE)
  1022. this.setrow(row)
  1023. END IF
  1024. end event
  1025. event dw_1::doubleclicked;call super::doubleclicked;IF dw_edit_mode THEN
  1026. IF row > 0 THEN
  1027. IF dwo.Name = 'ow_wfjg_sptpdb_unit' THEN
  1028. PARENT.TriggerEvent('ue_unit_ch')
  1029. END IF
  1030. END IF
  1031. END IF
  1032. end event
  1033. type sle_mtrl from w_publ_easyq`sle_mtrl within w_wfjg_sptpdb
  1034. end type
  1035. type sle_cust from w_publ_easyq`sle_cust within w_wfjg_sptpdb
  1036. end type
  1037. type st_mtrl from w_publ_easyq`st_mtrl within w_wfjg_sptpdb
  1038. end type
  1039. type st_cust from w_publ_easyq`st_cust within w_wfjg_sptpdb
  1040. end type
  1041. type cbx_loginretr from w_publ_easyq`cbx_loginretr within w_wfjg_sptpdb
  1042. end type
  1043. type pb_em1 from w_publ_easyq`pb_em1 within w_wfjg_sptpdb
  1044. boolean visible = false
  1045. integer x = 823
  1046. integer y = 296
  1047. end type
  1048. type pb_em2 from w_publ_easyq`pb_em2 within w_wfjg_sptpdb
  1049. boolean visible = false
  1050. integer x = 1102
  1051. integer y = 308
  1052. end type
  1053. type pb_2 from w_publ_easyq`pb_2 within w_wfjg_sptpdb
  1054. boolean visible = false
  1055. integer x = 1280
  1056. integer y = 296
  1057. end type
  1058. type cb_help from w_publ_easyq`cb_help within w_wfjg_sptpdb
  1059. integer x = 2496
  1060. end type
  1061. type cb_copyself from w_publ_easyq`cb_copyself within w_wfjg_sptpdb
  1062. end type
  1063. type gb_1 from w_publ_easyq`gb_1 within w_wfjg_sptpdb
  1064. integer x = 0
  1065. integer y = 456
  1066. integer width = 3278
  1067. integer height = 260
  1068. end type
  1069. type ln_bar from w_publ_easyq`ln_bar within w_wfjg_sptpdb
  1070. integer beginx = -46
  1071. integer endx = 1961
  1072. end type
  1073. type ln_bar2 from w_publ_easyq`ln_bar2 within w_wfjg_sptpdb
  1074. integer beginx = -46
  1075. integer endx = 1993
  1076. end type
  1077. type r_bar from w_publ_easyq`r_bar within w_wfjg_sptpdb
  1078. integer x = 2779
  1079. end type
  1080. type ln_1 from w_publ_easyq`ln_1 within w_wfjg_sptpdb
  1081. end type
  1082. type ln_2 from w_publ_easyq`ln_2 within w_wfjg_sptpdb
  1083. end type
  1084. type ln_3 from w_publ_easyq`ln_3 within w_wfjg_sptpdb
  1085. end type
  1086. type ln_4 from w_publ_easyq`ln_4 within w_wfjg_sptpdb
  1087. end type
  1088. type cb_3 from uo_imflatbutton within w_wfjg_sptpdb
  1089. integer x = 165
  1090. integer width = 165
  1091. integer height = 164
  1092. integer taborder = 20
  1093. boolean bringtotop = true
  1094. string text = "盘点"
  1095. string normalpicname = "other.bmp"
  1096. integer picsize = 16
  1097. toolbaralignment pic_align = alignattop!
  1098. boolean border = false
  1099. end type
  1100. event clicked;call super::clicked;
  1101. IF NOT f_power_ind(1431) THEN
  1102. MessageBox(publ_operator,'你没有使用权限!')
  1103. RETURN
  1104. END IF
  1105. String ls_pdb
  1106. Date ld_pdbdate
  1107. DateTime ldt_pdbdate
  1108. Long cnt
  1109. String arg_msg
  1110. IF il_scid < 0 THEN
  1111. MessageBox('系统提示',"请选择分部")
  1112. RETURN
  1113. END IF
  1114. IF cur_sptid <= 0 THEN
  1115. MessageBox('系统提示',"请选择外协商")
  1116. RETURN
  1117. END IF
  1118. OpenWithParm(w_pdb_date,'盘点日期')
  1119. s_edit_index_tran s_tran8
  1120. s_tran8 = Message.PowerObjectParm
  1121. ls_pdb = s_tran8.b_string
  1122. IF ls_pdb = '' THEN RETURN
  1123. ld_pdbdate = Date(Trim(ls_pdb))
  1124. ldt_pdbdate = DateTime(ld_pdbdate,Time('23:59:59'))
  1125. IF Year(ld_pdbdate) < 2000 OR IsNull(ld_pdbdate) THEN
  1126. MessageBox('系统提示',"缺少盘点发生时间或不合理")
  1127. RETURN
  1128. END IF
  1129. cnt = 0
  1130. SELECT count(*) INTO :cnt
  1131. FROM ow_wfjg_out
  1132. WHERE sptid = :cur_sptid
  1133. AND scid = :il_scid
  1134. AND outdate > :ldt_pdbdate
  1135. AND flag = 1;
  1136. IF sqlca.SQLCode <> 0 THEN
  1137. MessageBox('系统提示',"查询盘点发生时间"+String(ld_pdbdate,'yyyy-mm-dd')+"后是否有外协出仓单审核操作失败")
  1138. RETURN
  1139. END IF
  1140. IF cnt > 0 THEN
  1141. IF MessageBox ("IF","盘点发生时间"+String(ld_pdbdate,'yyyy-mm-dd')+"后有外协出仓单已审核,是否继续盘点?",Question!,YesNo! ) = 2 THEN RETURN
  1142. END IF
  1143. //检查单据
  1144. IF uf_spt_warebalc_check_inoutflag(il_scid,cur_sptid,ldt_pdbdate,arg_msg) = 0 THEN
  1145. MessageBox('系统提示',arg_msg)
  1146. RETURN
  1147. END IF
  1148. wf_inspt(ld_pdbdate)
  1149. wf_init_pdb()
  1150. cb_1.TriggerEvent(Clicked!)
  1151. end event
  1152. type cb_edit from uo_imflatbutton within w_wfjg_sptpdb
  1153. integer x = 585
  1154. integer width = 165
  1155. integer height = 164
  1156. integer taborder = 30
  1157. boolean bringtotop = true
  1158. string text = "修改"
  1159. string normalpicname = "open.bmp"
  1160. integer picsize = 16
  1161. toolbaralignment pic_align = alignattop!
  1162. boolean border = false
  1163. end type
  1164. event clicked;call super::clicked;
  1165. IF NOT f_power_ind(1432) THEN
  1166. MessageBox(publ_operator,'你没有使用权限!')
  1167. RETURN
  1168. END IF
  1169. Int cnt = 0
  1170. String arg_msg
  1171. SELECT count(*)
  1172. INTO :cnt
  1173. FROM ow_wfjg_sptpdb
  1174. WHERE ow_wfjg_sptpdb.sptid = :cur_sptid
  1175. AND ow_wfjg_sptpdb.scid = :il_scid
  1176. AND ow_wfjg_sptpdb.pdbdate = :ins_pdbdate
  1177. AND flag = 1 USING sqlca;
  1178. IF sqlca.SQLCode < 0 THEN
  1179. MessageBox('系统提示:','查询操作失败,在盘点日:'+String(ins_pdbdate)+',外协商:'+Trim(ddlb_sptid.Text)+'的数据资料!')
  1180. RETURN
  1181. ELSE
  1182. IF cnt > 0 THEN
  1183. MessageBox('系统提示:','盘点日:'+String(ins_pdbdate)+',外协商:'+Trim(ddlb_sptid.Text)+'的盘点数据已经审核,不能修改!')
  1184. RETURN
  1185. END IF
  1186. END IF
  1187. Long ll_i
  1188. IF dw_edit_mode THEN
  1189. dw_1.accepttext()
  1190. dw_1.SetFilter('')
  1191. dw_1.Filter()
  1192. IF wf_check_ifmtrlware( arg_msg) = 0 THEN
  1193. MessageBox('系统提示:',arg_msg)
  1194. RETURN
  1195. END IF
  1196. //按转换率计算库存盘点数
  1197. FOR ll_i = 1 TO dw_1.RowCount()
  1198. dw_1.object.factqty[ll_i] = dw_1.object.ow_wfjg_sptpdb_uqty[ll_i] * dw_1.object.ow_wfjg_sptpdb_rate[ll_i]
  1199. NEXT
  1200. //
  1201. IF dw_1.Update() = -1 THEN
  1202. ROLLBACK;
  1203. MessageBox('系统提示:','当前盘点表保存失败!')
  1204. RETURN
  1205. ELSE
  1206. COMMIT;
  1207. MessageBox('系统提示:','当前盘点表保存成功!')
  1208. END IF
  1209. END IF
  1210. dw_edit_mode = NOT dw_edit_mode
  1211. wf_face()
  1212. IF NOT dw_edit_mode THEN cb_1.TriggerEvent(Clicked!)
  1213. end event
  1214. type cb_del from uo_imflatbutton within w_wfjg_sptpdb
  1215. integer x = 750
  1216. integer width = 165
  1217. integer height = 164
  1218. integer taborder = 40
  1219. boolean bringtotop = true
  1220. boolean enabled = false
  1221. string text = "取消"
  1222. string normalpicname = "undo.bmp"
  1223. integer picsize = 16
  1224. toolbaralignment pic_align = alignattop!
  1225. boolean border = false
  1226. end type
  1227. event clicked;call super::clicked;dw_edit_mode=false
  1228. wf_face()
  1229. cb_1.triggerevent(clicked!)
  1230. end event
  1231. type cb_4 from uo_imflatbutton within w_wfjg_sptpdb
  1232. integer x = 1568
  1233. integer width = 178
  1234. integer height = 164
  1235. integer taborder = 90
  1236. boolean bringtotop = true
  1237. string text = "审核"
  1238. string normalpicname = "update2.bmp"
  1239. integer picsize = 16
  1240. toolbaralignment pic_align = alignattop!
  1241. boolean border = false
  1242. end type
  1243. event clicked;call super::clicked;//生成盘盈盘亏单和审核盘点表改成在同一个按钮执行。
  1244. IF NOT f_power_ind(1431) THEN
  1245. MessageBox(publ_operator,'你没有使用权限!')
  1246. RETURN
  1247. END IF
  1248. Int rslt = 1
  1249. Long i,ls_sptid,ls_warepdbid,ls_mtrlid
  1250. String arg_msg
  1251. long cnt = 0
  1252. Decimal ld_cost
  1253. String ls_status,ls_plancode,ls_mtrlcode,ls_unit
  1254. Long ls_mtrlwareid
  1255. String ls_woodcode,ls_pcode
  1256. Decimal ls_planprice,ls_qty
  1257. Long ll_pycnt,ll_pkcnt
  1258. IF MessageBox ("if","是否确定要审核当前盘点?",question!,yesno! ) = 2 THEN RETURN
  1259. dw_1.SetRedraw( FALSE )
  1260. dw_1.SetFilter('')
  1261. dw_1.Filter()
  1262. dw_1.SetRedraw( TRUE )
  1263. IF cur_sptid <= 0 THEN
  1264. arg_msg = '请选择要盘点的外协商'
  1265. rslt = 0
  1266. GOTO ext
  1267. END IF
  1268. IF ins_pdbdate = '' THEN
  1269. arg_msg = '请选择盘点日'
  1270. rslt = 0
  1271. GOTO ext
  1272. END IF
  1273. SELECT count(*)
  1274. INTO :cnt
  1275. FROM ow_wfjg_sptpdb
  1276. WHERE ow_wfjg_sptpdb.sptid = :cur_sptid
  1277. AND ow_wfjg_sptpdb.pdbdate = :ins_pdbdate
  1278. AND flag = 0 USING sqlca;
  1279. IF sqlca.SQLCode < 0 THEN
  1280. arg_msg = '查询操作失败,在盘点日:'+String(ins_pdbdate)+',外协商:'+Trim(ddlb_sptid.Text)+'的数据资料!'
  1281. rslt = 0
  1282. GOTO ext
  1283. ELSE
  1284. IF cnt <= 0 THEN
  1285. arg_msg = '盘点日:'+String(ins_pdbdate)+',外协商:'+Trim(ddlb_sptid.Text)+'的盘点数据已经审核!'
  1286. rslt = 0
  1287. GOTO ext
  1288. END IF
  1289. END IF
  1290. FOR i = 1 TO dw_1.RowCount()
  1291. IF dw_1.Object.pypkqty[i] > 0 THEN
  1292. ll_pycnt++
  1293. ELSEIF dw_1.Object.pypkqty[i] < 0 THEN
  1294. ll_pkcnt++
  1295. END IF
  1296. NEXT
  1297. IF ll_pycnt > 0 THEN
  1298. uo_outware_wfjg uo_py
  1299. uo_py = CREATE uo_outware_wfjg
  1300. IF uo_py.newbegin(il_scid,9,arg_msg) = 0 THEN
  1301. arg_msg = 'error!/盘盈单'+arg_msg
  1302. rslt = 0
  1303. GOTO ext
  1304. END IF
  1305. uo_py.outdate = DateTime(Date(Left(ins_pdbdate,4)+'-'+Mid(ins_pdbdate,5,2)+'-'+Right(ins_pdbdate,2)),Time(0))
  1306. uo_py.outrep = publ_operator
  1307. uo_py.part = ''
  1308. uo_py.dscrp = '电脑生成的'+ins_pdbdate+'的盘盈单'
  1309. uo_py.sptid = cur_sptid
  1310. uo_py.sptname = cur_sptname
  1311. uo_py.commit_transaction = sqlca
  1312. uo_py.if_getid_ture = FALSE
  1313. END IF
  1314. IF ll_pkcnt > 0 THEN
  1315. uo_inware_wfjg uo_pk
  1316. uo_pk = CREATE uo_inware_wfjg
  1317. IF uo_pk.newbegin(il_scid,9,arg_msg) = 0 THEN
  1318. arg_msg = 'error!/盘亏单'+arg_msg
  1319. rslt = 0
  1320. GOTO ext
  1321. END IF
  1322. uo_pk.indate = DateTime(Date(Left(ins_pdbdate,4)+'-'+Mid(ins_pdbdate,5,2)+'-'+Right(ins_pdbdate,2)),Time(0))
  1323. uo_pk.inrep = publ_operator
  1324. uo_pk.part = ''
  1325. uo_pk.dscrp = '电脑生成的'+ins_pdbdate+'的盘亏单'
  1326. uo_pk.sptid = cur_sptid
  1327. uo_pk.sptname = cur_sptname
  1328. uo_pk.commit_transaction = sqlca
  1329. uo_pk.if_getid_ture = FALSE
  1330. END IF
  1331. Open(w_sys_wait_jdt) //初始化进度条
  1332. w_sys_wait_jdt.Show()
  1333. w_sys_wait_jdt.wf_accepttol(dw_1.RowCount()) //初始化进度条1
  1334. FOR i = 1 TO dw_1.RowCount()
  1335. ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[i]
  1336. ls_unit = dw_1.Object.u_mtrldef_unit[i]
  1337. w_sys_wait_jdt.st_msg.Text = "处理:"+ls_mtrlcode //进度信息
  1338. IF dw_1.Object.mtrlid[i] <= 0 THEN CONTINUE
  1339. IF dw_1.Object.pypkqty[i] = 0 THEN CONTINUE
  1340. ls_mtrlwareid = dw_1.Object.ow_wfjg_sptpdb_mtrlwareid[i]
  1341. ls_mtrlid = dw_1.Object.mtrlid[i]
  1342. ls_sptid = dw_1.Object.ow_wfjg_sptpdb_sptid[i]
  1343. ls_plancode = dw_1.Object.ow_wfjg_sptpdb_plancode[i]
  1344. ls_status = dw_1.Object.ow_wfjg_sptpdb_status[i]
  1345. ls_woodcode = dw_1.Object.ow_wfjg_sptpdb_woodcode[i]
  1346. ls_pcode = dw_1.Object.ow_wfjg_sptpdb_pcode[i]
  1347. ls_qty = dw_1.Object.qty[i]
  1348. SELECT planprice INTO :ls_planprice
  1349. FROM u_mtrldef
  1350. Where mtrlid = :ls_mtrlid;
  1351. IF sqlca.SQLCode <> 0 THEN
  1352. arg_msg = 'error!/查询计划价失败'+sqlca.SQLErrText
  1353. rslt = 0
  1354. GOTO ext
  1355. END IF
  1356. IF dw_1.Object.pypkqty[i] > 0 THEN
  1357. IF ll_pycnt > 0 THEN
  1358. IF uo_py.acceptmx(0,&
  1359. dw_1.Object.pypkqty[i],&
  1360. dw_1.Object.u_mtrldef_unit[i],&
  1361. dw_1.Object.pypkqty[i],&
  1362. '',&
  1363. i,&
  1364. arg_msg,0,0,0,&
  1365. dw_1.Object.mtrlid[i],0,0,&
  1366. ls_plancode,&
  1367. dw_1.Object.u_mtrldef_mtrlcode[i],&
  1368. ls_status,ls_woodcode,ls_pcode,&
  1369. ls_planprice,1,0,&
  1370. 1,'','') = 0 THEN
  1371. arg_msg = 'error!/盘盈单'+arg_msg
  1372. rslt = 0
  1373. GOTO ext
  1374. END IF
  1375. END IF
  1376. ELSEIF dw_1.Object.pypkqty[i] < 0 THEN
  1377. IF ll_pkcnt > 0 THEN
  1378. IF uo_pk.acceptmx_bef(ls_mtrlwareid,&
  1379. Abs(dw_1.Object.pypkqty[i]),0,&
  1380. '',&
  1381. i,arg_msg,&
  1382. '',dw_1.Object.pypkqty[i],1 ) = 0 THEN
  1383. MessageBox('error!',arg_msg)
  1384. ROLLBACK;
  1385. RETURN
  1386. END IF
  1387. END IF
  1388. END IF
  1389. w_sys_wait_jdt.wf_inc(i) //进度
  1390. NEXT
  1391. IF ll_pycnt > 0 THEN
  1392. IF uo_py.Save(FALSE,arg_msg) = 0 THEN
  1393. arg_msg = 'error!/盘盈单'+arg_msg
  1394. rslt = 0
  1395. GOTO ext
  1396. END IF
  1397. IF uo_py.getinfo(il_scid,uo_py.outwareid,arg_msg) = 0 THEN
  1398. arg_msg = 'error!/盘盈单'+arg_msg
  1399. rslt = 0
  1400. GOTO ext
  1401. END IF
  1402. IF uo_py.auditing(FALSE,arg_msg) = 0 THEN
  1403. arg_msg = 'error!/盘盈单'+arg_msg
  1404. rslt = 0
  1405. GOTO ext
  1406. END IF
  1407. END IF
  1408. IF ll_pkcnt > 0 THEN
  1409. IF uo_pk.Save(FALSE,arg_msg) = 0 THEN
  1410. arg_msg = 'error!/盘亏单'+arg_msg
  1411. rslt = 0
  1412. GOTO ext
  1413. END IF
  1414. IF uo_pk.getinfo(il_scid,uo_pk.inwareid,arg_msg) = 0 THEN
  1415. arg_msg = 'error!/盘亏单'+arg_msg
  1416. rslt = 0
  1417. GOTO ext
  1418. END IF
  1419. IF uo_pk.auditing(FALSE,arg_msg) = 0 THEN
  1420. arg_msg = 'error!/盘亏单'+arg_msg
  1421. rslt = 0
  1422. GOTO ext
  1423. END IF
  1424. END IF
  1425. //IF cbx_auto_audit.Checked THEN
  1426. IF wf_audit(il_scid,cur_sptid,ins_pdbdate,publ_operator,arg_msg,TRUE) = 0 THEN
  1427. arg_msg = '审核盘点表失败,'+arg_msg
  1428. rslt = 0
  1429. GOTO ext
  1430. END IF
  1431. wf_init_pdb()
  1432. cb_1.TriggerEvent(Clicked!)
  1433. //END IF
  1434. ext:
  1435. IF rslt = 0 THEN
  1436. ROLLBACK;
  1437. ELSE
  1438. arg_msg = '生成盘盈单/盘亏单成功! 审核盘点表成功!'
  1439. COMMIT;
  1440. END IF
  1441. Close(w_sys_wait_jdt)
  1442. DESTROY uo_py
  1443. DESTROY uo_pk
  1444. MessageBox(publ_operator,arg_msg)
  1445. end event
  1446. type cb_5 from uo_imflatbutton within w_wfjg_sptpdb
  1447. integer x = 329
  1448. integer width = 256
  1449. integer height = 164
  1450. integer taborder = 90
  1451. boolean bringtotop = true
  1452. string text = "删盘点表"
  1453. string normalpicname = "delete.bmp"
  1454. integer picsize = 16
  1455. toolbaralignment pic_align = alignattop!
  1456. boolean border = false
  1457. end type
  1458. event clicked;call super::clicked;
  1459. IF NOT f_power_ind(1433) THEN
  1460. MessageBox(publ_operator,'你没有使用权限!')
  1461. RETURN
  1462. END IF
  1463. wf_del()
  1464. wf_init_pdb()
  1465. cb_1.triggerevent(clicked!)
  1466. end event
  1467. type st_5 from statictext within w_wfjg_sptpdb
  1468. integer x = 1911
  1469. integer y = 204
  1470. integer width = 210
  1471. integer height = 60
  1472. boolean bringtotop = true
  1473. integer textsize = -9
  1474. integer weight = 400
  1475. fontcharset fontcharset = gb2312charset!
  1476. fontpitch fontpitch = variable!
  1477. string facename = "宋体"
  1478. long textcolor = 33554432
  1479. long backcolor = 134217739
  1480. string text = "盘点日:"
  1481. alignment alignment = right!
  1482. boolean focusrectangle = false
  1483. end type
  1484. type cb_addmx from uo_imflatbutton within w_wfjg_sptpdb
  1485. integer x = 914
  1486. integer width = 192
  1487. integer height = 164
  1488. integer taborder = 80
  1489. boolean bringtotop = true
  1490. boolean enabled = false
  1491. string text = "增明细"
  1492. string normalpicname = "mx1.bmp"
  1493. integer picsize = 16
  1494. toolbaralignment pic_align = alignattop!
  1495. boolean border = false
  1496. end type
  1497. event clicked;call super::clicked;parent.triggerevent('ue_f8')
  1498. dw_1.SetFocus()
  1499. end event
  1500. type cb_delmx from uo_imflatbutton within w_wfjg_sptpdb
  1501. integer x = 1106
  1502. integer width = 192
  1503. integer height = 164
  1504. integer taborder = 20
  1505. boolean bringtotop = true
  1506. boolean enabled = false
  1507. string text = "删明细"
  1508. string normalpicname = "mx2.bmp"
  1509. integer picsize = 16
  1510. toolbaralignment pic_align = alignattop!
  1511. boolean border = false
  1512. end type
  1513. event clicked;call super::clicked;IF MessageBox ("IF","是否确定要删除当前细目记录?",Question!,YesNo! ) = 2 THEN RETURN
  1514. IF dw_1.GetRow() = 0 THEN
  1515. MessageBox('NO','请选择删除的行对象!')
  1516. RETURN
  1517. END IF
  1518. dw_1.DeleteRow (0)
  1519. dw_1.TriggerEvent (RowFocusChanged!)
  1520. end event
  1521. type ddlb_1 from dropdownlistbox within w_wfjg_sptpdb
  1522. integer x = 2121
  1523. integer y = 188
  1524. integer width = 594
  1525. integer height = 856
  1526. integer taborder = 130
  1527. boolean bringtotop = true
  1528. integer textsize = -10
  1529. integer weight = 400
  1530. fontcharset fontcharset = gb2312charset!
  1531. fontpitch fontpitch = variable!
  1532. string facename = "宋体"
  1533. long textcolor = 33554432
  1534. boolean sorted = false
  1535. boolean vscrollbar = true
  1536. borderstyle borderstyle = stylelowered!
  1537. end type
  1538. event selectionchanged;ins_pdbdate = Trim(ddlb_1.Text)
  1539. cb_1.triggerevent(clicked!)
  1540. end event
  1541. type ddlb_sptid from uo_ddlb_wfjg_sptid within w_wfjg_sptpdb
  1542. integer x = 960
  1543. integer y = 188
  1544. integer width = 937
  1545. integer height = 856
  1546. integer taborder = 20
  1547. boolean bringtotop = true
  1548. end type
  1549. event constructor;call super::constructor;cur_sptid = this.uo_sptid
  1550. end event
  1551. event selectionchanged;call super::selectionchanged;cur_sptid = this.uo_sptid
  1552. cur_sptname = Trim(this.Text)
  1553. wf_init_pdb()
  1554. cb_1.triggerevent(clicked!)
  1555. end event
  1556. type ddlb_scid from uo_ddlb_scid within w_wfjg_sptpdb
  1557. integer x = 169
  1558. integer y = 188
  1559. integer width = 558
  1560. integer height = 856
  1561. integer taborder = 20
  1562. boolean bringtotop = true
  1563. end type
  1564. event selectionchanged;call super::selectionchanged;il_scid=this.uo_scid
  1565. wf_init_spt()
  1566. wf_init_pdb()
  1567. cb_1.triggerevent(clicked!)
  1568. end event
  1569. event constructor;call super::constructor;il_scid=this.uo_scid
  1570. end event
  1571. type st_1 from statictext within w_wfjg_sptpdb
  1572. integer y = 204
  1573. integer width = 169
  1574. integer height = 60
  1575. boolean bringtotop = true
  1576. integer textsize = -9
  1577. integer weight = 400
  1578. fontcharset fontcharset = gb2312charset!
  1579. fontpitch fontpitch = variable!
  1580. string facename = "宋体"
  1581. long textcolor = 33554432
  1582. long backcolor = 134217739
  1583. string text = "分部:"
  1584. alignment alignment = right!
  1585. boolean focusrectangle = false
  1586. end type
  1587. type cb_audit from uo_imflatbutton within w_wfjg_sptpdb
  1588. string tag = "只审核盘点表不生成盘盈亏单"
  1589. boolean visible = false
  1590. integer x = 2798
  1591. integer width = 169
  1592. integer height = 164
  1593. integer taborder = 70
  1594. boolean bringtotop = true
  1595. string text = "审核"
  1596. string normalpicname = "audit.bmp"
  1597. integer picsize = 16
  1598. toolbaralignment pic_align = alignattop!
  1599. boolean border = false
  1600. end type
  1601. event clicked;call super::clicked;IF NOT f_power_ind(1434) THEN
  1602. MessageBox(publ_operator,'你没有使用权限!')
  1603. RETURN
  1604. END IF
  1605. IF MessageBox ("if","是否确定要审核当前盘点表?",question!,yesno! ) = 2 THEN RETURN
  1606. String arg_msg
  1607. IF wf_audit(il_scid,cur_sptid,ins_pdbdate,publ_operator,arg_msg,TRUE) = 0 THEN
  1608. MessageBox('提示','审核盘点表失败,'+arg_msg)
  1609. RETURN
  1610. END IF
  1611. MessageBox('提示','审核盘点表成功')
  1612. wf_init_pdb()
  1613. cb_1.TriggerEvent(Clicked!)
  1614. end event
  1615. type cb_caudit from uo_imflatbutton within w_wfjg_sptpdb
  1616. integer x = 1742
  1617. integer width = 174
  1618. integer height = 164
  1619. integer taborder = 100
  1620. boolean bringtotop = true
  1621. string text = "撤审"
  1622. string normalpicname = "caudit.bmp"
  1623. integer picsize = 16
  1624. toolbaralignment pic_align = alignattop!
  1625. boolean border = false
  1626. end type
  1627. event clicked;call super::clicked;IF NOT f_power_ind(1435) THEN
  1628. MessageBox(publ_operator,'你没有使用权限!')
  1629. RETURN
  1630. END IF
  1631. IF MessageBox ("if","是否确定要撤审当前盘点表?",question!,yesno! ) = 2 THEN RETURN
  1632. String arg_msg
  1633. IF wf_caudit(il_scid,cur_sptid,ins_pdbdate,arg_msg,TRUE) = 0 THEN
  1634. MessageBox('提示','审核盘点表失败,'+arg_msg)
  1635. RETURN
  1636. END IF
  1637. MessageBox('提示','撤审盘点表成功')
  1638. wf_init_pdb()
  1639. cb_1.TriggerEvent(Clicked!)
  1640. end event
  1641. type cbx_auto_audit from checkbox within w_wfjg_sptpdb
  1642. boolean visible = false
  1643. integer x = 2729
  1644. integer y = 200
  1645. integer width = 878
  1646. integer height = 56
  1647. boolean bringtotop = true
  1648. integer textsize = -9
  1649. integer weight = 400
  1650. fontcharset fontcharset = gb2312charset!
  1651. fontpitch fontpitch = variable!
  1652. string facename = "宋体"
  1653. long textcolor = 33554432
  1654. long backcolor = 134217739
  1655. boolean enabled = false
  1656. string text = "生成盘盈/盘亏后自动审核盘点表"
  1657. boolean checked = true
  1658. end type
  1659. type cb_6 from uo_imflatbutton within w_wfjg_sptpdb
  1660. integer x = 1298
  1661. integer width = 274
  1662. integer height = 164
  1663. integer taborder = 80
  1664. boolean bringtotop = true
  1665. string text = "辅助功能"
  1666. string normalpicname = "other.bmp"
  1667. integer picsize = 16
  1668. toolbaralignment pic_align = alignattop!
  1669. boolean border = false
  1670. end type
  1671. event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  1672. string menustr
  1673. menustr="Text=按库存数生成盘点数~tEvent=ue_pdqty"
  1674. menustr = menustr + "|" + "Text=-"
  1675. menustr = menustr + "|" + "Text=批转换为辅单位1~tEvent=ue_unit_buy"
  1676. menustr = menustr + "|" + "Text=批转换为辅单位2~tEvent=ue_unit_scll"
  1677. menustr = menustr + "|" + "Text=批转换为辅单位3~tEvent=ue_unit_sale"
  1678. menustr = menustr + "|" + "Text=-"
  1679. menustr = menustr + "|" + "Text=批转换为库存单位~tEvent=ue_unit"
  1680. if len(trim(menustr))<>0 then
  1681. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  1682. dmPopupMenu.mf_BuildMenu(This, menustr)
  1683. dmPopupMenu.mf_PopMenu()
  1684. Destroy dmPopupMenu
  1685. end if
  1686. end event