SMAYA04700.js 57 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. /* --------------------------------------------------------
  2. 예결산정보조회 (SMAYA04700.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By 임여원
  6. : 2015.05.02
  7. -------------------------------------------------------- */
  8. /**
  9. * @group :
  10. * @ver : 2008.01.05
  11. * @by : Lim YeoWon
  12. * @-----------------------------------------------------------
  13. * @type : function
  14. * @access : public
  15. * @desc : 예결산정보조회의 초기화 함수
  16. * @-----------------------------------------------------------
  17. */
  18. function fInit() {
  19. var CurrentDate=getCurrentDate(); // 사업년도 올해 날짜로 CurrentDate에 저장
  20. var CurrentMM=CurrentDate.substr(4,2); // 현재 날짜의 월 CurrentMM에 저장
  21. var CurrentYY=CurrentDate.substr(0,4); // 현재 날짜의 년을 CurrentYY에 저장
  22. if(CurrentMM>="03" && CurrentMM<="12") // 현재 월이 3월에서 12월까지일 때
  23. { // 현재 년도를 사업년도에 저장
  24. model.setValue("/root/main/search/entryy",CurrentYY); // 현재 월이 1월에서 2월이면
  25. // 전년도를 사업년도에 저장
  26. }
  27. else if(CurrentMM>="01" && CurrentMM<="02")
  28. {
  29. model.setValue("/root/main/search/entryy",CurrentYY-1);
  30. }
  31. model.setValue("/root/main/search/fromdd", CurrentDate.substr(0,6)+"01"); // 화면뜰때 조회기간 그달의 첫 날로 셋팅
  32. model.setValue("/root/main/search/mthqtyflag","1"); // 화면 오픈시 라디오 버튼 1을 셋팅
  33. model.refresh();
  34. var fdate=ipt_fromdd.currentText; // 조회시작날짜에 입력한 텍스트를 변수에 저장
  35. var fmth=ipt_fromdd.currentText.substr(5,2); // 입력한 텍스트의 월을 변수에 저장
  36. if(fmth==02) // 입력한 텍스트의 달이 02일 때
  37. {
  38. if(parseInt(fdate)%4==0) // 윤년일때
  39. {
  40. model.makeValue("/root/main/search/todd",parseInt(fdate)+fmth+'29'); // TODD에 29일을 셋팅
  41. }
  42. else
  43. {
  44. model.makeValue("/root/main/search/todd",parseInt(fdate)+fmth+'28'); // 그외에는 28일 셋팅
  45. }
  46. }
  47. else if(fmth==04 ||fmth== 06 ||fmth== 09 ||fmth== 11) // 30으로 끝나는 달 셋팅
  48. {
  49. model.makeValue("/root/main/search/todd",parseInt(fdate)+fmth+'30');
  50. }
  51. else
  52. {
  53. model.makeValue("/root/main/search/todd",parseInt(fdate)+fmth+'31'); //31일로 끝나는 달 셋팅
  54. }
  55. zbcfGetCodeList( new Array("A0451"), new Array("/root/hidden/init/comcd"),true ); // 관계코드 설정
  56. var supcdid = model.getValue("/root/main/search/acntflagcd"); // 상위코드 값 받아와서 관계코드 셋팅
  57. var sortfield = "cdnm";
  58. var sortmethod = "asc";
  59. var minimum = "true";
  60. zbcfGetSubCodeList("A0451", supcdid, "A0452", sortfield, sortmethod, minimum, "/root/hidden/init/comcd");
  61. // 상위코드에 따른 하위코드 이름을 셋팅
  62. addComboItem("cmb_acntflagcd", "","","above"); // 비목에 빈공간 추가한다.
  63. addComboItem("cmb_itemexpendflag", "","","above"); // 비목에 빈공간 추가한다.
  64. cmb_itemexpendflag.select(0);
  65. // 계정과목은 첫번째 선택
  66. model.refresh();
  67. }
  68. /* --------------------------------------------------------------------------*/
  69. /* type : function */
  70. /* access : public */
  71. /* desc : 예결산 정보조회의 계정과목 선택시 비목 선택되는 함수 */
  72. /* --------------------------------------------------------------------------*/
  73. function fAcntflagcdSelect()
  74. {
  75. var supcdid = model.getValue("/root/main/search/acntflagcd"); // 상위코드 값 받아와서 관계코드 셋팅
  76. var sortfield = "cdnm";
  77. var sortmethod = "asc";
  78. var minimum = "true";
  79. zbcfGetSubCodeList("A0451", supcdid, "A0452", sortfield, sortmethod, minimum, "/root/hidden/init/comcd");
  80. // 상위코드에 따른 하위코드 이름을 셋팅
  81. addComboItem("cmb_itemexpendflag", "","","above"); // 비목에 빈공간 추가한다.
  82. cmb_itemexpendflag.select(0); // 비목은 첫번째 선택
  83. model.refresh();
  84. }
  85. /* --------------------------------------------------------------------------*/
  86. /* type : function */
  87. /* access : public */
  88. /* desc : 예결산 정보조회의 월, 분기 라디오 버튼 선택 함수 */
  89. /* --------------------------------------------------------------------------*/
  90. function fRadioSelect()
  91. {
  92. var rdo=model.getValue("/root/main/search/mthqtyflag") //라디오 버튼에 선택 되는 값 rdo에 저장
  93. if(rdo=="1") //월 선택시
  94. {
  95. grp_reqdate.visible = true; //조회기간의 그룹박스 보임
  96. grp_qurtyy.visible = false; //분기의 그룹박스는 기본적으로 visibility를 hidden으로 설정, 숨김
  97. model.setFocus("ipt_fromdd");
  98. }
  99. else //분기 선택시
  100. {
  101. grp_reqdate.visible = false; //조회기간의 그룹박스 숨김
  102. grp_qurtyy.visible = true; //분기 그룹박스 보임
  103. cmb_qurtyy.select(0); //분기 콤보에 전체 셋팅
  104. model.setFocus("cmb_qurtyy");
  105. }
  106. model.refresh();
  107. }
  108. /* --------------------------------------------------------------------------*/
  109. /* type : function */
  110. /* access : public */
  111. /* desc : 예결산 정보조회 함수 */
  112. /* --------------------------------------------------------------------------*/
  113. function fReqBugtInfo()
  114. {
  115. var entryy=ipt_entryy.currentText; //사업년도에 현재 입력받은 텍스트
  116. var fromdd=model.getValue("/root/main/search/fromdd"); //fromdd의 값 받아서 변수 fromdd에 저장
  117. var todd=model.getValue("/root/main/search/todd"); //todd의 값 받아서 변수 todd에 저장
  118. var qurtyy=model.getValue("/root/main/search/qurtyy"); //분기 선택된 값을 변수 qurtyy에 저장
  119. if(entryy=='')
  120. {
  121. messageBox("사업년도는","I003");
  122. model.setFocus("ipt_entryy");
  123. return;
  124. }
  125. if(rdo_mthqtyflag.value=='1') //월이 선택 되었을때
  126. {
  127. model.setValue("/root/main/search/fromdd",fromdd); //fromdd,todd에 입력된 값을 노드에 셋팅
  128. model.setValue("/root/main/search/todd",todd);
  129. if(fromdd>todd)
  130. {
  131. messageBox("조회 시작 날짜가 조회 종료 날짜보다 클 수","I004");
  132. model.setFocus("ipt_fromdd");
  133. return;
  134. }
  135. var fromentryy=entryy+'0301';
  136. var tooentry=(parseInt(entryy)+1)+'0229';
  137. if(fromdd<fromentryy || todd>tooentry)
  138. {
  139. messageBox(" 입력한 사업년도 내 기간 이외에는 입력할 수 ","I004");
  140. model.setFocus("ipt_fromdd");
  141. return;
  142. }
  143. }
  144. else //분기를 선택했을 때 각 분기에 해당하는 조회날짜를 셋팅
  145. {
  146. if(qurtyy=='2') //1분기 선택시
  147. {
  148. model.setValue("/root/main/search/fromdd",entryy+'0301'); //사업년도+3월1일을 fromdd에 저장
  149. model.setValue("/root/main/search/todd",entryy+'0530'); //사업년도+5월 31을 todd에 저장
  150. }
  151. else if(qurtyy=='3')
  152. {
  153. model.setValue("/root/main/search/fromdd",entryy+'0601');
  154. model.setValue("/root/main/search/todd",entryy+'0831');
  155. }
  156. else if(qurtyy=='4')
  157. {
  158. model.setValue("/root/main/search/fromdd",entryy+'0901');
  159. model.setValue("/root/main/search/todd",entryy+'1131');
  160. }
  161. else if(qurtyy=='5')
  162. {
  163. model.setValue("/root/main/search/fromdd",entryy+'1201');
  164. model.setValue("/root/main/search/todd",(parseInt(entryy)+1)+'0229');
  165. }
  166. else //전체 선택시 사업조회기간 시작일 부터 종료일까지 셋팅
  167. {
  168. model.setValue("/root/main/search/fromdd",entryy+'0301');
  169. model.setValue("/root/main/search/todd",(parseInt(entryy)+1)+'0229');
  170. }
  171. }
  172. model.resetInstanceNode("/root/send/reqdata");
  173. model.makeNode("/root/send/reqdata");
  174. model.copyNode("/root/send/reqdata","/root/main/search");
  175. submit("TRAYA04701");
  176. var fdate=model.getValue("/root/main/search/fromdd"); //출력시 필요한 fromdd,todd,qurtyy 값을 변수에 저장
  177. var tdate=model.getValue("/root/main/search/todd");
  178. var qurtyy=model.getValue("/root/main/search/qurtyy");
  179. if(rdo_mthqtyflag.value=='1') //월을 선택 했을 때
  180. {
  181. model.resetInstanceNode("/root/main/search/prt_qurtyy"); //출력을 위해 분기 데이터 삭제
  182. var prt_incmexpsdd="조회기간 : "+ fdate.substr(0,4)+"-"+fdate.substr(4,2)+"-"+fdate.substr(6,2)+" ~ "+tdate.substr(0,4)+"-"+tdate.substr(4,2)+"-"+tdate.substr(6,2); //출력에서 필요한 조회 기간을 변수 prt_incmexpsdd에 저장
  183. model.setValue("/root/main/search/prt_incmexpsdd",prt_incmexpsdd);
  184. }
  185. else if(rdo_mthqtyflag.value=='2') //분기를 선택 시
  186. {
  187. model.resetInstanceNode("/root/main/search/prt_incmexpsdd"); //조회기간에 담겨 있는 데이터 삭제
  188. if(qurtyy=='1') //전체 선택이면
  189. {
  190. model.setValue("/root/main/search/prt_qurtyy"," 전체 "); //출력에서 쓸 데이터 저장
  191. }
  192. else //각 분기별 선택이면
  193. {
  194. var prt_qurtyy=qurtyy-1+" 분기 "; //각 분기 정보를 search 노드에 저장
  195. model.setValue("/root/main/search/prt_qurtyy",prt_qurtyy);
  196. }
  197. }
  198. var idxRows=grd_bugtinfolist.rows; //그리드 갯수만큼을 idxRows 변수에 저장
  199. for(var i=1 ; i<idxRows ; i++)
  200. {
  201. //var minustotal=model.getValue("/root/main/grdlist/itemlist"+"["+i+"]/minustotal");
  202. // model.setValue("/root/main/grdlist/itemlist"+"["+i+"]/minustotal",''); //총계 이외에 잔액은 보여주지 않음
  203. //var itemexpendflagcdnm1=model.getValue("/root/main/grdlist/itemlist"+"["+i+"]/itemexpendflagcdnm"); // 합계 찾을 값을 변수에 저장
  204. //var incmexpsdd1=model.getValue("/root/main/grdlist/itemlist"+"["+i+"]/incmexpsdd"); // 소계 찾을 값을 변수에 저장
  205. if(model.getValue("/root/main/grdlist/itemlist"+"["+i+"]/itemexpendflagcdnm")=="합계") // 변수에 저장한 값중 합계와 소계인 값을 찾아 색을 넣어준다.
  206. {
  207. grd_bugtinfolist.cellStyle("background-color",i,1, i, 7) = "#ccffff";
  208. }
  209. else if(model.getValue("/root/main/grdlist/itemlist"+"["+i+"]/incmexpsdd")=="소계")
  210. {
  211. grd_bugtinfolist.cellStyle("background-color",i,2, i, 7) = "#ccffcc";
  212. }
  213. else // 변수에 저장한 값중 합계와 소계인 값을 찾아 색을 넣어준다.
  214. {
  215. grd_bugtinfolist.cellStyle("background-color",i,1, i, 7) = "#ffffff";
  216. }
  217. }
  218. model.refresh();
  219. }
  220. /* ----------------------------------------------------------------------------------------*/
  221. /* type : function */
  222. /* access : public */
  223. /* desc : 예결산 정보조회 시작 기간 선택시 조회 종료기간에 달의 마지막날을 셋팅하는 함수 */
  224. /* ----------------------------------------------------------------------------------------*/
  225. function ftdateselect()
  226. {
  227. var fdate=ipt_fromdd.currentText; //조회 시작 날짜에 입력된 값을 변수에 저장
  228. var fmth=fdate.substr(5,2); //조회 시작 날짜의 월을 변수에 저장
  229. if(fmth=='02') //입력한 월이 2월일 때
  230. {
  231. if(parseInt(fdate)%4==0) //윤년일때는
  232. {
  233. model.setValue("/root/main/search/todd",parseInt(fdate)+fmth+'29'); //2월 29일을 셋팅
  234. }
  235. else
  236. {
  237. model.setValue("/root/main/search/todd",parseInt(fdate)+fmth+'28'); //윤년이 아닐때는 2월28일 셋팅
  238. }
  239. }
  240. else if(fmth=='04' ||fmth== '06' ||fmth== '09' ||fmth== '11') //30으로 끝나는 날 셋팅
  241. {
  242. model.setValue("/root/main/search/todd",parseInt(fdate)+fmth+'30');
  243. }
  244. else
  245. {
  246. model.setValue("/root/main/search/todd",parseInt(fdate)+fmth+'31'); //31로 끝나는 날 셋팅
  247. }
  248. model.refresh();
  249. }