SMRPV05900_업무지표확정등록.xrw 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>업무 지표 확정</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <list>
  11. <bizempl>
  12. <bizempllist/>
  13. </bizempl>
  14. <bizgoalkpi>
  15. <bizgoalkpilist/>
  16. </bizgoalkpi>
  17. </list>
  18. <smsdata>
  19. <bizabbr/>
  20. <replytelno/>
  21. <rsrvyn/>
  22. <rsrvdate/>
  23. <rsrvtime/>
  24. <msgcnts/>
  25. <closeflag/>
  26. <recvrlist>
  27. <chk/>
  28. <recvrnm/>
  29. <recvrtelno/>
  30. </recvrlist>
  31. </smsdata>
  32. <bizgoalskpiprintlist/>
  33. <maildata>
  34. <fromaddress/>
  35. <fromname/>
  36. <toaddress/>
  37. <ccaddress/>
  38. <subject/>
  39. <msg/>
  40. <attach>
  41. <file/>
  42. <filename/>
  43. <filesize/>
  44. </attach>
  45. </maildata>
  46. </main>
  47. <send>
  48. <bizempl>
  49. <valuyy/>
  50. <instnm/>
  51. <dutplcedeptnm/>
  52. <instcd/>
  53. <deptcd/>
  54. <jobrespnm/>
  55. <fstscndhfyyflag/>
  56. <aprvflag/>
  57. <valuclsdetlcd/>
  58. <emplno/>
  59. <emplnm/>
  60. <workgbn/>
  61. <valuemplno/>
  62. </bizempl>
  63. <bizgoalkpi>
  64. <valuyy/>
  65. <emplno/>
  66. <fstscndhfyyflag/>
  67. <valuclsdetlcd/>
  68. <valuclscd>01</valuclscd>
  69. <valumdlcd>001</valumdlcd>
  70. <instcd/>
  71. <deptcd/>
  72. </bizgoalkpi>
  73. <emplinfo>
  74. <instnm/>
  75. <dutplcedeptnm/>
  76. <jobrespnm/>
  77. <jobgradnm/>
  78. <emplno/>
  79. <emplnm/>
  80. </emplinfo>
  81. <save>
  82. <bizgoalkpilist/>
  83. </save>
  84. <rtnreqresn/>
  85. <valupsnrtnreqresn/>
  86. </send>
  87. <init>
  88. <schaprvflag>
  89. <code/>
  90. <cdnm>전체</cdnm>
  91. <code>A</code>
  92. <cdnm>승인</cdnm>
  93. <code>B</code>
  94. <cdnm>미승인</cdnm>
  95. </schaprvflag>
  96. <fstscndhfyyflag>
  97. <code>1</code>
  98. <cdnm>상반기</cdnm>
  99. <code>2</code>
  100. <cdnm>하반기</cdnm>
  101. </fstscndhfyyflag>
  102. <valuclsdetlcd>
  103. <code/>
  104. <cdnm>전체</cdnm>
  105. <code>002</code>
  106. <cdnm>공유지표</cdnm>
  107. <code>004</code>
  108. <cdnm>기본업무지표</cdnm>
  109. </valuclsdetlcd>
  110. </init>
  111. <hidden/>
  112. <temp/>
  113. <target/>
  114. </root>
  115. </instance>
  116. <script type="javascript" ev:event="xforms-ready">
  117. <![CDATA[
  118. /* Grid 초기화 */
  119. misfGridInit(grd_empl);
  120. misfGridInit(grd_bizidx);
  121. misfGridInit(grd_msg);
  122. misfMsterDetailSet(grd_empl, null, "TRRPV05901", "Y");
  123. misfMsterDetailSet(grd_bizidx, null, "TRRPV05902", "Y");
  124. misfMsterDetailSet(grd_msg, null, "TRRPV05901", "Y");
  125. grd_empl.fixedcellcheckbox(0,grd_empl.colRef("check")) = true;
  126. var curdate = getCurrentDate();
  127. model.setValue(ipt_valuyy.attribute("ref") , curdate.substr(0, 4));
  128. model.setValue(ipt_emplnos.attribute("ref") , getUserInfo("userid"));
  129. model.setValue(ipt_emplnms.attribute("ref") , getUserInfo("usernm"));
  130. model.setValue(opt_schinstnm.attribute("ref") , getUserInfo("dutplceinstnm"));
  131. model.setValue(opt_schdutplcedeptnm.attribute("ref") , getUserInfo("dutplcenm")); //getUserInfo("posdeptnm"));
  132. model.setValue(opt_schjobrespnm.attribute("ref") , getUserInfo("jobrespnm"));
  133. rpvfComboValuCdList(model.getValue(ipt_valuyy.attribute("ref")),"FSTSCNDHFYYFLAG","cmb_fstscndhfyyflag");
  134. //현재화면이 팝업으로 Load 되었을 시.....
  135. if(instance1.selectNodes("/root/target/*").length > 0)
  136. {
  137. fPopupDataSet("valuyy,trgtemplno,trgtemplnm,dutinstnm,deptnm,jobrespnm","ipt_valuyy,ipt_emplnos,ipt_emplnms,opt_schinstnm,opt_schdutplcedeptnm,opt_schjobrespnm");
  138. }
  139. //model.setValue(ipt_emplnos.attribute("ref") , "92030164 ");
  140. model.setFocus("btn_search");
  141. // 평가기간에 따른 권한 부여.
  142. //당분간 막음2008-04-01
  143. // if(model.getValue("/root/temp/trgtflag") != ""){
  144. // rpvfCheckDayFlag(ipt_valuyy.value, getUserInfo("userid"), model.getValue("/root/temp/trgtflag"), model.getValue("/root/temp/program"),"btn_lastcnfm,btn_nonlastcnfmyn,btn_restoration,btn_nonrestoration,btn_aprv,btn_nonaprv,btn_init");
  145. // }else{
  146. // rpvfCheckDayFlag(ipt_valuyy.value, getUserInfo("userid"), "01", "SMRPV05900", "btn_lastcnfm,btn_nonlastcnfmyn,btn_restoration,btn_nonrestoration,btn_aprv,btn_nonaprv,btn_init");
  147. // }
  148. if (btn_lastcnfm.disabled == true) {
  149. processyn = "N";
  150. }
  151. else {
  152. processyn = "Y";
  153. }
  154. var instcd = getUserInfo("dutplceinstcd");
  155. var emplno = getUserInfo("userid");
  156. rpvfGetUserAuth(instcd,emplno);
  157. if(DUTY_VALU_YN =='Y'){
  158. ipt_emplnos.disabled = false;
  159. ipt_emplnms.disabled = false;
  160. btn_emplno.disabled = false;
  161. }else{
  162. ipt_emplnos.disabled = true;
  163. ipt_emplnms.disabled = true;
  164. btn_emplno.disabled = true;
  165. }
  166. model.refresh();
  167. ]]>
  168. </script>
  169. <submission id="TRRPV05901" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/bizempl" resultref="/root/main/list/bizempl"/>
  170. <submission id="TRRPV05902" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/bizgoalkpi" resultref="/root/main/list/bizgoalkpi"/>
  171. <submission id="TXRPV05901" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save" resultref="/root/hidden/temp"/>
  172. <submission id="TRRPV05804" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/bizempl" resultref="/root/main/bizgoalskpiprintlist"/>
  173. </model>
  174. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  175. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  176. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  177. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  178. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  179. <script type="javascript" src="../../../mis/valuationmngtweb/js/RPV001.js"/>
  180. <script type="javascript" src="../../../mis/humtrafactmngtweb/js/RPB001.js"/>
  181. <script type="javascript" src="../../../com/shortmsgweb/js/ZMS001.js"/>
  182. <script type="javascript" src="../../../com/emailsenderweb/js/ZME001.js"/>
  183. <script type="javascript">
  184. <![CDATA[
  185. var gridrow = -1;
  186. var processyn = "N";
  187. //현재화면이 팝업화면으로 Loadding 될때 넘겨받은값을 설정.
  188. function fPopupDataSet()
  189. {
  190. var fgetValueNode = "/root/target/";
  191. var fNodeName = arguments[0].split(",");
  192. var fSetControl = arguments[1].split(",");
  193. for(var i = 0; i < fSetControl.length; i++)
  194. {
  195. document.controls(fSetControl[i]).value = model.getValue(fgetValueNode + fNodeName[i]);
  196. }
  197. }
  198. function fcheckcomplete()
  199. {
  200. var bool = false
  201. if( grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("lastcnfmyn")) == 'Y' ){
  202. bool = true;
  203. }
  204. // btn_restoration.disabled = bool;
  205. // btn_nonrestoration.disabled = bool;
  206. // btn_aprv.disabled = bool;
  207. // btn_nonaprv.disabled = bool;
  208. // btn_lastcnfm.disabled = bool;
  209. }
  210. // 문자메세지 전송.
  211. // * 수신자의 전화번호는 10자리를 넘어야만 전송이 가능하며, 발신자의 전화번호도 10자리를 넘어야만한다.
  212. //
  213. // fphoneno : 발신자 전화번호 - "01010092456"
  214. // fmsg : 전송할 문자 내용 - "하고싶은말을 적으면 됩니다."
  215. // checkYN : 체크되었는 사용자만 전송할건지 전부 전송할건지 유무! - "Y" or "N" or ""
  216. function fSendMsg(fphoneno, fmsg, checkYN)
  217. {
  218. var fEmail = '';
  219. model.setValue("/root/main/maildata/fromaddress", grd_empl.valueMatrix(grd_empl.fixedRows, grd_empl.colRef("valuemail")).getTrim()); // 보내는 사람의 E-mail 주소
  220. model.setValue("/root/main/maildata/fromname", getUserInfo("usernm")); // 보내는 사람명
  221. for(var i = grd_empl.fixedRows; i < grd_empl.rows; i++ )
  222. {
  223. if(grd_empl.valueMatrix(i, grd_empl.colRef("check")) == "Y")
  224. {
  225. if(grd_empl.valueMatrix(i, grd_empl.colRef("email")).getTrim() != '')
  226. {
  227. if(fEmail.length >0)
  228. {
  229. fEmail += ';';
  230. }
  231. fEmail += grd_empl.valueMatrix(i, grd_empl.colRef("email")).getTrim();
  232. }
  233. }
  234. }
  235. model.setValue("/root/main/maildata/toaddress", fEmail); // 받는이 이메일 주소 여러명일때 구분자 ';'
  236. model.setValue("/root/main/maildata/ccaddress", ''); // 참조인 이메일 주소
  237. model.setValue("/root/main/maildata/subject", "업무지표 확정"); // 제목
  238. model.setValue("/root/main/maildata/msg", fmsg + "\n" + " <a href=" + '"' + "http://mis001.cmcnu.or.kr/himed" + '"' + " target=_new>http://mis001.cmcnu.or.kr/himed</a> ");// 전송메세지
  239. //zmefOpenMail("/root/main/maildata");
  240. rpvfOpenMail(10, 10, "/root/main/maildata");
  241. //email없는 인원은 SMS로 발송
  242. /// 발신자 정보 설정.
  243. misfGridInit(grd_msg);
  244. var fPhone = grd_empl.valueMatrix(grd_empl.fixedRows, grd_empl.colRef("valuphone"));
  245. var sPhone = '';
  246. model.setValue("/root/main/smsdata/bizabbr", "mis"); // 그룹명, ex> mis, com, tis, his...등등...
  247. model.setValue("/root/main/smsdata/replytelno", fPhone); // 발신자 전화번호
  248. model.setValue("/root/main/smsdata/rsrvyn", "0"); // 예약전송 구분
  249. model.setValue("/root/main/smsdata/rsrvdate", getCurrentDate()); // 전송 날자
  250. model.setValue("/root/main/smsdata/rsrvtime", getCurrentTime().substr(0,4)); // 전송 시간
  251. model.setValue("/root/main/smsdata/msgcnts", fmsg); // 전송할 메세지
  252. model.setValue("/root/main/smsdata/closeflag", "Y"); // 메시지 전송 팝업화면을 바로 닫기위한 구분자.
  253. /// 수신자 정보설정.
  254. /// 아래에 있는 소스는 수신자의 리스트를 정리한다. 현제 DB에 전화번호가 010-2321-1231 이렇게 되어 있으므로 '-' 이것을 제외한 01023211231 로 변환.
  255. /// 그리드에 체크 유무에 따라 수신자 리스트에 추가를 하도록 되어있다.
  256. ///
  257. var smscnt = 0;
  258. for(var i = grd_empl.fixedRows; i < grd_empl.rows; i++ )
  259. {
  260. // 체크된 사람만 보낼건지 전체를 보낼건지 구분.
  261. if(checkYN == "Y")
  262. {
  263. // 체크된사람 유무.
  264. if(grd_empl.valueMatrix(i, grd_empl.colRef("check")) == "Y")
  265. {
  266. if(grd_empl.valueMatrix(i, grd_empl.colRef("email")).getTrim() == "" && grd_empl.valueMatrix(i, grd_empl.colRef("phone")).getTrim() != "")
  267. {
  268. misfGridIUD(grd_msg, "A");
  269. fPhone = grd_empl.valueMatrix(i, grd_empl.colRef("phone")).split("-");
  270. sPhone = '';
  271. for(var p = 0; p < fPhone.length; p++ )
  272. {
  273. sPhone += fPhone[p];
  274. }
  275. grd_msg.valueMatrix(grd_msg.row, grd_msg.colRef("chk")) = 'Y'; // 여기서 Y의 의미는 문자메세지를 보낼때 팝업화면에서 전송받을 수신자의 선택유무다. 무조건 보내기 위해 Y 로 설정.
  276. grd_msg.valueMatrix(grd_msg.row, grd_msg.colRef("recvrnm")) = grd_empl.valueMatrix(i, grd_empl.colRef("emplnm")); // 수신자 이름 설정.
  277. grd_msg.valueMatrix(grd_msg.row, grd_msg.colRef("recvrtelno")) = sPhone; // 수신자 전화번호 설정.
  278. smscnt += 1;
  279. }
  280. }
  281. }else{
  282. if(grd_empl.valueMatrix(i, grd_empl.colRef("email")).getTrim() == "" && grd_empl.valueMatrix(i, grd_empl.colRef("phone")) != '')
  283. {
  284. misfGridIUD(grd_msg, "A");
  285. fPhone = grd_empl.valueMatrix(i, grd_empl.colRef("phone")).split("-");
  286. sPhone = '';
  287. for(var p = 0; p < fPhone.length; p++ )
  288. {
  289. sPhone += fPhone[p];
  290. }
  291. grd_msg.valueMatrix(grd_msg.row, grd_msg.colRef("chk")) = 'Y'; // 여기서 Y의 의미는 문자메세지를 보낼때 팝업화면에서 전송받을 수신자의 선택유무다. 무조건 보내기 위해 Y 로 설정.
  292. grd_msg.valueMatrix(grd_msg.row, grd_msg.colRef("recvrnm")) = grd_empl.valueMatrix(i, grd_empl.colRef("emplnm")); // 수신자 이름 설정.
  293. grd_msg.valueMatrix(grd_msg.row, grd_msg.colRef("recvrtelno")) = sPhone;
  294. smscnt += 1; // 수신자 전화번호 설정.
  295. }
  296. }
  297. }
  298. // 메시지 전송창 화면 밖으로 이동(rpvfOpenSMS 사용하실때에는 꼭 closeflag 를 'Y' 로 설정 하시기 바랍니다. )
  299. if (smscnt > 0 ) {
  300. zmsfOpenSMS("/root/main/smsdata");
  301. }
  302. // 메시지 전송창 화면 중간으로 이동
  303. //zmsfOpenSMS("/root/main/smsdata");
  304. }
  305. ]]>
  306. </script>
  307. </xhtml:head>
  308. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  309. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  310. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">업무 지표 확정</caption>
  311. </group>
  312. <group id="group2" scroll="auto" style="left:0px; top:38px; width:1195px; height:744px; ">
  313. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" ellipsewidth="20" ellipseheight="20" style="left:1px; top:3px; width:1190px; height:60px; "/>
  314. <line id="line13" class="line_4" style="x1:1131px; y1:16px; x2:1131px; y2:38px; "/>
  315. <datagrid id="grd_empl" nodeset="/root/main/list/bizempl/bizempllist" autoresize="true" caption="^부서^직책^사원번호^성명^입력구분^승인구분^반려요청|^부서^직책^사원번호^성명^입력구분^승인구분^반려요청" colsep="^" colwidth="19, 97, 68, 61, 58, 58, 69, 32, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" selectionmode="free" tooltip="true" style="left:0px; top:139px; width:500px; height:528px; ">
  316. <col checkvalue="Y,N" ref="check" type="checkbox"/>
  317. <col ref="deptnm" type="output"/>
  318. <col ref="jobrespnm"/>
  319. <col ref="emplno" type="output"/>
  320. <col ref="emplnm" type="output"/>
  321. <col ref="inputendflagnm" type="output" style="text-align:center; "/>
  322. <col ref="valupsncnfmflag1nm" type="output"/>
  323. <col checkvalue="Y,N" disabled="true" ref="procstatyn" type="checkbox"/>
  324. <col ref="valupsncnfmflag1" visibility="hidden"/>
  325. <col ref="inputendflag" visibility="hidden"/>
  326. <col ref="valuyy" visibility="hidden"/>
  327. <col ref="emplno" visibility="hidden"/>
  328. <col ref="fstscndhfyyflag" visibility="hidden"/>
  329. <col ref="instcd" visibility="hidden"/>
  330. <col ref="deptcd" visibility="hidden"/>
  331. <col ref="rtnreqresn" visibility="hidden"/>
  332. <col ref="valupsnrtnreqresn" visibility="hidden"/>
  333. <col ref="jobgradnm" visibility="hidden"/>
  334. <col ref="instnm" visibility="hidden"/>
  335. <col ref="lastcnfmyn" visibility="hidden"/>
  336. <col ref="procstat" visibility="hidden"/>
  337. <col ref="ownvalucnfmyn" visibility="hidden"/>
  338. <col ref="phone" visibility="hidden"/>
  339. <col ref="valuphone" visibility="hidden"/>
  340. <col ref="valuemail" visibility="hidden"/>
  341. <col ref="email" visibility="hidden"/>
  342. <script type="javascript" ev:event="onclick">
  343. <![CDATA[
  344. if (grd_empl.row < grd_empl.fixedRows) {
  345. return;
  346. }
  347. if (grd_empl.rows - grd_empl.fixedRows <= 0) return;
  348. if (gridrow != grd_empl.row) {
  349. fcheckcomplete();
  350. grd_empl.dispatch("onmouseup");
  351. model.setValue(opt_instnm.attribute("ref"), grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("instnm")));
  352. model.setValue(opt_dutplcedeptnm.attribute("ref"), grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("deptnm")));
  353. model.setValue(opt_jobrespnm.attribute("ref"), grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("jobrespnm")));
  354. model.setValue(opt_jobgradnm.attribute("ref"), grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("jobgradnm")));
  355. model.setValue(opt_emplno.attribute("ref"), grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("emplno")));
  356. model.setValue(opt_emplnm.attribute("ref"), grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("emplnm")));
  357. model.refresh();
  358. if(grd_empl.row == -1 && (grd_empl.rows - grd_empl.fixedRows >0))grd_empl.row = grd_empl.fixedRows;
  359. if(grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("emplno")).length == 0)return;
  360. misfGridInit(grd_bizidx);
  361. model.setValue("/root/send/bizgoalkpi/valuclscd" , "01");
  362. model.setValue("/root/send/bizgoalkpi/valumdlcd" , "001");
  363. model.setValue("/root/send/bizgoalkpi/fstscndhfyyflag" , model.getValue(cmb_fstscndhfyyflag.attribute("ref")));
  364. model.setValue("/root/send/bizgoalkpi/valuclsdetlcd" , model.getValue(cmb_valuclsdetlcd.attribute("ref")));
  365. model.setValue("/root/send/bizgoalkpi/valuyy" , model.getValue(ipt_valuyy.attribute("ref")));
  366. model.setValue("/root/send/bizgoalkpi/emplno" , grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("emplno")));
  367. model.setValue("/root/send/bizgoalkpi/instcd" , grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("instcd")));
  368. model.setValue("/root/send/bizgoalkpi/deptcd" , grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("deptcd")));
  369. model.setValue(txt_rtnreqresn.attribute("ref"), grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("rtnreqresn")));
  370. model.setValue(txt_valupsnrtnreqresn.attribute("ref"), grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("valupsnrtnreqresn")));
  371. txt_valupsnrtnreqresn.refresh();
  372. submit("TRRPV05902");
  373. gridrow = grd_empl.row;
  374. }
  375. ]]>
  376. </script>
  377. </datagrid>
  378. <caption id="caption4" class="tit_2" style="left:5px; top:118px; width:120px; height:13px; vertical-align:middle; ">피평가자</caption>
  379. <line id="line1" class="line_1" style="x1:0px; y1:133px; x2:500px; y2:133px; "/>
  380. <caption id="cap_valuyy" class="search_name" style="left:5px; top:18px; width:85px; height:17px; vertical-align:middle; ">평가년도:</caption>
  381. <caption id="cap_emplnos" class="search_name" style="left:218px; top:18px; width:94px; height:17px; font-weight:bold; ">평가자사번:</caption>
  382. <caption id="caption3" class="tit_2" style="left:505px; top:118px; width:230px; height:13px; vertical-align:middle; ">업무지표 List</caption>
  383. <button id="btn_aprv" class="btn5_letter2" style="left:390px; top:113px; width:42px; height:19px; ">
  384. <caption>승인</caption>
  385. <script type="javascript" ev:event="DOMActivate">
  386. <![CDATA[
  387. for(var row = grd_empl.fixedRows; row < grd_empl.rows; row++)
  388. {
  389. if(grd_empl.valueMatrix(row , grd_empl.colRef("check")) == "Y")
  390. {
  391. if(grd_empl.valueMatrix(row , grd_empl.colRef("valupsncnfmflag1")) == "F")
  392. {
  393. messageBox("확정된 인원은 승인을 할 수 없습니다.\n미확정된 인원만 선택하여 주세요.", "I999");
  394. return;
  395. }
  396. if(grd_empl.valueMatrix(row , grd_empl.colRef("inputendflag")) != "03" && grd_empl.valueMatrix(row , grd_empl.colRef("inputendflag")) != "04")
  397. {
  398. messageBox("작성 완료 되지 않은 인원은 승인 할 수 없습니다.\n작성완료[재작성완료]된 인원만 선택하여 주세요.", "I999");
  399. return;
  400. }
  401. if( grd_empl.valueMatrix(row , grd_empl.colRef("procstatyn")) == "Y" )
  402. {
  403. messageBox("반려 요청 상태인 인원은 승인 할 수 없습니다.", "I999");
  404. return;
  405. }
  406. if(grd_empl.valueMatrix(row , grd_empl.colRef("valupsncnfmflag1")) != "A")
  407. {
  408. model.setValue(grd_empl.attribute("nodeset")+"[" + (row - grd_empl.fixedRows + 1) + "]/valupsncnfmflag1","A");
  409. }
  410. }
  411. }
  412. fSendMsg("010100425", cmb_fstscndhfyyflag.label + " 업무지표의 승인이 이루어 졌습니다.", "Y");
  413. btn_save.dispatch("DOMActivate");
  414. ]]>
  415. </script>
  416. </button>
  417. <line id="line3" class="line_1" style="x1:505px; y1:133px; x2:1190px; y2:133px; "/>
  418. <datagrid id="grd_bizidx" nodeset="/root/main/list/bizgoalkpi/bizgoalkpilist" autoresize="true" caption="구분(S,F)^업무구분^성과지표^가중치^목표수준^측정방법|구분(S,F)^업무구분^성과지표^가중치^목표수준^측정방법" colsep="^" colwidth="59, 131, 262, 49, 158, 114, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" tooltip="true" style="left:505px; top:139px; width:685px; height:602px; ">
  419. <col ref="idxsfflagnm"/>
  420. <col ref="idxflagnm"/>
  421. <col ref="rsltidx" type="output"/>
  422. <col ref="wtnscornm" type="output"/>
  423. <col ref="goallevl" type="output"/>
  424. <col ref="inspmthd" type="output"/>
  425. <col ref="publbaseflag" type="output" visibility="hidden"/>
  426. <col ref="wtnscor" type="output" visibility="hidden"/>
  427. <col ref="valuyy" type="output" visibility="hidden"/>
  428. <col ref="emplno" type="output" visibility="hidden"/>
  429. <col ref="fstscndhfyyflag" type="output" visibility="hidden"/>
  430. <col ref="valuclscd" visibility="hidden"/>
  431. <col ref="valumdlcd" visibility="hidden"/>
  432. <col ref="valuclsdetlcd" visibility="hidden"/>
  433. <col ref="publbaseflag" type="output" visibility="hidden"/>
  434. <col ref="idxcd" visibility="hidden"/>
  435. <col ref="inputendflag" visibility="hidden"/>
  436. <col ref="rtnreqresn" visibility="hidden"/>
  437. <col ref="deptcd" visibility="hidden"/>
  438. </datagrid>
  439. <caption id="cap_fstscndhfyyflag" class="search_name" style="left:5px; top:41px; width:85px; height:17px; vertical-align:middle; ">상하반기:</caption>
  440. <select1 id="cmb_valuclsdetlcd" ref="/root/send/bizempl/valuclsdetlcd" class="combo_s_essential" appearance="minimal" style="left:313px; top:40px; width:252px; height:19px; ">
  441. <choices>
  442. <itemset nodeset="/root/init/valuclsdetlcd">
  443. <label ref="cdnm"/>
  444. <value ref="code"/>
  445. </itemset>
  446. </choices>
  447. </select1>
  448. <caption id="caption1" class="search_name" style="left:218px; top:41px; width:94px; height:17px; vertical-align:middle; ">구분:</caption>
  449. <caption id="caption5" class="search_name" style="left:570px; top:18px; width:55px; height:17px; font-weight:bold; ">기관:</caption>
  450. <caption id="caption7" class="search_name" style="left:780px; top:18px; width:55px; height:17px; font-weight:bold; ">부서:</caption>
  451. <caption id="caption9" class="search_name" style="left:970px; top:18px; width:55px; height:17px; font-weight:bold; ">직책:</caption>
  452. <output id="opt_schinstnm" ref="/root/send/bizempl/instnm" style="left:630px; top:17px; width:144px; height:19px; "/>
  453. <output id="opt_schdutplcedeptnm" ref="/root/send/bizempl/dutplcedeptnm" style="left:840px; top:17px; width:125px; height:19px; "/>
  454. <output id="opt_schjobrespnm" ref="/root/send/bizempl/jobrespnm" style="left:1030px; top:17px; width:100px; height:19px; "/>
  455. <select1 id="rbo_aprv" ref="/root/send/bizempl/aprvflag" appearance="full" cols="3" overflow="visible" style="left:571px; top:40px; width:180px; height:19px; border-style:solid; ">
  456. <choices>
  457. <itemset nodeset="/root/init/schaprvflag">
  458. <label ref="cdnm"/>
  459. <value ref="code"/>
  460. </itemset>
  461. </choices>
  462. </select1>
  463. <button id="btn_restoration" class="btn5_letter2" style="left:282px; top:113px; width:42px; height:19px; ">
  464. <caption>반려</caption>
  465. <script type="javascript" ev:event="DOMActivate">
  466. <![CDATA[
  467. var valupsnrtnreqresn = model.getValue(txt_valupsnrtnreqresn.attribute("ref"));
  468. var restoryn = false;
  469. for(var row = grd_empl.fixedRows; row < grd_empl.rows; row++)
  470. {
  471. if(grd_empl.valueMatrix(row , grd_empl.colRef("check")) == "Y")
  472. {
  473. if(grd_empl.valueMatrix(row , grd_empl.colRef("valupsncnfmflag1")) == "F")
  474. {
  475. messageBox("확정된 인원은 반려를 할 수 없습니다.\n미확정된 인원만 선택하여 주세요.", "I999");
  476. return;
  477. }
  478. if(grd_empl.valueMatrix(row , grd_empl.colRef("inputendflag")) != "03" && grd_empl.valueMatrix(row , grd_empl.colRef("inputendflag")) != "04")
  479. {
  480. messageBox("작성 완료 되지 않은 인원은 반려 할 수 없습니다.\n작성완료[재작성완료]된 인원만 선택하여 주세요.", "I999");
  481. return;
  482. }
  483. // if( grd_empl.valueMatrix(row , grd_empl.colRef("procstatyn")) == "Y" )
  484. // {
  485. // messageBox("반려 요청 상태인 인원은 반려 할 수 없습니다.", "I999");
  486. // return;
  487. // }
  488. if(grd_empl.valueMatrix(row , grd_empl.colRef("valupsncnfmflag1")) != "R")
  489. {
  490. restoryn = true;
  491. break;
  492. }
  493. }
  494. }
  495. if (restoryn && (valupsnrtnreqresn == null || valupsnrtnreqresn.length == 0))
  496. {
  497. messageBox("평가자 반려 처리시 반려사유는","I003");
  498. model.setFocus("txt_valupsnrtnreqresn");
  499. return;
  500. }
  501. for(var row = grd_empl.fixedRows; row < grd_empl.rows; row++)
  502. {
  503. if(grd_empl.valueMatrix(row , grd_empl.colRef("check")) == "Y")
  504. {
  505. if(grd_empl.valueMatrix(row , grd_empl.colRef("valupsncnfmflag1")) != "R")
  506. {
  507. model.setValue(grd_empl.attribute("nodeset")+"[" + (row - grd_empl.fixedRows + 1) + "]/inputendflag","02");
  508. model.setValue(grd_empl.attribute("nodeset")+"[" + (row - grd_empl.fixedRows + 1) + "]/valupsncnfmflag1","R");
  509. model.setValue(grd_empl.attribute("nodeset")+"[" + (row - grd_empl.fixedRows + 1) + "]/valupsnrtnreqresn",valupsnrtnreqresn);
  510. model.setValue(grd_empl.attribute("nodeset")+"[" + (row - grd_empl.fixedRows + 1) + "]/procstat","");
  511. model.setValue(grd_empl.attribute("nodeset")+"[" + (row - grd_empl.fixedRows + 1) + "]/rtnreqresn","");
  512. }
  513. }
  514. }
  515. grd_empl.refresh();
  516. fSendMsg("010100425", cmb_fstscndhfyyflag.label + " 업무지표의 반려가 이루어 졌습니다.", "Y");
  517. btn_save.dispatch("DOMActivate");
  518. ]]>
  519. </script>
  520. </button>
  521. <textarea id="txt_rtnreqresn" ref="/root/send/rtnreqresn" editable="false" maxbyte="900" style="left:38px; top:669px; width:462px; height:35px; "/>
  522. <caption id="caption10" class="cell_1" style="left:2px; top:669px; width:35px; height:35px; text-align:left; vertical-align:middle; ">
  523. <![CDATA[반려
  524. 요청]]>
  525. </caption>
  526. <input id="ipt_valuyy" ref="/root/send/bizempl/valuyy" class="input_s_essential" inputtype="date" format="yyyy" style="left:88px; top:18px; width:125px; height:19px; "/>
  527. <select1 id="cmb_fstscndhfyyflag" ref="/root/send/bizempl/fstscndhfyyflag" class="combo_s_essential" appearance="minimal" style="left:88px; top:40px; width:125px; height:19px; ">
  528. <choices>
  529. <itemset nodeset="/root/init/fstscndhfyyflag">
  530. <label ref="cdnm"/>
  531. <value ref="code"/>
  532. </itemset>
  533. </choices>
  534. </select1>
  535. <button id="btn_search" class="btn1_letter2" style="left:1134px; top:16px; width:56px; height:22px; ">
  536. <caption>조회</caption>
  537. <script type="javascript" ev:event="DOMActivate">
  538. <![CDATA[
  539. if ( !isRequiredControls("ipt_valuyy" , "cmb_fstscndhfyyflag") ) {
  540. return false;
  541. }
  542. misfGridInit(grd_empl);
  543. misfGridInit(grd_bizidx);
  544. submit("TRRPV05901");
  545. model.setValue(txt_rtnreqresn.attribute("ref"), "");
  546. model.setValue(txt_valupsnrtnreqresn.attribute("ref"), "");
  547. model.setValue(opt_instnm.attribute("ref"),"");
  548. model.setValue(opt_dutplcedeptnm.attribute("ref"),"");
  549. model.setValue(opt_jobrespnm.attribute("ref"),"");
  550. model.setValue(opt_jobgradnm.attribute("ref"),"");
  551. model.setValue(opt_emplno.attribute("ref"),"");
  552. model.setValue(opt_emplnm.attribute("ref"),"");
  553. if( grd_empl.rows != grd_empl.fixedRows )
  554. {
  555. grd_empl.row = grd_empl.fixedRows;
  556. grd_empl.select(grd_empl.row, grd_empl.colRef("emplnm")) = true;
  557. }
  558. var totcnfmyn = "Y";
  559. var ownvalucnfmyn = "N";
  560. var emplnm = "";
  561. for (var i = grd_empl.fixedRows; i < grd_empl.rows; i++) {
  562. var valupsncnfmflag1 = grd_empl.valueMatrix(i, grd_empl.colRef("valupsncnfmflag1"));
  563. if (valupsncnfmflag1 != "F") {
  564. var totcnfmyn = "N";
  565. }
  566. if (grd_empl.valueMatrix(i, grd_empl.colRef("ownvalucnfmyn")) == "Y") {
  567. var ownvalucnfmyn = "Y";
  568. }
  569. if (grd_empl.valueMatrix(i, grd_empl.colRef("procstatyn")) == "Y") {
  570. grd_empl.cellstyle("background-color", i, grd_empl.colRef("procstatyn"), i, grd_empl.colRef("procstatyn")) = "#ffff99";
  571. emplnm = emplnm + "[" + grd_empl.valueMatrix(i, grd_empl.colRef("emplnm")) +"]";
  572. }
  573. }
  574. if (emplnm != "") {
  575. messageBox("반려 요청인원은 승인 취소를 하셔야 됩니다." + emplnm , "I999");
  576. }
  577. if (processyn == "Y") {
  578. if ( totcnfmyn == "Y") {
  579. btn_lastcnfm.disabled = true;
  580. if (ownvalucnfmyn == "Y") {
  581. btn_nonlastcnfmyn.disabled = true;
  582. }
  583. else {
  584. btn_nonlastcnfmyn.disabled = false;
  585. }
  586. btn_restoration.disabled = true;
  587. btn_nonrestoration.disabled = true;
  588. btn_aprv.disabled = true;
  589. btn_nonaprv.disabled = true;
  590. txt_rtnreqresn.disabled = true;
  591. txt_valupsnrtnreqresn.disabled = true;
  592. }
  593. else {
  594. btn_lastcnfm.disabled = false;
  595. btn_nonlastcnfmyn.disabled = true;
  596. btn_restoration.disabled = false;
  597. btn_nonrestoration.disabled = false;
  598. btn_aprv.disabled = false;
  599. btn_nonaprv.disabled = false;
  600. txt_rtnreqresn.disabled = false;
  601. txt_valupsnrtnreqresn.disabled = false;
  602. }
  603. }
  604. //의정부 임시 처리
  605. // if (getUserInfo("dutplceinstcd") == "013" && ipt_valuyy.value == "2009" ) {
  606. // btn_lastcnfm.disabled = true;
  607. // btn_nonlastcnfmyn.disabled = true;
  608. //
  609. // btn_restoration.disabled = true;
  610. // btn_nonrestoration.disabled = true;
  611. // btn_aprv.disabled = true;
  612. // btn_nonaprv.disabled = true;
  613. // txt_rtnreqresn.disabled = true;
  614. // txt_valupsnrtnreqresn.disabled = true;
  615. // }
  616. model.setFocus("grd_empl");
  617. if (gridrow == -1 || gridrow == grd_empl.rows - grd_empl.fixedRows - 1) {
  618. grd_empl.row = grd_empl.fixedRows;
  619. }
  620. else {
  621. grd_empl.row = gridrow + 1;
  622. }
  623. grd_empl.select(grd_empl.row, grd_empl.colRef("emplnm")) = true;
  624. grd_empl.dispatch("onclick");
  625. ]]>
  626. </script>
  627. </button>
  628. <input id="ipt_emplnos" ref="/root/send/bizempl/emplno" class="input_default" style="left:313px; top:18px; width:87px; height:19px; ">
  629. <script type="javascript" ev:event="xforms-value-changed">
  630. <![CDATA[
  631. var recv_list = "emplno,emplnm" ;
  632. rpbfValidationCheck("EMPLNO", recv_list);
  633. model.refresh();
  634. ]]>
  635. </script>
  636. </input>
  637. <input id="ipt_emplnms" ref="/root/send/bizempl/emplnm" class="input_default" style="left:425px; top:18px; width:140px; height:19px; ">
  638. <script type="javascript" ev:event="xforms-value-changed">
  639. <![CDATA[
  640. var recv_list = "emplno,emplnm" ;
  641. rpbfValidationCheck("EMPLNM", recv_list);
  642. model.refresh();
  643. if (model.getValue(ipt_emplnos.attribute("ref")).length > 0) {
  644. btn_search.dispatch("DOMActivate");
  645. }
  646. ]]>
  647. </script>
  648. </input>
  649. <textarea id="txt_valupsnrtnreqresn" ref="/root/send/valupsnrtnreqresn" maxbyte="900" style="left:38px; top:706px; width:462px; height:35px; "/>
  650. <caption id="caption2" class="cell_1" style="left:2px; top:706px; width:35px; height:35px; text-align:left; vertical-align:middle; ">
  651. <![CDATA[반려
  652. 사유]]>
  653. </caption>
  654. <line id="line8" class="line_3" style="x1:0px; y1:110px; x2:1190px; y2:110px; "/>
  655. <caption id="caption8" class="cell_1" style="left:412px; top:87px; width:71px; height:20px; text-align:center; vertical-align:middle; ">직책</caption>
  656. <caption id="caption11" class="cell_1" style="left:617px; top:87px; width:71px; height:20px; text-align:center; vertical-align:middle; ">직급</caption>
  657. <caption id="caption22" class="cell_1" style="left:2px; top:87px; width:71px; height:20px; text-align:center; vertical-align:middle; ">기관</caption>
  658. <caption id="caption12" class="cell_1" style="left:842px; top:87px; width:71px; height:20px; text-align:center; vertical-align:middle; ">사번</caption>
  659. <caption id="caption13" class="cell_1" style="left:1017px; top:87px; width:71px; height:20px; text-align:center; vertical-align:middle; ">성명</caption>
  660. <caption id="caption14" class="tit_2" style="left:5px; top:65px; width:170px; height:13px; vertical-align:middle; ">피평가자 인적 정보</caption>
  661. <caption id="caption15" class="cell_1" style="left:207px; top:87px; width:71px; height:20px; text-align:center; vertical-align:middle; ">부서</caption>
  662. <line id="line4" class="line_1" style="x1:0px; y1:80px; x2:1190px; y2:80px; "/>
  663. <output id="opt_jobrespnm" ref="/root/send/emplinfo/jobrespnm" style="left:485px; top:87px; width:130px; height:19px; "/>
  664. <output id="opt_emplnm" ref="/root/send/emplinfo/emplnm" style="left:1090px; top:87px; width:100px; height:19px; "/>
  665. <output id="opt_emplno" ref="/root/send/emplinfo/emplno" style="left:915px; top:87px; width:100px; height:19px; "/>
  666. <output id="opt_instnm" ref="/root/send/emplinfo/instnm" style="left:75px; top:87px; width:130px; height:19px; "/>
  667. <output id="opt_dutplcedeptnm" ref="/root/send/emplinfo/dutplcedeptnm" style="left:280px; top:87px; width:130px; height:19px; "/>
  668. <output id="opt_jobgradnm" ref="/root/send/emplinfo/jobgradnm" style="left:690px; top:87px; width:150px; height:19px; "/>
  669. <button id="btn_nonrestoration" class="btn5_letter4" style="left:325px; top:113px; width:64px; height:19px; ">
  670. <caption>반려취소</caption>
  671. <script type="javascript" ev:event="DOMActivate">
  672. <![CDATA[
  673. // btn_nonaprv.dispatch("DOMActivate");
  674. // return;
  675. for(var row = grd_empl.fixedRows; row < grd_empl.rows; row++)
  676. {
  677. if(grd_empl.valueMatrix(row , grd_empl.colRef("check")) == "Y")
  678. {
  679. if(grd_empl.valueMatrix(row , grd_empl.colRef("valupsncnfmflag1")) == "F")
  680. {
  681. messageBox("확정된 인원은 반려취소를 할 수 없습니다.\n미확정된 인원만 선택하여 주세요.", "I999");
  682. return;
  683. }
  684. // if(grd_empl.valueMatrix(row , grd_empl.colRef("inputendflag")) != "03" && grd_empl.valueMatrix(row , grd_empl.colRef("inputendflag")) != "04")
  685. // {
  686. // messageBox("작성 완료 되지 않은 인원은 반려 취소 할 수 없습니다.\n작성완료[재작성완료]된 인원만 선택하여 주세요.", "I999");
  687. // return;
  688. // }
  689. //alert(grd_empl.valueMatrix(row , grd_empl.colRef("valupsncnfmflag1")));
  690. if(grd_empl.valueMatrix(row , grd_empl.colRef("valupsncnfmflag1")) != "R" )
  691. {
  692. messageBox("반려 되지 않은 인원은 반려 취소 할 수 없습니다.\n반려된 인원만 선택하여 주세요.", "I999");
  693. return;
  694. }
  695. if( grd_empl.valueMatrix(row , grd_empl.colRef("procstatyn")) == "Y" )
  696. {
  697. messageBox("반려 요청 상태인 인원은 반려 취소 할 수 없습니다.", "I999");
  698. return;
  699. }
  700. if(grd_empl.valueMatrix(row , grd_empl.colRef("valupsncnfmflag1")) == "R")
  701. {
  702. model.setValue(grd_empl.attribute("nodeset")+"[" + (row - grd_empl.fixedRows + 1) + "]/valupsncnfmflag1","B");
  703. model.setValue(grd_empl.attribute("nodeset")+"[" + (row - grd_empl.fixedRows + 1) + "]/valupsnrtnreqresn","");
  704. model.setValue(grd_empl.attribute("nodeset")+"[" + (row - grd_empl.fixedRows + 1) + "]/inputendflag","03");
  705. }
  706. }
  707. }
  708. grd_empl.refresh();
  709. fSendMsg("010100425", cmb_fstscndhfyyflag.label + " 업무지표의 반려취소가 이루어 졌습니다.", "Y");
  710. btn_save.dispatch("DOMActivate");
  711. //btn_nonaprv.dispatch("DOMActivate");
  712. ]]>
  713. </script>
  714. </button>
  715. <button id="btn_nonaprv" class="btn5_letter4" style="left:433px; top:113px; width:64px; height:19px; ">
  716. <caption>승인취소</caption>
  717. <script type="javascript" ev:event="DOMActivate">
  718. <![CDATA[
  719. for(var row = grd_empl.fixedRows; row < grd_empl.rows; row++)
  720. {
  721. if(grd_empl.valueMatrix(row , grd_empl.colRef("check")) == "Y")
  722. {
  723. if(grd_empl.valueMatrix(row , grd_empl.colRef("valupsncnfmflag1")) == "F")
  724. {
  725. messageBox("확정된 인원은 승인취소를 할 수 없습니다.\n미확정된 인원만 선택하여 주세요.", "I999");
  726. return;
  727. }
  728. if(grd_empl.valueMatrix(row , grd_empl.colRef("valupsncnfmflag1")) != "A" )
  729. {
  730. messageBox("승인 되지 않은 인원은 승인 취소 할 수 없습니다.\n승인된 인원만 선택하여 주세요.", "I999");
  731. return;
  732. }
  733. if(grd_empl.valueMatrix(row , grd_empl.colRef("valupsncnfmflag1")) == "A")
  734. {
  735. if (grd_empl.valueMatrix(row , grd_empl.colRef("procstatyn")) == "Y") {
  736. model.setValue(grd_empl.attribute("nodeset")+"[" + (row - grd_empl.fixedRows + 1) + "]/inputendflag","02");
  737. model.setValue(grd_empl.attribute("nodeset")+"[" + (row - grd_empl.fixedRows + 1) + "]/rtnreqresn","");
  738. model.setValue(grd_empl.attribute("nodeset")+"[" + (row - grd_empl.fixedRows + 1) + "]/procstat","");
  739. }
  740. model.setValue(grd_empl.attribute("nodeset")+"[" + (row - grd_empl.fixedRows + 1) + "]/valupsncnfmflag1","B");
  741. }
  742. }
  743. }
  744. fSendMsg("010100425", cmb_fstscndhfyyflag.label + " 업무지표의 승인취소가 이루어 졌습니다.", "Y");
  745. btn_save.dispatch("DOMActivate");
  746. ]]>
  747. </script>
  748. </button>
  749. <datagrid id="grd_msg" nodeset="/root/main/smsdata/recvrlist" visibility="hidden" caption="체크여부^이름^전화번호" colsep="^" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:660px; top:260px; width:310px; height:125px; ">
  750. <col ref="chk"/>
  751. <col ref="recvrnm"/>
  752. <col ref="recvrtelno"/>
  753. </datagrid>
  754. <button id="btn_emplno" class="icon_search" style="left:403px; top:20px; width:16px; height:16px; ">
  755. <caption/>
  756. <script type="javascript" ev:event="DOMActivate">
  757. <![CDATA[
  758. var recv_list = "emplno,emplnm" ;
  759. rpbfOpenPopUpList("SPRPB00101", ipt_emplnos, recv_list,"1","N");
  760. model.refresh();
  761. ]]>
  762. </script>
  763. </button>
  764. </group>
  765. <group id="grp_btn" scroll="auto" style="left:0px; top:12px; width:1195px; height:27px; ">
  766. <line id="line6" class="line_6" style="x1:0px; y1:25; x2:1195px; y2:25; "/>
  767. <button id="btn_init" class="btn4_letter3" style="left:1125px; top:3px; width:68px; height:22px; ">
  768. <caption>초기화</caption>
  769. <script type="javascript" ev:event="DOMActivate">
  770. <![CDATA[
  771. window.reload() ;
  772. ]]>
  773. </script>
  774. </button>
  775. <button id="btn_save" class="btn4_letter2" visibility="hidden" style="left:1069px; top:3px; width:56px; height:22px; ">
  776. <caption>저장</caption>
  777. <script type="javascript" ev:event="DOMActivate">
  778. <![CDATA[
  779. model.removenode("/root/send/save");
  780. model.makeNode("/root/send/save/bizgoalkpilist");
  781. var rCVS = getNodeListCSV(instance1.selectNodes(grd_empl.nodeset + "[check='Y']"));
  782. model.setValue("/root/send/save/bizgoalkpilist",rCVS);
  783. //alert(grd_bizidx.getUpdateData());
  784. //model.setValue("/root/send/save/bizgoalkpilist", grd_bizidx.getUpdateData());
  785. submit("TXRPV05901");
  786. if (model.getValue(gvErrorMsgPath + "/type") != "error")
  787. {
  788. btn_search.dispatch("DOMActivate");
  789. }
  790. ]]>
  791. </script>
  792. </button>
  793. <button id="btn_nonlastcnfmyn" class="btn4_letter6" style="left:1021px; top:3px; width:104px; height:22px; ">
  794. <caption>최종확정취소</caption>
  795. <script type="javascript" ev:event="DOMActivate">
  796. <![CDATA[
  797. for(var row = grd_empl.fixedRows; row < grd_empl.rows; row++)
  798. {
  799. // if(grd_empl.valueMatrix(row , grd_empl.colRef("check")) == "Y")
  800. // {
  801. if (grd_empl.valueMatrix(row , grd_empl.colRef("ownvalucnfmyn")) == "Y") {
  802. var emplnm = grd_empl.valueMatrix(row, grd_empl.colRef("emplnm")) ;
  803. messageBox("[" + emplnm + "]은(는) 본인 평가 완료가 되어서 최종 확정 취소 할 수 없습니다.", "I999");
  804. return;
  805. }
  806. else
  807. {
  808. grd_empl.valueMatrix(row , grd_empl.colRef("check")) = "Y";
  809. model.setValue(grd_empl.attribute("nodeset")+"[" + (row - grd_empl.fixedRows + 1) + "]/valupsncnfmflag1","A");
  810. }
  811. // grd_empl.valueMatrix(row, grd_empl.colRef("lastcnfmyn")) = 'N';
  812. // grd_empl.addStatus(row, "update");
  813. // }
  814. }
  815. btn_save.dispatch("DOMActivate");
  816. ]]>
  817. </script>
  818. </button>
  819. <button id="btn_lastcnfm" class="btn4_letter4" style="left:941px; top:3px; width:80px; height:22px; ">
  820. <caption>최종확정</caption>
  821. <script type="javascript" ev:event="DOMActivate">
  822. <![CDATA[
  823. for(var i = grd_empl.fixedRows; i < grd_empl.rows; i++)
  824. {
  825. if(grd_empl.valueMatrix(i , grd_empl.colRef("valupsncnfmflag1")) != "F" ) {
  826. if( grd_empl.valueMatrix(i , grd_empl.colRef("valupsncnfmflag1")) != "A" )
  827. {
  828. var emplnm = grd_empl.valueMatrix(i , grd_empl.colRef("emplnm")) ;
  829. messageBox("[" + emplnm + "]은(는) 승인이 되지않아 확정 할 수 없습니다.", "I999");
  830. return;
  831. }
  832. if( grd_empl.valueMatrix(i , grd_empl.colRef("procstatyn")) == "Y" )
  833. {
  834. messageBox("반려 요청 상태인 인원은 최종 확정 할 수 없습니다.", "I999");
  835. return;
  836. }
  837. }
  838. }
  839. for(var row = grd_empl.fixedRows; row < grd_empl.rows; row++)
  840. {
  841. grd_empl.valueMatrix(row , grd_empl.colRef("check")) = "Y";
  842. grd_empl.valueMatrix(row, grd_empl.colRef("valupsncnfmflag1")) = "F";
  843. }
  844. btn_save.dispatch("DOMActivate");
  845. // 발신자 폰번호, 발신할 문자메세지
  846. //fSendMsg("010100425", "업무지표확정이 최종확정되었습니다.");
  847. ]]>
  848. </script>
  849. </button>
  850. <button id="button2" class="btn4_letter2" style="left:830px; top:3px; width:56px; height:22px; ">
  851. <caption>출력</caption>
  852. <script type="javascript" ev:event="DOMActivate">
  853. <![CDATA[
  854. model.setValue("/root/send/bizempl/instcd",getUserInfo("dutplceinstcd"));
  855. model.setValue("/root/send/bizempl/valuemplno",model.getValue("/root/send/bizempl/emplno"));
  856. model.setValue("/root/send/bizempl/workgbn","G");
  857. submit("TRRPV05804");
  858. exeReportPreview("RPRPV05900", "XMLSTR", "/root/send/report");
  859. ]]>
  860. </script>
  861. </button>
  862. </group>
  863. </xhtml:body>
  864. </xhtml:html>