SPMNP04600_수술방재고조회.xrw 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/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. <cond>
  11. <goodcd/>
  12. <allsizespecid/>
  13. <refdeptflag/>
  14. <refdept/>
  15. </cond>
  16. <roomstoclist/>
  17. </main>
  18. <send>
  19. <reqdata/>
  20. </send>
  21. <init>
  22. <oproomlist>
  23. <oproomcd/>
  24. <oproomnm/>
  25. </oproomlist>
  26. </init>
  27. <hidden>
  28. </hidden>
  29. <temp>
  30. <oproomstoclist/>
  31. </temp>
  32. </root>
  33. </instance>
  34. <script type="javascript" ev:event="xforms-ready">
  35. <![CDATA[
  36. if( checkOpener() ) {
  37. model.setValue("/root/main/cond/goodcd", opener.javascript.getParameter("goodcd"));
  38. model.setValue("/root/main/cond/allsizespecid", opener.javascript.getParameter("allsizespecid"));
  39. model.setValue("/root/main/cond/refdeptflag", opener.javascript.getParameter("refdeptflag"));
  40. model.setValue("/root/main/cond/refdept", opener.javascript.getParameter("refdept"));
  41. submit("TRMNP04403", false);//대분류 조회
  42. fChangeDept();//수술방 그리드 생성
  43. fSearch();
  44. }
  45. ]]>
  46. </script>
  47. <submission id="TRMNP04403" mediatype="application/x-www-form-urlencoded" method="post" resultref="/root/init"/>
  48. <submission id="TRMNP04416" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/roomstoclist"/>
  49. <submission id="TXMNP04403" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/roomstoclist"/>
  50. </model>
  51. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  52. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  53. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  54. <script type="javascript">
  55. <![CDATA[
  56. //수술실 물품 부서별 부서 재고 화면 변경
  57. function fChangeDept() {
  58. var deptflag = model.getValue("/root/main/cond/refdept");//부서구분
  59. var nodeCnt = parseInt(getNodesetCount("/root/init/oproomlist"))+1;
  60. if( deptflag != "R" ) {//수술, 마취
  61. var scrwidth = ( nodeCnt * 49 ) + 14;
  62. if( nodeCnt > 25 ) {//수술방이 25개 이상이면 스크롤 바로 인해 크기 조절
  63. btn_save.attribute("style") = "left:933px; top:117px; width:56px; height:22px";
  64. btn_cncl.attribute("style") = "left:992px; top:117px; width:56px; height:22px; ";
  65. line1.attribute("style") = "x1:0px; y1:20px; x2:1050px; y2:20px; ";
  66. grd_oproomstoclist.attribute("style") = "left:0px; top:25px; width:1050px; height:89px; text-align:right;";
  67. }else {
  68. btn_save.attribute("style") = "left:" + (scrwidth-117) + "px; top:100px; width:56px; height:22px";
  69. btn_cncl.attribute("style") = "left:" + (scrwidth-56) + "px; top:100px; width:56px; height:22px; ";
  70. line1.attribute("style") = "x1:0px; y1:20px; x2:" + scrwidth + "px; y2:20px; ";
  71. grd_oproomstoclist.attribute("style") = "left:0px; top:25px; width:" + scrwidth + "px; height:72px; text-align:right;";
  72. }
  73. var captionlist = "";
  74. if( nodeCnt != 0 ) {
  75. for(var i = 0; i <= nodeCnt; i++ ) { //수술방 갯수 만큼 컴럼을 만들고 cation을 만들어 준다.(CCR제외)
  76. grd_oproomstoclist.addColumn("ref:oproomnostoc" + i + "; type:input;", false);
  77. if( i == 4 ) {
  78. grd_oproomstoclist.colWidth(i) = 60;
  79. }else {
  80. grd_oproomstoclist.colWidth(i) = 49;
  81. }
  82. grd_oproomstoclist.colAttribute(i, "format") = "#.###";
  83. if( i == 0 ) {
  84. captionlist = model.getValue("/root/init/oproomlist[" + i + "]/oproomnm");
  85. }else if( i == 4 ){
  86. captionlist = captionlist + "^OR총재고";
  87. }else if( i < 4 ) {
  88. captionlist = captionlist + "^" + model.getValue("/root/init/oproomlist[" + i + "]/oproomnm");
  89. }else if( i > 4 ) {
  90. j = i - 1;
  91. captionlist = captionlist + "^" + model.getValue("/root/init/oproomlist[" + j + "]/oproomnm");
  92. }
  93. }
  94. grd_oproomstoclist.caption = captionlist;
  95. grd_oproomstoclist.addRow(false);
  96. }
  97. grd_oproomstoclist.deleteColumn(0);
  98. if( deptflag == "O" ) {//수술
  99. grd_oproomstoclist.colDisabled(3) = "ture";
  100. }else {
  101. for( var j = 0; j < 4; j++ ) {
  102. grd_oproomstoclist.colDisabled(j) = "ture";
  103. }
  104. }
  105. }else {
  106. grd_oproomstoclist.attribute("style") = "left:144px; top:65px; width:242px; height:72px; text-align:right;";
  107. if( nodeCnt != 0 ) {
  108. for(var i = 0; i <= nodeCnt; i++ ) {
  109. grd_oproomstoclist.removeColumn(false);
  110. }
  111. for(var i = 1; i <= 4; i++ ) {
  112. grd_oproomstoclist.addColumn("ref:oproomnostoc" + i + "; type:input;", false);
  113. grd_oproomstoclist.colWidth(i-1) = 60;
  114. grd_oproomstoclist.colAttribute(i-1, "format") = "#.###";
  115. }
  116. grd_oproomstoclist.caption = "CCR^C-C^C-O^회복실";
  117. grd_oproomstoclist.addRow(false);
  118. for( var j = 0; j < 3; j++ ) {
  119. grd_oproomstoclist.colDisabled(j) = "ture";
  120. }
  121. }
  122. }
  123. model.refresh();
  124. }
  125. //조회
  126. function fSearch() {
  127. var totalSafeCnt = 0;
  128. var totaStocCnt = 0;
  129. model.removenode("/root/send");
  130. model.makeNode("/root/send/reqdata");
  131. model.copyNode("/root/send/reqdata", "/root/main/cond");
  132. submit("TRMNP04416", false);
  133. //재고 그리드 값 맵핑
  134. var nodeCnt = parseInt(getNodesetCount("/root/init/oproomlist"))+1;
  135. for( var j = 1; j <= nodeCnt; j++) {
  136. var safestocqty = model.getValue("/root/main/roomstoclist["+j+"]/safestocqty");
  137. var stocqty = model.getValue("/root/main/roomstoclist["+j+"]/stocqty");
  138. if( ( safestocqty == "" )||( stocqty == "" ) ) {
  139. model.setValue("/root/temp/oproomstoclist/oproomnostoc"+j, 0);
  140. model.setValue("/root/temp/oproomstoclist[2]/oproomnostoc"+j, 0);
  141. }else {
  142. model.setValue("/root/temp/oproomstoclist/oproomnostoc"+j, model.getValue("/root/main/roomstoclist["+j+"]/safestocqty"));
  143. model.setValue("/root/temp/oproomstoclist[2]/oproomnostoc"+j, model.getValue("/root/main/roomstoclist["+j+"]/stocqty"));
  144. }
  145. }
  146. }
  147. //방재고 저장
  148. function fSave() {
  149. var stocqty, safestocqty, safestocqty, stocqty, oproomcd;
  150. var cnt = 0;
  151. var stoclist = "oproomcd▦safestocqty▦stocqty▦goodcd▦allsizespecid▦refdept";
  152. var nodeCnt = parseInt(getNodesetCount("/root/main/roomstoclist"))+1;
  153. var goodcd = model.getValue("/root/main/cond/goodcd");
  154. var allsizespecid = model.getValue("/root/main/cond/allsizespecid");
  155. var refdept = model.getValue("/root/main/cond/refdept");
  156. for( var i = 1; i < nodeCnt; i++ ) {
  157. if( i == 4 ) {//or총재고는 제외
  158. continue;
  159. }else {
  160. oproomcd = model.getValue("/root/main/roomstoclist[" + i + "]/oproomcd");
  161. safestocqty = model.getValue("/root/temp/oproomstoclist/oproomnostoc"+i);
  162. stocqty = model.getValue("/root/temp/oproomstoclist[2]/oproomnostoc"+i);
  163. stoclist = stoclist + "▩" + oproomcd + "▦" + safestocqty + "▦" + stocqty + "▦" + goodcd + "▦" + allsizespecid + "▦" + refdept;
  164. cnt++;
  165. }
  166. }
  167. if( cnt > 0 ) {
  168. model.removenode("/root/send");
  169. model.makeNode("/root/send/savedata");
  170. model.makeNode("/root/send/reqdata");
  171. model.copyNode("/root/send/reqdata", "/root/main/cond");
  172. model.setValue("/root/send/savedata", stoclist);
  173. submit("TXMNP04403", false);
  174. fSearch();
  175. }
  176. }
  177. ]]>
  178. </script>
  179. </xhtml:head>
  180. <xhtml:body pagewidth="1100" pageheight="200" guideline="2,343;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  181. <caption id="caption1" class="tit_2" style="left:5px; top:5px; width:122px; height:14px; ">수술방 재고조회</caption>
  182. <line id="line1" class="line_1" style="x1:0px; y1:20px; x2:1050px; y2:20px; "/>
  183. <datagrid id="grd_oproomstoclist" nodeset="/root/temp/oproomstoclist" colsep="^" mergecellsfixedrows="bycolrec" rowheight="23" rowsep="|" style="left:0px; top:25px; width:1050px; height:72px; text-align:right; ">
  184. <script type="javascript" ev:event="onendedit">
  185. <![CDATA[
  186. var iRow = grd_oproomstoclist.row;
  187. var nodeCnt = parseInt(getNodesetCount("/root/init/oproomlist"))+2;
  188. var totalSafeQty = 0, totalQty = 0;
  189. for( var j = 5; j <= nodeCnt; j++) {
  190. if( iRow == "1" ) {
  191. totalSafeQty += parseFloat(model.getValue("/root/temp/oproomstoclist/oproomnostoc"+j));
  192. }else if( iRow == "2" ) {
  193. totalQty += parseFloat(model.getValue("/root/temp/oproomstoclist[2]/oproomnostoc"+j));
  194. }
  195. }
  196. if( iRow == "1" ) {
  197. model.setValue("/root/temp/oproomstoclist/oproomnostoc4", totalSafeQty);
  198. }else if( iRow == "2" ) {
  199. model.setValue("/root/temp/oproomstoclist[2]/oproomnostoc4", totalQty);
  200. }
  201. model.refresh();
  202. ]]>
  203. </script>
  204. </datagrid>
  205. <button id="btn_save" class="btn4_letter2" style="left:933px; top:100px; width:56px; height:22px; ">
  206. <caption>저장</caption>
  207. <script type="javascript" ev:event="DOMActivate">
  208. <![CDATA[
  209. fSave();
  210. ]]>
  211. </script>
  212. </button>
  213. <button id="btn_cncl" class="btn4_letter2" style="left:992px; top:100px; width:56px; height:22px; ">
  214. <caption>닫기</caption>
  215. <script type="javascript" ev:event="DOMActivate">
  216. <![CDATA[
  217. window.close();
  218. ]]>
  219. </script>
  220. </button>
  221. </xhtml:body>
  222. </xhtml:html>