SMAHA02100.xjs 111 KB

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