SMPAO00700.js 67 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705
  1. //Mode : I : insert U: update/선택
  2. var gMode = "I";
  3. // 외래등록 선택시
  4. function fReady() {
  5. fGetUserInfosSampling2();
  6. //공통코드
  7. zbcfGetCodeList( new Array("P0312","P0311","P0076","P0078","P0073"),
  8. new Array("/root/init_com/comncdlist/P0312list" //수납계정
  9. ,"/root/init_com/comncdlist/P0311list" //납부자정보
  10. ,"/root/init_com/comncdlist/P0076list" //카드사코드명칭
  11. ,"/root/init_com/comncdlist/P0078list" //할부개월수
  12. ,"/root/init_com/comncdlist/P0073list" //현금승인자격구분
  13. ) );
  14. zbcfGetKindCodeList(
  15. new Array("P0001"), //업무규칙
  16. new Array("P0312"), //코드군
  17. new Array("/root/init_com/kindcomncdlist/P0001P0312list"), //노드
  18. true, //minimum : true TRZBC00105
  19. new Array("cdid"), //sorting 항목
  20. new Array("asc") //
  21. );
  22. //치과 IC칩 결제 관련 프로그램 수정(2016/05/11 이정택)
  23. pamfGetCodeList(new Array("P0032"), new Array("/root/init_pam/P0032list"));
  24. //치과 IC칩 결제 관련 프로그램 수정(2016/05/11 이정택)
  25. //원무사용 기초코드 조회 cache기능 추가
  26. if ( copyFromCache("TRPAMCOM01_depttree","/root/init") ) {
  27. //
  28. } else {
  29. if ( submit("TRPAMCOM01") ) {
  30. storeIntoCache("TRPAMCOM01_depttree","/root/init","540");
  31. }
  32. }
  33. fInitialize();
  34. //팝업 처리---------------------------
  35. var orddeptcd = '';
  36. var orddrid = '';
  37. var pid = '';
  38. var node = getGlobalVariable("paminfo");
  39. if( node != '' && node != null){
  40. model.makeNode("/root/temp/paminfo");
  41. setCSVToNode("/root/temp/paminfo", node);
  42. var ioflag = model.getValue("/root/temp/paminfo/list/ioflag");
  43. pid = model.getValue("/root/temp/paminfo/list/pid");
  44. }else if (checkOpener()){ //팝업화면으로 사용될 때
  45. //RSRVFLAG, ETCORDFLAG 를 받아온다.
  46. var SMPAO00700_PARM = opener.javascript.getParameter("SMPAO00700_PARM");
  47. var array_parm = SMPAO00700_PARM.split("▦");
  48. var SMPAO00700_PARM2 = opener.javascript.getParameter("SMPAO00700_PARM2");
  49. var array_parm2 = SMPAO00700_PARM2.split("▦");
  50. pid = array_parm2[0];
  51. }
  52. //화면 호출시 조회상태로
  53. //팝업처리----------------------------------------------
  54. if (pid != "") {
  55. model.setValue("/root/source/srchcond", "1");
  56. model.setValue("/root/source/pid",pid);
  57. model.setValue("/root/send/pid",pid);
  58. model.setValue("/root/main/patinfo/patinfolist/pid",pid);
  59. model.refresh();
  60. event.keyCode = "13";
  61. ipt_pid.dispatch("onkeypress");
  62. }
  63. model.refresh();
  64. }
  65. //화면 초기화
  66. function fInitialize(){
  67. //import화면(환자인적정보) 초기화
  68. model.resetInstanceNode("/root/main/patinfo"); //인적사항import clear
  69. //그 외에 화면 초기화
  70. model.resetInstanceNode("/root/send");
  71. //model.resetInstanceNode("/root/hidden");
  72. model.removenode("/root/main/mdlamtspec");
  73. model.setValue("/root/send/srchcond","AA"); //조회조건 [전체]로 세팅
  74. //디폴트세팅
  75. model.setValue("/root/main/etc/option/cardyn","C"); //Y: 카드 N:현금
  76. model.setValue("/root/main/etc/option/indinstflag","02"); //00:소득공제 01:지출증빙
  77. model.setValue("/root/main/etc/option/deptengabbr",""); //진료과 약어
  78. //금액디폴트세팅
  79. model.setValue("/root/send/s_bogj/bogj/bogj_cashamt","0");
  80. model.setValue("/root/send/s_bogj/bogj/bogj_cardamt","0");
  81. model.setValue("/root/send/s_bogj/bogj/bogj_onlineamt","0");
  82. model.setValue("/root/send/s_bogj/bogj/bogj_rcptexptamt","0");
  83. //카드승인체크여부
  84. model.setValue("/root/option/bogj_cardck" , "N");
  85. model.setFocus("ipt_pid");
  86. btn_cardlist.dispatch("onclick");
  87. model.refresh();
  88. }
  89. //세션정보 추출하기
  90. function fGetUserInfosSampling2(){
  91. var sUserInfosS = getUserInfos();
  92. sUserInfosS = sUserInfosS + "|";
  93. var UserInfosS_Array = sUserInfosS.split("|");
  94. var userid = UserInfosS_Array[0]; //사용자번호
  95. var usernm = UserInfosS_Array[1]; //사용자이름
  96. var posinstcd = UserInfosS_Array[2]; //소속기관코드
  97. var posinstnm = UserInfosS_Array[3]; //소속기관명
  98. var posdeptcd = UserInfosS_Array[4]; //소속부서코드
  99. var posdeptnm = UserInfosS_Array[5]; //소속부서명
  100. var dutplceinstcd = UserInfosS_Array[6]; //소속부서명
  101. if (userid == null || userid == "" || userid == " " || userid == "-") userid = "pam";
  102. if (posinstcd == null || posinstcd == "" || posinstcd == " " || posinstcd == "-" || dutplceinstcd == "-") posinstcd = "012";
  103. /*
  104. model.makeNode("/root/hidden/session/sess_userid");
  105. model.makeNode("/root/hidden/session/sess_usernm");
  106. model.makeNode("/root/hidden/session/sess_posinstcd");
  107. model.makeNode("/root/hidden/session/sess_posinstnm");
  108. model.makeNode("/root/hidden/session/sess_posdeptcd");
  109. model.makeNode("/root/hidden/session/sess_posdeptnm")
  110. model.setValue("/root/hidden/session/sess_userid",userid);
  111. model.setValue("/root/hidden/session/sess_usernm",usernm);
  112. model.setValue("/root/hidden/session/sess_posinstcd",posinstcd);
  113. model.setValue("/root/hidden/session/sess_posinstnm",posinstnm);
  114. model.setValue("/root/hidden/session/sess_posdeptcd",posdeptcd);
  115. model.setValue("/root/hidden/session/sess_posdeptnm",posdeptnm);
  116. */
  117. model.makeValue("/root/hidden2/session/sess_userid",userid);
  118. model.makeValue("/root/hidden2/session/sess_usernm",usernm);
  119. model.makeValue("/root/hidden2/session/sess_posinstcd",posinstcd);
  120. model.makeValue("/root/hidden2/session/sess_posinstnm",posinstnm);
  121. model.makeValue("/root/hidden2/session/sess_posdeptcd",posdeptcd);
  122. model.makeValue("/root/hidden2/session/sess_posdeptnm",posdeptnm);
  123. model.makeValue("/root/hidden2/session/sess_dutplceinstcd",dutplceinstcd);
  124. model.refresh();
  125. }
  126. //중간금 수납내역 조회
  127. function fSearch(){
  128. if( model.getValue("/root/main/popupendflag") == "ok" ){
  129. var vcheck_pid = model.getValue("/root/main/patinfo/patinfolist/pid").getTrim();
  130. if( vcheck_pid.length == 0){
  131. messageBox("환자번호가 정확히 입력되지", "E007");
  132. return false;
  133. }
  134. //2018/03/27 이정택 주석처리(필요없는 로직이라 판단 수정예정)
  135. submit("TRPAO00120"); //환자 기본정보조회(현금영수증 정보)
  136. //2018/03/27 이정택 주석처리(필요없는 로직이라 판단 수정예정)
  137. //등록번호,진료형태,선수금여부 세팅
  138. model.setValue("/root/send/pid", model.getValue("/root/main/patinfo/patinfolist/pid")); //등록번호
  139. model.setValue("/root/send/ordtype","O"); //진료형태 : 외래 O
  140. model.setValue("/root/send/preamtyn","Y"); //선수금여부 : 선수금 Y
  141. //조회하기전 clear
  142. model.copynode("/root/main/mdlamtspec" , "/root/node_bk/main/mdlamtspec");
  143. model.copynode("/root/main/rcv1" , "/root/node_bk/main/rcv1");
  144. model.copynode("/root/send/s_bogj" , "/root/node_bk/send/s_bogj");
  145. model.copynode("/root/send/s_card" , "/root/node_bk/send/s_card");
  146. model.copynode("/root/send/s_cash" , "/root/node_bk/send/s_cash");
  147. model.copynode("/root/send/s_onln" , "/root/node_bk/send/s_onln");
  148. submit("TRPAO00701");
  149. //조회후, 신규입력 포커스 이동
  150. fNewInsert();
  151. //model.setFocus("cmb_rcptflag");
  152. model.refresh();
  153. }
  154. }
  155. //영수증 재발행
  156. function fReceiptPrint(vRePrintYN) {
  157. if (vRePrintYN == "Y") {
  158. //재발행이면, 선택된 수납정보로 출력
  159. var vpid = model.getValue("/root/main/mdlamtspec/bogj["+ grd_mdlamtlist.row +"]/bogj_pid");
  160. if (vpid == "" || vpid == " " || vpid == null ) {
  161. messageBox("선택된 내역이 없습니다.","E999","");
  162. return;
  163. }
  164. //ordtype : 외래영수증 / 외래중간금영수증 / 외래합산영수증
  165. model.makeValue("/root/main/h_receipt/receipt/ordtype" , "외래중간금영수증" );
  166. model.makeValue("/root/main/h_receipt/receipt/pid" , model.getValue("/root/main/mdlamtspec/bogj["+ grd_mdlamtlist.row +"]/bogj_pid") );
  167. model.makeValue("/root/main/h_receipt/receipt/rcptdd" , model.getValue("/root/main/mdlamtspec/bogj["+ grd_mdlamtlist.row +"]/bogj_rcptdd") );
  168. model.makeValue("/root/main/h_receipt/receipt/rcptno" , model.getValue("/root/main/mdlamtspec/bogj["+ grd_mdlamtlist.row +"]/bogj_rcptno") );
  169. model.makeValue("/root/main/h_receipt/receipt/rcptseqno", model.getValue("/root/main/mdlamtspec/bogj["+ grd_mdlamtlist.row +"]/bogj_rcptseqno") );
  170. model.makeValue("/root/main/h_receipt/receipt/instcd" , model.getValue("/root/main/mdlamtspec/bogj["+ grd_mdlamtlist.row +"]/bogj_instcd") );
  171. model.makeValue("/root/temp/receipt/fromdd", "" );
  172. model.makeValue("/root/temp/receipt/todd", "" );
  173. model.makeValue("/root/temp/receipt/engYN", "N" );
  174. model.makeValue("/root/temp/receipt/reprintYN", "Y" );
  175. model.makeValue("/root/temp/receipt/ordrcptflag", "" );
  176. }else{
  177. //재발행아니면, 수납/취소 시 output Parameter
  178. model.setValue("/root/main/h_receipt/receipt/ordtype", "외래중간금영수증" );
  179. model.makeValue("/root/main/h_receipt/receipt/fromdd", "" );
  180. model.makeValue("/root/main/h_receipt/receipt/todd", "" );
  181. model.makeValue("/root/main/h_receipt/receipt/engYN", "N" );
  182. model.makeValue("/root/main/h_receipt/receipt/reprintYN", "N" );
  183. model.makeValue("/root/main/h_receipt/receipt/ordrcptflag", "" );
  184. }
  185. copyNodesetType("/root/temp", "/root/main/h_receipt", "replace");
  186. //영수증 팝업화면 호출
  187. //modal("../../../pam/pamcomnweb/xrw/SPPAO01900_영수증출력", "1", "100", "100" ,"SPPAO01900_영수증출력", "", "");
  188. modal("SPPAO01900");
  189. }//end function
  190. function fReceipt() {
  191. // 수납자 마감여부 체크하여 처리
  192. if (isMagmAprv()) {
  193. return false; // 마감결제 완료되어있으므로 더이상 진행하지 않음
  194. }
  195. fbogj_removemask();
  196. //필수사항과 입력타입을 체크한다.
  197. if(!isRequiredControls("cmb_rcptflag","cmb_paypsnflag")) return;
  198. // 납부할금액 = 카드+현금+온라인
  199. if ( eval(model.getValue("/root/send/s_bogj/bogj/bogj_rcptexptamt")) !=
  200. eval(model.getValue("/root/send/s_bogj/bogj/bogj_cashamt"))+
  201. eval(model.getValue("/root/send/s_bogj/bogj/bogj_cardamt"))+
  202. eval(model.getValue("/root/send/s_bogj/bogj/bogj_onlineamt"))
  203. ) {
  204. messageBox("금액오류입니다.(납부할금액 != 카드금액+현금금액+통장입금액)","E999","");
  205. return;
  206. }
  207. if (eval(model.getValue("/root/send/s_bogj/bogj/bogj_rcptexptamt") == 0 )) {
  208. messageBox("납부할 금액이 없습니다. 금액을 확인하십시오","E999","");
  209. return;
  210. }
  211. if (eval(model.getValue("/root/send/s_bogj/bogj/bogj_cashamt"))+
  212. eval(model.getValue("/root/send/s_bogj/bogj/bogj_cardamt"))+
  213. eval(model.getValue("/root/send/s_bogj/bogj/bogj_onlineamt")) == 0 ) {
  214. messageBox("금액을 확인 하십시오.(카드금액+현금금액+통장입금액 = 0)","E999","");
  215. return;
  216. }
  217. if(model.getvalue("/root/send/s_bogj/bogj/bogj_orddeptcd") == "") {
  218. messageBox("진료과를 선택해 주십시요.","E999","");
  219. return;
  220. }
  221. if(model.getvalue("/root/send/s_bogj/bogj/bogj_rcptflag") == "A03") {
  222. var remamt = parseInt(model.getValue("/root/main/mdlamtspec/remamt/remamt_remamtm")) + // 현금금액
  223. parseInt(model.getValue("/root/main/mdlamtspec/remamt/remamt_remamtc")) + // 카드금액
  224. parseInt(model.getValue("/root/main/mdlamtspec/remamt/remamt_remamto")); // 온라인금액
  225. if(parseInt(model.getValue("/root/send/s_bogj/bogj/bogj_rcptexptamt")) + remamt < 0) {
  226. messageBox("선수금 잔액보다 환불 금액이 더 큽니다.","E999","");
  227. return;
  228. }
  229. /* 2017/03/06 이정택(카드 취소는 카드 선수금이 존재할때만 취소 할 수 있도록 개발 완료하였으나,
  230. * 3개월 이내건은 카드 수수료때문에 카드 매입이 안됐다 하면 카드로 취소가 이루어 지고 있기 때문에
  231. * 개발 한 내용 주석처리함
  232. var remamt_card = parseInt(model.getValue("/root/main/mdlamtspec/remamt/remamt_remamtc"));
  233. if(rdo_cardyn.value == 'Y' && remamt_card <= 0) {
  234. messageBox("카드 선수금이 없는데 카드 환불을 선택하였습니다.\n확인하여 주십시오.","E999","");
  235. return;
  236. }
  237. if(rdo_cardyn.value == 'Y' && remamt_card + parseInt(model.getValue("/root/send/s_bogj/bogj/bogj_rcptexptamt"))<0) {
  238. messageBox("카드 선수금보다 환불하시려는 카드 환불금액이 더 많습니다.\n확인하여 주십시오.","E999","");
  239. return;
  240. }
  241. */
  242. }
  243. if(model.getvalue("/root/send/s_bogj/bogj/bogj_rcptflag") == "A13") {
  244. if(parseInt(model.getValue("/root/send/s_bogj/bogj/bogj_rcptexptamt")) + parseInt(model.getValue("/root/main/mdlamtspec/remamt/remamt_remamt2")) < 0) {
  245. messageBox("가정간호 선수금 잔액이 모자랍니다.","E999","");
  246. return;
  247. }
  248. }
  249. if (parseInt(model.getValue("/root/send/s_bogj/bogj/bogj_cardamt")) < 0 && model.getvalue("/root/option/bogj_cardck") == "Y") {
  250. if( messageBox("카드환불입니다. 계속 진행하시겠습니까?", "Q999", "") != 6 ){
  251. return;
  252. }
  253. }
  254. if (model.getvalue("/root/main/etc/option/cardyn") != "Y") {
  255. model.setvalue("/root/main/etc/option/cardyn", "N");
  256. }
  257. if(model.getvalue("/root/main/etc/option/cardyn") == "Y" &&
  258. model.getvalue("/root/option/bogj_cardck") == "Y" &&
  259. model.getvalue("/root/main/m_etc/cardno") != "") {
  260. messageBox("승인완료가 체크되어 있으면서 카드번호가 있습니다.","E999","");
  261. return;
  262. }
  263. var van_kind = model.getValue("/root/init_pam/P0032list/P0032[cdid='200']/cdnm");
  264. if(van_kind != 'KOCES_IC'){
  265. if(model.getvalue("/root/main/etc/option/cardyn") == "Y" &&
  266. model.getvalue("/root/option/bogj_cardck") != "Y" &&
  267. model.getvalue("/root/main/m_etc/cardno") == "") {
  268. messageBox("카드승인번호가 없습니다.","E999","");
  269. return;
  270. }
  271. }
  272. /* 카드수납팝업에서 처리
  273. // 최소금액체크
  274. if(model.getValue("/root/main/etc/option/cardyn") == "Y"
  275. && parseInt(model.getValue("/root/send/s_bogj/bogj/bogj_cardamt")) < 1000
  276. && parseInt(model.getValue("/root/send/s_bogj/bogj/bogj_cardamt")) > -1000) {
  277. messageBox("1,000원미만 금액은 카드결제 할 수 없습니다.","E999");
  278. return;
  279. }
  280. */
  281. model.setValue("/root/send/s_bogj/bogj/bogj_pid",model.getValue("/root/send/pid"));
  282. model.setValue("/root/send/s_bogj/bogj/bogj_ordtype" ,"O"); //진료형태:외래 O
  283. model.setValue("/root/send/s_bogj/bogj/bogj_rcptstat","Y"); //수납상태:수납 Y
  284. //영수일자,수납일자,수납시간
  285. model.setValue("/root/send/s_bogj/bogj/bogj_rcptdd" ,getCurrentDate()); //영수일자:현재날짜
  286. model.setValue("/root/send/s_bogj/bogj/bogj_rcptexecdd",getCurrentDate()); //수납일자:현재날짜
  287. model.setValue("/root/send/s_bogj/bogj/bogj_rcpttm" ,getCurrentTime()); //수납시간:현재시간
  288. model.setValue("/root/send/option/bogj_cardck" , model.getvalue("/root/option/bogj_cardck"));
  289. //////////////////////////////////카드팝업 추가start/////////////////////////////////////////////
  290. if(getNodesetCount("/root/send/s_card/card[card_innrtretyn='N']") == 0 && model.getvalue("/root/option/bogj_cardck") != "Y") {
  291. var vCardamt = parseInt(model.getValue("/root/send/s_bogj/bogj/bogj_cardamt"));
  292. if(vCardamt > 0)
  293. {
  294. if(fOpenCardPopUp("I") == false) { return; };
  295. }
  296. }
  297. //////////////////////////////////카드팝업 추가end/////////////////////////////////////////////
  298. //////////////////////////////////현금승인 추가start/////////////////////////////////////////////
  299. if(getNodesetCount("/root/send/s_card/card[cash_innrtretyn='N']") == 0) {
  300. var vCashamt = parseInt(model.getValue("/root/send/s_bogj/bogj/bogj_cashamt"));
  301. var indinstflag = model.getvalue("/root/main/etc/option/indinstflag");
  302. if((model.getValue("/root/main/etc/option/cardyn") == "Y" && indinstflag != "02" && vCashamt > 0) ||
  303. (model.getValue("/root/main/etc/option/cardyn") == "N" && indinstflag != "02" && vCashamt > 0))
  304. {
  305. if(fOpenCashPopUp("I") == false) { return; };
  306. }
  307. }
  308. //////////////////////////////////현금승인 추가end/////////////////////////////////////////////
  309. //////////////////////////////////온라인입금start/////////////////////////////////////////////
  310. var vOnlineamt = parseInt(model.getValue("/root/main/outrgst/m_opmi/opmi/opmi_onlineamt"));
  311. var onln_cnt = getNodesetCount("/root/send/s_onln/onln/onln_onlineamt");
  312. if (vOnlineamt != 0 && parseInt(onln_cnt)>0) {
  313. //수납내역 별로 통장입금내역을 쪼갬
  314. for (var i=1; i <= onln_cnt ; i++) {
  315. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_pid" , model.getValue("/root/send/s_bogj/bogj/bogj_pid"));
  316. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_orddd" , "00000000");
  317. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_cretno" , "0");
  318. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptdd" , model.getValue("/root/send/s_bogj/bogj/bogj_rcptdd"));
  319. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptno" , "0");
  320. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptseqno" , "0");
  321. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_seqno" , "0");
  322. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_instcd" , model.getValue("/root/send/s_bogj/bogj/bogj_instcd"));
  323. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptstat" , "Y");
  324. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_ordtype" , "O");
  325. //if(vOpmi_count > 1) {
  326. // model.makevalue("/root/send/s_onln/onln["+i+"]/onln_onlineamt" , model.getValue("/root/send/s_opmi/opmi/opmi_onlineamt"));
  327. //}else{
  328. // model.makevalue("/root/send/s_onln/onln["+i+"]/onln_onlineamt" , vOnlineamt);
  329. //}
  330. //model.makevalue("/root/send/s_onln/onln["+i+"]/onln_bankcd" , "01");
  331. //model.makevalue("/root/send/s_onln/onln["+i+"]/onln_acntno" , "010-1234555");
  332. //model.makevalue("/root/send/s_onln/onln["+i+"]/onln_paydd" , getCurrentDate());
  333. //model.makevalue("/root/send/s_onln/onln["+i+"]/onln_paypsnnm" , "홍길동");
  334. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptexecdd" , model.getValue("/root/send/s_bogj/bogj/bogj_rcptexecdd"));
  335. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcpttm" , model.getValue("/root/send/s_bogj/bogj/bogj_rcpttm"));
  336. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_rcptrid" , model.getValue("/root/send/s_bogj/bogj/bogj_rcptrid"));
  337. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_preamtyn" , "N");
  338. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_innrtretyn" , "N");
  339. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_remfact" , "");
  340. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_fstrgstrid" , "");
  341. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_fstrgstdt" , "");
  342. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_lastupdtrid" , "");
  343. model.makevalue("/root/send/s_onln/onln["+i+"]/onln_lastupdtdt" , "");
  344. }
  345. //2018/03/29 이정택(온라인 금액수납시 현금영수증 승인되도록 수정)
  346. // A01 : 일반선수금, A11 : 가정간호선수금, A31 : 외래방문간호선수금, A41 : 외래수납 VIP 선수금
  347. if(model.getvalue("/root/send/s_bogj/bogj/bogj_rcptflag") == "A01" || model.getvalue("/root/send/s_bogj/bogj/bogj_rcptflag") == "A11" ||
  348. model.getvalue("/root/send/s_bogj/bogj/bogj_rcptflag") == "A31" || model.getvalue("/root/send/s_bogj/bogj/bogj_rcptflag") == "A41"){
  349. if(fOpenCashPopUp("I") == false){
  350. return;
  351. }
  352. }
  353. //2018/03/29 이정택(온라인 금액수납시 현금영수증 승인되도록 수정)
  354. }
  355. //////////////////////////////////온라인입금end/////////////////////////////////////////////
  356. //외래선수금 수납 처리
  357. if (submit("TXPAO00701")) {
  358. //수납후 영수증 발행
  359. fReceiptPrint("N");
  360. //환불수납건은
  361. if (parseInt(model.getValue("/root/send/s_bogj/bogj/bogj_rcptexptamt")) < 0 ){
  362. fRtnRcpt(2);
  363. }
  364. fSearch(); //수납처리 성공시, 재조회
  365. btn_new.dispatch("onclick");
  366. }
  367. }
  368. //수납취소
  369. function fReceiptCancel() {
  370. // 수납자 마감여부 체크하여 처리
  371. if (isMagmAprv()) {
  372. return false; // 마감결제 완료되어있으므로 더이상 진행하지 않음
  373. }
  374. //등록번호
  375. model.setValue("/root/send/s_bogj/bogj/bogj_pid",model.getValue("/root/send/pid"));
  376. //진료형태, 수납상태, 선수금여부 세팅
  377. model.setValue("/root/send/s_bogj/bogj/bogj_ordtype","O"); //진료형태:외래 O
  378. model.setValue("/root/send/s_bogj/bogj/bogj_rcptstat","D"); //수납상태:d/c D
  379. //영수일자,수납일자,수납시간
  380. //model.makeValue("/root/send/s_bogj/bogj/bogj_rcptdd",""); //영수일자=원 수납영수일자
  381. model.setValue("/root/send/s_bogj/bogj/bogj_rcptexecdd",getCurrentDate()); //수납일자:현재날짜
  382. model.setValue("/root/send/s_bogj/bogj/bogj_rcpttm",getCurrentTime()); //수납시간:현재시간
  383. //수납구분 세팅 (반환 수납계정 XX3 으로)
  384. model.setValue("/root/send/s_bogj/bogj/bogj_rcptflag", model.getValue("/root/send/s_bogj/bogj/bogj_rcptflag").substr(0,2)+"3");
  385. //카드밴체크여부
  386. model.setValue("/root/send/option/bogj_cardck" , model.getvalue("/root/option/bogj_cardck"));
  387. var bogj_cardamt = parseInt(model.getValue("/root/send/s_bogj/bogj/bogj_cardamt"));
  388. var bogj_cashamt = parseInt(model.getValue("/root/send/s_bogj/bogj/bogj_cashamt"));
  389. var bogj_onlineamt = parseInt(model.getValue("/root/send/s_bogj/bogj/bogj_onlineamt"));
  390. //2017/04/13 수납취소시 선수금보다 많게는 취소 불가능 하도록 프로그램 수정(이정택)
  391. var remamt = parseInt(model.getValue("/root/main/mdlamtspec/remamt/remamt_remamtm")) + // 현금금액
  392. parseInt(model.getValue("/root/main/mdlamtspec/remamt/remamt_remamtc")) + // 카드금액
  393. parseInt(model.getValue("/root/main/mdlamtspec/remamt/remamt_remamto")); // 온라인금액
  394. var rcptexptamt = model.getValue("/root/send/s_bogj/bogj/bogj_rcptexptamt");
  395. if(rcptexptamt>remamt){
  396. messageBox("선수금 잔액보다 선수금 수납취소 금액이 더 큽니다.", "E");
  397. return;
  398. }
  399. //2017/04/13 수납취소시 선수금보다 많게는 취소 불가능 하도록 프로그램 수정(이정택)
  400. if( bogj_cardamt != 0 ) {
  401. if( messageBox("카드수납 금액이 있습니다. [신용카드 자동취소는 되지 않습니다. 직접 승인취소하세요!]\n계속 진행하시겠습니까?", "Q999", "") != 6 ){
  402. return;
  403. }
  404. }
  405. /* van 자동취소
  406. //카드
  407. if (bogj_cardamt >0 && model.getvalue("/root/option/bogj_cardck") != "Y") {
  408. if(fOpenCardPopUp("D") == false) { return; };
  409. copyNodesetType("/root/send/s_card", "/root/main/rcv1/h_card", "replace");
  410. }
  411. if (bogj_cashamt >0 && getNodesetCount("/root/main/rcv1/h_cash/cash/cash_pid") > 0) {
  412. if(fOpenCashPopUp("D") == false) { return; };
  413. copyNodesetType("/root/send/s_cash", "/root/main/rcv1/h_cash", "replace");
  414. }
  415. */
  416. //현금영수증
  417. if (bogj_cashamt >0 && getNodesetCount("/root/main/rcv1/h_cash/cash/cash_pid") > 0) {
  418. copyNodesetType("/root/send/s_cash", "/root/main/rcv1/h_cash", "replace");
  419. }
  420. //통장입금
  421. if (bogj_onlineamt >0 && getNodesetCount("/root/main/rcv1/h_onln/onln/onln_pid") > 0) {
  422. copyNodesetType("/root/send/s_onln", "/root/main/rcv1/h_onln", "replace");
  423. }
  424. //외래선수금 수납 처리
  425. if (submit("TXPAO00702")) {
  426. //수납후 영수증 발행
  427. fReceiptPrint("N");
  428. fRtnRcpt(2); //환불서명
  429. fSearch(); //수납처리 성공시, 재조회
  430. btn_new.dispatch("onclick");
  431. }
  432. }
  433. function fonlineamt() {
  434. fbogj_removemask();
  435. //처음에는 기카드노드를 보내고 그다음에는 send에서 주고받음
  436. var send_onln = "";
  437. if(getNodesetCount("/root/send/s_onln/onln/onln_pid") == 0){
  438. send_onln = "";
  439. }else{
  440. send_onln = "/root/send/s_onln" ;
  441. }
  442. //=========================================================================================================================================//
  443. var parm = model.getValue("/root/send/s_bogj/bogj/bogj_rcptexptamt") + "▦" + //수납대상금액
  444. send_onln + "▦" + //parent가 이미 가지고 있던 통장입금 내역
  445. "/root/send/s_onln" + "▦" + //팝업이 닫힐때 통장입금내역을 받을 위치
  446. 1 + "▦" ; //멀티건수
  447. setParameter("SPPAO01500_PARM",parm);
  448. modal("../../../pam/pamcomnweb/xrw/SPPAO01500", "1","400", "400", "SPPAO01500", "/root/source", "/root/send");
  449. if (getParameter("SPPAO01500_RTN") == "N") return;
  450. //=========================================================================================================================================//
  451. model.setValue("/root/send/s_bogj/bogj/bogj_onlineamt",getParameter("SPPAO01500_TotOnlineAmt"));
  452. fipt_cashamt();
  453. /*
  454. //통장입금 가능금액 체크
  455. var vcheck_onlineamt = eval(model.getValue("/root/send/s_bogj/bogj/bogj_onlineamt"));
  456. if (vcheck_onlineamt <= 0)
  457. {
  458. messageBox("통장입금 적용할 금액이 없습니다!","E999","");
  459. return;
  460. }
  461. //통장입금노드에 데이타가 없을 경우 빈 node (onln) 도 삭제한다(clear)-------------
  462. var vnode =instance1.selectSingleNode("/root/hidden/h_onln/onln");
  463. if (vnode != null) {
  464. var nodeList = vnode.hasChildNodes();
  465. if (nodeList=="0") { //자식노드가 없으면 remove -초기화
  466. model.removenode("/root/hidden/h_onln/onln");
  467. }
  468. }
  469. //=========================================================================================================================================//
  470. var parm = model.getValue("/root/send/s_bogj/bogj/bogj_onlineamt") + "▦" + //수납대상금액
  471. "/root/hidden/h_onln" + "▦" + //parent가 이미 가지고 있던 통장입금 내역
  472. "/root/hidden/h_onln" + "▦"; //팝업이 닫힐때 통장입금내역을 받을 위치
  473. setParameter("SPPAO01500_PARM",parm);
  474. modal("../../../pam/pamcomnweb/xrw/SPPAO01500", "1","400", "400", "SPPAO01500", "/root/source", "/root/send");
  475. if (getParameter("SPPAO01500_RTN") == "N") return;
  476. //=========================================================================================================================================//
  477. var TotOnlineAmt = eval(getParameter("SPPAO01500_TotOnlineAmt"));
  478. if (TotOnlineAmt != 0)
  479. {
  480. model.setValue("/root/send/s_bogj/bogj/bogj_onlineamt",TotOnlineAmt.toString());
  481. //현금금액 = 납부할금액 - 통장입금액
  482. var vcheck_cashamt = eval(model.getValue("/root/send/s_bogj/bogj/bogj_rcptexptamt"))
  483. -eval(model.getValue("/root/send/s_bogj/bogj/bogj_onlineamt"));
  484. model.setValue("/root/send/s_bogj/bogj/bogj_cashamt",(vcheck_cashamt).toString() );
  485. model.setValue("/root/send/s_bogj/bogj/bogj_cardamt","0" );
  486. }
  487. model.refresh();
  488. */
  489. /*
  490. modal("../../../pam/pamcomnweb/xrw/SPPAO01500", "1","300", "300", "SPPAO01500", "/root/source", "/root/send");
  491. if (model.getValue("/root/main/popupendflag")=="ok" ) {
  492. model.setValue("/root/send/s_bogj/bogj/bogj_onlineamt",model.getValue("/root/hidden/rsv/online/online_onlineamt"));
  493. model.copyNode("/root/send/s_bogj/online","/root/hidden/rsv/online");
  494. model.refresh();
  495. } */
  496. }
  497. function fgrd_mdlamtlist() {
  498. if ( grd_mdlamtlist.row > 0 ) {
  499. gMode = "U";
  500. var vcheck_rcptflag = model.getValue("/root/main/mdlamtspec/bogj["+(grd_mdlamtlist.row)+"]/bogj_rcptflag").getTrim();
  501. if ( vcheck_rcptflag == "" || vcheck_rcptflag == null || vcheck_rcptflag == "-" || vcheck_rcptflag == " " ) {
  502. messageBox("선택된 내역이 없습니다.", "E999","");
  503. return;
  504. }
  505. //선수금내역 클릭시, 카드/현금/온라인금액 등 상세내역 조회
  506. //조건 세팅(영수일자,영수증번호,영수증일련번호
  507. model.setValue("/root/send/preamtyn","Y");
  508. model.setValue("/root/send/ordtype","O");
  509. model.setValue("/root/send/rcptdd" , model.getValue("/root/main/mdlamtspec/bogj["+(grd_mdlamtlist.row)+"]/bogj_rcptdd"));
  510. model.setValue("/root/send/rcptno" , model.getValue("/root/main/mdlamtspec/bogj["+(grd_mdlamtlist.row)+"]/bogj_rcptno"));
  511. model.setValue("/root/send/rcptseqno", model.getValue("/root/main/mdlamtspec/bogj["+(grd_mdlamtlist.row)+"]/bogj_rcptseqno"));
  512. submit("TRPAO00702");
  513. model.resetInstanceNode("/root/send/s_bogj");
  514. model.copyNode("/root/send/s_bogj/bogj","/root/main/mdlamtspec/bogj["+(grd_mdlamtlist.row)+"]");
  515. //과 약어 셋팅
  516. var deptengabbr = model.getValue("/root/init/orddeptcd[cd='" + model.getvalue("/root/send/s_bogj/bogj/bogj_orddeptcd") + "']/deptengabbr");
  517. model.setValue("/root/main/etc/option/deptengabbr", deptengabbr);
  518. //과 약어 셋팅 끝
  519. //카드금액 있으면, 카드화면 활성화/통장금액 있으면 통장화면 활성화
  520. var vcheck_cardamt = eval(model.getValue("/root/main/rcv1/h_card/card/card_cardamt"));
  521. var vcheck_cashamt = eval(model.getValue("/root/main/rcv1/h_cash/cash/cash_cashamt"));
  522. var vcheck_onlineamt = eval(model.getValue("/root/main/rcv1/h_online/online/online_onlineamt"));
  523. //수납방법 표시
  524. model.setValue("/root/main/etc/option/cardyn", "C");
  525. if (getNodesetCount("/root/main/rcv1/h_card/card/card_pid") > 0) {
  526. model.setValue("/root/main/etc/option/cardyn", "Y");
  527. model.setValue("/root/main/m_etc/cardno" ,model.getValue("/root/main/rcv1/h_card/card/card_cardno"));
  528. model.setValue("/root/main/m_etc/valiterm",model.getValue("/root/main/rcv1/h_card/card/card_valiterm"));
  529. model.setValue("/root/main/m_etc/allotmm" ,model.getValue("/root/main/rcv1/h_card/card/card_allotmm"));
  530. btn_cardlist.dispatch("onclick");
  531. }
  532. if (getNodesetCount("/root/main/rcv1/h_online/online/online_pid") > 0) {
  533. model.setValue("/root/main/etc/option/cardyn", "C");
  534. btn_onlinelist.dispatch("onclick");
  535. }
  536. if (getNodesetCount("/root/main/rcv1/h_cash/cash/cash_pid") > 0) {
  537. model.setValue("/root/main/etc/option/cardyn", "N");
  538. model.setValue("/root/main/etc/option/indinstflag" ,model.getValue("/root/main/rcv1/h_cash/cash/cash_indinstflag"));
  539. model.setValue("/root/main/m_etc/cardno" ,model.getValue("/root/main/rcv1/h_cash/cash/cash_qualcnfmno"));
  540. model.setValue("/root/main/m_etc/valiterm" ,model.getValue("/root/main/rcv1/h_cash/cash/cash_valiterm"));
  541. model.setValue("/root/main/m_etc/allotmm" ,model.getValue("/root/main/rcv1/h_cash/cash/cash_allotmm"));
  542. btn_cashlist.dispatch("onclick");
  543. }
  544. //선수금 내역 클릭시, 입력창에 세팅한다.(수납한 내역 환불할 경우)
  545. //환불한 내역 클릭시에는 [수납취소]버튼 비활성화
  546. //수납내역 클릭시에는 [수납]버튼 비활성화
  547. //입력창은 send Node 와 매핑된다.
  548. // XX1 = 수납, XX2 = 대체, XX3 = 반환
  549. if (model.getValue("/root/send/s_bogj/bogj/bogj_rcptflag").substr(2,1) == "1") {
  550. //수납내역 클릭시에는 [수납]버튼 비활성화
  551. //수납내역 중, rcpstat = C 인 것은 환불된 것이거나, 대체된 것이므로, [수납취소]버튼 비활성화
  552. //수납금액이 잔액보다 적을 경우, [수납취소]버튼 비활성화
  553. btn_receipt.disabled = true;
  554. if (model.getValue("/root/send/s_bogj/bogj/bogj_rcptstat") =="C") {
  555. btn_cancelrcpt.disabled = true;
  556. }
  557. else {
  558. btn_cancelrcpt.disabled = false;
  559. }
  560. }
  561. else {
  562. //대체/반환한 내역 클릭시에는 [수납],[수납취소]버튼 비활성화
  563. btn_receipt.disabled = true;
  564. btn_cancelrcpt.disabled = true;
  565. }
  566. model.refresh();
  567. }
  568. }
  569. function fipt_cardno_changed() {
  570. fbogj_removemask();
  571. // 2014/11/28 이정택 추가
  572. if(event.target!="ipt_cardno"){
  573. rdo_cardyn.refresh();
  574. rdo_indyn.refresh();
  575. ipt_cardno.refresh();
  576. }
  577. // 2014/11/28 이정택 추가
  578. model.setValue("/root/main/m_etc/cardno", ipt_cardno.currentText);
  579. if(ipt_cardno.currentText.length >30 && ipt_cardno.currentText.indexOf("=") >0 ) {
  580. model.setvalue("/root/main/etc/option/cardyn" , "Y");
  581. if(model.getValue("/root/send/s_bogj/bogj/bogj_cardamt") == "0") {
  582. model.setValue("/root/send/s_bogj/bogj/bogj_cardamt" , parseInt(model.getValue("/root/send/s_bogj/bogj/bogj_cardamt"))
  583. +parseInt(model.getValue("/root/send/s_bogj/bogj/bogj_cashamt")));
  584. model.setValue("/root/send/s_bogj/bogj/bogj_cashamt" , "0");
  585. }
  586. }
  587. //엔터키 쳤을때 같은 이벤트
  588. if ( model.getValue("/root/main/etc/option/cardyn")=="Y" ) {
  589. if ((ipt_cardno.currentText).length >16) {
  590. //16자리보다 크면,
  591. // "="이 있으면, swipe
  592. if ( (ipt_cardno.currentText).indexOf("=") >0 ) {
  593. var vSwipeData = "";
  594. var vCardno_array = "";
  595. var vCardno = "";
  596. vSwipeData = ipt_cardno.currentText;
  597. // swipe 시 첫글자에 ?
  598. if ( vSwipeData.indexOf("?") >= 0 ) {
  599. vSwipeData = (vSwipeData).substr(1,37);
  600. }
  601. if ( vSwipeData.indexOf("/") >= 0 ) {
  602. vSwipeData = (vSwipeData).substr(1,37);
  603. }
  604. model.setValue("/root/main/etc/option/swipedata", vSwipeData );
  605. vCardno_array = vSwipeData.split("=");
  606. vCardno = vCardno_array[0];
  607. // swipe 시 첫글자에 ?
  608. if ( vCardno.indexOf("?") >= 0 ) {
  609. vCardno = (vCardno).substr(1,16);
  610. }
  611. if ( vCardno.indexOf("/") >= 0 ) {
  612. vCardno = (vCardno).substr(1,16);
  613. }
  614. //유효일자
  615. var vValiterm = (vCardno_array[1]).substr(0,4);
  616. model.setValue("/root/main/m_etc/cardno", vCardno);
  617. model.setValue("/root/main/etc/option/keyinptflag","S");
  618. model.setValue("/root/main/m_etc/valiterm",vValiterm);
  619. model.setValue("/root/main/m_etc/allotmm","00");
  620. model.refresh();
  621. model.setFocus("ipt_cardamt");
  622. }
  623. }else if ((ipt_cardno.currentText).length ==16) {
  624. model.setValue("/root/main/m_etc/cardno",ipt_cardno.currentText);
  625. model.setValue("/root/main/etc/option/keyinptflag","K");
  626. model.refresh();
  627. model.setFocus("ipt_valiterm");
  628. }
  629. }
  630. if (model.getValue("/root/main/etc/option/cardyn")=="N" ) {
  631. //현금영수증 선택시
  632. if ((ipt_cardno.currentText).length >16) {
  633. //16자리보다 크면,
  634. // "="이 있으면, swipe
  635. if ( (ipt_cardno.currentText).indexOf("=") >0 ) {
  636. var vSwipeData = "";
  637. var vCardno_array = "";
  638. var vCardno = "";
  639. //vSwipeData = model.getValue("/root/main/outrgst/m_etc/cardno");
  640. vSwipeData = ipt_cardno.currentText;
  641. // swipe 시 첫글자에 ?
  642. if ( vSwipeData.indexOf("?") >= 0 ) {
  643. vSwipeData = (vSwipeData).substr(1,37);
  644. }
  645. if ( vSwipeData.indexOf("/") >= 0 ) {
  646. vSwipeData = (vSwipeData).substr(1,37);
  647. }
  648. vSwipeData = vSwipeData.getRightPad(40, " ");
  649. model.setValue("/root/main/etc/option/swipedata", vSwipeData );
  650. vCardno_array = vSwipeData.split("=");
  651. vCardno = vCardno_array[0];
  652. // swipe 시 첫글자에 ?
  653. if ( vCardno.indexOf("?") >= 0 ) {
  654. vCardno = (vCardno).substr(1,16);
  655. }
  656. //유효일자
  657. var vValiterm = (vCardno_array[1]).substr(0,4);
  658. model.setValue("/root/main/m_etc/cardno", vCardno);
  659. model.setValue("/root/main/etc/option/keyinptflag","S");
  660. //이동재20080121 현금영수증이라도 Swipe 시 기본카드로 설정되게..
  661. model.setValue("/root/main/m_etc/valiterm",vValiterm);
  662. //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  663. model.setValue("/root/main/etc/option/qualcnfmflag","3");
  664. if (rdo_indyn.value == "01") {
  665. //현금영수증일때는 할부개월에 법인/개인구분(개인:00 사업자:01)
  666. model.setValue("/root/main/m_etc/valiterm","");
  667. model.setValue("/root/main/m_etc/allotmm",model.getValue("/root/main/etc/option/indinstflag") );
  668. } else {
  669. model.setValue("/root/main/m_etc/allotmm","00");
  670. }
  671. }
  672. //2013-01-28
  673. //현금영수증 사업자 카드
  674. vCardno = model.getValue("/root/main/m_etc/cardno");
  675. if( vCardno.length == 18 && vCardno.substr(8, 1) == '9' ){
  676. //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  677. model.setValue("/root/main/etc/option/qualcnfmflag","3");
  678. //현금영수증일때는 할부개월에 법인/개인구분(개인:00 사업자:01)
  679. model.setValue("/root/main/m_etc/allotmm", '01');
  680. model.setValue("/root/main/etc/option/indinstflag", '01');
  681. }
  682. }
  683. if((ipt_cardno.currentText).length ==16) {
  684. var vSwipeData = "";
  685. vSwipeData = model.getValue("/root/main/m_etc/cardno")+"=";
  686. vSwipeData = vSwipeData.getRightPad(40, " ");
  687. model.setValue("/root/main/etc/option/swipedata",vSwipeData);
  688. model.setValue("/root/main/etc/option/keyinptflag","S");
  689. //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  690. model.setValue("/root/main/etc/option/qualcnfmflag","3");
  691. //model.refresh();
  692. //model.setFocus("ipt_cashamt");
  693. //model.setFocus("ipt_valiterm");
  694. }
  695. if ((ipt_cardno.currentText).length <16) {
  696. //16자리보다 작으면, 주민번호 혹은 전화번호 사업장번호
  697. var vSwipeData = "";
  698. vSwipeData = model.getValue("/root/main/m_etc/cardno")+"=";
  699. vSwipeData = vSwipeData.getRightPad(40, " ");
  700. model.setValue("/root/main/etc/option/swipedata",vSwipeData);
  701. model.setValue("/root/main/etc/option/keyinptflag","K");
  702. //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  703. //길이가 13자리이면,주민번호
  704. if ( (model.getValue("/root/main/m_etc/cardno")).length==13 ) {
  705. model.setValue("/root/main/etc/option/qualcnfmflag","1");
  706. }else{
  707. //앞 3자리 010,011,016,017,018,019 이면 전화
  708. if ( (model.getValue("/root/main/m_etc/cardno")).substr(0,3) == "010" ||
  709. (model.getValue("/root/main/m_etc/cardno")).substr(0,3) == "011" ||
  710. (model.getValue("/root/main/m_etc/cardno")).substr(0,3) == "016" ||
  711. (model.getValue("/root/main/m_etc/cardno")).substr(0,3) == "017" ||
  712. (model.getValue("/root/main/m_etc/cardno")).substr(0,3) == "018" ||
  713. (model.getValue("/root/main/m_etc/cardno")).substr(0,3) == "019"
  714. ) {
  715. model.setValue("/root/main/etc/option/qualcnfmflag","2");
  716. }else {
  717. //16자리 길이 미만일 때 13자리 주민번호 제외 후 핸드폰 앞자리 체크 나머지는 사업장
  718. model.setValue("/root/main/etc/option/qualcnfmflag","4");
  719. model.setValue("/root/main/etc/option/indinstflag","01"); //지출증빙
  720. }
  721. }
  722. }
  723. }
  724. model.refresh();
  725. }
  726. function frdo_cardyn() {
  727. var bogj_rcptexptamt = model.getValue("/root/send/s_bogj/bogj/bogj_rcptexptamt");
  728. // 2014/11/28 이정택 추가
  729. rdo_cardyn.refresh();
  730. rdo_indyn.refresh();
  731. ipt_cardno.refresh();
  732. // 2014/11/28 이정택 추가
  733. //카드
  734. if (model.getvalue("/root/main/etc/option/cardyn") == "Y" ) {
  735. //소득공제/지출증빙 체크 비활성화
  736. model.setvalue("/root/main/etc/option/indinstflag" ,"02");
  737. model.setValue("/root/main/m_etc/cardno" ,"");
  738. model.setValue("/root/main/m_etc/valiterm" ,"");
  739. model.setValue("/root/main/m_etc/allotmm" ,"");
  740. model.setValue("/root/main/etc/option/swipedata","");
  741. model.setValue("/root/send/s_bogj/bogj/bogj_cardamt" , bogj_rcptexptamt);
  742. model.setValue("/root/send/s_bogj/bogj/bogj_cashamt" , "0" );
  743. model.setValue("/root/send/s_bogj/bogj/bogj_onlineamt", "0" );
  744. model.setFocus("ipt_cardno");
  745. }
  746. //현금영수증
  747. if (model.getvalue("/root/main/etc/option/cardyn") == "N" ) {
  748. model.setValue("/root/main/etc/option/indinstflag","00");
  749. //현금영수증 관련 기본세팅 우선순위 : 1.기현금영수증 승인번호 2.주민번호 3.현금영수증카드나 신용카드
  750. //일단 주민번호셋팅
  751. model.setValue("/root/main/m_etc/cardno", model.getValue("/root/main/patinfo/patinfolist/rrgstno1") + model.getValue("/root/main/patinfo/patinfolist/rrgstno2"));
  752. //디폴트 현금영수증 번호있으면 가져온다. pacmcshb
  753. var cshb_qualcnfmno = model.getvalue("/root/hidden/item1/pidinfo/h_cshb/cshb/cshb_qualcnfmno");
  754. if(cshb_qualcnfmno != "" && cshb_qualcnfmno != null ) {
  755. model.setValue("/root/main/m_etc/cardno",cshb_qualcnfmno);
  756. }
  757. //HP번호셋팅 (혹시 HP가 있다면.)
  758. //var temp = model.getValue("/root/main/patinfo/patinfolist/mpphontel").removeMask("-");
  759. //if(temp.length == 10 || temp.length == 11 ) {
  760. // model.setValue("/root/send/s_bogj/bogj/bogj_cardno",temp);
  761. //}
  762. model.setValue("/root/main/m_etc/valiterm","");
  763. model.setValue("/root/main/m_etc/allotmm","");
  764. model.setValue("/root/main/etc/option/swipedata","");
  765. model.setValue("/root/send/s_bogj/bogj/bogj_cardamt", "0" );
  766. //2018/03/29 이정택 수정
  767. if(getNodesetCount("/root/send/s_onln/onln/onln_onlineamt")<1){
  768. model.setValue("/root/send/s_bogj/bogj/bogj_cashamt", bogj_rcptexptamt);
  769. model.setValue("/root/send/s_bogj/bogj/bogj_onlineamt", "0" );
  770. }
  771. //model.setValue("/root/send/s_bogj/bogj/bogj_cashamt", bogj_rcptexptamt);
  772. //model.setValue("/root/send/s_bogj/bogj/bogj_onlineamt", "0" );
  773. //2018/03/29 이정택 수정
  774. //event.keyCode = "13";
  775. //ipt_cardno.dispatch("onkeypress");//enter key 처리하여, 현금영수증관련 값 세팅(현금영수증번호구분,소득공제)
  776. fipt_cardno_changed();
  777. model.setFocus("ipt_cashamt");
  778. }
  779. //그냥 현금결제
  780. if (model.getvalue("/root/main/etc/option/cardyn") == "C" ) {
  781. model.setvalue("/root/main/etc/option/indinstflag" ,"02");
  782. model.setValue("/root/main/m_etc/cardno" ,"");
  783. model.setValue("/root/main/m_etc/valiterm" ,"");
  784. model.setValue("/root/main/m_etc/allotmm" ,"");
  785. model.setValue("/root/main/etc/option/swipedata" ,"");
  786. model.setValue("/root/send/s_bogj/bogj/bogj_cardamt" , "0");
  787. model.setValue("/root/send/s_bogj/bogj/bogj_cashamt" , bogj_rcptexptamt );
  788. model.setValue("/root/send/s_bogj/bogj/bogj_onlineamt", "0" );
  789. model.setFocus("ipt_cashamt");
  790. }
  791. model.refresh();
  792. }
  793. function fbogj_removemask() {
  794. model.setValue("/root/send/s_bogj/bogj/bogj_cardamt" ,model.getValue("/root/send/s_bogj/bogj/bogj_cardamt").removeMask(","));
  795. model.setValue("/root/send/s_bogj/bogj/bogj_cashamt" ,model.getValue("/root/send/s_bogj/bogj/bogj_cashamt").removeMask(","));
  796. model.setValue("/root/send/s_bogj/bogj/bogj_onlineamt" ,model.getValue("/root/send/s_bogj/bogj/bogj_onlineamt").removeMask(","));
  797. if(model.getValue("/root/send/s_bogj/bogj/bogj_cardamt") == "") model.setValue("/root/send/s_bogj/bogj/bogj_cardamt","0");
  798. if(model.getValue("/root/send/s_bogj/bogj/bogj_cashamt") == "") model.setValue("/root/send/s_bogj/bogj/bogj_cashamt","0");
  799. if(model.getValue("/root/send/s_bogj/bogj/bogj_onlineamt") == "") model.setValue("/root/send/s_bogj/bogj/bogj_onlineamt","0");
  800. }
  801. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  802. // 카드승인 Function
  803. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  804. function fOpenCardPopUp(flag){
  805. //등록/수정,취소
  806. //일반등록,멀티등록
  807. var parm;
  808. var pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  809. var orddd = model.getValue("/root/send/s_bogj/bogj/bogj_rcptdd");
  810. var orddeptcd ="";
  811. var cretno ="";// model.getValue("/root/hidden/rcv1/h_opmi/opmi/opmi_cretno");
  812. var strRcvVan ="";
  813. var ordtype ="O";
  814. var fromdd =""; //필요없는 ???
  815. var todd =""; //필요없는 ???
  816. var cardAmt = parseInt( model.getValue("/root/send/s_bogj/bogj/bogj_cardamt"));
  817. //단일건 카드정보
  818. var cardno = model.getValue("/root/main/m_etc/cardno");
  819. var valiterm = model.getValue("/root/main/m_etc/valiterm");
  820. var allotmm = model.getValue("/root/main/m_etc/allotmm");
  821. // 치과 IC칩 신용카드 승인과련 수정(2016/05/11)
  822. if(isNull(allotmm)){
  823. allotmm = '00';
  824. }
  825. // 치과 IC칩 신용카드 승인과련 수정(2016/05/11)
  826. //처음에는 기카드노드를 보내고 그다음에는 send에서 주고받음
  827. var send_card = "";
  828. if(getNodesetCount("/root/send/s_card/card/card_pid") == 0){
  829. send_card = "/root/main/rcv1/h_card";
  830. }else{
  831. send_card = "/root/send/s_card" ;
  832. }
  833. /*
  834. alert(
  835. "totalamt " + cardAmt + '\n' +
  836. "send " + send_card + '\n' +
  837. "receive " + "/root/send/s_card" + '\n' +
  838. "pid " + pid + '\n' +
  839. "orddd " + orddd + '\n' +
  840. "cretno " + cretno + '\n' +
  841. "strRcvVan " + strRcvVan + '\n' +
  842. "ordtype " + ordtype + '\n' +
  843. "fromdd " + fromdd + '\n' +
  844. "todd " + todd + '\n' +
  845. "orddeptcd " + orddeptcd + '\n' +
  846. "cardno " + cardno + '\n' +
  847. "valiterm " + valiterm + '\n' +
  848. "allotmm " + allotmm + '\n'
  849. )
  850. */
  851. if (getNodesetCount("/root/send/s_bogj/bogj/bogj_pid") > 0)
  852. {
  853. parm = "" + "▦" + //멀티건수
  854. "" + "▦" + //멀티opmi
  855. "" + "▦" + //rcptdd 변경 혹은 취소인 경우 필요
  856. "" + "▦" + //rcptno
  857. "" + "▦" + //rcptseqno
  858. cardAmt + "▦" + //totalamt
  859. send_card + "▦" + //send
  860. "/root/send/s_card" + "▦" + //receive
  861. pid + "▦" + //pid
  862. orddd + "▦" + //orddd
  863. cretno + "▦" + //cretno
  864. strRcvVan + "▦" + //strRcvVan
  865. ordtype + "▦" + //ordtype
  866. fromdd + "▦" + //fromdd
  867. todd + "▦" + //todd
  868. orddeptcd + "▦" + //orddeptcd
  869. //단일건 접수 승인일때만 필요
  870. cardno + "▦" + //cardno
  871. valiterm + "▦" + //valiterm
  872. allotmm + "▦" ; //allotmm
  873. }
  874. setParameter("SPPAO00400_PARM",parm);
  875. setParameter("SPPAO00400_FLAG", flag);
  876. //팝업 오픈 방식 체크
  877. if( flag == 'I' || flag == 'D'){
  878. var ivrObjt = document.all("ivr_cardpopup");
  879. if( ivrObjt == null ){
  880. body.createChild("xforms:iviewer", "id:ivr_cardpopup; src:../../../pam/pamcomnweb/xrw/SPPAO00400_신용카드승인.xrw");
  881. ivrObjt = document.all("ivr_cardpopup");
  882. }
  883. //setParameter("SPPAO00400_PARM",parm);
  884. if( flag == 'I' ){
  885. ivrObjt.window.javascript.fInit();
  886. var retMsg = ivrObjt.window.javascript.fAutoGetCardAprv(); //실제 카드승인
  887. }else{
  888. ivrObjt.window.javascript.fInit();
  889. var retMsg = ivrObjt.window.javascript.fAutoCnclCardAprv();
  890. }
  891. body.removeChild("ivr_cardpopup");
  892. //결과값 리턴
  893. if(retMsg == false) {
  894. return false;
  895. }
  896. }else{
  897. modal("SPPAO00400", "1","400", "400", "SPPAO00400", "", "");
  898. //팝업 정상종료 여부!
  899. if (getParameter("SPPAO00400_RTN") == "N" || getParameter("SPPAO00400_RTN") == ""){
  900. return false;
  901. }
  902. }
  903. return true;
  904. }
  905. function fOpenCashPopUp(flag) {
  906. var vBogj_count = getNodesetCount("/root/send/s_bogj/bogj/bogj_pid");
  907. //현금영수증 선택되어 있고, 현금금액이 있을 경우 현금승인
  908. var cardyn = model.getValue("/root/main/etc/option/cardyn");
  909. var parm = "";
  910. var cashamt = parseInt(model.getValue("/root/send/s_bogj/bogj/bogj_cashamt")) + parseInt(model.getValue("/root/send/s_bogj/bogj/bogj_onlineamt"));
  911. var totcashamt = cashamt;
  912. var cardamt = model.getValue("/root/send/s_bogj/bogj/bogj_cardamt");
  913. var pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  914. var ordtype = "O";
  915. var indinstflag = model.getValue("/root/main/etc/option/indinstflag");
  916. var cardno = model.getValue("/root/main/m_etc/cardno");
  917. var valiterm = model.getValue("/root/main/m_etc/valiterm");
  918. //var allotmm = ""
  919. var keyinpuflag = model.getValue("/root/main/etc/option/keyinptflag");
  920. var swipedata = model.getValue("/root/main/etc/option/swipedata");
  921. var qualcnfmflag = model.getValue("/root/main/etc/option/qualcnfmflag");
  922. var vcheck_cashcard = "";
  923. var ordergb = "";
  924. var approvaldate = "";
  925. var approvaltime = "";
  926. var approvalno = "";
  927. //디폴트 현금영수증번호
  928. var cshb_qualcnfmno = model.getvalue("/root/hidden/item1/pidinfo/h_cshb/cshb/cshb_qualcnfmno");
  929. var cshb_qualcnfmflag = model.getvalue("/root/hidden/item1/pidinfo/h_cshb/cshb/cshb_qualcnfmflag"); //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  930. if(cshb_qualcnfmno != "") {
  931. cshb_qualcnfmno = model.getvalue("/root/hidden/item1/pidinfo/h_cshb/cshb/cshb_qualcnfmno");
  932. cshb_qualcnfmflag = model.getvalue("/root/hidden/item1/pidinfo/h_cshb/cshb/cshb_qualcnfmflag")
  933. }else{
  934. cshb_qualcnfmno = model.getValue("/root/main/patinfo/patinfolist/rrgstno1") + model.getValue("/root/main/patinfo/patinfolist/rrgstno2");
  935. cshb_qualcnfmflag = "1"; //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  936. }
  937. //현금영수증 자격번호
  938. //카드, 현금영수증을 동시수납
  939. if (parseInt(cardamt) > 0 &&
  940. parseInt(cashamt) > 0)
  941. {
  942. vcheck_cashcard = "Y";
  943. cardno = cshb_qualcnfmno;
  944. keyinpuflag = "K";
  945. qualcnfmflag = cshb_qualcnfmflag;
  946. }
  947. //현금영수증만 수납
  948. if (parseInt(cardamt) == 0 &&
  949. parseInt(cashamt) > 0 )
  950. {
  951. vcheck_cashcard = "N";
  952. cardno = model.getValue("/root/main/m_etc/cardno");
  953. keyinpuflag = model.getValue("/root/main/etc/option/keyinptflag");
  954. qualcnfmflag = model.getValue("/root/main/etc/option/qualcnfmflag");
  955. }
  956. /*
  957. alert(
  958. "멀티건수 " + parm + '\n' +
  959. "멀티opmi " + "/root/send/s_opmi" + '\n' +
  960. "totalamt " + cashamt + '\n' +
  961. "send " + "/root/hidden/rcv1/h_cash" + '\n' +
  962. "receive " + "/root/send/s_cash" + '\n' +
  963. "pid " + pid + '\n' +
  964. "ordtype " + ordtype + '\n' +
  965. "indinstflag " + indinstflag + '\n' +
  966. "gQualcnfmno " + cardno + '\n' +
  967. //,"valiterm " + valiterm + '\n' +
  968. //,"allotmm " + allotmm + '\n' +
  969. "keyinpuflag " + keyinpuflag + '\n' +
  970. "swipedata " + swipedata + '\n' +
  971. "qualcnfmflag " + qualcnfmflag + '\n'
  972. )
  973. */
  974. //처음에는 기현금노드를 보내고 그다음에는 send에서 주고받음
  975. var send_cash = "";
  976. if(getNodesetCount("/root/send/s_cash/cash/cash_pid") == 0){
  977. send_cash = "/root/main/rcv1/h_cash";
  978. }else{
  979. send_cash = "/root/send/s_cash" ;
  980. }
  981. if (getNodesetCount("/root/send/s_bogj/bogj/bogj_pid") > 0){
  982. parm = "0" + "▦" + //멀티건수
  983. "" + "▦" + //멀티opmi
  984. totcashamt + "▦" + //totalamt
  985. send_cash + "▦" + //send
  986. "/root/send/s_cash" + "▦" + //receive
  987. pid + "▦" + //pid
  988. ordtype + "▦" + //ordtype
  989. indinstflag + "▦" + //indinstflag
  990. cardno + "▦" + //gQualcnfmno
  991. //valiterm + "▦" + //valiterm
  992. //allotmm + "▦" + //allotmm
  993. keyinpuflag + "▦" + //keyinpuflag
  994. swipedata + "▦" + //swipedata
  995. qualcnfmflag + "▦" ; //qualcnfmflag
  996. }
  997. setParameter("SPPAO00500_PARM", parm);
  998. setParameter("SPPAO00500_FLAG", flag);
  999. //팝업 오픈 방식 체크
  1000. if( flag == 'I' || flag == 'D'){
  1001. var ivrObjt = document.all("ivr_cashpopup");
  1002. if( ivrObjt == null ){
  1003. body.createChild("xforms:iviewer", "id:ivr_cashpopup; src:../../../pam/pamcomnweb/xrw/SPPAO00501_현금영수증승인.xrw");
  1004. ivrObjt = document.all("ivr_cashpopup");
  1005. }
  1006. if( flag == 'I' ){
  1007. ivrObjt.window.javascript.fInit();
  1008. var retMsg = ivrObjt.window.javascript.fAutoGetCashAprv();
  1009. }else{
  1010. ivrObjt.window.javascript.fInit();
  1011. var retMsg = ivrObjt.window.javascript.fAutoCnclCashAprv();
  1012. }
  1013. ordergb = ivrObjt.model.getValue("/root/tmp/appvanif/ordergb");//42:현금영수증승인응답
  1014. approvaldate = ivrObjt.model.getValue("/root/tmp/appvanif/approvaldate");
  1015. approvaltime = ivrObjt.model.getValue("/root/tmp/appvanif/approvaltime");
  1016. approvalno = ivrObjt.model.getValue("/root/tmp/appvanif/approvalno" );
  1017. body.removeChild("ivr_cashpopup");
  1018. if( retMsg == false ){
  1019. messageBox("현금영수증 승인시 오류가 났습니다. 수납변경에서 재승인하십시요.", "E999");
  1020. }
  1021. }else{
  1022. modal("SPPAO00501", "1","400", "400", "SPPAO00501", "", "");
  1023. //팝업 정상종료 여부!
  1024. if (getParameter("SPPAO00500_RTN") == "N" || getParameter("SPPAO00500_RTN") == ""){
  1025. return false;
  1026. }
  1027. }
  1028. return true;
  1029. }
  1030. function fipt_cashamt() {
  1031. fbogj_removemask();
  1032. if(model.getValue("/root/send/s_bogj/bogj/bogj_cardamt") == "") model.setValue("/root/send/s_bogj/bogj/bogj_cardamt","0");
  1033. if(model.getValue("/root/send/s_bogj/bogj/bogj_cashamt") == "") model.setValue("/root/send/s_bogj/bogj/bogj_cashamt","0");
  1034. if(model.getValue("/root/send/s_bogj/bogj/bogj_onlineamt") == "") model.setValue("/root/send/s_bogj/bogj/bogj_onlineamt","0");
  1035. model.setvalue("/root/send/s_bogj/bogj/bogj_cashamt",parseInt(model.getvalue("/root/send/s_bogj/bogj/bogj_rcptexptamt"))
  1036. - parseInt(model.getValue("/root/send/s_bogj/bogj/bogj_cardamt").removeMask(","))
  1037. - parseInt(model.getvalue("/root/send/s_bogj/bogj/bogj_onlineamt").removeMask(","))
  1038. );
  1039. ipt_cardamt.refresh();
  1040. ipt_cashamt.refresh();
  1041. opt_onlineamt.refresh();
  1042. }
  1043. function fipt_cardamt() {
  1044. setInputNodeCurText();
  1045. fbogj_removemask();
  1046. if(model.getValue("/root/send/s_bogj/bogj/bogj_cardamt") == "") model.setValue("/root/send/s_bogj/bogj/bogj_cardamt","0");
  1047. if(model.getValue("/root/send/s_bogj/bogj/bogj_cashamt") == "") model.setValue("/root/send/s_bogj/bogj/bogj_cashamt","0");
  1048. if(model.getValue("/root/send/s_bogj/bogj/bogj_onlineamt") == "") model.setValue("/root/send/s_bogj/bogj/bogj_onlineamt","0");
  1049. model.setvalue("/root/send/s_bogj/bogj/bogj_cardamt",parseInt(model.getvalue("/root/send/s_bogj/bogj/bogj_rcptexptamt"))
  1050. - parseInt(model.getValue("/root/send/s_bogj/bogj/bogj_cashamt").removeMask(","))
  1051. - parseInt(model.getvalue("/root/send/s_bogj/bogj/bogj_onlineamt").removeMask(","))
  1052. );
  1053. ipt_cardamt.refresh();
  1054. ipt_cashamt.refresh();
  1055. opt_onlineamt.refresh();
  1056. }
  1057. function fbtn_cardamt() {
  1058. if(model.getValue("/root/main/patinfo/patinfolist/pid") == "") {
  1059. messageBox("환자가 조회되어있지 않습니다.","I999","");
  1060. return;
  1061. }
  1062. /*
  1063. if(model.getValue("/root/main/etc/option/cardyn") != "Y") {
  1064. messageBox("수납방법이 카드가 아닙니다.","E999","");
  1065. return;
  1066. }
  1067. */
  1068. if(model.getvalue("/root/main/etc/option/cardyn") != "Y") {
  1069. model.setvalue("/root/main/etc/option/cardyn" , "Y");
  1070. frdo_cardyn();
  1071. }
  1072. var vbogj_count = getNodesetCount("/root/send/s_bogj/bogj/bogj_pid");
  1073. var bogj_cardamt = model.getValue("/root/send/s_bogj/bogj/bogj_cardamt");
  1074. var bogj_rcptexptamt = model.getValue("/root/send/s_bogj/bogj/bogj_rcptexptamt");
  1075. if( bogj_cardamt != bogj_rcptexptamt && vbogj_count > 1) {
  1076. messageBox("멀티수납시에는 부분카드수납은 불가능합니다.","E999","");
  1077. return;
  1078. }
  1079. if(!fOpenCardPopUp()){return false;}
  1080. /*
  1081. var TotCardAmt = getParameter("SPPAO00400_TotCardAmt");
  1082. var temp = parseInt(TotCardAmt);
  1083. model.setValue("/root/send/s_bogj/bogj/bogj_cardamt",temp );
  1084. fipt_cashamt();
  1085. ////////실카드승인금액 표시
  1086. var s_card_amt = 0;
  1087. var s_card_cnt = getNodesetCount("/root/send/s_card/card/card_pid");
  1088. for (var a=1; a <= s_card_cnt ; a++) {
  1089. if(model.getvalue("/root/send/s_card/card["+a+"]/card_innrtretyn") == "N") {
  1090. s_card_amt = parseInt(model.getvalue("/root/send/s_card/card["+a+"]/card_cardamt")) + s_card_amt;
  1091. }
  1092. }
  1093. model.setvalue("/root/etc/cardvanamt" , "승인:" + s_card_amt);
  1094. opt_cardvanamt.refresh();
  1095. ////////실카드승인금액 표시 끝
  1096. */
  1097. }
  1098. function fbtn_cashdamt() {
  1099. var vbogj_count = getNodesetCount("/root/send/s_bogj/bogj/bogj_pid");
  1100. var bogj_cashamt = model.getValue("/root/send/s_bogj/bogj/bogj_cashamt");
  1101. var bogj_rcptexptamt = model.getValue("/root/send/s_bogj/bogj/bogj_rcptexptamt");
  1102. if( bogj_cashamt != bogj_rcptexptamt && vbogj_count > 1) {
  1103. messageBox("멀티수납시에는 부분현금영수증 승인은 불가능합니다.","E999","");
  1104. return;
  1105. }
  1106. if(!fOpenCashPopUp()){return false;}
  1107. /*
  1108. var TotCashAmt = getParameter("SPPAO00500_TotCashAmt");
  1109. var temp = parseInt(TotCashAmt) - parseInt(opmi_precashamt);
  1110. model.setValue("/root/main/outrgst/m_opmi/opmi/opmi_cashamt",temp );
  1111. fipt_cardamt();
  1112. ////////실현금영수증 승인금액 표시
  1113. var s_cash_amt = 0;
  1114. var s_cash_cnt = getNodesetCount("/root/send/s_cash/cash/cash_pid");
  1115. for (var a=1; a <= s_cash_cnt ; a++) {
  1116. if(model.getvalue("/root/send/s_cash/cash["+a+"]/cash_innrtretyn") == "N") {
  1117. s_cash_amt = parseInt(model.getvalue("/root/send/s_cash/cash["+a+"]/cash_cashamt")) + s_cash_amt;
  1118. }
  1119. }
  1120. model.setvalue("/root/etc/cashvanamt" , "승인:" + s_cash_amt);
  1121. opt_cashvanamt.refresh();
  1122. ////////실현금영수증 승인금액 표시 끝
  1123. */
  1124. }
  1125. function fNewInsert() {
  1126. //영수증 내역 초기화
  1127. model.resetInstanceNode("/root/temp/receipt");
  1128. //온라인초기화
  1129. model.copynode("/root/send/s_bogj" , "/root/node_bk/send/s_bogj");
  1130. model.copynode("/root/send/s_card" , "/root/node_bk/send/s_card");
  1131. model.copynode("/root/send/s_cash" , "/root/node_bk/send/s_cash");
  1132. model.copynode("/root/send/s_onln" , "/root/node_bk/send/s_onln");
  1133. //입력창 초기화
  1134. model.setValue("/root/send/pid",model.getValue("/root/main/patinfo/patinfolist/pid"));
  1135. //2018/03/27 이정택 주석처리
  1136. //model.setValue("/root/send/srchcond","AA")
  1137. //2018/03/27 이정택 주석처리
  1138. //디폴트세팅
  1139. model.setValue("/root/main/etc/option/cardyn","C"); //Y: 카드 N:현금
  1140. model.setValue("/root/main/etc/option/indinstflag","02"); //00:소득공제 01:지출증빙
  1141. model.setValue("/root/main/etc/option/deptengabbr",""); //진료과 약어
  1142. model.setValue("/root/main/m_etc/cardno","");
  1143. model.setValue("/root/main/m_etc/valiterm","");
  1144. model.setValue("/root/main/m_etc/allotmm","");
  1145. //금액디폴트세팅
  1146. model.setValue("/root/send/s_bogj/bogj/bogj_cashamt","0");
  1147. model.setValue("/root/send/s_bogj/bogj/bogj_cardamt","0");
  1148. model.setValue("/root/send/s_bogj/bogj/bogj_onlineamt","0");
  1149. model.setValue("/root/send/s_bogj/bogj/bogj_rcptexptamt","0");
  1150. //납부자정보 디폴트 세팅
  1151. model.setValue("/root/send/s_bogj/bogj/bogj_paypsnflag","1");
  1152. model.setValue("/root/option/bogj_cardck","N");
  1153. btn_receipt.disabled = false;
  1154. btn_cancelrcpt.disabled = true;
  1155. model.setFocus("cmb_rcptflag");
  1156. model.refresh();
  1157. }
  1158. //화면 처음에 열릴떄 딱 한번만 실행! 이후실행하면 안됨!
  1159. function fNodeBK() {
  1160. model.makenode("/root/node_bk/main");
  1161. model.makenode("/root/node_bk/send");
  1162. model.makenode("/root/node_bk/hidden");
  1163. model.makenode("/root/node_bk/properties");
  1164. model.copynode("/root/node_bk/main" ,"/root/main");
  1165. model.copynode("/root/node_bk/send" ,"/root/send");
  1166. model.copynode("/root/node_bk/hidden" ,"/root/hidden");
  1167. model.copynode("/root/node_bk/properties" ,"/root/properties");
  1168. }
  1169. function fcmb_rcptflag() {
  1170. //부분반환 기능 막음
  1171. if ((cmb_rcptflag.value).substr(2,1) == "3" ) {
  1172. btn_receipt.disabled = false;
  1173. btn_cancelrcpt.disabled = false;
  1174. //일반잔액
  1175. if(model.getValue("/root/send/s_bogj/bogj/bogj_rcptflag") == "A03"){
  1176. var remamt = parseInt(model.getValue("/root/main/mdlamtspec/remamt/remamt_remamtm")) + // 현금금액
  1177. parseInt(model.getValue("/root/main/mdlamtspec/remamt/remamt_remamtc")) + // 카드금액
  1178. parseInt(model.getValue("/root/main/mdlamtspec/remamt/remamt_remamto")); // 온라인금액
  1179. model.setValue("/root/send/s_bogj/bogj/bogj_rcptexptamt", remamt * -1);
  1180. }
  1181. //가정간호잔액
  1182. if(model.getValue("/root/send/s_bogj/bogj/bogj_rcptflag") == "A13"){
  1183. model.setValue("/root/send/s_bogj/bogj/bogj_rcptexptamt", parseInt(model.getValue("/root/main/mdlamtspec/remamt/remamt_remamt2") * -1));
  1184. }
  1185. frcptexptamt();
  1186. model.setFocus("cmb_orddeptcd");
  1187. }else {
  1188. btn_receipt.disabled = false;
  1189. btn_cancelrcpt.disabled = false;
  1190. }
  1191. /*
  1192. //부분반환 기능 막음
  1193. if ((cmb_rcptflag.value).substr(2,1) == "3" ) {
  1194. messageBox("반환기능은 사용하실수 없습니다. [수납취소]기능을 사용하십시오.","I999","");
  1195. model.setFocus("cmb_rcptflag");
  1196. btn_receipt.disabled = true;
  1197. btn_cancelrcpt.disabled = true;
  1198. return;
  1199. }
  1200. else {
  1201. btn_receipt.disabled = false;
  1202. btn_cancelrcpt.disabled = false;
  1203. }
  1204. */
  1205. //model.refresh();
  1206. }
  1207. function frcptexptamt() {
  1208. model.setValue("/root/send/s_bogj/bogj/bogj_cashamt",model.getValue("/root/send/s_bogj/bogj/bogj_rcptexptamt"));
  1209. model.setValue("/root/send/s_bogj/bogj/bogj_paydepoamt",model.getValue("/root/send/s_bogj/bogj/bogj_rcptexptamt"));
  1210. rdo_cardyn.dispatch("xforms-value-changed");
  1211. }
  1212. function fEasyPadNoInsert(flag, ipt1, ipt2){
  1213. //flag ://rrgstno.민번 phone.전번
  1214. //ipt1 : 인풋버튼명 예)ipt_rrgstno1
  1215. //ipt2 : 인풋버튼명 예)ipt_rrgstno2
  1216. //[0]정상처리여부 구분
  1217. //[1]phone -- 전번 rrgstno--민번
  1218. //[2]phone 일때는 전번 rrgstno 일때는 앞자리
  1219. //[3]phone 일때는 없음 rrgstno 일때는 뒷자리
  1220. var sValue = flag ; //rrgstno.민번 phone.전번
  1221. setParameter("SPPAO00503_PARM",sValue);//1.전번 2.민번
  1222. modal("../../../pam/inordamtmngtweb/xrw/SPPAO00503", "1","", "", "SPPAO00503", "", "", "sysmenu:hidden");
  1223. var SPPAO00503_RTN = getParameter("SPPAO00503_RTN");
  1224. var array_parm = SPPAO00503_RTN.split("▦");
  1225. if(array_parm[0] == "Y"){
  1226. if (array_parm[1] == "phone" ) { //전번
  1227. if(array_parm[2] != "") {
  1228. model.setvalue("/root/main/etc/option/cardyn" , "N");
  1229. frdo_cardyn();
  1230. model.setValue("/root/main/m_etc/cardno", array_parm[2]);
  1231. model.setFocus("btn_rcpt");
  1232. ipt1.value = array_parm[2];
  1233. ipt1.refresh();
  1234. }
  1235. }else if (array_parm[1] == "rrgstno" ) { //민번
  1236. ipt1.value = array_parm[2];
  1237. ipt2.value = array_parm[3];
  1238. ipt1.refresh();
  1239. ipt2.refresh();
  1240. model.setFocus("ipt_rrgstno2");
  1241. }
  1242. }else{
  1243. messageBox("팝업 비정상종료","E999");
  1244. }
  1245. }
  1246. //환불금 서명
  1247. function fRtnRcpt(args) {
  1248. if(model.getValue("/root/main/patinfo/patinfolist/pid") == null ||
  1249. (model.getValue("/root/main/patinfo/patinfolist/pid")).getTrim == ""){
  1250. messageBox("환자번호가 존재하지 않습니다.", "E999");
  1251. }
  1252. if(args== "1"){
  1253. var sValue = args + "▦" + //1.환불내역 조회용 2.환불수납후 호출용
  1254. model.getValue("/root/hidden2/session/dutplceinstcd") + "▦" + //기관코드
  1255. model.getValue("/root/main/patinfo/patinfolist/pid") + "▦" + //환자등록번호
  1256. model.getValue("/root/main/patinfo/patinfolist/hngnm") + "▦" + //환자성명
  1257. model.getValue("/root/main/patinfo/patinfolist/rrgstno1") + "▦" + //주민등록번호 앞자리
  1258. model.getValue("/root/main/patinfo/patinfolist/rrgstno2") + "▦" + //주민등록번호뒷자리
  1259. model.getValue("/root/main/patinfo/patinfolist/hometel") + "▦" + //집전화
  1260. model.getValue("/root/main/patinfo/patinfolist/mpphontel") + "▦" + //휴대폰
  1261. getCurrentDate() + "▦" + //진료일
  1262. 0 + "▦" + //일련번호
  1263. model.getValue("/root/send/s_bogj/bogj/bogj_orddeptcd") + "▦" + //진료과
  1264. "" + "▦" + //진료의
  1265. "" + "▦" + //환불금액
  1266. "" + "▦" + //보험유형
  1267. "O" ; //진료유형
  1268. setParameter("SPPAO00600_PARM",sValue);
  1269. modal("SPPAO00600", "1","50", "50", "SPPAO00600", "", "", "sysmenu:hidden");
  1270. }else if(args== "2"){
  1271. var sCardAmt = model.getValue("/root/send/s_bogj/bogj/bogj_cardamt");
  1272. var sCashAmt = model.getValue("/root/send/s_bogj/bogj/bogj_cashamt");
  1273. var sOnlineAmt = model.getValue("/root/send/s_bogj/bogj/bogj_onlineamt");
  1274. var rtn = messageBox("환불내역을 등록 하시겠습니까?", "Q999");
  1275. if(rtn == "7"){ //아니오
  1276. return;
  1277. }else if(rtn == "6"){
  1278. var sValue = args + "▦" + //1.환불내역 조회용 2.환불수납후 호출용
  1279. model.getValue("/root/hidden2/session/dutplceinstcd") + "▦" + //기관코드
  1280. model.getValue("/root/main/patinfo/patinfolist/pid") + "▦" + //환자등록번호
  1281. model.getValue("/root/main/patinfo/patinfolist/hngnm") + "▦" + //환자성명
  1282. model.getValue("/root/main/patinfo/patinfolist/rrgstno1") + "▦" + //주민등록번호 앞자리
  1283. model.getValue("/root/main/patinfo/patinfolist/rrgstno2") + "▦" + //주민등록번호뒷자리
  1284. model.getValue("/root/main/patinfo/patinfolist/hometel") + "▦" + //집전화
  1285. model.getValue("/root/main/patinfo/patinfolist/mpphontel") + "▦" + //휴대폰
  1286. getCurrentDate() + "▦" + //진료일
  1287. 0 + "▦" + //일련번호
  1288. model.getValue("/root/send/s_bogj/bogj/bogj_orddeptcd") + "▦" + //진료과
  1289. "" + "▦" + //진료의
  1290. Math.abs(parseInt(model.getValue("/root/send/s_bogj/bogj/bogj_rcptexptamt")))+ "▦" + //환불금액
  1291. "" + "▦" + //보험유형
  1292. "O" ; //진료유형
  1293. setParameter("SPPAO00600_PARM",sValue);
  1294. modal("SPPAO00600", "1","50", "50", "SPPAO00600", "", "", "sysmenu:hidden");
  1295. }//환불수납여부 체크 end
  1296. }
  1297. }//fRtnRcpt end
  1298. //fEzpass 서명
  1299. function fEzpass(args) {
  1300. var sValue = args + "▦" + //1.fEzpass 조회용 2.fEzpass 입력용
  1301. model.getValue("/root/main/patinfo/patinfolist/pid") ; //환자등록번호
  1302. setParameter("SPPMC06300_PARM",sValue);
  1303. modal("SPPMC06300", "1","50", "50", "SPPMC06300", "", "", "sysmenu:hidden");
  1304. }//fEzpass end