SPPIF70400_검토서등록관리.xrw 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647
  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. <send>
  10. <clamno/>
  11. <docuseqno/>
  12. <instcd/>
  13. <clamkey/>
  14. <workflag/>
  15. <docuflag/>
  16. <savedocuflag/>
  17. </send>
  18. <main>
  19. <list01>
  20. <gridpidhclod>
  21. <chkbox/>
  22. <edilnno/>
  23. <item/>
  24. <grupcalcscorcd/>
  25. <snglcalcscorcd/>
  26. <edicd/>
  27. <hngnm/>
  28. <matractflag/>
  29. <unitcost/>
  30. <dayqty/>
  31. <totdrugqty/>
  32. <amt/>
  33. <adjtcd/>
  34. <adjtdayqty/>
  35. <adjttotqty/>
  36. <adjtamt/>
  37. <adjtcmt/>
  38. <chkdocunotidd/>
  39. <clamno/>
  40. <docuseqno/>
  41. <instcd/>
  42. <acptno/>
  43. <acptdd/>
  44. <acdacptno/>
  45. <clamym/>
  46. <clamdg/>
  47. <pid/>
  48. <patnm/>
  49. <ordterm/>
  50. <ediunitcost/>
  51. <docuflag/>
  52. <rowstat/>
  53. <insucmpymark/>
  54. <insucmpynm/>
  55. </gridpidhclod>
  56. </list01>
  57. <list02>
  58. <gridpiehc301/>
  59. </list02>
  60. <list03>
  61. <opn_row_cnt/>
  62. <adjtcmt/>
  63. <docuflag/>
  64. <savedocuflag/>
  65. </list03>
  66. <result/>
  67. </main>
  68. <init>
  69. <temp>
  70. <docuacptdd/>
  71. </temp>
  72. </init>
  73. <hidden>
  74. <comncd>
  75. <P0277list>
  76. <P0277>
  77. <cdid/>
  78. <cdnm/>
  79. </P0277>
  80. </P0277list>
  81. </comncd>
  82. <gbvalue>
  83. <sumadjtamt/>
  84. </gbvalue>
  85. </hidden>
  86. </root>
  87. </instance>
  88. <submission id="TRPIF70401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/list01"/>
  89. <submission id="TXPIF70401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/list02" resultref="/root/main/result"/>
  90. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="post"/>
  91. </model>
  92. <script type="javascript" ev:event="xforms-ready">
  93. <![CDATA[
  94. // 공통코드 Load작업
  95. CommCode_Load();
  96. ]]>
  97. </script>
  98. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  99. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  100. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  101. <script type="javascript">
  102. <![CDATA[
  103. function Node_Init() {
  104. // NodeSet 초기화
  105. }
  106. // 공통코드 Load작업
  107. function CommCode_Load() {
  108. zbcfGetCodeList(new Array("P0277"), new Array("/root/hidden/comncd/P0277list"));
  109. if(submit("TRPIF70401")) {
  110. var row_cnt = grd_pidhclod.rows;
  111. var savedocuflag = model.getValue("/root/send/savedocuflag");
  112. // 최초 조회시 이미 등록된 건은 선택박스 비활성화
  113. // 선택박스 체크시 입력상태로 바뀌고 조정금액이 자동 셋팅 된다.
  114. for(var i = 1; i < row_cnt ; i++) {
  115. if(grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("adjtcd")) != "") {
  116. grd_pidhclod.isReadOnly(i, grd_pidhclod.colRef("chkbox")) = true;
  117. }
  118. }
  119. // 이 화면은 1차 등록때만 뜨는 건데.. 이 부분이 탈 일은 없을 것 같은데.. 2010.03.10
  120. if(savedocuflag == "2" || savedocuflag == "3" || savedocuflag == "4") {
  121. btn_adjtregend.visible = false;
  122. for(var i = 1; i < row_cnt ; i++) {
  123. if(grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("adjtcd")) != "") {
  124. grd_pidhclod.isReadOnly(i, grd_pidhclod.colRef("adjtcd")) = true;
  125. grd_pidhclod.isReadOnly(i, grd_pidhclod.colRef("adjtdayqty")) = true;
  126. grd_pidhclod.isReadOnly(i, grd_pidhclod.colRef("adjttotqty")) = true;
  127. // grd_pidhclod.isReadOnly(i,15) = true;
  128. grd_pidhclod.isReadOnly(i, grd_pidhclod.colRef("adjtcmt")) = true;
  129. }
  130. }
  131. }
  132. // else {
  133. // for(var i = 1; i<row_cnt; i++) {
  134. // if(model.getValue("/root/main/list01/gridpidhclod["+j+"]/chkdocunotidd") != "") {
  135. // ipt_chkdocuacptdd.value = model.getValue("/root/main/list01/gridpidhclod["+j+"]/chkdocunotidd");
  136. // return false;
  137. // }
  138. // 검토서 등록데이터가 아닌경우 상태값 'I'로 세팅
  139. // if(model.getValue("/root/main/list01/gridpidhcold["+i+"]/docuflag") == "") {
  140. // grd_pidhclod.rowStatus(i) = 3;
  141. // }
  142. // }
  143. // }
  144. fCalcSumOfAdjtamt();
  145. }
  146. grd_pidhclod.colStyle(grd_pidhclod.colRef("adjtcd"), "data","background-color") = "#ffff00";
  147. grd_pidhclod.colStyle(grd_pidhclod.colRef("adjtdayqty"), "data","background-color") = "#ffff00";
  148. grd_pidhclod.colStyle(grd_pidhclod.colRef("adjttotqty"), "data","background-color") = "#ffff00";
  149. grd_pidhclod.colStyle(grd_pidhclod.colRef("adjtcmt"), "data","background-color") = "#ffff00";
  150. }
  151. //조정금액 합계를 구한다.
  152. function fCalcSumOfAdjtamt(){
  153. var sumAdjtamt = 0;
  154. var cnt = getNodesetCount("/root/main/list01/gridpidhclod/edilnno");
  155. for( var i = 1; i <= cnt; i++ ){
  156. sumAdjtamt = parseInt(sumAdjtamt) + parseInt(model.getValue("/root/main/list01/gridpidhclod["+ i +"]/adjtamt"));
  157. }
  158. model.setValue("/root/hidden/gbvalue/sumadjtamt", Math.ceil(sumAdjtamt/10)*10 ); // 원단위 절상
  159. output1.refresh();
  160. }
  161. ]]>
  162. </script>
  163. </xhtml:head>
  164. <xhtml:body pagewidth="1120" pageheight="600" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  165. <group id="group1" style="left:0px; top:0px; width:1100px; height:580px; ">
  166. <caption id="caption2" class="tit_2" style="left:5px; top:46px; width:170px; height:13px; font-family:돋움; vertical-align:middle; ">청구처방내역</caption>
  167. <line id="line4" class="line_1" style="x1:0px; y1:61px; x2:1100px; y2:61px; "/>
  168. <button id="btn_adjtregend" class="btn2_letter6" visibility="hidden" style="left:945px; top:15px; width:86px; height:19px; ">
  169. <caption>분심등록완료</caption>
  170. </button>
  171. <group id="group3" style="left:0px; top:553px; width:1100px; height:27px; ">
  172. <button id="button2" class="btn4_letter2" style="left:1044px; top:3px; width:56px; height:22px; ">
  173. <caption>닫기</caption>
  174. <script type="javascript" ev:event="onclick">
  175. <![CDATA[
  176. window.close();
  177. ]]>
  178. </script>
  179. </button>
  180. <line id="line32" class="line_6" style="x1:0px; y1:0px; x2:752px; y2:0px; "/>
  181. <caption id="caption1" style="left:20px; top:5px; width:100px; height:20px; font-weight:bold; ">조정금액 합계 :</caption>
  182. <output id="output1" ref="/root/hidden/gbvalue/sumadjtamt" format="(-)#,###" style="left:120px; top:5px; width:100px; height:19px; text-align:right; "/>
  183. <caption id="caption3" style="left:225px; top:5px; width:20px; height:20px; font-weight:bold; ">원</caption>
  184. <button id="btn_addIns" class="btn2_letter6" style="left:945px; top:4px; width:86px; height:19px; ">
  185. <caption>추가입력완료</caption>
  186. <script type="javascript" ev:event="onclick">
  187. <![CDATA[
  188. var row_cnt = grd_pidhclod.rows;
  189. var count = 0;
  190. for(var i=1;i<=row_cnt;i++) {
  191. if(grd_pidhclod.rowStatus(i)== "3") { // 행의 상태가 Insert인 경우
  192. count += 1;
  193. var ins01 = grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("adjtcd")); //조정사유
  194. var ins02 = grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("adjtdayqty")); //조정일투
  195. var ins03 = grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("adjttotqty")); //조정총투
  196. var ins04 = Number(grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("adjtamt"))); //조정금액
  197. var ins05 = ipt_chkdocuacptdd.value; //검토서접수일자
  198. var clamamt = Number(grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("amt"))); //청구금액
  199. var unitcost = grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("unitcost")); //처방단가
  200. var lnno = grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("edilnno")); //줄번호
  201. // if(ins01 == "" & ins02 == "" & ins03 == "") {
  202. // continue;
  203. // }
  204. if(ins02 == "" & ins03 == "") {
  205. continue;
  206. }
  207. // if(ins01 == "") {
  208. // messageBox("조정사유를","C001");
  209. // return false;
  210. // }
  211. if(ins02 == "") {
  212. messageBox("조정일투를","C001");
  213. return false;
  214. }
  215. if(ins03 == "") {
  216. messageBox("조정총투를","C001");
  217. return false;
  218. }
  219. /*if(ins05 == "") {
  220. alert("검토서접수일자를 입력해 주세요");
  221. return false;
  222. } else {
  223. grd_pidhclod.valueMatrix(i,17) = ins05; //검토서접수일자 그리드에 세팅
  224. }*/
  225. // 미? 주석처리 했음. 조정일투 1회 투여량 * 횟수, 조정총투 : 일수로 사용하는 의미를 정했음.
  226. // if(ins02 > ins03) {
  227. // messageBox("줄번호 " + lnno + "의 조정일투값은 조정총투값보다 클수","I004");
  228. // return false;
  229. // }
  230. // ins04 = unitcost * ins03;
  231. // if(clamamt < ins04) {
  232. // messageBox("줄번호 " + lnno + "의 조정금액이 청구금액보다 클수","I004");
  233. // return false;
  234. // } else {
  235. // grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("adjtamt")) = unitcost * ins03;
  236. // }
  237. opener.grd_chkdocuadjtdetl.addRow();
  238. var opn_row_cnt = opener.grd_chkdocuadjtdetl.rows-1;
  239. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/lnno", model.getValue("/root/main/list01/gridpidhclod["+i+"]/edilnno")); // 2010.02.03 lnno -> edilnno
  240. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/item", model.getValue("/root/main/list01/gridpidhclod["+i+"]/item"));
  241. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/grupcalcscorcd", model.getValue("/root/main/list01/gridpidhclod["+i+"]/grupcalcscorcd"));
  242. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/snglcalcscorcd", model.getValue("/root/main/list01/gridpidhclod["+i+"]/snglcalcscorcd"));
  243. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/edicd", model.getValue("/root/main/list01/gridpidhclod["+i+"]/edicd"));
  244. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/hngnm", model.getValue("/root/main/list01/gridpidhclod["+i+"]/hngnm"));
  245. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/matractflag", model.getValue("/root/main/list01/gridpidhclod["+i+"]/matractflag"));
  246. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/unitcost", model.getValue("/root/main/list01/gridpidhclod["+i+"]/unitcost"));
  247. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/clamdayqty", model.getValue("/root/main/list01/gridpidhclod["+i+"]/dayqty"));
  248. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/clamtotqty", model.getValue("/root/main/list01/gridpidhclod["+i+"]/totdrugqty"));
  249. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/adjtcd", model.getValue("/root/main/list01/gridpidhclod["+i+"]/adjtcd"));
  250. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/adjtdayqty", model.getValue("/root/main/list01/gridpidhclod["+i+"]/adjtdayqty"));
  251. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/adjttotqty", model.getValue("/root/main/list01/gridpidhclod["+i+"]/adjttotqty"));
  252. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/adjtamt", model.getValue("/root/main/list01/gridpidhclod["+i+"]/adjtamt"));
  253. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/docuflag", model.getValue("/root/main/list01/gridpidhclod["+i+"]/docuflag"));
  254. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/clamno", opener.model.getValue("/root/main/list01/gridchkdocuadjtdetl[1]/clamno"));
  255. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/docuseqno", opener.model.getValue("/root/main/list01/gridchkdocuadjtdetl[1]/docuseqno"));
  256. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/instcd", opener.model.getValue("/root/main/list01/gridchkdocuadjtdetl[1]/instcd"));
  257. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/acptno", opener.model.getValue("/root/main/list01/gridchkdocuadjtdetl[1]/acptno"));
  258. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/acdacptno", opener.model.getValue("/root/main/list01/gridchkdocuadjtdetl[1]/acdacptno"));
  259. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/clamym", opener.model.getValue("/root/main/list01/gridchkdocuadjtdetl[1]/clamym"));
  260. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/clamdg", opener.model.getValue("/root/main/list01/gridchkdocuadjtdetl[1]/clamdg"));
  261. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/pid", opener.model.getValue("/root/main/list01/gridchkdocuadjtdetl[1]/pid"));
  262. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/patnm", opener.model.getValue("/root/main/list01/gridchkdocuadjtdetl[1]/patnm"));
  263. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/ordterm", opener.model.getValue("/root/main/list01/gridchkdocuadjtdetl[1]/ordterm"));
  264. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/ediunitcost", model.getValue("/root/main/list01/gridpidhclod["+i+"]/unitcost"));
  265. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/docuflag", opener.model.getValue("/root/main/list01/gridchkdocuadjtdetl[1]/docuflag"));
  266. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/clamamt", model.getValue("/root/main/list01/gridpidhclod["+i+"]/amt")); // 2010.02.03 clamamt -> amt
  267. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/chkdocunotidd", opener.model.getValue("/root/main/list01/gridchkdocuadjtdetl[1]/chkdocunotidd"));
  268. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/savedocuflag", opener.model.getValue("/root/main/list01/gridchkdocuadjtdetl[1]/savedocuflag"));
  269. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/adjtcmt", model.getValue("/root/main/list01/gridpidhclod["+i+"]/adjtcmt"));
  270. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/acptdd", model.getValue("/root/main/list01/gridpidhclod["+i+"]/acptdd"));
  271. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/insuno", model.getValue("/root/main/list01/gridpidhclod["+i+"]/insucmpymark"));
  272. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/insunm", model.getValue("/root/main/list01/gridpidhclod["+i+"]/insucmpynm"));
  273. opener.model.setValue("/root/main/list01/gridchkdocuadjtdetl["+opn_row_cnt+"]/certno", model.getValue("/root/main/list01/gridpidhclod["+i+"]/certno"));
  274. model.close();
  275. //model.setValue("/root/main/list01/gridpidhclod/docuflag",model.getValue("/root/send/docuflag"));
  276. }
  277. }
  278. ]]>
  279. </script>
  280. </button>
  281. <caption id="caption4" style="left:650px; top:5px; width:280px; height:20px; font-weight:bold; ">
  282. <![CDATA[* 검토서 2차이상일 경우 추가입력시 사용 ==>]]>
  283. </caption>
  284. </group>
  285. <line id="line9" class="line_3" style="x1:0px; y1:10px; x2:1100px; y2:10px; "/>
  286. <line id="line11" class="line_3" style="x1:0px; y1:34px; x2:1100px; y2:34px; "/>
  287. <caption id="caption38" class="cell_1" style="left:0px; top:11px; width:100px; height:23px; text-align:left; vertical-align:middle; ">검토서접수일자</caption>
  288. <datagrid id="grd_pidhclod" nodeset="/root/main/list01/gridpidhclod" class="datagrid2" caption="^줄번호^항목^그룹코드^수가코드^EDI코드^처방명칭^I/II&#xA;구분^처방단가^일투^총투^청구금액^조정&#xA;사유^조정&#xA;일투^조정&#xA;총투^조정금액^검토서수신&#xA;조정주석^검토서접수일자^청구번호^명일련^기관코드^접수번호^접수일자^사고접수번호^청구월^청구차수^등록번호^수진자명^진료기간^EDI단가^서식번호^caption1^caption2^caption3" colsep="^" colwidth="28, 46, 47, 72, 72, 72, 160, 35, 67, 42, 42, 65, 60, 42, 42, 77, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100" dataheight="23" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" rowsep="|" tooltip="true" style="left:0px; top:66px; width:1100px; height:487px; ">
  289. <col checkvalue="Y,N" ref="chkbox" type="checkbox"/>
  290. <col ref="edilnno" style="text-align:center; "/>
  291. <col ref="item" style="text-align:center; "/>
  292. <col ref="grupcalcscorcd" style="text-align:center; "/>
  293. <col ref="snglcalcscorcd" style="text-align:center; "/>
  294. <col ref="edicd" style="text-align:center; "/>
  295. <col ref="hngnm"/>
  296. <col ref="matractflag" type="combo" style="text-align:center; ">
  297. <choices>
  298. <item>
  299. <label>재료</label>
  300. <value>1</value>
  301. </item>
  302. <item>
  303. <label>행위</label>
  304. <value>2</value>
  305. </item>
  306. </choices>
  307. </col>
  308. <col ref="unitcost" format="#,###" style="text-align:right; "/>
  309. <col ref="dayqty" style="text-align:center; "/>
  310. <col ref="totdrugqty" style="text-align:center; "/>
  311. <col ref="amt" format="#,###" style="text-align:right; "/>
  312. <col ref="adjtcd" type="combo" maxlength="2" style="text-align:left; ">
  313. <choices>
  314. <itemset nodeset="/root/hidden/comncd/P0277list/P0277">
  315. <label ref="cdnm"/>
  316. <value ref="cdid"/>
  317. </itemset>
  318. </choices>
  319. </col>
  320. <col ref="adjtdayqty" type="input" style="text-align:center; "/>
  321. <col ref="adjttotqty" type="input" style="text-align:center; "/>
  322. <col ref="adjtamt" type="input" format="#,###" style="text-align:right; "/>
  323. <col ref="adjtcmt" type="inputbutton"/>
  324. <script type="javascript" ev:event="xforms-value-changed">
  325. <![CDATA[
  326. // 체크박스 클릭 했을 때만 실행
  327. if ( grd_pidhclod.col == grd_pidhclod.colRef("chkbox") ) {
  328. if ( grd_pidhclod.valueMatrix(grd_pidhclod.row, grd_pidhclod.colRef("chkbox")) == "Y" ) {
  329. // 청구일투,총투 기본 셋팅
  330. grd_pidhclod.valueMatrix(grd_pidhclod.row, grd_pidhclod.colRef("adjtdayqty")) = grd_pidhclod.valueMatrix(grd_pidhclod.row, grd_pidhclod.colRef("dayqty"));
  331. grd_pidhclod.valueMatrix(grd_pidhclod.row, grd_pidhclod.colRef("adjttotqty")) = grd_pidhclod.valueMatrix(grd_pidhclod.row, grd_pidhclod.colRef("totdrugqty"));
  332. grd_pidhclod.valueMatrix(grd_pidhclod.row, grd_pidhclod.colRef("adjtcd")) = "B"; // 조정사유: 산정기준 적용착오 2010.04.30
  333. } else {
  334. if ( grd_pidhclod.rowStatus(grd_pidhclod.row) != 2) {
  335. grd_pidhclod.valueMatrix(grd_pidhclod.row, grd_pidhclod.colRef("adjtcd")) = ""; // 조정사유
  336. grd_pidhclod.valueMatrix(grd_pidhclod.row, grd_pidhclod.colRef("adjtdayqty")) = ""; // 조정일투
  337. grd_pidhclod.valueMatrix(grd_pidhclod.row, grd_pidhclod.colRef("adjttotqty")) = ""; // 조정초투
  338. grd_pidhclod.valueMatrix(grd_pidhclod.row, grd_pidhclod.colRef("adjtamt")) = 0; // 조정금액
  339. grd_pidhclod.valueMatrix(grd_pidhclod.row, grd_pidhclod.colRef("adjtcmt")) = ""; // 조정주석
  340. grd_pidhclod.rowStatus(grd_pidhclod.row) = 0;
  341. grd_pidhclod.refresh();
  342. fCalcSumOfAdjtamt();
  343. return;
  344. }
  345. }
  346. }
  347. var row_cnt = grd_pidhclod.row;
  348. var docuflag = model.getValue("/root/main/list01/gridpidhclod["+row_cnt+"]/docuflag"); //서식구분
  349. var savedocuflag = model.getValue("/root/send/savedocuflag"); //저장될서식구분
  350. var ins01 = Number(grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("adjtcd"))); //조정사유
  351. var ins02 = Number(grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("adjtdayqty"))); //조정일투
  352. var ins03 = Number(grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("adjttotqty"))); //조정총투
  353. var totqty = Number(grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("totdrugqty"))); //총투
  354. var unitcost = Number(grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("unitcost"))); //처방단가
  355. var corpactaddrate = Number(grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("corpactaddrate"))); //종별가산률
  356. var matractflag = grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("matractflag")); //행위/재료구분
  357. if(grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("ediunitcost")) == "I") {
  358. if(totqty < ins03) {
  359. messageBox("조정총투는 총투(청구총투)보다 클수 없습니다. 다시","C001");
  360. grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("adjttotqty")) = ""; //조정총투
  361. grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("adjtamt")) = ""; //조정금액
  362. return false;
  363. }
  364. if(grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("adjtcd")) != "") {
  365. if(docuflag != savedocuflag) {
  366. grd_pidhclod.rowStatus(row_cnt) = 3;
  367. }
  368. }
  369. if(grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("adjtdayqty")) != "") {
  370. if(docuflag != savedocuflag) {
  371. grd_pidhclod.rowStatus(row_cnt) = 3;
  372. }
  373. }
  374. if(grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("adjttotqty")) != "") {
  375. if(docuflag != savedocuflag) {
  376. grd_pidhclod.rowStatus(row_cnt) = 3;
  377. if( matractflag == '2' ){ // 재료행위 - 2: 가산있는 행위 2010.02.01 수정 1 -> 2
  378. grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("adjtamt")) = Math.round( (unitcost * ins03 * ins02) * (1 + (corpactaddrate/100)));
  379. }else{
  380. grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("adjtamt")) = Math.round(unitcost * ins03 * ins02);
  381. }
  382. }
  383. }
  384. if(grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("adjtcmt")) != "") {
  385. if(docuflag != savedocuflag) {
  386. grd_pidhclod.rowStatus(row_cnt) = 3;
  387. }
  388. }
  389. } else {
  390. // 일투 수정할 경우 적용이 안 되서 주석처리 2010.02.02
  391. // if(grd_pidhclod.col == 14) {
  392. if(totqty < ins03) {
  393. messageBox("조정총투는 총투(청구총투)보다 클수 없습니다. 다시","C001");
  394. grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("adjttotqty")) = ""; //조정총투
  395. grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("adjtamt")) = ""; //조정금액
  396. return false;
  397. }
  398. if( matractflag == '2' ){ // 재료행위 - 2: 가산있는 행위 2010.02.01 수정 1 -> 2
  399. grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("adjtamt")) = Math.round( (unitcost * ins03 * ins02) * (1 + (corpactaddrate/100)));
  400. }else{
  401. grd_pidhclod.valueMatrix(row_cnt, grd_pidhclod.colRef("adjtamt")) = Math.round(unitcost * ins03 * ins02);
  402. }
  403. // }
  404. }
  405. if(model.getValue("/root/main/list01/gridpidhclod["+grd_pidhclod.row+"]/docuflag") == "") {
  406. grd_pidhclod.rowStatus(grd_pidhclod.row) = 3;
  407. }
  408. fCalcSumOfAdjtamt();
  409. ]]>
  410. </script>
  411. <script type="javascript" ev:event="onbuttonclick">
  412. <![CDATA[
  413. var opn_row_cnt = grd_pidhclod.row;
  414. var adjtcmt = grd_pidhclod.valueMatrix(opn_row_cnt, grd_pidhclod.colRef("adjtcmt"));
  415. model.setValue("/root/main/list03/opn_row_cnt", opn_row_cnt);
  416. model.setValue("/root/main/list03/adjtcmt", adjtcmt);
  417. model.setValue("/root/main/list03/docuflag", model.getValue("/root/main/list01/gridpidhclod["+opn_row_cnt+"]/docuflag"));
  418. model.setValue("/root/main/list03/savedocuflag", model.getValue("/root/send/savedocuflag"));
  419. modal("SPPIF70401", 1, 420, 70, "SPPIF70401", "/root/main/list03", "/root/main/list01");
  420. ]]>
  421. </script>
  422. <col ref="chkdocunotidd" visibility="hidden"/>
  423. <col ref="clamno" visibility="hidden"/>
  424. <col ref="docuseqno" visibility="hidden"/>
  425. <col ref="instcd" visibility="hidden"/>
  426. <col ref="acptno" visibility="hidden"/>
  427. <col ref="acptdd" visibility="hidden"/>
  428. <col ref="acdacptno" visibility="hidden"/>
  429. <col ref="clamym" visibility="hidden"/>
  430. <col ref="clamdg" visibility="hidden"/>
  431. <col ref="pid" visibility="hidden"/>
  432. <col ref="patnm" visibility="hidden"/>
  433. <col ref="ordterm" visibility="hidden"/>
  434. <col ref="ediunitcost" visibility="hidden"/>
  435. <col ref="docuflag" visibility="hidden" style="left:2182px; top:32px; width:100px; height:23px; "/>
  436. <col ref="rowstat" visibility="hidden"/>
  437. <col ref="insucmpymark" visibility="hidden"/>
  438. <col ref="insucmpynm" visibility="hidden"/>
  439. <col ref="corpactaddrate" visibility="hidden"/>
  440. </datagrid>
  441. <input id="ipt_chkdocuacptdd" ref="/root/init/temp/docuacptdd" class="input_default" inputtype="date" maxlength="8" style="left:102px; top:13px; width:103px; height:19px; text-align:center; "/>
  442. <button id="button1" class="btn2_letter4" style="left:964px; top:40px; width:64px; height:19px; ">
  443. <caption>저 장</caption>
  444. <script type="javascript" ev:event="onclick">
  445. <![CDATA[
  446. var row_cnt = grd_pidhclod.rows;
  447. var count = 0;
  448. for(var i=1;i<=row_cnt;i++) {
  449. if(grd_pidhclod.rowStatus(i)== "1" || grd_pidhclod.rowStatus(i)== "3") {
  450. count += 1;
  451. // 2010.03.22 조정사유는 필수 조건에서 제외
  452. // var ins01 = grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("adjtcd")); //조정사유
  453. var ins02 = grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("adjtdayqty")); //조정일투
  454. var ins03 = grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("adjttotqty")); //조정총투
  455. var ins04 = grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("adjtamt")); //조정금액
  456. var ins05 = ipt_chkdocuacptdd.value; //검토서접수일자
  457. var clamamt = grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("amt")); //청구금액
  458. var unitcost = grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("unitcost")); //처방단가
  459. var lnno = grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("edilnno")); //줄번호
  460. // if(ins01 == "" & ins02 == "" & ins03 == "") {
  461. // continue;
  462. // }
  463. if(ins02 == "" & ins03 == "") {
  464. continue;
  465. }
  466. if(grd_pidhclod.rowStatus(i) == "1" || grd_pidhclod.rowStatus(i) == "3") {
  467. if(ins05 == "") {
  468. messageBox("검토서접수일자를","C001");
  469. model.setFocus("ipt_chkdocuacptdd");
  470. return false;
  471. } else {
  472. grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("chkdocunotidd")) = ins05; //검토서접수일자 그리드에 세팅
  473. }
  474. // if(ins01 == "") {
  475. // messageBox("조정사유를","C001");
  476. // return false;
  477. // }
  478. if(ins02 == "") {
  479. messageBox("조정일투를","C001");
  480. return false;
  481. }
  482. if(ins03 == "") {
  483. messageBox("조정총투를","C001");
  484. return false;
  485. }
  486. }
  487. // if(ins02 > ins03) {
  488. // messageBox(i+ "번째행의 조정일투값은 조정총투값보다 클수","I004");
  489. // return false;
  490. // }
  491. // 조정총투,일투 입력시 자동계산되는데 여기서 왜 또 이렇게 계산함? 2010.02.02 주석처리
  492. // ins04 = unitcost * ins03;
  493. // if(clamamt < ins04) {
  494. // messageBox(i + "번째행의 조정금액이 청구금액보다 클수 없습니다.");
  495. // return false;
  496. // } else {
  497. // grd_pidhclod.valueMatrix(i,15) = unitcost * ins03;
  498. // }
  499. if(model.getValue("/root/send/savedocuflag") == "" || model.getValue("/root/send/savedocuflag") == null) {
  500. model.setValue("/root/main/list01/gridpidhclod/docuflag",model.getValue("/root/send/docuflag"));
  501. } else {
  502. model.setValue("/root/main/list01/gridpidhclod/docuflag",model.getValue("/root/send/savedocuflag"));
  503. }
  504. }
  505. if(grd_pidhclod.rowStatus(i)== "2") {
  506. count += 1;
  507. // var ins01 = grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("adjtcd")); //조정사유
  508. var ins02 = Number(grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("adjtdayqty"))); //조정일투
  509. var ins03 = Number(grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("adjttotqty"))); //조정총투
  510. var ins04 = grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("adjtamt")); //조정금액
  511. var ins05 = ipt_chkdocuacptdd.value; //검토서접수일자
  512. var clamamt = grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("amt")); //청구금액
  513. var unitcost = grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("unitcost")); //처방단가
  514. var lnno = grd_pidhclod.valueMatrix(i, grd_pidhclod.colRef("edilnno")); //줄번호
  515. // if(ins01 == "" & ins02 == "" & ins03 == "") {
  516. // continue;
  517. // }
  518. if(ins02 == "" & ins03 == "") {
  519. continue;
  520. }
  521. // if(ins05 == "") {
  522. // messageBox("화면 상단의 검토서접수일자를","C001");
  523. // model.setFocus("ipt_chkdocuacptdd");
  524. // return false;
  525. // } else {
  526. // grd_pidhclod.valueMatrix(i,17) = ins05; //검토서접수일자 그리드에 세팅
  527. // }
  528. // if(ins01 == "") {
  529. // messageBox(i + "번째 행의 조정사유를","C001");
  530. // return false;
  531. // }
  532. if(ins02 == "") {
  533. messageBox(i + "번째 행의 조정일투를","C001");
  534. return false;
  535. }
  536. if(ins03 == "") {
  537. messageBox(i + "번째 행의 조정총투를","C001");
  538. return false;
  539. }
  540. // if(ins02 > ins03) {
  541. // messageBox(i + "번째 행의 조정일투값은 조정총투값보다 클수","I004");
  542. // return false;
  543. // }
  544. // ins04 = unitcost * ins03;
  545. // 조정총투,일투 입력시 자동계산되는데 여기서 왜 또 이렇게 계산함? 2010.02.02 주석처리
  546. // if(clamamt < ins04) {
  547. // messageBox(i+ "번째 행의 조정금액이 청구금액보다 클수","I004");
  548. // return false;
  549. // } else {
  550. // grd_pidhclod.valueMatrix(i,15) = unitcost * ins03;
  551. // }
  552. if(model.getValue("/root/send/savedocuflag") == "" || model.getValue("/root/send/savedocuflag") == null) {
  553. model.setValue("/root/main/list01/gridpidhclod/docuflag",model.getValue("/root/send/docuflag"));
  554. } else {
  555. model.setValue("/root/main/list01/gridpidhclod/docuflag",model.getValue("/root/send/savedocuflag"));
  556. }
  557. }
  558. }
  559. model.setValue("/root/main/list02/gridpiehc301", grd_pidhclod.getUpdateData());
  560. if(count > 0) {
  561. if (submit("TXPIF70401")) {
  562. model.resetInstanceNode("/root/main/list01/gridpidhclod");
  563. submit("TRPIF70401");
  564. for(var i=1 ; i<=grd_pidhclod.rows ; i++) {
  565. grd_pidhclod.rowStatus(i) = 0;
  566. }
  567. grd_pidhclod.rebuild();
  568. }
  569. }
  570. ]]>
  571. </script>
  572. </button>
  573. <button id="button3" class="btn2_letter4" style="left:1033px; top:40px; width:64px; height:19px; ">
  574. <caption>엑셀저장</caption>
  575. <script type="javascript" ev:event="onclick">
  576. <![CDATA[
  577. var today = new Date();
  578. var yy = today.getYear()+"";
  579. var mm = today.getMonth()+1;
  580. var dd = today.getDate();
  581. if(mm < 10) { mm = "0"+mm; } else { mm = mm+""; }
  582. if(dd < 10) { dd = "0" + dd; } else { dd = dd + ""; }
  583. var tmp = yy+mm+dd;
  584. var fileName = window.fileDialog("save", ",", false, "검토서등록관리_"+tmp, "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  585. if (fileName != "") { grd_pidhclod.saveExcel(fileName, "SheetName", true, true, "", "", ""); }
  586. ]]>
  587. </script>
  588. </button>
  589. </group>
  590. </xhtml:body>
  591. </xhtml:html>