SPAHA02140.js 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. /************************************************************************************************
  2. @author : 채희철
  3. @version : 2007-08-27
  4. 할인 / 미수 내역을 관리한다.
  5. *************************************************************************************************/
  6. var gOrddd, gTotrcptamt, strSend, strRcv;
  7. /************************************************************************************************
  8. @author : 채희철
  9. @version : 2007-08-27
  10. 초기화
  11. *************************************************************************************************/
  12. function fInit(){
  13. model.removeNodeset("/root/main/main/p_dcgm");
  14. grd_dcgm.rebuild();
  15. model.refresh();
  16. }
  17. /************************************************************************************************
  18. @author : 채희철
  19. @version : 2007-07-01
  20. 기초정보코드들을 로드한다.
  21. ************************************************************************************************/
  22. function fGetBaseInfo(){
  23. /**
  24. // 계산상태, 접수상태, 수가계산상태
  25. zbcfGetCodeList( new Array("P0030","A0107","P0049","P0076","P0073"),
  26. new Array("/root/init/baseinfo","/root/init/baseinfo","/root/init/baseinfo",
  27. "/root/init/baseinfo","/root/init/baseinfo")
  28. )
  29. model.setValue( gSendPath + "/srchinstcd", getUserInfo("dutplceinstcd") );
  30. ***/
  31. // 할인계정 로드..
  32. submit("TRAHA02141");
  33. }
  34. /************************************************************************************************
  35. @author : 채희철
  36. @version : 2007-08-27
  37. opener로 check해서 처리 ..
  38. *************************************************************************************************/
  39. function fCheckOpener(){
  40. if (checkOpener()){
  41. opener.javascript.setParameter("SPAHA02140_RTN","");
  42. var ssendPath = opener.javascript.getParameter("SPAHA02140_SENDPATH");
  43. var srcvPath = opener.javascript.getParameter("SPAHA02140_RCVPATH");
  44. var ddiscamt = opener.javascript.getParameter("SPAHA02140_DISCAMT");
  45. ddiscamt = eval(ddiscamt==""?"0":ddiscamt);
  46. var dreduamt = opener.javascript.getParameter("SPAHA02140_REDUAMT");
  47. dreduamt = eval(dreduamt==""?"0":dreduamt);
  48. var drcptamt = opener.javascript.getParameter("SPAHA02140_RCPTAMT");
  49. drcptamt = eval(drcptamt==""?"0":drcptamt);
  50. var dtotamt = opener.javascript.getParameter("SPAHA02140_TOTAMT");
  51. dtotamt = eval(dtotamt==""?"0":dtotamt);
  52. model.setValue("/root/main/h_dcgm/discamt",ddiscamt);
  53. model.setValue("/root/main/h_dcgm/reduamt",dreduamt);
  54. model.setValue("/root/main/h_dcgm/rcptamt",drcptamt);
  55. model.setValue("/root/main/h_dcgm/totamt",dtotamt);
  56. model.refresh();
  57. if (ssendPath != null && ssendPath != "" && ssendPath != " " && ssendPath != "-")
  58. {
  59. copyNodesetType("/root/main/p_dcgm", ssendPath, "replace", model, parent.model);
  60. var rowcnt = getNodesetCount("/root/main/p_dcgm");
  61. //한건이고 한건이 값이 없으면..
  62. if ( rowcnt = 1 && model.getValue("/root/main/p_dcgm["+ 1 +"]/discreduflag") == ""){
  63. model.removeNodeset("/root/main/p_dcgm");
  64. }
  65. grd_dcgm.rebuild();
  66. }
  67. }
  68. }
  69. /************************************************************************************************
  70. @author : 채희철
  71. @version : 2007-08-27
  72. 입력된 할인 감액 금액의 SUM을 구한다.
  73. *************************************************************************************************/
  74. function fAmtCalc(){
  75. var rowcnt = getNodesetCount("/root/main/p_dcgm");
  76. if (rowcnt > 0){
  77. var discamt = 0;
  78. var tempamt = 0;
  79. var reduamt = 0;
  80. var totdiscamt = 0;
  81. var drcptamt = model.getValue("/root/main/h_dcgm/rcptamt");
  82. for (i = 1; i <= rowcnt; i++)
  83. {
  84. if ( model.getValue("/root/main/p_dcgm["+ i +"]/discreduflag") == "G"){
  85. tempamt = model.getValue("/root/main/p_dcgm["+ i +"]/discreduamt") ;
  86. tempamt = parseFloat(tempamt==""?"0":tempamt);
  87. reduamt = reduamt + tempamt;
  88. }else{
  89. tempamt = model.getValue("/root/main/p_dcgm["+ i +"]/discreduamt") ;
  90. tempamt = parseFloat(tempamt==""?"0":tempamt);
  91. discamt = discamt + tempamt;
  92. }
  93. }
  94. totdiscamt = reduamt + discamt;
  95. if (eval(drcptamt) < eval(totdiscamt))
  96. {
  97. messageBox("감액총액이 수납금액을 초과합니다!","E999","");
  98. return;
  99. }
  100. model.setValue("/root/main/h_dcgm/reduamt", reduamt);
  101. }
  102. else model.setValue("/root/main/h_dcgm/reduamt","0");
  103. model.refresh();
  104. }
  105. /************************************************************************************************
  106. @author : 채희철
  107. @version : 2007-08-27
  108. 하나의 row를 추가한다.
  109. *************************************************************************************************/
  110. function fAddRow(){
  111. grd_dcgm.additem();
  112. var currow = grd_dcgm.row ;
  113. model.setValue("/root/main/p_dcgm["+ currow +"]/discreducd","-");
  114. model.setValue("/root/main/p_dcgm["+ currow +"]/discreduflag","G");
  115. model.setValue("/root/main/p_dcgm["+ currow +"]/discreduamt","0");
  116. grd_dcgm.rebuild();
  117. }
  118. /************************************************************************************************
  119. @author : 채희철
  120. @version : 2007-08-27
  121. 하나의 row를 삭제한다.
  122. *************************************************************************************************/
  123. function fDeleteRow(){
  124. var currow = grd_dcgm.row;
  125. if (currow < 1)
  126. {
  127. messageBox("먼저 삭제할 내역을 선택하십시요!","E999","");
  128. return;
  129. }
  130. grd_dcgm.deleteitem(currow);
  131. fAmtCalc();
  132. }
  133. /************************************************************************************************
  134. @author : 채희철
  135. @version : 2007-08-27
  136. 확인버튼을 클릭한다.
  137. *************************************************************************************************/
  138. function fConfirm(){
  139. // 확인시점에 다시 재 계산한다.
  140. fAmtCalc();
  141. var dcgm_discreducd;
  142. var dcgm_discreduamt;
  143. var sRcvPath = opener.javascript.getParameter("SPAHA02140_RCVPATH");
  144. for(i = 1; i <= getNodesetCount("/root/main/p_dcgm"); i++)
  145. {
  146. dcgm_discreducd = model.getValue("/root/main/p_dcgm["+ i +"]/discreducd");
  147. dcgm_discreduamt = model.getValue("/root/main/p_dcgm["+ i +"]/discreduamt");
  148. if (dcgm_discreducd == null || dcgm_discreducd == "" || dcgm_discreducd == " " || dcgm_discreducd == "-")
  149. {
  150. messageBox("감액명칭 중 미선택된 행이 존재합니다!","E999","");
  151. return;
  152. }
  153. if (dcgm_discreduamt.isNumber() != true){
  154. messageBox("감액 중 수치형이 아닌 행이 존재합니다!","E999","");
  155. return;
  156. }
  157. }
  158. if (checkOpener())
  159. {
  160. opener.javascript.setParameter("SPAHA02140_RTN","Y");
  161. opener.javascript.setParameter("SPAHA02140_REDUAMT",model.getValue("/root/main/h_dcgm/reduamt"));
  162. if (sRcvPath != null && sRcvPath != "" && sRcvPath != " " && sRcvPath != "-")
  163. {
  164. copyNodesetType(sRcvPath, "/root/main/p_dcgm", "replace", parent.model, model);
  165. //copyNode(sRcvPath, "/root/main/p_dcgm", "replace", parent.model, model);
  166. }
  167. window.close();
  168. }
  169. }
  170. /************************************************************************************************
  171. @author : 채희철
  172. @version : 2007-08-27
  173. 취소버튼을 클릭한다.
  174. *************************************************************************************************/
  175. function fCancel(){
  176. if (checkOpener()){
  177. opener.javascript.setParameter("SPAHA02140_RTN","N");
  178. window.close();
  179. }
  180. }