SMPAO01700.xjs 65 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type ="xscript4.0"><![CDATA[
  3. //공통코드 및 원무사용 기초코드 세팅(진료과,의사,감면,미수 등)
  4. function fSetCodeList(){
  5. //공통코드
  6. var arrParam = [ {dsNm: "ds_init_com_comncdlist_P0104list" //계산급여구분
  7. ,"ds_init_com_comncdlist_R0001list" //은행
  8. ,"ds_init_com_comncdlist_P0390list" //승인구분
  9. ,"ds_init_com_comncdlist_P0073list" //자격구분
  10. ,"ds_init_com_comncdlist_P0354list" //개인_법인
  11. ,
  12. cdGrpId: "P0104","R0001","P0390","P0073","P0354" } ];
  13. appf_getCodeList(arrParam, );
  14. //원무사용 기초코드 조회(진료과,의사,할인,미수코드)
  15. }
  16. //수납내역 조회(영수내역,카드내역,현금영수증내역,통장입금내역) - (+) 선수금 수납내역
  17. function fSearch() {
  18. var vcheck_pid = (ds_main_patinfo_patinfolist.getColumn(0, "pid")).getTrim();
  19. ds_send.setColumn( 0, "pid",vcheck_pid);
  20. ds_main_patinfo_patinfolist.setColumn( 0, "pid",vcheck_pid);
  21. //조회조건 체크
  22. var vcheck_fromdd = (ds_send.getColumn(0, "fromdd")).getTrim();
  23. var vcheck_todd = (ds_send.getColumn(0, "todd")).getTrim();
  24. if (vcheck_pid == "" || vcheck_pid == " " || vcheck_pid == "-" || vcheck_pid == null) {
  25. sysf_messageBox("환자등록번호가 입력되지","E007");
  26. ipt_pid.setFocus();
  27. return;
  28. }
  29. if (vcheck_fromdd == "" || vcheck_fromdd == " " || vcheck_fromdd == "-" || vcheck_fromdd == null ) {
  30. sysf_messageBox("시작일자가 입력되지","E007");
  31. ipt_fromdd.setFocus();
  32. return;
  33. }
  34. if (vcheck_todd == "" || vcheck_todd == " " || vcheck_todd == "-" || vcheck_todd == null ) {
  35. sysf_messageBox("종료일자가 입력되지","E007");
  36. ipt_todd.setFocus();
  37. return;
  38. }
  39. //해당조건에 의한 외래수납내역 조회
  40. // submit("TRPAO01701");
  41. var oParam = {};
  42. oParam.id = "TRPAO01701";
  43. oParam.service = "outordamtmngtapp.OutRcptUpdt";
  44. oParam.method = "reqGetopmiList2";
  45. oParam.inds = "req=ds_";
  46. oParam.outds = "ds_=opmi";
  47. oParam.async = false;
  48. oParam.callback = "cf_TRPAO01701";
  49. tranf_submit(oParam);
  50. /*
  51. function cf_TRPAO01701(sSvcId, nErrorCode, sErrorMsg) {
  52. if(nErrorCode < 0) return;
  53. }
  54. function cf_TRPAO01701(sSvcId, nErrorCode, sErrorMsg) {
  55. arErrorCode.push(sSvcId, nErrorCode);
  56. }
  57. arErrorCode.pop("TRPAO01701") > -1
  58. arErrorCode.pop("TRPAO01701") < 0
  59. */
  60. //model.refresh();
  61. }
  62. //디폴트 세팅
  63. function fSetDefault(){
  64. //출력옵션 디폴트 세팅
  65. ds_main_option.setColumn( 0, "engreceipt","N"); //영문영수증
  66. ds_main_option.setColumn( 0, "originyn","N"); //사본
  67. //승인정보 디폴트 세팅
  68. ds_main_vaninfo.setColumn( 0, "cardyn","C"); //현금
  69. ds_main_vaninfo.setColumn( 0, "indinstflag","00"); //소득공제
  70. ds_main_vaninfo.setColumn( 0, "cashamt","0");
  71. ds_main_vaninfo.setColumn( 0, "cardamt","0");
  72. ds_main_vaninfo.setColumn( 0, "onlineamt","0");
  73. ds_main_vaninfo.setColumn( 0, "uncoamt","0");
  74. ds_main_opmi.setColumn( 0, "sum_cardamt","0");
  75. ds_main_opmi.setColumn( 0, "sum_cashamt","0");
  76. ds_main_opmi.setColumn( 0, "sum_onlineamt","0");
  77. ds_main_opmi.setColumn( 0, "sum_uncoamt","0");
  78. ds_main_vaninfo_cardno.clearData(); ds_main_vaninfo_cardno.addRow();
  79. ds_main_vaninfo_valiterm.clearData(); ds_main_vaninfo_valiterm.addRow();
  80. ds_main_vaninfo_allotmm.clearData(); ds_main_vaninfo_allotmm.addRow();
  81. ds_main_vaninfo_keyinptflag.clearData(); ds_main_vaninfo_keyinptflag.addRow();
  82. ds_main_vaninfo_swipedata.clearData(); ds_main_vaninfo_swipedata.addRow();
  83. ds_main_vaninfo_qualcnfmflag.clearData(); ds_main_vaninfo_qualcnfmflag.addRow();
  84. //조회조건 디폴트 세팅
  85. ds_send.setColumn( 0, "cond","1"); //수납일자
  86. //조회일자 디폴트 세팅
  87. ds_send.setColumn( 0, "fromdd", utlf_getCurrentDate());
  88. ds_send.setColumn( 0, "todd", utlf_getCurrentDate());
  89. //탭 디폴트 세팅
  90. btn_rcptlist.dispatch("onclick"); //수납리스트 탭
  91. };
  92. //세션정보 추출하기
  93. function fGetUserInfosSampling(){
  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. if (userid == null || userid == "" || userid == " " || userid == "-") userid = "pam";
  104. if (posinstcd == null || posinstcd == "" || posinstcd == " " || posinstcd == "-") posinstcd = "012";
  105. dsf_makeValue( ds_hidden_session, "sess_userid", "string", userid);
  106. dsf_makeValue( ds_hidden_session, "sess_usernm", "string", usernm);
  107. dsf_makeValue( ds_hidden_session, "sess_posinstcd", "string", posinstcd);
  108. dsf_makeValue( ds_hidden_session, "sess_posinstnm", "string", posinstnm);
  109. dsf_makeValue( ds_hidden_session, "sess_posdeptcd", "string", posdeptcd);
  110. dsf_makeValue( ds_hidden_session, "sess_posdeptnm", "string", posdeptnm);
  111. //model.refresh();
  112. }
  113. function fInitialize() {
  114. ds_send.clearData(); ds_send.addRow();
  115. ds_main_patinfo_patinfolist.clearData(); ds_main_patinfo_patinfolist.addRow();
  116. ds_main_baseinfo_opmilist_opmi.clearData();
  117. ds_main_baseinfo_cardlist_card.clearData();
  118. ds_main_baseinfo_cashlist_cash.clearData();
  119. ds_main_baseinfo_onlnlist_onln.clearData();
  120. ds_main_baseinfo_onlycvanlist_cvan.clearData();
  121. ds_main_baseinfo_h_svan_svan.clearData();
  122. ds_main_baseinfo_h_unco_unco.clearData();
  123. ds_main_baseinfo_h_unco_rcpt_unco.clearData();
  124. //디폴트 세팅
  125. fSetDefault();
  126. grd_opmilist.rebuild();
  127. grd_cardlist.rebuild();
  128. grd_cashlist.rebuild();
  129. grd_onlinelist.rebuild();
  130. grd_onlycvan.rebuild();
  131. ipt_pid.setFocus();
  132. //model.refresh();
  133. }
  134. function fInitialize2() {
  135. ds_send.clearData(); ds_send.addRow();
  136. ds_main_baseinfo_opmilist_opmi.clearData();
  137. ds_main_baseinfo_cardlist_card.clearData();
  138. ds_main_baseinfo_cashlist_cash.clearData();
  139. ds_main_baseinfo_onlnlist_onln.clearData();
  140. ds_main_baseinfo_onlycvanlist_cvan.clearData();
  141. ds_main_baseinfo_h_svan_svan.clearData();
  142. ds_main_baseinfo_h_unco_unco.clearData();
  143. ds_main_baseinfo_h_unco_rcpt_unco.clearData();
  144. ds_main_option.setColumn( 0, "cardck","N");
  145. //디폴트 세팅
  146. fSetDefault();
  147. grd_opmilist.rebuild();
  148. grd_cardlist.rebuild();
  149. grd_cashlist.rebuild();
  150. grd_onlinelist.rebuild();
  151. grd_onlycvan.rebuild();
  152. ipt_pid.setFocus();
  153. //model.refresh();
  154. }
  155. function fDetlInfoRef(row)
  156. {
  157. ds_main_baseinfo_cardlist_card.clearData();
  158. ds_main_baseinfo_cashlist_cash.clearData();
  159. ds_main_baseinfo_onlnlist_onln.clearData();
  160. ds_main_baseinfo_onlycvanlist_cvan.clearData();
  161. ds_main_baseinfo_h_opmi_opmi.clearData();
  162. ds_main_baseinfo_h_unco_unco.clearData();
  163. ds_main_baseinfo_h_unco_rcpt_unco.clearData();
  164. ds_main_baseinfo_h_otpt_otpt.clearData();
  165. ds_main_baseinfo_m_card_card.clearData();
  166. ds_send_data.copyRow( 1, ds_main_baseinfo_opmilist_opmi, row);
  167. ds_send_data2.copyData(ds_hidden_session);
  168. // if (submit("TRPAO01702"))
  169. var oParam = {};
  170. oParam.id = "TRPAO01702";
  171. oParam.service = "outordamtmngtapp.OutRcptUpdt";
  172. oParam.method = "reqGetDetlInfo";
  173. oParam.inds = "req=ds_";
  174. oParam.outds = "ds_=card ds_=cash ds_=onln ds_=unco ds_=h_opmi ds_=h_otpt ds_=m_card ds_=unco_rcpt";
  175. oParam.async = false;
  176. oParam.callback = "cf_TRPAO01702";
  177. tranf_submit(oParam);
  178. /*
  179. function cf_TRPAO01702(sSvcId, nErrorCode, sErrorMsg) {
  180. if(nErrorCode < 0) return;
  181. }
  182. function cf_TRPAO01702(sSvcId, nErrorCode, sErrorMsg) {
  183. arErrorCode.push(sSvcId, nErrorCode);
  184. }
  185. arErrorCode.pop("TRPAO01702") > -1
  186. arErrorCode.pop("TRPAO01702") < 0
  187. */
  188. {
  189. //copyNode
  190. ds_main_baseinfo_cardlist.copyData(ds_hidden_rcv_cardlist);
  191. ds_main_baseinfo_cashlist.copyData(ds_hidden_rcv_cashlist);
  192. ds_main_baseinfo_onlnlist.copyData(ds_hidden_rcv_onlnlist);
  193. ds_main_baseinfo_h_unco.copyData(ds_hidden_rcv_h_unco);
  194. ds_main_baseinfo_h_unco_rcpt.copyData(ds_hidden_rcv_h_unco_rcpt);
  195. ds_main_baseinfo_h_opmi.copyData(ds_hidden_rcv_h_opmi);
  196. //멀티 otpt, card 추가
  197. ds_main_baseinfo_h_otpt.copyData(ds_hidden_rcv_h_otpt);
  198. ds_main_baseinfo_m_card.copyData(ds_hidden_rcv_m_card);
  199. //일괄처리대상 체크 toggle
  200. if (ds_main_baseinfo_h_opmi_opmi.rowcount;> 0)
  201. {
  202. //sysf_messageBox("[동일승인수납]된 내역! 수납변경 불가능합니다! 외래수납에서 처리하십시요!","E999","");
  203. sysf_messageBox("[동일승인수납]된 내역입니다!","E999","");
  204. }
  205. }
  206. grd_cardlist.rebuild();
  207. grd_cashlist.rebuild();
  208. grd_onlinelist.rebuild();
  209. grd_unco.rebuild();
  210. grd_mopmi.rebuild();
  211. }
  212. function fBeforeRcptChck()
  213. {
  214. if (ds_main_baseinfo_opmilist_opmi.rowcount;< 1)
  215. {
  216. sysf_messageBox("대상 조회 후에 작업하십시요!","E999","");
  217. return false;
  218. }
  219. var opmi_chck_cnt = 0;
  220. var opmi_grid_row = 0;
  221. for (i = 1; i <= ds_main_baseinfo_opmilist_opmi.rowcount; i++)
  222. {
  223. if (ds_main_baseinfo_opmilist_opmi.getColumn(i, "opmi_chck") == "true")
  224. {
  225. opmi_chck_cnt++;
  226. opmi_grid_row = i;
  227. }
  228. }
  229. if (opmi_chck_cnt < 1)
  230. {
  231. sysf_messageBox("변경_취소할 내역을 선택 후 작업하십시요!","E999","");
  232. return false;
  233. }
  234. if (opmi_chck_cnt > 1)
  235. {
  236. sysf_messageBox("변경_취소할 내역은 한건만 선택하셔야 합니다!","E999","");
  237. return false;
  238. }
  239. var opmi_allrcptexptamt =
  240. parseInt(ds_main_baseinfo_opmilist_opmi.getColumn(opmi_grid_row, "opmi_precardamt")))
  241. +parseInt(ds_main_baseinfo_opmilist_opmi.getColumn(opmi_grid_row, "opmi_precashamt")))
  242. +parseInt(ds_main_baseinfo_opmilist_opmi.getColumn(opmi_grid_row, "opmi_preonlineamt")))
  243. +parseInt(ds_main_baseinfo_opmilist_opmi.getColumn(opmi_grid_row, "opmi_cardamt")))
  244. +parseInt(ds_main_baseinfo_opmilist_opmi.getColumn(opmi_grid_row, "opmi_cashamt")))
  245. +parseInt(ds_main_baseinfo_opmilist_opmi.getColumn(opmi_grid_row, "opmi_onlineamt")))
  246. +parseInt(ds_main_baseinfo_opmilist_opmi.getColumn(opmi_grid_row, "opmi_uncoamt")));
  247. var cardamt = parseInt(ds_main_vaninfo.getColumn(0, "cardamt"));
  248. var cashamt = parseInt(ds_main_vaninfo.getColumn(0, "cashamt"));
  249. var onlineamt = parseInt(ds_main_vaninfo.getColumn(0, "onlineamt"));
  250. var uncoamt = parseInt(ds_main_vaninfo.getColumn(0, "uncoamt"));
  251. var sum_cardamt = parseInt(ds_main_opmi.getColumn(0, "sum_cardamt"));
  252. var sum_cashamt = parseInt(ds_main_opmi.getColumn(0, "sum_cashamt"));
  253. var sum_onlineamt = parseInt(ds_main_opmi.getColumn(0, "sum_onlineamt"));
  254. var sum_uncoamt = parseInt(ds_main_opmi.getColumn(0, "sum_uncoamt"));
  255. if(opmi_allrcptexptamt == sum_cardamt + sum_cashamt + sum_onlineamt + sum_uncoamt + cardamt + cashamt + onlineamt + uncoamt) {
  256. //alert("같다");
  257. }else{
  258. var temp = sum_cardamt + sum_cashamt + sum_onlineamt + sum_uncoamt + cardamt + cashamt + onlineamt + uncoamt;
  259. sysf_messageBox("외래수납변경은 기존 수납금(현금+카드+미수금)의 총액과 변경한금액(카드->현금으로등)의 총액이 같아야 합니다. \n납부방법을 변경하는것이지 납부총액을 변경하는 용도는 아닙니다." ,"I999","");
  260. var rtn = sysf_messageBox("기존 수납금(" +opmi_allrcptexptamt+ " )의 총액, 변경한금액(" +temp+ " )의 총액이 다릅니다. \계속 진행하시겠습니까?" ,"Q999","");
  261. }
  262. if (rtn == 7) { // Yes : 6 / No : 7 / Cancel : 2
  263. return false;
  264. }
  265. }
  266. function fCurrowChk()
  267. {
  268. var currow = 0;
  269. for (i = 1; i <= ds_main_baseinfo_opmilist_opmi.rowcount; i++)
  270. {
  271. if (ds_main_baseinfo_opmilist_opmi.getColumn(i, "opmi_chck") == "true")
  272. {
  273. currow = i;
  274. }
  275. }
  276. return currow;
  277. }
  278. function fRcptPossChck()
  279. {
  280. var cash_chck = 0;
  281. for (i = 1; i <= ds_main_baseinfo_cashlist_cash.rowcount; i++)
  282. {
  283. if ((ds_main_baseinfo_cashlist_cash.getColumn(i, "cash_rcptdd")).length != 8) cash_chck++;
  284. }
  285. var card_chck = 0;
  286. for (j = 1; j <= ds_main_baseinfo_cardlist_card.rowcount; j++)
  287. {
  288. if ((ds_main_baseinfo_cardlist_card.getColumn(j, "card_rcptdd")).length != 8) card_chck++;
  289. }
  290. var onln_chck = 0;
  291. for (k = 1; k <= ds_main_baseinfo_onlnlist_onln.rowcount; k++)
  292. {
  293. if ((ds_main_baseinfo_onlnlist_onln.getColumn(k, "onln_rcptdd")).length != 8) onln_chck++;
  294. }
  295. /*
  296. if (card_chck == 0 && onln_chck == 0)
  297. {
  298. sysf_messageBox("수납변경할 내역이 미존재합니다!","E999","");
  299. return false;
  300. }
  301. */
  302. }
  303. function fReceipt(){
  304. if (ds_main_option.getColumn(0, "cardck") != "Y") {
  305. ds_main_option.setColumn( 0, "cardck", "N");
  306. }
  307. if(ds_main_vaninfo.getColumn(0, "cardyn") == "Y" &&
  308. ds_main_option.getColumn(0, "cardck") == "Y" &&
  309. ds_main_vaninfo.getColumn(0, "cardno") != "") {
  310. sysf_messageBox("승인완료가 체크되어 있으면서 카드번호가 있습니다.","E999","");
  311. return;
  312. }
  313. if(ds_main_vaninfo.getColumn(0, "cardyn") == "Y" &&
  314. ds_main_option.getColumn(0, "cardck") != "Y" &&
  315. ds_main_vaninfo.getColumn(0, "cardno") == "") {
  316. sysf_messageBox("카드승인번호가 비어있습니다.","E999","");
  317. return;
  318. }
  319. if (fBeforeRcptChck() == false) return;
  320. var cardcashflag = ds_main_vaninfo.getColumn(0, "cardyn");
  321. //카드 승인 내역 존재여부 체크
  322. var card_cardno = ds_main_vaninfo.getColumn(0, "cardno");
  323. var card_valiterm = ds_main_vaninfo.getColumn(0, "valiterm");
  324. var card_allotmm = ds_main_vaninfo.getColumn(0, "allotmm");
  325. ds_main_h_cash2_cash.clearData();
  326. if (cardcashflag == "Y") //카드
  327. {
  328. if ((card_cardno == null || card_cardno == "" || card_cardno == " " || card_cardno == "-" ||
  329. card_valiterm == null || card_valiterm == "" || card_valiterm == " " || card_valiterm == "-" ||
  330. card_allotmm == null || card_allotmm == "" || card_allotmm == " " || card_allotmm == "-") &&
  331. ds_main_baseinfo_cardlist_card.rowcount;< 1)
  332. {
  333. sysf_messageBox("카드 승인대상정보 미입력! 입력후 카드수납하시거나 현금수납하십시요!","E999","");
  334. return;
  335. }
  336. //승인대상내역이 이중으로 존재할 경우
  337. //fAfterChangeCardNo 에서 한건인 경우만 메인화면에서 승인정보 입력받을 수 있도록 체크
  338. if ((card_cardno != null && card_cardno != "" && card_cardno != " " && card_cardno != "-" &&
  339. card_valiterm != null && card_valiterm != "" && card_valiterm != " " && card_valiterm != "-" &&
  340. card_allotmm != null && card_allotmm != "" && card_allotmm != " " && card_allotmm != "-") &&
  341. ds_main_baseinfo_cardlist_card.rowcount;> 0)
  342. {
  343. sysf_messageBox("카드 승인대상정보 이중존재! 메인화면 승인대상처리 혹은 팝업승인대상처리 중 하나만 선택하십시요!","E999","");
  344. return;
  345. }
  346. }
  347. else if (cardcashflag == "N") //현금영수증
  348. {
  349. //승인대상내역 make
  350. fCashAprvMake();
  351. }
  352. var result = sysf_messageBox("수납변경","S001","");
  353. if (result == "6"){
  354. if (ds_main_h_cash2_cash.rowcount;> 0) //*h_cash2 그대로 가야한다.
  355. {
  356. //현금영수증이 선택되어 있을 경우만 => 그냥 현금인 경우 제외
  357. if (fVanApp("cash","I") == false) return;
  358. }
  359. //if (cardcashflag == "Y" && ds_main_baseinfo_cardlist_card.rowcount;< 1 && ds_main_option.getColumn(0, "cardck") != "Y")
  360. if (parseInt(ds_main_vaninfo.getColumn(0, "cardamt")) > 0 && ds_main_option.getColumn(0, "cardck") != "Y"){
  361. if (fCardAprvPopUpConnect("I") == false) return;
  362. }
  363. fRcptUpdt();
  364. }
  365. }
  366. function fRcptUpdt(){
  367. var currow = fCurrowChk();
  368. ds_send_data1.clearData();
  369. dsf_makeValue( ds_send, "data1", "string", "" );
  370. ds_send.setColumn( 0, "data1", getNodeListCSV(instance1.selectNodes("ds_hidden_session")));
  371. ds_send_data2.clearData();
  372. dsf_makeValue( ds_send, "data2", "string", "" );
  373. ds_send.setColumn( 0, "data2", getNodeListCSV(instance1.selectNodes("ds_main_baseinfo_opmilist_opmi["+ currow +"]")));
  374. ds_send_data3.clearData();
  375. dsf_makeValue( ds_send, "data3", "string", "" );
  376. ds_send_data4.clearData();
  377. dsf_makeValue( ds_send, "data4", "string", "" );
  378. ds_send_data5.clearData();
  379. dsf_makeValue( ds_send, "data5", "string", "" );
  380. ds_send_data6.clearData();
  381. dsf_makeValue( ds_send, "data6", "string", "" );
  382. if (instance1.selectSingleNode("ds_main_baseinfo_cardlist_card") != null)
  383. {
  384. if (instance1.selectSingleNode("ds_main_baseinfo_cardlist_card_card_pid") != null)
  385. {
  386. for (i = 1; i <= ds_main_baseinfo_cardlist_card.rowcount; i++)
  387. {
  388. ds_main_baseinfo_cardlist.setColumn( i , "card_pid",ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_pid"))); //추후 세팅
  389. }
  390. }
  391. ds_send.setColumn( 0, "data3", getNodeListCSV(instance1.selectNodes("ds_main_baseinfo_cardlist_card")));
  392. }
  393. if (instance1.selectSingleNode("ds_main_baseinfo_cashlist_cash") != null)
  394. {
  395. if (instance1.selectSingleNode("ds_main_baseinfo_cashlist_cash_cash_pid") != null)
  396. {
  397. for (i = 1; i <= ds_main_baseinfo_cashlist_cash.rowcount; i++)
  398. {
  399. ds_main_baseinfo_cashlist.setColumn( i , "cash_pid",ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_pid"))); //추후 세팅
  400. }
  401. }
  402. ds_send.setColumn( 0, "data4", getNodeListCSV(instance1.selectNodes("ds_main_baseinfo_cashlist_cash")));
  403. }
  404. if (instance1.selectSingleNode("ds_main_baseinfo_onlnlist_onln") != null)
  405. {
  406. if (instance1.selectSingleNode("ds_main_baseinfo_onlnlist_onln_onln_pid") != null)
  407. {
  408. for (i = 1; i <= ds_main_baseinfo_onlnlist_onln.rowcount; i++)
  409. {
  410. ds_main_baseinfo_onlnlist.setColumn( i , "onln_pid",ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_pid"))); //추후 세팅
  411. }
  412. }
  413. ds_send.setColumn( 0, "data5", getNodeListCSV(instance1.selectNodes("ds_main_baseinfo_onlnlist_onln")));
  414. }
  415. if (instance1.selectSingleNode("ds_main_baseinfo_h_unco_unco") != null)
  416. {
  417. if (instance1.selectSingleNode("ds_main_baseinfo_h_unco_unco_unco_pid") != null)
  418. {
  419. for (i = 1; i <= ds_main_baseinfo_h_unco_unco.rowcount; i++)
  420. {
  421. ds_main_baseinfo_h_unco.setColumn( i , "unco_pid",ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_pid"))); //추후 세팅
  422. }
  423. }
  424. ds_send.setColumn( 0, "data6", getNodeListCSV(instance1.selectNodes("ds_main_baseinfo_h_unco_unco")));
  425. }
  426. dsf_makeValue( ds_send_s_new_opmi, "opmi_cashamt_new", "string", ds_main_vaninfo.getColumn(0, "cashamt"));
  427. dsf_makeValue( ds_send_s_new_opmi, "opmi_cardamt_new", "string", ds_main_vaninfo.getColumn(0, "cardamt"));
  428. dsf_makeValue( ds_send_s_new_opmi, "opmi_onlineamt_new", "string", ds_main_vaninfo.getColumn(0, "onlineamt"));
  429. dsf_makeValue( ds_send_s_new_opmi, "opmi_uncoamt_new", "string", ds_main_vaninfo.getColumn(0, "uncoamt"));
  430. ds_send_data7.clearData();
  431. dsf_makeValue( ds_send, "data7", "string", "" );
  432. ds_send.setColumn( 0, "data7", getNodeListCSV(instance1.selectNodes("ds_send_s_new_opmi")));
  433. // if (submit("TXPAO01701")){
  434. var oParam = {};
  435. oParam.id = "TXPAO01701";
  436. oParam.service = "outordamtmngtapp.OutRcptUpdt";
  437. oParam.method = "reqSetRcptMetd";
  438. oParam.inds = "session=ds_ opmi=ds_ h_new=ds_ h_card=ds_ h_cash=ds_ h_onln=ds_ h_unco=ds_";
  439. oParam.outds = "ds_=h_rcpt";
  440. oParam.async = false;
  441. oParam.callback = "cf_TXPAO01701";
  442. tranf_submit(oParam);
  443. /*
  444. function cf_TXPAO01701(sSvcId, nErrorCode, sErrorMsg) {
  445. if(nErrorCode < 0) return;
  446. }
  447. function cf_TXPAO01701(sSvcId, nErrorCode, sErrorMsg) {
  448. arErrorCode.push(sSvcId, nErrorCode);
  449. }
  450. arErrorCode.pop("TXPAO01701") > -1
  451. arErrorCode.pop("TXPAO01701") < 0
  452. */
  453. fRcptPaperPrint("1");
  454. ds_hidden_rcv.clearData();
  455. dsf_makeValue( ds_hidden, "rcv", "string", "" );
  456. //재조회
  457. fInitialize2();
  458. fSearch();
  459. }
  460. }
  461. function fRcptCancel()
  462. {
  463. var currow = fCurrowChk();
  464. ds_send_data1.clearData();
  465. dsf_makeValue( ds_send, "data1", "string", "" );
  466. ds_send.setColumn( 0, "data1", getNodeListCSV(instance1.selectNodes("ds_hidden_session")));
  467. ds_send_data2.clearData();
  468. dsf_makeValue( ds_send, "data2", "string", "" );
  469. ds_send.setColumn( 0, "data2", getNodeListCSV(instance1.selectNodes("ds_main_baseinfo_opmilist_opmi["+ currow +"]")));
  470. // if (submit("TXPAO01704"))
  471. var oParam = {};
  472. oParam.id = "TXPAO01704";
  473. oParam.service = "outordamtmngtapp.OutRcptUpdt";
  474. oParam.method = "reqSetRcptCancel";
  475. oParam.inds = "session=ds_ opmi=ds_";
  476. oParam.outds = "";
  477. oParam.async = false;
  478. oParam.callback = "cf_TXPAO01704";
  479. tranf_submit(oParam);
  480. /*
  481. function cf_TXPAO01704(sSvcId, nErrorCode, sErrorMsg) {
  482. if(nErrorCode < 0) return;
  483. }
  484. function cf_TXPAO01704(sSvcId, nErrorCode, sErrorMsg) {
  485. arErrorCode.push(sSvcId, nErrorCode);
  486. }
  487. arErrorCode.pop("TXPAO01704") > -1
  488. arErrorCode.pop("TXPAO01704") < 0
  489. */
  490. {
  491. //재조회
  492. fSearch();
  493. }
  494. }
  495. function fCardAprvPopUpConnect(flag)
  496. {
  497. //승인내역이 이미 묶인 내역에 대한 수납변경과 수납취소
  498. var parm;
  499. var orddd = "";
  500. var orddeptcd = "";
  501. var cretno = "";
  502. var strRcvVan = '';
  503. var fromdd = '';
  504. var todd = '';
  505. var cardAmt = parseInt(ds_main_opmi.getColumn(0, "sum_cashamt")) +
  506. parseInt(ds_main_opmi.getColumn(0, "sum_cardamt")) +
  507. parseInt(ds_main_vaninfo.getColumn(0, "cardamt")) +
  508. parseInt(ds_main_vaninfo.getColumn(0, "cashamt"));
  509. //카드정보
  510. var cardno = ds_main_vaninfo.getColumn(0, "cardno");
  511. var valiterm = ds_main_vaninfo.getColumn(0, "valiterm");
  512. var allotmm = ds_main_vaninfo.getColumn(0, "allotmm");
  513. //멀티건수, 멀티opmi, 멀티otpt
  514. var m_cnt = 0;
  515. var m_opmi_ref = "";
  516. var m_otpt_ref = "";
  517. var send_ref = "";
  518. if (ds_main_baseinfo_h_opmi_opmi.rowcount;> 1){ //멀티
  519. m_cnt = ds_main_baseinfo_h_opmi_opmi.rowcount;
  520. //현재 opmi만 send
  521. m_opmi_ref = "ds_main_baseinfo_opmilist_opmi["+ eval(fCurrowChk()) +"]";
  522. m_otpt_ref = "ds_main_baseinfo_h_otpt";
  523. //send_ref = "ds_main_baseinfo_m_card";
  524. send_ref = "ds_main_baseinfo_cardlist";
  525. //otpt_check = 'Y'
  526. var opmi_pid = ds_main_baseinfo_opmilist_opmi.getColumn(eval(fCurrowChk()), "opmi_pid");
  527. var opmi_cretno = ds_main_baseinfo_opmilist_opmi.getColumn(eval(fCurrowChk()), "opmi_cretno");
  528. var opmi_orddd = ds_main_baseinfo_opmilist_opmi.getColumn(eval(fCurrowChk()), "opmi_orddd");
  529. var opmi_rcptdd = ds_main_baseinfo_opmilist_opmi.getColumn(eval(fCurrowChk()), "opmi_rcptdd");
  530. var opmi_rcptno = ds_main_baseinfo_opmilist_opmi.getColumn(eval(fCurrowChk()), "opmi_rcptno");
  531. var opmi_rcptseqno = ds_main_baseinfo_opmilist_opmi.getColumn(eval(fCurrowChk()), "opmi_rcptseqno");
  532. var otpt_pid = "", otpt_cretno = "", otpt_orddd = "", otpt_rcptdd = "", otpt_rcptno = "", otpt_rcptseqno = "";
  533. for (otpt_i = 1; otpt_i <= ds_main_baseinfo_h_otpt_otpt.rowcount; otpt_i++){
  534. otpt_pid = ds_main_baseinfo_h_otpt_otpt.getColumn(otpt_i, "otpt_pid"));
  535. otpt_cretno = ds_main_baseinfo_h_otpt_otpt.getColumn(otpt_i, "otpt_cretno"));
  536. otpt_orddd = ds_main_baseinfo_h_otpt_otpt.getColumn(otpt_i, "otpt_orddd"));
  537. otpt_rcptdd = ds_main_baseinfo_h_otpt_otpt.getColumn(otpt_i, "otpt_rcptdd"));
  538. otpt_rcptno = ds_main_baseinfo_h_otpt_otpt.getColumn(otpt_i, "otpt_rcptno"));
  539. otpt_rcptseqno = ds_main_baseinfo_h_otpt_otpt.getColumn(otpt_i, "otpt_rcptseqno"));
  540. if (opmi_pid == otpt_pid && opmi_cretno == otpt_cretno && opmi_orddd == otpt_orddd &&
  541. opmi_rcptdd == otpt_rcptdd && opmi_rcptno == otpt_rcptno && opmi_rcptseqno == otpt_rcptseqno){
  542. ds_main_baseinfo_h_otpt.setColumn( otpt_i , "otpt_check","Y");
  543. break;
  544. }
  545. }
  546. }
  547. else{
  548. send_ref = "ds_main_baseinfo_cardlist";
  549. }
  550. parm = "0" + "▦" + //멀티건수
  551. m_opmi_ref + "▦" + //멀티opmi
  552. "" + "▦" + //rcptdd 변경 혹은 취소인 경우 필요
  553. "" + "▦" + //rcptno
  554. "" + "▦" + //rcptseqno
  555. cardAmt + "▦" + //totalamt
  556. send_ref + "▦" + //send
  557. "ds_main_baseinfo_cardlist" + "▦" + //receive
  558. ds_main_baseinfo_opmilist_opmi.getColumn(eval(fCurrowChk()), "opmi_pid") + "▦" + //pid
  559. utlf_getCurrentDate() + "▦" + //orddd
  560. cretno + "▦" + //cretno
  561. strRcvVan + "▦" + //strRcvVan
  562. ds_main_baseinfo_opmilist_opmi.getColumn(eval(fCurrowChk()), "opmi_ordtype") + "▦" + //ordtype
  563. fromdd + "▦" + //fromdd
  564. todd + "▦" + //todd
  565. orddeptcd + "▦" + //orddeptcd
  566. //단일건 접수 승인일때만 필요
  567. cardno + "▦" + //cardno
  568. valiterm + "▦" + //valiterm
  569. allotmm + "▦" + //allotmm
  570. ds_main_vaninfo.getColumn(0, "keyinptflag") + "▦" + //keyin여부
  571. ds_main_vaninfo.getColumn(0, "swipedata") + "▦" + //track2data
  572. m_otpt_ref + "▦" //멀티 otpt
  573. ;
  574. frmf_setParameter("SPPAO00400_PARM",parm);
  575. frmf_setParameter("SPPAO00400_FLAG", flag);
  576. frmf_setParameter("SPPAO00400_RTNTYPE", "A");
  577. //팝업 오픈 방식 체크
  578. if( flag == 'I'){
  579. var ivrObjt = components["ivr_cardpopup"];
  580. if( ivrObjt == null ){
  581. body.createChild("xforms:iviewer", "id:ivr_cardpopup; src:../../.._pam_pamcomnweb_xrw_SPPAO00400_신용카드승인.xrw");
  582. ivrObjt = components["ivr_cardpopup"];
  583. }
  584. if( flag == 'I' ){
  585. ivrObjt.window.javascript.fInit();
  586. var retMsg = ivrObjt.window.javascript.fAutoGetCardAprv();
  587. }else{
  588. ivrObjt.window.javascript.fInit();
  589. var retMsg = ivrObjt.window.javascript.fAutoCnclCardAprv();
  590. }
  591. body.removeChild("ivr_cardpopup");
  592. //결과값 리턴..
  593. if( retMsg == true || retMsg == false ){
  594. if (retMsg == false) return retMsg;
  595. }else{
  596. if( sysf_messageBox("카드팝업을 지금 바로 여셔서 오류난 작업을 다시 진행하시겠습니까?", "Q999", "") == 6 ){
  597. frmf_setParameter("SPPAO00400_PARM",parm);
  598. frmf_setParameter("SPPAO00400_FLAG", 'E'); //에러상황에서 팝업 호출.
  599. frmf_modal("SPPAO00400", "SPPAO00400", ""-"", "", "1", "400", "400", "", "", "", "", "", "M");
  600. var rtn = frmf_getParameter("SPPAO00400_RTN");
  601. if( rtn == 'N' ){ //팝업이 정상 종료되지 않았습니다.
  602. return false;
  603. }else{
  604. var cardamt = frmf_getParameter("SPPAO00400_TotCardAmt");
  605. if( parseInt( cardamt ) == 0 ){
  606. // return true;
  607. }else{
  608. sysf_messageBox("카드승인취소 후 카드결제액이 맞지 않습니다!", "E999", "");
  609. return false;
  610. }
  611. }
  612. }else{
  613. return false;
  614. }
  615. return false;
  616. }
  617. }else{
  618. frmf_modal("SPPAO00400", "SPPAO00400", ""-"", "", "1", "400", "400", "", "", "", "", "", "M");
  619. if (frmf_getParameter("SPPAO00400_RTN") == "N" || frmf_getParameter("SPPAO00400_RTN") == ""){
  620. return false;
  621. }
  622. // return true;
  623. ds_main_vaninfo.setColumn( 0, "cardyn","Y");
  624. var TotCardAmt = 0;
  625. var card_rcptno;
  626. for (i = 1; i <= ds_main_baseinfo_cardlist_card.rowcount; i++)
  627. {
  628. card_rcptno = ds_main_baseinfo_cardlist_card.getColumn(i, "card_rcptno");
  629. if (card_rcptno == "0" || card_rcptno == "" || card_rcptno == " " || card_rcptno == "-" || card_rcptno == null)
  630. {
  631. TotCardAmt = (eval(TotCardAmt) + eval(ds_main_baseinfo_cardlist_card.getColumn(i, "card_cardamt")));
  632. }
  633. }
  634. ds_main_vaninfo.setColumn( 0, "cardamt",TotCardAmt.toString());
  635. fCalcRcpt();
  636. }
  637. }
  638. function fCashAprvPopUpConnect(flag){
  639. var parm;
  640. var cashAmt = parseInt(ds_main_opmi.getColumn(0, "sum_cashamt")) +
  641. parseInt(ds_main_opmi.getColumn(0, "sum_cardamt")) +
  642. parseInt(ds_main_vaninfo.getColumn(0, "cardamt")) +
  643. parseInt(ds_main_vaninfo.getColumn(0, "cashamt"));
  644. //카드정보
  645. var cardno = ds_main_vaninfo.getColumn(0, "cardno");
  646. var valiterm = ds_main_vaninfo.getColumn(0, "valiterm");
  647. var allotmm = ds_main_vaninfo.getColumn(0, "allotmm");
  648. parm = "0" + "▦" + //멀티건수
  649. "" + "▦" + //멀티opmi
  650. cashAmt + "▦" + //totalamt
  651. "ds_main_baseinfo_cashlist" + "▦" + //send
  652. "ds_main_baseinfo_cashlist" + "▦" + //receive
  653. ds_main_baseinfo_opmilist_opmi.getColumn(eval(fCurrowChk()), "opmi_pid") + "▦" + //pid
  654. ds_main_baseinfo_opmilist_opmi.getColumn(eval(fCurrowChk()), "opmi_ordtype") + "▦" + //ordtype
  655. ds_main_vaninfo.getColumn(0, "indinstflag") + "▦" + //indinstflag
  656. cardno + "▦" + //gQualcnfmno
  657. // valiterm + "▦" + //valiterm
  658. // allotmm + "▦" + //allotmm
  659. ds_main_vaninfo.getColumn(0, "keyinptflag") + "▦" + //keyinpuflag
  660. "" + "▦" + //swipedata
  661. ds_main_vaninfo.getColumn(0, "qualcnfmflag") + "▦" ; //qualcnfmflag
  662. frmf_setParameter("SPPAO00500_PARM",parm);
  663. frmf_setParameter("SPPAO00500_FLAG", flag);
  664. frmf_modal("SPPAO00501", "SPPAO00501", ""-"", "", "1", "400", "400", "", "", "", "", "", "M");
  665. //return true;
  666. //팝업 정상종료 여부!
  667. if (frmf_getParameter("SPPAO00500_RTN") == "N" || frmf_getParameter("SPPAO00500_RTN") == ""){
  668. return false;
  669. }
  670. return true;
  671. }
  672. function fOrgAmtSet(){
  673. var currow = eval(fCurrowChk());
  674. if (currow < 1) return false;
  675. ds_main_opmi.setColumn( 0, "sum_cardamt",eval(ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_cardamt"))) + eval(ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_precardamt"))));
  676. ds_main_opmi.setColumn( 0, "sum_cashamt",eval(ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_cashamt"))) + eval(ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_precashamt"))));
  677. ds_main_opmi.setColumn( 0, "sum_onlineamt",eval(ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_onlineamt"))) + eval(ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_preonlineamt"))));
  678. ds_main_opmi.setColumn( 0, "sum_uncoamt",eval(ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_uncoamt"))));
  679. /*
  680. ds_main_vaninfo.setColumn( 0, "cardamt",eval(ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_cardamt"))) + eval(ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_precardamt"))));
  681. ds_main_vaninfo.setColumn( 0, "cashamt",eval(ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_cashamt"))) + eval(ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_precashamt"))));
  682. ds_main_vaninfo.setColumn( 0, "onlineamt",eval(ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_onlineamt"))) + eval(ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_preonlineamt"))));
  683. */
  684. ds_main_vaninfo.setColumn( 0, "uncoamt",eval(ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_uncoamt"))));
  685. }
  686. function fCalcRcpt()
  687. {
  688. //대상금액과 각각의 금액sum 비교
  689. //각 항목별 display금액과 내부 인스턴스 sum금액비교
  690. //멀티수납되어진 내역에 대한 처리여부?
  691. var totamt = 0, cashamt = 0, cardamt = 0, onlineamt = 0, uncoamt = 0;
  692. totamt = eval(ds_main_opmi.getColumn(0, "sum_cardamt")) +
  693. eval(ds_main_opmi.getColumn(0, "sum_cashamt")) +
  694. eval(ds_main_opmi.getColumn(0, "sum_onlineamt")) +
  695. eval(ds_main_opmi.getColumn(0, "sum_uncoamt"));
  696. cardamt = eval(ds_main_vaninfo.getColumn(0, "cardamt"));
  697. //**
  698. // if (cardamt < 0){
  699. // cardamt = cardamt * -1;
  700. // }
  701. onlineamt = eval(ds_main_vaninfo.getColumn(0, "onlineamt"));
  702. uncoamt = eval(ds_main_vaninfo.getColumn(0, "uncoamt"));
  703. //21090 = 16090(기현금) + x(현금) + 0(기카드) + 0(카드) + 0(기온라인) + 0(온라인) + 21090(미수) => -16090
  704. //x = 21090 - (16090 + 0 + 0 + 0 + 0 + 21090) = -16090
  705. //21090 = 0(기현금) + x(현금) + 16090(기카드) + -16090(카드) + 0(기온라인) + 0(온라인) + 5000(미수) => 16090
  706. //x = 21090 - (0 + 16090 + (-16090) + 0 + 0 + 5000) = 16090
  707. //21090 = 16090(기현금) + x(현금) + 0(기카드) + 16090(카드) + 0(기온라인) + 0(온라인) + 5000(미수) => -16090
  708. //x = 21090 - (16090 + 0 + 16090 + 0 + 0 + 5000) = -16090
  709. cashamt = totamt - (eval(ds_main_opmi.getColumn(0, "sum_cardamt")) +
  710. cardamt +
  711. eval(ds_main_opmi.getColumn(0, "sum_cashamt")) +
  712. eval(ds_main_opmi.getColumn(0, "sum_onlineamt")) +
  713. onlineamt +
  714. uncoamt
  715. );
  716. //**
  717. //if (cashamt == 0) cashamt = totamt;
  718. ds_main_vaninfo.setColumn( 0, "cashamt",cashamt.toString());
  719. //model.refresh();
  720. }
  721. function fRcptPaperPrint(flag)
  722. {
  723. if (flag == "1"){ //수납, 취소 후 발행
  724. if (instance1.selectSingleNode("ds_hidden_rcv_h_rcpt_rcpt") == null){
  725. return false;
  726. }
  727. }
  728. //영수증 발행 데이터 세팅.
  729. ds_temp_receipt.clearData();
  730. dsf_makeValue( ds_temp_receipt, "pid", "string", "" );
  731. dsf_makeValue( ds_temp_receipt, "rcptdd", "string", "" );
  732. dsf_makeValue( ds_temp_receipt, "rcptno", "string", "" );
  733. dsf_makeValue( ds_temp_receipt, "rcptseqno", "string", "" );
  734. dsf_makeValue( ds_temp_receipt, "orddd", "string", "" );
  735. dsf_makeValue( ds_temp_receipt, "indd", "string", "" );
  736. dsf_makeValue( ds_temp_receipt, "insukind", "string", "" );
  737. dsf_makeValue( ds_temp_receipt, "ordtype", "string", "" );
  738. dsf_makeValue( ds_temp_receipt, "instcd", "string", "" );
  739. dsf_makeValue( ds_temp_receipt, "engYN", "string", "" );
  740. dsf_makeValue( ds_temp_receipt, "reprintYN", "string", "" );
  741. dsf_makeValue( ds_temp_receipt, "ordrcptflag", "string", "" );
  742. dsf_makeValue( ds_temp_receipt, "orddeptcd", "string", "" );
  743. dsf_makeValue( ds_temp_receipt, "orddrid", "string", "" );
  744. dsf_makeValue( ds_temp_receipt, "rcptsite", "string", "" );
  745. dsf_makeValue( ds_temp_receipt, "cretno", "string", "" );
  746. ds_temp_receipt.setColumn( 0, "rcptsite", "X");
  747. ds_temp_receipt.setColumn( 0, "engYN", ds_main_option.getColumn(0, "engreceipt"));
  748. //20080928 유정란 막음
  749. ds_temp_receipt.setColumn( 0, "reprintYN", ds_main_option.getColumn(0, "originyn"));
  750. // ds_temp_receipt.setColumn( 0, "reprintYN", "Y");
  751. ds_temp_receipt.setColumn( 0, "ordtype", "외래영수증");
  752. ds_temp_receipt.setColumn( 0, "ordrcptflag", "");
  753. if (flag == "1"){
  754. if (instance1.selectSingleNode("ds_hidden_rcv_h_rcpt_rcpt_pid") != null){
  755. for (a = 1; a <= ds_hidden_rcv_h_rcpt_rcpt.rowcount; a++){
  756. ds_temp_receipt.setColumn( 0, "orddd", ds_hidden_rcv_h_rcpt_rcpt.getColumn(a, "orddd"));
  757. ds_temp_receipt.setColumn( 0, "pid", ds_hidden_rcv_h_rcpt_rcpt.getColumn(a, "pid"));
  758. ds_temp_receipt.setColumn( 0, "rcptdd", ds_hidden_rcv_h_rcpt_rcpt.getColumn(a, "rcptdd"));
  759. ds_temp_receipt.setColumn( 0, "rcptno", ds_hidden_rcv_h_rcpt_rcpt.getColumn(a, "rcptno"));
  760. ds_temp_receipt.setColumn( 0, "rcptseqno", ds_hidden_rcv_h_rcpt_rcpt.getColumn(a, "rcptseqno"));
  761. ds_temp_receipt.setColumn( 0, "instcd", ds_hidden_rcv_h_rcpt_rcpt.getColumn(a, "instcd"));
  762. ds_temp_receipt.setColumn( 0, "orddeptcd", ds_hidden_rcv_h_rcpt_rcpt.getColumn(a, "orddeptcd"));
  763. ds_temp_receipt.setColumn( 0, "orddrid", ds_hidden_rcv_h_rcpt_rcpt.getColumn(a, "orddrid"));
  764. ds_temp_receipt.setColumn( 0, "cretno", ds_hidden_rcv_h_rcpt_rcpt.getColumn(a, "cretno"));
  765. //alert(ds_hidden_rcv_h_rcpt_rcpt.getColumn(a, "cretno"));
  766. frmf_modal("SPPAO01900", "SPPAO01900", ""-"", "", "1", "200", "200", "", "", "", "", "", "M");
  767. }
  768. }
  769. }
  770. else{
  771. for (b = 1; b <= ds_main_baseinfo_opmilist_opmi.rowcount; b++){
  772. if (ds_main_baseinfo_opmilist_opmi.getColumn(b, "opmi_chck") != "true") continue;
  773. ds_temp_receipt.setColumn( 0, "orddd", ds_main_baseinfo_opmilist_opmi.getColumn(b, "opmi_orddd"));
  774. ds_temp_receipt.setColumn( 0, "pid", ds_main_baseinfo_opmilist_opmi.getColumn(b, "opmi_pid"));
  775. ds_temp_receipt.setColumn( 0, "rcptdd", ds_main_baseinfo_opmilist_opmi.getColumn(b, "opmi_rcptdd"));
  776. ds_temp_receipt.setColumn( 0, "rcptno", ds_main_baseinfo_opmilist_opmi.getColumn(b, "opmi_rcptno"));
  777. ds_temp_receipt.setColumn( 0, "rcptseqno", ds_main_baseinfo_opmilist_opmi.getColumn(b, "opmi_rcptseqno"));
  778. ds_temp_receipt.setColumn( 0, "instcd", ds_main_baseinfo_opmilist_opmi.getColumn(b, "opmi_instcd"));
  779. ds_temp_receipt.setColumn( 0, "orddeptcd", ds_main_baseinfo_opmilist_opmi.getColumn(b, "opmi_orddeptcd"));
  780. ds_temp_receipt.setColumn( 0, "orddrid", ds_main_baseinfo_opmilist_opmi.getColumn(b, "opmi_orddrid"));
  781. ds_temp_receipt.setColumn( 0, "cretno", ds_main_baseinfo_opmilist_opmi.getColumn(b, "opmi_cretno"));
  782. frmf_modal("SPPAO01900", "SPPAO01900", ""-"", "", "1", "200", "200", "", "", "", "", "", "M");
  783. }
  784. }
  785. }
  786. function fCashAprvMake()
  787. {
  788. //이전 현금 영수증 내역은 무조건 취소시킨 후 신규승인
  789. var card_cardno = ds_main_vaninfo.getColumn(0, "cardno");
  790. if (ds_main_vaninfo.getColumn(0, "cardyn") != "N" || (card_cardno == null || card_cardno == "" || card_cardno == " " || card_cardno == "-")) return false;
  791. var currow = 0 ;
  792. for (i_true = 1; i_true <= ds_main_baseinfo_opmilist_opmi.rowcount; i_true++){
  793. if (ds_main_baseinfo_opmilist_opmi.getColumn(i_true, "opmi_chck")) == "true"){
  794. currow = i_true;
  795. break;
  796. }
  797. }
  798. ds_main_h_cash2_cash.clearData(); //*h_cash2
  799. model.makeNode("ds_main_h_cash2_cash[1]_cash_pid");
  800. model.makeNode("ds_main_h_cash2_cash[1]_cash_rcptdd");
  801. model.makeNode("ds_main_h_cash2_cash[1]_cash_rcptno");
  802. model.makeNode("ds_main_h_cash2_cash[1]_cash_rcptseqno");
  803. model.makeNode("ds_main_h_cash2_cash[1]_cash_seqno");
  804. model.makeNode("ds_main_h_cash2_cash[1]_cash_instcd");
  805. model.makeNode("ds_main_h_cash2_cash[1]_cash_rcptstat");
  806. model.makeNode("ds_main_h_cash2_cash[1]_cash_ordtype");
  807. model.makeNode("ds_main_h_cash2_cash[1]_cash_keyinptflag");
  808. model.makeNode("ds_main_h_cash2_cash[1]_cash_indinstflag");
  809. model.makeNode("ds_main_h_cash2_cash[1]_cash_qualcnfmflag");
  810. model.makeNode("ds_main_h_cash2_cash[1]_cash_qualcnfmno");
  811. model.makeNode("ds_main_h_cash2_cash[1]_cash_aprvflag");
  812. model.makeNode("ds_main_h_cash2_cash[1]_cash_aprvno");
  813. model.makeNode("ds_main_h_cash2_cash[1]_cash_aprvdd");
  814. model.makeNode("ds_main_h_cash2_cash[1]_cash_aprvtm");
  815. model.makeNode("ds_main_h_cash2_cash[1]_cash_cashamt");
  816. model.makeNode("ds_main_h_cash2_cash[1]_cash_rcptexecdd");
  817. model.makeNode("ds_main_h_cash2_cash[1]_cash_rcpttm");
  818. model.makeNode("ds_main_h_cash2_cash[1]_cash_rcptrid");
  819. model.makeNode("ds_main_h_cash2_cash[1]_cash_preamtyn");
  820. model.makeNode("ds_main_h_cash2_cash[1]_cash_innrtretyn");
  821. model.makeNode("ds_main_h_cash2_cash[1]_cash_remfact");
  822. model.makeNode("ds_main_h_cash2_cash[1]_cash_fstrgstrid");
  823. model.makeNode("ds_main_h_cash2_cash[1]_cash_fstrgstdt");
  824. model.makeNode("ds_main_h_cash2_cash[1]_cash_lastupdtrid");
  825. model.makeNode("ds_main_h_cash2_cash[1]_cash_lastupdtdt");
  826. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_pid",ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_pid")));
  827. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_rcptdd","-");
  828. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_rcptno","0");
  829. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_rcptseqno","1");
  830. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_seqno","1");
  831. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_instcd",ds_hidden_session.getColumn(0, "sess_posinstcd"));
  832. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_rcptstat","Y");
  833. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_ordtype",ds_main_baseinfo_opmilist_opmi.getColumn(currow, "opmi_ordtype")));
  834. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_keyinptflag",ds_main_vaninfo.getColumn(0, "keyinptflag"));
  835. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_indinstflag",ds_main_vaninfo.getColumn(0, "indinstflag"));
  836. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_qualcnfmflag",ds_main_vaninfo.getColumn(0, "qualcnfmflag"));
  837. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_qualcnfmno",ds_main_vaninfo.getColumn(0, "cardno"));
  838. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_aprvflag","41"); //승인(41),취소(51) 구분
  839. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_aprvno","");
  840. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_aprvdd","");
  841. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_aprvtm","");
  842. //ds_main_h_cash2.setColumn( 0, "cash[1]_cash_cashamt",ds_main_vaninfo.getColumn(0, "cashamt"));
  843. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_cashamt",(eval(ds_main_vaninfo.getColumn(0, "cashamt")) +
  844. eval(ds_main_opmi.getColumn(0, "sum_cashamt"))).toString());
  845. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_rcptexecdd","");
  846. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_rcpttm","");
  847. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_rcptrid","");
  848. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_preamtyn","");
  849. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_innrtretyn","");
  850. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_remfact","");
  851. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_fstrgstrid","");
  852. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_fstrgstdt","");
  853. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_lastupdtrid","");
  854. ds_main_h_cash2.setColumn( 0, "cash[1]_cash_lastupdtdt","");
  855. }
  856. function fVanApp(cardcashgb,flag)
  857. {
  858. var path1 = "", path2 = "", path3 = "", path4 = "", path5 = "", path6 = "";
  859. var txt1 = "", txt2 = "";
  860. var ordergb = "", ordergb2 = "";
  861. if (flag == "I")
  862. {
  863. path1 = "ds_main_h_cash2_cash";
  864. path2 = "_cash_";
  865. path3 = "_cash_cashamt";
  866. path4 = "_cash_qualcnfmno";
  867. path5 = "qualcnfmflag";
  868. path6 = "indinstflag";
  869. txt1 = "현금";
  870. }
  871. else if (flag == "D")
  872. {
  873. path1 = "ds_main_baseinfo_cashlist_cash"; //"ds_main_c_cash_cash" 에서 변경
  874. path2 = "_cash_";
  875. path3 = "_cash_cashamt";
  876. path4 = "_cash_qualcnfmno";
  877. path5 = "qualcnfmflag";
  878. path6 = "indinstflag";
  879. txt1 = "현금";
  880. }
  881. /*
  882. 거래구분 (11:신용카드승인요청, 12:신용카드승인응답,
  883. 21:신용카드취소요청, 22:신용카드취소응답,
  884. 31:수표조회요청, 32:수표조회응답,
  885. 41:현금영수증승인요청,42:현금영수증승인응답,
  886. 51:현금영수증취소요청,52:현금영수증취소응답)
  887. */
  888. for (catch_i = 1; catch_i <= getNodesetCount(path1); catch_i++)
  889. {
  890. if (flag == "I" && model.getValue(path1 + "["+ catch_i +"]" + path2 + "rcptdd").length == 8) continue;
  891. //입금시 자동승인이 일부만 성공할 경우 실패한 건만 재승인 받도록 하기 위해서 승인일자가 들어온 경우 넘긴다
  892. if (flag == "I" && model.getValue(path1 + "["+ catch_i +"]" + path2 + "aprvdd").length == 8) continue;
  893. if (flag == "D" && model.getValue(path1 + "["+ catch_i +"]" + path2 + "rcptstat") != "X") continue;
  894. if (model.getValue(path1 + "["+ catch_i +"]" + path2 + "aprvdd").length == 8) //원승인일자 존재 => 취소
  895. {
  896. ordergb = "51";
  897. ordergb2 = "52";
  898. }
  899. else //승인
  900. {
  901. ordergb = "41";
  902. ordergb2 = "42";
  903. }
  904. //승인_취소
  905. fAppCardVanData("01" //data1 //vangb van사구분
  906. ,model.getValue(path1 + "["+ catch_i +"]" + path2 + "aprvflag") //data2 //ordergb 거래구분
  907. ,utlf_getCurrentDate() //data3 //mdate 회계일자
  908. ,model.getValue(path1 + "["+ catch_i +"]" + path2 + "pid") //data4 //pano 등록번호
  909. ,model.getValue(path1 + "["+ catch_i +"]" + path2 + "ordtype") //data5 //iogb 입외구분
  910. ,"" //data6 //deptcode 진료과코드
  911. ,"" //data7 //diagdate 진료일자
  912. ,ds_hidden_session.getColumn(0, "sess_userid") //data8 //clientid 수납자
  913. ,model.getValue(path1 + "["+ catch_i +"]" + path2 + "keyinptflag") //data9 //entrymode 입력구분
  914. ,"" //data10 //track2data 트랙data
  915. ,model.getValue(path1 + "["+ catch_i +"]" + path4) //data11 //cardnumber 카드번호 or qualcnfmno
  916. ,model.getValue(path1 + "["+ catch_i +"]" + path2 + path5) //data12 //cardperiod 유효기간 or qualcnfmflag
  917. ,model.getValue(path1 + "["+ catch_i +"]" + path2 + path6) //data13 //carddivide 할부개월수 or indinstflag
  918. ,model.getValue(path1 + "["+ catch_i +"]" + path3) //data14 //netamt 금액
  919. ,model.getValue(path1 + "["+ catch_i +"]" + path2 + "aprvdd") //data15 //oldappdate 원거래승인일자(취소시)
  920. ,model.getValue(path1 + "["+ catch_i +"]" + path2 + "aprvtm") //data16 //oldapptime 원거래승인시간(취소시)
  921. ,model.getValue(path1 + "["+ catch_i +"]" + path2 + "aprvno") //data17 //oldappno 원거래승인번호(취소시)
  922. );
  923. if (ds_tmp_appvanif.getColumn(0, "replystat") != "0000" && ds_tmp_appvanif.getColumn(0, "replystat") != "9999") //9999 기취소거래
  924. {
  925. sysf_messageBox(txt1 + " " + " " + "승인실패 => "+ ds_tmp_appvanif.getColumn(0, "cardname") ,"E999","");
  926. return false;
  927. }
  928. else {
  929. if (ds_tmp_appvanif.getColumn(0, "replystat") == "0000" )
  930. {
  931. model.setValue(path1 + "["+ catch_i +"]" + path2 + "aprvdd", ds_tmp_appvanif.getColumn(0, "approvaldate")); //승인일자
  932. model.setValue(path1 + "["+ catch_i +"]" + path2 + "aprvtm", ds_tmp_appvanif.getColumn(0, "approvaltime")); //승인시간
  933. model.setValue(path1 + "["+ catch_i +"]" + path2 + "aprvno", ds_tmp_appvanif.getColumn(0, "approvalno")); //승인번호
  934. model.setValue(path1 + "["+ catch_i +"]" + path2 + "aprvflag",ordergb2); //승인취소구분
  935. if (flag == "D"){
  936. model.setValue(path1 + "["+ catch_i +"]" + path2 + "rcptstat","D");
  937. var cashamt = eval(model.getValue(path1 + "["+ catch_i +"]" + path3)) * -1;
  938. model.setValue(path1 + "["+ catch_i +"]" + path3, cashamt);
  939. }
  940. }
  941. }
  942. } //for
  943. //if (flag == "I") ds_main_baseinfo_cashlist.copyData(ds_main_h_cash2);
  944. //else if (flag == "D"){
  945. if (flag == "I"){
  946. var cashcnt = ds_main_baseinfo_cashlist_cash.rowcount;
  947. var cashamt = 0;
  948. for (h = 1; h <= ds_main_h_cash2_cash.rowcount; h++){
  949. cashcnt++;
  950. model.makeNode("ds_main_baseinfo_cashlist_cash["+ cashcnt +"]");
  951. ds_main_baseinfo_cashlist_cash.copyRow( cashcnt, ds_main_h_cash2_cash, h);
  952. }
  953. }
  954. }
  955. function fCashAprvCncl(flag){
  956. if (ds_main_baseinfo_cashlist_cash.rowcount;> 0){
  957. var cashcnt = ds_main_baseinfo_cashlist_cash.rowcount;
  958. for (i = 1; i <= ds_main_baseinfo_cashlist_cash.rowcount; i++){
  959. if (ds_main_baseinfo_cashlist_cash.getColumn(i, "cash_rcptstat") == "Y" && eval(ds_main_baseinfo_cashlist_cash.getColumn(i, "cash_cashamt")) > 0){
  960. if (flag == "D" &&
  961. eval(ds_main_baseinfo_opmilist_opmi.getColumn(eval(fCurrowChk()), "opmi_cashamt")) !=
  962. eval(ds_main_baseinfo_cashlist_cash.getColumn(i, "cash_cashamt"))) continue;
  963. cashcnt++;
  964. model.makeNode("ds_main_baseinfo_cashlist_cash["+ cashcnt +"]");
  965. ds_main_baseinfo_cashlist_cash.copyRow( cashcnt, ds_main_baseinfo_cashlist_cash, i);
  966. ds_main_baseinfo_cashlist.setColumn( i , "cash_rcptstat","C");
  967. ds_main_baseinfo_cashlist.setColumn( cashcnt , "cash_rcptstat","X"); //정상취소되고 나면 D로 변경
  968. ds_main_baseinfo_cashlist.setColumn( cashcnt , "cash_rcptdd","");
  969. ds_main_baseinfo_cashlist.setColumn( cashcnt , "cash_rcptno","0");
  970. ds_main_baseinfo_cashlist.setColumn( cashcnt , "cash_rcptseqno","1");
  971. ds_main_baseinfo_cashlist.setColumn( cashcnt , "cash_aprvflag","51");
  972. }
  973. }
  974. if (fVanApp("cash","D") == false) return false;
  975. }
  976. }
  977. function fAfterChangeCardNo(){
  978. if ( ds_main_vaninfo.getColumn(0, "cardyn")=="Y" ) {
  979. if ((ipt_cardno.text).length >16) {
  980. //16자리보다 크면,
  981. // "="이 있으면, swipe
  982. if ( (ipt_cardno.text).indexOf("=") >0 ) {
  983. var vSwipeData = "";
  984. var vCardno_array = "";
  985. var vCardno = "";
  986. vSwipeData = ipt_cardno.text;
  987. // swipe 시 첫글자에 ?
  988. if ( vSwipeData.indexOf("?") >= 0 ) {
  989. vSwipeData = (vSwipeData).substr(1,37);
  990. }
  991. if ( vSwipeData.indexOf("/") >= 0 ) {
  992. vSwipeData = (vSwipeData).substr(1,37);
  993. }
  994. ds_main_vaninfo.setColumn( 0, "swipedata", vSwipeData );
  995. vCardno_array = vSwipeData.split("=");
  996. vCardno = vCardno_array[0];
  997. // swipe 시 첫글자에 ?
  998. if ( vCardno.indexOf("?") >= 0 ) {
  999. vCardno = (vCardno).substr(1,16);
  1000. }
  1001. if ( vCardno.indexOf("/") >= 0 ) {
  1002. vCardno = (vCardno).substr(1,16);
  1003. }
  1004. //유효일자
  1005. var vValiterm = (vCardno_array[1]).substr(0,4);
  1006. ds_main_vaninfo.setColumn( 0, "cardno", vCardno);
  1007. ds_main_vaninfo.setColumn( 0, "keyinptflag","S");
  1008. ds_main_vaninfo.setColumn( 0, "valiterm",vValiterm);
  1009. ds_main_vaninfo.setColumn( 0, "allotmm","00");
  1010. //model.refresh();
  1011. ipt_valiterm.setFocus();
  1012. }
  1013. }
  1014. else if ((ipt_cardno.text).length ==16) {
  1015. ds_main_vaninfo.setColumn( 0, "cardno",ipt_cardno.text);
  1016. ds_main_vaninfo.setColumn( 0, "keyinptflag","K");
  1017. ds_main_vaninfo.setColumn( 0, "allotmm","00");
  1018. //model.refresh();
  1019. ipt_valiterm.setFocus();
  1020. }
  1021. } //if ( ds_init_option.getColumn(0, "cardyn")=="Y" ) {
  1022. else if ( ds_main_vaninfo.getColumn(0, "cardyn")=="N" ) {
  1023. rdo_indyn.enable = true;
  1024. ds_main_vaninfo.setColumn( 0, "indinstflag","00"); //지출증빙 세팅
  1025. //현금영수증 선택시
  1026. if ((ipt_cardno.text).length >16) {
  1027. //16자리보다 크면,
  1028. // "="이 있으면, swipe
  1029. if ( (ipt_cardno.text).indexOf("=") >0 ) {
  1030. var vSwipeData = "";
  1031. var vCardno_array = "";
  1032. var vCardno = "";
  1033. //vSwipeData = ds_main_outrgst_m_etc.getColumn(0, "cardno");
  1034. vSwipeData = ipt_cardno.text;
  1035. // swipe 시 첫글자에 ?
  1036. if ( vSwipeData.indexOf("?") >= 0 ) {
  1037. vSwipeData = (vSwipeData).substr(1,37);
  1038. }
  1039. if ( vSwipeData.indexOf("/") >= 0 ) {
  1040. vSwipeData = (vSwipeData).substr(1,37);
  1041. }
  1042. vSwipeData = vSwipeData.getRightPad(40, " ");
  1043. ds_main_vaninfo.setColumn( 0, "swipedata", vSwipeData );
  1044. vCardno_array = vSwipeData.split("=");
  1045. vCardno = vCardno_array[0];
  1046. // swipe 시 첫글자에 ?
  1047. if ( vCardno.indexOf("?") >= 0 ) {
  1048. vCardno = (vCardno).substr(1,16);
  1049. }
  1050. //유효일자
  1051. var vValiterm = (vCardno_array[1]).substr(0,4);
  1052. ds_main_vaninfo.setColumn( 0, "cardno", vCardno);
  1053. ds_main_vaninfo.setColumn( 0, "keyinptflag","S");
  1054. //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  1055. ds_main_vaninfo.setColumn( 0, "qualcnfmflag","3");
  1056. //현금영수증일때는 할부개월에 법인_개인구분(개인:00 사업자:01)
  1057. ds_main_vaninfo.setColumn( 0, "allotmm",ds_main_vaninfo.getColumn(0, "indinstflag") );
  1058. //model.refresh();
  1059. ipt_cashamt.setFocus();
  1060. }
  1061. }
  1062. else if ((ipt_cardno.text).length ==16) {
  1063. var vSwipeData = "";
  1064. vSwipeData = ds_main_vaninfo.getColumn(0, "cardno")+"=";
  1065. vSwipeData = vSwipeData.getRightPad(40, " ");
  1066. ds_main_vaninfo.setColumn( 0, "swipedata",vSwipeData);
  1067. ds_main_vaninfo.setColumn( 0, "keyinptflag","S");
  1068. //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  1069. ds_main_vaninfo.setColumn( 0, "qualcnfmflag","3");
  1070. //model.refresh();
  1071. ipt_cashamt.setFocus();
  1072. }
  1073. else {
  1074. //16자리보다 작으면, 주민번호 혹은 전화번호 사업장번호
  1075. var vSwipeData = "";
  1076. vSwipeData = ds_main_vaninfo.getColumn(0, "cardno")+"=";
  1077. vSwipeData = vSwipeData.getRightPad(40, " ");
  1078. ds_main_vaninfo.setColumn( 0, "swipedata",vSwipeData);
  1079. ds_main_vaninfo.setColumn( 0, "keyinptflag","K");
  1080. //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  1081. //길이가 13자리이면,주민번호
  1082. if ( (ds_main_vaninfo.getColumn(0, "cardno")).length==13 ) {
  1083. ds_main_vaninfo.setColumn( 0, "qualcnfmflag","1");
  1084. }
  1085. else {
  1086. //앞 3자리 010,011,016,017,018,019 이면 전화
  1087. if ( (ds_main_vaninfo.getColumn(0, "cardno")).substr(0,3) == "010" ||
  1088. (ds_main_vaninfo.getColumn(0, "cardno")).substr(0,3) == "011" ||
  1089. (ds_main_vaninfo.getColumn(0, "cardno")).substr(0,3) == "016" ||
  1090. (ds_main_vaninfo.getColumn(0, "cardno")).substr(0,3) == "017" ||
  1091. (ds_main_vaninfo.getColumn(0, "cardno")).substr(0,3) == "018" ||
  1092. (ds_main_vaninfo.getColumn(0, "cardno")).substr(0,3) == "019"
  1093. ) {
  1094. ds_main_vaninfo.setColumn( 0, "qualcnfmflag","2");
  1095. }
  1096. else {
  1097. //16자리 길이 미만일 때 13자리 주민번호 제외 후 핸드폰 앞자리 체크 나머지는 사업장
  1098. ds_main_vaninfo.setColumn( 0, "qualcnfmflag","4");
  1099. ds_main_vaninfo.setColumn( 0, "indinstflag","01"); //지출증빙
  1100. }
  1101. } //length ==13
  1102. //model.refresh();
  1103. ipt_cashamt.setFocus();
  1104. }//lenth ==16
  1105. }//cardyn ==N
  1106. else{
  1107. if ((ipt_cardno.text).length >16) {
  1108. //16자리보다 크면,
  1109. // "="이 있으면, swipe
  1110. if ( (ipt_cardno.text).indexOf("=") >0 ) {
  1111. var vSwipeData = "";
  1112. var vCardno_array = "";
  1113. var vCardno = "";
  1114. //vSwipeData = model.getValue(cardno_ref);
  1115. vSwipeData = ipt_cardno.text;
  1116. // swipe 시 첫글자에 ?
  1117. if ( vSwipeData.indexOf("?") >= 0 ) {
  1118. vSwipeData = (vSwipeData).substr(1,37);
  1119. }
  1120. if ( vSwipeData.indexOf("/") >= 0 ) {
  1121. vSwipeData = (vSwipeData).substr(1,37);
  1122. }
  1123. ds_main_vaninfo.setColumn( 0, "swipedata", vSwipeData );
  1124. vCardno_array = vSwipeData.split("=");
  1125. vCardno = vCardno_array[0];
  1126. // swipe 시 첫글자에 ?
  1127. if ( vCardno.indexOf("?") >= 0 ) {
  1128. vCardno = (vCardno).substr(1,16);
  1129. }
  1130. if ( vCardno.indexOf("/") >= 0 ) {
  1131. vCardno = (vCardno).substr(1,16);
  1132. }
  1133. //유효일자
  1134. var vValiterm = (vCardno_array[1]).substr(0,4);
  1135. //alert( (vCardno_array[1]) );
  1136. ds_main_vaninfo.setColumn( 0, "cardno", vCardno);
  1137. ds_main_vaninfo.setColumn( 0, "keyinptflag","S");
  1138. ds_main_vaninfo.setColumn( 0, "valiterm",vValiterm);
  1139. ds_main_vaninfo.setColumn( 0, "allotmm","00");
  1140. //model.refresh();
  1141. if( vValiterm.length == 4 ){
  1142. ipt_allotmm.setFocus();
  1143. }else{
  1144. ipt_valiterm.setFocus();
  1145. }
  1146. }
  1147. }
  1148. else if ((ipt_cardno.text).length == 16) {
  1149. ds_main_vaninfo.setColumn( 0, "cardno",ipt_cardno.text);
  1150. ds_main_vaninfo.setColumn( 0, "keyinptflag","K");
  1151. ds_main_vaninfo.setColumn( 0, "allotmm","00");
  1152. //model.refresh();
  1153. ipt_valiterm.setFocus();
  1154. }
  1155. else return false;
  1156. //입금금액이 존재하는 경우만 실행
  1157. ds_main_vaninfo.setColumn( 0, "cardyn","Y");
  1158. var Sum_amt = 0;
  1159. //선택된 것들에 대한 수납할 금액 SUM
  1160. for (var i = 1; i <= ds_send_s_opmi_opmi.rowcount; i++ ) {
  1161. //현금금액(순수현금)을 SUM 하여
  1162. //카드선택된 경우, 카드금액으로 SUM
  1163. Sum_amt = Sum_amt + eval(ds_send_s_opmi_opmi.getColumn(i, "opmi_cashamt"));
  1164. }
  1165. if ( ds_main_vaninfo.getColumn(0, "cardyn") == "Y" ) {
  1166. ds_main_vaninfo.setColumn( 0, "cardamt", (eval(ds_main_vaninfo.getColumn(0, "cashamt")) +
  1167. eval(ds_main_opmi.getColumn(0, "sum_cashamt"))).toString());
  1168. //ds_main_vaninfo.setColumn( 0, "cashamt", "0");
  1169. fCalcRcpt();
  1170. /*
  1171. ds_main_vaninfo.setColumn( 0, "cardamt", Sum_amt);
  1172. ds_main_vaninfo.setColumn( 0, "cashamt", "0");
  1173. */
  1174. }
  1175. //현금선택되어 있으면, 현금금액을 SUM
  1176. else {
  1177. if ( ds_main_vaninfo.getColumn(0, "cardyn") == "N" ){
  1178. //주민번호 디폴트로 세팅
  1179. ds_main_vaninfo.setColumn( 0, "cardno", ds_send_s_opmi_opmi.getColumn(0, "opmi_rrgstno1")
  1180. +ds_send_s_opmi_opmi.getColumn(0, "opmi_rrgstno2"));
  1181. }
  1182. else{
  1183. ds_main_vaninfo_cardno.clearData(); ds_main_vaninfo_cardno.addRow();
  1184. }
  1185. /*
  1186. ds_main_vaninfo.setColumn( 0, "cashamt", Sum_amt);
  1187. ds_main_vaninfo.setColumn( 0, "cardamt", "0");
  1188. */
  1189. if (ds_main_baseinfo_cardlist_card.rowcount;< 1){
  1190. ds_main_vaninfo.setColumn( 0, "cardamt", "0");
  1191. ds_main_vaninfo.setColumn( 0, "cashamt", (
  1192. (
  1193. eval(ds_main_opmi.getColumn(0, "sum_cardamt")) +
  1194. eval(ds_main_opmi.getColumn(0, "sum_cashamt")) +
  1195. eval(ds_main_opmi.getColumn(0, "sum_onlineamt")) +
  1196. eval(ds_main_opmi.getColumn(0, "sum_uncoamt"))
  1197. ) -
  1198. (
  1199. eval(ds_main_opmi.getColumn(0, "sum_cardamt")) +
  1200. eval(ds_main_opmi.getColumn(0, "sum_cashamt")) +
  1201. eval(ds_main_opmi.getColumn(0, "sum_onlineamt")) +
  1202. eval(ds_main_vaninfo.getColumn(0, "cardamt")) +
  1203. eval(ds_main_vaninfo.getColumn(0, "onlineamt")) +
  1204. eval(ds_main_vaninfo.getColumn(0, "uncoamt"))
  1205. )
  1206. ).toString());
  1207. }
  1208. }
  1209. //model.refresh();
  1210. } //else C
  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. frmf_setParameter("SPPAO00503_PARM",sValue);//1.전번 2.민번
  1222. frmf_modal("../../.._pam_inordamtmngtweb_xrw_SPPAO00503", "SPPAO00503", ""-"", "", "1", "", "", "", "", "sysmenu:hidden", "", "", "M");
  1223. var SPPAO00503_RTN = frmf_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. ds_main_vaninfo.setColumn( 0, "cardyn" , "N");
  1229. frdo_cardyn();
  1230. ds_main_vaninfo.setColumn( 0, "cardno", array_parm[2]);
  1231. btn_rcpt.setFocus();
  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. ipt_rrgstno2.setFocus();
  1241. }
  1242. }else{
  1243. sysf_messageBox("팝업 비정상종료","E999");
  1244. }
  1245. }
  1246. function fipt_cashamt() {
  1247. obj.updateToDataset();
  1248. if(ds_main_vaninfo.getColumn(0, "cashamt") == "") ds_main_vaninfo.setColumn( 0, "cashamt" ,"0");
  1249. if(ds_main_vaninfo.getColumn(0, "cardamt") == "") ds_main_vaninfo.setColumn( 0, "cardamt" ,"0");
  1250. if(ds_main_vaninfo.getColumn(0, "onlineamt") == "") ds_main_vaninfo.setColumn( 0, "onlineamt" ,"0");
  1251. if(ds_main_vaninfo.getColumn(0, "uncoamt") == "") ds_main_vaninfo.setColumn( 0, "uncoamt" ,"0");
  1252. ds_main_vaninfo.setColumn( 0, "cashamt", 0
  1253. - parseInt(ds_main_vaninfo.getColumn(0, "cardamt").removeMask(","))
  1254. - parseInt(ds_main_vaninfo.getColumn(0, "onlineamt").removeMask(","))
  1255. - parseInt(ds_main_vaninfo.getColumn(0, "uncoamt").removeMask(","))
  1256. );
  1257. //ipt_cardamt.refresh();
  1258. //ipt_cashamt.refresh();
  1259. //ipt_onlineamt.refresh();
  1260. //ipt_uncoamt.refresh();
  1261. }
  1262. function fipt_cardamt() {
  1263. obj.updateToDataset();
  1264. if(ds_main_vaninfo.getColumn(0, "cashamt") == "") ds_main_vaninfo.setColumn( 0, "cashamt" ,"0");
  1265. if(ds_main_vaninfo.getColumn(0, "cardamt") == "") ds_main_vaninfo.setColumn( 0, "cardamt" ,"0");
  1266. if(ds_main_vaninfo.getColumn(0, "onlineamt") == "") ds_main_vaninfo.setColumn( 0, "onlineamt" ,"0");
  1267. if(ds_main_vaninfo.getColumn(0, "uncoamt") == "") ds_main_vaninfo.setColumn( 0, "uncoamt" ,"0");
  1268. ds_main_vaninfo.setColumn( 0, "cardamt", 0
  1269. - parseInt(ds_main_vaninfo.getColumn(0, "cashamt").removeMask(","))
  1270. - parseInt(ds_main_vaninfo.getColumn(0, "onlineamt").removeMask(","))
  1271. - parseInt(ds_main_vaninfo.getColumn(0, "uncoamt").removeMask(","))
  1272. );
  1273. //ipt_cardamt.refresh();
  1274. //ipt_cashamt.refresh();
  1275. //ipt_onlineamt.refresh();
  1276. //ipt_uncoamt.refresh();
  1277. }
  1278. function frdo_cardyn() {
  1279. //카드, 통장, 미수 내역이 없을 경우만 라디오 버튼으로 선택해서 금액 계산 가능
  1280. if ( ds_main_vaninfo.getColumn(0, "cardyn") == "Y" ) {
  1281. if (ds_main_baseinfo_cardlist_card.rowcount;> 0){
  1282. ds_main_vaninfo.setColumn( 0, "cardyn","C");
  1283. ds_main_vaninfo_cardno.clearData(); ds_main_vaninfo_cardno.addRow();
  1284. //model.refresh();
  1285. sysf_messageBox("이미 적용된 카드건이 존재합니다.카드팝업으로 처리하십시요!","E999","");
  1286. return;
  1287. }
  1288. if (eval(ds_main_vaninfo.getColumn(0, "cashamt")) == 0 && eval(ds_main_opmi.getColumn(0, "sum_cashamt")) == 0){
  1289. ds_main_vaninfo.setColumn( 0, "cardyn","C");
  1290. ds_main_vaninfo_cardno.clearData(); ds_main_vaninfo_cardno.addRow();
  1291. //model.refresh();
  1292. sysf_messageBox("카드로 적용할 현금금액이 없습니다!","E999","");
  1293. return;
  1294. }
  1295. }
  1296. else if ( ds_main_vaninfo.getColumn(0, "cardyn") == "N" ) {
  1297. if (ds_main_baseinfo_cardlist_card.rowcount;> 0 && eval(ds_main_vaninfo.getColumn(0, "cashamt")) == 0){
  1298. ds_main_vaninfo.setColumn( 0, "cardyn","C");
  1299. ds_main_vaninfo_cardno.clearData(); ds_main_vaninfo_cardno.addRow();
  1300. //model.refresh();
  1301. sysf_messageBox("현금영수증 적용할 현금금액이 없습니다! 카드 또는 미수 또는 통장입금액을 취소 후 현금영수증을 선택하십시요","E999","");
  1302. return;
  1303. }
  1304. }
  1305. var Sum_amt = 0;
  1306. //선택된 것들에 대한 수납할 금액 SUM
  1307. for (var i = 1; i <= ds_send_s_opmi_opmi.rowcount; i++ ) {
  1308. //현금금액(순수현금)을 SUM 하여
  1309. //카드선택된 경우, 카드금액으로 SUM
  1310. Sum_amt = Sum_amt + eval(ds_send_s_opmi_opmi.getColumn(i, "opmi_cashamt"));
  1311. }
  1312. if ( ds_main_vaninfo.getColumn(0, "cardyn") == "Y" ) {
  1313. //ds_main_vaninfo.setColumn( 0, "cardamt", Sum_amt);
  1314. ds_main_vaninfo.setColumn( 0, "cardamt", (eval(ds_main_vaninfo.getColumn(0, "cashamt")) +
  1315. eval(ds_main_opmi.getColumn(0, "sum_cashamt"))).toString());
  1316. //ds_main_vaninfo.setColumn( 0, "cashamt", "0");
  1317. fCalcRcpt();
  1318. }
  1319. //현금선택되어 있으면, 현금금액을 SUM
  1320. else {
  1321. if ( ds_main_vaninfo.getColumn(0, "cardyn") == "N"){
  1322. //주민번호 디폴트로 세팅
  1323. /*
  1324. ds_main_vaninfo.setColumn( 0, "cardno", ds_send_s_opmi_opmi.getColumn(0, "opmi_rrgstno1")
  1325. +ds_send_s_opmi_opmi.getColumn(0, "opmi_rrgstno2"));
  1326. //model.refresh();
  1327. event.keyCode = "13";
  1328. ipt_cardno.dispatch("onkeypress");//enter key 처리하여, 현금영수증관련 값 세팅(현금영수증번호구분,소득공제)
  1329. */
  1330. }
  1331. else{
  1332. ds_main_vaninfo_cardno.clearData(); ds_main_vaninfo_cardno.addRow();
  1333. ds_main_vaninfo_indinstflag.clearData(); ds_main_vaninfo_indinstflag.addRow();
  1334. ds_main_vaninfo_keyinptflag.clearData(); ds_main_vaninfo_keyinptflag.addRow();
  1335. ds_main_vaninfo_qualcnfmflag.clearData(); ds_main_vaninfo_qualcnfmflag.addRow();
  1336. ds_main_vaninfo_valiterm.clearData(); ds_main_vaninfo_valiterm.addRow();
  1337. ds_main_vaninfo_allotmm.clearData(); ds_main_vaninfo_allotmm.addRow();
  1338. //h_cash2 clear
  1339. if (instance1.selectSingleNode("ds_main_h_cash2_cash") != null)
  1340. {
  1341. ds_main_h_cash2_cash.clearData();
  1342. }
  1343. }
  1344. /*
  1345. ds_main_vaninfo.setColumn( 0, "cashamt", Sum_amt);
  1346. ds_main_vaninfo.setColumn( 0, "cardamt", "0");
  1347. */
  1348. if (ds_main_baseinfo_cardlist_card.rowcount;< 1){
  1349. ds_main_vaninfo.setColumn( 0, "cardamt", "0");
  1350. ds_main_vaninfo.setColumn( 0, "cashamt", (
  1351. (
  1352. eval(ds_main_opmi.getColumn(0, "sum_cardamt")) +
  1353. eval(ds_main_opmi.getColumn(0, "sum_cashamt")) +
  1354. eval(ds_main_opmi.getColumn(0, "sum_onlineamt")) +
  1355. eval(ds_main_opmi.getColumn(0, "sum_uncoamt"))
  1356. ) -
  1357. (
  1358. eval(ds_main_opmi.getColumn(0, "sum_cardamt")) +
  1359. eval(ds_main_opmi.getColumn(0, "sum_cashamt")) +
  1360. eval(ds_main_opmi.getColumn(0, "sum_onlineamt")) +
  1361. eval(ds_main_vaninfo.getColumn(0, "cardamt")) +
  1362. eval(ds_main_vaninfo.getColumn(0, "onlineamt")) +
  1363. eval(ds_main_vaninfo.getColumn(0, "uncoamt"))
  1364. )
  1365. ).toString());
  1366. }
  1367. }
  1368. ipt_cardno.setFocus();
  1369. //model.refresh();
  1370. }
  1371. ]]></Script>