SMRSO02300_약국이송출고관리.xrw 50 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>약국이송출고관리</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <list>
  11. <gooddelive>
  12. <gooddelivelist>
  13. <deliveseqno/>
  14. <goodlrgnm/>
  15. <goodcd/>
  16. <oldcd/>
  17. <goodnm/>
  18. <goodspec/>
  19. <stocqty/>
  20. <winpackqty/>
  21. <delivedeptqty/>
  22. <reqpackconcat/>
  23. <winpackcntperunit/>
  24. <deliveunit/>
  25. <winpackunit/>
  26. <targetdeliveqty/>
  27. <targetstocqty/>
  28. <targetbaseqty/>
  29. <deliveamt/>
  30. <trantretdd/>
  31. <trantrettm/>
  32. <reqno/>
  33. <iokindcd/>
  34. <delivedeptcd/>
  35. <delivepsn/>
  36. <windeptcd/>
  37. <reqflag/>
  38. <reqdd/>
  39. <reqseqno/>
  40. <prcpstatspk/>
  41. <instcd/>
  42. <goodflag/>
  43. <delivedd/>
  44. <deliveno/>
  45. <predelivedeptqty/>
  46. <minexch/>
  47. <predeliveprcsflag/>
  48. <savedeliveprcsflag/>
  49. <predeliveqty/>
  50. </gooddelivelist>
  51. <goodmaxdeliveno/>
  52. </gooddelive>
  53. <gooddelivereq>
  54. <gooddelivelist/>
  55. <goodmaxdeliveno/>
  56. </gooddelivereq>
  57. </list>
  58. <item/>
  59. </main>
  60. <send>
  61. <save>
  62. <gooddelivelist/>
  63. </save>
  64. <gooddelive>
  65. <instcd/>
  66. <goodflag/>
  67. <delivedd/>
  68. <deliveno/>
  69. <delivedeptcd/>
  70. <delivedeptnm/>
  71. <iokindcd/>
  72. <windeptcd/>
  73. <windeptnm/>
  74. <delivepsn/>
  75. <delivepsnnm/>
  76. <trantretdd/>
  77. <trantrettm/>
  78. <lrgcd/>
  79. <mdlcd/>
  80. <smlcd/>
  81. <goodcd/>
  82. <oldcd/>
  83. </gooddelive>
  84. </send>
  85. <init>
  86. <deliveqty/>
  87. <deliveamt/>
  88. </init>
  89. <hidden/>
  90. <temp/>
  91. <copynode/>
  92. </root>
  93. </instance>
  94. <script type="javascript" ev:event="xforms-ready">
  95. <![CDATA[
  96. //화면 Control을 초기화한다
  97. fCheckAuth();
  98. fInitialize();
  99. ]]>
  100. </script>
  101. <submission id="TRRSO00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/gooddelive" resultref="/root/main/list/gooddelive"/>
  102. <submission id="TRRSO00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/gooddelive" resultref="/root/main/list/gooddelive"/>
  103. <submission id="TXRSO00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save" resultref="/root/hidden/temp">"</submission>
  104. <bind id="bind_reqpackconcat" ref="/root/main/list/gooddelive/gooddelivelist/reqpackconcat" calculate="concat(../winpackcntperunit, ' ', ../deliveunit, '/', ../winpackunit)"/>
  105. <submission id="TRRSO00103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/gooddelive" resultref="/root/main/list/gooddelivereq"/>
  106. <submission id="TRRSO00104" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/gooddelive" resultref="/root/main/list/gooddelive"/>
  107. </model>
  108. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  109. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  110. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  111. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  112. <script type="javascript" src="../../../mis/miscommonweb/js/RSZ001.js"/>
  113. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  114. <script type="javascript">
  115. <![CDATA[
  116. function fInitialize() {
  117. model.resetInstanceNode("/root/send");
  118. rszfUserGoodFlagList(cmb_goodflag,getUserInfo("userid"));
  119. // rszfUserInstList(cmb_instcd,getUserInfo("userid"));
  120. // [2010.08.26]AS-IS 코드 TO_BE 코드 전환을 위한 물품구분 변경 (goodflag= P) => (goodflag= PH)
  121. rszfComboStockArthDeptcdList(cmb_delivedeptcd,getUserInfo("dutplceinstcd"),"PH" );
  122. rszfComboStockArthDeptcdList(cmb_windeptcd,getUserInfo("dutplceinstcd"),"PH" );
  123. rszfGetPurcIOFlagList(cmb_iokindcd, model.getValue(ipt_instcd.attribute("ref")) , "O");
  124. misfGridInit(grd_gooddelive);
  125. misfMsterDetailSet(grd_gooddelive,null, "TRRSO00101" ,"Y");
  126. model.setValue(ipt_instcd.attribute("ref") , getUserInfo("dutplceinstcd"));
  127. model.setValue(ipt_delivedd.attribute("ref") , getCurrentDate());
  128. model.setValue(ipt_sumdeliveqty.attribute("ref"),0);
  129. model.setValue(opt_sumdeliveamt.attribute("ref"),0);
  130. //getUserInfo("dutplceinstcd")
  131. model.setValue(ipt_delivepsn.attribute("ref") , getUserInfo("userid"));
  132. model.setValue(opt_delivepsnnm.attribute("ref") , getUserInfo("usernm"));
  133. // hidden column ..cmb_goodflag
  134. // [2010.08.26]AS-IS 코드 TO_BE 코드 전환을 위한 물품구분 변경 (goodflag= P) => (goodflag= PH)
  135. model.setValue(cmb_goodflag.attribute("ref") , "PH");
  136. model.setValue(cmb_iokindcd.attribute("ref") , "2B");
  137. // 이송시간 설정
  138. model.setValue(ipt_trantretdd.attribute("ref") , getCurrentDate());
  139. model.setValue(ipt_trantrettm.attribute("ref") , getCurrentTime());
  140. // 대분류 코드 콤보 설정.
  141. rszfLMSComboList(model.getValue(cmb_goodflag.attribute("ref")), "", "", "cmb_lrgcd_search", "", "L", "Y", "Y");
  142. grd_gooddelive.selectionmode = "free";
  143. model.refresh();
  144. }
  145. function fCheckAuth() {
  146. btn_search.disabled = !checkAuth("R") ;
  147. btn_save.disabled = !checkAuth("X") ;
  148. }
  149. function fCheckRetrieveData(pmsg)
  150. {
  151. if(model.getValue(ipt_instcd.attribute("ref")).length== 0 )
  152. {
  153. if(pmsg == true)
  154. {
  155. messageBox("기관코드를 " ,"C002");
  156. model.setFocus("ipt_instcd");
  157. }
  158. return false;
  159. }
  160. if(model.getValue(cmb_goodflag.attribute("ref")).length== 0 )
  161. {
  162. if(pmsg == true)
  163. {
  164. messageBox("물품구분을 " ,"C002");
  165. model.setFocus("cmb_goodflag");
  166. }
  167. return false;
  168. }
  169. if(model.getValue(ipt_delivedd.attribute("ref")).length== 0 )
  170. {
  171. if(pmsg == true)
  172. {
  173. messageBox("출고일자를 " ,"C001");
  174. model.setFocus("ipt_delivedd");
  175. }
  176. return false;
  177. }
  178. if(model.getValue(cmb_delivedeptcd.attribute("ref")).length== 0 )
  179. {
  180. if(pmsg == true)
  181. {
  182. messageBox("출고부서를 " ,"C001");
  183. model.setFocus("cmb_delivedeptcd");
  184. }
  185. return false;
  186. }
  187. if(model.getValue(cmb_windeptcd.attribute("ref")).length== 0 )
  188. {
  189. if(pmsg == true)
  190. {
  191. messageBox("입고부서를 " ,"C001");
  192. model.setFocus("cmb_windeptcd");
  193. }
  194. return false;
  195. }
  196. if(model.getValue(cmb_iokindcd.attribute("ref")).length== 0 )
  197. {
  198. if(pmsg == true)
  199. {
  200. messageBox("출고유형을 " ,"C001");
  201. model.setFocus("cmb_iokindcd");
  202. }
  203. return false;
  204. }
  205. // if(model.getValue(ipt_delivepsn.attribute("ref")).length== 0 )
  206. // {
  207. // if(pmsg == true)
  208. // {
  209. // messageBox("출고담당자를 " ,"C001");
  210. // model.setFocus("ipt_delivepsn");
  211. // }
  212. // return false;
  213. // }
  214. return true;
  215. }
  216. function fDefaultSetting(prow)
  217. {
  218. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/instcd",model.getValue(ipt_instcd.attribute("ref")));
  219. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/goodflag",model.getValue(cmb_goodflag.attribute("ref")));
  220. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/delivedd",model.getValue(ipt_delivedd.attribute("ref")));
  221. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/delivedeptcd",model.getValue(cmb_delivedeptcd.attribute("ref")));
  222. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/windeptcd",model.getValue(cmb_windeptcd.attribute("ref")));
  223. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/iokindcd",model.getValue(cmb_iokindcd.attribute("ref")));
  224. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/delivepsn",model.getValue(ipt_delivepsn.attribute("ref")));
  225. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/deliveseqno",fGetMaxDeliveSeqNo());
  226. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/delivedeptqty",0);
  227. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/deliveamt",0);
  228. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/trantretdd", model.getValue(ipt_trantretdd.attribute("ref")));
  229. model.setValue(grd_gooddelive.nodeset+"["+prow+"]/trantrettm", model.getValue(ipt_trantrettm.attribute("ref")));
  230. }
  231. function fDefaultSetting2(flag)
  232. {
  233. for( cnt = grd_gooddelive.fixedRows; cnt < grd_gooddelive.rows; cnt++) {
  234. grd_gooddelive.valueMatrix( cnt, grd_gooddelive.colRef("trantretdd")) = ipt_trantretdd.value;
  235. grd_gooddelive.valueMatrix( cnt, grd_gooddelive.colRef("trantrettm")) = ipt_trantrettm.value;
  236. grd_gooddelive.rowStatus( cnt ) = "1";
  237. if(flag=="1"){
  238. var seqno;
  239. if(cnt < 10){
  240. seqno ="00"+cnt;
  241. }else if(cnt >=10){
  242. seqno ="0"+cnt;
  243. }else if(cnt >=100){
  244. seqno =cnt;
  245. }
  246. grd_gooddelive.valueMatrix( cnt, grd_gooddelive.colRef("deliveseqno")) = seqno;
  247. }
  248. }
  249. }
  250. function fGetMaxDeliveSeqNo()
  251. {
  252. var maxDeliveSeqNo = "";
  253. /*for(var currow = grd_gooddelive.fixedRows ; currow < grd_gooddelive.rows; currow++)
  254. {
  255. alert("maxDeliveSeqNo======"+maxDeliveSeqNo);
  256. alert("22222222222======"+grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("deliveseqno")));
  257. if(maxDeliveSeqNo < grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("deliveseqno")))
  258. maxDeliveSeqNo = grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("deliveseqno"));
  259. }*/
  260. for(var i = grd_gooddelive.rows-1; i > 0;i--){
  261. if(i==1){
  262. maxDeliveSeqNo="001";
  263. }else{
  264. maxDeliveSeqNo= grd_gooddelive.valueMatrix(i-1,grd_gooddelive.colRef("deliveseqno"));
  265. if(parseFloat(maxDeliveSeqNo) < 9){
  266. maxDeliveSeqNo = "00"+(parseFloat(maxDeliveSeqNo) + 1);
  267. }else if((parseFloat(maxDeliveSeqNo) >=9)&&(parseFloat(maxDeliveSeqNo) < 99)){
  268. maxDeliveSeqNo = "0"+(parseFloat(maxDeliveSeqNo) + 1);
  269. }else{
  270. maxDeliveSeqNo = (parseFloat(maxDeliveSeqNo) + 1);
  271. }
  272. }
  273. break;
  274. }
  275. return maxDeliveSeqNo;//maxDeliveSeqNo.getLeftPad(3,"0");
  276. }
  277. function fSettingGoodList(pnode, nodename, userqtynm){
  278. var codynode = instance1.selectNodes(pnode + "/*");
  279. var addRow = grd_gooddelive.rows - grd_gooddelive.fixedRows;
  280. var exchqty = 1;
  281. var delivedeptqty = 1;
  282. if(model.getValue(grd_gooddelive.nodeset + "[" + addRow + "]/goodcd").length > 0)addRow = addRow + 1;
  283. for (var j = 1; j <= codynode.length ; j++) {
  284. if(addRow > grd_gooddelive.rows - grd_gooddelive.fixedRows)
  285. {
  286. misfGridIUD(grd_gooddelive,"A");
  287. addRow = grd_gooddelive.rows - grd_gooddelive.fixedRows;
  288. fDefaultSetting(addRow );
  289. }
  290. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/goodcd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodcd"));
  291. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/goodnm" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodnm"));
  292. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/goodspec" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodspec"));
  293. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/winpackqty" ,model.getValue(pnode +"/" + nodename + "[" + j + "]/" + userqtynm));
  294. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/winpackunit" , model.getValue(pnode +"/" + nodename + "[" + j + "]/purcunit"));
  295. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/winpackcntperunit" ,1);
  296. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/oldcd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/oldcd"));
  297. if(model.getValue(pnode +"/" + nodename + "[" + j + "]/exchqty") != "0" && model.getValue(pnode +"/" + nodename + "[" + j + "]/exchqty").length>0)
  298. {
  299. exchqty = parseInt(model.getValue(pnode +"/" + nodename + "[" + j + "]/exchqty"));
  300. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/winpackcntperunit" , model.getValue(pnode +"/" + nodename + "[" + j + "]/exchqty"));
  301. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/deliveamt" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodunitcost"));
  302. }
  303. else
  304. {
  305. exchqty = 1;
  306. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/winpackcntperunit" ,"1");
  307. }
  308. delivedeptqty = parseInt(model.getValue(pnode +"/" + nodename + "[" + j + "]/" + userqtynm));
  309. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/delivedeptqty",(delivedeptqty * exchqty));
  310. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/deliveunit",model.getValue(pnode +"/" + nodename + "[" + j + "]/deliveunit"));
  311. model.setValue(grd_gooddelive.nodeset + "[" + addRow + "]/deliveamt" , ( model.getValue(pnode +"/" + nodename + "[" + j + "]/goodunitcost") * exchqty ));
  312. addRow = addRow + 1;
  313. }
  314. //model.removenode(pnode);
  315. model.refresh();
  316. }
  317. function fCheckSaveData()
  318. {
  319. if(model.getValue(ipt_instcd.attribute("ref")).length== 0 )
  320. {
  321. messageBox("기관코드를 " ,"C002");
  322. model.setFocus("ipt_instcd");
  323. return false;
  324. }
  325. if(model.getValue(cmb_goodflag.attribute("ref")).length== 0 )
  326. {
  327. messageBox("물품구분을 " ,"C002");
  328. model.setFocus("cmb_goodflag");
  329. return false;
  330. }
  331. if(model.getValue(ipt_delivedd.attribute("ref")).length== 0 )
  332. {
  333. messageBox("출고일자를 " ,"C001");
  334. model.setFocus("ipt_delivedd");
  335. return false;
  336. }
  337. if(model.getValue(cmb_delivedeptcd.attribute("ref")).length== 0 )
  338. {
  339. messageBox("출고부서를 " ,"C001");
  340. model.setFocus("cmb_delivedeptcd");
  341. return false;
  342. }
  343. if(model.getValue(cmb_iokindcd.attribute("ref")).length== 0 )
  344. {
  345. messageBox("출고유형을 " ,"C001");
  346. model.setFocus("cmb_iokindcd");
  347. return false;
  348. }
  349. if(model.getValue(cmb_windeptcd.attribute("ref")).length== 0 )
  350. {
  351. messageBox("입고부서를 " ,"C001");
  352. model.setFocus("cmb_windeptcd");
  353. return false;
  354. }
  355. if(model.getValue(ipt_delivepsn.attribute("ref")).length== 0 )
  356. {
  357. messageBox("출고담당자를 " ,"C001");
  358. model.setFocus("ipt_delivepsn");
  359. return false;
  360. }
  361. for(var currow = grd_gooddelive.fixedRows ; currow < grd_gooddelive.rows ; currow++)
  362. {
  363. if(grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("goodcd")).length == 0)
  364. {
  365. messageBox((currow -1)+ " 번째 물품코드를 " ,"C001");
  366. grd_gooddelive.row = currow;
  367. grd_gooddelive.endEditCell();
  368. grd_gooddelive.col= grd_gooddelive.colRef("goodcd");
  369. grd_gooddelive.editCell();
  370. return false;
  371. }
  372. else
  373. {
  374. for(srcrow = currow + 1 ; srcrow < grd_gooddelive.rows ; srcrow++)
  375. {
  376. if(grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("goodcd")) == grd_gooddelive.valueMatrix(srcrow , grd_gooddelive.colRef("goodcd")))
  377. {
  378. messageBox("동일 물품코드가 [" + currow + "," +srcrow + "->" + grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("goodcd")) + "] 존재하여 저장 " ,"E001");
  379. return false;
  380. }
  381. }
  382. }
  383. if(grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("delivedeptqty")).length == 0)
  384. {
  385. messageBox((currow -1)+ " 번째 출고수량을 " ,"C001");
  386. grd_gooddelive.row = currow;
  387. grd_gooddelive.endEditCell();
  388. grd_gooddelive.col= grd_gooddelive.colRef("delivedeptqty");
  389. grd_gooddelive.editCell();
  390. return false;
  391. }
  392. }
  393. return true;
  394. }
  395. function fAfterRetrieve()
  396. {
  397. var delivedeptqty = 0;
  398. var deliveamt = 0;
  399. for(var currow = grd_gooddelive.fixedRows ; currow < grd_gooddelive.rows ; currow++)
  400. {
  401. delivedeptqty = delivedeptqty + parseFloat( grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("delivedeptqty")));
  402. if(grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("deliveamt")).length>0)
  403. deliveamt = deliveamt + 0 + parseFloat(grd_gooddelive.valueMatrix(currow , grd_gooddelive.colRef("deliveamt")));
  404. }
  405. model.setValue(ipt_sumdeliveqty.attribute("ref"),delivedeptqty);
  406. model.setValue(opt_sumdeliveamt.attribute("ref"),deliveamt);
  407. model.setValue(ipt_deliveno.attribute("ref"),model.getValue("/root/main/list/gooddelive/goodmaxdeliveno/deliveno"));
  408. model.refresh();
  409. }
  410. function fCalcAmt()
  411. {
  412. var pdelivedeptqty = grd_gooddelive.valueMatrix(grd_gooddelive.row, grd_gooddelive.colRef("delivedeptqty"));
  413. var pwinpackcntperunit = grd_gooddelive.valueMatrix(grd_gooddelive.row, grd_gooddelive.colRef("winpackcntperunit"));
  414. var pwinpackqty = parseInt(pdelivedeptqty) / parseInt(pwinpackcntperunit);
  415. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/winpackqty" ,pwinpackqty);
  416. }
  417. function fCheckGoodcd(pkey,prow)
  418. {
  419. if(pkey == "goodcd") {
  420. var pgoodcd = grd_gooddelive.valueMatrix(prow, grd_gooddelive.colRef("goodcd"));
  421. model.setValue("/root/send/gooddelive/goodcd", pgoodcd);
  422. } else {
  423. var poldcd = grd_gooddelive.valueMatrix(prow, grd_gooddelive.colRef("oldcd"));
  424. model.setValue("/root/send/gooddelive/oldcd", poldcd);
  425. }
  426. submit("TRRSO00103");
  427. var nodelist = instance1.selectNodes("/root/main/list/gooddelivereq/gooddelivelist");
  428. if(nodelist.length > 0 ){
  429. return true;
  430. }else{
  431. messageBox("관련된 물품코드의 재고량이","I004");
  432. return false;
  433. }
  434. }
  435. ]]>
  436. </script>
  437. </xhtml:head>
  438. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  439. <group id="grp_biz" scroll="auto" style="left:0px; top:38px; width:1195; height:744px; ">
  440. <shape id="roundrect1" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:10px; width:1195px; height:100px; background-color:#fffbf2; border-color:#ffd799; "/>
  441. <line id="line1" class="line_1" style="x1:0px; y1:135px; x2:1195px; y2:135px; "/>
  442. <datagrid id="grd_gooddelive" nodeset="/root/main/list/gooddelive/gooddelivelist" caption="순번^대분류명^약품코드^구코드^약품명^규격^재고량^이송량^이송량^포장^포장^포장^포장^금월사용량^이송부서재고량^이송부서기준량^출고금액^이송일자^이송시간^청구번호^이전출고수량^caption1" colsep="^" colwidth="35, 68, 110, 70, 210, 90, 70, 50, 50, 100, 23, 22, 21, 80, 100, 90, 40, 90, 60, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100" dataheight="25" explorerbar="sort" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="25" rowsep="|" style="left:0px; top:140px; width:1195px; height:594px; ">
  443. <col ref="deliveseqno" style="text-align:center; "/>
  444. <col ref="goodlrgnm" style="text-align:center; "/>
  445. <col ref="goodcd" type="inputbutton" _chartype="upper" _key="true"/>
  446. <col ref="oldcd" type="input" _chartype="upper"/>
  447. <col ref="goodnm"/>
  448. <col ref="goodspec"/>
  449. <col ref="stocqty" style="text-align:right; "/>
  450. <col ref="winpackqty" format="#,###.###" style="text-align:right; "/>
  451. <col ref="delivedeptqty" type="input" format="#,###" maxlength="9" style="text-align:right; "/>
  452. <col ref="reqpackconcat" style="text-align:left; "/>
  453. <col ref="winpackcntperunit" visibility="hidden" style="text-align:right; "/>
  454. <col ref="deliveunit" visibility="hidden"/>
  455. <col ref="winpackunit" visibility="hidden"/>
  456. <col ref="targetdeliveqty" style="text-align:right; "/>
  457. <col ref="targetstocqty" style="text-align:right; "/>
  458. <col ref="targetbaseqty" visibility="hidden" style="text-align:right; "/>
  459. <col ref="deliveamt" visibility="hidden" format="#,###" style="text-align:right; "/>
  460. <col ref="trantretdd" type="inputdate" format="yyyy-mm-dd"/>
  461. <col ref="trantrettm" type="input" format="hh:nn:ss"/>
  462. <col ref="reqno" visibility="hidden"/>
  463. <col ref="iokindcd" visibility="hidden" style="text-align:right; "/>
  464. <col ref="delivedeptcd" visibility="hidden"/>
  465. <col ref="delivepsn" visibility="hidden"/>
  466. <col ref="windeptcd" visibility="hidden"/>
  467. <col ref="reqflag" visibility="hidden"/>
  468. <col ref="reqdd" visibility="hidden"/>
  469. <col ref="reqseqno" visibility="hidden"/>
  470. <col ref="prcpstatspk" visibility="hidden"/>
  471. <col ref="instcd" visibility="hidden"/>
  472. <col ref="goodflag" visibility="hidden"/>
  473. <col ref="delivedd" visibility="hidden"/>
  474. <col ref="deliveno" visibility="hidden"/>
  475. <col ref="predelivedeptqty" visibility="hidden"/>
  476. <col ref="minexch" visibility="hidden"/>
  477. <col ref="predeliveprcsflag" visibility="hidden"/>
  478. <col ref="savedeliveprcsflag" visibility="hidden"/>
  479. <col ref="predeliveqty" visibility="hidden"/>
  480. <col ref="addflag" visibility="hidden"/>
  481. <script type="javascript" ev:event="onbuttonclick">
  482. <![CDATA[
  483. if (grd_gooddelive.col == grd_gooddelive.colRef("goodcd") && grd_gooddelive.rowStatus(grd_gooddelive.row) == "1" ) {//구성물품코드를 눌렀을 경우
  484. model.removenode("/root/copynode");
  485. model.removenode(gvParamPath +"/SMRSD00400_/SMRSD00400_value");
  486. model.makeNode("/root/copynode");
  487. rszfOpenPopUpListByWndName(grd_gooddelive,"","goodcd,goodnm","SPRSD00190","instcd,goodflag","ipt_instcd,cmb_goodflag");
  488. var cur_row = grd_gooddelive.row;
  489. var status = grd_gooddelive.valueMatrix(cur_row, grd_gooddelive.colRef("m"));
  490. var CSV = model.getValue(gvParamPath +"/SMRSD00400_/SMRSD00400_value");
  491. setCSVToNode("/root/copynode", CSV, "gooddelivelist");
  492. fSettingGoodList("/root/copynode", "gooddelivelist" , "userqty");
  493. if(!fCheckGoodcd("goodcd",cur_row))
  494. {
  495. model.setValue(grd_gooddelive.nodeset + "[" + cur_row + "]/goodcd" ,"");
  496. model.setValue(grd_gooddelive.nodeset + "[" + cur_row + "]/goodnm" , "");
  497. model.setValue(grd_gooddelive.nodeset + "[" + cur_row + "]/goodspec" , "");
  498. model.setValue(grd_gooddelive.nodeset + "[" + cur_row + "]/winpackqty" ,"");
  499. model.setValue(grd_gooddelive.nodeset + "[" + cur_row + "]/winpackunit" , "");
  500. model.setValue(grd_gooddelive.nodeset + "[" + cur_row + "]/winpackcntperunit" ,"");
  501. model.setValue(grd_gooddelive.nodeset + "[" + cur_row + "]/oldcd" , "");
  502. model.setValue(grd_gooddelive.nodeset + "[" + cur_row + "]/winpackcntperunit" , "");
  503. model.setValue(grd_gooddelive.nodeset + "[" + cur_row + "]/deliveamt" , "");
  504. model.setValue(grd_gooddelive.nodeset + "[" + cur_row + "]/delivedeptqty","");
  505. model.setValue(grd_gooddelive.nodeset + "[" + cur_row + "]/deliveunit","");
  506. }
  507. ipt_goodcd_search.value = "";
  508. }
  509. ]]>
  510. </script>
  511. <script type="javascript" ev:event="xforms-value-changed">
  512. <![CDATA[
  513. if(grd_gooddelive.col == grd_gooddelive.colRef("goodcd") && grd_gooddelive.valueMatrix(grd_gooddelive.row, grd_gooddelive.colRef("goodcd")).length> 0) {
  514. var tempRow = grd_gooddelive.row;
  515. model.removenode("/root/copynode");
  516. model.removenode(gvParamPath +"/SMRSD00400_/SMRSD00400_value");
  517. model.makeNode("/root/copynode");
  518. if (fCheckGoodcd("goodcd",tempRow) )
  519. {
  520. rszfValidationCheck("TRRSD00191", "goodlist" , "refcond,instcd,goodflag,goodcd,goodnm,indexgb,indexnm","goodcd," + model.getValue(ipt_instcd.attribute("ref")) + "," +model.getValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/goodflag") + "," + model.getValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/goodcd") + ",,,," ,"","goodcd,goodnm,goodspec,goodmodel,prodcmpynm,purcunit,stocqty,exchqty,oldcd",grd_gooddelive,"SPRSD00190","instcd,goodflag","ipt_instcd," + model.getValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/goodflag"),"Y");
  521. }else {
  522. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/goodcd", "");
  523. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/winpackqty", "");
  524. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/reqpackconcat", "");
  525. }
  526. ipt_goodcd_search.value = "";
  527. model.refresh();
  528. if( grd_gooddelive.valueMatrix(cur_row, grd_gooddelive.colRef("goodnm")).length> 0)
  529. {
  530. if(model.getValue("/root/init/main/goodlist/exchqty") > 0)
  531. {
  532. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/winpackcntperunit",model.getValue("/root/init/main/goodlist/exchqty") );
  533. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/delivedeptqty",model.getValue("/root/init/main/goodlist/exchqty") );
  534. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/deliveamt", ( model.getValue("/root/init/main/goodlist/exchqty") * model.getValue("/root/init/main/goodlist/goodunitcost") ) );
  535. }
  536. else
  537. {
  538. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/winpackcntperunit","1");
  539. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/delivedeptqty","1");
  540. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/deliveamt", model.getValue("/root/init/main/goodlist/goodunitcost") );
  541. }
  542. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/winpackunit" ,model.getValue("/root/init/main/goodlist/purcunit"));
  543. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/deliveunit" , model.getValue("/root/init/main/goodlist/deliveunit"));
  544. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/winpackqty" ,1);
  545. }
  546. model.refresh();
  547. var cur_row = grd_gooddelive.row;
  548. var status = grd_gooddelive.valueMatrix(cur_row, grd_gooddelive.colRef("m"));
  549. var CSV = model.getValue(gvParamPath +"/SMRSD00400_/SMRSD00400_value");
  550. if(CSV.length == 0 && grd_gooddelive.valueMatrix(cur_row, grd_gooddelive.colRef("goodnm")).length == 0)
  551. {
  552. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/goodcd" , "");
  553. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/goodnm" , "");
  554. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/goodspec" , "");
  555. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/winpackqty" , "");
  556. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/winpackunit" , "");
  557. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/winpackcntperunit" , "");
  558. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/delivedeptqty" , "");
  559. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/deliveunit" , "");
  560. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/deliveamt" , "");
  561. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/oldcd" , "");
  562. grd_gooddelive.endEditCell();
  563. grd_gooddelive.col = grd_gooddelive.colRef("oldcd");
  564. grd_gooddelive.editCell();
  565. }
  566. else if(CSV.length > 0)
  567. {
  568. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/goodcd","");
  569. setCSVToNode("/root/copynode", CSV, "gooddelivelist");
  570. fSettingGoodList("/root/copynode", "gooddelivelist" , "userqty");
  571. }
  572. // grd_gooddelive.col = grd_gooddelive.colRef("delivedeptqty");
  573. // grd_gooddelive.row = tempRow;
  574. // grd_gooddelive.select(tempRow, grd_gooddelive.col) = true;
  575. }else if(grd_gooddelive.col == grd_gooddelive.colRef("oldcd") && grd_gooddelive.valueMatrix(grd_gooddelive.row, grd_gooddelive.colRef("oldcd")).length> 0){
  576. var tempRow = grd_gooddelive.row;
  577. model.removenode("/root/copynode");
  578. model.removenode(gvParamPath +"/SMRSD00400_/SMRSD00400_value");
  579. model.makeNode("/root/copynode");
  580. /*
  581. rszfValidationCheck("TRRSD00191", "goodlist" , "refcond,oldcd,instcd,goodflag,goodcd",
  582. "goodcd," + model.getValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/oldcd") + "," + model.getValue(ipt_instcd.attribute("ref")) + "," +model.getValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/goodflag") + "," + model.getValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/goodcd"),
  583. "","goodcd,goodnm,goodspec,goodmodel,prodcmpynm,purcunit,stocqty,exchqty,oldcd",grd_gooddelive,
  584. "SPRSD00190","instcd,goodflag","ipt_instcd," + model.getValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/goodflag"),"Y");
  585. */
  586. if (fCheckGoodcd("oldcd",tempRow) )
  587. {
  588. rszfValidationCheck("TRRSD00191", "goodlist" , "refcond,oldcd,instcd,goodflag,goodcd",
  589. "goodcd," + model.getValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/oldcd") + "," + model.getValue(ipt_instcd.attribute("ref")) + "," +model.getValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/goodflag") + "," + model.getValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/goodcd"),
  590. "","goodcd,goodnm,goodspec,goodmodel,prodcmpynm,purcunit,stocqty,exchqty,oldcd",grd_gooddelive,
  591. "SPRSD00190","instcd,goodflag","ipt_instcd," + model.getValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/goodflag"),"Y");
  592. }else {
  593. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/oldcd", "");
  594. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/winpackqty", "");
  595. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/reqpackconcat", "");
  596. }
  597. ipt_oldcd_search.value = "";
  598. model.refresh();
  599. if( grd_gooddelive.valueMatrix(cur_row, grd_gooddelive.colRef("goodcd")).length> 0)
  600. {
  601. if(model.getValue("/root/init/main/goodlist/exchqty") > 0)
  602. {
  603. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/winpackcntperunit",model.getValue("/root/init/main/goodlist/exchqty") );
  604. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/delivedeptqty",model.getValue("/root/init/main/goodlist/exchqty") );
  605. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/deliveamt", ( model.getValue("/root/init/main/goodlist/exchqty") * model.getValue("/root/init/main/goodlist/goodunitcost") ) );
  606. }
  607. else
  608. {
  609. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/winpackcntperunit","1");
  610. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/delivedeptqty","1");
  611. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/deliveamt", model.getValue("/root/init/main/goodlist/goodunitcost") );
  612. }
  613. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/winpackunit" ,model.getValue("/root/init/main/goodlist/purcunit"));
  614. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/deliveunit" , model.getValue("/root/init/main/goodlist/deliveunit"));
  615. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/winpackqty" ,1);
  616. }
  617. model.refresh();
  618. var cur_row = grd_gooddelive.row;
  619. var status = grd_gooddelive.valueMatrix(cur_row, grd_gooddelive.colRef("m"));
  620. var CSV = model.getValue(gvParamPath +"/SMRSD00400_/SMRSD00400_value");
  621. if(CSV.length == 0 && grd_gooddelive.valueMatrix(cur_row, grd_gooddelive.colRef("goodcd")).length == 0)
  622. {
  623. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/goodcd" , "");
  624. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/goodnm" , "");
  625. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/goodspec" , "");
  626. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/winpackqty" , "");
  627. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/winpackunit" , "");
  628. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/winpackcntperunit" , "");
  629. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/delivedeptqty" , "");
  630. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/deliveunit" , "");
  631. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/deliveamt" , "");
  632. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1) + "]/oldcd" , "");
  633. grd_gooddelive.endEditCell();
  634. grd_gooddelive.col = grd_gooddelive.colRef("oldcd");
  635. grd_gooddelive.editCell();
  636. }
  637. else if(CSV.length > 0)
  638. {
  639. model.setValue(grd_gooddelive.nodeset + "[" + (grd_gooddelive.row - grd_gooddelive.fixedRows + 1)+ "]/goodcd","");
  640. setCSVToNode("/root/copynode", CSV, "gooddelivelist");
  641. fSettingGoodList("/root/copynode", "gooddelivelist" , "userqty");
  642. }
  643. // grd_gooddelive.col = grd_gooddelive.colRef("oldcd");
  644. // grd_gooddelive.row = tempRow;
  645. // grd_gooddelive.select(tempRow, grd_gooddelive.col) = true;
  646. }
  647. else if ( grd_gooddelive.col == grd_gooddelive.colRef("delivedeptqty") )
  648. {
  649. fCalcAmt();
  650. }
  651. ]]>
  652. </script>
  653. <script type="javascript" ev:event="onkeydown">
  654. <![CDATA[
  655. if(event.keyCode == 13)
  656. {
  657. if(grd_gooddelive.col == grd_gooddelive.colRef("delivedeptqty") )
  658. {
  659. if(grd_gooddelive.row < (grd_gooddelive.rows - grd_gooddelive.fixedRows) )
  660. {
  661. grd_gooddelive.endEditCell();
  662. grd_gooddelive.row += 1;
  663. var sGoodcd = grd_gooddelive.valueMatrix(grd_gooddelive.row,grd_gooddelive.colRef("goodcd"));
  664. if(sGoodcd!=""){
  665. grd_gooddelive.col = grd_gooddelive.colRef("delivedeptqty");
  666. grd_gooddelive.editCell();
  667. }else{
  668. grd_gooddelive.col = grd_gooddelive.colRef("goodcd");
  669. grd_gooddelive.editCell();
  670. }
  671. }else
  672. {
  673. btn_insert.dispatch("DOMActivate");
  674. grd_gooddelive.endEditCell();
  675. grd_gooddelive.col = grd_gooddelive.colRef("goodcd");
  676. grd_gooddelive.editCell();
  677. }
  678. }else if(grd_gooddelive.col == grd_gooddelive.colRef("oldcd")){
  679. grd_gooddelive.endEditCell();
  680. //grd_gooddelive.col = grd_gooddelive.colRef("delivedeptqty");
  681. grd_gooddelive.col = grd_gooddelive.colRef("oldcd");
  682. grd_gooddelive.editCell();
  683. }else if(grd_gooddelive.col == grd_gooddelive.colRef("goodcd")){
  684. grd_gooddelive.endEditCell();
  685. grd_gooddelive.col = grd_gooddelive.colRef("delivedeptqty");
  686. }else {
  687. grd_gooddelive.endEditCell();
  688. grd_gooddelive.col = grd_gooddelive.colRef("delivedeptqty");
  689. grd_gooddelive.editCell();
  690. }
  691. }
  692. if(event.keyCode == 9)
  693. {
  694. if(event.shiftKey)
  695. {
  696. if(grd_gooddelive.colAttribute(grd_gooddelive.col + 1, "type").indexOf ("input") > -1)
  697. {
  698. for(curcol = grd_gooddelive.col -1 ; curcol > -1 ; curcol--)
  699. {
  700. if(grd_gooddelive.colAttribute(curcol, "type").indexOf ("input") > -1)
  701. {
  702. grd_gooddelive.endEditCell();
  703. grd_gooddelive.col = curcol;
  704. grd_gooddelive.editCell();
  705. return;
  706. }
  707. }
  708. }
  709. }
  710. else
  711. {
  712. if(grd_gooddelive.colAttribute(grd_gooddelive.col, "type").indexOf ("input") == -1)
  713. {
  714. if(grd_gooddelive.col - 1 == grd_gooddelive.colRef("goodcd") && grd_gooddelive.valueMatrix(grd_gooddelive.row, grd_gooddelive.col - 1).length == 0)
  715. {
  716. grd_gooddelive.endEditCell();
  717. grd_gooddelive.col = grd_gooddelive.colRef("goodcd");
  718. grd_gooddelive.editCell();
  719. return;
  720. }
  721. for(curcol = grd_gooddelive.col ; curcol <grd_gooddelive.cols ; curcol++)
  722. {
  723. if(grd_gooddelive.colAttribute(curcol, "type").indexOf ("input") > -1)
  724. {
  725. grd_gooddelive.endEditCell();
  726. grd_gooddelive.col = curcol;
  727. grd_gooddelive.editCell();
  728. return;
  729. }
  730. }
  731. }
  732. }
  733. }
  734. ]]>
  735. </script>
  736. <script type="javascript" ev:event="onaftersort">
  737. <![CDATA[
  738. grd_gooddelive.gridToInstance();
  739. ]]>
  740. </script>
  741. </datagrid>
  742. <input id="ipt_delivedd" ref="/root/send/gooddelive/delivedd" class="input_s_essential" inputtype="date" style="left:100px; top:19px; width:94px; height:17px; ">
  743. <script type="javascript" ev:event="xforms-value-changed">
  744. <![CDATA[
  745. btn_search.dispatch("DOMActivate");
  746. ]]>
  747. </script>
  748. </input>
  749. <select1 id="cmb_goodflag" ref="/root/send/gooddelive/goodflag" class="combo_default" visibility="hidden" appearance="minimal" style="left:1066px; top:20px; width:29px; height:19px; ">
  750. <choices>
  751. <itemset nodeset="/root/init/goodflag">
  752. <label ref="cdnm"/>
  753. <value ref="cdid"/>
  754. </itemset>
  755. </choices>
  756. <script type="javascript" ev:event="xforms-value-changed">
  757. <![CDATA[
  758. btn_search.dispatch("DOMActivate");
  759. ]]>
  760. </script>
  761. </select1>
  762. <caption id="caption3" class="tit_2" style="left:5px; top:120px; width:118px; height:13px; ">이송내역</caption>
  763. <input id="ipt_deliveno" ref="/root/send/gooddelive/deliveno" class="input_default" editable="false" style="left:195px; top:19px; width:57px; height:17px; ">
  764. <script type="javascript" ev:event="onkeyup">
  765. <![CDATA[
  766. inputEnterKey("btn_search", "DOMActivate");
  767. ]]>
  768. </script>
  769. </input>
  770. <button id="btn_choidel" class="btn2_letter3" visibility="visible" style="left:1141px; top:115px; width:53px; height:19px; ">
  771. <caption>행삭제</caption>
  772. <script type="javascript" ev:event="DOMActivate">
  773. <![CDATA[
  774. var iSelectedCnt = grd_gooddelive.selectedCells.length;
  775. for(var i=0; i<iSelectedCnt; i++){
  776. var iRowIdx = grd_gooddelive.selectedCells.item(i).row;
  777. if((grd_gooddelive.rowstatus(iRowIdx)=="1")||(grd_gooddelive.rowstatus(iRowIdx)=="3")){
  778. grd_gooddelive.deleteRow(grd_gooddelive.row,false);
  779. }else{
  780. grd_gooddelive.rowstatus(iRowIdx)=4;
  781. }
  782. }
  783. model.refresh();
  784. //misfGridIUD(grd_gooddelive, "D");
  785. ]]>
  786. </script>
  787. </button>
  788. <button id="btn_insert" class="btn2_letter3" visibility="visible" style="left:1086px; top:115px; width:53px; height:19px; ">
  789. <caption>행추가</caption>
  790. <script type="javascript" ev:event="DOMActivate">
  791. <![CDATA[
  792. if(fCheckRetrieveData(true) == false)return;
  793. misfGridIUD(grd_gooddelive, "A");
  794. grd_gooddelive.row = grd_gooddelive.rows -grd_gooddelive.fixedRows ;
  795. model.makeValue("/root/main/list/gooddelive/gooddelivelist["+grd_gooddelive.row+"]/addflag","Y");
  796. fDefaultSetting(grd_gooddelive.row );
  797. grd_gooddelive.endEditCell();
  798. grd_gooddelive.col = grd_gooddelive.colRef("goodcd");
  799. grd_gooddelive.editCell();
  800. ]]>
  801. </script>
  802. </button>
  803. <output id="ipt_sumdeliveqty" ref="/root/init/deliveqty" class="output_default" style="left:578px; top:114px; width:70px; height:19px; font-weight:bold; "/>
  804. <caption id="caption25" style="left:520px; top:114px; width:74px; height:20px; vertical-align:middle; ">출고건수 :</caption>
  805. <output id="opt_sumdeliveamt" ref="/root/init/deliveamt" class="output_default" visibility="hidden" style="left:383px; top:114px; width:125px; height:19px; font-weight:bold; "/>
  806. <caption id="caption4" visibility="hidden" style="left:325px; top:115px; width:58px; height:20px; vertical-align:middle; ">출고합계 :</caption>
  807. <select1 id="cmb_iokindcd" ref="/root/send/gooddelive/iokindcd" class="combo_default" visibility="hidden" appearance="minimal" style="left:1067px; top:20px; width:28px; height:19px; ">
  808. <choices>
  809. <itemset nodeset="/root/init/ioflag">
  810. <label ref="cdnm"/>
  811. <value ref="cdid"/>
  812. </itemset>
  813. </choices>
  814. <script type="javascript" ev:event="xforms-value-changed">
  815. <![CDATA[
  816. btn_search.dispatch("DOMActivate");
  817. ]]>
  818. </script>
  819. </select1>
  820. <input id="ipt_delivepsn" ref="/root/send/gooddelive/delivepsn" class="input_default" visibility="hidden" appearance="input" style="left:1072px; top:20px; width:23px; height:19px; "/>
  821. <output id="opt_delivepsnnm" ref="/root/send/gooddelive/delivepsnnm" class="output_fix" appearance="output" style="left:463px; top:19px; width:146px; height:17px; text-align:center; "/>
  822. <button id="btn_search" class="btn1_letter2" navindex="7" style="left:1124px; top:49px; width:56px; height:22px; text-align:left; ">
  823. <caption>조회</caption>
  824. <script type="javascript" ev:event="DOMActivate">
  825. <![CDATA[
  826. if(fCheckRetrieveData(false) == false)return;
  827. misfGridInit(grd_gooddelive);
  828. misfMsterDetailRetrieve();
  829. fAfterRetrieve();
  830. ]]>
  831. </script>
  832. </button>
  833. <select1 id="cmb_delivedeptcd" ref="/root/send/gooddelive/delivedeptcd" class="combo_s_essential" appearance="minimal" style="left:100px; top:75px; width:152px; height:19px; ">
  834. <choices>
  835. <itemset>
  836. <label/>
  837. <value/>
  838. </itemset>
  839. </choices>
  840. </select1>
  841. <select1 id="cmb_windeptcd" ref="/root/send/gooddelive/windeptcd" class="combo_s_essential" appearance="minimal" style="left:463px; top:76px; width:146px; height:17px; ">
  842. <choices>
  843. <itemset>
  844. <label/>
  845. <value/>
  846. </itemset>
  847. </choices>
  848. </select1>
  849. <caption id="caption15" class="search_name" style="left:15px; top:76px; width:86px; height:17px; ">출고부서 :</caption>
  850. <line id="line2" class="line_4" style="x1:1110px; y1:18px; x2:1110px; y2:90px; border-color:#ffe4bb; border-left-style:solid; "/>
  851. <caption id="caption12" class="search_name" style="left:15px; top:19px; width:87px; height:17px; ">이송일자 :</caption>
  852. <caption id="caption13" class="search_name" style="left:360px; top:76px; width:105px; height:17px; ">입 고 부 서 :</caption>
  853. <caption id="caption16" class="search_name" style="left:360px; top:19px; width:105px; height:17px; ">이송담당자 :</caption>
  854. <input id="ipt_instcd" ref="/root/send/gooddelive/instcd" visibility="hidden" style="left:1065px; top:20px; width:30px; height:19px; "/>
  855. <caption id="caption1" class="search_name" style="left:695px; top:19px; width:105px; height:17px; ">이송시간 :</caption>
  856. <input id="ipt_trantretdd" ref="/root/send/gooddelive/trantretdd" inputtype="date" format="yyyy-mm-dd" style="left:785px; top:19px; width:90px; height:17px; text-align:center; "/>
  857. <input id="ipt_trantrettm" ref="/root/send/gooddelive/trantrettm" format="hh:nn:ss" style="left:885px; top:19px; width:65px; height:17px; text-align:center; "/>
  858. <caption id="caption94" class="search_name" style="left:360px; top:48px; width:83px; height:17px; ">중 분 류 :</caption>
  859. <caption id="caption96" class="search_name" style="left:695px; top:48px; width:83px; height:17px; ">소 분 류 :</caption>
  860. <select1 id="cmb_lrgcd_search" ref="/root/send/gooddelive/lrgcd" appearance="minimal" style="left:100px; top:48px; width:152px; height:17px; ">
  861. <choices>
  862. <itemset>
  863. <label/>
  864. <value/>
  865. </itemset>
  866. </choices>
  867. <script type="javascript" ev:event="xforms-value-changed">
  868. <![CDATA[
  869. rszfLMSComboList(model.getValue(cmb_goodflag.attribute("ref")), cmb_lrgcd_search.value, "", "cmb_mdlcd_search", "", "M", "Y", "Y");
  870. cmb_mdlcd_search.dispatch("xforms-value-changed");
  871. model.refresh();
  872. ]]>
  873. </script>
  874. </select1>
  875. <select1 id="cmb_smlcd_search" ref="/root/send/gooddelive/smlcd" appearance="minimal" style="left:785px; top:48px; width:152px; height:17px; ">
  876. <choices>
  877. <itemset>
  878. <label/>
  879. <value/>
  880. </itemset>
  881. </choices>
  882. </select1>
  883. <select1 id="cmb_mdlcd_search" ref="/root/send/gooddelive/mdlcd" appearance="minimal" style="left:463px; top:48px; width:146px; height:17px; ">
  884. <choices>
  885. <itemset>
  886. <label/>
  887. <value/>
  888. </itemset>
  889. </choices>
  890. <script type="javascript" ev:event="xforms-value-changed">
  891. <![CDATA[
  892. rszfLMSComboList(model.getValue(cmb_goodflag.attribute("ref")), cmb_lrgcd_search.value, cmb_mdlcd_search.value, "cmb_smlcd_search", "", "S", "Y", "Y");
  893. model.refresh();
  894. ]]>
  895. </script>
  896. </select1>
  897. <caption id="caption91" class="search_name" style="left:15px; top:48px; width:83px; height:17px; ">대 분 류 :</caption>
  898. <input id="ipt_goodcd_search" ref="/root/send/gooddelive/goodcd" class="input_search" imemode="disabled" maxlength="12" _chartype="upper" style="left:785px; top:76px; width:96px; height:19px; ">
  899. <script type="javascript" ev:event="onkeydown">
  900. <![CDATA[
  901. if (event.keyCode == 13)
  902. {
  903. ipt_goodcd_search.value = ipt_goodcd_search.currentText;
  904. ipt_goodcd_search.refresh();
  905. btn_search.dispatch("DOMActivate");
  906. }
  907. ]]>
  908. </script>
  909. </input>
  910. <input id="ipt_oldcd_search" ref="/root/send/gooddelive/oldcd" class="input_search" maxlength="12" _chartype="upper" style="left:956px; top:76px; width:90px; height:17px; ">
  911. <script type="javascript" ev:event="onkeydown">
  912. <![CDATA[
  913. if (event.keyCode == 13)
  914. {
  915. ipt_oldcd_search.value = ipt_oldcd_search.currentText;
  916. ipt_oldcd_search.refresh();
  917. btn_search.dispatch("DOMActivate");
  918. }
  919. ]]>
  920. </script>
  921. </input>
  922. <caption id="caption99" class="search_name" style="left:882px; top:76px; width:76px; height:17px; ">구코드 :</caption>
  923. <caption id="caption89" class="search_name" style="left:695px; top:76px; width:86px; height:17px; ">물품코드 :</caption>
  924. <button id="btn_stoclist" class="btn2_letter6" style="left:998px; top:115px; width:86px; height:19px; ">
  925. <caption>재고가져오기</caption>
  926. <script type="javascript" ev:event="DOMActivate">
  927. <![CDATA[
  928. if(fCheckRetrieveData(true) == false)return;
  929. ipt_sumdeliveqty.value= "0"; //출고 건수 초기화
  930. submit("TRRSO00102");
  931. if(grd_gooddelive.rows - grd_gooddelive.fixedRows > 0) fDefaultSetting2();
  932. model.refresh();
  933. // misfGridIUD(grd_gooddelive, "A");
  934. // grd_gooddelive.row = grd_gooddelive.rows -grd_gooddelive.fixedRows ;
  935. //ipt_cmt.value = "";
  936. // fDefaultSetting(grd_gooddelive.row );
  937. // grd_gooddelive.endEditCell();
  938. // grd_gooddelive.col = grd_gooddelive.colRef("oldcd");
  939. // grd_gooddelive.editCell();
  940. ]]>
  941. </script>
  942. </button>
  943. <button id="button1" class="btn2_letter8" style="left:776px; top:115px; width:108px; height:19px; ">
  944. <caption>마약재고가져오기</caption>
  945. <script type="javascript" ev:event="DOMActivate">
  946. <![CDATA[
  947. if(fCheckRetrieveData(true) == false)return;
  948. model.makeValue("/root/send/gooddelive/winacnt","11201101");//약국 마약 입고 계정
  949. if(submit("TRRSO00104")){
  950. ipt_sumdeliveqty.value= "0"; //출고 건수 초기화
  951. if(grd_gooddelive.rows - grd_gooddelive.fixedRows > 0) fDefaultSetting2("1");
  952. }
  953. ]]>
  954. </script>
  955. </button>
  956. <button id="button2" class="btn2_letter8" style="left:887px; top:115px; width:108px; height:19px; ">
  957. <caption>항정재고가져오기</caption>
  958. <script type="javascript" ev:event="DOMActivate">
  959. <![CDATA[
  960. if(fCheckRetrieveData(true) == false)return;
  961. model.makeValue("/root/send/gooddelive/winacnt","11201051");//약국 항정 입고 계정
  962. if(submit("TRRSO00104")){
  963. ipt_sumdeliveqty.value= "0"; //출고 건수 초기화
  964. if(grd_gooddelive.rows - grd_gooddelive.fixedRows > 0) fDefaultSetting2("1");
  965. }
  966. ]]>
  967. </script>
  968. </button>
  969. </group>
  970. <group id="grp_tle" style="left:0px; top:0px; width:1195px; height:13px; ">
  971. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:243px; height:14px; ">약품 이송등록</caption>
  972. </group>
  973. <group id="group1" style="left:0px; top:12; width:1195px; height:27px; ">
  974. <button id="btn_print" class="btn6_letter2" visibility="hidden" style="left:0px; top:3px; width:56px; height:22px; ">
  975. <caption>출력</caption>
  976. </button>
  977. <button id="btn_save" class="btn4_letter2" style="left:1070px; top:3px; width:56px; height:22px; ">
  978. <caption>저장</caption>
  979. <script type="javascript" ev:event="DOMActivate">
  980. <![CDATA[
  981. if(fCheckSaveData() == false)return;
  982. misfSave("TXRSO00101");
  983. if (model.getValue(gvErrorMsgPath + "/type") != "error")btn_search.dispatch("DOMActivate");
  984. ]]>
  985. </script>
  986. </button>
  987. <button id="btn_init" class="btn4_letter3" style="left:1127px; top:3px; width:68px; height:22px; ">
  988. <caption>초기화</caption>
  989. <script type="javascript" ev:event="DOMActivate">
  990. <![CDATA[
  991. fInitialize();
  992. ]]>
  993. </script>
  994. </button>
  995. <line id="line17" class="line_6" style="x1:0px; y1:25; x2:1195px; y2:25px; "/>
  996. </group>
  997. </xhtml:body>
  998. </xhtml:html>