SMRPV07400_지원직군업적1차평가.xrw 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746
  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. <psngrupbfst>
  11. <psngrupbfstlist/>
  12. </psngrupbfst>
  13. <grupbvalubiz>
  14. <grupbvalubizlist/>
  15. </grupbvalubiz>
  16. <smsdata>
  17. <bizabbr/>
  18. <replytelno/>
  19. <rsrvyn/>
  20. <rsrvdate/>
  21. <rsrvtime/>
  22. <msgcnts/>
  23. <closeflag/>
  24. <recvrlist>
  25. <chk/>
  26. <recvrnm/>
  27. <recvrtelno/>
  28. </recvrlist>
  29. </smsdata>
  30. </main>
  31. <send>
  32. <psngrupbfst>
  33. <valuclscd>02</valuclscd>
  34. <valumdlcd>001</valumdlcd>
  35. <valuclsdetlcd>005</valuclsdetlcd>
  36. <valuyy/>
  37. <emplno/>
  38. <emplnm/>
  39. <fstscndhfyyflag/>
  40. <valuflag>1</valuflag>
  41. </psngrupbfst>
  42. <save>
  43. <grupbvalubizlist/>
  44. <psngrupbfstlist/>
  45. </save>
  46. <grupbvalubiz>
  47. <valuyy/>
  48. <emplno/>
  49. <fstscndhfyyflag/>
  50. </grupbvalubiz>
  51. </send>
  52. <init>
  53. <score>
  54. <indpscor/>
  55. <valuscor1/>
  56. </score>
  57. </init>
  58. <temp>
  59. </temp>
  60. <hidden>
  61. <valupsncnts1/>
  62. <valupsncnts2/>
  63. <instnm/>
  64. <deptnm/>
  65. <jobrespnm/>
  66. <jobgradnm/>
  67. <emplno/>
  68. <emplnm/>
  69. <valupsntemp/>
  70. </hidden>
  71. <target/>
  72. </root>
  73. </instance>
  74. <submission id="TRRPV07401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/psngrupbfst" resultref="/root/main/psngrupbfst"/>
  75. <submission id="TRRPV07301" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/grupbvalubiz" resultref="/root/main/grupbvalubiz"/>
  76. <submission id="TXRPV07401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save/grupbvalubizlist" resultref="/root/temp"/>
  77. <submission id="TXRPV07402" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save/psngrupbfstlist" resultref="/root/temp"/>
  78. <script type="javascript" ev:event="xforms-model-destruct">
  79. <![CDATA[
  80. if (getGridUpdateData(grd_psngrupbfstlist) != "" || getGridUpdateData(grd_grupbvalubizlist) != "") {
  81. var save_val = messageBox("변경된 자료가 존재 합니다. ", "Q002");
  82. if (save_val == "6") {
  83. btn_save.dispatch("DOMActivate");
  84. }
  85. }
  86. ]]>
  87. </script>
  88. </model>
  89. <script type="javascript" ev:event="xforms-ready">
  90. <![CDATA[
  91. //화면 Control을 초기화한다
  92. fInitialize();
  93. model.refresh();
  94. ]]>
  95. </script>
  96. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  97. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  98. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  99. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.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. //현재화면이 팝업화면으로 Loadding 될때 넘겨받은값을 설정.
  106. function fPopupDataSet()
  107. {
  108. var fgetValueNode = "/root/target/";
  109. var fNodeName = arguments[0].split(",");
  110. var fSetControl = arguments[1].split(",");
  111. for(var i = 0; i < fSetControl.length; i++)
  112. {
  113. document.controls(fSetControl[i]).value = model.getValue(fgetValueNode + fNodeName[i]);
  114. }
  115. }
  116. function fInitialize()
  117. {
  118. // 그리드 초기화
  119. misfGridInit(grd_psngrupbfstlist);
  120. misfGridInit(grd_grupbvalubizlist);
  121. misfMsterDetailSet(grd_psngrupbfstlist,null, "TRRPV07401" ,"Y");
  122. misfMsterDetailSet(grd_grupbvalubizlist,grd_psngrupbfstlist, "TRRPV07301" ,"Y");
  123. // 기본 조회 정보 입력.
  124. model.setValue(ipt_valuyy.attribute("ref") , getCurrentDate().toDate().getDateFormat("YYYY"));
  125. model.setValue(ipt_emplno.attribute("ref"), getUserInfo("userid")); //사용자 번호
  126. model.setValue(ipt_emplnm.attribute("ref"), getUserInfo("usernm")); //사용자 이름
  127. //현재화면이 팝업으로 Load 되었을 시.....
  128. if(instance1.selectNodes("/root/target/*").length > 0)
  129. {
  130. fPopupDataSet("valuyy,trgtemplno,trgtemplnm","ipt_valuyy,ipt_emplno,ipt_emplnm");
  131. }
  132. // 컨포넌트 기본설정.
  133. //btn_complete.disabled = true;
  134. //btn_save.disabled = true;
  135. // btn_cnfmcancle.disabled = true;
  136. // btn_complete.disabled = true;
  137. // 콤보 설정.
  138. rpvfComboValuCdList(model.getValue(ipt_valuyy.attribute("ref")),"FSTSCNDHFYYFLAG,VALUSCORBIZ,VALUSCORBIZ,GROUPBVALUFLAG1","cmb_fstscndhfyyflag,grd_grupbvalubizlist.ownvaluscor,grd_grupbvalubizlist.valupsnscor1,grd_psngrupbfstlist.valupsncnfmflag1");
  139. var instcd = getUserInfo("dutplceinstcd");
  140. var emplno = getUserInfo("userid");
  141. rpvfGetUserAuth(instcd,emplno);
  142. if(DUTY_VALU_YN =='Y'){
  143. ipt_emplno.disabled = false;
  144. ipt_emplnm.disabled = false;
  145. btn_emplno.disabled = false;
  146. btn_cancel.disabled = false;
  147. }else{
  148. ipt_emplno.disabled = true;
  149. ipt_emplnm.disabled = true;
  150. btn_emplno.disabled = true;
  151. btn_cancel.disabled = true;
  152. }
  153. // if(DUTY_VALU_YN !="Y"){
  154. // 평가기간에 따른 권한 부여.
  155. // if(model.getValue("/root/temp/trgtflag") != ""){
  156. // rpvfCheckDayFlag(getCurrentDate().toDate().getDateFormat("YYYY"), getUserInfo("userid"), model.getValue("/root/temp/trgtflag"), model.getValue("/root/temp/program"),"btn_complete,btn_save,btn_init,btn_search,btn_a,btn_b");
  157. // }else{
  158. // rpvfCheckDayFlag(getCurrentDate().toDate().getDateFormat("YYYY"), getUserInfo("userid"), "01", "SMRPV07400", "btn_complete,btn_save,btn_init,btn_search,btn_a,btn_b");
  159. // }
  160. // }
  161. model.toggle("case2");
  162. }
  163. function fcheckcomplete1()
  164. {
  165. if(grd_psngrupbfstlist.fixedRows != grd_psngrupbfstlist.rows)
  166. {
  167. var bool = false;
  168. if( grd_psngrupbfstlist.valueMatrix( grd_psngrupbfstlist.fixedRows, grd_psngrupbfstlist.colRef("valupsncnfmyn1")) == 'Y' ||
  169. grd_psngrupbfstlist.valueMatrix( grd_psngrupbfstlist.fixedRows, grd_psngrupbfstlist.colRef("valupsncnfmflag2")) == "A" )
  170. {
  171. bool = true;
  172. }
  173. if ( grd_psngrupbfstlist.valueMatrix( grd_psngrupbfstlist.row, grd_psngrupbfstlist.colRef("ownvalucnfmyn")) != 'Y' ) {
  174. bool = true;
  175. }
  176. for(var s = grd_grupbvalubizlist.fixedRows; s < grd_grupbvalubizlist.rows; s++)
  177. {
  178. grd_grupbvalubizlist.isReadOnly(s, grd_grupbvalubizlist.colRef("valupsnscor1")) = bool;
  179. }
  180. btn_a.disabled = bool;
  181. btn_b.disabled = bool;
  182. }
  183. }
  184. function fcheckcomplete2()
  185. {
  186. if(grd_psngrupbfstlist.fixedRows != grd_psngrupbfstlist.rows)
  187. {
  188. var bool = false;
  189. if( grd_psngrupbfstlist.valueMatrix( grd_psngrupbfstlist.row, grd_psngrupbfstlist.colRef("valupsncnfmyn1")) == 'Y' )
  190. {
  191. bool = true;
  192. }
  193. else if ( grd_psngrupbfstlist.valueMatrix( grd_psngrupbfstlist.row, grd_psngrupbfstlist.colRef("ownvalucnfmyn")) != 'Y' ) {
  194. bool = true;
  195. }
  196. btn_save.disabled = bool;
  197. // if( grd_psngrupbfstlist.valueMatrix( grd_psngrupbfstlist.row, grd_psngrupbfstlist.colRef("ownvalucnfmyn")) == 'Y' )
  198. // {
  199. // bool = true;
  200. // }
  201. for(var s = grd_grupbvalubizlist.fixedRows; s < grd_grupbvalubizlist.rows; s++)
  202. {
  203. grd_grupbvalubizlist.isReadOnly(s, grd_grupbvalubizlist.colRef("valupsnscor1")) = bool;
  204. }
  205. }
  206. }
  207. ]]>
  208. </script>
  209. </xhtml:head>
  210. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  211. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  212. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">지원직군 업적 1차평가 등록</caption>
  213. </group>
  214. <group id="group2" scroll="auto" style="left:0px; top:38; width:1195px; height:744; ">
  215. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" ellipsewidth="20" ellipseheight="20" style="left:0; top:10; width:1195; height:35px; "/>
  216. <button id="btn_search" class="btn1_letter2" style="left:1125px; top:16px; width:56px; height:22px; ">
  217. <caption>조회</caption>
  218. <script type="javascript" ev:event="DOMActivate">
  219. <![CDATA[
  220. if ( !isRequiredControls("ipt_valuyy","ipt_emplno","cmb_fstscndhfyyflag") ) {
  221. return false;
  222. }
  223. //misfMsterDetailRetrieve();
  224. submit("TRRPV07401");
  225. model.setFocus("grd_psngrupbfstlist");
  226. if (gridrow == -1 || gridrow == grd_psngrupbfstlist.rows - grd_psngrupbfstlist.fixedRows - 1) {
  227. grd_psngrupbfstlist.row = grd_psngrupbfstlist.fixedRows;
  228. }
  229. else {
  230. grd_psngrupbfstlist.row = gridrow + 1;
  231. }
  232. grd_psngrupbfstlist.select(grd_psngrupbfstlist.row, grd_psngrupbfstlist.colRef("emplno")) = true;
  233. grd_psngrupbfstlist.dispatch("onrowchanged");
  234. // if (grd_grupbvalubizlist.rows - grd_grupbvalubizlist.fixedRows > 0 ) {
  235. // txt_valupsncnts1.value = grd_grupbvalubizlist.valueMatrix(grd_grupbvalubizlist.fixedRows, grd_grupbvalubizlist.colRef("valupsncnts1"));
  236. // txt_valupsncnts2.value = grd_grupbvalubizlist.valueMatrix(grd_grupbvalubizlist.fixedRows, grd_grupbvalubizlist.colRef("valupsncnts2"));
  237. //
  238. // if (grd_grupbvalubizlist.valueMatrix(grd_grupbvalubizlist.fixedRows, grd_grupbvalubizlist.colRef("ownvalucnfmyn")) == "Y" ) {
  239. // btn_cnfmcancle.disabled = false;
  240. // btn_complete.disabled = true;
  241. // }
  242. // else {
  243. // btn_cnfmcancle.disabled = true;
  244. // btn_complete.disabled = false;
  245. // }
  246. // }
  247. // 1차평가자 완료구분에 따른 컨트롤 disabled
  248. fcheckcomplete1();
  249. var check = "Y";
  250. var check2 = "N";
  251. for(var i = grd_psngrupbfstlist.fixedRows; i < grd_psngrupbfstlist.rows; i++)
  252. {
  253. if( grd_psngrupbfstlist.valueMatrix(i, grd_psngrupbfstlist.colRef("valupsncnfmflag2")) == "A" ) {
  254. check2 = "Y";
  255. break;
  256. }
  257. if( grd_psngrupbfstlist.valueMatrix(i, grd_psngrupbfstlist.colRef("valupsncnfmyn1")) != "Y" ) {
  258. check = "N";
  259. break;
  260. }
  261. }
  262. if (check != "Y") {
  263. btn_complete.disabled = false;
  264. }
  265. else {
  266. btn_complete.disabled = true;
  267. }
  268. if(DUTY_VALU_YN !="Y"){
  269. if (check2 == "Y" ) {
  270. btn_cancel.disabled = true;
  271. }
  272. else {
  273. btn_cancel.disabled = false;
  274. }
  275. }
  276. else {
  277. btn_cancel.disabled = false;
  278. }
  279. ]]>
  280. </script>
  281. </button>
  282. <line id="line13" class="line_4" style="x1:1110px; y1:16px; x2:1110px; y2:38px; "/>
  283. <datagrid id="grd_psngrupbfstlist" nodeset="/root/main/psngrupbfst/psngrupbfstlist" autoresize="true" caption="선택^부서^사원번호^성명^상태^완료구분^반려^기관^직책^직급^상하반기^평가분류코드^중분류^세부분류^평가년도|선택^부서^사원번호^성명^상태^완료구분^반려^기관^직책^직급^상하반기^평가분류코드^중분류^세부분류^평가년도" colsep="^" colwidth="23, 111, 68, 68, 67, 61, 24, 44, 49, 53, 58, 72, 65, 100, 100, 100, 100, 100, 100, 100, 100, 100" dataheight="25" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="25" rowsep="|" tooltip="true" style="left:0px; top:120px; width:380px; height:395px; ">
  284. <col checkvalue="Y,N" ref="selyn" type="checkbox" visibility="hidden"/>
  285. <col ref="deptnm"/>
  286. <col ref="emplno"/>
  287. <col ref="emplnm"/>
  288. <col ref="preststat"/>
  289. <col disabled="true" ref="valupsncnfmflag1" type="combo" visibility="hidden">
  290. <choices>
  291. <itemset>
  292. <label/>
  293. <value/>
  294. </itemset>
  295. </choices>
  296. </col>
  297. <col ref="valupsnrtnyn"/>
  298. <col ref="instnm" visibility="hidden"/>
  299. <col ref="jobrespnm" visibility="hidden"/>
  300. <col ref="jobgradnm" visibility="hidden"/>
  301. <col ref="fstscndhfyyflag" visibility="hidden"/>
  302. <col ref="valuclscd" visibility="hidden"/>
  303. <col ref="valumdlcd" visibility="hidden"/>
  304. <col ref="valuclsdetlcd" visibility="hidden"/>
  305. <col ref="valuyy" visibility="hidden"/>
  306. <col ref="valupsncnfmyn1" visibility="hidden"/>
  307. <col ref="lastcnfmyn" visibility="hidden"/>
  308. <col ref="valupsncnfmflag2" visibility="hidden"/>
  309. <col ref="procstat" visibility="hidden"/>
  310. <col ref="ownvalucnfmyn" visibility="hidden"/>
  311. <col ref="phone" visibility="hidden"/>
  312. <col ref="email" visibility="hidden"/>
  313. <col ref="valuemplno" visibility="hidden"/>
  314. <col ref="valuemplno2" visibility="hidden"/>
  315. <col ref="valuphone2" visibility="hidden"/>
  316. <col ref="valuemail2" visibility="hidden"/>
  317. <script type="javascript" ev:event="onrowchanged">
  318. <![CDATA[
  319. model.setValue("/root/hidden/instnm",grd_psngrupbfstlist.valueMatrix(grd_psngrupbfstlist.row, grd_psngrupbfstlist.colRef("instnm")));
  320. model.setValue("/root/hidden/deptnm",grd_psngrupbfstlist.valueMatrix(grd_psngrupbfstlist.row, grd_psngrupbfstlist.colRef("deptnm")));
  321. model.setValue("/root/hidden/jobrespnm",grd_psngrupbfstlist.valueMatrix(grd_psngrupbfstlist.row, grd_psngrupbfstlist.colRef("jobrespnm")));
  322. model.setValue("/root/hidden/jobgradnm",grd_psngrupbfstlist.valueMatrix(grd_psngrupbfstlist.row, grd_psngrupbfstlist.colRef("jobgradnm")));
  323. model.setValue("/root/hidden/emplno",grd_psngrupbfstlist.valueMatrix(grd_psngrupbfstlist.row, grd_psngrupbfstlist.colRef("emplno")));
  324. model.setValue("/root/hidden/emplnm",grd_psngrupbfstlist.valueMatrix(grd_psngrupbfstlist.row, grd_psngrupbfstlist.colRef("emplnm")));
  325. misfMsterDetailRetrieve();
  326. if (grd_grupbvalubizlist.rows - grd_grupbvalubizlist.fixedRows > 0) {
  327. model.setValue("/root/hidden/valupsntemp", grd_grupbvalubizlist.valueMatrix(grd_grupbvalubizlist.fixedRows, grd_grupbvalubizlist.colRef("valupsncnts1")));
  328. model.setValue("/root/hidden/valupsncnts1", grd_grupbvalubizlist.valueMatrix(grd_grupbvalubizlist.fixedRows, grd_grupbvalubizlist.colRef("valupsncnts1")));
  329. model.setValue("/root/hidden/valupsncnts2", grd_grupbvalubizlist.valueMatrix(grd_grupbvalubizlist.fixedRows, grd_grupbvalubizlist.colRef("valupsncnts2")));
  330. }
  331. else {
  332. model.setValue("/root/hidden/valupsntemp","");
  333. model.setValue("/root/hidden/valupsncnts1", "");
  334. model.setValue("/root/hidden/valupsncnts2", "");
  335. }
  336. //1차평가자의 평가완료구분에 따른 지원직군 업적평가 그리드 컨트롤 disabled
  337. fcheckcomplete2();
  338. ipt_indpscor.value = 0;
  339. ipt_valuscor1.value = 0;
  340. var indpscor = 0;
  341. var valuscor1 = 0;
  342. for(var i = grd_grupbvalubizlist.fixedRows; i < grd_grupbvalubizlist.rows; i++)
  343. {
  344. indpscor += parseInt(grd_grupbvalubizlist.valueMatrix(i, grd_grupbvalubizlist.colRef("ownvaluexchscor")));
  345. valuscor1 += parseInt(grd_grupbvalubizlist.valueMatrix(i, grd_grupbvalubizlist.colRef("valupsnexchscor1")));
  346. }
  347. ipt_indpscor.value = indpscor / (grd_grupbvalubizlist.rows - grd_grupbvalubizlist.fixedRows);
  348. ipt_valuscor1.value = valuscor1/(grd_grupbvalubizlist.rows - grd_grupbvalubizlist.fixedRows);
  349. gridrow = grd_psngrupbfstlist.row;
  350. model.refresh();
  351. ]]>
  352. </script>
  353. </datagrid>
  354. <datagrid id="grd_grupbvalubizlist" nodeset="/root/main/grupbvalubiz/grupbvalubizlist" autoresize="true" caption="평가항목명^평가기준 및 착안 포인트^본인평가점수^1차평가점수^본인평가환산점수^본인평가확정여부^평가자의견1^평가자의견2^평가년도^사원번호^상하반기구분^평가분류코드^평가중분류코드^평가분류세부코드^항목코드^1차평가환산점수^1차평가자승인구분^2차평가자승인구분^조정점수^진행상태^aprvflag^최종확정여부|평가항목명^평가기준 및 착안 포인트^본인평가점수^1차평가점수^본인평가환산점수^본인평가확정여부^평가자의견1^평가자의견2^평가년도^사원번호^상하반기구분^평가분류코드^평가중분류코드^평가분류세부코드^항목코드^1차평가환산점수^1차평가자승인구분^2차평가자승인구분^조정점수^진행상태^aprvflag^최종확정여부" colsep="^" colwidth="142, 511, 60, 51, 47, 44, 43, 48, 21, 27, 26, 33, 30, 31, 37, 38, 37, 36, 35, 38, 37, 36" dataheight="25" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="25" rowsep="|" tooltip="true" style="left:385px; top:120px; width:805px; height:395px; ">
  355. <col ref="valuitemnm"/>
  356. <col ref="valubase"/>
  357. <col disabled="true" ref="ownvaluscor" type="combo">
  358. <choices>
  359. <itemset>
  360. <label/>
  361. <value/>
  362. </itemset>
  363. </choices>
  364. </col>
  365. <col class="gridcombo" ref="valupsnscor1" type="combo">
  366. <choices>
  367. <itemset>
  368. <label/>
  369. <value/>
  370. </itemset>
  371. </choices>
  372. </col>
  373. <col ref="ownvaluexchscor" type="output" visibility="hidden"/>
  374. <col ref="ownvalucnfmyn" visibility="hidden"/>
  375. <col ref="valupsncnts1" visibility="hidden"/>
  376. <col ref="valupsncnts2" visibility="hidden"/>
  377. <col ref="valuyy" visibility="hidden"/>
  378. <col ref="emplno" visibility="hidden"/>
  379. <col ref="fstscndhfyyflag" visibility="hidden"/>
  380. <col ref="valuclscd" visibility="hidden"/>
  381. <col ref="valumdlcd" visibility="hidden"/>
  382. <col ref="valuclsdetlcd" visibility="hidden"/>
  383. <col ref="valuitemcd" visibility="hidden"/>
  384. <col ref="valupsnexchscor1" visibility="hidden"/>
  385. <col ref="valupsncnfmflag1" visibility="hidden"/>
  386. <col ref="valupsncnfmflag2" visibility="hidden"/>
  387. <col ref="adjtscor" visibility="hidden"/>
  388. <col ref="procstat" visibility="hidden"/>
  389. <col ref="aprvflag" visibility="hidden"/>
  390. <col ref="lastcnfmyn" visibility="hidden"/>
  391. </datagrid>
  392. <caption id="caption4" class="tit_2" style="left:385px; top:100px; width:230px; height:13px; vertical-align:middle; ">지원직군 업적 평가 List</caption>
  393. <line id="line1" class="line_1" style="x1:385px; y1:115px; x2:1190px; y2:115px; "/>
  394. <input id="ipt_valuyy" ref="/root/send/psngrupbfst/valuyy" class="input_s_essential" inputtype="date" format="yyyy" style="left:105px; top:17px; width:80px; height:19px; text-align:center; ">
  395. <script type="javascript" ev:event="xforms-value-changed">
  396. <![CDATA[
  397. if(!isRequiredControls("ipt_valuyy")) return;
  398. model.removeNodeset(grd_psngrupbfstlist.nodeset);
  399. model.removeNodeset(grd_grupbvalubizlist.nodeset);
  400. model.refresh();
  401. ]]>
  402. </script>
  403. </input>
  404. <caption id="cap_valuyy" class="search_name" style="left:15px; top:18px; width:90px; height:17px; vertical-align:middle; ">평가년도 :</caption>
  405. <input id="ipt_emplno" ref="/root/send/psngrupbfst/emplno" class="input_search" maxlength="10" style="left:273px; top:17px; width:80px; height:19px; text-align:center; ">
  406. <script type="javascript" ev:event="xforms-value-changed">
  407. <![CDATA[
  408. rpbfValidationCheck("EMPLNO", "emplno,emplnm");
  409. model.refresh();
  410. ]]>
  411. </script>
  412. </input>
  413. <button id="btn_emplno" class="icon_search" style="left:356px; top:17px; width:16px; height:16px; ">
  414. <caption/>
  415. <script type="javascript" ev:event="DOMActivate">
  416. <![CDATA[
  417. rpbfOpenPopUpList("SPRPB00101", ipt_emplno, "emplno,emplnm","","N","N");
  418. model.refresh();
  419. ]]>
  420. </script>
  421. </button>
  422. <caption id="cap_emplno" class="search_name" style="left:218px; top:18px; width:57px; height:17px; font-weight:bold; ">사번:</caption>
  423. <input id="ipt_emplnm" ref="/root/send/psngrupbfst/emplnm" class="input_search" style="left:375px; top:17px; width:135px; height:19px; text-align:center; ">
  424. <script type="javascript" ev:event="xforms-value-changed">
  425. <![CDATA[
  426. rpbfValidationCheck("EMPLNM", "emplno,emplnm");
  427. model.refresh();
  428. ]]>
  429. </script>
  430. </input>
  431. <select1 id="cmb_fstscndhfyyflag" ref="/root/send/psngrupbfst/fstscndhfyyflag" class="combo_s_essential" appearance="minimal" style="left:627px; top:17px; width:110px; height:19px; ">
  432. <choices>
  433. <itemset>
  434. <label/>
  435. <value/>
  436. </itemset>
  437. </choices>
  438. </select1>
  439. <caption id="cap_fstscndhfyyflag" class="search_name" style="left:545px; top:18px; width:81px; height:17px; vertical-align:middle; ">상하반기:</caption>
  440. <button id="button5" class="btn_sw" group="tab" selected="true" style="left:0px; top:522px; width:123px; height:22px; ">
  441. <caption>1차평가의견</caption>
  442. <toggle case="case2" ev:event="onclick"/>
  443. </button>
  444. <button id="button6" class="btn_sw" group="tab" style="left:127px; top:522px; width:123px; height:22px; ">
  445. <caption>2차평가의견</caption>
  446. <toggle case="case3" ev:event="onclick"/>
  447. </button>
  448. <switch id="switch1" style="left:0px; top:545px; width:1190px; height:195px; ">
  449. <case id="case2" selected="true">
  450. <textarea id="txt_valupsncnts1" ref="/root/hidden/valupsncnts1" maxbyte="900" style="left:0px; top:25px; width:1186px; height:165px; ">
  451. <script type="javascript" ev:event="DOMFocusOut">
  452. <![CDATA[
  453. if (model.getValue("/root/hidden/valupsncnts1") != model.getValue("/root/hidden/valupsntemp")) {
  454. for (var i = grd_grupbvalubizlist.fixedRows; i < grd_grupbvalubizlist.rows; i++) {
  455. grd_grupbvalubizlist.valueMatrix(i, grd_grupbvalubizlist.colRef("valupsncnts1")) = txt_valupsncnts1.value;
  456. grd_grupbvalubizlist.rowStatus(i) = "2";
  457. }
  458. }
  459. ]]>
  460. </script>
  461. </textarea>
  462. <caption id="caption16" class="tit_2" style="left:0px; top:4px; width:230px; height:14px; vertical-align:middle; ">1차평가의견</caption>
  463. <line id="line5" class="line_1" style="x1:0px; y1:20px; x2:1186px; y2:20px; "/>
  464. </case>
  465. <case id="case3">
  466. <caption id="caption18" class="tit_2" style="left:0px; top:4px; width:230px; height:14px; vertical-align:middle; ">2차평가의견</caption>
  467. <textarea id="txt_valupsncnts2" ref="/root/hidden/valupsncnts2" editable="false" maxbyte="900" style="left:0px; top:25px; width:1186px; height:165px; "/>
  468. <line id="line7" class="line_1" style="x1:0px; y1:20px; x2:1186px; y2:20px; "/>
  469. </case>
  470. </switch>
  471. <line id="line8" class="line_3" style="x1:0px; y1:93px; x2:1190px; y2:93px; "/>
  472. <output id="opt_jobrespnm" ref="/root/hidden/jobrespnm" style="left:485px; top:70px; width:130px; height:19px; "/>
  473. <output id="opt_emplnm" ref="/root/hidden/emplnm" style="left:1090px; top:70px; width:100px; height:19px; "/>
  474. <caption id="caption10" class="cell_1" style="left:412px; top:70px; width:71px; height:20px; text-align:center; vertical-align:middle; ">직책</caption>
  475. <output id="opt_emplno" ref="/root/hidden/emplno" style="left:915px; top:70px; width:100px; height:19px; "/>
  476. <caption id="caption11" class="cell_1" style="left:617px; top:70px; width:71px; height:20px; text-align:center; vertical-align:middle; ">직급</caption>
  477. <output id="opt_instnm" ref="/root/hidden/instnm" style="left:75px; top:70px; width:130px; height:19px; "/>
  478. <caption id="caption22" class="cell_1" style="left:2px; top:70px; width:71px; height:20px; text-align:center; vertical-align:middle; ">기관</caption>
  479. <caption id="caption12" class="cell_1" style="left:842px; top:70px; width:71px; height:20px; text-align:center; vertical-align:middle; ">사번</caption>
  480. <caption id="caption13" class="cell_1" style="left:1017px; top:70px; width:71px; height:20px; text-align:center; vertical-align:middle; ">성명</caption>
  481. <output id="opt_dutplcedeptnm" ref="/root/hidden/deptnm" style="left:280px; top:70px; width:130px; height:19px; "/>
  482. <caption id="caption7" class="tit_2" style="left:5px; top:48px; width:170px; height:14px; vertical-align:middle; ">피평가자 인적 정보</caption>
  483. <line id="line4" class="line_1" style="x1:0px; y1:63px; x2:1190px; y2:63px; "/>
  484. <caption id="caption9" class="cell_1" style="left:207px; top:70px; width:71px; height:20px; text-align:center; vertical-align:middle; ">부서</caption>
  485. <output id="opt_jobgradnm" ref="/root/hidden/jobgradnm" style="left:690px; top:70px; width:150px; height:19px; "/>
  486. <caption id="caption1" class="tit_2" style="left:5px; top:100px; width:230px; height:14px; vertical-align:middle; ">피평가자 List</caption>
  487. <line id="line2" class="line_1" style="x1:0px; y1:115px; x2:380px; y2:115px; "/>
  488. <button id="btn_a" class="btn2_letter2" visibility="hidden" style="left:280px; top:95px; width:42px; height:19px; ">
  489. <caption>승인</caption>
  490. <script type="javascript" ev:event="DOMActivate">
  491. <![CDATA[
  492. for (var i = grd_psngrupbfstlist.fixedRows; i < grd_psngrupbfstlist.rows; i++) {
  493. if (grd_psngrupbfstlist.valueMatrix(i, grd_psngrupbfstlist.colRef("selyn")) == "Y") {
  494. grd_psngrupbfstlist.valueMatrix(i, grd_psngrupbfstlist.colRef("valupsncnfmflag1")) = "A";
  495. }
  496. }
  497. ]]>
  498. </script>
  499. </button>
  500. <button id="btn_b" class="btn2_letter3" visibility="hidden" style="left:325px; top:95px; width:53px; height:19px; ">
  501. <caption>미승인</caption>
  502. <script type="javascript" ev:event="DOMActivate">
  503. <![CDATA[
  504. for (var i = grd_psngrupbfstlist.fixedRows; i < grd_psngrupbfstlist.rows; i++) {
  505. if (grd_psngrupbfstlist.valueMatrix(i, grd_psngrupbfstlist.colRef("selyn")) == "Y") {
  506. grd_psngrupbfstlist.valueMatrix(i, grd_psngrupbfstlist.colRef("valupsncnfmflag1")) = "B";
  507. }
  508. }
  509. ]]>
  510. </script>
  511. </button>
  512. <input id="ipt_indpscor" ref="/root/init/score/indpscor" class="input_essential" disabled="true" format="#,###.##" style="left:901px; top:523px; width:97px; height:19px; text-align:right; "/>
  513. <caption id="cap_total" class="cell_1" style="left:833px; top:521px; width:65px; height:23px; vertical-align:middle; ">본인평가</caption>
  514. <caption id="caption2" class="cell_1" style="left:1023px; top:521px; width:65px; height:23px; vertical-align:middle; ">1차평가</caption>
  515. <input id="ipt_valuscor1" ref="/root/init/score/valuscor1" class="input_essential" disabled="true" format="#,###.##" style="left:1091px; top:523px; width:97px; height:19px; text-align:right; "/>
  516. <datagrid id="grd_msg" nodeset="/root/main/smsdata/recvrlist" visibility="hidden" caption="체크여부^이름^전화번호" colsep="^" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:40px; top:275px; width:310px; height:125px; ">
  517. <col ref="chk"/>
  518. <col ref="recvrnm"/>
  519. <col ref="recvrtelno"/>
  520. </datagrid>
  521. </group>
  522. <group id="grp_btn" scroll="auto" style="left:0px; top:12px; width:1195px; height:27px; ">
  523. <line id="line6" class="line_6" style="x1:0px; y1:25; x2:1195px; y2:25; "/>
  524. <button id="btn_init" class="btn4_letter3" style="left:1124px; top:3px; width:68px; height:22px; ">
  525. <caption>초기화</caption>
  526. <script type="javascript" ev:event="DOMActivate">
  527. <![CDATA[
  528. window.reload() ;
  529. ]]>
  530. </script>
  531. </button>
  532. <button id="btn_save" class="btn4_letter2" style="left:900px; top:3px; width:56px; height:22px; ">
  533. <caption>저장</caption>
  534. <script type="javascript" ev:event="DOMActivate">
  535. <![CDATA[
  536. var check = "Y";
  537. for (var i = grd_grupbvalubizlist.fixedRows; i < grd_grupbvalubizlist.rows; i++ ) {
  538. if (grd_grupbvalubizlist.valueMatrix(i, grd_grupbvalubizlist.colRef("valupsnscor1")) == "" ) {
  539. check = "N";
  540. }
  541. }
  542. if (check == "Y") {
  543. for (var i = grd_grupbvalubizlist.fixedRows; i < grd_grupbvalubizlist.rows; i++ ) {
  544. grd_grupbvalubizlist.valueMatrix(i, grd_grupbvalubizlist.colRef("valupsncnfmflag1")) = "01";
  545. grd_grupbvalubizlist.addStatus(i, "update");
  546. }
  547. }
  548. else {
  549. for (var i = grd_grupbvalubizlist.fixedRows; i < grd_grupbvalubizlist.rows; i++ ) {
  550. grd_grupbvalubizlist.valueMatrix(i, grd_grupbvalubizlist.colRef("valupsncnfmflag1")) = "02";
  551. grd_grupbvalubizlist.addStatus(i, "update");
  552. }
  553. }
  554. misfSave("TXRPV07401");
  555. btn_search.dispatch("DOMActivate");
  556. ]]>
  557. </script>
  558. </button>
  559. <button id="btn_complete" class="btn4_letter4" style="left:1042px; top:3px; width:80px; height:22px; ">
  560. <caption>평가완료</caption>
  561. <script type="javascript" ev:event="DOMActivate">
  562. <![CDATA[
  563. // rpvfCheckEmailAndSms( grd_psngrupbfstlist, "[지원직군 업적 1차평가] 평가완료 되었습니다.", "지원직군 업적 1차평가 통보", 'N', ipt_emplno.value);
  564. // return;
  565. if(grd_psngrupbfstlist.fixedRows == grd_psngrupbfstlist.rows)
  566. {
  567. messageBox("Data가 없습니다. 조회후 다시 실행해 주세요.", "I999");
  568. return;
  569. }
  570. var emplnm = "";
  571. for(var i = grd_psngrupbfstlist.fixedRows; i < grd_psngrupbfstlist.rows; i++)
  572. {
  573. emplnm = grd_psngrupbfstlist.valueMatrix( i, grd_psngrupbfstlist.colRef("emplnm")) ;
  574. if( grd_psngrupbfstlist.valueMatrix( i, grd_psngrupbfstlist.colRef("ownvalucnfmyn")) != "Y" )
  575. {
  576. messageBox("[" + emplnm + "]는 본인 평가 미완료 상태 입니다. ", "I999");
  577. return;
  578. }
  579. }
  580. if(messageBox("모든 피평가자의 평가를 완료하시겠습니까?", "Q999") != 6) return;
  581. for(var i = grd_psngrupbfstlist.fixedRows; i < grd_psngrupbfstlist.rows; i++)
  582. {
  583. grd_psngrupbfstlist.valueMatrix( i, grd_psngrupbfstlist.colRef("valupsncnfmyn1")) = 'Y';
  584. grd_psngrupbfstlist.valueMatrix( i, grd_psngrupbfstlist.colRef("valupsncnfmflag1")) = '03';
  585. grd_psngrupbfstlist.valueMatrix( i, grd_psngrupbfstlist.colRef("procstat")) = '02';
  586. grd_psngrupbfstlist.valueMatrix( i, grd_psngrupbfstlist.colRef("selyn")) = 'Y';
  587. grd_psngrupbfstlist.addStatus(i, "update");
  588. }
  589. misfSave("TXRPV07402");
  590. // Email 그리고 Sms 전송
  591. // 보내는 사람의 Email 주소가 없을경우 Sms를 전송하도록...Email 주소, Sms 전화번호가 없을경우 경고 메세지 발생.
  592. // fGrid : Email 주소나 휴대전화번호가 있는 그리드 id.
  593. // fCmt : 전체적으로 보낼 전송메세지.
  594. // fEmailTitle : 이메일 전송시의 제목.
  595. // fCheckYN : 선택된 사람만 전송할지 유무.
  596. // fEmplno : 발신자의 정보 호출을 위한 발신자 사원번호.
  597. // fInstcd : 발신자의 정보 호출을 위한 발신자 기관코드.
  598. rpvfCheckEmailAndSms( grd_psngrupbfstlist, "[지원직군 업적 1차평가] 평가완료 되었습니다.", "지원직군 업적 1차평가 통보", 'N', ipt_emplno.value,"","","","","","Y");
  599. btn_search.dispatch("DOMActivate");
  600. ]]>
  601. </script>
  602. </button>
  603. <button id="btn_cancel" class="btn4_letter4" style="left:959px; top:3px; width:80px; height:22px; ">
  604. <caption>평가취소</caption>
  605. <script type="javascript" ev:event="DOMActivate">
  606. <![CDATA[
  607. if(messageBox("모든 피평가자의 평가를 취소하시겠습니까?", "Q999") != 6) return;
  608. for(var i = grd_psngrupbfstlist.fixedRows; i < grd_psngrupbfstlist.rows; i++)
  609. {
  610. grd_psngrupbfstlist.valueMatrix( i, grd_psngrupbfstlist.colRef("valupsncnfmyn1")) = 'N';
  611. grd_psngrupbfstlist.valueMatrix( i, grd_psngrupbfstlist.colRef("valupsncnfmflag1")) = '01';
  612. grd_psngrupbfstlist.valueMatrix( i, grd_psngrupbfstlist.colRef("procstat")) = '01';
  613. grd_psngrupbfstlist.valueMatrix( i, grd_psngrupbfstlist.colRef("selyn")) = 'Y';
  614. grd_psngrupbfstlist.addStatus(i, "update");
  615. }
  616. misfSave("TXRPV07402");
  617. // Email 그리고 Sms 전송
  618. // 보내는 사람의 Email 주소가 없을경우 Sms를 전송하도록...Email 주소, Sms 전화번호가 없을경우 경고 메세지 발생.
  619. // fGrid : Email 주소나 휴대전화번호가 있는 그리드 id.
  620. // fCmt : 전체적으로 보낼 전송메세지.
  621. // fEmailTitle : 이메일 전송시의 제목.
  622. // fCheckYN : 선택된 사람만 전송할지 유무.
  623. // fEmplno : 발신자의 정보 호출을 위한 발신자 사원번호.
  624. // fInstcd : 발신자의 정보 호출을 위한 발신자 기관코드.
  625. rpvfCheckEmailAndSms( grd_psngrupbfstlist, "[지원직군 업적 1차평가] 평가취소 되었습니다.", "지원직군 업적 1차평가 통보", 'N',ipt_emplno.value,"","","","","","Y");
  626. btn_search.dispatch("DOMActivate");
  627. ]]>
  628. </script>
  629. </button>
  630. <button id="btn_resultprt" class="btn4_letter6" visibility="visible" style="left:790px; top:2px; width:104px; height:22px; ">
  631. <caption>평가결과출력</caption>
  632. <script type="javascript" ev:event="DOMActivate">
  633. <![CDATA[
  634. model.removenode("/root/temp/source");
  635. model.makeNode("/root/temp/source");
  636. model.makeValue("/root/temp/source/valuyy", model.getValue("/root/send/psngrupbfst/valuyy"));
  637. model.makeValue("/root/temp/source/trgtemplno", model.getValue("/root/send/psngrupbfst/emplno"));
  638. model.makeValue("/root/temp/source/trgtemplnm", model.getValue("/root/send/psngrupbfst/emplnm"));
  639. model.makeValue("/root/temp/source/fstscndhfyyflag", model.getValue("/root/send/psngrupbfst/fstscndhfyyflag"));
  640. // model.makeValue("/root/temp/source/instcd", model.getValue("/root/main/valuempllist/dutinst"));
  641. // model.makeValue("/root/temp/source/deptcd", model.getValue("/root/main/valuempllist/dutunitcd"));
  642. // model.makeValue("/root/temp/source/deptnm", model.getValue("/root/main/valuempllist/deptnm"));
  643. model.makeValue("/root/temp/source/fstscndflag", "1");
  644. modal("SMRPV08300","","","","","/root/temp/source", "/root/target" );
  645. ]]>
  646. </script>
  647. </button>
  648. <button id="btn_valursltquery" class="btn4_letter6" visibility="visible" style="left:685px; top:2px; width:104px; height:22px; ">
  649. <caption>평가결과조회</caption>
  650. <script type="javascript" ev:event="DOMActivate">
  651. <![CDATA[
  652. model.removenode("/root/temp/source");
  653. model.makeNode("/root/temp/source");
  654. model.makeValue("/root/temp/source/valuyy", model.getValue("/root/send/psngrupbfst/valuyy"));
  655. model.makeValue("/root/temp/source/trgtemplno", model.getValue("/root/send/psngrupbfst/emplno"));
  656. model.makeValue("/root/temp/source/trgtemplnm", model.getValue("/root/send/psngrupbfst/emplnm"));
  657. model.makeValue("/root/temp/source/fstscndhfyyflag", model.getValue("/root/send/psngrupbfst/fstscndhfyyflag"));
  658. // model.makeValue("/root/temp/source/instcd", model.getValue("/root/main/valuempllist/dutinst"));
  659. // model.makeValue("/root/temp/source/deptcd", model.getValue("/root/main/valuempllist/dutunitcd"));
  660. // model.makeValue("/root/temp/source/deptnm", model.getValue("/root/main/valuempllist/deptnm"));
  661. model.makeValue("/root/temp/source/fstscndflag", "1");
  662. modal("SMRPV07800","","","","","/root/temp/source", "/root/target" );
  663. ]]>
  664. </script>
  665. </button>
  666. </group>
  667. </xhtml:body>
  668. </xhtml:html>