SPPAO00800_감액입력.xrw 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : SPPAO00800_감액입력.xrw
  4. * 설 명 : 감액입력
  5. * 설 계 자 : 유정란
  6. * 작 성 자 : 유정란
  7. * 작 성 일 : 2007.05.28
  8. * 수정이력 :
  9. * 기 타 :
  10. -->
  11. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  12. <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">
  13. <xhtml:head>
  14. <xhtml:title>감액입력</xhtml:title>
  15. <model id="model1">
  16. <instance id="instance1">
  17. <root xmlns="">
  18. <main>
  19. <dcgm>
  20. <totrcptamt/>
  21. <totreduamt/>
  22. <percent/>
  23. </dcgm>
  24. <h_dcgm>
  25. <dcgm>
  26. <dcgm_pid/>
  27. <dcgm_orddd/>
  28. <dcgm_cretno/>
  29. <dcgm_rcptdd/>
  30. <dcgm_rcptno/>
  31. <dcgm_seqno/>
  32. <dcgm_rcptseqno/>
  33. <dcgm_instcd/>
  34. <dcgm_rcptstat/>
  35. <dcgm_ordtype/>
  36. <dcgm_discreduflag/>
  37. <dcgm_discreducd/>
  38. <dcgm_discreducd2/>
  39. <dcgm_discreduamt/>
  40. <dcgm_apprsn/>
  41. <dcgm_rcptexecdd/>
  42. <dcgm_rcpttm/>
  43. <dcgm_remfact/>
  44. <dcgm_rcptrid/>
  45. <dcgm_fstrgstrid/>
  46. <dcgm_fstrgstdt/>
  47. <dcgm_lastupdtrid/>
  48. <dcgm_lastupdtdt/>
  49. </dcgm>
  50. </h_dcgm>
  51. </main>
  52. <send/>
  53. <init>
  54. <reducd>
  55. <cd/>
  56. <nm/>
  57. </reducd>
  58. </init>
  59. <hidden>
  60. <session/>
  61. </hidden>
  62. </root>
  63. </instance>
  64. <script type="javascript" ev:event="xforms-ready">
  65. <![CDATA[
  66. fInit();
  67. fGetUserInfosSampling();
  68. submit("TRPAMCOM01");
  69. //SPPAO00800_PARM : orddd▦totrcptamt▦strSend▦strRcv▦
  70. if (checkOpener())
  71. {
  72. opener.javascript.setParameter("SPPAO00800_RTN","");
  73. var SPPAO00800_PARM = opener.javascript.getParameter("SPPAO00800_PARM");
  74. var array_parm = SPPAO00800_PARM.split("▦");
  75. gOrddd = array_parm[0];
  76. gTotrcptamt = array_parm[1];
  77. strSend = array_parm[2];
  78. strRcv = array_parm[3];
  79. model.setValue("/root/main/dcgm/totrcptamt",gTotrcptamt);
  80. model.refresh();
  81. if (strSend != null && strSend != "" && strSend != " " && strSend != "-")
  82. {
  83. copyNodesetType("/root/main/h_dcgm", strSend, "replace", model, parent.model);
  84. //2008-09-26 이동식 추가
  85. for( var i = 1; i <= getNodesetCount("/root/main/h_dcgm/dcgm/dcgm_pid"); i++ ){
  86. model.makeNode("/root/main/h_dcgm/dcgm[" + i + "]/dcgm_discreducd2");
  87. model.setValue("/root/main/h_dcgm/dcgm[" + i + "]/dcgm_discreducd2", model.getValue("/root/main/h_dcgm/dcgm[" + i + "]/dcgm_discreducd"));
  88. }
  89. datagrid1.rebuild();
  90. fReduamtCalc();
  91. }
  92. opener.javascript.setParameter("SPPAO00800_PARM","");
  93. }
  94. else
  95. {
  96. gOrddd = PMO001_TODAY;
  97. model.setValue("/root/main/dcgm/totrcptamt",0);
  98. model.refresh();
  99. }
  100. //2007-09-04 이동식 추가 - 화면 오프시점에 자동 행추가.
  101. var rowCnt = getNodesetCount("/root/main/h_dcgm/dcgm");
  102. if( rowCnt < 1 ){
  103. btn_addrow.dispatch("DOMActivate");
  104. }
  105. //END..
  106. ]]>
  107. </script>
  108. <submission id="TRPAMCOM01" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/hidden/session" replace="instance" resultref="/root/init"/>
  109. </model>
  110. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  111. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  112. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  113. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  114. <script type="javascript" src="../../../com/commonweb/js/numericHelper.js"/>
  115. <script type="javascript" src="../../../com/commonweb/js/utilHelper.js"/>
  116. <script type="javascript" src="../../../pam/opatmngtweb/js/PMOCOM.js"/>
  117. <script type="javascript">
  118. <![CDATA[
  119. var gOrddd, gTotrcptamt, strSend, strRcv;
  120. function fInit()
  121. {
  122. model.resetInstanceNode("/root/main/dcgm");
  123. model.setValue("/root/main/dcgm/totrcptamt","0");
  124. model.setValue("/root/main/dcgm/totreduamt","0");
  125. model.removeNodeset("/root/main/h_dcgm/dcgm");
  126. datagrid1.rebuild();
  127. model.refresh();
  128. }
  129. function fReduamtCalc()
  130. {
  131. var rowcnt = getNodesetCount("/root/main/h_dcgm/dcgm");
  132. if (rowcnt > 0)
  133. {
  134. var dcgm_discreduamt = 0;
  135. var totrcptamt = model.getValue("/root/main/dcgm/totrcptamt");
  136. for (i = 1; i <= rowcnt; i++)
  137. {
  138. dcgm_discreduamt = dcgm_discreduamt + eval(model.getValue("/root/main/h_dcgm/dcgm["+ i +"]/dcgm_discreduamt"));
  139. }
  140. if (eval(totrcptamt) < eval(dcgm_discreduamt))
  141. {
  142. messageBox("감액총액이 수납금액을 초과합니다!","E999","");
  143. // return false;
  144. }
  145. model.setValue("/root/main/dcgm/totreduamt",dcgm_discreduamt);
  146. }
  147. else model.setValue("/root/main/dcgm/totreduamt","0");
  148. model.refresh();
  149. return true;
  150. }
  151. ]]>
  152. </script>
  153. <script type="javascript" src="D:\CMCProject\application\webapps\com\hismainweb\js\DocTitle.js"/>
  154. </xhtml:head>
  155. <xhtml:body pagewidth="534" pageheight="317" style="margin-left:8; margin-top:8; margin-right:8; margin-bottom:8; ">
  156. <group id="group3" scroll="auto" style="left:0px; top:0px; width:518px; height:290px; ">
  157. <line id="line1" class="line_1" style="x1:0px; y1:24px; x2:517px; y2:24px; "/>
  158. <datagrid id="datagrid1" nodeset="/root/main/h_dcgm/dcgm" caption="pid^orddd^cretno^rcptdd^rcptno^seqno^rcptseqno^instcd^rcptstat^ordtype^discreduflag^감액코드^감액명칭^감액^적용사유^rcptexecdd^rcpttm^remfact^rcptrid^fstrgstrid^fstrgstdt^lastupdtrid^lastupdtdt^caption1^caption2^caption3^caption4^caption5^caption6^caption7^caption8^caption9^caption10^caption11^caption12^caption13^caption14^caption15^caption16^caption17" colsep="^" colwidth="62, 54, 60, 48, 42, 58, 64, 53, 63, 60, 78, 63, 114, 101, 216, 100, 100, 100, 100, 100, 100, 100, 100" dataheight="23" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheight="23" rowsep="|" style="left:0px; top:29px; width:518px; height:232px; ">
  159. <col ref="dcgm_pid" visibility="hidden"/>
  160. <col ref="dcgm_orddd" visibility="hidden"/>
  161. <col ref="dcgm_cretno" visibility="hidden"/>
  162. <col ref="dcgm_rcptdd" visibility="hidden"/>
  163. <col ref="dcgm_rcptno" visibility="hidden"/>
  164. <col ref="dcgm_seqno" visibility="hidden"/>
  165. <col ref="dcgm_rcptseqno" visibility="hidden"/>
  166. <col ref="dcgm_instcd" visibility="hidden"/>
  167. <col ref="dcgm_rcptstat" visibility="hidden"/>
  168. <col ref="dcgm_ordtype" visibility="hidden"/>
  169. <col ref="dcgm_discreduflag" visibility="hidden"/>
  170. <col ref="dcgm_discreducd" type="input"/>
  171. <col ref="dcgm_discreducd2" type="combo">
  172. <choices>
  173. <itemset nodeset="/root/init/reducd">
  174. <label ref="nm"/>
  175. <value ref="cd"/>
  176. </itemset>
  177. </choices>
  178. </col>
  179. <col ref="dcgm_discreduamt" type="input" format="#,###" style="text-align:right; "/>
  180. <col ref="dcgm_apprsn" type="input"/>
  181. <col ref="dcgm_rcptexecdd" visibility="hidden"/>
  182. <col ref="dcgm_rcpttm" visibility="hidden"/>
  183. <col ref="dcgm_remfact" visibility="hidden"/>
  184. <col ref="dcgm_rcptrid" visibility="hidden"/>
  185. <col ref="dcgm_fstrgstrid" visibility="hidden"/>
  186. <col ref="dcgm_fstrgstdt" visibility="hidden"/>
  187. <col ref="dcgm_lastupdtrid" visibility="hidden"/>
  188. <col ref="dcgm_lastupdtdt" visibility="hidden"/>
  189. <script type="javascript" ev:event="xforms-value-changed">
  190. <![CDATA[
  191. var currow = datagrid1.row;
  192. var curcol = datagrid1.col;
  193. if (curcol == datagrid1.colRef("dcgm_discreducd"))
  194. {
  195. model.setValue("/root/main/h_dcgm/dcgm["+ currow +"]/dcgm_discreducd2",model.getValue("/root/main/h_dcgm/dcgm["+ currow +"]/dcgm_discreducd"));
  196. datagrid1.rebuild();
  197. }
  198. if (curcol == datagrid1.colRef("dcgm_discreducd2"))
  199. {
  200. model.setValue("/root/main/h_dcgm/dcgm["+ currow +"]/dcgm_discreducd",model.getValue("/root/main/h_dcgm/dcgm["+ currow +"]/dcgm_discreducd2"));
  201. datagrid1.rebuild();
  202. }
  203. if (curcol == datagrid1.colRef("dcgm_discreduamt"))
  204. {
  205. if( ! fReduamtCalc() ){
  206. datagrid1.valueMatrix( currow, curcol ) = 0;
  207. }
  208. }
  209. ]]>
  210. </script>
  211. </datagrid>
  212. <button id="button1" class="btn2_letter3" style="left:464px; top:4px; width:53px; height:19px; ">
  213. <caption>행삭제</caption>
  214. <script type="javascript" ev:event="DOMActivate">
  215. <![CDATA[
  216. var currow = datagrid1.row;
  217. if (currow < 1)
  218. {
  219. messageBox("먼저 삭제할 내역을 선택하십시요!","E999","");
  220. return;
  221. }
  222. datagrid1.deleteitem(currow);
  223. fReduamtCalc();
  224. ]]>
  225. </script>
  226. </button>
  227. <button id="btn_addrow" class="btn2_letter3" style="left:408px; top:4px; width:53px; height:19px; ">
  228. <caption>행추가</caption>
  229. <script type="javascript" ev:event="DOMActivate">
  230. <![CDATA[
  231. if (gOrddd == null || gOrddd == "" || gOrddd == " " || gOrddd == "-" || gOrddd.length != 8)
  232. {
  233. messageBox("[임시] 개발자 여러분 진료일자를 넘겨주십시요!","E999","");
  234. return;
  235. }
  236. datagrid1.additem();
  237. var currow = datagrid1.row;
  238. model.setValue("/root/main/h_dcgm/dcgm["+ currow +"]/dcgm_discreducd","-");
  239. model.setValue("/root/main/h_dcgm/dcgm["+ currow +"]/dcgm_discreducd2","-");
  240. // model.setValue("/root/main/h_dcgm/dcgm["+ currow +"]/dcgm_orddd",gOrddd);
  241. model.setValue("/root/main/h_dcgm/dcgm["+ currow +"]/dcgm_discreduflag","G");
  242. model.setValue("/root/main/h_dcgm/dcgm["+ currow +"]/dcgm_discreduamt","0");
  243. datagrid1.rebuild();
  244. ]]>
  245. </script>
  246. </button>
  247. <caption id="caption3" class="cell_1" style="left:187px; top:264px; width:60px; height:23px; vertical-align:middle; ">수납금액</caption>
  248. <caption id="caption4" class="cell_1" style="left:354px; top:264px; width:60px; height:23px; vertical-align:middle; ">감액총액</caption>
  249. <output id="output2" ref="/root/main/dcgm/totrcptamt" class="output_fix" format="(-)#,###" style="left:250px; top:265px; width:100px; height:19px; text-align:right; "/>
  250. <output id="output3" ref="/root/main/dcgm/totreduamt" class="output_fix" format="(-)#,###" style="left:417px; top:265px; width:100px; height:19px; text-align:right; "/>
  251. <caption id="caption1" class="tit_2" style="left:5px; top:10px; width:108px; height:13px; ">감액내역</caption>
  252. <input id="input1" ref="/root/main/dcgm/percent" style="left:135px; top:265px; width:30px; height:19px; text-align:right; ">
  253. <script type="javascript" ev:event="onkeypress">
  254. <![CDATA[
  255. if (event.keyCode == "13")
  256. {
  257. setInputNodeCurText();
  258. if (getNodesetCount("/root/main/h_dcgm/dcgm") < 1)
  259. {
  260. model.resetInstanceNode("/root/main/dcgm/percent");
  261. model.refresh();
  262. return;
  263. }
  264. if (datagrid1.row < 1)
  265. {
  266. model.resetInstanceNode("/root/main/dcgm/percent");
  267. model.refresh();
  268. messageBox("적용할 감액 행을 선택하십시요!","E999","");
  269. return;
  270. }
  271. var percent = model.getValue("/root/main/dcgm/percent");
  272. if (percent.isNumber() == false)
  273. {
  274. model.resetInstanceNode("/root/main/dcgm/percent");
  275. model.refresh();
  276. messageBox("숫자형태만 입력가능합니다!","E999","");
  277. return;
  278. }
  279. if (eval(percent) < 1 || eval(percent) > 100)
  280. {
  281. model.resetInstanceNode("/root/main/dcgm/percent");
  282. model.refresh();
  283. messageBox("1 ~100 까지만 입력가능합니다!","E999","");
  284. return;
  285. }
  286. var totrcptamt = model.getValue("/root/main/dcgm/totrcptamt");
  287. //test
  288. //totrcptamt = "1000";
  289. if (totrcptamt.isNumber() == false)
  290. {
  291. messageBox("수납금액이 올바르지 않습니다!","E999","");
  292. return;
  293. }
  294. var reduamt = 0;
  295. reduamt = eval(totrcptamt) * eval(percent) / 100;
  296. model.setValue("/root/main/h_dcgm/dcgm["+ datagrid1.row +"]/dcgm_discreduamt",reduamt);
  297. datagrid1.rebuild();
  298. if(! fReduamtCalc() ){
  299. model.setValue("/root/main/h_dcgm/dcgm["+ datagrid1.row +"]/dcgm_discreduamt",0);
  300. }
  301. }
  302. ]]>
  303. </script>
  304. </input>
  305. <caption id="caption2" style="left:165px; top:265px; width:20px; height:20px; ">%</caption>
  306. </group>
  307. <group id="group1" scroll="auto" style="left:0px; top:290px; width:518px; height:27px; ">
  308. <button id="btn_confirm" class="btn4_letter2" style="left:402px; top:5px; width:56px; height:22px; ">
  309. <caption>확인</caption>
  310. <script type="javascript" ev:event="DOMActivate">
  311. <![CDATA[
  312. if (checkOpener())
  313. {
  314. var dcgm_discreducd;
  315. var dcgm_discreduamt;
  316. var totalDiscReduAmt = 0;
  317. for(i = 1; i <= getNodesetCount("/root/main/h_dcgm/dcgm"); i++)
  318. {
  319. dcgm_discreducd = model.getValue("/root/main/h_dcgm/dcgm["+ i +"]/dcgm_discreducd");
  320. dcgm_discreduamt = model.getValue("/root/main/h_dcgm/dcgm["+ i +"]/dcgm_discreduamt");
  321. //2008-09-26 이동식 추가
  322. totalDiscReduAmt = parseInt(totalDiscReduAmt) + parseInt(model.getValue("/root/main/h_dcgm/dcgm["+ i +"]/dcgm_discreduamt"));
  323. if (dcgm_discreducd == null || dcgm_discreducd == "" || dcgm_discreducd == " " || dcgm_discreducd == "-")
  324. {
  325. messageBox("감액명칭 중 미선택된 행이 존재합니다!","E999","");
  326. return;
  327. }
  328. if (dcgm_discreduamt.isNumber() != true)
  329. {
  330. messageBox("감액 중 수치형이 아닌 행이 존재합니다!","E999","");
  331. return;
  332. }
  333. }
  334. //2008-09-26 이동식 추가
  335. for( var i = 1; i <= getNodesetCount("/root/main/h_dcgm/dcgm/dcgm_pid"); i++ ){
  336. model.removenode("/root/main/h_dcgm/dcgm[" + i + "]/dcgm_discreducd2");
  337. // model.setValue(""/root/main/h_dcgm/dcgm[" + i + "]/dcgm_discreducd2", model.getValue(""/root/main/h_dcgm/dcgm[" + i + "]/dcgm_discreducd"));
  338. }
  339. opener.javascript.setParameter("SPPAO00800_RTN","Y");
  340. // opener.javascript.setParameter("SPPAO00800_TotReduAmt",model.getValue("/root/main/dcgm/totreduamt"));
  341. opener.javascript.setParameter("SPPAO00800_TotReduAmt", totalDiscReduAmt );
  342. if (strRcv != null && strRcv != "" && strRcv != " " && strRcv != "-")
  343. {
  344. copyNodesetType(strRcv, "/root/main/h_dcgm", "replace", parent.model, model);
  345. }
  346. window.close();
  347. }
  348. ]]>
  349. </script>
  350. </button>
  351. <button id="btn_cancel" class="btn4_letter2" style="left:461px; top:5px; width:56px; height:22px; ">
  352. <caption>취소</caption>
  353. <script type="javascript" ev:event="DOMActivate">
  354. <![CDATA[
  355. if (checkOpener())
  356. {
  357. opener.javascript.setParameter("SPPAO00800_RTN","N");
  358. window.close();
  359. }
  360. ]]>
  361. </script>
  362. </button>
  363. <line id="line88" class="line_6" style="x1:0px; y1:0px; x2:518px; y2:0px; "/>
  364. </group>
  365. </xhtml:body>
  366. </xhtml:html>