SPABO61000_골수은행수납내역.xrw 53 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198
  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. <gridrcptlist>
  11. <gridrcpt>
  12. <rcptitemflag/>
  13. <rcptdd/>
  14. <rcptamt/>
  15. <amtunit/>
  16. <emityn/>
  17. <rtnyn/>
  18. <rtnamt/>
  19. <boneassocd/>
  20. </gridrcpt>
  21. </gridrcptlist>
  22. <rcptdetl>
  23. <rcptdetl>
  24. <rcptdd/>
  25. <rcptamt/>
  26. <emityn/>
  27. <rtnyn/>
  28. <rtnamt/>
  29. <exeflag/>
  30. <rcptitemflag/>
  31. <amtunit/>
  32. </rcptdetl>
  33. <ctcharge>
  34. <rcptdd/>
  35. <rcptamt/>
  36. <emityn/>
  37. <rtnyn/>
  38. <rtnamt/>
  39. <exeflag/>
  40. <rcptitemflag/>
  41. <rcptitemflagseq/>
  42. <pid/>
  43. <boneassocd/>
  44. <rgstseq/>
  45. <amtunit/>
  46. </ctcharge>
  47. </rcptdetl>
  48. <rcptinfo>
  49. <rgstseq/>
  50. <trnptflag/>
  51. <boneassocd/>
  52. <pid/>
  53. </rcptinfo>
  54. <rgstseq>
  55. <rgstseq>
  56. <cd/>
  57. <nm/>
  58. </rgstseq>
  59. </rgstseq>
  60. <ctcharge>
  61. <ctcharge>
  62. <rcptdd/>
  63. <rcptamt/>
  64. <emityn/>
  65. <rtnyn/>
  66. <rtnamt/>
  67. <exeflag/>
  68. <rcptitemflagseq/>
  69. <pid/>
  70. <boneassocd/>
  71. </ctcharge>
  72. </ctcharge>
  73. <hsctinfo>
  74. <patinfolist>
  75. <hngnm/>
  76. <rrgstno1/>
  77. <age/>
  78. <sex/>
  79. <pid/>
  80. <rrgstno2/>
  81. </patinfolist>
  82. </hsctinfo>
  83. <patinfo>
  84. <patinfolist>
  85. <pid/>
  86. <hngnm/>
  87. <rrgstno1/>
  88. <age/>
  89. <sex/>
  90. <pid/>
  91. <rrgstno2/>
  92. </patinfolist>
  93. </patinfo>
  94. <trnptdg/>
  95. <popupendflag/>
  96. <defaultassocd>
  97. <boneassocd/>
  98. </defaultassocd>
  99. </main>
  100. <send>
  101. <rcptinfo>
  102. <pid/>
  103. <trnptflag/>
  104. <boneassocd/>
  105. <rgstseq/>
  106. <exeflag/>
  107. <ctcharge/>
  108. <rcptlist/>
  109. <trnptall/>
  110. </rcptinfo>
  111. <data>
  112. <rcptdetl/>
  113. </data>
  114. <req>
  115. <pid/>
  116. </req>
  117. <lrggrupcd/>
  118. <hsctlrgcd/>
  119. </send>
  120. <init>
  121. <cmbinfo>
  122. <boneassocd>
  123. <A0164>
  124. <cdid/>
  125. <cdnm/>
  126. </A0164>
  127. <A0165>
  128. <cdid/>
  129. <cdnm/>
  130. </A0165>
  131. </boneassocd>
  132. <monetaryunit>
  133. <A0546>
  134. <cdid/>
  135. <cdnm/>
  136. </A0546>
  137. </monetaryunit>
  138. </cmbinfo>
  139. </init>
  140. <temp>
  141. <rcptbase>
  142. <boneassocdlist>
  143. <item/>
  144. </boneassocdlist>
  145. </rcptbase>
  146. <trnptrcpt>
  147. <fomalsearch>
  148. <rcptdetl>
  149. <rcptdd/>
  150. <rcptamt/>
  151. <emityn/>
  152. <rtnyn/>
  153. <rtnamt/>
  154. <exeflag/>
  155. <rcptitemflag/>
  156. <amtunit/>
  157. </rcptdetl>
  158. </fomalsearch>
  159. <bcolltrans>
  160. <rcptdetl>
  161. <rcptdd/>
  162. <rcptamt/>
  163. <emityn/>
  164. <rtnyn/>
  165. <rtnamt/>
  166. <exeflag/>
  167. <rcptitemflag/>
  168. <amtunit/>
  169. </rcptdetl>
  170. </bcolltrans>
  171. <familytalk>
  172. <rcptdetl>
  173. <rcptdd/>
  174. <rcptamt/>
  175. <emityn/>
  176. <rtnyn/>
  177. <rtnamt/>
  178. <exeflag/>
  179. <rcptitemflag/>
  180. <amtunit/>
  181. </rcptdetl>
  182. </familytalk>
  183. <marrow>
  184. <rcptdetl>
  185. <rcptdd/>
  186. <rcptamt/>
  187. <emityn/>
  188. <rtnyn/>
  189. <rtnamt/>
  190. <exeflag/>
  191. <rcptitemflag>
  192. </rcptitemflag>
  193. <amtunit/>
  194. </rcptdetl>
  195. </marrow>
  196. <airplane>
  197. <rcptdetl>
  198. <rcptdd/>
  199. <rcptamt/>
  200. <emityn/>
  201. <rtnyn/>
  202. <rtnamt/>
  203. <exeflag/>
  204. <rcptitemflag/>
  205. <amtunit/>
  206. </rcptdetl>
  207. </airplane>
  208. <transmoney>
  209. <rcptdetl>
  210. <rcptdd/>
  211. <rcptamt/>
  212. <emityn/>
  213. <rtnyn/>
  214. <rtnamt/>
  215. <exeflag/>
  216. <rcptitemflag/>
  217. <amtunit/>
  218. </rcptdetl>
  219. </transmoney>
  220. <repayment>
  221. <rcptdetl>
  222. <rcptdd/>
  223. <rcptamt/>
  224. <emityn/>
  225. <rtnyn/>
  226. <rtnamt/>
  227. <exeflag/>
  228. <rcptitemflag/>
  229. <amtunit/>
  230. </rcptdetl>
  231. </repayment>
  232. </trnptrcpt>
  233. <rcptddform>
  234. <fomalsearch/>
  235. <bcolltrans/>
  236. <familytalk/>
  237. <marrow/>
  238. <airplane/>
  239. <transmoney/>
  240. <repayment/>
  241. </rcptddform>
  242. <bmtpatientinfo/>
  243. <mdllist>
  244. <item>
  245. <hsctmdlcd/>
  246. <hsctmdlnm/>
  247. </item>
  248. </mdllist>
  249. <tempcodeinfo/>
  250. <tempcodeinfo2/>
  251. </temp>
  252. <hidden>
  253. </hidden>
  254. </root>
  255. </instance>
  256. <script type="javascript" ev:event="xforms-ready">
  257. <![CDATA[
  258. //콤보 박스 코드 세팅(환단위 코드)
  259. //zbcfGetCodeList( new Array("A0546"), new Array("/root/init/cmbinfo/monetaryunit/A0546"));
  260. //BMT 코드성 데이터 조회.(기존의 공통코드로 사용했던것들을 BMT에서 관리하도록 수정 후)
  261. aboGetCodeList(new Array("A0546"), new Array("/root/init/cmbinfo/monetaryunit/A0546"));
  262. abofGetBmtCode("CC", "A0164", "/root/init/cmbinfo/boneassocd/A0164", "cdid", "cdnm");
  263. abofGetBmtCode("CC", "A0165", "/root/init/cmbinfo/boneassocd/A0165", "cdid", "cdnm");
  264. //--------------------------------환자 세팅 Strat!!----------------------------
  265. model.setFocus("ipt_pid");
  266. if ( checkOpener()) {
  267. var param = opener.javascript.getParameter("opener_parameter_id");
  268. if(param != "") // opener parameter value가 있는 경우
  269. {
  270. //parameter value를 이용하여 프로그램 수행
  271. condarray = param.split("▦");
  272. model.setValue("/root/main/hsctinfo/patinfolist/pid", condarray[0]);
  273. model.setValue("/root/main/rcptinfo/trnptflag", condarray[1]);
  274. model.setValue("/root/main/rcptinfo/boneassocd", condarray[2]);
  275. model.setValue("/root/send/req/pid",model.getValue( "/root/main/hsctinfo/patinfolist/pid"));
  276. submit("TRABO00001");
  277. fSetAssocd();
  278. return;
  279. }
  280. }
  281. // Opener에서 받은 파라미터가 없으면 Top 정보를 참조한다.
  282. var paminfo = getGlobalVariable("paminfo"); //프로그램에 따라 원무정보(paminfo), 환자기본정보(patflag) get
  283. if ( paminfo != "" ) {
  284. model.removeNodeset("/root/temp/paminfo"); //여러개의 instance발생을 막기 위해 removeNodeset을 해줘야 함.
  285. model.makeNode("/root/temp/paminfo");
  286. setCSVToNode("/root/temp/paminfo", paminfo);
  287. //상단 정보를 이용하여 프로그램 수행
  288. var pid = model.getValue("/root/temp/paminfo" + "/list/pid");
  289. model.setValue("/root/main/hsctinfo/patinfolist/pid", pid);
  290. fSetAssocd();
  291. } else {
  292. //세션에 저장된 PID정보를 가져옴.
  293. var gv_pid = getGlobalVariable("gv_pid", "A");
  294. if(gv_pid != "") {
  295. model.setValue("/root/main/hsctinfo/patinfolist/pid", gv_pid);
  296. fSetAssocd();
  297. }
  298. }
  299. model.setValue("/root/send/req/pid",model.getValue( "/root/main/hsctinfo/patinfolist/pid"));
  300. submit("TRABO00001");
  301. //--------------------------------환자 세팅 End!!----------------------------
  302. //넘어온 이식구분 값이 존재하지 않으면 디폴트로 UBMT
  303. if(model.getValue("/root/main/rcptinfo/trnptflag") == ""){
  304. rdo_trnptflag.select(0);
  305. }
  306. //타부서에서는 버튼 비활성화
  307. btn_save.disabled = !checkAuth("X");
  308. model.refresh();
  309. ]]>
  310. </script>
  311. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  312. <script type="javascript" src="../../../com/commonweb/js/utilHelper.js"/>
  313. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  314. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  315. <script type="javascript" src="../../../ast/commonweb/js/AST.js"/>
  316. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  317. <script type="javascript" src="../../../ast/hsctweb/js/bmtcommon.js"/>
  318. <script type="javascript" src="../js/AEA0001.js"/>
  319. <submission id="TRABO00001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/req" replace="instance" resultref="/root/main/hsctinfo"/>
  320. <submission id="TRABO61001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/rcptinfo" replace="instance" resultref="/root/main/rgstseq"/>
  321. <submission id="TRABO61002" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/rcptinfo" replace="instance" resultref="/root/main/rcptdetl"/>
  322. <submission id="TRABO61003" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/rcptinfo" replace="instance" resultref="/root/main/gridrcptlist"/>
  323. <submission id="TRABO61004" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/rcptinfo" replace="instance" resultref="/root/main/defaultassocd"/>
  324. <submission id="TXABO61001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/rcptinfo" resultref="/root/temp/rgstseqlist"/>
  325. <submission id="TRABO02102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/temp/mdllist"/>
  326. <submission id="TRABO02103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/temp/tempcodeinfo"/>
  327. <script type="javascript">
  328. <![CDATA[
  329. /* @group : 골수은행수납내역
  330. * @ver : 2008.08.05
  331. * @by : 김은지
  332. * @type : function
  333. * @access : public
  334. * @desc : UBMT/CORD 값에 따라 협회 콤보박스의 목록을 세팅하고, 등록순번을 새로 불러온다.
  335. * @param :
  336. */
  337. function fSetAssocd(){
  338. fDeleteItem(); //각 폼의 값을 지우는 function
  339. if(model.getValue("/root/main/rcptinfo/trnptflag") == ""){
  340. model.setValue("/root/main/rcptinfo/trnptflag", "U");
  341. }
  342. //초기값 send 세팅
  343. model.setValue("/root/send/rcptinfo/pid", model.getValue("/root/main/hsctinfo/patinfolist/pid"));
  344. model.setValue("/root/send/rcptinfo/trnptflag", model.getValue("/root/main/rcptinfo/trnptflag"));
  345. model.setValue("/root/send/rcptinfo/boneassocd", model.getValue("/root/main/rcptinfo/boneassocd"));
  346. //UBMT의 경우 (UBMT 협회코드 : A0164)
  347. if(model.getValue("/root/main/rcptinfo/trnptflag") == "U"){
  348. copyNodesetType("/root/temp/rcptbase/boneassocdlist/item", "/root/init/cmbinfo/boneassocd/A0164", "replace");
  349. }
  350. //CORD의 경우 (CORD 협회코드 : A0165)
  351. else{
  352. copyNodesetType("/root/temp/rcptbase/boneassocdlist/item", "/root/init/cmbinfo/boneassocd/A0165", "replace");
  353. }
  354. //환자의 수납 내역이 있을 경우 해당 협회를 디폴트로 보여준다.
  355. submit("TRABO61004");
  356. if(model.getValue("/root/main/defaultassocd/boneassocd") != ""){
  357. model.setValue("/root/main/rcptinfo/boneassocd", model.getValue("/root/main/defaultassocd/boneassocd"));
  358. model.setValue("/root/send/rcptinfo/boneassocd", model.getValue("/root/main/rcptinfo/boneassocd"));
  359. }
  360. // 협회코드 없으면 진행불가
  361. if(model.getValue("/root/send/rcptinfo/boneassocd")){
  362. fSetRgstSeq(); //등록순번 세팅 function
  363. }
  364. submit("TRABO61003"); //수납 이력 그리드 조회
  365. }
  366. /* @group : 골수은행수납내역
  367. * @ver : 2008.08.05
  368. * @by : 김은지
  369. * @type : function
  370. * @access : public
  371. * @desc : 이식 차수를 신규 생성한다.
  372. * @param :
  373. */
  374. function fCreatRgstSeq(){
  375. if(model.getValue("/root/main/rcptinfo/boneassocd") == "") return;
  376. //등록 순번 노드의 가장 마지막 데이터(가장 큰값)을 가져와 1을 더한다.
  377. var NodeCount = parseInt(getNodesetCount("/root/main/rgstseq/rgstseq"));
  378. var i = model.getValue("/root/main/rgstseq/rgstseq[" + NodeCount + "]/cd");
  379. i++;
  380. // 이식차수 생성여부를 확인한다.
  381. if ( messageBox(opt_hngnm.value + " 환자의 " + i + "차 수납내역을 생성합니다.", "Q004") == 6 ) {
  382. fDeleteItem(); //각 폼의 값을 지우는 function
  383. model.makeValue ( "/root/main/rgstseq/rgstseq["+ i +"]/cd", i);
  384. model.makeValue ( "/root/main/rgstseq/rgstseq["+ i +"]/nm", i + "차");
  385. model.refresh();
  386. cmb_rgstseq.select(NodeCount); //신규 생성된 순번을 콤보박스가 자동 선택
  387. }
  388. }
  389. /* @group : 골수은행수납내역
  390. * @ver : 2008.08.05
  391. * @by : 김은지
  392. * @type : function
  393. * @access : public
  394. * @desc : 해당 환자의 해당 협회에 대해 생성된 등록순번을 조회하여 가장 최근 순번을 자동 선택
  395. * @param :
  396. */
  397. function fSetRgstSeq(){
  398. fDeleteItem(); //각 폼의 값을 지우는 function
  399. submit("TRABO61001");
  400. var nodelist = root.selectNodes("root/main/rgstseq/rgstseq/cd");
  401. //조회 결과가 존재하면 등록순번 노드 리스트의 가장 마지막 노드를 선택(등록순번은 오름차순으로 조회됨)
  402. if(nodelist.length > 0){
  403. if(model.getValue("/root/main/rcptinfo/rgstseq") == model.getValue("root/main/rgstseq/rgstseq[" + nodelist.length +"]/cd")){
  404. fSetRcptData();
  405. }
  406. cmb_rgstseq.select(nodelist.length-1);
  407. }
  408. else{
  409. fCreatRgstSeq(); //새로운 등록순번을 생성하기 위한 function
  410. }
  411. }
  412. /* @group : 골수은행수납내역
  413. * @ver : 2008.08.05
  414. * @by : 김은지
  415. * @type : function
  416. * @access : public
  417. * @desc : 조회한 데이터를 그리드에 담은 후, 알맞은 폼 위치에 세팅한다.
  418. * @param :
  419. */
  420. function fSetRcptData(){
  421. //각 폼의 값을 지운다.
  422. fDeleteItem();
  423. //조회 조건을 세팅
  424. model.setValue("/root/send/rcptinfo/pid", model.getValue("/root/main/hsctinfo/patinfolist/pid"));
  425. model.setValue("/root/send/rcptinfo/trnptflag", model.getValue("/root/main/rcptinfo/trnptflag"));
  426. model.setValue("/root/send/rcptinfo/boneassocd", model.getValue("/root/main/rcptinfo/boneassocd"));
  427. model.setValue("/root/send/rcptinfo/rgstseq", model.getValue("/root/main/rcptinfo/rgstseq"));
  428. submit("TRABO61002"); //수납 내역 조회
  429. //-----------------------------------------------------------------------------
  430. //조회한 데이터의 rcptitemflag에 따라 각 항목의 노드에 세팅
  431. var rcptitemflag = "";
  432. for(iRow=1; iRow< grd_saved.rows; iRow++){
  433. rcptitemflag = model.getValue("/root/main/rcptdetl/rcptdetl[" + iRow + "]/rcptitemflag");
  434. if(rcptitemflag == "1"){ // rcptitemflag(수납항목)이 1이면 fomalsearch
  435. copyNodeListType("/root/temp/trnptrcpt/fomalsearch" , "/root/main/rcptdetl/rcptdetl[rcptitemflag='1']", "replace");
  436. //CSV 멀티 업데이트 시 데이터 타입의 폼이 null값이면 충돌이 일어나는 문제를 막기위해 따로 생성한 노드
  437. model.setValue("/root/temp/rcptddform/fomalsearch" , model.getValue("/root/temp/trnptrcpt/fomalsearch/rcptdetl/rcptdd"));
  438. }else if(rcptitemflag == "2"){ // rcptitemflag(수납항목)이 2이면 bcolltrans (혈액채취, 운송)
  439. copyNodeListType("/root/temp/trnptrcpt/bcolltrans" , "/root/main/rcptdetl/rcptdetl[rcptitemflag='2']", "replace");
  440. model.setValue("/root/temp/rcptddform/bcolltrans" , model.getValue("/root/temp/trnptrcpt/bcolltrans/rcptdetl/rcptdd"));
  441. }else if(rcptitemflag == "4"){ // rcptitemflag(수납항목)이 4이면 familytalk (가족면담비)
  442. copyNodeListType("/root/temp/trnptrcpt/familytalk" , "/root/main/rcptdetl/rcptdetl[rcptitemflag='4']", "replace");
  443. model.setValue("/root/temp/rcptddform/familytalk" , model.getValue("/root/temp/trnptrcpt/familytalk/rcptdetl/rcptdd"));
  444. }else if(rcptitemflag == "5"){ // rcptitemflag(수납항목)이 5이면 marrow (골수채취비용)
  445. copyNodeListType("/root/temp/trnptrcpt/marrow" , "/root/main/rcptdetl/rcptdetl[rcptitemflag='5']", "replace");
  446. model.setValue("/root/temp/rcptddform/marrow" , model.getValue("/root/temp/trnptrcpt/marrow/rcptdetl/rcptdd"));
  447. }else if(rcptitemflag == "6"){ // rcptitemflag(수납항목)이 6이면 airplane (항공료(입금))
  448. copyNodeListType("/root/temp/trnptrcpt/airplane" , "/root/main/rcptdetl/rcptdetl[rcptitemflag='6']", "replace");
  449. model.setValue("/root/temp/rcptddform/airplane" , model.getValue("/root/temp/trnptrcpt/airplane/rcptdetl/rcptdd"));
  450. }else if(rcptitemflag == "7"){ // rcptitemflag(수납항목)이 7이면 transmoney (운송료(처방))
  451. copyNodeListType("/root/temp/trnptrcpt/transmoney" , "/root/main/rcptdetl/rcptdetl[rcptitemflag='7']", "replace");
  452. model.setValue("/root/temp/rcptddform/transmoney" , model.getValue("/root/temp/trnptrcpt/transmoney/rcptdetl/rcptdd"));
  453. }else if(rcptitemflag == "8"){ // rcptitemflag(수납항목)이 8이면 repayment (환불요청일,금액)
  454. copyNodeListType("/root/temp/trnptrcpt/repayment" , "/root/main/rcptdetl/rcptdetl[rcptitemflag='8']", "replace");
  455. model.setValue("/root/temp/rcptddform/repayment" , model.getValue("/root/temp/trnptrcpt/repayment/rcptdetl/rcptdd"));
  456. }
  457. }
  458. model.refresh();
  459. }
  460. /* @group : 골수은행수납내역
  461. * @ver : 2008.08.05
  462. * @by : 김은지
  463. * @type : function
  464. * @access : public
  465. * @desc : 각 항목의 폼 데이터와 조회된 그리드 데이터를 체크하여 INSERT, UPDATE 발생 시
  466. : 플래그 생성 후, 해당 노드를 "root/send/data/rcptdetl" 노드 리스트에 카피한다.
  467. * @param : Ref - grd_saved그리드에 조회해온 데이터의 위치
  468. : rowCnt - 카피한 노드를 담을 "root/send/data/rcptdetl" 노드 내의 위치
  469. : rcptitemflag - 항목 코드
  470. */
  471. function fCheckValue(Ref, rowCnt, rcptitemflag){
  472. var rcptdd = model.getValue("/root/temp/rcptddform/"+Ref);
  473. var rcptamt = model.getValue("/root/temp/trnptrcpt/"+Ref+"/rcptdetl/rcptamt");
  474. var emityn = model.getValue("/root/temp/trnptrcpt/"+Ref+"/rcptdetl/emityn");
  475. var rtnyn = model.getValue("/root/temp/trnptrcpt/"+Ref+"/rcptdetl/rtnyn");
  476. var rtnamt = model.getValue("/root/temp/trnptrcpt/"+Ref+"/rcptdetl/rtnamt");
  477. var amtunit = model.getValue("/root/temp/trnptrcpt/"+Ref+"/rcptdetl/amtunit");
  478. var rcptddFind = "";
  479. var rcptamtFind = "";
  480. var emitynFind = "";
  481. var rtnynFind = "";
  482. var rtnamtFind = "";
  483. var amtunitFind = "";
  484. var findRow = grd_saved.findRow(rcptitemflag, 1, parseInt(grd_saved.colRef("rcptitemflag")), true, true);
  485. //----------------------------------------------------------------------------
  486. //findRow > 0 : 조회해온 내역이 있을때.. findRow의 결과 값이 해당 로우 위치
  487. if(findRow > 0){
  488. rcptddFind = grd_saved.findRow(rcptdd , parseInt(findRow), parseInt(grd_saved.colRef("rcptdd")), true, true);
  489. rcptamtFind = grd_saved.findRow(rcptamt, parseInt(findRow), parseInt(grd_saved.colRef("rcptamt")), true, true);
  490. emitynFind = grd_saved.findRow(emityn , parseInt(findRow), parseInt(grd_saved.colRef("emityn")), true, true);
  491. rtnynFind = grd_saved.findRow(rtnyn , parseInt(findRow), parseInt(grd_saved.colRef("rtnyn")), true, true);
  492. rtnamtFind = grd_saved.findRow(rtnamt , parseInt(findRow), parseInt(grd_saved.colRef("rtnamt")), true, true);
  493. amtunitFind = grd_saved.findRow(amtunit, parseInt(findRow), parseInt(grd_saved.colRef("amtunit")), true, true);
  494. //플래그가 d이고 폼에 값이 입력되어 있지 않은 경우, 해당 노드를 카피
  495. if( model.getValue("/root/temp/trnptrcpt/"+Ref+"/rcptdetl/exeflag") == "d"){
  496. model.makeNode("/root/send/data/rcptdetl["+rowCnt+"]");
  497. copyNodeType("/root/send/data/rcptdetl["+rowCnt+"]", "/root/temp/trnptrcpt/" + Ref + "/rcptdetl", "replace");
  498. rowCnt++;
  499. }
  500. //수정한 내역이 하나라도 존재 한다면 상태 플래그는 업데이트 처리 후 노드 카피
  501. else if(rcptddFind < 0 || rcptamtFind < 0 || emitynFind < 0 || rtnynFind < 0 || rtnamtFind < 0 || amtunitFind < 0){
  502. if(fRcptddFormCheck(Ref) == 1){
  503. model.setValue("/root/temp/trnptrcpt/"+Ref+"/rcptdetl/exeflag", "u");
  504. model.setValue("/root/temp/trnptrcpt/"+Ref+"/rcptdetl/rcptdd" , model.getValue("/root/temp/rcptddform/"+Ref));
  505. model.makeNode("/root/send/data/rcptdetl["+rowCnt+"]");
  506. copyNodeType("/root/send/data/rcptdetl["+rowCnt+"]", "/root/temp/trnptrcpt/" + Ref + "/rcptdetl", "replace");
  507. rowCnt++;
  508. }
  509. }
  510. //조회해온 내역이 없으면서 폼에 값이 하나라도 입력되어 있으면 플래그는 insert 처리 후 노드 카피
  511. }else if(findRow < 0 ){
  512. if(rcptdd != "" || rcptamt != "" || emityn != "" || rtnyn != "" || rtnamt != "" || amtunit != ""){
  513. if(fRcptddFormCheck(Ref) == 1){
  514. model.setValue("/root/temp/trnptrcpt/"+Ref+"/rcptdetl/exeflag", "i");
  515. model.setValue("/root/temp/trnptrcpt/"+Ref+"/rcptdetl/rcptitemflag", rcptitemflag);
  516. model.setValue("/root/temp/trnptrcpt/"+Ref+"/rcptdetl/rcptdd" , model.getValue("/root/temp/rcptddform/"+Ref));
  517. model.makeNode("/root/send/data/rcptdetl["+rowCnt+"]/");
  518. copyNodeType("/root/send/data/rcptdetl["+rowCnt+"]", "/root/temp/trnptrcpt/" + Ref + "/rcptdetl", "replace");
  519. rowCnt++;
  520. }
  521. }
  522. }
  523. return rowCnt;
  524. }
  525. /* @group : 골수은행수납내역
  526. * @ver : 2008.08.05
  527. * @by : 김은지
  528. * @type : function
  529. * @access : public
  530. * @desc : 각 항목의 폼 데이터와 조회된 그리드 데이터를 체크하여 INSERT, UPDATE 발생 시
  531. 플래그 생성 후, 해당 노드를 "root/send/data" 노드 리스트에 카피한다
  532. */
  533. function fSaveData(){
  534. var nodeName = "";
  535. var rowCnt = "";
  536. var rcptitemflag = "";
  537. //각 노드에 해당 항목의 명칭과 수납항목코드를 지정
  538. //nodeName : 각각 다른 명칭의 노드 위치한 폼데이터를 for문을 통해 가져오기 위해 필요
  539. //rcptitemflag : 각 항목의 삽입, 수정, 삭제할 때 그 항목의 코드값
  540. for(var iRow=1; iRow<=7 ; iRow++){
  541. if(iRow == 1){
  542. nodeName = "fomalsearch";
  543. rcptitemflag = "1";
  544. }else if(iRow == 2){
  545. nodeName = "bcolltrans";
  546. rcptitemflag = "2";
  547. }else if(iRow == 3){
  548. nodeName = "familytalk";
  549. rcptitemflag = "4";
  550. }else if(iRow == 4){
  551. nodeName = "marrow";
  552. rcptitemflag = "5";
  553. }else if(iRow == 5){
  554. nodeName = "airplane";
  555. rcptitemflag = "6";
  556. }else if(iRow == 6){
  557. nodeName = "transmoney";
  558. rcptitemflag = "7";
  559. }else if(iRow == 7){
  560. nodeName = "repayment";
  561. rcptitemflag = "8";
  562. }
  563. //---------------------------------------------------
  564. //인스턴스의 노드 생성해주기 위해.. 처음에는 1로 시작..
  565. if(iRow == 1){
  566. rowCnt = fCheckValue(nodeName, iRow, rcptitemflag);
  567. }else{
  568. rowCnt = fCheckValue(nodeName, rowCnt, rcptitemflag);
  569. }
  570. }
  571. //C/T charge 멀티 업데이트
  572. model.setValue("/root/send/rcptinfo/ctcharge", grd_ctcharge.getUpdateData());
  573. var nodeList = instance1.selectNodes("/root/send/data/rcptdetl");
  574. //rcptdetl 역시 멀티 업데이트와 같은 형식으로 세팅
  575. var rCSV = getNodeListCSV(nodeList);
  576. model.setValue("/root/send/rcptinfo/rcptlist", rCSV);
  577. submit("TXABO61001");
  578. //수행 후 send 노드에 담신 데이터를 리셋시킨다.
  579. model.resetInstanceNode("/root/send/data/rcptdetl");
  580. model.resetInstanceNode("/root/send/rcptinfo/rcptlist");
  581. fSetRcptData(); //데이터 재조회
  582. }
  583. /* @group : 골수은행수납내역
  584. * @ver : 2008.08.05
  585. * @by : 김은지
  586. * @type : function
  587. * @access : public
  588. * @desc : 삭제 버튼을 누르면 해당 항목의 노드의 플래그를 삭제 처리 후 각 폼들의 값을 지운다.
  589. * @param : itemNode - 해당 항목의 노드명
  590. */
  591. function fSetRcptDel(itemNode){
  592. model.setValue("/root/temp/trnptrcpt/" + itemNode + "/rcptdetl/exeflag", "d");
  593. //하나의 수납항목에 속한 각각의 항목을 삭제함.
  594. model.setValue("/root/temp/rcptddform/" + itemNode, "");
  595. model.setValue("/root/temp/trnptrcpt/" + itemNode + "/rcptdetl/rcptamt", "");
  596. model.setValue("/root/temp/trnptrcpt/" + itemNode + "/rcptdetl/emityn", "");
  597. model.setValue("/root/temp/trnptrcpt/" + itemNode + "/rcptdetl/rtnyn", "");
  598. model.setValue("/root/temp/trnptrcpt/" + itemNode + "/rcptdetl/rtnamt", "");
  599. model.setValue("/root/temp/trnptrcpt/" + itemNode + "/rcptdetl/amtunit", "");
  600. model.refresh();
  601. }
  602. /* @group : 골수은행수납내역
  603. * @ver : 2008.08.05
  604. * @by : 김은지
  605. * @type : function
  606. * @access : public
  607. * @desc : 순번에 대한 각 항목을 모두 reset시킨다
  608. */
  609. function fDeleteItem(){
  610. model.resetInstanceNode("/root/temp/trnptrcpt"); //모든 항목의 폼 데이터 리셋
  611. model.resetInstanceNode("/root/temp/rcptddform"); //복사한 수납일자 폼 리셋
  612. model.resetInstanceNode("/root/main/rcptdetl/rcptdetl");
  613. model.resetInstanceNode("/root/main/rcptdetl/ctcharge");
  614. }
  615. /* @group : 정보 전송 체크
  616. * @ver : 2008.08.12
  617. * @by : 김은지
  618. * @-----------------------------------
  619. * @type : function
  620. * @access : public
  621. * @desc : 저장 버튼 클릭시 등록번호를 기입하였는지 확인하는 function
  622. */
  623. function fRcptddFormCheck(nodeNm){
  624. if( model.getValue("/root/temp/rcptddform/" + nodeNm) == ""){
  625. messageBox("수납일자는", "I003", "");
  626. return 0;
  627. }
  628. return 1;
  629. }
  630. ]]>
  631. </script>
  632. </model>
  633. </xhtml:head>
  634. <xhtml:body guideline="1,1194;2,783;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  635. <group id="grp_tle" style="left:0px; top:0px; width:1195px; height:13px; ">
  636. <caption id="caption19" class="tit_1" style="left:0px; top:0px; width:200px; height:14px; ">골수은행수납내역</caption>
  637. </group>
  638. <group id="grp_biz" scroll="auto" style="left:0px; top:13px; width:1195px; height:744px; ">
  639. <caption id="caption2" class="tit_2" style="left:5px; top:55px; width:50px; height:13px; font-family:돋움; vertical-align:middle; ">협회</caption>
  640. <line id="line1" class="line_1" style="x1:0px; y1:70px; x2:510px; y2:70px; "/>
  641. <group id="grp_sea" style="left:0px; top:10px; width:1194px; height:35px; vertical-align:top; ">
  642. <shape id="roundrect1" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:1194px; height:35px; background-color:#fffbf2; border-color:#ffd799; "/>
  643. <caption id="caption1" class="search_name" style="left:15px; top:9px; width:86px; height:17px; ">등록번호 :</caption>
  644. <line id="line13" class="line_4" style="x1:1107px; y1:7px; x2:1107px; y2:29px; "/>
  645. <input id="ipt_pid" ref="/root/main/hsctinfo/patinfolist/pid" class="input_s_button" inputtype="button" maxlength="10" style="left:104px; top:8px; width:80px; height:19px; ">
  646. <script type="javascript" ev:event="onkeypress">
  647. <![CDATA[
  648. //엔터를 치면 현재의 등록번호를 세팅하며 자동으로 조회
  649. if(event.keyCode == "13" ) {
  650. model.makeValue("/root/main/hsctinfo/patinfolist/pid", ipt_pid.currentText);
  651. btn_search.dispatch("DOMActivate");
  652. }
  653. ]]>
  654. </script>
  655. <script type="javascript" ev:event="onbuttonclick">
  656. <![CDATA[
  657. //협회 코드 초기화
  658. model.setValue("/root/main/rcptinfo/boneassocd", "");
  659. // bmtcommon.js, 환자정보를 얻는다.
  660. if ( abofGetBmtPatientSearch("/root/main/patinfo/patinfolist", "/root/temp/bmtpatientinfo", "P") ) {
  661. model.makeNode("/root/main/hsctinfo/patinfolist");
  662. model.copyNode("/root/main/hsctinfo/patinfolist", "/root/main/patinfo/patinfolist");
  663. btn_search.dispatch("DOMActivate");
  664. }
  665. ]]>
  666. </script>
  667. </input>
  668. <output id="opt_hngnm" ref="/root/main/hsctinfo/patinfolist/hngnm" class="output_search" style="left:293px; top:8px; width:80px; height:19px; "/>
  669. <output id="opt_rrgstno" ref="/root/main/hsctinfo/patinfolist/rrgstno1" class="output_search" style="left:376px; top:8px; width:110px; height:19px; "/>
  670. <output id="opt_sex" ref="/root/main/hsctinfo/patinfolist/age" class="output_search" style="left:489px; top:8px; width:30px; height:19px; "/>
  671. <output id="opt_age" ref="/root/main/hsctinfo/patinfolist/sex" class="output_search" style="left:522px; top:8px; width:30px; height:19px; "/>
  672. <button id="btn_search" class="btn1_letter2" style="left:1123px; top:7px; width:56px; height:22px; ">
  673. <caption>조회</caption>
  674. <script type="javascript" ev:event="DOMActivate">
  675. <![CDATA[
  676. //환자 조회 폼의 아이디와 현재 조회된 환자의 아이디가 다르면 환자 재조회.
  677. if(model.getValue("/root/send/req/pid") != model.getValue("/root/main/hsctinfo/patinfolist/pid")){
  678. model.setValue("/root/send/req/pid" , model.getValue( "/root/main/hsctinfo/patinfolist/pid"));
  679. submit("TRABO00001");
  680. }
  681. fSetAssocd(); //협회코드세팅
  682. ]]>
  683. </script>
  684. </button>
  685. <select1 id="rdo_trnptflag" ref="/root/main/rcptinfo/trnptflag" appearance="full" cellspacing="10" cols="3" overflow="visible" style="left:585px; top:10px; width:130px; height:45px; border-style:none; ">
  686. <choices>
  687. <item>
  688. <label>UBMT</label>
  689. <value>U</value>
  690. </item>
  691. <item>
  692. <label>CORD</label>
  693. <value>C</value>
  694. </item>
  695. </choices>
  696. <script type="javascript" ev:event="xforms-value-changed">
  697. <![CDATA[
  698. //바뀐 trnptflag를 send에서 세팅하고, boneassocd의 value를 비운다.
  699. model.setValue("/root/send/rcptinfo/trnptflag", model.getValue("/root/main/rcptinfo/trnptflag"));
  700. model.setValue("/root/main/rcptinfo/boneassocd", "");
  701. fSetAssocd();
  702. ]]>
  703. </script>
  704. </select1>
  705. <caption id="cpt_patinfo" class="search_name" style="left:203px; top:10px; width:86px; height:17px; ">환자정보 :</caption>
  706. <select id="checkbox1" ref="/root/send/rcptinfo/trnptall" overflow="visible" appearance="full" style="left:740px; top:10px; width:110px; height:20px; text-align:center; border-style:none; ">
  707. <choices>
  708. <item>
  709. <label>전체조회</label>
  710. <value>A</value>
  711. </item>
  712. </choices>
  713. <script type="javascript" ev:event="xforms-value-changed">
  714. <![CDATA[
  715. submit("TRABO61003");
  716. ]]>
  717. </script>
  718. </select>
  719. </group>
  720. <input id="ipt_rcptdd1" ref="/root/temp/rcptddform/fomalsearch" class="input_default" inputtype="date" style="left:123px; top:100px; width:90px; height:19px; "/>
  721. <input id="ipt_recptamt1" ref="/root/temp/trnptrcpt/fomalsearch/rcptdetl/rcptamt" class="input_default" format="#,###" style="left:217px; top:100px; width:70px; height:19px; text-align:right; "/>
  722. <select1 id="cmb_fomalsearch" ref="/root/temp/trnptrcpt/fomalsearch/rcptdetl/amtunit" class="combo_default" appearance="minimal" style="left:291px; top:100px; width:43px; height:19px; ">
  723. <choices>
  724. <itemset nodeset="/root/init/cmbinfo/monetaryunit/A0546/A0546">
  725. <label ref="cdnm"/>
  726. <value ref="cdid"/>
  727. </itemset>
  728. </choices>
  729. </select1>
  730. <input id="ipt_rcptdd2" ref="/root/temp/rcptddform/bcolltrans" class="input_default" inputtype="date" style="left:123px; top:124px; width:90px; height:19px; ">
  731. <script type="javascript" ev:event="onclick">
  732. <![CDATA[
  733. if(model.getValue("/root/temp/trnptrcpt/fomalsearch/rcptdetl/amtunit") != ""){
  734. model.setValue("/root/temp/trnptrcpt/bcolltrans/rcptdetl/amtunit" ,model.getValue("/root/temp/trnptrcpt/fomalsearch/rcptdetl/amtunit"));
  735. }
  736. ]]>
  737. </script>
  738. </input>
  739. <input id="ipt_recptamt2" ref="/root/temp/trnptrcpt/bcolltrans/rcptdetl/rcptamt" class="input_default" format="#,###" style="left:217px; top:124px; width:70px; height:19px; text-align:right; "/>
  740. <select1 id="cmb_bcolltrans" ref="/root/temp/trnptrcpt/bcolltrans/rcptdetl/amtunit" class="combo_default" appearance="minimal" style="left:291px; top:124px; width:43px; height:19px; ">
  741. <choices>
  742. <itemset nodeset="/root/init/cmbinfo/monetaryunit/A0546/A0546">
  743. <label ref="cdnm"/>
  744. <value ref="cdid"/>
  745. </itemset>
  746. </choices>
  747. </select1>
  748. <input id="ipt_recptamt3" ref="/root/temp/trnptrcpt/bcolltrans/rcptdetl/rtnamt" class="input_default" format="#,###" style="left:441px; top:124px; width:70px; height:19px; text-align:right; "/>
  749. <datagrid id="grd_ctcharge" nodeset="/root/main/rcptdetl/ctcharge" caption="송금일자^송금금액^단위^송금^환불^환불금액^^^^^^" colsep="^" colwidth="95, 75, 50, 40, 40, 75, 0, 0, 0, 0, 0, 0,0" dataheight="23" defaultrows="0" extendlastcol="scroll" focuscolor="#b9e5fb" mergecellsfixedrows="bycolrec" rowheight="23" rowsep="|" style="left:123px; top:171px; width:387px; height:112px; text-align:center; ">
  750. <col ref="rcptdd" type="inputdate"/>
  751. <col ref="rcptamt" type="input" format="#,###" style="text-align:right; "/>
  752. <col ref="amtunit" type="combo" itemwidth="45" style="text-align:left; ">
  753. <choices>
  754. <itemset nodeset="/root/init/cmbinfo/monetaryunit/A0546/A0546">
  755. <label ref="cdnm"/>
  756. <value ref="cdid"/>
  757. </itemset>
  758. </choices>
  759. </col>
  760. <col checkvalue="Y,N" ref="emityn" type="checkbox"/>
  761. <col type="checkbox" vvref="rtnyn"/>
  762. <col ref="rtnamt" type="input" format="#,###" style="text-align:right; "/>
  763. <col ref="rcptitemflag"/>
  764. <col ref="rcptitemflagseq"/>
  765. <col ref="pid"/>
  766. <col ref="boneassocd"/>
  767. <col ref="rgstseq"/>
  768. <col ref="amtunit"/>
  769. </datagrid>
  770. <input id="ipt_rcptdd4" ref="/root/temp/rcptddform/familytalk" class="input_default" inputtype="date" style="left:123px; top:287px; width:90px; height:19px; ">
  771. <script type="javascript" ev:event="onclick">
  772. <![CDATA[
  773. //이전 항목의 금액 단위가 설정되어 있으면 디폴트로 설정한다.
  774. if(model.getValue("/root/temp/trnptrcpt/bcolltrans/rcptdetl/amtunit") != ""){
  775. model.setValue("/root/temp/trnptrcpt/familytalk/rcptdetl/amtunit" ,model.getValue("/root/temp/trnptrcpt/bcolltrans/rcptdetl/amtunit"));
  776. }
  777. ]]>
  778. </script>
  779. </input>
  780. <input id="ipt_recptamt4" ref="/root/temp/trnptrcpt/familytalk/rcptdetl/rcptamt" class="input_default" format="#,###" style="left:217px; top:287px; width:70px; height:19px; text-align:right; "/>
  781. <select1 id="cmb_familytalk" ref="/root/temp/trnptrcpt/familytalk/rcptdetl/amtunit" class="combo_default" appearance="minimal" style="left:291px; top:287px; width:43px; height:19px; ">
  782. <choices>
  783. <itemset nodeset="/root/init/cmbinfo/monetaryunit/A0546/A0546">
  784. <label ref="cdnm"/>
  785. <value ref="cdid"/>
  786. </itemset>
  787. </choices>
  788. </select1>
  789. <input id="input18" ref="/root/temp/trnptrcpt/familytalk/rcptdetl/rtnamt" class="input_default" format="#,###" style="left:441px; top:287px; width:70px; height:19px; text-align:right; "/>
  790. <input id="ipt_rcptdd5" ref="/root/temp/rcptddform/marrow" class="input_default" inputtype="date" style="left:123px; top:311px; width:90px; height:19px; ">
  791. <script type="javascript" ev:event="onclick">
  792. <![CDATA[
  793. //이전 항목의 금액 단위가 설정되어 있으면 디폴트로 설정한다.
  794. if(model.getValue("/root/temp/trnptrcpt/familytalk/rcptdetl/amtunit") != ""){
  795. model.setValue("/root/temp/trnptrcpt/marrow/rcptdetl/amtunit" ,model.getValue("/root/temp/trnptrcpt/familytalk/rcptdetl/amtunit"));
  796. }
  797. ]]>
  798. </script>
  799. </input>
  800. <input id="ipt_recptamt5" ref="/root/temp/trnptrcpt/marrow/rcptdetl/rcptamt" class="input_default" format="#,###" style="left:217px; top:311px; width:70px; height:19px; text-align:right; "/>
  801. <select1 id="cmb_marrow" ref="/root/temp/trnptrcpt/marrow/rcptdetl/amtunit" class="combo_default" appearance="minimal" style="left:291px; top:311px; width:43px; height:19px; ">
  802. <choices>
  803. <itemset nodeset="/root/init/cmbinfo/monetaryunit/A0546/A0546">
  804. <label ref="cdnm"/>
  805. <value ref="cdid"/>
  806. </itemset>
  807. </choices>
  808. </select1>
  809. <input id="input19" ref="/root/temp/trnptrcpt/marrow/rcptdetl/rtnamt" class="input_default" format="#,###" style="left:441px; top:311px; width:70px; height:19px; text-align:right; "/>
  810. <input id="ipt_rcptdd6" ref="/root/temp/rcptddform/airplane" class="input_default" inputtype="date" style="left:123px; top:335px; width:90px; height:19px; ">
  811. <script type="javascript" ev:event="onclick">
  812. <![CDATA[
  813. //이전 항목의 금액 단위가 설정되어 있으면 디폴트로 설정한다.
  814. if(model.getValue("/root/temp/trnptrcpt/marrow/rcptdetl/amtunit") != ""){
  815. model.setValue("/root/temp/trnptrcpt/airplane/rcptdetl/amtunit" ,model.getValue("/root/temp/trnptrcpt/marrow/rcptdetl/amtunit"));
  816. }
  817. ]]>
  818. </script>
  819. </input>
  820. <input id="ipt_recptamt6" ref="/root/temp/trnptrcpt/airplane/rcptdetl/rcptamt" class="input_default" format="#,###" style="left:217px; top:335px; width:70px; height:19px; text-align:right; "/>
  821. <select1 id="cmb_airplane" ref="/root/temp/trnptrcpt/airplane/rcptdetl/amtunit" class="combo_default" appearance="minimal" style="left:290px; top:335px; width:43px; height:19px; ">
  822. <choices>
  823. <itemset nodeset="/root/init/cmbinfo/monetaryunit/A0546/A0546">
  824. <label ref="cdnm"/>
  825. <value ref="cdid"/>
  826. </itemset>
  827. </choices>
  828. </select1>
  829. <input id="input20" ref="/root/temp/trnptrcpt/airplane/rcptdetl/rtnamt" class="input_default" format="#,###" style="left:441px; top:335px; width:70px; height:19px; text-align:right; "/>
  830. <input id="ipt_rcptdd7" ref="/root/temp/rcptddform/transmoney" class="input_default" inputtype="date" style="left:123px; top:359px; width:90px; height:19px; ">
  831. <script type="javascript" ev:event="onclick">
  832. <![CDATA[
  833. //이전 항목의 금액 단위가 설정되어 있으면 디폴트로 설정한다.
  834. if(model.getValue("/root/temp/trnptrcpt/airplane/rcptdetl/amtunit") != ""){
  835. model.setValue("/root/temp/trnptrcpt/transmoney/rcptdetl/amtunit" ,model.getValue("/root/temp/trnptrcpt/airplane/rcptdetl/amtunit"));
  836. }
  837. ]]>
  838. </script>
  839. </input>
  840. <input id="ipt_recptamt7" ref="/root/temp/trnptrcpt/transmoney/rcptdetl/rcptamt" class="input_default" format="#,###" style="left:217px; top:359px; width:70px; height:19px; text-align:right; "/>
  841. <select1 id="cmb_transmoney" ref="/root/temp/trnptrcpt/transmoney/rcptdetl/amtunit" class="combo_default" appearance="minimal" style="left:290px; top:359px; width:43px; height:19px; ">
  842. <choices>
  843. <itemset nodeset="/root/init/cmbinfo/monetaryunit/A0546/A0546">
  844. <label ref="cdnm"/>
  845. <value ref="cdid"/>
  846. </itemset>
  847. </choices>
  848. </select1>
  849. <input id="input21" ref="/root/temp/trnptrcpt/transmoney/rcptdetl/rtnamt" class="input_default" format="#,###" style="left:441px; top:359px; width:70px; height:19px; text-align:right; "/>
  850. <input id="ipt_rcptdd8" ref="/root/temp/rcptddform/repayment" class="input_default" inputtype="date" style="left:123px; top:382px; width:90px; height:19px; ">
  851. <script type="javascript" ev:event="onclick">
  852. <![CDATA[
  853. //이전 항목의 금액 단위가 설정되어 있으면 디폴트로 설정한다.
  854. if(model.getValue("/root/temp/trnptrcpt/transmoney/rcptdetl/amtunit") != ""){
  855. model.setValue("/root/temp/trnptrcpt/repayment/rcptdetl/amtunit" ,model.getValue("/root/temp/trnptrcpt/transmoney/rcptdetl/amtunit"));
  856. }
  857. ]]>
  858. </script>
  859. </input>
  860. <input id="ipt_recptamt8" ref="/root/temp/trnptrcpt/repayment/rcptdetl/rcptamt" class="input_default" format="#,###" style="left:217px; top:382px; width:70px; height:19px; text-align:right; "/>
  861. <line id="line2" class="line_2" style="x1:0px; y1:97px; x2:510px; y2:97px; "/>
  862. <line id="line3" class="line_2" style="x1:0px; y1:121px; x2:510px; y2:121px; "/>
  863. <line id="line4" class="line_2" style="x1:0px; y1:284px; x2:510px; y2:284px; "/>
  864. <line id="line5" class="line_2" style="x1:0px; y1:308px; x2:510px; y2:308px; "/>
  865. <line id="line6" class="line_2" style="x1:0px; y1:332px; x2:510px; y2:332px; "/>
  866. <line id="line7" class="line_2" style="x1:0px; y1:356px; x2:510px; y2:356px; "/>
  867. <caption id="caption12" class="tit_2" style="left:520px; top:55px; width:70px; height:13px; font-family:돋움; vertical-align:middle; ">수납이력</caption>
  868. <line id="line10" class="line_1" style="x1:515px; y1:70px; x2:1194px; y2:70px; "/>
  869. <line id="line11" class="line_2" style="x1:0px; y1:380px; x2:510px; y2:380px; "/>
  870. <caption id="caption10" class="cell_1" style="left:0px; top:99px; width:120px; height:23px; vertical-align:middle; ">formal search</caption>
  871. <caption id="caption11" class="cell_1" style="left:0px; top:382px; width:120px; height:23px; vertical-align:middle; ">환불요청일,금액</caption>
  872. <caption id="caption3" class="cell_1" style="left:0px; top:123px; width:120px; height:23px; vertical-align:middle; ">혈액채취,운송</caption>
  873. <caption id="caption4" class="cell_1" style="left:0px; top:147px; width:120px; height:138px; vertical-align:middle; ">C/T</caption>
  874. <caption id="caption5" class="cell_1" style="left:0px; top:286px; width:120px; height:23px; vertical-align:middle; ">가족면담비</caption>
  875. <caption id="caption6" class="cell_1" style="left:0px; top:310px; width:120px; height:23px; vertical-align:middle; ">골수채취비용</caption>
  876. <caption id="caption16" class="cell_1" style="left:0px; top:75px; width:120px; height:23px; vertical-align:middle; "/>
  877. <caption id="caption7" class="cell_1" style="left:0px; top:334px; width:120px; height:23px; vertical-align:middle; ">항공료(입금)</caption>
  878. <caption id="caption8" class="cell_1" style="left:0px; top:358px; width:120px; height:23px; vertical-align:middle; ">운송비(처방)</caption>
  879. <caption id="caption13" class="cell_1" style="left:123px; top:75px; width:91px; height:23px; text-align:center; vertical-align:middle; ">수납일자</caption>
  880. <caption id="caption14" class="cell_1" style="left:217px; top:75px; width:72px; height:23px; text-align:center; vertical-align:middle; ">수납금액</caption>
  881. <caption id="caption15" class="cell_1" style="left:337px; top:75px; width:100px; height:23px; text-align:center; vertical-align:middle; ">상태</caption>
  882. <line id="line9" class="line_3" style="x1:0px; y1:404px; x2:510px; y2:404px; "/>
  883. <button id="btn_excsave" class="btn2_letter4" style="left:1130px; top:50px; width:64px; height:19px; ">
  884. <caption>엑셀저장</caption>
  885. <script type="javascript" ev:event="DOMActivate">
  886. <![CDATA[
  887. var fiilenm = "골수은행수납내역_(" + model.getValue("/root/send/rcptinfo/pid") + ")" + getCurrentDate();
  888. var fileName = window.fileDialog("save", ",", false, fiilenm, "xls", "Excel Files(*.xls)|*.*|All Files (*.*)|*.xls");
  889. if (fileName != "")
  890. {
  891. grd_rcpt.saveExcel(fileName);
  892. }
  893. ]]>
  894. </script>
  895. </button>
  896. <button id="button2" class="btn2_letter2" style="left:1085px; top:50px; width:42px; height:19px; ">
  897. <caption>출력</caption>
  898. </button>
  899. <caption id="caption17" class="cell_1" style="left:440px; top:75px; width:72px; height:23px; text-align:center; vertical-align:middle; ">환불금액</caption>
  900. <line id="line8" class="line_2" style="x1:0px; y1:145px; x2:510px; y2:145px; "/>
  901. <button id="btn_grddel" class="btn2_letter3" style="left:460px; top:150px; width:53px; height:19px; ">
  902. <caption>행삭제</caption>
  903. <script type="javascript" ev:event="DOMActivate">
  904. <![CDATA[
  905. grd_ctcharge.deleteRow(grd_ctcharge.row);
  906. ]]>
  907. </script>
  908. </button>
  909. <button id="btn_grdadd" class="btn2_letter3" style="left:403px; top:150px; width:53px; height:19px; ">
  910. <caption>행추가</caption>
  911. <script type="javascript" ev:event="DOMActivate">
  912. <![CDATA[
  913. grd_ctcharge.addRow();
  914. model.setValue("/root/main/rcptdetl/ctcharge[" + (grd_ctcharge.rows - 1) + "]/rcptitemflag" , "3"); //C/T의 rcptitemflag는 3
  915. model.makeValue("/root/main/rcptdetl/ctcharge[" + (grd_ctcharge.rows - 1) + "]/pid", model.getValue("/root/main/hsctinfo/patinfolist/pid"));
  916. model.makeValue("/root/main/rcptdetl/ctcharge[" + (grd_ctcharge.rows - 1) + "]/trnptflag", model.getValue("/root/main/rcptinfo/trnptflag"));
  917. model.makeValue("/root/main/rcptdetl/ctcharge[" + (grd_ctcharge.rows - 1) + "]/rgstseq", model.getValue("/root/main/rcptinfo/rgstseq"));
  918. model.makeValue("/root/main/rcptdetl/ctcharge[" + (grd_ctcharge.rows - 1) + "]/boneassocd", model.getValue("/root/main/rcptinfo/boneassocd"));
  919. grd_ctcharge.refresh();
  920. ]]>
  921. </script>
  922. </button>
  923. <select1 id="cmb_assocd" ref="/root/main/rcptinfo/boneassocd" class="combo_essential" appearance="minimal" style="left:60px; top:50px; width:140px; height:19px; ">
  924. <choices>
  925. <itemset nodeset="/root/temp/rcptbase/boneassocdlist/item">
  926. <label ref="cdnm"/>
  927. <value ref="cdid"/>
  928. </itemset>
  929. </choices>
  930. <script type="javascript" ev:event="xforms-value-changed">
  931. <![CDATA[
  932. model.setValue("/root/send/rcptinfo/boneassocd", model.getValue("/root/main/rcptinfo/boneassocd"));
  933. fSetRgstSeq(); //등록순번 세팅
  934. ]]>
  935. </script>
  936. </select1>
  937. <button id="btn_clear" class="btn4_letter3" style="left:384px; top:408px; width:68px; height:22px; ">
  938. <caption>초기화</caption>
  939. <script type="javascript" ev:event="DOMActivate">
  940. <![CDATA[
  941. model.reset();
  942. ]]>
  943. </script>
  944. </button>
  945. <button id="btn_save" class="btn4_letter2" style="left:454px; top:408px; width:56px; height:22px; ">
  946. <caption>저장</caption>
  947. <script type="javascript" ev:event="DOMActivate">
  948. <![CDATA[
  949. if(model.getValue("/root/main/rcptinfo/boneassocd") == "") {
  950. messageBox("등록순번은", "I003");
  951. }
  952. else{
  953. fSaveData();
  954. submit("TRABO61003"); //수납 이력 그리드 조회
  955. }
  956. ]]>
  957. </script>
  958. </button>
  959. <caption id="caption9" class="tit_2" style="left:275px; top:55px; width:75px; height:13px; font-family:돋움; vertical-align:middle; ">등록순번</caption>
  960. <select1 id="cmb_rgstseq" ref="/root/main/rcptinfo/rgstseq" class="combo_essential" appearance="minimal" style="left:350px; top:50px; width:65px; height:19px; font-weight:bold; ">
  961. <choices>
  962. <itemset nodeset="/root/main/rgstseq/rgstseq">
  963. <label ref="nm"/>
  964. <value ref="cd"/>
  965. </itemset>
  966. </choices>
  967. <script type="javascript" ev:event="xforms-value-changed">
  968. <![CDATA[
  969. model.setValue("/root/send/rcptinfo/rgstseq", model.getValue("/root/main/rcptinfo/rgstseq"));
  970. fDeleteItem();
  971. fSetRcptData();
  972. ]]>
  973. </script>
  974. </select1>
  975. <button id="btn_rgstseq" class="btn2_letter6" style="left:425px; top:50px; width:86px; height:19px; ">
  976. <caption>등록순번생성</caption>
  977. <script type="javascript" ev:event="DOMActivate">
  978. <![CDATA[
  979. if(model.getValue("/root/main/rcptinfo/boneassocd") == ""){
  980. messageBox("협회를 선택하여 주십시오.", "I");
  981. }
  982. fCreatRgstSeq();
  983. ]]>
  984. </script>
  985. </button>
  986. <datagrid id="grd_saved" nodeset="/root/main/rcptdetl/rcptdetl" visibility="hidden" caption="rcptitemflag^rcptdd^rcptamt^emityn^rtnyn^rtnamt^exeflag^amtunit" colsep="^" colwidth="77, 72, 95, 40, 30, 64, 66, 30" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:450px; width:495px; height:100px; ">
  987. <col ref="rcptdd"/>
  988. <col ref="rcptamt"/>
  989. <col ref="emityn"/>
  990. <col ref="rtnyn"/>
  991. <col ref="rtnamt"/>
  992. <col ref="exeflag"/>
  993. <col ref="rcptitemflag"/>
  994. <col ref="amtunit"/>
  995. </datagrid>
  996. <button id="bnt_repayment" class="icon_eraser" style="left:97px; top:382px; width:23px; height:23px; ">
  997. <caption/>
  998. <script type="javascript" ev:event="DOMActivate">
  999. <![CDATA[
  1000. fSetRcptDel("repayment");
  1001. ipt_rcptdd8.refresh();
  1002. ]]>
  1003. </script>
  1004. <hint>
  1005. <![CDATA[해당 항목의 수납내역을 삭제할 때 사용]]>
  1006. </hint>
  1007. </button>
  1008. <button id="bnt_transmoney" class="icon_eraser" style="left:97px; top:357px; width:23px; height:23px; ">
  1009. <caption/>
  1010. <script type="javascript" ev:event="DOMActivate">
  1011. <![CDATA[
  1012. fSetRcptDel("transmoney");
  1013. ipt_rcptdd7.refresh();
  1014. ]]>
  1015. </script>
  1016. <hint>
  1017. <![CDATA[해당 항목의 수납내역을 삭제할 때 사용]]>
  1018. </hint>
  1019. </button>
  1020. <button id="bnt_airplane" class="icon_eraser" style="left:97px; top:333px; width:23px; height:23px; ">
  1021. <caption/>
  1022. <script type="javascript" ev:event="DOMActivate">
  1023. <![CDATA[
  1024. fSetRcptDel("airplane");
  1025. ipt_rcptdd6.refresh();
  1026. ]]>
  1027. </script>
  1028. <hint>
  1029. <![CDATA[해당 항목의 수납내역을 삭제할 때 사용]]>
  1030. </hint>
  1031. </button>
  1032. <button id="bnt_marrow" class="icon_eraser" style="left:97px; top:309px; width:23px; height:23px; ">
  1033. <caption/>
  1034. <script type="javascript" ev:event="DOMActivate">
  1035. <![CDATA[
  1036. fSetRcptDel("marrow");
  1037. ipt_rcptdd5.refresh();
  1038. ]]>
  1039. </script>
  1040. <hint>
  1041. <![CDATA[해당 항목의 수납내역을 삭제할 때 사용]]>
  1042. </hint>
  1043. </button>
  1044. <button id="bnt_familytalk" class="icon_eraser" style="left:97px; top:284px; width:23px; height:23px; ">
  1045. <caption/>
  1046. <script type="javascript" ev:event="DOMActivate">
  1047. <![CDATA[
  1048. fSetRcptDel("familytalk");
  1049. ipt_rcptdd4.refresh();
  1050. ]]>
  1051. </script>
  1052. <hint>
  1053. <![CDATA[해당 항목의 수납내역을 삭제할 때 사용]]>
  1054. </hint>
  1055. </button>
  1056. <button id="bnt_bcolltrans" class="icon_eraser" style="left:97px; top:124px; width:23px; height:23px; ">
  1057. <caption/>
  1058. <script type="javascript" ev:event="DOMActivate">
  1059. <![CDATA[
  1060. fSetRcptDel("bcolltrans");
  1061. ipt_rcptdd2.refresh();
  1062. ]]>
  1063. </script>
  1064. <hint>
  1065. <![CDATA[해당 항목의 수납내역을 삭제할 때 사용]]>
  1066. </hint>
  1067. </button>
  1068. <button id="bnt_fomalsearch" class="icon_eraser" style="left:97px; top:100px; width:23px; height:23px; ">
  1069. <caption/>
  1070. <script type="javascript" ev:event="DOMActivate">
  1071. <![CDATA[
  1072. fSetRcptDel("fomalsearch");
  1073. ipt_rcptdd1.refresh();
  1074. ]]>
  1075. </script>
  1076. <hint>
  1077. <![CDATA[해당 항목의 수납내역을 삭제할 때 사용]]>
  1078. </hint>
  1079. </button>
  1080. <bool id="bln_emityn1" checkvalue="Y,N" ref="/root/temp/trnptrcpt/fomalsearch/rcptdetl/emityn" style="left:338px; top:101px; width:18px; height:20px; border-style:none; "/>
  1081. <caption id="caption20" style="left:355px; top:102px; width:30px; height:20px; ">송금</caption>
  1082. <bool id="bool1" checkvalue="Y,N" ref="/root/temp/trnptrcpt/bcolltrans/rcptdetl/rtnyn" style="left:393px; top:124px; width:18px; height:20px; border-style:none; "/>
  1083. <caption id="caption21" style="left:410px; top:124px; width:30px; height:20px; ">환불</caption>
  1084. <bool id="bool2" checkvalue="Y,N" ref="/root/temp/trnptrcpt/marrow/rcptdetl/emityn" style="left:337px; top:310px; width:18px; height:20px; border-style:none; "/>
  1085. <caption id="caption22" style="left:354px; top:310px; width:30px; height:20px; ">송금</caption>
  1086. <bool id="bool3" checkvalue="Y,N" ref="/root/temp/trnptrcpt/airplane/rcptdetl/emityn" style="left:337px; top:334px; width:18px; height:20px; border-style:none; "/>
  1087. <caption id="caption23" style="left:354px; top:334px; width:30px; height:20px; ">송금</caption>
  1088. <bool id="bool4" checkvalue="Y,N" ref="/root/temp/trnptrcpt/transmoney/rcptdetl/emityn" style="left:337px; top:358px; width:18px; height:20px; border-style:none; "/>
  1089. <caption id="caption24" style="left:354px; top:358px; width:30px; height:20px; ">처방</caption>
  1090. <bool id="bool5" checkvalue="Y,N" ref="/root/temp/trnptrcpt/familytalk/rcptdetl/rtnyn" style="left:393px; top:286px; width:18px; height:20px; border-style:none; "/>
  1091. <caption id="caption25" style="left:409px; top:286px; width:30px; height:20px; ">환불</caption>
  1092. <bool id="bool6" checkvalue="Y,N" ref="/root/temp/trnptrcpt/marrow/rcptdetl/rtnyn" style="left:393px; top:310px; width:18px; height:20px; border-style:none; "/>
  1093. <caption id="caption26" style="left:409px; top:310px; width:30px; height:20px; ">환불</caption>
  1094. <bool id="bool7" checkvalue="Y,N" ref="/root/temp/trnptrcpt/airplane/rcptdetl/rtnyn" style="left:393px; top:334px; width:18px; height:20px; border-style:none; "/>
  1095. <caption id="caption27" style="left:409px; top:334px; width:30px; height:20px; ">환불</caption>
  1096. <bool id="bool8" checkvalue="Y,N" ref="/root/temp/trnptrcpt/repayment/rcptdetl/rtnyn" style="left:393px; top:381px; width:18px; height:20px; border-style:none; "/>
  1097. <caption id="caption28" style="left:409px; top:381px; width:30px; height:20px; ">환불</caption>
  1098. <datagrid id="grd_rcpt" nodeset="/root/main/gridrcptlist/gridrcpt" class="datagrid2" caption="협회^항목^수납일자^수납금액^수납금액^송금/처방^환불^환불금액^환불금액" colsep="^" colwidth="155, 144, 100, 80, 20, 40, 40, 80, 20" dataheight="23" defaultrows="0" explorerbar="sort" extendlastcol="scroll" focuscolor="#b9e5fb" mergecellsfixedrows="bycolrec" rowheight="23" rowsep="|" style="left:515px; top:75px; width:679px; height:665px; ">
  1099. <col ref="boneassocd"/>
  1100. <col ref="rcptitemflag" type="output" style="text-align:left; "/>
  1101. <col ref="rcptdd" format="yyyy-mm-dd" style="text-align:center; "/>
  1102. <col ref="rcptamt" type="output" format="#,###" style="text-align:right; "/>
  1103. <col ref="amtunit"/>
  1104. <col checkvalue="Y,N" disabled="true" ref="emityn" type="checkbox"/>
  1105. <col checkvalue="Y,N" disabled="true" ref="rtnyn" type="checkbox"/>
  1106. <col ref="rtnamt" format="#,###"/>
  1107. <col ref="amtunit"/>
  1108. </datagrid>
  1109. <caption id="caption18" class="cell_1" style="left:292px; top:75px; width:42px; height:23px; text-align:center; vertical-align:middle; ">단위</caption>
  1110. <select1 id="cmb_repayment" ref="/root/temp/trnptrcpt/repayment/rcptdetl/amtunit" class="combo_default" appearance="minimal" style="left:290px; top:382px; width:43px; height:19px; ">
  1111. <choices>
  1112. <itemset nodeset="/root/init/cmbinfo/monetaryunit/A0546/A0546">
  1113. <label ref="cdnm"/>
  1114. <value ref="cdid"/>
  1115. </itemset>
  1116. </choices>
  1117. </select1>
  1118. </group>
  1119. </xhtml:body>
  1120. </xhtml:html>