SMAHA02100.js 103 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147
  1. /************************************************************************************************
  2. @author : 채희철
  3. @version : 2007-07-01
  4. 각종 List와 정보들을 초기화 시킨다.
  5. *************************************************************************************************/
  6. var gRcptInfoPath = "/root/main/info/rcptinfo";
  7. var gPatInfoPath = "/root/main/info/patinfo";
  8. var gAcptInfoPath = "/root/main/info/acptinfo";
  9. var gSendPath = "/root/send";
  10. var gAcptPath = "/root/main/list/acpt";
  11. var gPkgPath = "/root/main/list/pkglist";
  12. var gAcptDtlPath = "/root/main/list/acptdtl";
  13. var gRcptDtltPath = "/root/main/list/rcptdtl";
  14. var gChngPath = "/root/main/info/chnginfo";
  15. var gCardDtlInfoPath = "/root/main/info/cardinfo";
  16. var gCashDtlInfoPath = "/root/main/info/cashinfo";
  17. var gHiddenPath = "/root/hidden/";
  18. /************************************************************************************************
  19. @author : 채희철
  20. @version : 2007-07-01
  21. 수납과 관련된 정보들을 reset시킨다.
  22. "/root/main/info/rcptinfo/opmi"노드는 구체적인 값 필드들을 가지고 있기에 remove시키지 않고
  23. 나머지는 모두 remove시킨후 copynode해온다.
  24. 계산에 의해서 결정된 수납 결과 값과 이미 수납된 자료들에 대한 처리가 이원화 되기 때문에 이렇게 처리 한다.
  25. ************************************************************************************************/
  26. function fInitRcptInfo(){
  27. model.resetInstanceNode(gRcptInfoPath + "/opmi");
  28. //rcpt detail clear
  29. model.removeNodeset(gRcptInfoPath + "/s_card/card");
  30. model.removeNodeset(gRcptInfoPath + "/s_cash/cash");
  31. model.removeNodeset(gRcptInfoPath + "/s_dcgm/dcgm");
  32. model.removeNodeset(gRcptInfoPath + "/s_unco/unco");
  33. model.removeNodeset(gRcptInfoPath + "/s_bank/bank");
  34. //RcptDetail List Clear
  35. model.removeNodeset(gRcptDtltPath + "/cardlist");
  36. model.removeNodeset(gRcptDtltPath + "/cashlist");
  37. model.removeNodeset(gRcptDtltPath + "/banklist");
  38. model.removeNodeset(gRcptDtltPath + "/dcgmlist");
  39. model.removeNodeset(gRcptDtltPath + "/uncolist");
  40. //Change detail clear
  41. model.resetInstanceNode(gChngPath);
  42. model.resetInstanceNode(gCardDtlInfoPath);
  43. model.resetInstanceNode(gCashDtlInfoPath);
  44. //model.refresh(); 2008.09.26
  45. }
  46. /************************************************************************************************
  47. @author : 채희철
  48. @version : 2007-07-01
  49. 기초정보코드들을 로드한다.
  50. ************************************************************************************************/
  51. function fGetBaseInfo(){
  52. // 계산상태, 접수상태, 수가계산상태
  53. zbcfGetCodeList( new Array("P0030","A0107","P0049","P0076","P0073", "A0393","R0077","P0076","R0001"),
  54. new Array("/root/init/baseinfo","/root/init/baseinfo","/root/init/baseinfo",
  55. "/root/init/baseinfo","/root/init/baseinfo", "/root/init/baseinfo","/root/init/baseinfo/relacdlst","/root/init/baseinfo","/root/init/baseinfo/banklst")
  56. )
  57. model.setValue( gSendPath + "/srchinstcd", getUserInfo("dutplceinstcd") );
  58. submit("TRAHA00104",false);
  59. }
  60. /************************************************************************************************
  61. @author : 채희철
  62. @version : 2007-07-01
  63. 초기화
  64. ************************************************************************************************/
  65. function fInitInfo(){
  66. model.resetinstancenode("/root/main/list");
  67. model.resetinstancenode(gPkgPath);
  68. model.resetInstanceNode(gPatInfoPath + "/item");
  69. //acpt detail clear
  70. model.removeNodeset(gAcptPath + "/acptlist");
  71. model.removeNodeset("/root/main/list/acptdtl");
  72. model.removeNodeset("/root/main/list/hist");
  73. //opmi info clear
  74. fInitRcptInfo();
  75. //send clear
  76. model.removeNodeset( gSendPath + "/s_opmi/opmi");
  77. model.removeNodeset( gSendPath + "/s_card/card");
  78. model.removeNodeset( gSendPath + "/s_cash/cash");
  79. model.removeNodeset( gSendPath + "/s_bank/bank");
  80. model.removeNodeset( gSendPath + "/s_dcgm/dcgm");
  81. model.removeNodeset( gSendPath + "/s_unco/unco");
  82. //hidden clear
  83. model.removeNodeset("/root/hidden");
  84. //날짜 기간 선택
  85. model.setValue( gSendPath + "/srchfromdd", getCurrentDate().toDate().getAddDate(-1, "Y").getDateFormat());
  86. model.setValue( gSendPath + "/srchtodd", getCurrentDate());
  87. model.setFocus("ipt_pid");
  88. //2008.09.26 model.refresh();
  89. }
  90. /************************************************************************************************
  91. @author : 채희철
  92. @version : 2007-07-01
  93. 정산화면 초기화
  94. ************************************************************************************************/
  95. function fChngInfoInit(){
  96. model.resetInstanceNode("/root/main/info/chnginfo");
  97. //model.refresh(); 2008.09.26
  98. }
  99. /************************************************************************************************
  100. @author : 채희철
  101. @version : 2007-07-01
  102. 접수화면에서 환자의 id와 접수 key값을 넘겼을때...해당 자료를 search해서 처리 한다.
  103. ************************************************************************************************/
  104. function fCheckOpener(){
  105. if(checkOpener()){
  106. var spid = opener.javascript.getParameter("SMAHA02100_PARAM_PID");
  107. var srsrvdd = opener.javascript.getParameter("SMAHA02100_PARAM_RSRVDD");
  108. var srsrvno = opener.javascript.getParameter("SMAHA02100_PARAM_RSRVNO");
  109. var shealexamflag = opener.javascript.getParameter("SMAHA02100_PARAM_HEALEXAMFLAG");
  110. var sorddd = opener.javascript.getParameter("SMAHA02100_PARAM_ORDDD");
  111. //var sjobflag = opener.javascript.getParameter("SMAHA02100_PARAM_JOBFLAG");
  112. if(sorddd == ""){
  113. sorddd = srsrvdd
  114. }
  115. ipt_pid.value = spid;
  116. model.setValue( gPatInfoPath + "/item/pid" , spid);
  117. model.setValue( gSendPath + "/srchpid" , spid);
  118. model.setValue( gSendPath + "/srchfromdd" , sorddd);
  119. model.setValue( gSendPath + "/srchtodd" , sorddd);
  120. model.setValue( gSendPath + "/srchparamrsrvdd" , srsrvdd);
  121. model.setValue( gSendPath + "/srchparamrsrvno" , srsrvno);
  122. model.setValue( gSendPath + "/srchhealexamflag" , shealexamflag);
  123. //model.setValue( gSendPath + "/srchjobflag" , sjobflag);
  124. fGetPatInfo(2);
  125. if(!isXPathTextNull(gPatInfoPath + "/item/pid")){
  126. //해당 건만 조회 한다.
  127. btn_search.dispatch("DOMActivate");
  128. }
  129. }else{
  130. model.setValue( gSendPath + "/srchparamrsrvdd" , "");
  131. model.setValue( gSendPath + "/srchparamrsrvno" , "");
  132. model.setValue( gSendPath + "/srchparamhealexamflag" , "");
  133. }
  134. }
  135. /************************************************************************************************
  136. @author : 채희철
  137. @version : 2007-07-01
  138. 환자이름을 입력했을때 search하는 popup화면을 올리고 환자를 선택한후 내역을 조회한다.
  139. ************************************************************************************************/
  140. function fSearchPatinfo(){
  141. var oldpid = model.getValue( gSendPath + "/srchpid")
  142. var oldhngnm = model.getValue( gSendPath + "/srchhngnm");
  143. // 등록번호 일때
  144. if (model.getFocus() == "ipt_pid"){
  145. if (model.getValue(gPatInfoPath + "/item/pid") != oldpid || oldpid == "") {
  146. fSearchPatInfo("SMAHA02100", "pid", ipt_pid.currentText , "Y", gPatInfoPath + "/item",ipt_pid.attribute("ref"),ipt_pnm.attribute("ref") );
  147. }
  148. }else{
  149. if (model.getValue(gPatInfoPath + "/hngnm") != oldhngnm || oldhngnm == "") {
  150. fSearchPatInfo("SMAHA02100", "pnm",ipt_pnm.currentText , "Y",gPatInfoPath + "/item",ipt_pid.attribute("ref"), ipt_pnm.attribute("ref") );
  151. }
  152. }
  153. model.setValue( gSendPath + "/srchpifSearchPatinfod", model.getValue(gPatInfoPath + "/item[1]/pid") );
  154. model.setValue( gSendPath + "/srchhngnm", model.getValue(gPatInfoPath + "/item[1]/hngnm") );
  155. //파라미터값을 다시 없는것으로 대체한다.
  156. model.setValue( gSendPath + "/srchparamrsrvdd" , "");
  157. model.setValue( gSendPath + "/srchparamrsrvno" , "");
  158. model.setValue( gSendPath + "/srchparamhealexamflag" , "");
  159. //날짜도 다시 1년간으로 처리 한다.
  160. model.setValue( gSendPath + "/srchfromdd", getCurrentDate().toDate().getAddDate(-1,"Y").getDateFormat());
  161. model.setValue( gSendPath + "/srchtodd", getCurrentDate());
  162. if ( model.getValue("root/temp/okflag") == 'ok'){
  163. btn_search.dispatch("DOMActivate");
  164. }
  165. // 성공적으로 선택한 환자가 있으면 해당 환자의 접수내역을 조회한다.
  166. //if( !isXPathTextNull( gPatInfoPath + "/item[1]/pid") ){
  167. // inputEnterKey("btn_search", "DOMActivate");
  168. //btn_search.dispatch("DOMActivate");
  169. //}
  170. }
  171. /************************************************************************************************
  172. @author : 채희철
  173. @version : 2007-07-01
  174. 패키지 코드를 Find한다..
  175. ************************************************************************************************/
  176. function fSearchPkg(){
  177. var old_pkgcd = model.getValue( gChngPath + "/before/before_pkgcd");
  178. var old_cmpycd = model.getValue( gChngPath + "/before/before_cmpycd");
  179. var old_conseq = model.getValue( gChngPath + "/before/before_conseq");
  180. var shealexamdtlflag = model.getValue( gSendPath + "/srchhealexamdtlflag");
  181. if( old_cmpycd != "-" && old_cmpycd != ""){
  182. fGetPkgCd("SMAHA02100", "C", "N","nm" , ipt_pkgcd.currentText , shealexamdtlflag, opt_sex.value , gChngPath + "/after" );
  183. if (model.getValue( gChngPath + "/after/pkgcd") != ""){
  184. model.setValue( gChngPath + "/after/after_cmpycd" , model.getValue( gChngPath + "/after/cmpycd" ));
  185. model.setValue( gChngPath + "/after/after_cmpynm" , model.getValue( gChngPath + "/after/cmpynm" ));
  186. model.setValue( gChngPath + "/after/after_conseq" , model.getValue( gChngPath + "/after/conseq" ));
  187. model.setValue( gChngPath + "/after/after_pkgcd" , model.getValue( gChngPath + "/after/pkgcd" ));
  188. model.setValue( gChngPath + "/after/after_pkgnm" , model.getValue( gChngPath + "/after/pkgnm" ));
  189. model.makeValue( gChngPath + "/after/after_conhistseq" , model.getValue( gChngPath + "/after/conhistseq" ));
  190. }
  191. //fGetCmpyDetlCdList(model.getValue(gChngPath + "/after/after_cmpycd"));
  192. }
  193. else {
  194. fGetPkgCd("SMAHA02100", "P", "N","nm" , ipt_pkgcd.currentText , shealexamdtlflag, opt_sex.value , gChngPath + "/after" );
  195. if (model.getValue( gChngPath + "/after/pkgcd") != ""){
  196. model.setValue( gChngPath + "/after/after_cmpycd" , model.getValue( gChngPath + "/after/cmpycd" ));
  197. model.setValue( gChngPath + "/after/after_cmpynm" , model.getValue( gChngPath + "/after/cmpynm"));
  198. model.setValue( gChngPath + "/after/after_conseq" , model.getValue( gChngPath + "/after/conseq" ));
  199. model.setValue( gChngPath + "/after/after_pkgcd" , model.getValue( gChngPath + "/after/pkgcd" ));
  200. model.setValue( gChngPath + "/after/after_pkgnm" , model.getValue( gChngPath + "/after/pkgnm" ));
  201. model.makeValue( gChngPath + "/after/after_conhistseq" , model.getValue( gChngPath + "/after/conhistseq" ));
  202. }
  203. }
  204. model.makeValue("/root/main/info/patinfo/item/conseq" , model.getValue("/root/main/info/rcptinfo/opmi/conseq"));
  205. model.makeValue("/root/main/info/patinfo/item/conhistseq" , model.getValue("/root/main/info/rcptinfo/opmi/conhistseq"));
  206. model.refresh();
  207. // 2008.09.26 model.refresh(); // 2008.09.26
  208. }
  209. /************************************************************************************************
  210. @author : 채희철
  211. @version : 2007-07-01
  212. 선택된 환자의 건진내역을 조회한다.
  213. ************************************************************************************************/
  214. function fGetList(){
  215. if(isXPathTextNull(gSendPath + "/srchtodd") || isXPathTextNull(gSendPath + "/srchfromdd")) return;
  216. var shealexamflag = fGetHealExamFlag();
  217. var shealexamdetlflag = fGetHealExamDetlFlag();
  218. model.setValue(gSendPath + "/srchinstcd" , getUserInfo("dutplceinstcd"));
  219. model.setValue(gSendPath + "/srchhealexamflag" , shealexamflag);
  220. model.setValue(gSendPath + "/srchpid" , model.getValue(gPatInfoPath + "/item/pid"));
  221. model.resetInstanceNode(gSendPath + "/s_opmi/opmi");
  222. model.resetInstanceNode(gSendPath + "/s_dcgm/dcgm");
  223. model.resetInstanceNode(gSendPath + "/s_unco/unco");
  224. model.resetInstanceNode(gSendPath + "/s_card/card");
  225. model.resetInstanceNode(gSendPath + "/s_cash/cash");
  226. model.resetInstanceNode(gSendPath + "/s_bank/bank");
  227. model.resetinstancenode(gPkgPath);
  228. if(submit("TRAHA02101", false)){
  229. rdo_cardyn.disabled = false;
  230. output28.disabled = false;
  231. output29.disabled = false;
  232. var vAcptCnt = getNodesetCount(gAcptPath + "/acptlist");
  233. if(vAcptCnt > 0){
  234. //접수내역이 있다면
  235. fSetSelectAcpt(1);
  236. //fGetRcptList();
  237. model.refresh();
  238. }else{
  239. //접수내역이 없다면
  240. //acpt detail clear
  241. model.removeNodeset("/root/main/list/acptdtl");
  242. model.removeNodeset("/root/main/list/hist");
  243. //opmi info clear
  244. fInitRcptInfo();
  245. //send clear
  246. model.removeNodeset(gSendPath + "/s_opmi/opmi");
  247. model.removeNodeset(gSendPath + "/s_dcgm/dcgm");
  248. model.removeNodeset(gSendPath + "/s_unco/unco");
  249. model.removeNodeset(gSendPath + "/s_card/card");
  250. model.removeNodeset(gSendPath + "/s_cash/cash");
  251. model.removeNodeset(gSendPath + "/s_bank/bank");
  252. //hidden clear
  253. model.removeNodeset("/root/hidden");
  254. }
  255. }
  256. }
  257. /************************************************************************************************
  258. @author : 채희철
  259. @version : 2007-07-01
  260. 접수된 내역을 선택한다. 계산상태에 따라서 계산버튼, 수납버튼, 영수증 출력버튼을 활성화 비활성화 시킨다.
  261. ************************************************************************************************/
  262. function fSetSelectAcpt(selectRow){
  263. if(isXPathTextNull(model.getValue(gAcptPath + "/acpt["+selectRow+"]/rsrvdd"))) return;
  264. //정산정보 reset
  265. fChngInfoInit();
  266. //현재 접수 정보를 지우고 새로 만든다.
  267. model.removeNodeset(gAcptInfoPath);
  268. model.makeNode(gAcptInfoPath);
  269. copyNodeListType(gAcptInfoPath, gAcptPath + "/acptlist["+selectRow+"]", "after")
  270. model.setValue(gPkgPath + "/pkgcd" , model.getValue(gAcptPath + "/acptlist["+selectRow+"]/pkgcd"));
  271. model.setValue(gPkgPath + "/pkgnm" , model.getValue(gAcptPath + "/acptlist["+selectRow+"]/pkgnm"));
  272. model.setValue(gPkgPath + "/disccd" , model.getValue(gAcptPath + "/acptlist["+selectRow+"]/disccd"));
  273. model.setValue(gPkgPath + "/uncocd" , model.getValue(gAcptPath + "/acptlist["+selectRow+"]/uncocd"));
  274. model.setValue(gSendPath + "/srchhealexamflag" , model.getValue(gAcptPath + "/acptlist["+selectRow+"]/healexamflag"));
  275. model.makeValue(gSendPath + "/srchhealexamdetlflag" , model.getValue(gAcptPath + "/acptlist["+selectRow+"]/healexamdetlflag"));
  276. model.setValue(gSendPath + "/srchrsrvdd" , model.getValue(gAcptPath + "/acptlist["+selectRow+"]/rsrvdd"));
  277. model.setValue(gSendPath + "/srchrsrvno" , model.getValue(gAcptPath + "/acptlist["+selectRow+"]/rsrvno"));
  278. model.setValue(gSendPath + "/srchorddd" , model.getValue(gAcptPath + "/acptlist["+selectRow+"]/orddd"));
  279. model.setValue(gSendPath + "/srchpkgnm" , model.getValue(gAcptPath + "/acptlist["+selectRow+"]/pkgnm"));
  280. model.setValue(gSendPath + "/srchdiscd" , model.getValue(gAcptPath + "/acptlist["+selectRow+"]/disccd"));
  281. model.setValue(gSendPath + "/srchuncocd" , model.getValue(gAcptPath + "/acptlist["+selectRow+"]/uncocd"));
  282. var rcptstat = model.getValue(gAcptPath + "/acptlist["+selectRow+"]/rcptstat");
  283. var statflag = model.getValue(gAcptPath + "/acptlist["+selectRow+"]/statflag");
  284. //계산된 상태이면 수납버튼 비활성화
  285. /*
  286. if(rcptstat == "X" || rcptstat == "S"){
  287. btn_rcpt.disabled = false;
  288. }else{
  289. btn_rcpt.disabled = true;
  290. }
  291. */
  292. fGetAcptDtlList(selectRow);
  293. }
  294. /************************************************************************************************
  295. @author : 채희철
  296. @version : 2007-07-01
  297. 건진 접수건의 세부내역을 조회한다.
  298. 추가검사, 계산내역, 수납내역
  299. ************************************************************************************************/
  300. function fGetAcptDtlList(selectRow){
  301. var sacptstat = model.getValue(gAcptPath + "/acptlist[" + selectRow + "]/acptstat");
  302. var srcptstat = model.getValue(gAcptPath + "/acptlist[" + selectRow + "]/rcptstat");
  303. var sjobflag = model.getValue(gSendPath + "/srchjobflag");
  304. model.setValue(gSendPath + "/srchhealexamflag" , model.getValue(gAcptPath + "/acptlist["+selectRow+"]/healexamflag"));
  305. model.setValue(gSendPath + "/srchrsrvdd" , model.getValue(gAcptPath + "/acptlist["+selectRow+"]/rsrvdd"));
  306. model.setValue(gSendPath + "/srchrsrvno" , model.getValue(gAcptPath + "/acptlist["+selectRow+"]/rsrvno"));
  307. model.setValue(gSendPath + "/srchrcptstat" , model.getValue(gAcptPath + "/acptlist["+selectRow+"]/rcptstat"));
  308. model.setValue(gSendPath + "/rcptdd" , model.getValue(gAcptPath + "/acptlist["+selectRow+"]/rcptdd"));
  309. btn_changrcpt.disabled = false;
  310. if(submit("TRAHA02102", false)){
  311. if(srcptstat == "N"){
  312. //if(srcptstat == "Y"){
  313. if(getNodesetCount(gAcptDtlPath + "/opmilist") > 0){
  314. fGetRcptDtlList(1);
  315. }
  316. //}
  317. }else{
  318. //계산까지 진행된 상태이면 계산내역을 summary한 자료로 조회한다.
  319. if(srcptstat == "X"){
  320. btn_changrcpt.disabled = true;
  321. fGetOpmiFromOscl();
  322. }else{
  323. model.resetInstanceNode("/root/main/info/rcptinfo");
  324. //copyNodeListTupe(gRcptDtltPath,gAcptDtlPath);
  325. if(getNodesetCount(gAcptDtlPath + "/cardlist") > 0 ){
  326. fNodeCheck(gRcptDtltPath + "/cardlist");
  327. copyNodesetType(gRcptDtltPath + "/cardlist", gAcptDtlPath + "/cardlist", "replace", model, model)
  328. //model.copyNode("gRcptDtltPath/cardlist", gAcptDtlPath + "/cardlist")
  329. }
  330. if(getNodesetCount(gAcptDtlPath + "/cashlist") > 0 ){
  331. fNodeCheck(gRcptDtltPath + "/cashlist");
  332. copyNodesetType(gRcptDtltPath + "/cashlist", gAcptDtlPath + "/cashlist", "replace", model, model)
  333. //model.copyNode("gRcptDtltPath/cashlist", gAcptDtlPath + "/cashlist")
  334. }
  335. if(getNodesetCount(gAcptDtlPath + "/banklist") > 0 ){
  336. fNodeCheck(gRcptDtltPath + "/banklist");
  337. copyNodesetType(gRcptDtltPath + "/banklist", gAcptDtlPath + "/banklist", "replace", model, model)
  338. }
  339. if(getNodesetCount(gAcptDtlPath + "/dcgmlist") > 0 ){
  340. fNodeCheck(gRcptDtltPath + "/dcgmlist");
  341. copyNodesetType(gRcptDtltPath + "/dcgmlist", gAcptDtlPath + "/dcgmlist", "replace", model, model)
  342. //model.copyNode("gRcptDtltPath/dcgmlist", gAcptDtlPath + "/dcgmlist")
  343. }
  344. if(getNodesetCount(gAcptDtlPath + "/uncolist") > 0 ){
  345. fNodeCheck(gRcptDtltPath + "/uncolist");
  346. copyNodesetType(gRcptDtltPath + "/uncolist", gAcptDtlPath + "/uncolist", "replace", model, model)
  347. //model.copyNode("gRcptDtltPath/uncolist", gAcptDtlPath + "/dcgmlist")
  348. }
  349. }
  350. }
  351. model.refresh();
  352. }
  353. }
  354. function fNodeCheck(NodeName){
  355. if(getNodesetCount(NodeName) > 0){
  356. return;
  357. } else{
  358. model.makeNode(NodeName);
  359. }
  360. }
  361. function fGetRcptList(){
  362. model.makeValue("/root/send/srchrcptdd", model.getValue("/root/main/list/acpt/acptlist/orddd"));
  363. if ( submit("TRAHA02104",false)){
  364. if ( getNodesetCount(gRcptDtltPath + "/dcgmlist") > 0 ){
  365. model.makeNode(gRcptInfoPath + "/s_dcgm/dcgm");
  366. model.copyNode(gRcptInfoPath + "/s_dcgm/dcgm",gRcptDtltPath + "/dcgmlist");
  367. }
  368. if ( getNodesetCount(gRcptDtltPath + "/uncolist") > 0 ){
  369. model.makeNode(gRcptInfoPath + "/s_unco/unco");
  370. model.copyNode(gRcptInfoPath + "/s_unco/unco",gRcptDtltPath + "/uncolist");
  371. }
  372. if ( getNodesetCount(gRcptDtltPath + "/cardlist") > 0 ){
  373. model.makeNode(gRcptInfoPath + "/s_card/card");
  374. model.copyNode(gRcptInfoPath + "/s_card/card",gRcptDtltPath + "/cardlist");
  375. }
  376. if ( getNodesetCount(gRcptDtltPath + "/cashlist") > 0 ){
  377. model.makeNode(gRcptInfoPath + "/s_cash/cash");
  378. model.copyNode(gRcptInfoPath + "/s_cash/cash",gRcptDtltPath + "/cashlist");
  379. }
  380. }
  381. }
  382. /************************************************************************************************
  383. @author : 채희철
  384. @version : 2007-07-01
  385. 기 수납된 내역을 조회 한다.
  386. 할인, 감면, 미수내역, 카드내역, 현금영수증내역
  387. ************************************************************************************************/
  388. function fGetRcptDtlList(selectRow){
  389. openLoadingBar("수납 세부 정보를 조회 중입니다.") ;
  390. model.setValue(gSendPath + "/srchrcptdd" , model.getValue(gAcptDtlPath + "/opmilist["+selectRow+"]/rcptdd"));
  391. model.setValue(gSendPath + "/srchrcptno" , model.getValue(gAcptDtlPath + "/opmilist["+selectRow+"]/rcptno"));
  392. model.makeValue(gSendPath + "/rcptno" , model.getValue(gAcptDtlPath + "/opmilist["+selectRow+"]/rcptno"));
  393. model.setValue(gSendPath + "/srchrcptseqno" , model.getValue(gAcptDtlPath + "/opmilist["+selectRow+"]/rcptseqno"));
  394. model.setValue(gSendPath + "/srchcretno" , model.getValue(gAcptDtlPath + "/opmilist["+selectRow+"]/cretno"));
  395. var spid = model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/pid");
  396. var sdisccd = model.getValue( gSendPath + "/srchdiscd");
  397. var dopmi_totamt = 0;
  398. var dopmi_baseexamamt = 0;
  399. var dopmi_addexamamt = 0;
  400. var dopmi_payinsubamt = 0;
  401. var dopmi_payhealcntramt = 0;
  402. var dopmi_cmpyamt = 0;
  403. var dopmi_ownbamt = 0;
  404. var dopmi_ownuncoamt = 0;
  405. var dopmi_totuncoamt = 0;
  406. var dopmi_discamt = 0;
  407. var dopmi_reduamt = 0;
  408. var dopmi_totdiscamt = 0;
  409. var dopmi_specamt = 0;
  410. var dopmi_precashamt = 0;
  411. var dopmi_precardamt = 0;
  412. var dopmi_preonlineamt = 0;
  413. var dopmi_premdlrcptamt = 0;
  414. var dopmi_totprercptamt = 0;
  415. var dopmi_mdlrremamt = 0;
  416. var dopmi_mdlrcptamt = 0;
  417. var dopmi_restamt = 0;
  418. var dopmi_rcptamt = 0;
  419. var dopmi_cardamt = 0;
  420. var dopmi_cashamt = 0;
  421. var dopmi_onlineamt = 0;
  422. var sopmi_mdlyn = 'N';
  423. var sopmi_paygubun = "N"; //수납방법
  424. //이미 수납된 상태이기 때문에 계산과 수납 버튼은 비활성화 시켜놓는다.
  425. //btn_calc.disabled = true;
  426. //btn_rcpt.disabled = true;
  427. //시작하기전 수납과 관련된 nodeset들을 reset또는 remove시킨다.
  428. fInitRcptInfo();
  429. dopmi_totamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/totamt"));
  430. dopmi_baseexamamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/baseexamamt"));
  431. dopmi_addexamamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/addexamamt"));
  432. dopmi_payinsubamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/payinsubamt"));
  433. dopmi_payhealcntramt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/payhealcntramt"));
  434. dopmi_cmpyamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/cmpyamt"));
  435. dopmi_ownbamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/ownbamt"));
  436. dopmi_ownuncoamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/ownuncoamt"));
  437. dopmi_totuncoamt = dopmi_payinsubamt + dopmi_payhealcntramt + dopmi_cmpyamt + dopmi_ownuncoamt;
  438. dopmi_discamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/discamt"));
  439. dopmi_reduamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/reduamt"));
  440. dopmi_totdiscamt = dopmi_discamt + dopmi_reduamt;
  441. dopmi_specamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/specamt"));
  442. dopmi_precashamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/precashamt"));
  443. dopmi_precardamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/precardamt"));
  444. dopmi_preonlineamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/preonlineamt"));
  445. dopmi_premdlrcptamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/premdlrcptamt"));
  446. dopmi_totprercptamt = dopmi_precashamt + dopmi_precardamt + dopmi_preonlineamt + dopmi_premdlrcptamt;
  447. dopmi_mdlrcptamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/mdlrcptamt"));
  448. dopmi_mdlremamt = 0;
  449. dopmi_restamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/restamt"));
  450. dopmi_rcptamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/rcptamt"));
  451. //dopmi_rcptamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/payrcptamt"));//실제의 납부할금액으로 셋팅
  452. dopmi_cardamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/cardamt"));
  453. //dopmi_cardamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/payrcptamt"));//실제의 납부할금액으로 셋팅
  454. dopmi_cashamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/cashamt"));
  455. //dopmi_cashamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/payrcptamt"));//실제의 납부할금액으로 셋팅
  456. dopmi_onlineamt = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/onlineamt"));
  457. if(model.getValue("/root/print/ui") == "1"){
  458. //카드/현금영수증 취소금액이라면
  459. dopmi_rcptamt = dopmi_rcptamt * -1;
  460. dopmi_cardamt = dopmi_cardamt * -1;
  461. dopmi_cashamt = dopmi_cashamt * -1;
  462. }
  463. sopmi_orgrcptdd = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/orgrcptdd"));
  464. sopmi_orgrcptno = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/orgrcptno"));
  465. sopmi_orgrcptseqno = eval(model.getValue(gAcptDtlPath + "/opmilist[" + selectRow + "]/orgrcptseqno"));
  466. model.setValue(gRcptInfoPath + "/opmi/pid" , spid );
  467. model.setValue(gRcptInfoPath + "/opmi/opmi_totamt" , dopmi_totamt);
  468. model.setValue(gRcptInfoPath + "/opmi/opmi_baseexamamt" , dopmi_baseexamamt);
  469. model.setValue(gRcptInfoPath + "/opmi/opmi_addexamamt" , dopmi_addexamamt);
  470. model.setValue(gRcptInfoPath + "/opmi/opmi_payinsubamt" , dopmi_payinsubamt);
  471. model.setValue(gRcptInfoPath + "/opmi/opmi_payhealcntramt" , dopmi_payhealcntramt);
  472. model.setValue(gRcptInfoPath + "/opmi/opmi_cmpyamt" , dopmi_cmpyamt);
  473. model.setValue(gRcptInfoPath + "/opmi/opmi_ownbamt" , dopmi_ownbamt);
  474. model.setValue(gRcptInfoPath + "/opmi/opmi_ownuncoamt" , dopmi_ownuncoamt );
  475. model.setValue(gRcptInfoPath + "/opmi/opmi_totuncoamt" , dopmi_totuncoamt );
  476. model.setValue(gRcptInfoPath + "/opmi/opmi_discamt" , dopmi_discamt );
  477. model.setValue(gRcptInfoPath + "/opmi/opmi_reduamt" , dopmi_reduamt );
  478. model.setValue(gRcptInfoPath + "/opmi/opmi_disccd" , sdisccd );
  479. model.setValue(gRcptInfoPath + "/opmi/opmi_totdiscamt" , dopmi_totdiscamt );
  480. model.setValue(gRcptInfoPath + "/opmi/opmi_specamt" , dopmi_specamt );
  481. model.setValue(gRcptInfoPath + "/opmi/opmi_precashamt" , dopmi_precashamt );
  482. model.setValue(gRcptInfoPath + "/opmi/opmi_precardamt" , dopmi_precardamt );
  483. model.setValue(gRcptInfoPath + "/opmi/opmi_preonlineamt" , dopmi_preonlineamt );
  484. model.setValue(gRcptInfoPath + "/opmi/opmi_premdlrcptamt" , dopmi_premdlrcptamt );
  485. model.setValue(gRcptInfoPath + "/opmi/opmi_totprercptamt" , dopmi_totprercptamt );
  486. model.setValue(gRcptInfoPath + "/opmi/opmi_mdlrcptamt" , dopmi_mdlrcptamt );
  487. model.setValue(gRcptInfoPath + "/opmi/opmi_mdlremamt" , dopmi_mdlrremamt );
  488. model.setValue(gRcptInfoPath + "/opmi/opmi_restamt" , dopmi_restamt );
  489. model.setValue(gRcptInfoPath + "/opmi/opmi_rcptamt" , dopmi_rcptamt );
  490. model.setValue(gRcptInfoPath + "/opmi/opmi_cardamt" , dopmi_cardamt );
  491. model.setValue(gRcptInfoPath + "/opmi/opmi_cashamt" , dopmi_cashamt );
  492. model.setValue(gRcptInfoPath + "/opmi/opmi_onlineamt" , dopmi_onlineamt );
  493. if(dopmi_mdlrcptamt > 0){
  494. sopmi_mdlyn = 'Y';
  495. }
  496. model.setValue(gRcptInfoPath + "/opmi/opmi_mdlyn" , sopmi_mdlyn );
  497. //카드수납금액이 있고, 카드로 모든 금액을 수납했으면 카드수납..
  498. //if(dopmi_cardamt > 0 && dopmi_cardamt == dopmi_rcptamt){
  499. if(getNodesetCount(gRcptInfoPath + "/card")){
  500. sopmi_paygubun = "Y";
  501. }
  502. //현금인데 현금영수증 기준금액보다 크면 현금영수증으로 아니면 현금으로 처리 한다.
  503. if(dopmi_cashamt >= 5000){
  504. sopmi_paygubun = "N";
  505. }
  506. model.setValue(gRcptInfoPath + "/opmi/opmi_paygubun" , sopmi_paygubun );
  507. model.setValue(gRcptInfoPath + "/opmi/opmi_orgrcptdd" , sopmi_orgrcptdd );
  508. model.setValue(gRcptInfoPath + "/opmi/opmi_orgrcptno" , sopmi_orgrcptno );
  509. model.setValue(gRcptInfoPath + "/opmi/opmi_orgrcptseqno" , sopmi_orgrcptseqno );
  510. //계산이 된 상태이면 환불버튼 활성화
  511. if(model.getValue(gAcptDtlPath + "/opmilist["+selectRow+"]/rcptstat") == "Y"){
  512. btn_refund.disabled = false;
  513. }else {
  514. btn_refund.disabled = true;
  515. }
  516. //수납된 내역을 정산부분으로 copy한다.
  517. fSetChngInfo();
  518. if(model.getValue("/root/main/list/acptdtl/opmilist/rcptdd")!=""){
  519. model.makeValue("/root/send/srchrcptdd",model.getValue("/root/main/list/acptdtl/opmilist/rcptdd"));
  520. }else if(model.getValue("/root/main/list/acptdtl/oscllist/rcptdd")!=""){
  521. model.makeValue("/root/send/srchrcptdd",model.getValue("/root/main/list/acptdtl/oscllist/rcptdd"));
  522. }else{
  523. model.makeValue("/root/send/srchrcptdd",model.getValue("/root/main/info/acptinfo/acptlist/rsrvdd"));
  524. }
  525. model.makeValue("/root/send/srchrsrvdd",model.getValue("/root/main/info/acptinfo/acptlist/rsrvdd"));
  526. model.makeValue("/root/send/srchrsrvno",model.getValue("/root/main/info/acptinfo/acptlist/rsrvno"));
  527. if(submit("TRAHA02104", false)){
  528. if(getNodesetCount(gRcptDtltPath + "/dcgmlist") > 0){
  529. model.makeNode(gRcptInfoPath + "/s_dcgm/dcgm");
  530. model.copyNode(gRcptInfoPath + "/s_dcgm/dcgm",gRcptDtltPath + "/dcgmlist");
  531. }
  532. if(getNodesetCount(gRcptDtltPath + "/uncolist") > 0){
  533. model.makeNode(gRcptInfoPath + "/s_unco/unco");
  534. model.copyNode(gRcptInfoPath + "/s_unco/unco",gRcptDtltPath + "/uncolist");
  535. }
  536. if(getNodesetCount(gRcptDtltPath + "/banklist") > 0){
  537. model.makeNode(gRcptInfoPath + "/s_bank/bank");
  538. model.copyNode(gRcptInfoPath + "/s_bank/bank",gRcptDtltPath + "/banklist");
  539. }
  540. if(getNodesetCount(gRcptDtltPath + "/cardlist") > 0){
  541. model.makeNode(gRcptInfoPath + "/s_card/card");
  542. model.copyNode(gRcptInfoPath + "/s_card/card",gRcptDtltPath + "/cardlist");
  543. }
  544. if(getNodesetCount(gRcptDtltPath + "/cashlist") > 0){
  545. model.makeNode(gRcptInfoPath + "/s_cash/cash");
  546. model.copyNode(gRcptInfoPath + "/s_cash/cash",gRcptDtltPath + "/cashlist");
  547. }
  548. }
  549. //영수증 출력 버튼은 활성화 ( 취소된것을 제외하면 출력가능하게..)
  550. if(model.getValue(gAcptDtlPath + "/opmilist["+selectRow+"]/rcptstat") == "C"){
  551. //btn_reprt.disabled = true;
  552. }else{
  553. //btn_reprt.disabled = false;
  554. }
  555. /***********************************************************************************
  556. * 수납aphpopmi(rcpstat) 상태구분에 따른 disabled setting
  557. * Y:수납
  558. * C:(+)수납취소
  559. * D:(-)수납취소
  560. * null:미수납(자료없음)
  561. ***********************************************************************************/
  562. var opmircptstat = model.getValue(gAcptDtlPath + "/opmilist["+selectRow+"]/rcptstat");
  563. if (opmircptstat == "Y") {
  564. if (grd_rcptcard.rows > 1 || grd_rcptcash.rows > 1){
  565. //btn_rcpt.disabled = true;
  566. btn_refund.disabled = false;
  567. btn_changrcpt.disabled = true;
  568. //button52.disabled = true;
  569. //button53.disabled = true;
  570. //rdo_cardyn.disabled = true;
  571. //output28.disabled = true;
  572. //output29.disabled = true;
  573. }else{
  574. //btn_rcpt.disabled = true;
  575. btn_refund.disabled = false;
  576. btn_changrcpt.disabled = false;
  577. //button52.disabled = false;
  578. //button53.disabled = false;
  579. //rdo_cardyn.disabled = false;
  580. //output28.disabled = false;
  581. //output29.disabled = false;
  582. }
  583. }else if (opmircptstat == "C" || opmircptstat == "D"){
  584. //btn_rcpt.disabled = true;
  585. btn_refund.disabled = true;
  586. btn_changrcpt.disabled = true;
  587. //button52.disabled = true;
  588. //button53.disabled = true;
  589. /***********************************************************************************
  590. * 접수 ahamacpt(rcpstat) 상태구분에 따른 disabled setting
  591. * Y:미계산
  592. * X:건진계산
  593. * N:건진수납
  594. ***********************************************************************************/
  595. var srcptstat = model.getValue(gAcptPath + "/acptlist[" + selectRow + "]/rcptstat");
  596. /*********************************************
  597. [ 2007-10-17 김상진 ]
  598. 건진계산중이면 수납방법이 선택되야한다.
  599. *********************************************/
  600. /*
  601. if (srcptstat == "X") {
  602. rdo_cardyn.disabled = false;
  603. output28.disabled = true;
  604. output29.disabled = true;
  605. }else{
  606. rdo_cardyn.disabled = true;
  607. output28.disabled = true;
  608. output29.disabled = true;
  609. }
  610. */
  611. //rdo_cardyn.disabled = true;
  612. }else{
  613. //btn_rcpt.disabled = false;
  614. //btn_refund.disabled = true;
  615. //btn_changrcpt.disabled = true;
  616. //rdo_cardyn.disabled = false;
  617. }
  618. //model.refresh(); // 2008.09.26
  619. model.makeValue( gSendPath + "/rcptno", model.getValue(gAcptDtlPath + "/opmilist["+selectRow+"]/rcptno"));
  620. closeLoadingBar(); //처리중 화면을 close한다.
  621. }
  622. /************************************************************************************************
  623. @author : 채희철
  624. @version : 2007-07-01
  625. 카드수납의 세부내역을 조회한다.
  626. ************************************************************************************************/
  627. function fGetCardDtlInfo(SelectRow){
  628. if(SelectRow <= 0) return;
  629. model.resetInstanceNode(gCardDtlInfoPath);
  630. model.setValue(gCardDtlInfoPath + "/cardrcptdd" , model.getValue( gRcptDtltPath + "/cardlist[" + SelectRow + "]/aprvdd" ));
  631. model.setValue(gCardDtlInfoPath + "/cardcmpycd" , model.getValue( gRcptDtltPath + "/cardlist[" + SelectRow + "]/cardcmpycd" ));
  632. model.setValue(gCardDtlInfoPath + "/cardno" , model.getValue( gRcptDtltPath + "/cardlist[" + SelectRow + "]/cardno" ));
  633. model.setValue(gCardDtlInfoPath + "/valiterm" , model.getValue( gRcptDtltPath + "/cardlist[" + SelectRow + "]/valiterm" ));
  634. model.setValue(gCardDtlInfoPath + "/allotmm" , model.getValue( gRcptDtltPath + "/cardlist[" + SelectRow + "]/allotmm" ));
  635. model.setValue(gCardDtlInfoPath + "/cardamt" , model.getValue( gRcptDtltPath + "/cardlist[" + SelectRow + "]/cardamt" ));
  636. model.setValue(gCardDtlInfoPath + "/aprvno" , model.getValue( gRcptDtltPath + "/cardlist[" + SelectRow + "]/aprvno" ));
  637. // 2008.09.26 model.refresh(); // 2008.09.26
  638. }
  639. /************************************************************************************************
  640. @author : 채희철
  641. @version : 2007-07-01
  642. 기 수납된 내역을 조회 한다.
  643. 현금영수증수납의 세부내역을 조회한다.
  644. ************************************************************************************************/
  645. function fGetCashDtlInfo(SelectRow){
  646. if(SelectRow <= 0) return;
  647. model.resetInstanceNode(gCashDtlInfoPath);
  648. model.setValue(gCashDtlInfoPath + "/qualcnfmflag" , model.getValue( gRcptDtltPath + "/cashlist[" + SelectRow + "]/qualcnfmflag" ));
  649. model.setValue(gCashDtlInfoPath + "/qualcnfmno" , model.getValue( gRcptDtltPath + "/cashlist[" + SelectRow + "]/qualcnfmno" ));
  650. model.setValue(gCashDtlInfoPath + "/aprvdd" , model.getValue( gRcptDtltPath + "/cashlist[" + SelectRow + "]/aprvdd" ));
  651. model.setValue(gCashDtlInfoPath + "/cashamt" , model.getValue( gRcptDtltPath + "/cashlist[" + SelectRow + "]/cashamt" ));
  652. model.setValue(gCashDtlInfoPath + "/aprvno" , model.getValue( gRcptDtltPath + "/cashlist[" + SelectRow + "]/aprvno" ));
  653. model.setValue(gCashDtlInfoPath + "/remfact" , model.getValue( gRcptDtltPath + "/cashlist[" + SelectRow + "]/remfact" ));
  654. // 2008.09.26 model.refresh(); // 2008.09.26
  655. }
  656. /************************************************************************************************
  657. @author : 채희철
  658. @version : 2007-07-01
  659. 수납된 내역을 선택하면 정산작업을 위한 data를 세팅한다.
  660. ************************************************************************************************/
  661. function fSetChngInfo(){
  662. //"/root/main/info/acptinfo";
  663. ///root/main/info/chnginfo/before/before_pkgcd
  664. model.makeValue(gChngPath + "/before/before_rsrvdd", model.getValue(gAcptInfoPath + "/acptlist/rsrvdd" ));
  665. model.makeValue(gChngPath + "/before/before_rsrvno", model.getValue(gAcptInfoPath + "/acptlist/rsrvno" ));
  666. model.makeValue(gChngPath + "/before/before_healexamflag", model.getValue(gAcptInfoPath + "/acptlist/healexamflag" ));
  667. model.makeValue(gChngPath + "/before/before_healexamdetlflag", model.getValue(gAcptInfoPath + "/acptlist/healexamdetlflag" ));
  668. model.makeValue(gChngPath + "/before/before_instcd", model.getValue(gAcptInfoPath + "/acptlist/instcd" ));
  669. model.makeValue(gChngPath + "/before/before_pid", model.getValue(gAcptInfoPath + "/acptlist/pid" ));
  670. model.makeValue(gChngPath + "/before/before_orddd", model.getValue(gAcptInfoPath + "/acptlist/orddd" ));
  671. model.makeValue(gChngPath + "/before/before_cretno", model.getValue(gAcptInfoPath + "/acptlist/cretno" ));
  672. model.makeValue(gChngPath + "/before/before_orddeptcd", model.getValue(gAcptInfoPath + "/acptlist/orddeptcd" ));
  673. model.makeValue(gChngPath + "/before/before_orddrid", model.getValue(gAcptInfoPath + "/acptlist/orddrid" ));
  674. model.makeValue(gChngPath + "/before/before_cmpynm", model.getValue(gAcptInfoPath + "/acptlist/cmpynm" ));
  675. model.makeValue(gChngPath + "/before/before_pkgcd", model.getValue(gAcptInfoPath + "/acptlist/pkgcd" ));
  676. model.makeValue(gChngPath + "/before/before_pkgnm", model.getValue(gAcptInfoPath + "/acptlist/pkgnm" ));
  677. model.makeValue(gChngPath + "/before/before_cmpycd", model.getValue(gAcptInfoPath + "/acptlist/cmpycd" ));
  678. model.makeValue(gChngPath + "/before/before_cmpynm", model.getValue(gAcptInfoPath + "/acptlist/cmpynm" ));
  679. model.makeValue(gChngPath + "/before/before_conseq", model.getValue(gAcptInfoPath + "/acptlist/conseq" ));
  680. model.makeValue(gChngPath + "/before/before_conhistseq", model.getValue(gAcptInfoPath + "/acptlist/conhistseq" ));
  681. model.makeValue(gChngPath + "/before/before_pkguncocd", model.getValue(gAcptInfoPath + "/acptlist/uncocd" ));
  682. model.makeValue(gChngPath + "/before/before_baseexamamt", model.getValue(gRcptInfoPath + "/opmi/opmi_baseexamamt" ));
  683. model.makeValue(gChngPath + "/before/before_addexamamt", model.getValue(gRcptInfoPath + "/opmi/opmi_addexamamt" ));
  684. model.makeValue(gChngPath + "/before/before_totamt", model.getValue(gRcptInfoPath + "/opmi/opmi_totamt" ));
  685. model.makeValue(gChngPath + "/before/before_disccd", model.getValue(gRcptInfoPath + "/opmi/opmi_disccd" ));
  686. model.makeValue(gChngPath + "/before/before_totdiscamt", model.getValue(gRcptInfoPath + "/opmi/opmi_totdiscamt" ));
  687. model.makeValue(gChngPath + "/before/before_ownuncoamt", model.getValue(gRcptInfoPath + "/opmi/opmi_ownuncoamt" ));
  688. model.makeValue(gChngPath + "/before/before_cmpyamt", model.getValue(gRcptInfoPath + "/opmi/opmi_cmpyamt" ));
  689. model.makeValue(gChngPath + "/before/before_payhealcntramt", model.getValue(gRcptInfoPath + "/opmi/opmi_payhealcntramt" ));
  690. model.makeValue(gChngPath + "/before/before_payinsubamt", model.getValue(gRcptInfoPath + "/opmi/opmi_payinsubamt" ));
  691. model.makeValue(gChngPath + "/before/before_totuncoamt", model.getValue(gRcptInfoPath + "/opmi/opmi_totuncoamt" ));
  692. model.makeValue(gChngPath + "/before/before_mdlrcptamt", model.getValue(gRcptInfoPath + "/opmi/opmi_mdlrcptamt" ));
  693. model.makeValue(gChngPath + "/before/before_restamt", model.getValue(gRcptInfoPath + "/opmi/opmi_restamt" ));
  694. model.makeValue(gChngPath + "/before/before_rcptamt", model.getValue(gRcptInfoPath + "/opmi/opmi_rcptamt" ));
  695. model.makeValue(gChngPath + "/after/after_rsrvdd", model.getValue(gAcptInfoPath + "/acptlist/rsrvdd" ));
  696. model.makeValue(gChngPath + "/after/after_rsrvno", model.getValue(gAcptInfoPath + "/acptlist/rsrvno" ));
  697. model.makeValue(gChngPath + "/after/after_healexamflag", model.getValue(gAcptInfoPath + "/acptlist/healexamflag" ));
  698. model.makeValue(gChngPath + "/after/after_healexamdetlflag", model.getValue(gAcptInfoPath + "/acptlist/healexamdetlflag" ));
  699. model.makeValue(gChngPath + "/after/after_instcd", model.getValue(gAcptInfoPath + "/acptlist/instcd" ));
  700. model.makeValue(gChngPath + "/after/after_pid", model.getValue(gAcptInfoPath + "/acptlist/pid" ));
  701. model.makeValue(gChngPath + "/after/after_orddd", model.getValue(gAcptInfoPath + "/acptlist/orddd" ));
  702. model.makeValue(gChngPath + "/after/after_cretno", model.getValue(gAcptInfoPath + "/acptlist/cretno" ));
  703. model.makeValue(gChngPath + "/after/after_orddeptcd", model.getValue(gAcptInfoPath + "/acptlist/orddeptcd" ));
  704. model.makeValue(gChngPath + "/after/after_orddrid", model.getValue(gAcptInfoPath + "/acptlist/orddrid" ));
  705. model.makeValue(gChngPath + "/after/after_cmpynm", model.getValue(gAcptInfoPath + "/acptlist/cmpynm" ));
  706. model.makeValue(gChngPath + "/after/after_pkgcd", model.getValue(gAcptInfoPath + "/acptlist/pkgcd" ));
  707. model.makeValue(gChngPath + "/after/after_pkgnm", model.getValue(gAcptInfoPath + "/acptlist/pkgnm" ));
  708. model.makeValue(gChngPath + "/after/after_cmpycd", model.getValue(gAcptInfoPath + "/acptlist/cmpycd" ));
  709. model.makeValue(gChngPath + "/after/after_cmpynm", model.getValue(gAcptInfoPath + "/acptlist/cmpynm" ));
  710. model.makeValue(gChngPath + "/after/after_conseq", model.getValue(gAcptInfoPath + "/acptlist/conseq" ));
  711. model.makeValue(gChngPath + "/after/after_conhistseq", model.getValue(gAcptInfoPath + "/acptlist/conhistseq" ));
  712. model.makeValue(gChngPath + "/after/after_pkguncocd", model.getValue(gAcptInfoPath + "/acptlist/uncocd" ));
  713. model.makeValue(gChngPath + "/after/after_baseexamamt", model.getValue(gRcptInfoPath + "/opmi/opmi_baseexamamt" ));
  714. model.makeValue(gChngPath + "/after/after_addexamamt", model.getValue(gRcptInfoPath + "/opmi/opmi_addexamamt" ));
  715. model.makeValue(gChngPath + "/after/after_totamt", model.getValue(gRcptInfoPath + "/opmi/opmi_totamt" ));
  716. model.makeValue(gChngPath + "/after/after_disccd", model.getValue(gRcptInfoPath + "/opmi/opmi_disccd" ));
  717. model.makeValue(gChngPath + "/after/after_totdiscamt", model.getValue(gRcptInfoPath + "/opmi/opmi_totdiscamt" ));
  718. model.makeValue(gChngPath + "/after/after_ownuncoamt", model.getValue(gRcptInfoPath + "/opmi/opmi_ownuncoamt" ));
  719. model.makeValue(gChngPath + "/after/after_cmpyamt", model.getValue(gRcptInfoPath + "/opmi/opmi_cmpyamt" ));
  720. model.makeValue(gChngPath + "/after/after_payhealcntramt", model.getValue(gRcptInfoPath + "/opmi/opmi_payhealcntramt" ));
  721. model.makeValue(gChngPath + "/after/after_payinsubamt", model.getValue(gRcptInfoPath + "/opmi/opmi_payinsubamt" ));
  722. model.makeValue(gChngPath + "/after/after_totuncoamt", model.getValue(gRcptInfoPath + "/opmi/opmi_totuncoamt" ));
  723. model.makeValue(gChngPath + "/after/after_mdlrcptamt", model.getValue(gRcptInfoPath + "/opmi/opmi_mdlrcptamt" ));
  724. model.makeValue(gChngPath + "/after/after_restamt", model.getValue(gRcptInfoPath + "/opmi/opmi_restamt" ));
  725. model.makeValue(gChngPath + "/after/after_rcptamt", model.getValue(gRcptInfoPath + "/opmi/opmi_rcptamt" ));
  726. model.makeValue(gChngPath + "/after/empid" , model.getValue(gAcptInfoPath + "/acptlist/empid"));
  727. model.makeValue(gChngPath + "/after/empnm" , model.getValue(gAcptInfoPath + "/acptlist/empnm"));
  728. model.makeValue(gChngPath + "/after/emprelacd", model.getValue(gAcptInfoPath + "/acptlist/relacd"));
  729. model.makeValue(gChngPath + "/after/famypid" , model.getValue(gAcptInfoPath + "/acptlist/famypid"));
  730. model.makeValue(gChngPath + "/after/famypnm" , model.getValue(gAcptInfoPath + "/acptlist/famypnm"));
  731. model.makeValue(gChngPath + "/after/famyrelacd", model.getValue(gAcptInfoPath + "/acptlist/famyrelacd"));
  732. model.makeValue(gChngPath + "/after/recmempid" , model.getValue(gAcptInfoPath + "/acptlist/recmempid"));
  733. model.makeValue(gChngPath + "/after/recmempnm" , model.getValue(gAcptInfoPath + "/acptlist/recmempnm"));
  734. }
  735. /************************************************************************************************
  736. @author : 채희철
  737. @version : 2007-07-01
  738. 접수상태가 계산까지만 진행되었다면 계산된 자료들을 summary해서 본인부담금 및 미수금, 할인금을 결정한다.
  739. 수납을 할 수 있도록 결과 ValueObject를 리턴한다.
  740. ************************************************************************************************/
  741. function fGetOpmiFromOscl(){
  742. fInitRcptInfo(); //RcptDetail Info Clear
  743. model.setValue( gSendPath + "/srchjobflag", "RCPT");
  744. //금액을 계산한다 lib
  745. if(submit("TRAHA02103", false)){
  746. if(getNodesetCount(gHiddenPath + "/opmi_out") > 0){
  747. model.copyNode(gRcptInfoPath + "/opmi",gHiddenPath + "/opmi_out");
  748. }
  749. if(getNodesetCount(gHiddenPath + "/dcgm_out") > 0){
  750. model.makeNode(gRcptInfoPath + "/s_dcgm/dcgm");
  751. model.copyNode(gRcptInfoPath + "/s_dcgm/dcgm",gHiddenPath + "/dcgm_out");
  752. model.makeNode(gRcptDtltPath + "/dcgmlist");
  753. copyNodesetType("/root/main/list/rcptdtl/dcgmlist", gHiddenPath + "/dcgm_out", "replace");
  754. }
  755. if(getNodesetCount(gHiddenPath + "/unco_out") > 0){
  756. model.makeNode(gRcptInfoPath + "/s_unco/unco");
  757. model.copyNode(gRcptInfoPath + "/s_unco/unco",gHiddenPath + "/unco_out");
  758. model.makeNode(gRcptDtltPath + "/uncolist");
  759. copyNodesetType("/root/main/list/rcptdtl/uncolist", gHiddenPath + "/unco_out", "replace");
  760. }
  761. if(getNodesetCount(gHiddenPath + "/banklist") > 0){
  762. model.makeNode(gRcptInfoPath + "/banklist/bank");
  763. model.copyNode(gRcptInfoPath + "/banklist",gHiddenPath + "/banklist");
  764. model.makeNode("/root/main/list/rcptdtl/banklist");
  765. copyNodesetType("/root/main/list/rcptdtl/banklist", gHiddenPath + "/cardlist", "replace");
  766. }
  767. if(getNodesetCount(gHiddenPath + "/cardlist") > 0){
  768. model.makeNode(gRcptInfoPath + "/cardlist/card");
  769. model.copyNode(gRcptInfoPath + "/cardlist",gHiddenPath + "/cardlist");
  770. model.makeNode("/root/main/list/rcptdtl/cardlist");
  771. copyNodesetType("/root/main/list/rcptdtl/cardlist", gHiddenPath + "/cardlist", "replace");
  772. }
  773. if(getNodesetCount(gHiddenPath + "/cashlist") > 0){
  774. model.makeNode(gRcptInfoPath + "/cashlist/cash");
  775. model.copyNode(gRcptInfoPath + "/cashlist",gHiddenPath + "/cashlist");
  776. model.makeNode("/root/main/list/rcptdtl/cashlist");
  777. copyNodesetType("/root/main/list/rcptdtl/cashlist", gHiddenPath + "/cashlist", "replace");
  778. }
  779. //model.refresh(); // 2008.09.26
  780. }
  781. }
  782. /************************************************************************************************
  783. @author : 채희철
  784. @version : 2007-07-01
  785. 선택된 건진접수건에 대한 수가계산을 실시한다.
  786. 접수시 발생된 미계산된 처방을 읽어서 수가계산을 실시한다.
  787. 수가계산 로직은 원무의 수가계산 흐름에 따라서 처리가 되고 결과로 건진계산내역 테이블에 자료가 생성된다.
  788. 결과값으로 계산내역 summary, 할인자료, 미수자료가 return된다.
  789. ************************************************************************************************/
  790. function fCalculate(){
  791. if(isXPathTextNull(gSendPath + "/srchrsrvdd")){
  792. return;
  793. }else{
  794. var krnm = model.getValue(gPatInfoPath + "/item/hngnm");
  795. var orddd = model.getValue( gSendPath + "/srchorddd");
  796. var pkgnm = model.getValue( gSendPath + "/srchpkgnm");
  797. model.setValue( gSendPath + "/srchjobflag", "RCPT");
  798. /*
  799. //계산실시 확인 메세지
  800. var rtn = messageBox( krnm + " 님의 " + orddd + "일자 " + pkgnm + "\n" + "금액 계산을 하시겠습니까?","Q999");
  801. if (rtn == 7 ){
  802. return;
  803. }
  804. */
  805. //openLoadingBar("수납 할 금액을 계산중입니다.!");
  806. model.makeValue("/root/send/gubunflag", "F"); //계산플레그를 위해 접수에서와 분리 하기 위해
  807. if(submit("TXAHA02101", false)){
  808. //closeLoadingBar(); //처리중 화면을 close한다.
  809. //계산 버튼 비활성화
  810. hiddenchange();
  811. var shealexamflag = model.getValue(gSendPath + "/srchhealexamflag");
  812. var srsrvdd = model.getValue(gSendPath + "/srchrsrvdd");
  813. var srsrvno = model.getValue(gSendPath + "/srchrsrvno");
  814. var sinstcd = model.getValue(gSendPath + "/srchinstcd");
  815. //계산을 실시한 접수건에 대해서 상태를 계산으로 바꾸로 rebuild한다.
  816. for(var iCount = 1; iCount< grd_acptlist.rows ; iCount++){
  817. if(model.getValue(gAcptPath + "/acptlist["+iCount+"]/healexamflag") == shealexamflag &&
  818. model.getValue(gAcptPath + "/acptlist["+iCount+"]/rsrvdd") == srsrvdd &&
  819. model.getValue(gAcptPath + "/acptlist["+iCount+"]/rsrvno") == srsrvno &&
  820. model.getValue(gAcptPath + "/acptlist["+iCount+"]/instcd") == sinstcd){
  821. model.setValue(gAcptPath + "/acptlist["+iCount+"]/rcptstat", "X");
  822. grd_acptlist.rebuild();
  823. if(getNodesetCount(gAcptDtlPath + "/dcgmlist") > 0){
  824. fNodeCheck(gRcptDtltPath + "/dcgmlist");
  825. for(var ii=0; ii<getNodesetCount(gAcptDtlPath + "/dcgmlist"); ii++ ){
  826. if(model.getValue(gAcptDtlPath + "/dcgmlist["+(ii+1)+"]/apprsn") != '' &&
  827. model.getValue(gAcptDtlPath + "/dcgmlist["+(ii+1)+"]/discreduflag") == 'G'){
  828. copyNodesetType(gRcptDtltPath + "/dcgmlist" ,gAcptDtlPath + "/dcgmlist", "replace", model, model)
  829. }
  830. }
  831. }
  832. //해당접수건의 세부자료 load한다.
  833. //fSetSelectAcpt(iCount);
  834. break;
  835. }
  836. }
  837. //계산내역 조회.
  838. //btn_oscl.dispatch("onclick"); // case_tab 을 강제로 카드에 맞추기 위함..
  839. rdo_cardyn.disabled = false;
  840. }
  841. }
  842. minusamt();
  843. /*
  844. //미수금세팅
  845. for(i=1;i<=getNodesetCount("/root/main/list/rcptdtl/uncolist");i++){
  846. model.setValue("/root/main/list/rcptdtl/uncolist["+i+"]/uncoamt", model.getValue("/root/main/list/rcptdtl/uncolist["+i+"]/payinsubamt"));
  847. }
  848. */
  849. //개인미수금, 납부할 금액 세팅
  850. var ownbamt1 = Number(model.getValue("/root/main/info/rcptinfo/opmi/opmi_totamt")) - Number(model.getValue("/root/main/info/rcptinfo/opmi/opmi_totuncoamt"))-Number(model.getValue("/root/main/info/rcptinfo/opmi/opmi_discamt"))-Number(model.getValue("/root/main/info/rcptinfo/opmi/opmi_reduamt"));
  851. var totamt1 = Number(model.getValue("/root/main/info/rcptinfo/opmi/opmi_totamt"));
  852. var preamt1 = Number(model.getValue("/root/main/info/rcptinfo/opmi/opmi_totprercptamt"));
  853. var gamamt1 = Number(model.getValue("/root/main/info/rcptinfo/opmi/opmi_totdiscamt"));
  854. var uncoamt1 = Number(model.getValue("/root/main/info/rcptinfo/opmi/opmi_totuncoamt"));
  855. var restamt1 = Number(model.getValue("/root/main/info/rcptinfo/opmi/opmi_restamt"));
  856. var amt = totamt1 - preamt1 - gamamt1 - uncoamt1 - restamt1;
  857. model.setValue("/root/main/info/rcptinfo/opmi/opmi_ownbamt", ownbamt1);
  858. model.setValue("/root/main/info/rcptinfo/opmi/opmi_cardamt", amt);
  859. model.setValue("/root/main/info/rcptinfo/opmi/opmi_rcptamt", amt);
  860. model.refresh();
  861. }
  862. /*
  863. * VAN 이중승인 여부 체크
  864. */
  865. function fcardapp(){
  866. if(model.getValue("/root/tmp/cardapp") != "app"){
  867. if(submit("TXAHA08005",false)){
  868. if(model.getValue("/root/hidden/uncard/aprvflag")!= "") {
  869. var rtn = messageBox("승인되었지만 수납 되지 않은 데이터가 있습니다 확인하시겠습니까", "Q999");
  870. model.makeValue("/root/tmp/cardapp", "app");
  871. //if(rtn == 7 ){
  872. var nc = getNodesetCount("/root/hidden/uncard");
  873. var tamt =0;
  874. var zc = 0;
  875. for(zc=0; nc>zc; zc++){
  876. grd_rcptcard.addrow();
  877. var i = grd_rcptcard.rows-1;
  878. grd_rcptcard.valueMatrix(i,grd_rcptcard.colRef("cardcmpycd")) = model.getValue("/root/hidden/uncard["+zc +1+"]/cardcmpycd");
  879. grd_rcptcard.valueMatrix(i,grd_rcptcard.colRef("cardno")) = model.getValue("/root/hidden/uncard["+zc +1+"]/cardno");
  880. grd_rcptcard.valueMatrix(i,grd_rcptcard.colRef("cardno1")) = model.getValue("/root/hidden/uncard["+zc +1+"]/cardno");
  881. grd_rcptcard.valueMatrix(i,grd_rcptcard.colRef("valiterm")) = model.getValue("/root/hidden/uncard["+zc +1+"]/valiterm");
  882. grd_rcptcard.valueMatrix(i,grd_rcptcard.colRef("allotmm")) = model.getValue("/root/hidden/uncard["+zc +1+"]/allotmm");
  883. grd_rcptcard.valueMatrix(i,grd_rcptcard.colRef("cardamt")) = model.getValue("/root/hidden/uncard["+zc +1+"]/cardamt");
  884. grd_rcptcard.valueMatrix(i,grd_rcptcard.colRef("cardcmpycd")) = model.getValue("/root/hidden/uncard["+zc +1+"]/cardcmpycd");
  885. grd_rcptcard.valueMatrix(i,grd_rcptcard.colRef("rcptstat1")) = model.getValue("/root/hidden/uncard["+zc +1+"]/rcptstat1");
  886. grd_rcptcard.valueMatrix(i,grd_rcptcard.colRef("aprvno")) = model.getValue("/root/hidden/uncard["+zc +1+"]/aprvno");
  887. grd_rcptcard.valueMatrix(i,grd_rcptcard.colRef("aprvdd")) = model.getValue("/root/hidden/uncard["+zc +1+"]/aprvdd");
  888. grd_rcptcard.valueMatrix(i,grd_rcptcard.colRef("aprvtm")) = model.getValue("/root/hidden/uncard["+zc +1+"]/aprvtm");
  889. grd_rcptcard.valueMatrix(i,grd_rcptcard.colRef("aprvflag")) = model.getValue("/root/hidden/uncard["+zc +1+"]/aprvflag");
  890. grd_rcptcard.valueMatrix(i,grd_rcptcard.colRef("keyinptflag")) = model.getValue("/root/hidden/uncard["+zc +1+"]/keyinptflag");
  891. grd_rcptcard.valueMatrix(i,grd_rcptcard.colRef("ordtype")) = model.getValue("/root/hidden/uncard["+zc +1+"]/ordtype");
  892. grd_rcptcard.valueMatrix(i,grd_rcptcard.colRef("vancd")) = model.getValue("/root/hidden/uncard["+zc +1+"]/vancd");
  893. grd_rcptcard.valueMatrix(i,grd_rcptcard.colRef("uncard")) = "card";
  894. model.makeValue("/root/main/info/rcptinfo/opmi/opmi_cardamt", model.getValue("/root/hidden/uncard/cardamt") );
  895. model.makeValue("/root/main/info/rcptinfo/opmi/opmi_rcptamt", model.getValue("/root/hidden/uncard/cardamt") );
  896. //tamt = eval(model.getValue("/root/hidden/uncard["+i+"]/cardamt")) + tamt;
  897. var rcpta = eval(model.getValue("/root/main/info/rcptinfo/opmi/opmi_rcptamt"));
  898. var carda = eval(model.getValue("/root/main/info/rcptinfo/opmi/opmi_cardamt"));
  899. if((rcpta - carda) =="0"){
  900. }else{
  901. model.makeValue("/root/main/info/rcptinfo/opmi/opmi_cashamt",rcpta - carda);
  902. }
  903. }
  904. //model.makeValue("/root/main/info/rcptinfo/opmi/opmi_rcptamt", model.getValue("/root/hidden/uncard/cardamt") );
  905. //model.refresh();
  906. //}
  907. }
  908. }
  909. }
  910. }
  911. function hiddenchange(){
  912. if(getNodesetCount(gHiddenPath + "/opmi_out") > 0 ){
  913. model.copyNode(gRcptInfoPath + "/opmi",gHiddenPath + "/opmi_out");
  914. if( model.getValue("/root/main/list/acptdtl/opmilist[1]/ownbamt") != ""){
  915. var pkgamt = model.getValue("/root/main/list/acptdtl/opmilist[1]/baseexamamt");
  916. var addamt = model.getValue("/root/main/list/acptdtl/opmilist[1]/addexamamt");
  917. var totamt = model.getValue("/root/main/list/acptdtl/opmilist[1]/totamt");
  918. var reduamt = model.getValue("/root/main/list/acptdtl/opmilist[1]/reduamt");
  919. var discamt = model.getValue("/root/main/list/acptdtl/opmilist[1]/discamt");
  920. var cmpyamt = model.getValue("/root/main/list/acptdtl/opmilist[1]/cmpyamt");
  921. var payhealcntramt = model.getValue("/root/main/list/acptdtl/opmilist[1]/payhealcntramt");
  922. var payinsubamt = model.getValue("/root/main/list/acptdtl/opmilist[1]/payinsubamt");
  923. var ownuncoamt = model.getValue("/root/main/list/acptdtl/opmilist[1]/ownuncoamt");
  924. var totuncoamt = model.getValue("/root/main/list/acptdtl/opmilist[1]/totuncoamt");
  925. var ownbamt = model.getValue("/root/main/list/acptdtl/opmilist[1]/ownbamt");
  926. var restamt = model.getValue("/root/main/list/acptdtl/opmilist[1]/restamt");
  927. //model.setValue("/root/main/info/rcptinfo/opmi/opmi_baseexamamt",pkgamt);
  928. //model.setValue("/root/main/info/rcptinfo/opmi/opmi_addexamamt",addamt);
  929. //model.setValue("/root/main/info/rcptinfo/opmi/opmi_totamt",totamt);
  930. //model.setValue("/root/main/info/rcptinfo/opmi/opmi_discamt",discamt);
  931. //model.setValue("/root/main/info/rcptinfo/opmi/opmi_reduamt",reduamt);
  932. //model.setValue("/root/main/info/rcptinfo/opmi/opmi_totdiscamt",reduamt);
  933. //model.setValue("/root/main/info/rcptinfo/opmi/opmi_cmpyamt",cmpyamt);
  934. //model.setValue("/root/main/info/rcptinfo/opmi/opmi_payhealcntramt",payhealcntramt);
  935. //model.setValue("/root/main/info/rcptinfo/opmi/opmi_payinsubamt",payinsubamt);
  936. //model.setValue("/root/main/info/rcptinfo/opmi/opmi_ownuncoamt",ownuncoamt);
  937. //model.setValue("/root/main/info/rcptinfo/opmi/opmi_totuncoamt",totuncoamt);
  938. //model.setValue("/root/main/info/rcptinfo/opmi/opmi_ownbamt",ownbamt);
  939. //model.setValue("/root/main/info/rcptinfo/opmi/opmi_restamt",restamt);
  940. //var ownbamt1 = Number(model.getValue("/root/main/info/rcptinfo/opmi/opmi_ownbamt"));
  941. //var preamt1 = Number(model.getValue("/root/main/info/rcptinfo/opmi/opmi_totprercptamt"));
  942. //var gamamt1 = Number(model.getValue("/root/main/info/rcptinfo/opmi/opmi_reduamt"));
  943. //var restamt1 = Number(model.getValue("/root/main/info/rcptinfo/opmi/opmi_restamt"));
  944. //var amt = ownbamt1 - preamt1 - gamamt1 - restamt1;
  945. //model.setValue("/root/main/info/rcptinfo/opmi/opmi_cardamt", amt);
  946. //model.setValue("/root/main/info/rcptinfo/opmi/opmi_rcptamt", amt);
  947. }
  948. }
  949. if ( getNodesetCount(gHiddenPath + "/dcgm_out") > 0 ){
  950. model.makeNode(gRcptInfoPath + "/s_dcgm/dcgm");
  951. model.copyNode(gRcptInfoPath + "/s_dcgm/dcgm",gHiddenPath + "/dcgm_out");
  952. model.makeNode(gRcptDtltPath + "/dcgmlist");
  953. copyNodesetType("/root/main/list/rcptdtl/dcgmlist", gHiddenPath + "/dcgm_out", "replace");
  954. }
  955. if ( getNodesetCount(gHiddenPath + "/unco_out") > 0 ){
  956. model.makeNode(gRcptInfoPath + "/s_unco/unco");
  957. model.copyNode(gRcptInfoPath + "/s_unco/unco",gHiddenPath + "/unco_out");
  958. model.makeNode(gRcptDtltPath + "/uncolist");
  959. copyNodesetType("/root/main/list/rcptdtl/uncolist", gHiddenPath + "/unco_out", "replace");
  960. }
  961. if ( getNodesetCount(gHiddenPath + "/cardlist") > 0 ){
  962. model.makeNode(gRcptInfoPath + "/cardlist/card");
  963. model.copyNode(gRcptInfoPath + "/cardlist",gHiddenPath + "/cardlist");
  964. model.makeNode("/root/main/list/rcptdtl/cardlist");
  965. copyNodesetType("/root/main/list/rcptdtl/cardlist", gHiddenPath + "/cardlist", "replace");
  966. }
  967. if ( getNodesetCount(gHiddenPath + "/cashlist") > 0 ){
  968. model.makeNode(gRcptInfoPath + "/cashlist/cash");
  969. model.copyNode(gRcptInfoPath + "/cashlist",gHiddenPath + "/cashlist");
  970. model.makeNode("/root/main/list/rcptdtl/cashlist");
  971. copyNodesetType("/root/main/list/rcptdtl/cashlist", gHiddenPath + "/cashlist", "replace");
  972. }
  973. }
  974. function minusamt(){
  975. var rcptamt = (model.getValue("/root/main/info/rcptinfo/opmi/opmi_rcptamt"));
  976. var ircptamt = parseInt(rcptamt);
  977. if (ircptamt < 0){
  978. model.makeValue("/root/main/info/rcptinfo/opmi/opmi_rtnamt",ircptamt);
  979. // model.makeValue("/root/main/info/rcptinfo/opmi/opmi_rcptamt","0");
  980. // 2008.09.26 model.refresh(); // 2008.09.26
  981. }
  982. }
  983. /************************************************************************************************
  984. @author : 채희철
  985. @version : 2007-07-01
  986. 선수금이 있을경우 선수대체를 click시 기 선수금을 선수대체금액으로 입력하고 그 금액만큼 본인부담금에서
  987. 제외 시킨다.
  988. 서버에서는 영수증 발생시 선수금 테이블에 대체로 자료 발생시켜서 선수금 잔액을 떨군다.
  989. ************************************************************************************************/
  990. function fMdlChange(){
  991. //var smdlyn = cbx_mdl.value;
  992. var smdlyn = model.getValue("/root/main/info/rcptinfo/opmi/opmi_mdlyn");
  993. // 현재 남아있는 선수금 잔액
  994. var dmdlremamt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_mdlremamt"));
  995. // 금번 수납시 대체할 선수금액
  996. var dmdlrcptamt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_mdlrcptamt"));
  997. // 선수금액
  998. var dmdlamt = eval(model.getValue(gHiddenPath + "/opmi_out/opmi_mdlremamt"));
  999. // 금번 본인이 수납 해야 할 금액
  1000. var drcptamt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_rcptamt"));
  1001. var drcptamt2 = eval(model.getValue(gHiddenPath + "/opmi_out/opmi_rcptamt"));
  1002. // var drcptoramt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_rcptamt"));
  1003. var drcptoramt = 0;
  1004. /*******************************************************************************************************
  1005. 대체한다고 check할 시 현재 선수잔액을 확인 후 잔액이 없으면 에러
  1006. 수납할 금액이 대체금액보다 적으면 수납금 전체를 대체시키고
  1007. 수납할 금액이 더 많으면 선수금 전체를 대체금액으로 처리하고 본인부담금 - 선수대체금 을 본인수납금으로 처
  1008. *******************************************************************************************************/
  1009. if ( smdlyn == "Y" ){
  1010. if ( dmdlremamt <= 0 ){
  1011. cbx_mdl.value = "N";
  1012. return ;
  1013. }
  1014. if ( drcptamt < dmdlremamt ){
  1015. dmdlrcptamt = drcptamt;
  1016. drcptamt = 0;
  1017. }else{
  1018. dmdlrcptamt = dmdlremamt;
  1019. drcptamt = drcptamt - dmdlrcptamt;
  1020. }
  1021. /*
  1022. if (dmdlrcptamt <0){
  1023. dmdlrcptamt = drcptoramt;
  1024. }
  1025. */
  1026. model.setValue(gRcptInfoPath + "/opmi/opmi_mdlrcptamt", dmdlrcptamt );
  1027. model.setValue(gRcptInfoPath + "/opmi/opmi_rcptamt", drcptamt );
  1028. if ((dmdlremamt - dmdlrcptamt) < 0){
  1029. model.makeValue("/root/main/info/rcptinfo/opmi/opmi_mdlremamt", 0);
  1030. } else{
  1031. model.makeValue("/root/main/info/rcptinfo/opmi/opmi_mdlremamt", dmdlremamt - dmdlrcptamt );
  1032. }
  1033. // model.setValue(gRcptInfoPath + "/opmi/opmi_cashamt", drcptamt );
  1034. model.setValue(gRcptInfoPath + "/opmi/opmi_cardamt", drcptamt );
  1035. }else{
  1036. drcptamt = drcptamt + dmdlrcptamt;
  1037. //dmdlrcptamt = 0;
  1038. //model.setValue(gRcptInfoPath + "/opmi/opmi_mdlremamt", dmdlrcptamt );
  1039. model.setValue(gRcptInfoPath + "/opmi/opmi_mdlremamt", dmdlamt );
  1040. model.setValue(gRcptInfoPath + "/opmi/opmi_mdlrcptamt", 0 );
  1041. //model.setValue(gRcptInfoPath + "/opmi/opmi_rcptamt" , drcptamt );
  1042. model.setValue(gRcptInfoPath + "/opmi/opmi_rcptamt" , drcptamt2 );
  1043. }
  1044. // 2008.09.26 model.refresh(); // 2008.09.26
  1045. }
  1046. /************************************************************************************************
  1047. @author : 채희철
  1048. @version : 2007-07-01
  1049. 선수금이 있을경우 선수대체를 click시 기 선수금을 선수대체금액으로 입력하고 그 금액만큼 본인부담금에서
  1050. 제외 시킨다.
  1051. 서버에서는 영수증 발생시 선수금 테이블에 대체로 자료 발생시켜서 선수금 잔액을 떨군다.
  1052. ************************************************************************************************/
  1053. function fPkgMdlChange(){
  1054. var smdlyn = cbx_pkgmdlyn.value;
  1055. // 현재 남아있는 선수금 잔액
  1056. var dmdlremamt = eval(model.getValue(gChngPath + "/after/after_mdlremamt"));
  1057. // 금번 수납시 대체할 선수금액
  1058. var dmdlrcptamt = eval(model.getValue(gChngPath + "/after/after_mdlrcptamt"));
  1059. // 금번 본인이 수납 해야 할 금액
  1060. var drcptamt = eval(model.getValue(gChngPath + "/after/after_rcptamt"));
  1061. /*******************************************************************************************************
  1062. 대체한다고 check할 시 현재 선수잔액을 확인 후 잔액이 없으면 에러
  1063. 수납할 금액이 대체금액보다 적으면 수납금 전체를 대체시키고
  1064. 수납할 금액이 더 많으면 선수금 전체를 대체금액으로 처리하고 본인부담금 - 선수대체금 을 본인수납금으로 처
  1065. *******************************************************************************************************/
  1066. if ( smdlyn != "N" ){
  1067. if ( dmdlremamt <= 0 ){
  1068. messageBox( "선수금이 없습니다. 선수금 잔액이 있어야 대체가 가능합니다.", "I000");
  1069. cbx_pkgmdlyn.value = "N";
  1070. return ;
  1071. }
  1072. if ( drcptamt < dmdlremamt ){
  1073. dmdlrcptamt = drcptamt;
  1074. drcptamt = 0;
  1075. }else{
  1076. dmdlrcptamt = dmdlremamt;
  1077. drcptamt = drcptamt - dmdlrcptamt;
  1078. }
  1079. model.setValue(gChngPath + "/after/after_mdlrcptamt", dmdlrcptamt );
  1080. model.setValue(gChngPath + "/after/after_rcptamt", drcptamt );
  1081. }else{
  1082. drcptamt = drcptamt + dmdlrcptamt;
  1083. dmdlrcptamt = 0;
  1084. model.setValue(gChngPath + "/after/after_mdlrcptamt", dmdlrcptamt );
  1085. model.setValue(gChngPath + "/after/after_rcptamt" , drcptamt );
  1086. }
  1087. // 2008.09.26 model.refresh(); // 2008.09.26
  1088. }
  1089. function fReceiptCancel(){
  1090. }
  1091. /************************************************************************************************
  1092. @author : 채희철
  1093. @version : 2007-07-01
  1094. 건진계산된 내역에 대해서 수납을 실시한다.
  1095. ************************************************************************************************/
  1096. function fReceipt(sjobflag){
  1097. //취소이고 카드수납을 했으면 카드 수납 취소를 할지..여부를 확인한다.
  1098. if(sjobflag == "CANCEL"){
  1099. var dcardamt = model.getValue(gRcptInfoPath + "/opmi/opmi_cardamt");
  1100. if(dcardamt > 0){
  1101. //계산실시 확인 메세지
  1102. var rtn = messageBox("기카드 수납금액이 "+ dcardamt + "입니다." + "\n" +"카드수납 취소 하시겠습니까?","Q999");
  1103. //카드수납 취소가 아닌 현금 환불일경우..
  1104. if(rtn == 7){
  1105. model.setValue("/root/send/srchcardcancelyn", "N");
  1106. }else{
  1107. model.setValue("/root/send/srchcardcancelyn", "Y");
  1108. }
  1109. }else{
  1110. model.setValue("/root/send/srchcardcancelyn", "N");
  1111. }
  1112. }else{
  1113. model.setValue("/root/send/srchcardcancelyn", "N");
  1114. }
  1115. model.setValue(gSendPath + "/srchjobflag", sjobflag);
  1116. //사용자에 의해서 입력된 수납정보들을 send로 copy한다.
  1117. var vnode =instance1.selectSingleNode( gSendPath + "/s_opmi");
  1118. if(vnode != null){
  1119. var nodeList = vnode.hasChildNodes();
  1120. //자식노드가 없으면 remove -초기화
  1121. if(nodeList=="0"){
  1122. model.makeNode( gSendPath + "/s_opmi/opmi");
  1123. }
  1124. }
  1125. model.copyNode(gSendPath + "/s_opmi/opmi" , gRcptInfoPath + "/opmi");
  1126. model.makeValue(gSendPath + "/s_opmi/opmi/cancelflag" , model.getValue(gRcptInfoPath + "/opmi/cancelflag"));
  1127. model.makeValue(gSendPath + "/s_opmi/opmi/opmi_cmpycd" , model.getValue("/root/main/info/acptinfo/acptlist/cmpycd"));
  1128. //사용자에 의해서 입력된 수납정보들을 send로 copy한다.
  1129. var vnode =instance1.selectSingleNode( gSendPath + "/s_dcgm");
  1130. if(vnode != null){
  1131. var nodeList = vnode.hasChildNodes();
  1132. if(nodeList=="0"){
  1133. //자식노드가 없으면 remove -초기화
  1134. model.makeNode( gSendPath + "/s_dcgm/dcgm");
  1135. }
  1136. }
  1137. var update = grd_dcgm.getUpdateDataAll("i");
  1138. model.setValue(gSendPath + "/s_dcgm/dcgm", update);
  1139. //model.copyNode( gSendPath + "/s_dcgm/dcgm", gRcptInfoPath + "/s_dcgm/dcgm");
  1140. //사용자에 의해서 입력된 수납정보들을 send로 copy한다.
  1141. var vnode =instance1.selectSingleNode( gSendPath + "/s_unco");
  1142. if(vnode != null){
  1143. var nodeList = vnode.hasChildNodes();
  1144. if(nodeList=="0"){
  1145. //자식노드가 없으면 remove -초기화
  1146. model.makeNode( gSendPath + "/s_unco/unco");
  1147. }
  1148. }
  1149. var update = grd_unco.getUpdateDataAll("i");
  1150. model.setValue(gSendPath + "/s_unco/unco", update);
  1151. //model.copyNode( gSendPath + "/s_unco/unco", gRcptInfoPath + "/s_unco/unco");
  1152. //사용자에 의해서 입력된 수납정보들을 send로 copy한다.
  1153. var vnode =instance1.selectSingleNode( gSendPath + "/s_card");
  1154. if(vnode != null){
  1155. var nodeList = vnode.hasChildNodes();
  1156. if(nodeList=="0"){
  1157. //자식노드가 없으면 remove -초기화
  1158. model.makeNode( gSendPath + "/s_card/card");
  1159. }
  1160. }
  1161. var bankData = grd_bank.getUpdateData("insert");
  1162. model.makeValue(gSendPath + "/s_bank/bank" ,bankData );
  1163. //var update = getGridUpdateData(grd_rcptcard);
  1164. var update = grd_rcptcard.getUpdateData("insert");
  1165. model.setValue(gSendPath + "/s_card/cardlist", update);
  1166. //model.copyNode( gSendPath + "/s_card/card", gRcptInfoPath + "/s_card/card");
  1167. //사용자에 의해서 입력된 수납정보들을 send로 copy한다.
  1168. var vnode =instance1.selectSingleNode( gSendPath + "/s_cash");
  1169. if(vnode != null){
  1170. var nodeList = vnode.hasChildNodes();
  1171. if(nodeList=="0"){
  1172. //자식노드가 없으면 remove -초기화
  1173. model.makeNode( gSendPath + "/s_cash/cash");
  1174. }
  1175. }
  1176. var update = grd_rcptcash.getUpdateData("insert");
  1177. model.setValue(gSendPath + "/s_cash/cashlist", update);
  1178. //var update = getGridUpdateData(grd_rcptcash);
  1179. //var update = grd_rcptcash.getUpdateDataAll("i");
  1180. //model.setValue(gSendPath + "/s_cash/cashlist", update);
  1181. //model.copyNode( gSendPath + "/s_cash/cash", gRcptInfoPath + "/s_cash/cash");
  1182. var krnm = model.getValue(gPatInfoPath + "/item/hngnm");
  1183. var orddd = model.getValue(gSendPath + "/srchorddd");
  1184. var pkgnm = model.getValue(gSendPath + "/srchpkgnm");
  1185. //----------------------------------------------------------------------------------------------Start
  1186. //2007-10-22 김상진
  1187. //영수증채번을 먼저한다.
  1188. //INPUT(1.수납일시)
  1189. var rcptdd = getCurrentDate();
  1190. model.setValue(gSendPath + "/rcptdd", rcptdd);
  1191. //INPUT(2.기관코드)
  1192. var instcd = model.getValue( gSendPath + "/srchinstcd");
  1193. model.setValue(gSendPath + "/instcd", instcd);
  1194. //INPUT(3.계산유형)
  1195. model.setValue(gSendPath + "/genrkind", "R");
  1196. rcptoldno = model.getValue("/root/main/info/rcptinfo/s_card/card/rcptno");
  1197. rcptseqno = model.getValue("/root/main/info/rcptinfo/s_card/card/rcptseqno");
  1198. if(submit("TRAHA02105", false)){
  1199. //영수증번호를 채번하여 셋팅한다.
  1200. model.makeNode("/root/hidden");
  1201. var rcptno = model.getValue(gHiddenPath + "/rcptno_out/rcptno/opmi_rcptno")
  1202. model.setValue( gSendPath + "/opmi_rcptno", rcptno);
  1203. }
  1204. //----------------------------------------------------------------------------------------------End
  1205. model.makeValue("/root/send/rcptno" , model.getValue("/root/hidden/rcpt_out"));
  1206. model.makeValue("/root/send/rcptno" , model.getValue("/root/send/opmi_rcptno"));
  1207. model.makeValue("/root/main/send/card/rcptoldno" , model.getValue("/root/main/info/rcptinfo/s_card/card/rcptno"));
  1208. model.makeValue("/root/main/send/card/rcptseqno" , model.getValue("/root/main/info/rcptinfo/s_card/card/rcptseqno"));
  1209. model.makeValue(gSendPath + "/s_opmi/opmi/cancelflag" , model.getValue(gRcptInfoPath + "/opmi/cancelflag"));
  1210. if(submit("TXAHA02102", false)){
  1211. //btn_opmi.dispatch("onclick"); // case_tab 을 강제로 카드에 맞추기 위함..
  1212. if(sjobflag == "CANCEL"){
  1213. messageBox( krnm + " 님의 " + orddd + "일자 " + pkgnm + "\n" +"수납이 정상적으로 취소되었습니다 ", "I999");
  1214. }else{
  1215. messageBox( krnm + " 님의 " + orddd + "일자 " + pkgnm + "\n" +"수납이 정상적으로 처리 되었습니다. ", "I999");
  1216. }
  1217. //수납 버튼 비활성화 시킴..
  1218. //btn_rcpt.disabled = true;
  1219. //영수증 출력버튼 활성화
  1220. //btn_reprt.disabled = false;
  1221. var shealexamflag = model.getValue(gSendPath + "/srchhealexamflag");
  1222. var srsrvdd = model.getValue(gSendPath + "/srchrsrvdd");
  1223. var srsrvno = model.getValue(gSendPath + "/srchrsrvno");
  1224. var sinstcd = model.getValue(gSendPath + "/srchinstcd");
  1225. //수납된 접수자료의 수납상태값을 수납으로 돌리고 다시 rebuild 함
  1226. for(var iCount=1; iCount<grd_acptlist.rows; iCount++){
  1227. if(model.getValue(gAcptPath + "/acptlist["+iCount+"]/healexamflag") == shealexamflag &&
  1228. model.getValue(gAcptPath + "/acptlist["+iCount+"]/rsrvdd") == srsrvdd &&
  1229. model.getValue(gAcptPath + "/acptlist["+iCount+"]/rsrvno") == srsrvno &&
  1230. model.getValue(gAcptPath + "/acptlist["+iCount+"]/instcd") == sinstcd){
  1231. if(sjobflag == "RCPT"){
  1232. model.setValue(gAcptPath + "/acptlist["+iCount+"]/rcptstat", "N");
  1233. }else{
  1234. model.setValue(gAcptPath + "/acptlist["+iCount+"]/rcptstat", "Y");
  1235. }
  1236. grd_acptlist.rebuild();
  1237. //수납 영수증 key값 세팅
  1238. //model.setValue( gSendPath + "/srchrcptdd", model.getValue(gHiddenPath + "/opmi_out/rcptdd"));
  1239. //model.setValue( gSendPath + "/srchrcptno", model.getValue(gHiddenPath + "/opmi_out/rcptno"));
  1240. //model.setValue( gSendPath + "/srchrcptseqno", model.getValue(gHiddenPath + "/opmi_out/rcptseqno"));
  1241. //해당접수건의 세부자료 load한다.
  1242. fSetSelectAcpt(iCount);
  1243. break;
  1244. }
  1245. }
  1246. //수납된 내역의 영수증 print한다.
  1247. model.makeValue("/root/send/rcptno", model.getValue("/root/send/opmi_rcptno"));
  1248. if(model.getValue("/root/main/print") == "Y"){
  1249. btn_search.dispatch("DOMActivate");
  1250. grd_rcptlist.row = 1;
  1251. grd_rcptlist.dispatch("ondblclick");
  1252. fReceiptPrint();
  1253. }
  1254. }else{
  1255. }
  1256. minusCard();
  1257. }
  1258. /************************************************************************************************
  1259. @author : 김호익
  1260. @version : 2007-07-01
  1261. 선택된 카드 수납 취소 한다
  1262. ************************************************************************************************/
  1263. function fReceiptCard(sjobflag){
  1264. if(sjobflag == "CANCEL"){
  1265. model.setValue("/root/send/srchcardcancelyn", "Y");
  1266. }
  1267. model.setValue(gSendPath + "/srchjobflag", sjobflag);
  1268. //사용자에 의해서 입력된 수납정보들을 send로 copy한다.
  1269. var vnode =instance1.selectSingleNode( gSendPath + "/s_card");
  1270. if(vnode != null){
  1271. var nodeList = vnode.hasChildNodes();
  1272. if(nodeList=="0") {//자식노드가 없으면 remove -초기화
  1273. model.makeNode( gSendPath + "/s_card/card");
  1274. }
  1275. }
  1276. var nodeList = instance1.selectNodes(gRcptDtltPath +"/cardlist[" + grd_rcptcard.row +"]");
  1277. var update = getNodeListCSV(nodeList);
  1278. model.setValue(gSendPath + "/s_card/cardlist", update);
  1279. //model.copyNode( gSendPath + "/s_card/card", gRcptInfoPath + "/s_card/card");
  1280. var krnm = model.getValue(gPatInfoPath + "/item/hngnm");
  1281. var orddd = model.getValue( gSendPath + "/srchorddd");
  1282. var pkgnm = model.getValue( gSendPath + "/srchpkgnm");
  1283. var rcptdd = getCurrentDate();
  1284. model.setValue( gSendPath + "/rcptdd", rcptdd);
  1285. //INPUT(2.기관코드)
  1286. var instcd = model.getValue( gSendPath + "/srchinstcd");
  1287. model.setValue( gSendPath + "/instcd", instcd);
  1288. //INPUT(3.계산유형)
  1289. model.setValue( gSendPath + "/genrkind", "R");
  1290. model.makeValue("/root/send/pid" , model.getValue("/root/main/info/patinfo/item/pid"));
  1291. model.makeValue("/root/send/rcptdd" , grd_rcptcard.valueMatrix(grd_rcptcard.row,grd_rcptcard.colRef("rcptdd")));
  1292. model.makeValue("/root/send/cardamt" , grd_rcptcard.valueMatrix(grd_rcptcard.row,grd_rcptcard.colRef("cardamt")));
  1293. model.makeValue("/root/send/cardno" , grd_rcptcard.valueMatrix(grd_rcptcard.row,grd_rcptcard.colRef("cardno")));
  1294. model.makeValue("/root/send/rcptno" , grd_rcptcard.valueMatrix(grd_rcptcard.row,grd_rcptcard.colRef("rcptno")));
  1295. if(submit("TXAHA02203", false)){
  1296. //btn_opmi.dispatch("onclick"); // case_tab 을 강제로 카드에 맞추기 위함..
  1297. if(sjobflag == "CANCEL"){
  1298. messageBox( krnm + " 님의 " + orddd + "일자 " + pkgnm + "\n" +"수납이 정상적으로 취소 처리 되었습니다. ", "I999");
  1299. }else{
  1300. messageBox( krnm + " 님의 " + orddd + "일자 " + pkgnm + "\n" +"수납이 정상적으로 처리 되었습니다. ", "I999");
  1301. }
  1302. //btn_rcpt.disabled = true;
  1303. //영수증 출력버튼 활성화
  1304. //btn_reprt.disabled = false;
  1305. var shealexamflag = model.getValue( gSendPath + "/srchhealexamflag");
  1306. var srsrvdd = model.getValue( gSendPath + "/srchrsrvdd");
  1307. var srsrvno = model.getValue( gSendPath + "/srchrsrvno");
  1308. var sinstcd = model.getValue( gSendPath + "/srchinstcd");
  1309. //수납된 접수자료의 수납상태값을 수납으로 돌리고 다시 rebuild 함
  1310. for(var iCount = 1; iCount< grd_acptlist.rows ; iCount++){
  1311. if (model.getValue(gAcptPath + "/acptlist["+iCount+"]/healexamflag") == shealexamflag &&
  1312. model.getValue(gAcptPath + "/acptlist["+iCount+"]/rsrvdd") == srsrvdd &&
  1313. model.getValue(gAcptPath + "/acptlist["+iCount+"]/rsrvno") == srsrvno &&
  1314. model.getValue(gAcptPath + "/acptlist["+iCount+"]/instcd") == sinstcd ) {
  1315. if ( sjobflag == "RCPT" ){
  1316. model.setValue(gAcptPath + "/acptlist["+iCount+"]/rcptstat","N");
  1317. }else{
  1318. model.setValue(gAcptPath + "/acptlist["+iCount+"]/rcptstat","Y");
  1319. }
  1320. grd_acptlist.rebuild();
  1321. // 수납 영수증 key값 세팅
  1322. //model.setValue( gSendPath + "/srchrcptdd", model.getValue(gHiddenPath + "/opmi_out/rcptdd"));
  1323. //model.setValue( gSendPath + "/srchrcptno", model.getValue(gHiddenPath + "/opmi_out/rcptno"));
  1324. //model.setValue( gSendPath + "/srchrcptseqno", model.getValue(gHiddenPath + "/opmi_out/rcptseqno"));
  1325. // 해당접수건의 세부자료 load한다.
  1326. fSetSelectAcpt(iCount);
  1327. break;
  1328. }
  1329. }
  1330. }else{
  1331. }
  1332. }
  1333. /************************************************************************************************
  1334. @author : 김호익
  1335. @version : 2007-07-01
  1336. 선택된 현금영수증 취소
  1337. ************************************************************************************************/
  1338. function fReceiptCash(sjobflag){
  1339. if ( sjobflag == "CANCEL"){
  1340. model.setValue("/root/send/srchcardcancelyn", "Y");
  1341. }
  1342. model.setValue( gSendPath + "/srchjobflag", sjobflag);
  1343. // 사용자에 의해서 입력된 수납정보들을 send로 copy한다.
  1344. // 사용자에 의해서 입력된 수납정보들을 send로 copy한다.
  1345. var vnode =instance1.selectSingleNode( gSendPath + "/s_cash");
  1346. if (vnode != null) {
  1347. var nodeList = vnode.hasChildNodes();
  1348. if (nodeList=="0") { //자식노드가 없으면 remove -초기화
  1349. model.makeNode( gSendPath + "/s_cash/cash");
  1350. }
  1351. }
  1352. var nodeList = instance1.selectNodes(gRcptDtltPath +"/cashlist[" + grd_rcptcash.row +"]");
  1353. //var update = getNodeListCSV(nodeList);
  1354. grd_rcptcash.clearStatus();
  1355. grd_rcptcash.rowStatus(grd_rcptcash.row) = 2;
  1356. //model.setValue("/root/main/info/rsrvacptinfo/addlst["+ grd_rcptcash.row + "]/m ", "u");
  1357. var update = grd_rcptcash.getUpdateData("update") ;
  1358. //var update = getNodeListCSV(nodeList);
  1359. model.setValue(gSendPath + "/s_cash/cashlist", update);
  1360. //model.copyNode( gSendPath + "/s_card/card", gRcptInfoPath + "/s_card/card");
  1361. var krnm = model.getValue(gPatInfoPath + "/item/hngnm");
  1362. var orddd = model.getValue( gSendPath + "/srchorddd");
  1363. var pkgnm = model.getValue( gSendPath + "/srchpkgnm");
  1364. var rcptdd = getCurrentDate();
  1365. model.setValue( gSendPath + "/rcptdd", rcptdd);
  1366. // INPUT(2.기관코드)
  1367. var instcd = model.getValue( gSendPath + "/srchinstcd");
  1368. model.setValue( gSendPath + "/instcd", instcd);
  1369. // INPUT(3.계산유형)
  1370. model.setValue( gSendPath + "/genrkind", "R");
  1371. model.makeValue("/root/send/cashamt" , grd_rcptcash.valueMatrix(grd_rcptcash.row,grd_rcptcash.colRef("cashamt")));
  1372. // model.makeValue("/root/send/cashno" , grd_rcptcard.valueMatrix(grd_rcptcard.row,grd_rcptcard.colRef("cardno")));
  1373. model.makeValue("/root/send/rcptno" , grd_rcptcash.valueMatrix(grd_rcptcash.row,grd_rcptcash.colRef("rcptno")));
  1374. model.makeValue("/root/send/rcptseqno" , grd_rcptcash.valueMatrix(grd_rcptcash.row,grd_rcptcash.colRef("rcptseqno")));
  1375. if ( submit("TXAHA02204",false)){
  1376. var dcashamt = parseFloat(model.getValue("/root/main/list/rcptdtl/cashlist[" + grd_rcptcash.row + "]/cashamt")) * -1;
  1377. model.setValue("/root/main/info/rcptinfo/opmi/opmi_cashamt", dcashamt);
  1378. model.setValue("/root/main/info/rcptinfo/opmi/opmi_paygubun", "N");
  1379. model.setValue("/root/main/info/rcptinfo/opmi/opmi_rcptamt", dcashamt);
  1380. btn_rcpt.dispatch("DOMActivate");
  1381. btn_calc.dispatch("DOMActivate");
  1382. model.refresh();
  1383. // btn_opmi.dispatch("onclick"); // case_tab 을 강제로 카드에 맞추기 위함..
  1384. /*
  1385. if ( sjobflag == "CANCEL"){
  1386. messageBox( krnm + " 님의 " + orddd + "일자 " + pkgnm + "\n" +
  1387. "수납이 정상적으로 취소 처리 되었습니다.. ", "I999");
  1388. }else{
  1389. messageBox( krnm + " 님의 " + orddd + "일자 " + pkgnm + "\n" +
  1390. "수납이 정상적으로 처리 되었습니다. ", "I999");
  1391. }
  1392. */
  1393. // btn_rcpt.disabled = true;
  1394. // 영수증 출력버튼 활성화
  1395. // btn_reprt.disabled = false;
  1396. /*
  1397. var shealexamflag = model.getValue( gSendPath + "/srchhealexamflag");
  1398. var srsrvdd = model.getValue( gSendPath + "/srchrsrvdd");
  1399. var srsrvno = model.getValue( gSendPath + "/srchrsrvno");
  1400. var sinstcd = model.getValue( gSendPath + "/srchinstcd");
  1401. // 수납된 접수자료의 수납상태값을 수납으로 돌리고 다시 rebuild 함
  1402. for (var iCount = 1; iCount< grd_acptlist.rows ; iCount++) {
  1403. if (model.getValue(gAcptPath + "/acptlist["+iCount+"]/healexamflag") == shealexamflag &&
  1404. model.getValue(gAcptPath + "/acptlist["+iCount+"]/rsrvdd") == srsrvdd &&
  1405. model.getValue(gAcptPath + "/acptlist["+iCount+"]/rsrvno") == srsrvno &&
  1406. model.getValue(gAcptPath + "/acptlist["+iCount+"]/instcd") == sinstcd ) {
  1407. if ( sjobflag == "RCPT" ){
  1408. model.setValue(gAcptPath + "/acptlist["+iCount+"]/rcptstat","N");
  1409. }else{
  1410. model.setValue(gAcptPath + "/acptlist["+iCount+"]/rcptstat","Y");
  1411. }
  1412. grd_acptlist.rebuild();
  1413. // 수납 영수증 key값 세팅
  1414. //model.setValue( gSendPath + "/srchrcptdd", model.getValue(gHiddenPath + "/opmi_out/rcptdd"));
  1415. //model.setValue( gSendPath + "/srchrcptno", model.getValue(gHiddenPath + "/opmi_out/rcptno"));
  1416. //model.setValue( gSendPath + "/srchrcptseqno", model.getValue(gHiddenPath + "/opmi_out/rcptseqno"));
  1417. // 해당접수건의 세부자료 load한다.
  1418. fSetSelectAcpt(iCount);
  1419. break;
  1420. }
  1421. }
  1422. */
  1423. }else{
  1424. }
  1425. }
  1426. function fReceiptPrint(){
  1427. var spid = model.getValue( gSendPath + "/srchpid");
  1428. var shealexamflag = model.getValue( gSendPath + "/srchhealexamflag");
  1429. var shealexamdetlflag = model.getValue( gSendPath + "/srchhealexamdetlflag");
  1430. var srcptdd = model.getValue( gSendPath + "/srchrcptdd");
  1431. var srcptno = model.getValue( gSendPath + "/rcptno");
  1432. var srcptseqno = model.getValue( gSendPath + "/srchrcptseqno");
  1433. var sorddd = model.getValue( gSendPath + "/srchorddd");
  1434. var scretno = model.getValue( gSendPath + "/srchcretno");
  1435. var sinstcd = model.getValue( gSendPath + "/srchinstcd");
  1436. var tempReceiptPath = "/root/temp/receipt/";
  1437. //영수증 유형구분을 건진수납분은 RCPT로 정의한다.
  1438. model.makeValue(tempReceiptPath + "ordtype" , "RCPT");
  1439. //수납내역 key값 세팅
  1440. model.makeValue(tempReceiptPath + "pid" , spid);
  1441. model.makeValue(tempReceiptPath + "healexamflag" , shealexamflag);
  1442. model.makeValue(tempReceiptPath + "healexamdetlflag" , shealexamdetlflag);
  1443. model.makeValue(tempReceiptPath + "rcptdd" , srcptdd);
  1444. model.makeValue(tempReceiptPath + "rcptno" , srcptno);
  1445. model.makeValue(tempReceiptPath + "rcptseqno" , srcptseqno);
  1446. model.makeValue(tempReceiptPath + "orddd" , sorddd);
  1447. model.makeValue(tempReceiptPath + "cretno" , scretno);
  1448. model.makeValue(tempReceiptPath + "instcd" , sinstcd);
  1449. model.makeValue(tempReceiptPath + "rsrvdd" , model.getValue("/root/main/info/acptinfo/acptlist/rsrvdd"));
  1450. model.makeValue(tempReceiptPath + "rsrvno" , model.getValue("/root/main/info/acptinfo/acptlist/rsrvno"));
  1451. //무엇에 쓰는지 모르지만 default로 세팅
  1452. model.makeValue(tempReceiptPath + "fromdd" , "" );
  1453. model.makeValue(tempReceiptPath + "todd" , "");
  1454. model.makeValue(tempReceiptPath + "engYN" , "N");
  1455. model.makeValue(tempReceiptPath + "reprintYN" , "N");
  1456. model.makeValue(tempReceiptPath + "ordrcptflag" , "");
  1457. model.makeValue(tempReceiptPath + "cardamt" , model.getValue("/root/main/info/rcptinfo/opmi/opmi_cardamt"));
  1458. //기업건진일 경우 전화번호로 변경
  1459. if(shealexamdetlflag == 'C03'){
  1460. model.makeValue("/root/init/addrinfo/CP2", model.getValue("/root/init/baseinfo/initaddrinfo/R001[cdid = 'CP4']/cdnm"));
  1461. }
  1462. //영수증 화면 open...나머지 로직은 해당 화면에서 돌아감..
  1463. //open("SPAHA02110");
  1464. modal("../../../ast/healexamrcptweb/xrw/SPAHA02110", "1","100", "100", "SPAHA02110", "", "");
  1465. if(checkOpener()){
  1466. opener.javascript.setParameter("SMAHA02100_RTN", "Y");
  1467. //window.close();
  1468. }else{
  1469. //출력 하고 다시 정상수납상태로 돌려 놓는다.
  1470. model.setValue(gSendPath + "/srchjobflag", "RCPT");
  1471. //영수증 출력하고 모든것을 다시 clear 시킴..
  1472. fInitInfo();
  1473. }
  1474. }
  1475. function fReceiptPrintCard(){
  1476. model.makeValue(gSendPath + "/srchpid" , grd_rcptcard.valueMatrix(grd_rcptcard.row,grd_rcptcard.colRef("pid")));
  1477. model.makeValue(gSendPath + "/srchrcptdd" , grd_rcptcard.valueMatrix(grd_rcptcard.row,grd_rcptcard.colRef("rcptdd")));
  1478. model.makeValue(gSendPath + "/rcptno" , grd_rcptcard.valueMatrix(grd_rcptcard.row,grd_rcptcard.colRef("rcptno")));
  1479. model.makeValue(gSendPath + "/srchrcptseqno" , grd_rcptcard.valueMatrix(grd_rcptcard.row,grd_rcptcard.colRef("rcptseqno")) );
  1480. model.makeValue(gSendPath + "/srchcretno" , model.getValue("/root/main/info/acptinfo/acptlist/cretno"));
  1481. var spid = model.getValue( gSendPath + "/srchpid");
  1482. var shealexamflag = model.getValue( gSendPath + "/srchhealexamflag");
  1483. var srcptdd = model.getValue( gSendPath + "/srchrcptdd");
  1484. //var srcptno = model.getValue( gSendPath + "/srchrcptno");
  1485. var srcptno = model.getValue( gSendPath + "/rcptno");
  1486. var srcptseqno = model.getValue( gSendPath + "/srchrcptseqno");
  1487. var sorddd = model.getValue( gSendPath + "/srchorddd");
  1488. var scretno = model.getValue( gSendPath + "/srchcretno");
  1489. var sinstcd = model.getValue( gSendPath + "/srchinstcd");
  1490. //var cardamt = model.getValue( gSendPath + "/cardamt");
  1491. var tempReceiptPath = "/root/temp/receipt/";
  1492. //유형구분 - SPAHA02110_영수증출력.xrw
  1493. if(model.getValue("/root/main/engprint") == "Y"){
  1494. model.makeValue(tempReceiptPath + "ordtype" , "ENGCARD"); //영문영수증 - ENGCARD
  1495. }else{
  1496. model.makeValue(tempReceiptPath + "ordtype" , "CARD"); //한글영수증 - CARD
  1497. }
  1498. //수납내역 key값 세팅
  1499. model.makeValue(tempReceiptPath + "pid", spid );
  1500. model.makeValue(tempReceiptPath + "healexamflag", shealexamflag);
  1501. model.makeValue(tempReceiptPath + "rcptdd", srcptdd );
  1502. model.makeValue(tempReceiptPath + "rcptno", srcptno );
  1503. model.makeValue(tempReceiptPath + "rcptseqno", srcptseqno);
  1504. model.makeValue(tempReceiptPath + "orddd", sorddd);
  1505. model.makeValue(tempReceiptPath + "cretno", scretno);
  1506. model.makeValue(tempReceiptPath + "instcd", sinstcd);
  1507. //무엇에 쓰는지 모르지만 default로 세팅
  1508. model.makeValue(tempReceiptPath + "fromdd", "" );
  1509. model.makeValue(tempReceiptPath + "todd", "");
  1510. model.makeValue(tempReceiptPath + "engYN", "N");
  1511. model.makeValue(tempReceiptPath + "reprintYN", "N");
  1512. model.makeValue(tempReceiptPath + "ordrcptflag", "");
  1513. model.makeValue(tempReceiptPath + "cardamt", model.getValue("/root/main/info/rcptinfo/opmi/opmi_cardamt"));
  1514. //영수증 화면 open...나머지 로직은 해당 화면에서 돌아감..
  1515. //open("SPAHA02110");
  1516. modal("../../../ast/healexamrcptweb/xrw/SPAHA02110", "1","100", "100", "SPAHA02110", "", "");
  1517. if(checkOpener()){
  1518. opener.javascript.setParameter("SMAHA02100_RTN","Y");
  1519. //window.close();
  1520. }else{
  1521. //출력 하고 다시 정상수납상태로 돌려 놓는다.
  1522. model.setValue( gSendPath + "/srchjobflag", "RCPT");
  1523. //영수증 출력하고 모든것을 다시 clear 시킴..
  1524. fInitInfo();
  1525. }
  1526. }
  1527. /************************************************************************************************
  1528. @author : 채희철
  1529. @version : 2007-07-01
  1530. 정산버튼을 클릭한다.
  1531. 변경된 접수정보( 팩키지, 거래처, 계약번호, 청구방법, 할인방법등을 update한다.
  1532. 변경된 정보로 기본 package 가 변경된 경우 기존 pkg처방은 dc시키고 새로운 pkg처방 발생시킨다.
  1533. 변경전 pkg 의 세부검사와 변경후 pkg 의 세부검사가 틀릴경우 빠지는 처방은 dc처방을 발생시킨다.
  1534. 추가 처방은 사용자가 알아서 입력한다.
  1535. 재계산을 수행한다.
  1536. ************************************************************************************************/
  1537. function fChngRcpt(){
  1538. /*
  1539. if ( model.getValue( gChngPath + "/before/before_pkgcd") == model.getValue(gChngPath + "/after/after_pkgcd") &&
  1540. model.getValue( gChngPath + "/before/before_pkguncocd") == model.getValue(gChngPath + "/after/after_pkguncocd") &&
  1541. model.getValue( gChngPath + "/before/before_disccd") == model.getValue(gChngPath + "/after/after_disccd") ) {
  1542. messageBox( "정산전의 접수정보와 정산후의 접수정보가 변경된 내역이 없습니다. " + "\n" +
  1543. "정산작업이 불필요 합니다.", "I999");
  1544. return;
  1545. }
  1546. */
  1547. //사용자에 의해서 입력된 정산정보들을 send로 copy한다.
  1548. var vnode =instance1.selectSingleNode(gSendPath + "/s_chng");
  1549. if(vnode != null){
  1550. var nodeList = vnode.hasChildNodes();
  1551. if(nodeList == "0"){ //자식노드가 없으면 remove -초기화
  1552. model.makeNode(gSendPath + "/s_chng/before");
  1553. model.makeNode(gSendPath + "/s_chng/after");
  1554. }
  1555. }
  1556. model.copyNode(gSendPath + "/s_chng/before", gChngPath + "/before");
  1557. //사용자에 의해서 입력된 정산정보들을 send로 copy한다.
  1558. model.copyNode(gSendPath + "/s_chng/after", gChngPath + "/after");
  1559. var krnm = model.getValue(gPatInfoPath + "/item/hngnm");
  1560. var orddd = model.getValue(gSendPath + "/srchorddd");
  1561. var pkgnm = model.getValue(gSendPath + "/srchpkgnm");
  1562. //정산정보 저장후 계산실행
  1563. model.makeValue("/root/send/s_chng/after/cmpycd" , model.getValue("/root/main/info/chnginfo/after/cmpycd"));
  1564. model.makeValue("/root/send/s_chng/after/after_conseq" , model.getValue("/root/main/info/chnginfo/after/after_conseq"));
  1565. model.makeValue("/root/send/s_chng/after/conhistseq" , model.getValue("/root/main/info/chnginfo/after/conhistseq"));
  1566. if(submit("TXAHA02103", false)){
  1567. //btn_opmi.dispatch("onclick"); //case_tab 을 강제로 카드에 맞추기 위함..
  1568. messageBox( krnm + " 님의 " + orddd + "일자 " + pkgnm + "\n" +
  1569. "정산작업이 정상적으로 처리 되었습니다. \n" +
  1570. "계산내역을 확인후 수납처리 하십시요", "I999");
  1571. //계산 버튼 비활성화
  1572. //btn_calc.disabled = true;김호익 잠시만 테스트를 위해
  1573. var shealexamflag = model.getValue(gSendPath + "/srchhealexamflag");
  1574. var srsrvdd = model.getValue(gSendPath + "/srchrsrvdd");
  1575. var srsrvno = model.getValue(gSendPath + "/srchrsrvno");
  1576. var sinstcd = model.getValue(gSendPath + "/srchinstcd");
  1577. //수납된 접수자료의 패키지, 할인, 청구방법 정보를 돌리고..rebuild
  1578. for(var iCount=1; iCount<grd_acptlist.rows; iCount++){
  1579. if(model.getValue(gAcptPath + "/acptlist["+iCount+"]/healexamflag") == shealexamflag &&
  1580. model.getValue(gAcptPath + "/acptlist["+iCount+"]/rsrvdd") == srsrvdd &&
  1581. model.getValue(gAcptPath + "/acptlist["+iCount+"]/rsrvno") == srsrvno &&
  1582. model.getValue(gAcptPath + "/acptlist["+iCount+"]/instcd") == sinstcd ) {
  1583. //계산상태로 전환
  1584. model.setValue(gAcptPath + "/acptlist["+iCount+"]/rcptstat","X");
  1585. //패키지
  1586. model.setValue(gAcptPath + "/acptlist["+iCount+"]/pkgcd" , model.getValue(gChngPath + "/after/after_pkgcd"));
  1587. model.setValue(gAcptPath + "/acptlist["+iCount+"]/pkgnm" , model.getValue(gChngPath + "/after/after_pkgnm"));
  1588. model.setValue(gAcptPath + "/acptlist["+iCount+"]/uncocd" , model.getValue(gChngPath + "/after/after_pkguncocd"));
  1589. model.setValue(gAcptPath + "/acptlist["+iCount+"]/disccd" , model.getValue(gChngPath + "/after/after_disccd"));
  1590. model.setValue(gPkgPath + "/pkgcd",model.getValue(gChngPath + "/after/after_pkgcd"));
  1591. model.setValue(gPkgPath + "/pkgnm",model.getValue(gChngPath + "/after/after_pkgnm"));
  1592. //청구방법
  1593. model.setValue(gPkgPath + "/uncocd",model.getValue(gChngPath + "/after/after_pkguncocd"));
  1594. //할인코드
  1595. model.setValue(gPkgPath + "/disccd",model.getValue(gChngPath + "/after/after_disccd"));
  1596. grd_acptlist.rebuild();
  1597. //해당접수건의 세부자료 load한다.
  1598. fSetSelectAcpt(iCount);
  1599. break;
  1600. }
  1601. }
  1602. //계산내역 조회.
  1603. btn_receipt.dispatch("onclick");// case_tab 을 강제로 수납에 맞추기 위함..
  1604. //btn_oscl.dispatch("onclick"); // case_tab 을 강제로 수납에 맞추기 위함..
  1605. minusamt();
  1606. }
  1607. }
  1608. /************************************************************************************************
  1609. @author : 김호익
  1610. @version : 2007-12-11
  1611. 단체 및 개인금액 수정시 단체 및 개인소계 금액 변경
  1612. ************************************************************************************************/
  1613. function fCalcChange(vCheckData){
  1614. //2008.09.26 model.refresh(); // 2008.09.26
  1615. //var aa = model.getValue("/root/main/info/rcptinfo/opmi/opmi_ownbamt");
  1616. var iTotamt = parseFloat(model.getValue("/root/main/info/rcptinfo/opmi/opmi_totamt")); //소계금액
  1617. var iTotuncoamt = parseFloat(model.getValue("/root/main/info/rcptinfo/opmi/opmi_totuncoamt")); //미수소계금액
  1618. var itotdiscamt = parseFloat(model.getValue("/root/main/info/rcptinfo/opmi/opmi_totdiscamt")); //할인 소계금액
  1619. var iOwnbamt = parseFloat(model.getValue("/root/main/info/rcptinfo/opmi/opmi_ownbamt").replace(/,/g,"")); //개인부담액
  1620. var iCmpamt = parseFloat(model.getValue("/root/main/info/rcptinfo/opmi/opmi_cmpyamt")); //단체 미수금액
  1621. var ipayinsubamt = parseFloat(model.getValue("/root/main/info/rcptinfo/opmi/opmi_payinsubamt")); //공단미수액
  1622. var ipayhealcntramt = parseFloat(model.getValue("/root/main/info/rcptinfo/opmi/opmi_payhealcntramt")); //보건소 미수액
  1623. var iownuncoamt = parseFloat(model.getValue("/root/main/info/rcptinfo/opmi/opmi_ownuncoamt")); //개인미수액
  1624. var ircptamt = parseFloat(model.getValue("/root/main/info/rcptinfo/opmi/opmi_rcptamt")); //납부할 금액
  1625. var iCTotamt = iTotamt - (itotdiscamt + iOwnbamt);
  1626. var itotprercptamt = parseFloat(model.getValue("/root/main/info/rcptinfo/opmi/opmi_totprercptamt")); //기수납금액
  1627. if(vCheckData =="1"){
  1628. iCmpamt = iTotamt - (iOwnbamt + ipayinsubamt); //단체 미수금 계산
  1629. model.setValue("/root/main/info/rcptinfo/opmi/opmi_cmpyamt" , iCmpamt - itotdiscamt); //단체 미수금액
  1630. model.setValue("/root/main/info/rcptinfo/opmi/opmi_rcptamt" , iOwnbamt - itotprercptamt); //납부할 금액
  1631. model.setValue("/root/main/info/rcptinfo/opmi/opmi_totuncoamt", iCTotamt ); //미수총계
  1632. opmi_rcptamt_calc();
  1633. //2008.09.26 model.refresh();
  1634. }
  1635. if(vCheckData =="2"){
  1636. iOwnbamt = iTotamt - (iCmpamt + ipayinsubamt); //개인 미수금 계산
  1637. model.setValue("/root/main/info/rcptinfo/opmi/opmi_ownbamt" , iOwnbamt - itotdiscamt); //???? ????????
  1638. model.setValue("/root/main/info/rcptinfo/opmi/opmi_rcptamt" , iOwnbamt - itotdiscamt); //?????? ????
  1639. model.setValue("/root/main/info/rcptinfo/opmi/opmi_totuncoamt", iCTotamt ); //????????
  1640. opmi_rcptamt_calc();
  1641. //2008.09.26 model.refresh();
  1642. }
  1643. }
  1644. /************************************************************************************************
  1645. @author : 채희철
  1646. @version : 2007-07-01
  1647. 감면 버튼 클릭한다.
  1648. ************************************************************************************************/
  1649. function fDcgmCalc(){
  1650. //감액노드에 데이타가 없을 경우 빈 node (dcgm) 도 삭제한다(clear)-------------
  1651. var vnode =instance1.selectSingleNode("/root/send/s_dcgm/dcgm");
  1652. if (vnode != null) {
  1653. var nodeList = vnode.hasChildNodes();
  1654. if (nodeList=="0") { //자식노드가 없으면 remove -초기화
  1655. model.removenode("/root/send/s_dcgm/dcgm");
  1656. }
  1657. }
  1658. setParameter("SPAHA02140_RCPTAMT", model.getValue( gRcptInfoPath + "/opmi/opmi_rcptamt"));
  1659. setParameter("SPAHA02140_DISCAMT", model.getValue( gRcptInfoPath + "/opmi/opmi_discamt"));
  1660. setParameter("SPAHA02140_REDUAMT", model.getValue( gRcptInfoPath + "/opmi/opmi_reduamt"));
  1661. // 사용자에 의해서 입력된 정산정보들을 send로 copy한다.
  1662. var vnode =instance1.selectSingleNode( gRcptInfoPath + "/s_dcgm");
  1663. if (vnode != null) {
  1664. var nodeList = vnode.hasChildNodes();
  1665. if (nodeList=="0") { //자식노드가 없으면 remove -초기화
  1666. model.makeNode( gRcptInfoPath + "/s_dcgm/dcgm");
  1667. }
  1668. }
  1669. setParameter("SPAHA02140_SENDPATH", gRcptInfoPath + "/s_dcgm/dcgm");
  1670. setParameter("SPAHA02140_RCVPATH", gRcptInfoPath + "/s_dcgm/dcgm");
  1671. modal("../../../ast/healexamrcptweb/xrw/SPAHA02140", "1","400", "400", "SPAHA02140", "", "");
  1672. //확인이 되었으면 수납 할 금액들을 재 계산한다.
  1673. if ( getParameter("SPAHA02140_RTN") == "Y"){
  1674. var discAmt = eval(getParameter("SPAHA02140_DISCAMT")); //총할인 감면액
  1675. discamt = parseFloat(discAmt==""?"0":discAmt);
  1676. var reduAmt = eval(getParameter("SPAHA02140_REDUAMT")); //총감면액
  1677. reduamt = parseFloat(reduAmt==""?"0":reduAmt);
  1678. var totdiscamt = discamt + reduamt; //총감면액
  1679. model.setValue(gRcptInfoPath + "/opmi/opmi_reduamt", reduamt );
  1680. model.setValue(gRcptInfoPath + "/opmi/opmi_totdiscamt", totdiscamt );
  1681. // 여기서 부터 할인/감면액 적용해서 계산한다.
  1682. fRcptAmtCalc();
  1683. }
  1684. }
  1685. /************************************************************************************************
  1686. @author : 채희철
  1687. @version : 2007-07-01
  1688. 미수 버튼 클릭한다.
  1689. ************************************************************************************************/
  1690. function fUncoCalc(){
  1691. //감액노드에 데이타가 없을 경우 빈 node (dcgm) 도 삭제한다(clear)-------------
  1692. var vnode =instance1.selectSingleNode("/root/send/s_unco/unco");
  1693. if (vnode != null) {
  1694. var nodeList = vnode.hasChildNodes();
  1695. if (nodeList=="0") { //자식노드가 없으면 remove -초기화
  1696. model.removenode("/root/send/s_unco/unco");
  1697. }
  1698. }
  1699. setParameter("SPAHA02150_TOTAMT", model.getValue( gRcptInfoPath + "/opmi/opmi_totamt"));
  1700. setParameter("SPAHA02150_PAYINSUBAMT", model.getValue( gRcptInfoPath + "/opmi/opmi_payinsubamt"));
  1701. setParameter("SPAHA02150_PAYHEALCNTRAMT", model.getValue( gRcptInfoPath + "/opmi/opmi_payhealcntramt"));
  1702. setParameter("SPAHA02150_CMPYAMT", model.getValue( gRcptInfoPath + "/opmi/opmi_cmpyamt"));
  1703. setParameter("SPAHA02150_OWNUNCOAMT", model.getValue( gRcptInfoPath + "/opmi/opmi_ownuncoamt"));
  1704. // 사용자에 의해서 입력된 정산정보들을 send로 copy한다.
  1705. var vnode =instance1.selectSingleNode( gRcptInfoPath + "/s_unco");
  1706. if (vnode != null) {
  1707. var nodeList = vnode.hasChildNodes();
  1708. if (nodeList=="0") { //자식노드가 없으면 remove -초기화
  1709. model.makeNode( gRcptInfoPath + "/s_unco/unco");
  1710. }
  1711. }
  1712. setParameter("SPAHA02150_SENDPATH", gRcptInfoPath + "/s_unco/unco");
  1713. setParameter("SPAHA02150_RCVPATH", gRcptInfoPath + "/s_unco/unco");
  1714. modal("../../../ast/healexamrcptweb/xrw/SPAHA02150", "1","400", "400", "SPAHA02150", "", "");
  1715. //확인이 되었으면 수납 할 금액들을 재 계산한다.
  1716. if ( getParameter("SPAHA02150_RTN") == "Y"){
  1717. var payinsubamt = eval(getParameter("SPAHA02150_PAYINSUBAMT")); //공단미수
  1718. payinsubamt = parseFloat(payinsubamt==""?"0":payinsubamt);
  1719. var payhealcntramt = eval(getParameter("SPAHA02150_PAYHEALCNTRAMT")); //보건소미수
  1720. payhealcntramt = parseFloat(payhealcntramt==""?"0":payhealcntramt);
  1721. var cmpyamt = eval(getParameter("SPAHA02150_CMPYAMT")); //업체미수
  1722. cmpyamt = parseFloat(cmpyamt==""?"0":cmpyamt);
  1723. var ownuncoamt = eval(getParameter("SPAHA02150_OWNUNCOAMT")); //개인미수
  1724. ownuncoamt = parseFloat(ownuncoamt==""?"0":ownuncoamt);
  1725. var totuncoamt = payinsubamt + payhealcntramt + cmpyamt + ownuncoamt; //총감면액
  1726. model.setValue(gRcptInfoPath + "/opmi/opmi_payinsubamt", payinsubamt );
  1727. model.setValue(gRcptInfoPath + "/opmi/opmi_payhealcntramt", payhealcntramt );
  1728. model.setValue(gRcptInfoPath + "/opmi/opmi_cmpyamt" , cmpyamt );
  1729. model.setValue(gRcptInfoPath + "/opmi/opmi_ownuncoamt", ownuncoamt );
  1730. // 총 미수액
  1731. model.setValue(gRcptInfoPath + "/opmi/opmi_totuncoamt", totuncoamt );
  1732. // 여기서 부터 할인/감면액 적용해서 계산한다.
  1733. fRcptAmtCalc();
  1734. }
  1735. }
  1736. /************************************************************************************************
  1737. @author : 채희철
  1738. @version : 2007-07-01
  1739. 감면/할인,미수 적용후 다시 금액을 계산한다.
  1740. ************************************************************************************************/
  1741. function fRcptAmtCalc(){
  1742. var dopmi_totamt = 0;
  1743. var dopmi_baseexamamt = 0;
  1744. var dopmi_addexamamt = 0;
  1745. var dopmi_payinsubamt = 0;
  1746. var dopmi_payhealcntramt = 0;
  1747. var dopmi_cmpyamt = 0;
  1748. var dopmi_ownbamt = 0;
  1749. var dopmi_ownuncoamt = 0;
  1750. var dopmi_totuncoamt = 0;
  1751. var dopmi_discamt = 0;
  1752. var dopmi_reduamt = 0;
  1753. var dopmi_totdiscamt = 0;
  1754. var dopmi_specamt = 0;
  1755. var dopmi_precashamt = 0;
  1756. var dopmi_precardamt = 0;
  1757. var dopmi_preonlineamt = 0;
  1758. var dopmi_premdlrcptamt = 0;
  1759. var dopmi_totprercptamt = 0;
  1760. var dopmi_mdlrremamt = 0;
  1761. var dopmi_mdlrcptamt = 0;
  1762. var dopmi_restamt = 0;
  1763. var dopmi_rcptamt = 0;
  1764. var dopmi_cardamt = 0;
  1765. var dopmi_cashamt = 0;
  1766. var dopmi_onlineamt = 0;
  1767. var sopmi_mdlyn = 'N';
  1768. // 수납방법
  1769. var sopmi_paygubun = "N";
  1770. dopmi_totamt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_totamt"));
  1771. dopmi_baseexamamt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_baseexamamt"));
  1772. dopmi_addexamamt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_addexamamt"));
  1773. dopmi_payinsubamt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_payinsubamt"));
  1774. dopmi_payhealcntramt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_payhealcntramt"));
  1775. dopmi_cmpyamt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_cmpyamt"));
  1776. dopmi_ownbamt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_ownbamt"));
  1777. dopmi_ownuncoamt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_ownuncoamt"));
  1778. // 미수총계
  1779. dopmi_totuncoamt = dopmi_payinsubamt + dopmi_payhealcntramt +
  1780. dopmi_cmpyamt + dopmi_ownuncoamt;
  1781. dopmi_discamt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_discamt"));
  1782. dopmi_reduamt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_reduamt"));
  1783. dopmi_totdiscamt = dopmi_discamt + dopmi_reduamt;
  1784. dopmi_specamt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_specamt"));
  1785. dopmi_precashamt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_precashamt"));
  1786. dopmi_precardamt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_precardamt"));
  1787. dopmi_preonlineamt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_preonlineamt"));
  1788. dopmi_premdlrcptamt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_premdlrcptamt"));
  1789. dopmi_totprercptamt = dopmi_precashamt + dopmi_precardamt +
  1790. dopmi_preonlineamt + dopmi_premdlrcptamt;
  1791. dopmi_restamt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_restamt"));
  1792. model.setValue(gRcptInfoPath + "/opmi/opmi_mdlremamt" , dopmi_mdlrremamt );
  1793. model.setValue(gRcptInfoPath + "/opmi/opmi_restamt" , dopmi_restamt );
  1794. // 실납부금액 = 총액 - 미수액 - 할인감면액 - 기수납금 - 절사금액
  1795. dopmi_rcptamt = dopmi_totamt - dopmi_totuncoamt - dopmi_totdiscamt -
  1796. dopmi_totprercptamt - dopmi_restamt;
  1797. model.setValue(gRcptInfoPath + "/opmi/opmi_rcptamt" , dopmi_rcptamt );
  1798. // 선수금 잔액
  1799. dopmi_mdlremamt = eval(model.getValue(gRcptInfoPath + "/opmi/opmi_mdlremamt"));
  1800. if ( dopmi_mdlrcptamt > 0 ) {
  1801. sopmi_mdlyn = 'Y';
  1802. // 선수금 잔액이 수납할 금액보다 많으면 전액 대체시킨다.
  1803. if ( dopmi_rcptamt < dmdlremamt ){
  1804. dmdlrcptamt = drcptamt;
  1805. drcptamt = 0;
  1806. // 적으면 선수금 잔액만 대체시키고 차액은 수납금액으로
  1807. }else{
  1808. dmdlrcptamt = dmdlremamt;
  1809. drcptamt = drcptamt - dmdlrcptamt;
  1810. }
  1811. }else{
  1812. sopmi_mdlyn = 'N';
  1813. dmdlrcptamt = 0;
  1814. }
  1815. //선수금 관련 사항 세팅
  1816. model.setValue(gRcptInfoPath + "/opmi/opmi_mdlrcptamt" , dmdlrcptamt );
  1817. model.setValue(gRcptInfoPath + "/opmi/opmi_rcptamt" , dopmi_rcptamt );
  1818. model.setValue(gRcptInfoPath + "/opmi/opmi_mdlyn" , sopmi_mdlyn );
  1819. //기본적으로 수납 금액이 있으면 카드로 수납..
  1820. if ( dopmi_rcptamt != 0 ){
  1821. sopmi_paygubun = "Y";
  1822. }else{
  1823. sopmi_paygubun = "C";
  1824. }
  1825. model.setValue(gRcptInfoPath + "/opmi/opmi_cardamt" , dopmi_rcptamt );
  1826. model.setValue(gRcptInfoPath + "/opmi/opmi_cashamt" , 0 );
  1827. model.setValue(gRcptInfoPath + "/opmi/opmi_onlineamt" , 0 );
  1828. model.setValue(gRcptInfoPath + "/opmi/opmi_paygubun", sopmi_paygubun );
  1829. // 2008.09.26 model.refresh(); // 2008.09.26
  1830. }