SMPAO01700.js 65 KB

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