SMPAO00700.xjs 68 KB

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