SMRAD00400_전표마감관리.xfdl 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436
  1. <?xml version="1.0" encoding="utf-8" standalone="no"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMRAD00400" position="absolute 0 0 1231 796" titletext="전표마감관리" onload="SMRAD00400_onload">
  5. <Layouts>
  6. <Layout>
  7. <Div id="group1" position="absolute 0 0 1195 21" style="" scrollbars="none">
  8. <Layouts>
  9. <Layout>
  10. <Static id="caption6" class="tit_1" position="absolute 0 0 124 22" style="" text="전표마감관리" anchor="default"/>
  11. </Layout>
  12. </Layouts>
  13. </Div>
  14. <Div id="group2" scrollbars="autoboth" position="absolute 0 38 1195 782" style="">
  15. <Layouts>
  16. <Layout>
  17. <Div id="group4" position="absolute 0 10 1195 45" style="align: top;">
  18. <Layouts>
  19. <Layout>
  20. <Shape id="roundrect1" anchor="default" type="roundrectangle" position="absolute 0 0 1195 35" style="border:1 solid #ffd799 #ffd799;background:#fffbf2 ;"/>
  21. <Button id="btn_search" class="btn1" taborder="4" position="absolute 290 7 346 29" style="align:left ;" text="조회" onclick="group2_group4_btn_search_onclick"/>
  22. <Shape id="line1" class="line_4" linetype="vertical" position="absolute 265 6 268 28" style="border:1 solid #ffe4bb #ffe4bb;" anchor="default"/>
  23. <Static id="caption2" class="search_name" position="absolute 70 9 150 26" style="" text="기준년월"/>
  24. <MaskEdit id="input_s_essential" taborder="5" mask="####-##" autoselect="true" onkillfocus="group2_group4_input_s_essential_onkillfocus" class="input_s_essential" position="absolute 155 9 240 28" style="align:center middle;" type="string" autoskip="true"/>
  25. </Layout>
  26. </Layouts>
  27. </Div>
  28. <Static id="caption11" class="tit_2" position="absolute 5 55 80 76" style="" text="전표마감"/>
  29. <Shape id="line2" class="line_1" linetype="horizontal" position="absolute 0 75 1195 78" style="strokepen:5 solid #33bbbbff;" anchor="default"/>
  30. <Grid id="grd_radhcloslist" binddataset="ds_main_radhclos" position="absolute 0 80 1195 700" style="" ontextchanged="group2_grd_radhcloslist_ontextchanged" cellsizingtype="col">
  31. <Formats>
  32. <Format id="default">
  33. <Columns>
  34. <Column size="25"/>
  35. <Column size="81"/>
  36. <Column size="89"/>
  37. <Column size="88"/>
  38. <Column size="159"/>
  39. <Column size="95"/>
  40. <Column size="126"/>
  41. <Column size="158"/>
  42. </Columns>
  43. <Rows>
  44. <Row size="24" band="head"/>
  45. <Row size="24"/>
  46. </Rows>
  47. <Band id="head">
  48. <Cell/>
  49. <Cell col="1" text="일마감 여부"/>
  50. <Cell col="2" text="마감일자"/>
  51. <Cell col="3" text="최종수정자"/>
  52. <Cell col="4" text="최종수정일시"/>
  53. <Cell col="5" text="년마감 여부"/>
  54. <Cell col="6" text="년마감 최종수정자"/>
  55. <Cell col="7" text="년마감 최종수정일시"/>
  56. </Band>
  57. <Band id="body">
  58. <Cell celltype="head"/>
  59. <Cell col="1" displaytype="checkbox" edittype="none" text="bind:closyn" expr="expr:closyn == 'Y' ? 1 : 0"/>
  60. <Cell col="2" displaytype="date" text="bind:closdd" mask="yyyy-MM-dd" calendardisplaynulltype="nulltext"/>
  61. <Cell col="3" text="bind:lastupdtrid"/>
  62. <Cell col="4" displaytype="date" text="bind:lastupdtdt" mask="yyyy-MM-dd HH:mm:ss" calendardisplaynulltype="nulltext"/>
  63. <Cell col="5" text="bind:yrclosyn"/>
  64. <Cell col="6" text="bind:yrclosid"/>
  65. <Cell col="7" displaytype="date" text="bind:yrclosdt" mask="yyyy-MM-dd HH:mm:ss" calendardisplaynulltype="nulltext"/>
  66. </Band>
  67. </Format>
  68. </Formats>
  69. </Grid>
  70. <Button id="btn_cancel" class="btn2" position="absolute 170 54 234 73" style="" text="전체해제" onclick="group2_btn_cancel_onclick"/>
  71. <Button id="btn_all" class="btn2" position="absolute 103 54 167 73" style="" text="전체선택" onclick="group2_btn_all_onclick"/>
  72. <Static id="caption1" position="absolute 5 705 763 725" style="" text="※ 년마감 작업 이후에는 일마감을 수정할 수 없습니다. 이런 경우에는 먼저 년마감(=년이월) 취소작업을 한 후에 일마감을 수정해 주십시요."/>
  73. </Layout>
  74. </Layouts>
  75. </Div>
  76. <Div id="grp_btn" scrollbars="none" position="absolute 0 12 1195 39" style="">
  77. <Layouts>
  78. <Layout>
  79. <Button id="btn_save" class="btn4" position="absolute 1139 3 1195 25" style="" text="저장" onclick="grp_btn_btn_save_onclick"/>
  80. <Shape id="line11" class="line_6" linetype="horizontal" position="absolute 0 25 1195 28" style="" anchor="default"/>
  81. </Layout>
  82. </Layouts>
  83. </Div>
  84. </Layout>
  85. </Layouts>
  86. <Objects>
  87. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  88. <ColumnInfo>
  89. <Column id="closdd" type="STRING" size="256"/>
  90. <Column id="searchdt" type="STRING" size="256"/>
  91. </ColumnInfo>
  92. <Rows>
  93. <Row>
  94. <Col id="closdd"/>
  95. </Row>
  96. </Rows>
  97. </Dataset>
  98. <Dataset id="ds_temp" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  99. <ColumnInfo>
  100. <Column id="temp" type="STRING" size="256"/>
  101. </ColumnInfo>
  102. </Dataset>
  103. <Dataset id="ds_main_radhclos" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep" oncolumnchanged="ds_main_radhclos_oncolumnchanged">
  104. <ColumnInfo>
  105. <Column id="closyn" type="STRING" size="256"/>
  106. <Column id="closdd" type="STRING" size="256"/>
  107. <Column id="lastupdtrid" type="STRING" size="256"/>
  108. <Column id="lastupdtdt" type="STRING" size="256"/>
  109. <Column id="yrclosyn" type="STRING" size="256"/>
  110. <Column id="yrclosid" type="STRING" size="256"/>
  111. <Column id="yrclosdt" type="STRING" size="256"/>
  112. </ColumnInfo>
  113. <Rows>
  114. <Row>
  115. <Col id="closyn"/>
  116. <Col id="closdd"/>
  117. <Col id="lastupdtrid"/>
  118. <Col id="lastupdtdt"/>
  119. <Col id="yrclosyn"/>
  120. <Col id="yrclosid"/>
  121. <Col id="yrclosdt"/>
  122. </Row>
  123. </Rows>
  124. </Dataset>
  125. <Dataset id="ds_hidden" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  126. <ColumnInfo>
  127. <Column id="hidden" type="STRING" size="256"/>
  128. </ColumnInfo>
  129. <Rows>
  130. <Row>
  131. <Col id="hidden"/>
  132. </Row>
  133. </Rows>
  134. </Dataset>
  135. <Dataset id="ds_main" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  136. <ColumnInfo/>
  137. </Dataset>
  138. <Dataset id="ds_send_save" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  139. <ColumnInfo>
  140. <Column id="radhclos" type="STRING" size="256"/>
  141. </ColumnInfo>
  142. <Rows>
  143. <Row>
  144. <Col id="radhclos"/>
  145. </Row>
  146. </Rows>
  147. </Dataset>
  148. <Dataset id="ds_init" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  149. <ColumnInfo>
  150. <Column id="init" type="STRING" size="256"/>
  151. </ColumnInfo>
  152. <Rows>
  153. <Row>
  154. <Col id="init"/>
  155. </Row>
  156. </Rows>
  157. </Dataset>
  158. </Objects>
  159. <Bind>
  160. <BindItem id="item0" compid="group2.group4.input_s_essential" propid="value" datasetid="ds_send" columnid="closdd"/>
  161. </Bind>
  162. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  163. * System Name :
  164. * Job Name :
  165. * Creator :
  166. * Make Date : 2017-06-19
  167. * Description :
  168. *---------------------------------------------------------------------------------------
  169. * Modify Date Modifier Modify Description
  170. *---------------------------------------------------------------------------------------
  171. * 2017-06-19 Live Converter TF->XP
  172. *
  173. *---------------------------------------------------------------------------------------
  174. ****************************************************************************************/
  175. include "com_commonxp::comm_main.xjs";
  176. include "mis_miscommonxp::MIS.xjs";
  177. include "mis_miscommonxp::RAC001.xjs";
  178. //스크립트 끝
  179. function SMRAD00400_onload(obj:Form, e:LoadEventInfo) {
  180. frmf_initForm(obj);
  181. //grdf_initGrid(grd_XXX);
  182. //grdf_setGridSort(grd_XXX);
  183. grdf_setRowTypeIcon(group2.grd_radhcloslist, 0);
  184. //사용자권한
  185. fCheckAuth();
  186. //현재 달
  187. var curdate = utlf_getCurrentDate().toDate().getDateFormat("YYYYMMDD");
  188. //trace("curdate :"+curdate);
  189. ds_send.setColumn( 0, "closdd", curdate);
  190. //그리드 초기화
  191. misfGridInit(group2.grd_radhcloslist);
  192. //데이타 셋
  193. //misfMsterDetailSet(group2.grd_radhcloslist,null, "TRRAD00401" ,"Y");
  194. //fGetRadhclos();
  195. //2012.09.14 박준범 - btn_search 버튼 click 으로 수정
  196. //fGetRadhclos();
  197. group2.group4.btn_search.click();
  198. }
  199. //========================================================================================
  200. //버튼에 대한 화면 권한 체크(R : 읽기, X : 입력_수정_삭제, P : 출력)
  201. //========================================================================================
  202. function fCheckAuth() {
  203. group2.group4.btn_search.disabled = !frmf_checkAuth("R") ;
  204. grp_btn.btn_save.disabled = !frmf_checkAuth("X") ;
  205. }
  206. //전표마감 날짜 생성
  207. function setCalendar() {
  208. var dateObj = ds_send.getColumn(0, "closdd").toDate();
  209. dateObj.setDate(1);
  210. var strYYYY = dateObj.getDateFormat("YYYY");
  211. var strMM = dateObj.getDateFormat("MM");
  212. //trace("strYYYY :"+strYYYY+"/"+strMM);
  213. //현재 조회한 달의 마자막 날짜 가지고 옮
  214. //var days =dateObj.getAddDate(1,"M").getMonthDay();
  215. var days =dateObj.getMonthDay();
  216. var strDD = "";
  217. for( var i = 1; i<= days; i++ ) {
  218. strDD = i;
  219. //strDD = i.toString.utlf_getLeftPad(2,"0");
  220. //misfGridIUD(group2.grd_radhcloslist,"A");
  221. //전표마감 날짜를 생성한다.
  222. //var iDate = new Date(strYYYY,strMM,i).getDateFormat("YYYYMMDD");
  223. var iDate = ((strYYYY+strMM+strDD).toDate()).getDateFormat("YYYYMMDD");
  224. //trace("iDate :"+iDate);
  225. var iRow = ds_main_radhclos.addRow();
  226. ds_main_radhclos.setColumn(iRow,"closdd",iDate);
  227. }
  228. }
  229. //전표마감관리 리스트 조회
  230. function fGetRadhclos() {
  231. //리스트 조회
  232. //misfMsterDetailRetrieve();
  233. ds_main_radhclos.clearData();
  234. var oParam = {};
  235. oParam.id = "TRRAD00401";
  236. oParam.service = "slipapp.Slip";
  237. oParam.method = "reqGetRadhelos";
  238. oParam.inds = "req=ds_send";
  239. oParam.outds = "ds_main_radhclos=radhclos";
  240. oParam.async = false;
  241. //oParam.callback = "cf_TRRAD00401";
  242. tranf_submit(oParam);
  243. ds_main_radhclos.addColumn("flag","string");
  244. // 전표마감을 한번도 하지 않았을 경우
  245. if(ds_main_radhclos.rowcount == 0) {
  246. setCalendar();
  247. }
  248. }
  249. /*2012.09.20 박준범 - 저장버튼 click 아래로 source 옮기고 여기는 comment처리
  250. //전표마감 저장
  251. function fSetRadhclos() {
  252. //저장할지의 여부 확인
  253. if(sysf_messageBox("","Q002") == 7) {
  254. return false;
  255. }
  256. //저장할 데이타를 가지고 node copy
  257. var sNoteList = getGridUpdateData(group2.grd_radhcloslist);
  258. if(sNoteList == "") {
  259. sysf_messageBox("변경된 데이터가","I004");
  260. return false;
  261. }else if(sNoteList != "") {
  262. ds_send_save.clearData(); ds_send_save.addRow();
  263. dsf_makeValue( ds_send_save, "radhclos", "string", "" );
  264. ds_send_save.setColumn( 0, "radhclos", group2.grd_radhcloslist.getUpdateData());
  265. misfSave("TXRAD00401");
  266. misfMsterDetailRetrieve();
  267. }
  268. }
  269. */
  270. function group2_group4_btn_search_onclick(obj:Button, e:ClickEventInfo) {
  271. //2012.09.14 박준범 - 그리드 초기화 추가
  272. //misfGridInit(group2.grd_radhcloslist);
  273. ds_main_radhclos.clearData();
  274. fGetRadhclos();
  275. //2012.09.14 박준범 - 조회한 자료의 년마감이 끝난 경우에는 일마감을 수정할 수 없도록 Disable 처리
  276. if( ds_main_radhclos.getColumn(0,"yrclosyn" ) == "Y" ) {
  277. grp_btn.btn_save.enable = false;
  278. group2.btn_all.enable = false;
  279. group2.btn_cancel.enable = false;
  280. //group2.grd_radhcloslist.colDisabled(group2.grd_radhcloslist.colRef("closyn")) = true;
  281. group2.grd_radhcloslist.setCellProperty("body", group2.grd_radhcloslist.getBindCellIndex("body", "closyn"), "edittype", "none");
  282. group2.grd_radhcloslist.setCellProperty("body", group2.grd_radhcloslist.getBindCellIndex("body", "closyn"), "controlbackground", "darkgray");
  283. //group2.grd_radhcloslist.setCellProperty("body", group2.grd_radhcloslist.getBindCellIndex("body", "closyn"), "edittype", "none");
  284. //group2.grd_radhcloslist.setCellProperty("body", group2.grd_radhcloslist.getBindCellIndex("body", "closyn"), "edittype", "none");
  285. } else {
  286. grp_btn.btn_save.enable = true;
  287. group2.btn_all.enable = true;
  288. group2.btn_cancel.enable = true;
  289. group2.grd_radhcloslist.setCellProperty("body", group2.grd_radhcloslist.getBindCellIndex("body", "closyn"), "edittype", "checkbox");
  290. group2.grd_radhcloslist.setCellProperty("body", group2.grd_radhcloslist.getBindCellIndex("body", "closyn"), "controlbackground", "");
  291. //group2.grd_radhcloslist.colDisabled(group2.grd_radhcloslist.colRef("closyn")) = false;
  292. }
  293. }
  294. function group2_btn_cancel_onclick(obj:Button, e:ClickEventInfo) {
  295. for(var i = 0 ; i < ds_main_radhclos.rowcount ; i++)
  296. {
  297. ds_main_radhclos.setColumn(i,"closyn","N");
  298. ds_main_radhclos.updatecontrol = false;
  299. ds_main_radhclos.setRowType(i,4);
  300. ds_main_radhclos.updatecontrol = true;
  301. //grdf_setStatus(group2.grd_radhcloslist,"U",i);
  302. //group2.grd_radhcloslist.addStatus(i, "update");
  303. }
  304. }
  305. function group2_btn_all_onclick(obj:Button, e:ClickEventInfo) {
  306. for(var i = 0 ; i < ds_main_radhclos.rowcount ; i++)
  307. {
  308. ds_main_radhclos.setColumn(i,"closyn","Y");
  309. //grdf_setStatus(group2.grd_radhcloslist,"D",i);
  310. ds_main_radhclos.updatecontrol = false;
  311. ds_main_radhclos.setRowType(i,4);
  312. ds_main_radhclos.updatecontrol = true;
  313. //group2.grd_radhcloslist.addStatus(i, "update");
  314. }
  315. }
  316. function grp_btn_btn_save_onclick(obj:Button, e:ClickEventInfo) {
  317. //2012.09.20 박준범 - fSetRadhclos의 내용을 가져와 아래에 직접 수정, 구현
  318. //fSetRadhclos();
  319. //저장할지의 여부 확인
  320. if(sysf_messageBox("","Q002") == 7) {
  321. return false;
  322. }
  323. //저장할 데이타를 가지고 node copy
  324. var sNoteList = grdf_getGridUpdateData(group2.grd_radhcloslist,"all");
  325. if(utlf_isNull(sNoteList)) {
  326. sysf_messageBox("변경된 데이터가","I004");
  327. return false;
  328. }else if(!utlf_isNull(sNoteList)) {
  329. for (i=0; i<ds_main_radhclos.rowcount; i++) {
  330. ds_main_radhclos.setColumn(i,"flag",ds_main_radhclos.getRowType(i));
  331. }
  332. //2012.09.20 박준범 - submit error handling 구현
  333. var oParam = {};
  334. oParam.id = "TXRAD00401";
  335. oParam.service = "slipapp.Slip";
  336. oParam.method = "reqExeSaveRadhclos";
  337. oParam.inds = "req=ds_main_radhclos:U";
  338. oParam.outds = "";
  339. oParam.async = false;
  340. oParam.callback = "cf_TXRAD00401";
  341. tranf_submit(oParam);
  342. }
  343. }
  344. function cf_TXRAD00401(sSvcId, nErrorCode, sErrorMsg) {
  345. if(nErrorCode < 0) return;
  346. group2.group4.btn_search.click();
  347. }
  348. function ds_main_radhclos_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  349. {
  350. if(e.columnid=="closyn") {
  351. obj.setColumn(e.row,e.columnid,(e.newvalue=="Y"||e.newvalue==1)?"Y":"N");
  352. }
  353. }
  354. function group2_group4_input_s_essential_onkillfocus(obj:MaskEdit, e:KillFocusEventInfo)
  355. {
  356. obj.updateToDataset();
  357. //2012.09.14 박준범 - btn_search 버튼 click 으로 수정
  358. //fGetRadhclos();
  359. group2.group4.btn_search.click();
  360. }
  361. ]]></Script>
  362. </Form>
  363. </FDL>