SMRPV07200_역량2차평가.xrw 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/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>역량 평가 2차 평가</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <grid>
  11. <rpvmrsltlist/>
  12. <rpvdabvulist/>
  13. </grid>
  14. <valupsncnts1/>
  15. <send_rpvmrsltlist>
  16. </send_rpvmrsltlist>
  17. <valupsncnts2/>
  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. <valuempllist/>
  33. </main>
  34. <send>
  35. <valuyy/>
  36. <fsthfyyvalupsn2/>
  37. <fsthfyyvalupsn2nm/>
  38. <valuclscd/>
  39. <check2>Y</check2>
  40. <emplno/>
  41. </send>
  42. <init>
  43. <score>
  44. <indpscor/>
  45. <valuscor1/>
  46. <adjtscor/>
  47. </score>
  48. </init>
  49. <temp>
  50. <allselect/>
  51. </temp>
  52. <target/>
  53. </root>
  54. </instance>
  55. <submission id="TRRPV06501" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/grid/rpvmrsltlist"/>
  56. <submission id="TRRPV06502" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/send_rpvmrsltlist" resultref="/root/main/grid/rpvdabvulist"/>
  57. <submission id="TXRPV06501" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/temp"/>
  58. <script type="javascript" ev:event="xforms-model-destruct">
  59. <![CDATA[
  60. if (getGridUpdateData(grd_rpvdabvulist) != "") {
  61. var save_val = messageBox("변경된 자료가 존재 합니다. ", "Q002");
  62. if (save_val == "6") {
  63. btn_save.dispatch("DOMActivate");
  64. }
  65. }
  66. ]]>
  67. </script>
  68. <submission id="TRRPV99912" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/valuempllist"/>
  69. </model>
  70. <script type="javascript" ev:event="xforms-ready">
  71. <![CDATA[
  72. //그리드 초기화
  73. misfGridInit(grd_rpvmrsltlist);
  74. misfGridInit(grd_rpvdabvulist);
  75. misfMsterDetailSet(grd_rpvmrsltlist, null, "TRRPV06501", "Y"); // 역량 평가 피평가자 List
  76. misfMsterDetailSet(grd_rpvdabvulist, null, "TRRPV06502", "Y"); // 역량 평가 List
  77. // 현재 년도 설정.
  78. model.setValue(ipt_valuyy.attribute("ref"), getCurrentDate().toDate().getDateFormat("YYYY"));
  79. // 기본 값 설정.
  80. model.setValue(ipt_fsthfyyvalupsn2.attribute("ref"), getUserInfo("userid")); // 사번
  81. model.setValue(ipt_fsthfyyvalupsn2nm.attribute("ref"), getUserInfo("usernm")); // 이름
  82. //현재화면이 팝업으로 Load 되었을 시.....
  83. if(instance1.selectNodes("/root/target/*").length > 0)
  84. {
  85. fPopupDataSet("valuyy,trgtemplno,trgtemplnm","ipt_valuyy,ipt_fsthfyyvalupsn2,ipt_fsthfyyvalupsn2nm");
  86. }
  87. rpvfComboValuCdList(ipt_valuyy.value , "VALUCLSCD,APRVFLAG,APRVFLAG,VALUSCORBIZ,VALUSCORBIZ,ABLTYDEFINECD,VALUCLSDETLCDA", "cmb_valuclsdetlcd,grd_rpvmrsltlist.valupsncnfmflag1,grd_rpvmrsltlist.valupsncnfmflag2,grd_rpvdabvulist.ownvaluscor,grd_rpvdabvulist.valupsnscor1,grd_rpvdabvulist.abltydefinecd,grd_rpvdabvulist.valuclsdetlcd");
  88. addComboItem( "cmb_valuclsdetlcd", "[-- 전체 --]", "", "above");
  89. fInitialize();
  90. model.refresh();
  91. ]]>
  92. </script>
  93. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  94. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  95. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  96. <script type="javascript" src="../../../com/commonweb/js/numericHelper.js"/>
  97. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  98. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  99. <script type="javascript" src="../../../mis/miscommonweb/js/RSZ001.js"/>
  100. <script type="javascript" src="../../../mis/valuationmngtweb/js/RPV001.js"/>
  101. <script type="javascript" src="../../../mis/humtrafactmngtweb/js/RPB001.js"/>
  102. <script type="javascript">
  103. <![CDATA[
  104. var gridrow = -1;
  105. // 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  106. function fInitialize() {
  107. // 컨트롤 disabled
  108. //fdisabledControl(true);
  109. // 평가기간에 따른 권한 부여.
  110. if(model.getValue("/root/temp/trgtflag") != ""){
  111. //alert("aaaaa");
  112. rpvfCheckDayFlag(ipt_valuyy.value, getUserInfo("userid"), model.getValue("/root/temp/trgtflag"), model.getValue("/root/temp/program"),"btn_cancel,btn_complete,btn_save,btn_init,btn_r,btn_c,btn_a,btn_b");
  113. }else{
  114. //alert(ipt_valuyy.value);
  115. rpvfCheckDayFlag(ipt_valuyy.value, getUserInfo("userid"), "02", "SMRPV07200", "btn_cancel,btn_complete,btn_save,btn_init,btn_r,btn_c,btn_a,btn_b");
  116. }
  117. //사용자 정보 조회.(조회자의 전화번호 가져오기.)
  118. rpvfGetUserInfo( getUserInfo("userid"), getUserInfo("dutplceinstcd") );
  119. //화면 권한 설정
  120. //btn_save.disabled = !(checkAuth("X"));
  121. var instcd = getUserInfo("dutplceinstcd");
  122. var emplno = getUserInfo("userid");
  123. rpvfGetUserAuth(instcd,emplno);
  124. if(DUTY_VALU_YN =='Y'){
  125. ipt_fsthfyyvalupsn2.disabled = false;
  126. btn_fsthfyyvalupsn2.disabled = false;
  127. ipt_fsthfyyvalupsn2nm.disabled = false;
  128. btn_cancel.visible = true;
  129. }else{
  130. ipt_fsthfyyvalupsn2.disabled = true;
  131. btn_fsthfyyvalupsn2.disabled = true;
  132. ipt_fsthfyyvalupsn2nm.disabled = true;
  133. btn_cancel.visible = false;
  134. }
  135. }
  136. //현재화면이 팝업화면으로 Loadding 될때 넘겨받은값을 설정.
  137. function fPopupDataSet()
  138. {
  139. var fgetValueNode = "/root/target/";
  140. var fNodeName = arguments[0].split(",");
  141. var fSetControl = arguments[1].split(",");
  142. for(var i = 0; i < fSetControl.length; i++)
  143. {
  144. document.controls(fSetControl[i]).value = model.getValue(fgetValueNode + fNodeName[i]);
  145. }
  146. }
  147. function fdisabledControl(BOOL)
  148. {
  149. switch1.disabled = BOOL;
  150. btn_a.disabled = BOOL;
  151. btn_b.disabled = BOOL;
  152. btn_c.disabled = BOOL;
  153. btn_r.disabled = BOOL;
  154. btn_complete.disabled = BOOL;
  155. bol_allchoice.disabled = BOOL;
  156. txt_valupsncnts1.disabled = BOOL;
  157. txt_valupsncnts2.disabled = BOOL;
  158. }
  159. //2차평가 평가확정 여부 판별.
  160. function fcompletecheck()
  161. {
  162. var bool = false;
  163. if( grd_rpvmrsltlist.valueMatrix(grd_rpvmrsltlist.row, grd_rpvmrsltlist.colRef("lastcnfmyn")) == "Y" )
  164. {
  165. bool = true;
  166. }
  167. switch1.disabled = bool;
  168. btn_a.disabled = bool;
  169. btn_b.disabled = bool;
  170. btn_r.disabled = bool;
  171. btn_c.disabled = bool;
  172. btn_complete.disabled = bool;
  173. bol_allchoice.disabled = bool;
  174. txt_valupsncnts1.disabled = bool;
  175. txt_valupsncnts2.disabled = bool;
  176. }
  177. // 문자메세지 전송.
  178. // * 수신자의 전화번호는 10자리를 넘어야만 전송이 가능하며, 발신자의 전화번호도 10자리를 넘어야만한다.
  179. //
  180. // fgrid_target : 수신자 리스트 데이터가 있는 그리드.
  181. // fphoneno : 발신자 전화번호 - "01010092456"
  182. // fmsg : 전송할 문자 내용 - "하고싶은말을 적으면 됩니다."
  183. // checkYN : 체크되었는 사용자만 전송할건지 전부 전송할건지 유무! - "Y" or "N" or ""
  184. function fSendMsg( fgrid_target,fphoneno, fmsg, checkYN)
  185. {
  186. /// 발신자 정보 설정.
  187. misfGridInit(grd_msg);
  188. var fPhone = '';
  189. var sPhone = '';
  190. var tPhone = '';
  191. tPhone = fphoneno.split("-");
  192. fphoneno = '';
  193. for(var r = 0; r < tPhone.length; r++ )
  194. {
  195. fphoneno += tPhone[r];
  196. }
  197. model.setValue("/root/main/smsdata/bizabbr", "mis"); // 그룹명, ex> mis, com, tis, his...등등...
  198. model.setValue("/root/main/smsdata/replytelno", fphoneno); // 발신자 전화번호
  199. model.setValue("/root/main/smsdata/rsrvyn", 0); // 예약전송 구분
  200. model.setValue("/root/main/smsdata/rsrvdate", getCurrentDate()); // 전송 날자
  201. model.setValue("/root/main/smsdata/rsrvtime", getCurrentTime().substr(0,4)); // 전송 시간
  202. model.setValue("/root/main/smsdata/msgcnts", fmsg); // 전송할 메세지
  203. model.setValue("/root/main/smsdata/closeflag", "Y"); // 메시지 전송 팝업화면을 바로 닫기위한 구분자.
  204. /// 수신자 정보설정.
  205. /// 아래에 있는 소스는 수신자의 리스트를 정리한다. 현제 DB에 전화번호가 010-2321-1231 이렇게 되어 있으므로 '-' 이것을 제외한 01023211231 로 변환.
  206. /// 그리드에 체크 유무에 따라 수신자 리스트에 추가를 하도록 되어있다.
  207. ///
  208. for(var i = fgrid_target.fixedRows; i < fgrid_target.rows; i++ )
  209. {
  210. // 체크된 사람만 보낼건지 전체를 보낼건지 구분.
  211. if(checkYN == "Y")
  212. {
  213. // 체크된사람 유무.
  214. if(fgrid_target.valueMatrix(i, fgrid_target.colRef("check")) == "Y")
  215. {
  216. if(fgrid_target.valueMatrix(i, fgrid_target.colRef("phone")) != '')
  217. {
  218. misfGridIUD(grd_msg, "A");
  219. fPhone = fgrid_target.valueMatrix(i, fgrid_target.colRef("phone")).split("-");
  220. sPhone = '';
  221. for(var p = 0; p < fPhone.length; p++ )
  222. {
  223. sPhone += fPhone[p];
  224. }
  225. grd_msg.valueMatrix(grd_msg.row, grd_msg.colRef("chk")) = 'Y'; // 여기서 Y의 의미는 문자메세지를 보낼때 팝업화면에서 전송받을 수신자의 선택유무다. 무조건 보내기 위해 Y 로 설정.
  226. grd_msg.valueMatrix(grd_msg.row, grd_msg.colRef("recvrnm")) = fgrid_target.valueMatrix(i, fgrid_target.colRef("emplnm")); // 수신자 이름 설정.
  227. grd_msg.valueMatrix(grd_msg.row, grd_msg.colRef("recvrtelno")) = sPhone; // 수신자 전화번호 설정.
  228. }
  229. }
  230. }else{
  231. if(fgrid_target.valueMatrix(i, fgrid_target.colRef("phone")) != '')
  232. {
  233. misfGridIUD(grd_msg, "A");
  234. fPhone = fgrid_target.valueMatrix(i, fgrid_target.colRef("phone")).split("-");
  235. sPhone = '';
  236. for(var p = 0; p < fPhone.length; p++ )
  237. {
  238. sPhone += fPhone[p];
  239. }
  240. grd_msg.valueMatrix(grd_msg.row, grd_msg.colRef("chk")) = 'Y'; // 여기서 Y의 의미는 문자메세지를 보낼때 팝업화면에서 전송받을 수신자의 선택유무다. 무조건 보내기 위해 Y 로 설정.
  241. grd_msg.valueMatrix(grd_msg.row, grd_msg.colRef("recvrnm")) = fgrid_target.valueMatrix(i, fgrid_target.colRef("emplnm")); // 수신자 이름 설정.
  242. grd_msg.valueMatrix(grd_msg.row, grd_msg.colRef("recvrtelno")) = sPhone; // 수신자 전화번호 설정.
  243. }
  244. }
  245. }
  246. // 메시지 전송창 화면 밖으로 이동(rpvfOpenSMS 사용하실때에는 꼭 closeflag 를 'Y' 로 설정 하시기 바랍니다. )
  247. rpvfOpenSMS("/root/main/smsdata");
  248. // 메시지 전송창 화면 중간으로 이동
  249. //zmsfOpenSMS("/root/main/smsdata");
  250. }
  251. ]]>
  252. </script>
  253. </xhtml:head>
  254. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  255. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  256. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">역량 평가 2차 평가</caption>
  257. </group>
  258. <group id="group2" scroll="auto" style="left:0px; top:38; width:1195px; height:744; ">
  259. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" ellipsewidth="20" ellipseheight="20" style="left:0; top:10; width:1195; height:35px; "/>
  260. <button id="btn_search" class="btn1_letter2" style="left:1125px; top:16px; width:56px; height:22px; ">
  261. <caption>조회</caption>
  262. <script type="javascript" ev:event="DOMActivate">
  263. <![CDATA[
  264. if(!isRequiredControls("ipt_valuyy")) return;
  265. if(!isRequiredControls("ipt_fsthfyyvalupsn1")) return;
  266. misfGridInit(grd_rpvdabvulist);
  267. model.setValue("/root/send/emplno",ipt_fsthfyyvalupsn2.value);
  268. submit("TRRPV99912");
  269. submit("TRRPV06501");
  270. //model.refresh();
  271. // 조회 내용이 있을시..
  272. if(grd_rpvmrsltlist.rows != grd_rpvmrsltlist.fixedRows)
  273. {
  274. // 컨트롤 disabled
  275. //fdisabledControl(false);
  276. // grd_rpvmrsltlist.row = grd_rpvmrsltlist.fixedRows;
  277. // grd_rpvmrsltlist.dispatch("onrowchanged");
  278. // grd_rpvmrsltlist.select(grd_rpvmrsltlist.row, grd_rpvmrsltlist.fixedCols+3) = true;
  279. model.setFocus("grd_rpvmrsltlist");
  280. if (gridrow == -1 || gridrow == grd_rpvmrsltlist.rows - grd_rpvmrsltlist.fixedRows + 1) {
  281. grd_rpvmrsltlist.row = grd_rpvmrsltlist.fixedRows;
  282. }
  283. else {
  284. grd_rpvmrsltlist.row = gridrow + 1;
  285. }
  286. grd_rpvmrsltlist.select(grd_rpvmrsltlist.row, grd_rpvmrsltlist.colRef("emplno")) = true;
  287. grd_rpvmrsltlist.dispatch("onclick");
  288. // for(var i = grd_rpvmrsltlist.fixedRows; i < grd_rpvmrsltlist.rows; i++)
  289. // {
  290. // if( grd_rpvmrsltlist.valueMatrix(i, grd_rpvmrsltlist.colRef("lastcnfmyn")) == "Y" )
  291. // {
  292. // grd_rpvmrsltlist.isReadOnly(i, grd_rpvmrsltlist.colRef("select")) = true;
  293. // }else{
  294. //
  295. // grd_rpvmrsltlist.isReadOnly(i, grd_rpvmrsltlist.colRef("select")) = false;
  296. // }
  297. // }
  298. }else{
  299. //fdisabledControl(true);
  300. }
  301. //model.refresh();
  302. ]]>
  303. </script>
  304. </button>
  305. <line id="line13" class="line_4" style="x1:1110px; y1:16px; x2:1110px; y2:38px; "/>
  306. <datagrid id="grd_rpvdabvulist" nodeset="/root/main/grid/rpvdabvulist" autoresize="true" caption="역량구분^역량정의^핵심어^행동지표^본인평가점수^1차평가점수|역량구분^역량정의^핵심어^행동지표^본인평가점수^1차평가점수" colsep="^" colwidth="100, 214, 99, 239, 61, 53, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" tooltip="true" style="left:480px; top:75px; width:710px; height:435px; ">
  307. <col ref="valuclsdetlcd" type="combo">
  308. <choices>
  309. <itemset>
  310. <label/>
  311. <value/>
  312. </itemset>
  313. </choices>
  314. </col>
  315. <col disabled="true" ref="abltydefinecd" type="combo">
  316. <choices>
  317. <itemset>
  318. <label/>
  319. <value/>
  320. </itemset>
  321. </choices>
  322. </col>
  323. <col ref="corelang" style="text-align:center; "/>
  324. <col ref="actidx"/>
  325. <col disabled="true" ref="ownvaluscor" type="combo" style="text-align:center; ">
  326. <choices>
  327. <itemset>
  328. <label/>
  329. <value/>
  330. </itemset>
  331. </choices>
  332. </col>
  333. <col disabled="true" ref="valupsnscor1" type="combo" style="text-align:center; ">
  334. <choices>
  335. <itemset>
  336. <label/>
  337. <value/>
  338. </itemset>
  339. </choices>
  340. </col>
  341. <col ref="corelangcd" visibility="hidden"/>
  342. <col ref="valuyy" visibility="hidden"/>
  343. <col ref="valuclscd" visibility="hidden"/>
  344. <col ref="valumdlcd" visibility="hidden"/>
  345. <col ref="valuclsdetlcd" visibility="hidden"/>
  346. <col ref="emplno" visibility="hidden"/>
  347. <col ref="rtnreqresn" visibility="hidden"/>
  348. <col ref="valupsncnfmflag1" visibility="hidden"/>
  349. <col ref="ownvaluexchscor" visibility="hidden" format="#,###.00"/>
  350. <col ref="valupsnexchscor1" visibility="hidden" format="#,###.00"/>
  351. <col ref="adjtscor" type="output" visibility="hidden" format="#,###.00" maxlength="5.2"/>
  352. </datagrid>
  353. <caption id="caption4" class="tit_2" style="left:480px; top:54px; width:230px; height:13px; vertical-align:middle; ">역량 평가 List</caption>
  354. <line id="line1" class="line_1" style="x1:480px; y1:69px; x2:1190px; y2:69px; "/>
  355. <input id="ipt_valuyy" ref="/root/send/valuyy" class="input_s_essential" inputtype="date" format="yyyy" style="left:105px; top:17px; width:80px; height:19px; text-align:center; ">
  356. <script type="javascript" ev:event="xforms-value-changed">
  357. <![CDATA[
  358. if(!isRequiredControls("ipt_valuyy")) return;
  359. fInitialize();
  360. //
  361. // model.removeNodeset(grd_rpvmrsltlist.nodeset);
  362. // model.removeNodeset(grd_rpvdabvulist.nodeset);
  363. // model.removeNodeset(cmb_valuclsdetlcd.attribute("ref"));
  364. // model.removeNodeset("/root/init/valucd");
  365. // model.refresh();
  366. //
  367. // rpvfComboValuCdList(ipt_valuyy.value , "ABLTYFLAG,APRVFLAG,VALUSCORBIZ,VALUSCOR,ABLTYDEFINECD", "cmb_valuclsdetlcd,grd_rpvmrsltlist.valupsncnfmflag1,grd_rpvdabvulist.ownvaluscor,grd_rpvdabvulist.valupsnscor1,grd_rpvdabvulist.abltydefinecd");
  368. // addComboItem( "cmb_valuclsdetlcd", "[-- 전체 --]", "", "above");
  369. // model.refresh();
  370. // btn_search.dispatch("DOMActivate");
  371. ]]>
  372. </script>
  373. </input>
  374. <caption id="cap_valuyy" class="search_name" style="left:15px; top:18px; width:90px; height:17px; vertical-align:middle; ">평가년도 :</caption>
  375. <input id="ipt_fsthfyyvalupsn2" ref="/root/send/fsthfyyvalupsn2" class="input_s_essential" style="left:315px; top:17px; width:80px; height:19px; text-align:center; ">
  376. <script type="javascript" ev:event="xforms-value-changed">
  377. <![CDATA[
  378. misfValidationCheck("01-1", "","fsthfyyvalupsn2,fsthfyyvalupsn2nm");
  379. model.refresh();
  380. ]]>
  381. </script>
  382. </input>
  383. <button id="btn_fsthfyyvalupsn2" class="icon_search" style="left:398px; top:17px; width:16px; height:16px; ">
  384. <caption/>
  385. <script type="javascript" ev:event="DOMActivate">
  386. <![CDATA[
  387. rpbfOpenPopUpList("SPRPB00101", ipt_fsthfyyvalupsn2, "fsthfyyvalupsn2,fsthfyyvalupsn2nm", "", "N", "N", "emplno,emplnm");
  388. model.refresh();
  389. ]]>
  390. </script>
  391. </button>
  392. <caption id="cap_fsthfyyvalupsn2" class="search_name" style="left:218px; top:18px; width:94px; height:17px; font-weight:bold; ">평가자사번:</caption>
  393. <input id="ipt_fsthfyyvalupsn2nm" ref="/root/send/fsthfyyvalupsn2nm" class="input_search" style="left:417px; top:17px; width:135px; height:19px; text-align:center; ">
  394. <script type="javascript" ev:event="xforms-value-changed">
  395. <![CDATA[
  396. misfValidationCheck("01-2", "", "fsthfyyvalupsn2,fsthfyyvalupsn2nm");
  397. model.refresh();
  398. ]]>
  399. </script>
  400. </input>
  401. <caption id="cap_valuclsdetlcd" class="search_name" style="left:590px; top:18px; width:56px; height:17px; vertical-align:middle; ">구분:</caption>
  402. <select1 id="cmb_valuclsdetlcd" ref="/root/send/valuclscd" class="combo_default" appearance="minimal" style="left:648px; top:17px; width:110px; height:19px; text-align:center; ">
  403. <choices>
  404. <itemset>
  405. <label/>
  406. <value/>
  407. </itemset>
  408. </choices>
  409. <script type="javascript" ev:event="xfroms-value-changed">
  410. <![CDATA[
  411. btn_search.dispatch("DOMActivate");
  412. ]]>
  413. </script>
  414. </select1>
  415. <datagrid id="grd_rpvmrsltlist" nodeset="/root/main/grid/rpvmrsltlist" autoresize="true" caption="^부서^직책^사원번호^성명^1차평가자^승인구분^상태^평가완료^1완료구분|^부서^직책^사원번호^성명^1차평가자^승인구분^상태^평가완료^1완료구분" colsep="^" colwidth="20, 75, 48, 59, 48, 63, 58, 65, 35, 60, 53, 100, 100, 100, 102, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" tooltip="true" style="left:1px; top:75px; width:474px; height:435px; ">
  416. <col checkvalue="Y,N" ref="selyn" type="checkbox"/>
  417. <col ref="deptnm" style="text-align:center; "/>
  418. <col ref="jobrespnm"/>
  419. <col ref="emplno" style="text-align:center; "/>
  420. <col ref="emplnm" style="text-align:center; "/>
  421. <col ref="fsthfyyvalupsn1nm" style="text-align:center; "/>
  422. <col disabled="true" ref="valupsncnfmflag2" type="combo" style="text-align:center; ">
  423. <choices>
  424. <itemset>
  425. <label/>
  426. <value/>
  427. </itemset>
  428. </choices>
  429. </col>
  430. <col ref="preststat"/>
  431. <col ref="lastcnfmyn" visibility="hidden"/>
  432. <col disabled="true" ref="valupsncnfmflag1" type="combo" visibility="hidden" style="text-align:center; ">
  433. <choices>
  434. <itemset>
  435. <label/>
  436. <value/>
  437. </itemset>
  438. </choices>
  439. </col>
  440. <col ref="fsthfyyvalupsn1" visibility="hidden"/>
  441. <col ref="valuyy" visibility="hidden"/>
  442. <col ref="deptcd" visibility="hidden"/>
  443. <col ref="valuclscd" visibility="hidden"/>
  444. <col ref="valumdlcd" visibility="hidden"/>
  445. <col ref="valuclsdetlcd" visibility="hidden"/>
  446. <col ref="valupsncnts1" visibility="hidden"/>
  447. <col ref="valupsncnts2" visibility="hidden"/>
  448. <col ref="valupsncnfmyn1" visibility="hidden"/>
  449. <col ref="lastcnfmyn" visibility="hidden"/>
  450. <col ref="check2" visibility="hidden">
  451. <![CDATA[Y]]>
  452. </col>
  453. <col ref="procstat" visibility="hidden"/>
  454. <col ref="ownvalucnfmyn" visibility="hidden"/>
  455. <col ref="scndhfyyvalupsn1" visibility="hidden"/>
  456. <col ref="phone" visibility="hidden"/>
  457. <col ref="email" visibility="hidden"/>
  458. <script type="javascript" ev:event="onclick">
  459. <![CDATA[
  460. grd_rpvmrsltlist.dispatch("onmouseup");
  461. if (gridrow != grd_rpvmrsltlist.row) {
  462. // 잠시 보류
  463. btn_valupsncnts1.dispatch("onclick");
  464. // 역량 평가 List 조회
  465. model.copyNode("/root/main/send_rpvmrsltlist" , grd_rpvmrsltlist.nodeset + "[" + (grd_rpvmrsltlist.row-1) + "]");
  466. submit("TRRPV06502");
  467. //평가 의견 및 반려요청사유 표시
  468. txt_valupsncnts1.value = grd_rpvmrsltlist.valueMatrix(grd_rpvmrsltlist.row, grd_rpvmrsltlist.colRef("valupsncnts1"));
  469. txt_valupsncnts2.value = grd_rpvmrsltlist.valueMatrix(grd_rpvmrsltlist.row, grd_rpvmrsltlist.colRef("valupsncnts2"));
  470. // 2차평가확정여부 판별.
  471. fcompletecheck();
  472. // ipt_indpscor.value = 0;
  473. // ipt_valuscor1.value = 0;
  474. // ipt_adjtscor.value = 0;
  475. var indpscor = 0.0;
  476. var valuscor1 = 0.0;
  477. var adjttot = 0.0;
  478. var totscor = 0.0;
  479. for(var i = grd_rpvdabvulist.fixedRows; i < grd_rpvdabvulist.rows; i++)
  480. {
  481. indpscor += parseFloat(grd_rpvdabvulist.valueMatrix(i, grd_rpvdabvulist.colRef("ownvaluexchscor")));
  482. valuscor1 += parseFloat(grd_rpvdabvulist.valueMatrix(i, grd_rpvdabvulist.colRef("valupsnexchscor1")));
  483. adjttot += parseFloat(grd_rpvdabvulist.valueMatrix(i, grd_rpvdabvulist.colRef("adjtscor")));
  484. }
  485. indpscor = indpscor / (grd_rpvdabvulist.rows - grd_rpvdabvulist.fixedRows);
  486. totscor = indpscor.toString();
  487. ipt_indpscor.value = totscor.getRound(-3, "DOWN");
  488. valuscor1 = valuscor1/(grd_rpvdabvulist.rows - grd_rpvdabvulist.fixedRows);
  489. totscor = valuscor1.toString();
  490. ipt_valuscor1.value = totscor.getRound(-3, "DOWN");
  491. adjttot = adjttot /(grd_rpvdabvulist.rows - grd_rpvdabvulist.fixedRows);
  492. totscor = adjttot.toString();
  493. ipt_adjtscor.value = totscor.getRound(-3, "DOWN");
  494. // ipt_indpscor.value = indpscor / (grd_rpvdabvulist.rows - grd_rpvdabvulist.fixedRows);
  495. // ipt_valuscor1.value = valuscor1/(grd_rpvdabvulist.rows - grd_rpvdabvulist.fixedRows);
  496. // ipt_adjtscor.value = adjttot /(grd_rpvdabvulist.rows - grd_rpvdabvulist.fixedRows);
  497. model.refresh();
  498. gridrow = grd_rpvmrsltlist.row;
  499. }
  500. ]]>
  501. </script>
  502. </datagrid>
  503. <caption id="caption1" class="tit_2" style="left:0px; top:54px; width:230px; height:14px; vertical-align:middle; ">역량 평가 피평가자 List</caption>
  504. <line id="line2" class="line_1" style="x1:1px; y1:69px; x2:475px; y2:69px; "/>
  505. <button id="btn_valupsncnts1" class="btn_sw" group="tab" selected="true" style="left:2px; top:520px; width:123px; height:22px; ">
  506. <caption>1차평가의견</caption>
  507. <toggle case="case2" ev:event="onclick"/>
  508. </button>
  509. <switch id="switch1" style="left:0px; top:545px; width:1190px; height:195px; ">
  510. <case id="case2" selected="true">
  511. <textarea id="txt_valupsncnts1" ref="/root/main/valupsncnts1" editable="false" maxbyte="900" style="left:0px; top:25px; width:1186px; height:165px; "/>
  512. <caption id="caption16" class="tit_2" style="left:0px; top:4px; width:230px; height:14px; vertical-align:middle; ">1차평가의견</caption>
  513. <line id="line5" class="line_1" style="x1:0px; y1:20px; x2:1186px; y2:20px; "/>
  514. </case>
  515. <case id="case3">
  516. <textarea id="txt_valupsncnts2" ref="/root/main/valupsncnts2" maxbyte="900" style="left:0px; top:25px; width:1186px; height:165px; ">
  517. <script type="javascript" ev:event="xforms-value-changed">
  518. <![CDATA[
  519. grd_rpvmrsltlist.valueMatrix(grd_rpvmrsltlist.row, grd_rpvmrsltlist.colRef("valupsncnts2")) = txt_valupsncnts2.value;
  520. grd_rpvmrsltlist.addStatus(grd_rpvmrsltlist.row, "update");
  521. model.refresh();
  522. ]]>
  523. </script>
  524. </textarea>
  525. <caption id="caption3" class="tit_2" style="left:0px; top:4px; width:230px; height:14px; vertical-align:middle; ">2차평가의견</caption>
  526. <line id="line3" class="line_1" style="x1:0px; y1:20px; x2:1186px; y2:20px; "/>
  527. </case>
  528. </switch>
  529. <bool id="bol_allchoice" checkvalue="Y" ref="/root/temp/allselect" style="left:22px; top:90px; width:19px; height:20px; ">
  530. <script type="javascript" ev:event="xforms-select">
  531. <![CDATA[
  532. for(var i = grd_rpvmrsltlist.fixedRows; i <= grd_rpvmrsltlist.rows; i++) {
  533. grd_rpvmrsltlist.valueMatrix(i, grd_rpvmrsltlist.colRef("selyn")) = "Y";
  534. grd_rpvmrsltlist.rowStatus(i) = 2;
  535. }
  536. ]]>
  537. </script>
  538. <script type="javascript" ev:event="xforms-deselect">
  539. <![CDATA[
  540. for(var i = grd_rpvmrsltlist.fixedRows; i <= grd_rpvmrsltlist.rows; i++) {
  541. grd_rpvmrsltlist.valueMatrix(i, grd_rpvmrsltlist.colRef("selyn")) = "N";
  542. grd_rpvmrsltlist.rowStatus(i) = 2;
  543. }
  544. ]]>
  545. </script>
  546. </bool>
  547. <button id="btn_a" class="btn5_letter2" style="left:379px; top:49px; width:42px; height:19px; ">
  548. <caption>승인</caption>
  549. <script type="javascript" ev:event="DOMActivate">
  550. <![CDATA[
  551. for(var i = grd_rpvmrsltlist.fixedRows; i < grd_rpvmrsltlist.rows; i++)
  552. {
  553. if(grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("selyn")) == "Y" )
  554. {
  555. var emplnm = grd_rpvmrsltlist.valueMatrix(i, grd_rpvmrsltlist.colRef("emplnm"));
  556. var valupsncnfmyn1 = grd_rpvmrsltlist.valueMatrix(i, grd_rpvmrsltlist.colRef("valupsncnfmyn1"));
  557. if (valupsncnfmyn1 != "Y") {
  558. messageBox("[" + emplnm + "]는 역량1차 평가 완료가 되지 않아서 승인 할 수 없습니다. ", "I999");
  559. return;
  560. }
  561. var valupsncnfmflag2 = grd_rpvmrsltlist.valueMatrix(i, grd_rpvmrsltlist.colRef("valupsncnfmflag2"));
  562. if (valupsncnfmflag2 == "R") {
  563. messageBox("[" + emplnm + "]는 반려 상태이므로 승인 할 수 없습니다. ", "I999");
  564. return;
  565. }
  566. grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("valupsncnfmflag2")) = "A";
  567. grd_rpvmrsltlist.addStatus(i, "update");
  568. }
  569. }
  570. btn_save.dispatch("DOMActivate");
  571. //사용자 정보 조회.(조회자의 전화번호 가져오기.)
  572. //rpvfGetUserInfo( ipt_fsthfyyvalupsn2.value, getUserInfo("dutplceinstcd") );
  573. // 수신자 리스트 그리드id ,발신자 폰번호, 발신할 문자메세지
  574. //fSendMsg( grd_rpvmrsltlist, model.getValue("/root/init/info/userinfo/phone"), "역량평가2차평가 승인 되었습니다.", "Y");
  575. // Email 그리고 Sms 전송
  576. // 보내는 사람의 Email 주소가 없을경우 Sms를 전송하도록...Email 주소, Sms 전화번호가 없을경우 경고 메세지 발생.
  577. // fGrid : Email 주소나 휴대전화번호가 있는 그리드 id.
  578. // fCmt : 전체적으로 보낼 전송메세지.
  579. // fEmailTitle : 이메일 전송시의 제목.
  580. // fCheckYN : 선택된 사람만 전송할지 유무.
  581. // fEmplno : 발신자의 정보 호출을 위한 발신자 사원번호.
  582. // fInstcd : 발신자의 정보 호출을 위한 발신자 기관코드.
  583. rpvfCheckEmailAndSms( grd_rpvmrsltlist, "[역량평가2차평가] 승인 되었습니다.", "역량평가 2차 평가 통보", 'Y',ipt_fsthfyyvalupsn2.value, '', 'selyn');
  584. ]]>
  585. </script>
  586. </button>
  587. <button id="btn_b" class="btn5_letter3" style="left:422px; top:49px; width:53px; height:19px; ">
  588. <caption>미승인</caption>
  589. <script type="javascript" ev:event="DOMActivate">
  590. <![CDATA[
  591. for(var i = grd_rpvmrsltlist.fixedRows; i < grd_rpvmrsltlist.rows; i++)
  592. {
  593. if(grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("selyn")) == "Y" )
  594. {
  595. var emplnm = grd_rpvmrsltlist.valueMatrix(i, grd_rpvmrsltlist.colRef("emplnm"));
  596. var valupsncnfmyn1 = grd_rpvmrsltlist.valueMatrix(i, grd_rpvmrsltlist.colRef("valupsncnfmyn1"));
  597. var valupsncnfmflag2 = grd_rpvmrsltlist.valueMatrix(i, grd_rpvmrsltlist.colRef("valupsncnfmflag2"));
  598. if (valupsncnfmflag2 != "A") {
  599. messageBox("[" + emplnm + "]는 승인상태가 아니므로 승인 취소 할 수 없습니다. ", "I999");
  600. return;
  601. }
  602. if (valupsncnfmyn1 != "Y") {
  603. messageBox("[" + emplnm + "]는 역량1차 평가 완료가 되지 않아서 승인 취소 할 수 없습니다. ", "I999");
  604. return;
  605. }
  606. grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("valupsncnfmflag2")) = "B";
  607. grd_rpvmrsltlist.addStatus(i, "update");
  608. }
  609. }
  610. btn_save.dispatch("DOMActivate");
  611. //사용자 정보 조회.(조회자의 전화번호 가져오기.)
  612. //rpvfGetUserInfo( ipt_fsthfyyvalupsn2.value, getUserInfo("dutplceinstcd") );
  613. // 수신자 리스트 그리드id ,발신자 폰번호, 발신할 문자메세지
  614. //fSendMsg( grd_rpvmrsltlist, model.getValue("/root/init/info/userinfo/phone"), "역량평가2차평가 미승인 되었습니다.", "Y");
  615. // Email 그리고 Sms 전송
  616. // 보내는 사람의 Email 주소가 없을경우 Sms를 전송하도록...Email 주소, Sms 전화번호가 없을경우 경고 메세지 발생.
  617. // fGrid : Email 주소나 휴대전화번호가 있는 그리드 id.
  618. // fCmt : 전체적으로 보낼 전송메세지.
  619. // fEmailTitle : 이메일 전송시의 제목.
  620. // fCheckYN : 선택된 사람만 전송할지 유무.
  621. // fEmplno : 발신자의 정보 호출을 위한 발신자 사원번호.
  622. // fInstcd : 발신자의 정보 호출을 위한 발신자 기관코드.
  623. rpvfCheckEmailAndSms( grd_rpvmrsltlist, "[역량평가2차평가] 미승인 되었습니다.", "역량평가 2차 평가 통보", 'Y',ipt_fsthfyyvalupsn2.value, '', 'selyn');
  624. ]]>
  625. </script>
  626. </button>
  627. <button id="btn_valupsncnts2" class="btn_sw" group="tab" style="left:128px; top:520px; width:148px; height:22px; ">
  628. <caption>2차평가의견</caption>
  629. <toggle case="case3" ev:event="onclick"/>
  630. </button>
  631. <button id="btn_c" class="btn5_letter4" style="left:313px; top:49px; width:64px; height:19px; ">
  632. <caption>반려취소</caption>
  633. <script type="javascript" ev:event="DOMActivate">
  634. <![CDATA[
  635. for(var i = grd_rpvmrsltlist.fixedRows; i < grd_rpvmrsltlist.rows; i++)
  636. {
  637. if(grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("selyn")) == "Y" )
  638. {
  639. var emplnm = grd_rpvmrsltlist.valueMatrix(i, grd_rpvmrsltlist.colRef("emplnm"));
  640. var valupsncnfmflag2 = grd_rpvmrsltlist.valueMatrix(i, grd_rpvmrsltlist.colRef("valupsncnfmflag2"));
  641. if (valupsncnfmflag2 != "R") {
  642. messageBox("[" + emplnm + "]는 반려 되지않아서 반려 취소를 할 수 없습니다. ", "I999");
  643. return;
  644. }
  645. grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("valupsncnfmflag2")) = "B";
  646. grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("valupsncnfmyn1")) = "Y";
  647. grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("valupsncnfmflag1")) = "03";
  648. grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("procstat")) = "02";
  649. grd_rpvmrsltlist.addStatus(i, "update");
  650. }
  651. }
  652. btn_save.dispatch("DOMActivate");
  653. //사용자 정보 조회.(조회자의 전화번호 가져오기.)
  654. //rpvfGetUserInfo( ipt_fsthfyyvalupsn2.value, getUserInfo("dutplceinstcd") );
  655. // 수신자 리스트 그리드id ,발신자 폰번호, 발신할 문자메세지
  656. //fSendMsg( grd_rpvmrsltlist, model.getValue("/root/init/info/userinfo/phone"), "역량평가2차평가 반려취소 되었습니다.", "Y");
  657. // Email 그리고 Sms 전송
  658. // 보내는 사람의 Email 주소가 없을경우 Sms를 전송하도록...Email 주소, Sms 전화번호가 없을경우 경고 메세지 발생.
  659. // fGrid : Email 주소나 휴대전화번호가 있는 그리드 id.
  660. // fCmt : 전체적으로 보낼 전송메세지.
  661. // fEmailTitle : 이메일 전송시의 제목.
  662. // fCheckYN : 선택된 사람만 전송할지 유무.
  663. // fEmplno : 발신자의 정보 호출을 위한 발신자 사원번호.
  664. // fInstcd : 발신자의 정보 호출을 위한 발신자 기관코드.
  665. rpvfCheckEmailAndSms( grd_rpvmrsltlist, "[역량평가2차평가] 반려취소 되었습니다.", "역량평가 2차 평가 통보", 'Y', ipt_fsthfyyvalupsn2.value, '', 'selyn');
  666. ]]>
  667. </script>
  668. </button>
  669. <button id="btn_r" class="btn5_letter2" style="left:270px; top:49px; width:42px; height:19px; ">
  670. <caption>반려</caption>
  671. <script type="javascript" ev:event="DOMActivate">
  672. <![CDATA[
  673. for(var i = grd_rpvmrsltlist.fixedRows; i < grd_rpvmrsltlist.rows; i++)
  674. {
  675. if(grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("selyn")) == "Y" )
  676. {
  677. var emplnm = grd_rpvmrsltlist.valueMatrix(i, grd_rpvmrsltlist.colRef("emplnm"));
  678. var valupsncnfmyn1 = grd_rpvmrsltlist.valueMatrix(i, grd_rpvmrsltlist.colRef("valupsncnfmyn1"));
  679. if (valupsncnfmyn1 != "Y") {
  680. messageBox("[" + emplnm + "]는 역량1차 평가가 완료가 되지 않아서 반려 할 수 없습니다. ", "I999");
  681. return;
  682. }
  683. grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("valupsncnfmflag2")) = "R";
  684. grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("valupsncnfmyn1")) = "N";
  685. grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("valupsncnfmflag1")) = "01";
  686. grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("procstat")) = "01";
  687. grd_rpvmrsltlist.addStatus(i, "update");
  688. }
  689. }
  690. btn_save.dispatch("DOMActivate");
  691. //사용자 정보 조회.(조회자의 전화번호 가져오기.)
  692. //rpvfGetUserInfo( ipt_fsthfyyvalupsn2.value, getUserInfo("dutplceinstcd") );
  693. // 수신자 리스트 그리드id ,발신자 폰번호, 발신할 문자메세지
  694. //fSendMsg( grd_rpvmrsltlist, model.getValue("/root/init/info/userinfo/phone"), "역량평가2차평가 반려 되었습니다.", "Y");
  695. // Email 그리고 Sms 전송
  696. // 보내는 사람의 Email 주소가 없을경우 Sms를 전송하도록...Email 주소, Sms 전화번호가 없을경우 경고 메세지 발생.
  697. // fGrid : Email 주소나 휴대전화번호가 있는 그리드 id.
  698. // fCmt : 전체적으로 보낼 전송메세지.
  699. // fEmailTitle : 이메일 전송시의 제목.
  700. // fCheckYN : 선택된 사람만 전송할지 유무.
  701. // fEmplno : 발신자의 정보 호출을 위한 발신자 사원번호.
  702. // fInstcd : 발신자의 정보 호출을 위한 발신자 기관코드.
  703. rpvfCheckEmailAndSms( grd_rpvmrsltlist, "[역량평가2차평가] 반려 되었습니다.", "역량평가 2차 평가 통보", 'Y',ipt_fsthfyyvalupsn2.value, '', 'selyn');
  704. ]]>
  705. </script>
  706. </button>
  707. <input id="ipt_indpscor" ref="/root/init/score/indpscor" class="input_essential" disabled="true" format="#,###.##" style="left:708px; top:523px; width:97px; height:19px; text-align:right; "/>
  708. <caption id="cap_total" class="cell_1" style="left:640px; top:521px; width:65px; height:23px; vertical-align:middle; ">본인평가</caption>
  709. <input id="ipt_adjtscor" ref="/root/init/score/adjtscor" class="input_essential" disabled="true" format="#,###.##" style="left:1088px; top:523px; width:97px; height:19px; text-align:right; "/>
  710. <caption id="caption14" class="cell_1" style="left:830px; top:521px; width:65px; height:23px; vertical-align:middle; ">1차평가</caption>
  711. <caption id="caption15" class="cell_1" style="left:1020px; top:521px; width:65px; height:23px; vertical-align:middle; ">조정점수</caption>
  712. <input id="ipt_valuscor1" ref="/root/init/score/valuscor1" class="input_essential" disabled="true" format="#,###.##" style="left:898px; top:523px; width:97px; height:19px; text-align:right; "/>
  713. <datagrid id="grd_msg" nodeset="/root/main/smsdata/recvrlist" visibility="hidden" caption="체크여부^이름^전화번호" colsep="^" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:75px; top:255px; width:310px; height:125px; ">
  714. <col ref="chk"/>
  715. <col ref="recvrnm"/>
  716. <col ref="recvrtelno"/>
  717. </datagrid>
  718. </group>
  719. <group id="grp_btn" scroll="auto" style="left:0px; top:12px; width:1195px; height:27px; ">
  720. <line id="line6" class="line_6" style="x1:0px; y1:25; x2:1195px; y2:25; "/>
  721. <button id="btn_init" class="btn4_letter3" style="left:1124px; top:3px; width:68px; height:22px; ">
  722. <caption>초기화</caption>
  723. <script type="javascript" ev:event="DOMActivate">
  724. <![CDATA[
  725. window.reload() ;
  726. ]]>
  727. </script>
  728. </button>
  729. <button id="btn_save" class="btn4_letter2" style="left:894px; top:3px; width:56px; height:22px; ">
  730. <caption>저장</caption>
  731. <script type="javascript" ev:event="DOMActivate">
  732. <![CDATA[
  733. var updtdata = getGridUpdateData(grd_rpvmrsltlist) + getGridUpdateData(grd_rpvdabvulist);
  734. if (updtdata == "")
  735. {
  736. messageBox("변경된 데이터가","I004");
  737. return;
  738. }
  739. rtn = messageBox("", "Q002");
  740. if(rtn != "6" ) return false;
  741. misfSave("TXRPV06501");
  742. btn_search.dispatch("DOMActivate");
  743. ]]>
  744. </script>
  745. </button>
  746. <button id="btn_complete" class="btn4_letter4" style="left:1039px; top:3px; width:80px; height:22px; ">
  747. <caption>평가완료</caption>
  748. <script type="javascript" ev:event="DOMActivate">
  749. <![CDATA[
  750. for(var i = grd_rpvmrsltlist.fixedRows; i < grd_rpvmrsltlist.rows; i++)
  751. {
  752. // if(grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("select")) == "Y" ) {
  753. if(grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("valupsncnfmyn1")) != 'Y' )
  754. {
  755. messageBox("[" + grd_rpvmrsltlist.valueMatrix(i, grd_rpvmrsltlist.colRef("emplnm")) +" ]는 1차평가 최종확정이 되지 않아 평가 완료를 할 수 없습니다.", "I999");
  756. return;
  757. }
  758. if(grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("valupsncnfmflag2")) != 'A' )
  759. {
  760. messageBox("[" + grd_rpvmrsltlist.valueMatrix(i, grd_rpvmrsltlist.colRef("emplnm")) +" ]는 승인 상태가 아니므로 평가 완료를 할 수 없습니다.", "I999");
  761. return;
  762. }
  763. grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("lastcnfmyn")) = "Y";
  764. grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("procstat")) = "03";
  765. grd_rpvmrsltlist.addStatus(i, "update");
  766. // }
  767. // else {
  768. // grd_rpvmrsltlist.removeStatus(i, "update");
  769. //
  770. // }
  771. }
  772. // for(var i = grd_rpvmrsltlist.fixedRows; i < grd_rpvmrsltlist.rows; i++)
  773. // {
  774. // grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("lastcnfmyn")) = "Y";
  775. // grd_rpvmrsltlist.addStatus(i, "update");
  776. // }
  777. misfSave("TXRPV06501");
  778. //사용자 정보 조회.(조회자의 전화번호 가져오기.)
  779. //rpvfGetUserInfo( ipt_fsthfyyvalupsn2.value, getUserInfo("dutplceinstcd") );
  780. // 수신자 리스트 그리드id ,발신자 폰번호, 발신할 문자메세지
  781. //fSendMsg( grd_rpvmrsltlist, model.getValue("/root/init/info/userinfo/phone"), "역량평가2차평가 평가완료 되었습니다.");
  782. // Email 그리고 Sms 전송
  783. // 보내는 사람의 Email 주소가 없을경우 Sms를 전송하도록...Email 주소, Sms 전화번호가 없을경우 경고 메세지 발생.
  784. // fGrid : Email 주소나 휴대전화번호가 있는 그리드 id.
  785. // fCmt : 전체적으로 보낼 전송메세지.
  786. // fEmailTitle : 이메일 전송시의 제목.
  787. // fCheckYN : 선택된 사람만 전송할지 유무.
  788. // fEmplno : 발신자의 정보 호출을 위한 발신자 사원번호.
  789. // fInstcd : 발신자의 정보 호출을 위한 발신자 기관코드.
  790. // rpvfCheckEmailAndSms( grd_rpvmrsltlist, "[역량평가2차평가] 평가완료 되었습니다.", "역량평가 2차 평가 통보", 'N',ipt_fsthfyyvalupsn2.value);
  791. btn_search.dispatch("DOMActivate");
  792. ]]>
  793. </script>
  794. </button>
  795. <button id="btn_cancel" class="btn4_letter4" visibility="hidden" style="left:954px; top:3px; width:80px; height:22px; ">
  796. <caption>평가취소</caption>
  797. <script type="javascript" ev:event="DOMActivate">
  798. <![CDATA[
  799. if(messageBox("평가확정을 취소하시겠습니까?", "Q999") != 6) return;
  800. for(var i = grd_rpvmrsltlist.fixedRows; i < grd_rpvmrsltlist.rows; i++)
  801. {
  802. // if(grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("select")) == "Y" ) {
  803. grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("lastcnfmyn")) = "N";
  804. grd_rpvmrsltlist.valueMatrix( i, grd_rpvmrsltlist.colRef("procstat")) = "02";
  805. grd_rpvmrsltlist.addStatus(i, "update");
  806. // }
  807. // else {
  808. // grd_rpvmrsltlist.removeStatus(i, "update");
  809. // }
  810. }
  811. misfSave("TXRPV06501");
  812. btn_search.dispatch("DOMActivate");
  813. ]]>
  814. </script>
  815. </button>
  816. <button id="btn_resultprt" class="btn4_letter6" visibility="visible" style="left:785px; top:2px; width:104px; height:22px; ">
  817. <caption>평가결과출력</caption>
  818. <script type="javascript" ev:event="DOMActivate">
  819. <![CDATA[
  820. model.removenode("/root/temp/source");
  821. model.makeNode("/root/temp/source");
  822. model.makeValue("/root/temp/source/valuyy", model.getValue("/root/send/valuyy"));
  823. model.makeValue("/root/temp/source/emplno", model.getValue("/root/send/fsthfyyvalupsn2"));
  824. model.makeValue("/root/temp/source/emplnm", model.getValue("/root/send/fsthfyyvalupsn2nm"));
  825. model.makeValue("/root/temp/source/instcd", model.getValue("/root/main/valuempllist/dutinst"));
  826. model.makeValue("/root/temp/source/deptcd", model.getValue("/root/main/valuempllist/dutunitcd"));
  827. model.makeValue("/root/temp/source/deptnm", model.getValue("/root/main/valuempllist/deptnm"));
  828. model.makeValue("/root/temp/source/fstscndflag", "2");
  829. modal("SMRPV08100","","","","","/root/temp/source", "/root/temp/target" );
  830. ]]>
  831. </script>
  832. </button>
  833. </group>
  834. </xhtml:body>
  835. </xhtml:html>