SMRPV04200_TFT활동본인평가.xrw 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544
  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>TFT활동 본인 평가</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <rpvmtfttlist/>
  11. <list>
  12. <tftvalu>
  13. <tftvalulist/>
  14. </tftvalu>
  15. </list>
  16. </main>
  17. <send>
  18. <tftvalu/>
  19. <save>
  20. <tftvalulist/>
  21. </save>
  22. <tftqry>
  23. <valuyy/>
  24. <emplno/>
  25. <emplnm/>
  26. </tftqry>
  27. </send>
  28. <init>
  29. <stotwtnscor>50</stotwtnscor>
  30. <swtnscor/>
  31. </init>
  32. <temp>
  33. </temp>
  34. <target/>
  35. </root>
  36. </instance>
  37. <submission id="TRRPV04101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/tftqry" resultref="/root/main/rpvmtfttlist"/>
  38. <submission id="TRRPV04201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/tftvalu" resultref="/root/main/list/tftvalu"/>
  39. <submission id="TXRPV04201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save" resultref="/root/hidden/temp"/>
  40. <script type="javascript" ev:event="xforms-model-destruct">
  41. <![CDATA[
  42. if (getGridUpdateData(grd_tftvalu) != "" ) {
  43. var save_val = messageBox("변경된 자료가 존재 합니다. ", "Q002");
  44. if (save_val == "6") {
  45. btn_save.dispatch("DOMActivate");
  46. }
  47. }
  48. ]]>
  49. </script>
  50. </model>
  51. <script type="javascript" ev:event="xforms-ready">
  52. <![CDATA[
  53. //화면 Control을 초기화한다
  54. // 그리드 초기화
  55. misfGridInit(grd_rpvmtfttlist);
  56. misfGridInit(grd_tftvalu);
  57. /* Submit의 ref에 참조 될 Node들은 꼭 Instance에 생성 해야 함.*/
  58. /* Grid의 Mater, Detail관계 설정
  59. misfMsterDetailSet(관계설정할 Grid, Mater가 될 Grid, submit ID, 저장여부) */
  60. misfMsterDetailSet(grd_tftvalu,null, "TRRPV04201" ,"Y");
  61. misfMsterDetailSet(grd_rpvmtfttlist,null, "TRRPV04101" ,"N");
  62. // 기본 조회 정보 입력.
  63. model.setValue(ipt_valuyy.attribute("ref") , getCurrentDate().toDate().getDateFormat("YYYY"));
  64. model.setValue(ipt_emplno.attribute("ref") , getUserInfo("userid"));
  65. model.setValue(ipt_emplnm.attribute("ref") , getUserInfo("usernm"));
  66. fInitialize();
  67. model.refresh();
  68. ]]>
  69. </script>
  70. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  71. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  72. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  73. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  74. <script type="javascript" src="../../../mis/miscommonweb/js/RSZ001.js"/>
  75. <script type="javascript" src="../../../mis/valuationmngtweb/js/RPV001.js"/>
  76. <script type="javascript" src="../../../mis/humtrafactmngtweb/js/RPB001.js"/>
  77. <script type="javascript">
  78. <![CDATA[
  79. function fInitialize()
  80. {
  81. //현재화면이 팝업으로 Load 되었을 시.....
  82. if(instance1.selectNodes("/root/target/*").length > 0)
  83. {
  84. fPopupDataSet("valuyy,trgtemplno,trgtemplnm","ipt_valuyy,ipt_emplno,ipt_emplnm");
  85. }
  86. rpvfComboValuCdList(ipt_valuyy.value ,"VALUSCORBIZ,WTNSCOR","grd_tftvalu.ownvaluscor,grd_tftvalu.wtnscor");
  87. // btn_savedetl.disabled = true;
  88. // btn_insert.disabled = true;
  89. // btn_delete.disabled = true;
  90. var instcd = getUserInfo("dutplceinstcd");
  91. var emplno = getUserInfo("userid");
  92. rpvfGetUserAuth(instcd,emplno);
  93. if(DUTY_VALU_YN =='Y'){
  94. ipt_emplno.disabled = false;
  95. ipt_emplnm.disabled = false;
  96. btn_emplno.disabled = false;
  97. btn_savedetlcan.visible = true;
  98. }else{
  99. ipt_emplno.disabled = true;
  100. ipt_emplnm.disabled = true;
  101. btn_emplno.disabled = true;
  102. btn_savedetlcan.visible = false;
  103. }
  104. if (DUTY_VALU_YN !="Y") {
  105. if(rpvfCheckManFlag(model.getValue(ipt_valuyy.attribute("ref")),getUserInfo("userid")) != '01'){
  106. messageBox("해당 화면의 ","E002");
  107. rpvfSetControlBy("btn_savedetl,btn_init,btn_save,btn_search,btn_insert,btn_delete","Y");
  108. }else{
  109. // 평가기간에 따른 권한 부여.
  110. if(model.getValue("/root/temp/trgtflag") != ""){
  111. rpvfCheckDayFlag(ipt_valuyy.value, getUserInfo("userid"), model.getValue("/root/temp/trgtflag"), model.getValue("/root/temp/program"),"btn_save,btn_savedetl,btn_insert,btn_delete,btn_init,btn_search");
  112. }else{
  113. rpvfCheckDayFlag(ipt_valuyy.value, getUserInfo("userid"), "03", "SMRPV04200", "btn_save,btn_savedetl,btn_insert,btn_delete,btn_init,btn_search");
  114. }
  115. }
  116. }
  117. model.refresh();
  118. }
  119. //현재화면이 팝업화면으로 Loadding 될때 넘겨받은값을 설정.
  120. function fPopupDataSet()
  121. {
  122. var fgetValueNode = "/root/target/";
  123. var fNodeName = arguments[0].split(",");
  124. var fSetControl = arguments[1].split(",");
  125. for(var i = 0; i < fSetControl.length; i++)
  126. {
  127. document.controls(fSetControl[i]).value = model.getValue(fgetValueNode + fNodeName[i]);
  128. }
  129. }
  130. function ftotalarea(){
  131. var result = false;
  132. var total = 0;
  133. for(var i = grd_tftvalu.fixedRows; i < grd_tftvalu.rows; i++)
  134. {
  135. total += parseInt(grd_tftvalu.labelMatrix(i, grd_tftvalu.colRef("wtnscor")));
  136. }
  137. if(total == 50) result = true;
  138. return result;
  139. }
  140. function fSumWtnScor(pdatagrid)
  141. {
  142. var wtnscor = 0;
  143. for(var row = pdatagrid.fixedRows; row < pdatagrid.rows; row++)
  144. {
  145. if(pdatagrid.rowStatus(row) != "4"){
  146. if(pdatagrid.labelMatrix(row, pdatagrid.colRef("wtnscor")).length > 0){
  147. wtnscor = wtnscor + parseInt(pdatagrid.labelMatrix(row, pdatagrid.colRef("wtnscor")));
  148. }
  149. }
  150. }
  151. return wtnscor;
  152. }
  153. ]]>
  154. </script>
  155. </xhtml:head>
  156. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  157. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  158. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">TFT활동 활동 본인 평가</caption>
  159. </group>
  160. <group id="group2" scroll="auto" style="left:0px; top:38; width:1195px; height:744; ">
  161. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" ellipsewidth="20" ellipseheight="20" style="left:0; top:10; width:1195; height:35px; "/>
  162. <button id="btn_search" class="btn1_letter2" style="left:1125px; top:16px; width:56px; height:22px; ">
  163. <caption>조회</caption>
  164. <script type="javascript" ev:event="DOMActivate">
  165. <![CDATA[
  166. if(!isRequiredControls("ipt_valuyy")) return;
  167. misfGridInit(grd_rpvmtfttlist);
  168. misfGridInit(grd_tftvalu);
  169. submit("TRRPV04101");
  170. if( grd_rpvmtfttlist.rows == grd_rpvmtfttlist.fixedRows){
  171. return;
  172. }
  173. grd_rpvmtfttlist.row = grd_rpvmtfttlist.fixedRows;
  174. grd_rpvmtfttlist.dispatch("onrowchanged");
  175. model.refresh();
  176. ]]>
  177. </script>
  178. </button>
  179. <line id="line13" class="line_4" style="x1:1110px; y1:16px; x2:1110px; y2:38px; "/>
  180. <input id="ipt_valuyy" ref="/root/send/tftqry/valuyy" class="input_s_essential" inputtype="date" maxlength="4" format="yyyy" style="left:80px; top:17px; width:80px; height:19px; text-align:center; ">
  181. <script type="javascript" ev:event="xforms-value-changed">
  182. <![CDATA[
  183. if(!isRequiredControls("ipt_valuyy")) return;
  184. fInitialize();
  185. //btn_search.dispatch("DOMActivate");
  186. ]]>
  187. </script>
  188. </input>
  189. <caption id="cap_valuyy" class="search_name" style="left:15px; top:18px; width:60px; height:17px; vertical-align:middle; ">년도 :</caption>
  190. <datagrid id="grd_rpvmtfttlist" nodeset="/root/main/rpvmtfttlist" autoresize="true" caption="일련번호^사원번호^성명^활동내용^시작일^종료일^평가자사번^평가자성명^평가상태^평가년도" colsep="^" colwidth="32, 100, 100, 720, 106, 94, 100, 88, 69, 72" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" tooltip="true" style="left:0px; top:75px; width:1195px; height:325px; ">
  191. <col ref="seqno" visibility="hidden" maxlength="5" style="text-align:center; "/>
  192. <col disabled="true" ref="emplno" type="input" maxlength="10" _key="true" style="text-align:center; "/>
  193. <col disabled="true" ref="emplnm" type="input" style="text-align:center; "/>
  194. <col disabled="true" ref="tftactcnts" type="input" maxlength="1000" style="text-align:left; "/>
  195. <col disabled="true" ref="fromdd" type="inputdate" format="yyyy-mm-dd" maxlength="8" style="text-align:center; "/>
  196. <col disabled="true" ref="todd" type="inputdate" format="yyyy-mm-dd" maxlength="8" style="text-align:center; "/>
  197. <col ref="valupsnemplno" type="inputbutton" visibility="hidden" format="9999999999" maxlength="10" style="text-align:center; "/>
  198. <col ref="valupsnemplnm" type="input" visibility="hidden" style="text-align:center; "/>
  199. <col ref="valustat" type="input" visibility="hidden" maxlength="2" style="text-align:center; "/>
  200. <col ref="valuyy" visibility="hidden" format="yyyy" maxlength="4" _key="true"/>
  201. <script type="javascript" ev:event="onrowchanged">
  202. <![CDATA[
  203. model.copyNode("/root/send/tftvalu", grd_rpvmtfttlist.attribute("nodeset") + "[" + grd_rpvmtfttlist.row + "]" );
  204. model.refresh();
  205. submit("TRRPV04201");
  206. if (grd_tftvalu.rows - grd_tftvalu.fixedRows > 0) {
  207. if (grd_tftvalu.valueMatrix(grd_tftvalu.fixedRows, grd_tftvalu.colRef("valustat")) == "01") {
  208. btn_savedetl.disabled = true;
  209. btn_insert.disabled = true;
  210. btn_delete.disabled = true;
  211. btn_save.disabled = true;
  212. }
  213. else {
  214. btn_savedetl.disabled = false;;
  215. btn_insert.disabled = false;;
  216. btn_delete.disabled = false;;
  217. btn_save.disabled = false;;
  218. }
  219. }
  220. if(grd_tftvalu.rows - grd_tftvalu.fixedRows > 0){
  221. model.setValue(opt_swtnscor.attribute("ref"),fSumWtnScor(grd_tftvalu));
  222. opt_swtnscor.refresh();
  223. }
  224. else {
  225. model.setValue(opt_swtnscor.attribute("ref"),"0");
  226. opt_swtnscor.refresh();
  227. }
  228. // if(grd_tftvalu.rows == grd_tftvalu.fixedRows)
  229. // {
  230. // btn_savedetl.disabled = true;
  231. // btn_insert.disabled = true;
  232. // btn_delete.disabled = true;
  233. //
  234. // return;
  235. // }else{
  236. // btn_savedetl.disabled = false;
  237. // btn_insert.disabled = false;
  238. // btn_delete.disabled = false;
  239. // }
  240. ]]>
  241. </script>
  242. </datagrid>
  243. <caption id="caption1" class="tit_2" style="left:0px; top:54px; width:230px; height:14px; vertical-align:middle; ">TFT활동 대상자 List</caption>
  244. <line id="line2" class="line_1" style="x1:0px; y1:69px; x2:1195px; y2:69px; "/>
  245. <button id="btn_emplno" class="icon_search" disabled="true" style="left:390px; top:17px; width:16px; height:16px; ">
  246. <caption/>
  247. <script type="javascript" ev:event="DOMActivate">
  248. <![CDATA[
  249. rpbfOpenPopUpList("SPRPB00101", ipt_emplno, "emplno,emplnm","","N","N");
  250. model.refresh();
  251. ]]>
  252. </script>
  253. </button>
  254. <caption id="cap_emplno" class="search_name" style="left:200px; top:18px; width:87px; height:17px; font-weight:bold; vertical-align:middle; ">사원번호:</caption>
  255. <input id="ipt_emplno" ref="/root/send/tftqry/emplno" class="input_search" disabled="true" maxlength="10" style="left:287px; top:17px; width:100px; height:19px; ">
  256. <script type="javascript" ev:event="xforms-value-changed">
  257. <![CDATA[
  258. rpbfValidationCheck("EMPLNO", "emplno,emplnm");
  259. model.refresh();
  260. ]]>
  261. </script>
  262. </input>
  263. <input id="ipt_emplnm" ref="/root/send/tftqry/emplnm" class="input_search" disabled="true" style="left:411px; top:17px; width:156px; height:19px; ">
  264. <script type="javascript" ev:event="xforms-value-changed">
  265. <![CDATA[
  266. rpbfValidationCheck("EMPLNM", "emplno,emplnm");
  267. model.refresh();
  268. ]]>
  269. </script>
  270. </input>
  271. <datagrid id="grd_tftvalu" nodeset="/root/main/list/tftvalu/tftvalulist" caption="순번^성과지표^측정방법^달성결과^가중치^평가점수" colsep="^" colwidth="28, 355, 338, 347, 62, 65, 100, 100, 100, 100, 100, 100" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" tooltip="true" style="left:0px; top:435px; width:1195px; height:305px; ">
  272. <col ref="seqno" type="output" visibility="hidden" style="text-align:center; "/>
  273. <col ref="rsltidx" type="input"/>
  274. <col ref="inspmthd" type="input"/>
  275. <col ref="achvmntrslt" type="input"/>
  276. <col class="gridcombo" ref="wtnscor" type="combo" style="text-align:center; ">
  277. <choices>
  278. <itemset>
  279. <label/>
  280. <value/>
  281. </itemset>
  282. </choices>
  283. </col>
  284. <col ref="ownvaluscor" type="combo" style="text-align:center; ">
  285. <choices>
  286. <itemset>
  287. <label/>
  288. <value/>
  289. </itemset>
  290. </choices>
  291. </col>
  292. <col ref="valupsnscor1" type="output" visibility="hidden"/>
  293. <col ref="valustat" type="output" visibility="hidden"/>
  294. <col ref="lastcnfmyn" type="output" visibility="hidden"/>
  295. <col ref="valuyy" type="output" visibility="hidden"/>
  296. <col ref="emplno" type="output" visibility="hidden"/>
  297. <col ref="actseqno" type="output" visibility="hidden"/>
  298. <script type="javascript" ev:event="xforms-value-changed">
  299. <![CDATA[
  300. if(grd_tftvalu.col == grd_tftvalu.colRef("wtnscor")){
  301. model.setValue(opt_swtnscor.attribute("ref"),fSumWtnScor(grd_tftvalu));
  302. opt_swtnscor.refresh();
  303. }
  304. ]]>
  305. </script>
  306. </datagrid>
  307. <caption id="caption2" class="tit_2" style="left:0px; top:414px; width:230px; height:13px; vertical-align:middle; ">TFT활동 본인 평가 List</caption>
  308. <line id="line1" class="line_1" style="x1:0px; y1:429px; x2:1195px; y2:429px; "/>
  309. <button id="btn_delete" class="btn2_letter3" style="left:1140px; top:409px; width:53px; height:19px; ">
  310. <caption>행삭제</caption>
  311. <script type="javascript" ev:event="DOMActivate">
  312. <![CDATA[
  313. misfGridIUD(grd_tftvalu, "D");
  314. ]]>
  315. </script>
  316. </button>
  317. <button id="btn_insert" class="btn2_letter3" style="left:1085px; top:409px; width:53px; height:19px; ">
  318. <caption>행추가</caption>
  319. <script type="javascript" ev:event="DOMActivate">
  320. <![CDATA[
  321. if (grd_rpvmtfttlist.rows == grd_rpvmtfttlist.fixedRows) {
  322. return false;
  323. }
  324. var rowCnt = 0;
  325. for (var i = grd_tftvalu.fixedRows; i < grd_tftvalu.rows; i++ ) {
  326. if (grd_tftvalu.rowStatus(i) != "4" && grd_tftvalu.rowStatus(i) != "5" && grd_tftvalu.rowStatus(i) != "6") {
  327. rowCnt += 1;
  328. }
  329. }
  330. if(3 <= rowCnt)
  331. {
  332. messageBox(" 입력 가능한 항목 개수는 3개 입니다. 추가 할 수","I004");
  333. return;
  334. }
  335. misfGridIUD(grd_tftvalu, "A");
  336. model.setValue(grd_tftvalu.attribute("nodeset")+"["+(grd_tftvalu.row - grd_tftvalu.fixedRows + 1)+"]/seqno", model.getValue("root/main/list/tftvalu/tftmstvalulist/seqno"));
  337. model.setValue(grd_tftvalu.attribute("nodeset")+"["+(grd_tftvalu.row - grd_tftvalu.fixedRows + 1)+"]/valuyy", model.getValue(grd_rpvmtfttlist.attribute("nodeset")+"["+(grd_rpvmtfttlist.row - grd_rpvmtfttlist.fixedRows + 1)+"]/valuyy" ));
  338. model.setValue(grd_tftvalu.attribute("nodeset")+"["+(grd_tftvalu.row - grd_tftvalu.fixedRows + 1)+"]/emplno", model.getValue(grd_rpvmtfttlist.attribute("nodeset")+"["+(grd_rpvmtfttlist.row - grd_rpvmtfttlist.fixedRows + 1)+"]/emplno" ));
  339. //model.setValue(grd_tftvalu.attribute("nodeset")+"["+(grd_tftvalu.row - grd_tftvalu.fixedRows + 1)+"]/seqno", model.getValue("root/main/list/tftvalu/tftmstvalulist/seqno"));
  340. //model.setValue(grd_tftvalu.attribute("nodeset")+"["+(grd_tftvalu.row - grd_tftvalu.fixedRows + 1)+"]/valuyy", model.getValue(ipt_valuyy.attribute("ref")));
  341. //model.setValue(grd_tftvalu.attribute("nodeset")+"["+(grd_tftvalu.row - grd_tftvalu.fixedRows + 1)+"]/emplno", model.getValue(ipt_emplnos.attribute("ref")));
  342. ]]>
  343. </script>
  344. </button>
  345. <caption id="caption12" style="left:982px; top:405px; width:30px; height:19px; ">점중</caption>
  346. <output id="opt_swtnscor" ref="/root/init/swtnscor" style="left:1015px; top:405px; width:30px; height:19px; text-align:right; "/>
  347. <output id="opt_stotwtnscor" ref="/root/init/stotwtnscor" style="left:947px; top:405px; width:30px; height:19px; text-align:right; "/>
  348. <caption id="caption7" style="left:853px; top:405px; width:94px; height:20px; ">TFT 가중치 합계</caption>
  349. <caption id="caption8" style="left:1046px; top:405px; width:30px; height:20px; ">점</caption>
  350. </group>
  351. <group id="grp_btn" scroll="auto" style="left:0px; top:12px; width:1195px; height:27px; ">
  352. <line id="line6" class="line_6" style="x1:0px; y1:25; x2:1195px; y2:25; "/>
  353. <button id="btn_init" class="btn4_letter3" style="left:1119px; top:3px; width:68px; height:22px; ">
  354. <caption>초기화</caption>
  355. <script type="javascript" ev:event="DOMActivate">
  356. <![CDATA[
  357. window.reload() ;
  358. ]]>
  359. </script>
  360. </button>
  361. <button id="btn_save" class="btn4_letter2" style="left:891px; top:3px; width:56px; height:22px; ">
  362. <caption>저장</caption>
  363. <script type="javascript" ev:event="DOMActivate">
  364. <![CDATA[
  365. if(!checkKeyColumn("grd_tftvalu")) return;
  366. misfSave("TXRPV04201");
  367. if (model.getValue(gvErrorMsgPath + "/type") != "error")
  368. {
  369. btn_search.dispatch("DOMActivate");
  370. }
  371. ]]>
  372. </script>
  373. </button>
  374. <button id="btn_savedetl" class="btn4_letter4" style="left:1035px; top:3px; width:80px; height:22px; ">
  375. <caption>평가완료</caption>
  376. <script type="javascript" ev:event="DOMActivate">
  377. <![CDATA[
  378. if(ftotalarea() == false){
  379. messageBox("TFT활동 본인평가 가중치의 총합계가 50 이 되어야 합니다.", "I999");
  380. return;
  381. }
  382. if (grd_tftvalu.rows - grd_tftvalu.fixedRows != 3 ) {
  383. messageBox("TFT활동 본인평가 항목의 갯수는 3 이 되어야 합니다.", "I999");
  384. return;
  385. }
  386. var chkownvaluscor = true;
  387. var rsltidx = true;
  388. var inspmthd = true;
  389. var achvmntrslt = true;
  390. for(var row = grd_tftvalu.fixedRows ; row < grd_tftvalu.rows ; row++)
  391. {
  392. if(grd_tftvalu.valueMatrix(row , grd_tftvalu.colRef("ownvaluscor")).length == 0)
  393. {
  394. chkownvaluscor = false;
  395. break;
  396. }
  397. if(grd_tftvalu.valueMatrix(row , grd_tftvalu.colRef("rsltidx")).length == 0)
  398. {
  399. rsltidx = false;
  400. break;
  401. }
  402. if(grd_tftvalu.valueMatrix(row , grd_tftvalu.colRef("inspmthd")).length == 0)
  403. {
  404. inspmthd = false;
  405. break;
  406. }
  407. if(grd_tftvalu.valueMatrix(row , grd_tftvalu.colRef("achvmntrslt")).length == 0)
  408. {
  409. achvmntrslt = false;
  410. break;
  411. }
  412. }
  413. if(!chkownvaluscor)
  414. {
  415. messageBox("입력되지 않은 점수가 존재합니다." + "평가 완료 할 수","I004");
  416. return;
  417. }
  418. if(!rsltidx)
  419. {
  420. messageBox("입력되지 않은 성과지표가 존재합니다." + "평가 완료 할 수","I004");
  421. return;
  422. }
  423. if(!inspmthd)
  424. {
  425. messageBox("입력되지 않은 측정방법이 존재합니다." + "평가 완료 할 수","I004");
  426. return;
  427. }
  428. if(!achvmntrslt)
  429. {
  430. messageBox("입력되지 않은 달성결과가 존재합니다." + "평가 완료 할 수","I004");
  431. return;
  432. }
  433. for(var row = grd_tftvalu.fixedRows ; row < grd_tftvalu.rows ; row++)
  434. {
  435. model.setValue(grd_tftvalu.attribute("nodeset")+"["+ (row - grd_tftvalu.fixedRows + 1) +"]/valustat","01");
  436. grd_tftvalu.rowStatus(row) = "2";
  437. }
  438. btn_save.dispatch("DOMActivate");
  439. /*
  440. 상하반기 1차평가자에게 Email 이나 Sms를 전송.
  441. */
  442. var fsendemplno = '';
  443. var fsendemplnm = '';
  444. var frecemplno = '';
  445. fsendemplno = grd_rpvmtfttlist.valueMatrix(grd_rpvmtfttlist.row, grd_rpvmtfttlist.colRef("emplno"));
  446. fsendemplnm = grd_rpvmtfttlist.valueMatrix(grd_rpvmtfttlist.row, grd_rpvmtfttlist.colRef("emplnm"));
  447. frecemplno = model.getValue("/root/main/rpvmtfttlist/valupsnemplno");
  448. rpvfOneAndOneCheckEmailAndSms( fsendemplnm + "님의 [TFT활동 본인평가] 평가완료 되었습니다.", "TFT활동 본인평가 통보", fsendemplno, '', frecemplno, '');
  449. ]]>
  450. </script>
  451. </button>
  452. <button id="btn_savedetlcan" class="btn4_letter4" style="left:950px; top:3px; width:80px; height:22px; ">
  453. <caption>평가취소</caption>
  454. <script type="javascript" ev:event="DOMActivate">
  455. <![CDATA[
  456. for(var row = grd_tftvalu.fixedRows ; row < grd_tftvalu.rows ; row++)
  457. {
  458. model.setValue(grd_tftvalu.attribute("nodeset")+"["+ (row - grd_tftvalu.fixedRows + 1) +"]/valustat","");
  459. grd_tftvalu.rowStatus(row) = "2";
  460. }
  461. btn_save.dispatch("DOMActivate");
  462. /*
  463. 상하반기 1차평가자에게 Email 이나 Sms를 전송.
  464. */
  465. var fsendemplno = '';
  466. var fsendemplnm = '';
  467. var frecemplno = '';
  468. fsendemplno = grd_rpvmtfttlist.valueMatrix(grd_rpvmtfttlist.row, grd_rpvmtfttlist.colRef("emplno"));
  469. fsendemplnm = grd_rpvmtfttlist.valueMatrix(grd_rpvmtfttlist.row, grd_rpvmtfttlist.colRef("emplnm"));
  470. frecemplno = model.getValue("/root/main/rpvmtfttlist/valupsnemplno");
  471. rpvfOneAndOneCheckEmailAndSms( fsendemplnm + "님의 [TFT활동 본인평가] 평가 완료 취소 되었습니다.", "TFT활동 본인평가 통보", fsendemplno, '', frecemplno, '');
  472. ]]>
  473. </script>
  474. </button>
  475. </group>
  476. </xhtml:body>
  477. </xhtml:html>