SMRPV06300_업무지표1차평가.xrw 78 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721
  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>업적1차평가</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <list>
  11. <bizempl>
  12. <bizempllist/>
  13. </bizempl>
  14. <bizgoalkpi>
  15. <bizgoalkpilist/>
  16. <bizmdlbizlist/>
  17. <ckpilist/>
  18. </bizgoalkpi>
  19. <scrfileinfo>
  20. <fileinfolist/>
  21. </scrfileinfo>
  22. </list>
  23. <kpicnt>
  24. <kpicntlist>
  25. <maxfkpicnt/>
  26. <maxskpicnt/>
  27. </kpicntlist>
  28. </kpicnt>
  29. <smsdata>
  30. <bizabbr/>
  31. <replytelno/>
  32. <rsrvyn/>
  33. <rsrvdate/>
  34. <rsrvtime/>
  35. <msgcnts/>
  36. <closeflag/>
  37. <recvrlist>
  38. <chk/>
  39. <recvrnm/>
  40. <recvrtelno/>
  41. </recvrlist>
  42. </smsdata>
  43. <valuempllist/>
  44. </main>
  45. <send>
  46. <bizempl>
  47. <valuyy/>
  48. <fstscndhfyyflag/>
  49. <endflag/>
  50. <valuclscd>01</valuclscd>
  51. <valumdlcd>001</valumdlcd>
  52. <valuclsdetlcd/>
  53. <emplno/>
  54. <emplnm/>
  55. </bizempl>
  56. <bizgoalkpi>
  57. <valuyy/>
  58. <emplno/>
  59. <fstscndhfyyflag/>
  60. <valuclsdetlcd/>
  61. <valuclscd/>
  62. <valumdlcd/>
  63. <instcd/>
  64. <deptcd/>
  65. <inoutflag/>
  66. </bizgoalkpi>
  67. <emplinfo>
  68. <instnm/>
  69. <dutplcedeptnm/>
  70. <jobrespnm/>
  71. <jobgradnm/>
  72. <emplno/>
  73. <emplnm/>
  74. <instcd/>
  75. <deptcd/>
  76. <jobrespcd/>
  77. </emplinfo>
  78. <save>
  79. <bizmdlbizlist/>
  80. <bizgoalkpilist/>
  81. <valucnfmlist/>
  82. </save>
  83. <valupsncnts1/>
  84. <valupsncnts2/>
  85. <idxcntflag>
  86. <valuclscd/>
  87. <valumdlcd/>
  88. <valuclsdetlcd/>
  89. <idxflag/>
  90. <smallclscd/>
  91. <teamchfflag/>
  92. </idxcntflag>
  93. <idxflag>
  94. <valuclscd>01</valuclscd>
  95. <valumdlcd>001</valumdlcd>
  96. <valuclsdetlcd>004</valuclsdetlcd>
  97. </idxflag>
  98. </send>
  99. <init>
  100. <endflag>
  101. <code/>
  102. <cdnm>전체</cdnm>
  103. <code>Y</code>
  104. <cdnm>완료</cdnm>
  105. <code>N</code>
  106. <cdnm>미완료</cdnm>
  107. </endflag>
  108. <valuclsdetlcd>
  109. <code/>
  110. <cdnm>전체</cdnm>
  111. <code>002</code>
  112. <cdnm>공유지표</cdnm>
  113. <code>004</code>
  114. <cdnm>기본업무지표</cdnm>
  115. </valuclsdetlcd>
  116. <score>
  117. <indpscor/>
  118. <valuscor1/>
  119. <adjtscor/>
  120. </score>
  121. <idxfkpimaxcnt/>
  122. <idxskpimaxcnt/>
  123. </init>
  124. <hidden/>
  125. <temp>
  126. <source/>
  127. </temp>
  128. <target/>
  129. <source>
  130. <emplnodata/>
  131. </source>
  132. </root>
  133. </instance>
  134. <script type="javascript" ev:event="xforms-ready">
  135. <![CDATA[
  136. /* Grid 초기화 */
  137. model.removeNodeset(grd_empl.nodeset);
  138. model.removeNodeset(grd_bizidx.nodeset);
  139. model.removeNodeset(grd_mdlvalu.nodeset);
  140. model.removeNodeset(grd_ckpilist.nodeset);
  141. misfMsterDetailSet(grd_empl, null, "TRRPV05901" ,"N");
  142. misfMsterDetailSet(grd_bizidx, grd_empl, "TRRPV06301" ,"Y");
  143. misfMsterDetailSet(grd_ckpilist, grd_empl, "TRRPV06301" ,"N");
  144. model.refresh();
  145. rpvfComboValuCdList(model.getValue(ipt_valuyy.attribute("ref")),"FSTSCNDHFYYFLAG,VALUSCORBIZ,WTNSCOR","cmb_fstscndhfyyflag,grd_bizidx.valupsnscor1,grd_bizidx.wtnscor");
  146. if(instance1.selectNodes("/root/target/trgtemplno").length > 0)
  147. {
  148. model.setValue("/root/send/bizempl/valuyy", model.getValue("/root/target/valuyy"));
  149. model.setValue("/root/send/bizempl/emplno", model.getValue("/root/target/trgtemplno"));
  150. model.setValue("/root/send/bizempl/emplnm", model.getValue("/root/target/trgtemplnm"));
  151. }
  152. else
  153. {
  154. model.setValue("/root/send/bizempl/valuyy", getCurrentDate().substr(0, 4));
  155. model.setValue("/root/send/bizempl/emplno", getUserInfo("userid"));
  156. model.setValue("/root/send/bizempl/emplnm", getUserInfo("usernm"));
  157. }
  158. // 평가기간에 따른 권한 부여.
  159. // if(model.getValue("/root/temp/trgtflag") != "")
  160. // {
  161. // rpvfCheckDayFlag(getCurrentDate().toDate().getDateFormat("YYYY"), getUserInfo("userid"), model.getValue("/root/temp/trgtflag"), model.getValue("/root/temp/program"), "btn_resultprt,btn_resultqry,btn_valuend,btn_init,btn_save,btn_search,button3,btn_sdelete,btn_sinsert,btn_sdelet");
  162. // }
  163. // else
  164. // {
  165. // rpvfCheckDayFlag(getCurrentDate().toDate().getDateFormat("YYYY"), getUserInfo("userid"), "01", "SMRPV06300", "btn_resultprt,btn_resultqry,btn_valuend,btn_init,btn_save,btn_search,button3,btn_sdelete,btn_sinsert,btn_sdelet");
  166. // }
  167. var instcd = getUserInfo("dutplceinstcd");
  168. var emplno = getUserInfo("userid");
  169. rpvfGetUserAuth(instcd, emplno);
  170. if(DUTY_VALU_YN =='Y')
  171. {
  172. ipt_valuemplno.disabled = false;
  173. ipt_valuemplnm.disabled = false;
  174. btn_valuemplno.disabled = false;
  175. }
  176. else
  177. {
  178. ipt_valuemplno.disabled = true;
  179. ipt_valuemplnm.disabled = true;
  180. btn_valuemplno.disabled = true;
  181. }
  182. //사용자 정보 조회.(조회자의 전화번호 가져오기.)
  183. //rpvfGetUserInfo( getUserInfo("userid"), getUserInfo("dutplceinstcd") );
  184. // Email 그리고 Sms 전송
  185. // 보내는 사람의 Email 주소가 없을경우 Sms를 전송하도록...Email 주소, Sms 전화번호가 없을경우 경고 메세지 발생.
  186. // fGrid : Email 주소나 휴대전화번호가 있는 그리드 id.
  187. // fCmt : 전체적으로 보낼 전송메세지.
  188. // fEmailTitle : 이메일 전송시의 제목.
  189. // fCheckYN : 선택된 사람만 전송할지 유무.
  190. // fEmplno : 발신자의 정보 호출을 위한 발신자 사원번호.
  191. // fInstcd : 발신자의 정보 호출을 위한 발신자 기관코드.
  192. //rpvfCheckEmailAndSms( grd_bizvaluscndpsnList, "[업적1차평] 평가완료 되었습니다.", "업적1차 평가 통보", 'N',ipt_valuemplno.value);
  193. model.refresh();
  194. ]]>
  195. </script>
  196. <submission id="TRRPV05901" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/bizempl" resultref="/root/main/list/bizempl"/>
  197. <submission id="TRRPV06301" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/bizgoalkpi" resultref="/root/main/list/bizgoalkpi"/>
  198. <submission id="TXRPV06301" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save" resultref="/root/hidden/temp"/>
  199. <submission id="TRRPV05803" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/idxcntflag" resultref="/root/main/list/kpicnt"/>
  200. <submission id="TXRPV06302" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save/valucnfmlist" resultref="/root/hidden/temp"/>
  201. <script type="javascript" ev:event="xforms-model-destruct">
  202. <![CDATA[
  203. if (getGridUpdateData(grd_bizidx) != "" || getGridUpdateData(grd_mdlvalu) != "") {
  204. var save_val = messageBox("변경된 자료가 존재 합니다. ", "Q002");
  205. if (save_val == "6") {
  206. btn_save.dispatch("DOMActivate");
  207. }
  208. }
  209. ]]>
  210. </script>
  211. <submission id="TRRPV99912" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/bizempl" resultref="/root/main/valuempllist"/>
  212. <submission id="TRRPV05801" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/source" resultref="/root/source/emplnodata"/>
  213. </model>
  214. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  215. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  216. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  217. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  218. <script type="javascript" src="../../../com/commonweb/js/numericHelper.js"/>
  219. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  220. <script type="javascript" src="../../../mis/valuationmngtweb/js/RPV001.js"/>
  221. <script type="javascript" src="../../../mis/humtrafactmngtweb/js/RPB001.js"/>
  222. <script type="javascript">
  223. <![CDATA[
  224. var gridrow = -1;
  225. function fSettingIdxInfoList(pdatagrid, pnode, nodename, pubflag){
  226. var curdate = getCurrentDate();
  227. var codynode = instance1.selectNodes(pnode + "/*");
  228. var addRow = pdatagrid.rows - pdatagrid.fixedRows;
  229. var nocopy = true;
  230. var skpicnt = 1;
  231. var fkpicnt = 1;
  232. var skpicntb = 1;
  233. if(pdatagrid.attribute("id") == "grd_bizidx"){
  234. if(model.getValue(pdatagrid.nodeset + "[" + addRow + "]/idxcd").length > 0) addRow = addRow + 1;
  235. for (var p = pdatagrid.fixedRows; p < pdatagrid.rows; p++ ) {
  236. if (model.getValue(pdatagrid.nodeset + "[" + p + "]/idxcd").length > 0) {
  237. if (pdatagrid.valueMatrix(p, pdatagrid.colRef("valuclsdetlcd")) == "002" || pubflag == "B" ) {
  238. skpicnt = skpicnt + 1;
  239. if (pubflag == "B") {
  240. skpicntb = skpicntb + 1;
  241. }
  242. }
  243. else {
  244. fkpicnt = fkpicnt + 1;
  245. }
  246. }
  247. }
  248. }
  249. else{
  250. nocopy = false;
  251. if(model.getValue(pdatagrid.nodeset + "[" + addRow + "]/chkvaluclscd").length > 0)addRow = addRow + 1;
  252. }
  253. for (var j = 1; j <= codynode.length ; j++) {
  254. if(pdatagrid.attribute("id") == "grd_bizidx") {
  255. //var findstr = model.getValue(pnode +"/" + nodename + "[" + j + "]/idxcd") ; //+ model.getValue(pnode +"/" + nodename + "[" + j + "]/valuclsdetlcd") ;
  256. //var findrow = pdatagrid.findRow(findstr,pdatagrid.fixedRows,pdatagrid.colRef("idxcd"),true,true);
  257. var findrow = -1;
  258. for (var z = pdatagrid.fixedRows; z < pdatagrid.rows; z++) {
  259. if (model.getValue(pnode +"/" + nodename + "[" + j + "]/idxcd") == pdatagrid.valueMatrix(z ,pdatagrid.colRef("idxcd") ) &&
  260. model.getValue(pnode +"/" + nodename + "[" + j + "]/valuclsdetlcd") == pdatagrid.valueMatrix(z ,pdatagrid.colRef("valuclsdetlcd")) ) {
  261. if (pubflag == "B" && pdatagrid.valueMatrix(z ,pdatagrid.colRef("publbaseflag")) == "B" ) {
  262. findrow = 1;
  263. break;
  264. }
  265. else {
  266. findrow = 1;
  267. break;
  268. }
  269. }
  270. }
  271. if(findrow < 0){
  272. nocopy = false;
  273. //if(addRow > pdatagrid.rows - pdatagrid.fixedRows) {
  274. if(model.getValue(pnode +"/" + nodename + "[" + j + "]/valuclsdetlcd") == "002" || pubflag == "B"){
  275. // alert(pubflag);
  276. // alert(model.getValue("/root/init/idxskpimaxcnt") );
  277. // alert(skpicnt);
  278. if(2 < skpicntb)
  279. {
  280. messageBox("공유지표 기본업무는 최대 항목갯수는 2입니다. 추가할수","I004");
  281. model.refresh();
  282. return;
  283. }
  284. if(model.getValue("/root/init/idxskpimaxcnt") < (skpicnt))
  285. {
  286. messageBox("공유지표 최대 항목갯수는 " + model.getValue("/root/init/idxskpimaxcnt") + "입니다. 추가할수","I004");
  287. model.refresh();
  288. return;
  289. }
  290. }
  291. else{
  292. if(model.getValue(pnode +"/" + nodename + "[" + j + "]/valuclsdetlcd") == "004") {
  293. if (model.getValue("/root/init/idxfkpimaxcnt") < (fkpicnt)) {
  294. messageBox("기본업무지표 최대 항목갯수는 " + model.getValue("/root/init/idxfkpimaxcnt") + "입니다. 추가할수","I004");
  295. model.refresh();
  296. return;
  297. }
  298. }
  299. }
  300. misfGridIUD(pdatagrid,"A");
  301. addRow = pdatagrid.rows - pdatagrid.fixedRows;
  302. }
  303. //}
  304. }
  305. //nocopy = false;
  306. if(pdatagrid.attribute("id") != "grd_bizidx") {
  307. if(addRow == 0 || addRow > pdatagrid.rows - pdatagrid.fixedRows)
  308. {
  309. misfGridIUD(pdatagrid,"A");
  310. addRow = pdatagrid.rows - pdatagrid.fixedRows;
  311. }
  312. }
  313. if(model.getValue(pnode +"/" + nodename + "[" + j + "]/idxcd") == "999")
  314. {
  315. nocopy = true;
  316. var rtn =messageBox("공유지표에 기본업무를 선택하셨습니다" + "\n\r" + "기본업무지표를" ,"Q005");
  317. if(rtn == "6")
  318. {
  319. model.setValue(ipt_valuclscd.attribute("ref"),"01");
  320. model.setValue(ipt_valumdlcd.attribute("ref"),"001");
  321. model.setValue(ipt_valuclsdetlcd.attribute("ref"),"004");
  322. model.removenode("/root/copynode2");
  323. model.removenode(gvParamPath +"/SMRPV99700_/SMRPV99700_value");
  324. model.makeNode("/root/copynode2");
  325. rpvfOpenPopUpList("20",grd_bizidx,"","idxcd,idxcdnm,valuclscd,valumdlcd,valuclsdetlcd", "ipt_valuyy,ipt_valuclscd,ipt_valumdlcd,ipt_valuclsdetlcd,ipt_idxflag,ipt_smallclscd,ipt_instcd,ipt_deptcd");
  326. var cur_row = grd_bizidx.row;
  327. var status = grd_bizidx.valueMatrix(cur_row, grd_bizidx.colRef("m"));
  328. var CSV = model.getValue(gvParamPath +"/SMRPV99700_/SMRPV99700_value");
  329. setCSVToNode("/root/copynode2", CSV, "bizgoalfkpilist");
  330. var prerow = addRow;
  331. var tmpcodynode = instance1.selectNodes("/root/copynode2/*");
  332. if(tmpcodynode.length > 0)
  333. {
  334. fSettingIdxInfoList(grd_bizidx,"/root/copynode2", "bizgoalfkpilist", "B");
  335. for(var row = prerow; row<pdatagrid.rows;row++)
  336. {
  337. if(pdatagrid.attribute("id") == "grd_bizidx"){
  338. model.setValue(pdatagrid.nodeset + "[" + row + "]/publbaseflag" , "B");
  339. model.setValue(pdatagrid.nodeset + "[" + row + "]/valuclsdetlcd" , "002");
  340. model.setValue(pdatagrid.nodeset + "[" + row + "]/idxsfflagnm", "공유지표");
  341. }
  342. else
  343. {
  344. model.setValue(pdatagrid.nodeset + "[" + row + "]/chkpublbaseflag" , "B");
  345. model.setValue(pdatagrid.nodeset + "[" + row + "]/chkvaluclsdetlcd" , "002");
  346. model.setValue(pdatagrid.nodeset + "[" + row + "]/idxsfflagnm", "공유지표");
  347. }
  348. }
  349. addRow = addRow + tmpcodynode.length;
  350. }
  351. else
  352. {
  353. //misfGridIUD(pdatagrid,"D");
  354. }
  355. }
  356. else
  357. {
  358. //misfGridIUD(pdatagrid,"D");
  359. }
  360. }
  361. if(!nocopy)
  362. {
  363. // if(model.getValue(pnode +"/" + nodename + "[" + j + "]/valuclsdetlcd") == "002"){
  364. // model.setValue(pdatagrid.nodeset + "[" + addRow + "]/idxsfflagnm" , "공유지표");
  365. // }
  366. // else if(model.getValue(pnode +"/" + nodename + "[" + j + "]/valuclsdetlcd") == "004"){
  367. // model.setValue(pdatagrid.nodeset + "[" + addRow + "]/idxsfflagnm" , "기본지표");
  368. // }
  369. // alert(addRow);
  370. // alert(j);
  371. // alert(model.getValue(pnode +"/" + nodename + "[" + j + "]/idxcdnm"));
  372. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/idxcdnm" , model.getValue(pnode +"/" + nodename + "[" + j + "]/idxcdnm"));
  373. if(pdatagrid.attribute("id") == "grd_bizidx"){
  374. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/idxcd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/idxcd"));
  375. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/valuclscd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/valuclscd"));
  376. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/valumdlcd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/valumdlcd"));
  377. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/valuclsdetlcd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/valuclsdetlcd"));
  378. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/inspmthd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/inspmthd"));
  379. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/deptcd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/deptcd"));
  380. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/valupsncnts1" , model.getValue(txt_valupsncnts1.attribute("ref")));
  381. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/inputendflag" , "03");
  382. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/valupsncnfmflag1" , "F");
  383. //model.setValue(pdatagrid.nodeset + "[" + addRow + "]/rtnreqresn" , pdatagrid.valueMatrix(pdatagrid.fixedRows, pdatagrid.colRef("rtnreqresn")));
  384. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/aprvflag" , pdatagrid.valueMatrix(pdatagrid.fixedRows, pdatagrid.colRef("aprvflag")));
  385. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/valupsnrtnreqresn" , pdatagrid.valueMatrix(pdatagrid.fixedRows, pdatagrid.colRef("valupsnrtnreqresn")));
  386. }
  387. else
  388. {
  389. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/chkidxcd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/idxcd"));
  390. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/chkvaluclscd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/valuclscd"));
  391. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/chkvalumdlcd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/valumdlcd"));
  392. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/chkvaluclsdetlcd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/valuclsdetlcd"));
  393. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/chkpublbaseflag" , model.getValue(pnode +"/" + nodename + "[" + j + "]/publbaseflag"));
  394. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/deptcd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/deptcd"));
  395. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/chkdd", curdate.substr(0, 8));
  396. //model.setValue(pdatagrid.nodeset + "[" + addRow + "]/inspmthd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/inspmthd"));
  397. }
  398. if(model.getValue(pnode +"/" + nodename + "[" + j + "]/valuclsdetlcd") == "002" || pubflag == "B"){
  399. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/idxsfflagnm", "공유지표");
  400. skpicnt = skpicnt + 1;
  401. }
  402. else if(model.getValue(pnode +"/" + nodename + "[" + j + "]/valuclsdetlcd") == "004"){
  403. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/idxsfflagnm", "기본지표");
  404. fkpicnt = fkpicnt + 1;
  405. }
  406. else{
  407. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/idxsfflagnm", "전체");
  408. }
  409. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/valuyy" , model.getValue(ipt_valuyy.attribute("ref")));
  410. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/emplno" , grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("emplno")));
  411. model.setValue(pdatagrid.nodeset + "[" + addRow + "]/fstscndhfyyflag" , model.getValue(cmb_fstscndhfyyflag.attribute("ref")));
  412. addRow = addRow + 1;
  413. }
  414. }
  415. model.recalculate();
  416. model.refresh();
  417. }
  418. function fcheckcomplete()
  419. {
  420. if( grd_bizidx.fixedRows != grd_bizidx.rows )
  421. {
  422. var bool = false;
  423. if( grd_bizidx.valueMatrix(grd_bizidx.fixedRows, grd_bizidx.colRef("valupsncnfmyn1")) == 'Y' )
  424. {
  425. bool = true;
  426. }
  427. if( grd_bizidx.valueMatrix(grd_bizidx.fixedRows, grd_bizidx.colRef("ownvalucnfmyn")) != 'Y' )
  428. {
  429. bool = true;
  430. }
  431. for(var i = grd_bizidx.fixedRows; i < grd_bizidx.rows; i++)
  432. {
  433. for(var s = grd_bizidx.fixedCols; s < grd_bizidx.cols; s++)
  434. {
  435. if (grd_bizidx.colRef("popup") != s ) {
  436. grd_bizidx.isReadOnly(i,s) = bool;
  437. }
  438. }
  439. }
  440. btn_sinsert.disabled = bool;
  441. btn_sdelet.disabled = bool;
  442. }
  443. }
  444. function fGetIdxCnt()
  445. {
  446. model.copyNode("/root/send/idxcntflag","/root/send/bizgoalkpi");
  447. model.makeNode("/root/send/idxcntflag/teamchfflag");
  448. var jobrespcd = opt_jobrespcd.value;
  449. if(jobrespcd == "1070" || jobrespcd == "2430" || jobrespcd == "2010" || jobrespcd == "1086") //로긴한 사용자가 팀장이라면
  450. {
  451. model.setValue("/root/send/idxcntflag/teamchfflag" , "1");
  452. }
  453. else if(jobrespcd == "1901") //로긴한 사용자가 UM이라면
  454. {
  455. model.setValue("/root/send/idxcntflag/teamchfflag" , "2");
  456. }
  457. else
  458. {
  459. model.setValue("/root/send/idxcntflag/teamchfflag" , "3");
  460. }
  461. model.setValue("/root/send/idxcntflag/valuclscd","01");
  462. model.setValue("/root/send/idxcntflag/valumdlcd","001");
  463. submit("TRRPV05803");
  464. model.setValue("/root/init/idxfkpimaxcnt",model.getValue("/root/main/list/kpicnt/kpicntlist/maxfkpicnt"));
  465. model.setValue("/root/init/idxskpimaxcnt",model.getValue("/root/main/list/kpicnt/kpicntlist/maxskpicnt"));
  466. }
  467. // 문자메세지 전송.
  468. // * 수신자의 전화번호는 10자리를 넘어야만 전송이 가능하며, 발신자의 전화번호도 10자리를 넘어야만한다.
  469. //
  470. // fgrid_target : 수신자 리스트 데이터가 있는 그리드.
  471. // fphoneno : 발신자 전화번호 - "01010092456"
  472. // fmsg : 전송할 문자 내용 - "하고싶은말을 적으면 됩니다."
  473. // checkYN : 체크되었는 사용자만 전송할건지 전부 전송할건지 유무! - "Y" or "N" or ""
  474. function fSendMsg( fgrid_target,fphoneno, fmsg, checkYN)
  475. {
  476. /// 발신자 정보 설정.
  477. misfGridInit(grd_msg);
  478. var fPhone = '';
  479. var sPhone = '';
  480. var tPhone = '';
  481. tPhone = fphoneno.split("-");
  482. fphoneno = '';
  483. for(var r = 0; r < tPhone.length; r++ )
  484. {
  485. fphoneno += tPhone[r];
  486. }
  487. model.setValue("/root/main/smsdata/bizabbr", "mis"); // 그룹명, ex> mis, com, tis, his...등등...
  488. model.setValue("/root/main/smsdata/replytelno", fphoneno); // 발신자 전화번호
  489. model.setValue("/root/main/smsdata/rsrvyn", 0); // 예약전송 구분
  490. model.setValue("/root/main/smsdata/rsrvdate", getCurrentDate()); // 전송 날자
  491. model.setValue("/root/main/smsdata/rsrvtime", getCurrentTime().substr(0,4)); // 전송 시간
  492. model.setValue("/root/main/smsdata/msgcnts", fmsg); // 전송할 메세지
  493. model.setValue("/root/main/smsdata/closeflag", "Y"); // 메시지 전송 팝업화면을 바로 닫기위한 구분자.
  494. /// 수신자 정보설정.
  495. /// 아래에 있는 소스는 수신자의 리스트를 정리한다. 현제 DB에 전화번호가 010-2321-1231 이렇게 되어 있으므로 '-' 이것을 제외한 01023211231 로 변환.
  496. /// 그리드에 체크 유무에 따라 수신자 리스트에 추가를 하도록 되어있다.
  497. ///
  498. for(var i = fgrid_target.fixedRows; i < fgrid_target.rows; i++ )
  499. {
  500. // 체크된 사람만 보낼건지 전체를 보낼건지 구분.
  501. if(checkYN == "Y")
  502. {
  503. // 체크된사람 유무.
  504. if(fgrid_target.valueMatrix(i, fgrid_target.colRef("check")) == "Y")
  505. {
  506. if(fgrid_target.valueMatrix(i, fgrid_target.colRef("phone")) != '')
  507. {
  508. misfGridIUD(grd_msg, "A");
  509. fPhone = fgrid_target.valueMatrix(i, fgrid_target.colRef("phone")).split("-");
  510. sPhone = '';
  511. for(var p = 0; p < fPhone.length; p++ )
  512. {
  513. sPhone += fPhone[p];
  514. }
  515. grd_msg.valueMatrix(grd_msg.row, grd_msg.colRef("chk")) = 'Y'; // 여기서 Y의 의미는 문자메세지를 보낼때 팝업화면에서 전송받을 수신자의 선택유무다. 무조건 보내기 위해 Y 로 설정.
  516. grd_msg.valueMatrix(grd_msg.row, grd_msg.colRef("recvrnm")) = fgrid_target.valueMatrix(i, fgrid_target.colRef("emplnm")); // 수신자 이름 설정.
  517. grd_msg.valueMatrix(grd_msg.row, grd_msg.colRef("recvrtelno")) = sPhone; // 수신자 전화번호 설정.
  518. }
  519. }
  520. }else{
  521. if(fgrid_target.valueMatrix(i, fgrid_target.colRef("phone")) != '')
  522. {
  523. misfGridIUD(grd_msg, "A");
  524. fPhone = fgrid_target.valueMatrix(i, fgrid_target.colRef("phone")).split("-");
  525. sPhone = '';
  526. for(var p = 0; p < fPhone.length; p++ )
  527. {
  528. sPhone += fPhone[p];
  529. }
  530. grd_msg.valueMatrix(grd_msg.row, grd_msg.colRef("chk")) = 'Y'; // 여기서 Y의 의미는 문자메세지를 보낼때 팝업화면에서 전송받을 수신자의 선택유무다. 무조건 보내기 위해 Y 로 설정.
  531. grd_msg.valueMatrix(grd_msg.row, grd_msg.colRef("recvrnm")) = fgrid_target.valueMatrix(i, fgrid_target.colRef("emplnm")); // 수신자 이름 설정.
  532. grd_msg.valueMatrix(grd_msg.row, grd_msg.colRef("recvrtelno")) = sPhone; // 수신자 전화번호 설정.
  533. }
  534. }
  535. }
  536. // 메시지 전송창 화면 밖으로 이동(rpvfOpenSMS 사용하실때에는 꼭 closeflag 를 'Y' 로 설정 하시기 바랍니다. )
  537. rpvfOpenSMS("/root/main/smsdata");
  538. // 메시지 전송창 화면 중간으로 이동
  539. //zmsfOpenSMS("/root/main/smsdata");
  540. }
  541. function ftotalpoint()
  542. {
  543. ipt_indpscor.value = 0.0;
  544. ipt_valuscor1.value = 0.0;
  545. ipt_adjtscor.value = 0.0;
  546. var indpscor = 0.0;
  547. var valuscor1 = 0.0;
  548. var adjttot = 0.0;
  549. var minuspoint = 0.0;
  550. var totscor = 0.0;
  551. var wtnscor = 0.0;
  552. var totpoint = 0.0;
  553. var skpipoint = 0.0;
  554. var fkpipoint = 0.0;
  555. var ckpipoint = 0.0;
  556. for(var i = grd_bizidx.fixedRows; i < grd_bizidx.rows; i++)
  557. {
  558. indpscor += parseFloat(grd_bizidx.valueMatrix(i, grd_bizidx.colRef("ownvaluexchscor"))) *
  559. parseFloat(grd_bizidx.valueMatrix(i, grd_bizidx.colRef("wtnscornm"))) / 100.0 ;
  560. valuscor1 += parseFloat(grd_bizidx.valueMatrix(i, grd_bizidx.colRef("valupsnexchscor1"))) *
  561. parseFloat(grd_bizidx.valueMatrix(i, grd_bizidx.colRef("wtnscornm"))) / 100.0 ;
  562. // adjttot += parseFloat(grd_bizidx.valueMatrix(i, grd_bizidx.colRef("adjtscor"))) *
  563. // parseFloat(grd_bizidx.valueMatrix(i, grd_bizidx.colRef("wtnscornm"))) / 100.0;
  564. if (grd_bizidx.valueMatrix(i, grd_bizidx.colRef("valuclsdetlcd")) == "002" ) {
  565. skpipoint = parseFloat(grd_bizidx.valueMatrix(i, grd_bizidx.colRef("adjtscor"))) ;
  566. }
  567. else if (grd_bizidx.valueMatrix(i, grd_bizidx.colRef("valuclsdetlcd")) == "004" ) {
  568. fkpipoint = parseFloat(grd_bizidx.valueMatrix(i, grd_bizidx.colRef("adjtscor"))) ;
  569. }
  570. wtnscor += parseFloat(grd_bizidx.valueMatrix(i, grd_bizidx.colRef("wtnscornm"))) ;
  571. }
  572. for (var k = grd_ckpilist.fixedRows; k < grd_ckpilist.rows; k++) {
  573. ckpipoint += parseFloat(grd_ckpilist.valueMatrix(k, grd_ckpilist.colRef("valuscornm"))) ;
  574. }
  575. var jobrespcd = grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("jobrespcd"));
  576. var inoutflag = grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("inoutflag"));
  577. var orgimrsnappyn = grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("orgimrsnappyn"));
  578. if (jobrespcd == "1070" || jobrespcd == "1901" || jobrespcd == "2430"|| jobrespcd == "2010"|| jobrespcd == "1086") {
  579. if (inoutflag != "E" && orgimrsnappyn == "Y") {
  580. totpoint = 70.0;
  581. }
  582. else if (inoutflag != "E" && orgimrsnappyn != "Y") {
  583. totpoint = 80.0;
  584. }
  585. else if (inoutflag == "E" && orgimrsnappyn == "Y") {
  586. totpoint = 90.0;
  587. }
  588. else if (inoutflag == "E" && orgimrsnappyn != "Y") {
  589. totpoint = 100.0;
  590. }
  591. }
  592. else {
  593. if (inoutflag != "E" ) {
  594. totpoint = 90.0;
  595. }
  596. else if (inoutflag == "E" ) {
  597. totpoint = 100.0;
  598. }
  599. }
  600. indpscor = parseFloat(indpscor) * parseFloat(totpoint) / parseFloat(wtnscor);
  601. totscor = indpscor.toString();
  602. ipt_indpscor.value = totscor.getRound(-3, "DOWN");
  603. valuscor1 = parseFloat(valuscor1) * parseFloat(totpoint) / parseFloat(wtnscor);
  604. totscor = valuscor1.toString();
  605. ipt_valuscor1.value = totscor.getRound(-3, "DOWN");
  606. adjttot = parseFloat(skpipoint) + parseFloat(fkpipoint) + parseFloat(ckpipoint);
  607. totscor = adjttot.toString();
  608. ipt_adjtscor.value = totscor.getRound(-3, "DOWN");
  609. }
  610. ]]>
  611. </script>
  612. </xhtml:head>
  613. <xhtml:body pagewidth="1211" pageheight="784" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  614. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  615. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">업적1차평가</caption>
  616. </group>
  617. <group id="group2" scroll="auto" style="left:0px; top:38; width:1195px; height:744; ">
  618. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" ellipsewidth="20" ellipseheight="20" style="left:0; top:10; width:1195; height:35px; "/>
  619. <line id="line13" class="line_4" style="x1:1110px; y1:16px; x2:1110px; y2:38px; "/>
  620. <caption id="caption4" class="tit_2" style="left:5px; top:100px; width:170px; height:13px; vertical-align:middle; ">업무지표 피평가자 List</caption>
  621. <line id="line1" class="line_1" style="x1:0px; y1:115px; x2:365px; y2:115px; "/>
  622. <caption id="caption3" class="tit_2" style="left:370px; top:177px; width:295px; height:13px; vertical-align:middle; ">업무지표 List</caption>
  623. <line id="line3" class="line_1" style="x1:368px; y1:192px; x2:1193px; y2:192px; "/>
  624. <caption id="caption7" class="tit_2" style="left:5px; top:48px; width:170px; height:14px; vertical-align:middle; ">피평가자 인적 정보</caption>
  625. <line id="line4" class="line_1" style="x1:0px; y1:63px; x2:1190px; y2:63px; "/>
  626. <caption id="caption22" class="cell_1" style="left:2px; top:70px; width:71px; height:20px; text-align:center; vertical-align:middle; ">기관</caption>
  627. <output id="opt_instnm" ref="/root/send/emplinfo/instnm" style="left:75px; top:70px; width:130px; height:19px; "/>
  628. <caption id="caption9" class="cell_1" style="left:207px; top:70px; width:71px; height:20px; text-align:center; vertical-align:middle; ">부서</caption>
  629. <output id="opt_dutplcedeptnm" ref="/root/send/emplinfo/dutplcedeptnm" style="left:280px; top:70px; width:130px; height:19px; "/>
  630. <output id="opt_jobrespnm" ref="/root/send/emplinfo/jobrespnm" style="left:485px; top:70px; width:130px; height:19px; "/>
  631. <caption id="caption10" class="cell_1" style="left:412px; top:70px; width:71px; height:20px; text-align:center; vertical-align:middle; ">직책</caption>
  632. <caption id="caption11" class="cell_1" style="left:617px; top:70px; width:71px; height:20px; text-align:center; vertical-align:middle; ">직급</caption>
  633. <output id="opt_jobgradnm" ref="/root/send/emplinfo/jobgradnm" style="left:690px; top:70px; width:150px; height:19px; "/>
  634. <output id="opt_emplno" ref="/root/send/emplinfo/emplno" style="left:915px; top:70px; width:100px; height:19px; "/>
  635. <caption id="caption12" class="cell_1" style="left:842px; top:70px; width:71px; height:20px; text-align:center; vertical-align:middle; ">사번</caption>
  636. <output id="opt_emplnm" ref="/root/send/emplinfo/emplnm" style="left:1090px; top:70px; width:100px; height:19px; "/>
  637. <caption id="caption13" class="cell_1" style="left:1017px; top:70px; width:71px; height:20px; text-align:center; vertical-align:middle; ">성명</caption>
  638. <switch id="switch1" style="left:0px; top:545px; width:1190px; height:195px; ">
  639. <case id="case1" selected="true" style="left:0px; top:0px; width:1188px; height:223px; ">
  640. <datagrid id="grd_mdlvalu" nodeset="/root/main/list/bizgoalkpi/bizmdlbizlist" caption="점검일자^평가지표^평가지표^점검결과^지표구분^" colsep="^" colwidth="97, 232, 18, 811, 41, 100, 100, 100, 100, 100, 100, 100, 100, 100" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" selectionmode="free" style="left:1px; top:25px; width:1186px; height:165px; ">
  641. <col checkvalue="Y,N" ref="chkdd" type="inputdate" format="yyyy-mm-dd"/>
  642. <col ref="idxcdnm"/>
  643. <col ref="temp" type="inputbutton"/>
  644. <col ref="chkcnts" type="input" maxbyte="300"/>
  645. <col ref="valuyy" type="output" visibility="hidden"/>
  646. <col ref="emplno" type="output" visibility="hidden"/>
  647. <col ref="fstscndhfyyflag" type="output" visibility="hidden"/>
  648. <col ref="seqno" type="output" visibility="hidden"/>
  649. <col ref="chkvaluclscd" type="output" visibility="hidden"/>
  650. <col ref="chkvalumdlcd" type="output" visibility="hidden"/>
  651. <col ref="chkvaluclsdetlcd" type="output" visibility="hidden"/>
  652. <col ref="chkpublbaseflag" type="output" visibility="hidden"/>
  653. <col ref="chkidxcd" type="output" visibility="hidden"/>
  654. <col ref="idxsfflagnm" type="inputbutton" visibility="hidden"/>
  655. <col ref="deptcd" visibility="hidden"/>
  656. <script type="javascript" ev:event="onbuttonclick">
  657. <![CDATA[
  658. if(grd_mdlvalu.col == grd_mdlvalu.colRef("temp"))
  659. {
  660. model.removenode("/root/copynode");
  661. model.removenode(gvParamPath +"/SMRPV99400_/SMRPV99400_value");
  662. model.makeNode("/root/copynode");
  663. // var prechkidxcd = grd_mdlvalu.valueMatrix(grd_mdlvalu.row, grd_mdlvalu.colRef("chkidxcd"));
  664. // if(grd_mdlvalu.valueMatrix(grd_mdlvalu.row, grd_mdlvalu.colRef("chkvaluclsdetlcd")) == "002"){
  665. // rpvfOpenPopUpList("19",grd_mdlvalu,"","valuyy", "ipt_valuyy,opt_instcd,opt_deptcd,opt_emplno,cmb_fstscndhfyyflag");
  666. // }
  667. // else if(grd_mdlvalu.valueMatrix(grd_mdlvalu.row, grd_mdlvalu.colRef("chkvaluclsdetlcd")) == "004"){
  668. // rpvfOpenPopUpList("20",grd_mdlvalu,"","valuyy", "ipt_valuyy,opt_instcd,opt_deptcd,opt_emplno,cmb_fstscndhfyyflag");
  669. // }
  670. // else{
  671. rpvfOpenPopUpList("23",grd_mdlvalu,"","valuyy", "ipt_valuyy,opt_instcd,opt_deptcd,opt_emplno,cmb_fstscndhfyyflag");
  672. // }
  673. var cur_row = grd_mdlvalu.row;
  674. var status = grd_mdlvalu.valueMatrix(cur_row, grd_mdlvalu.colRef("m"));
  675. var CSV = model.getValue(gvParamPath +"/SMRPV99400_/SMRPV99400_value");
  676. setCSVToNode("/root/copynode", CSV, "rpvdkpicodelist");
  677. fSettingIdxInfoList(grd_mdlvalu,"/root/copynode", "rpvdkpicodelist");
  678. }
  679. ]]>
  680. </script>
  681. <script type="javascript" ev:event="xforms-value-changed">
  682. <![CDATA[
  683. if(grd_mdlvalu.col == grd_mdlvalu.colRef("idxsfflagnm"))
  684. {
  685. if(grd_mdlvalu.valueMatrix(grd_mdlvalu.row, grd_mdlvalu.col).length==0){
  686. model.setValue(grd_mdlvalu.nodeset + "[" + (grd_mdlvalu.row - grd_mdlvalu.fixedRows + 1) + "]/chkvaluclsdetlcd" , "");
  687. }
  688. }
  689. ]]>
  690. </script>
  691. </datagrid>
  692. <line id="line2" class="line_1" style="x1:0px; y1:20px; x2:1186px; y2:20px; "/>
  693. <caption id="caption5" class="tit_2" style="left:0px; top:4px; width:230px; height:13px; vertical-align:middle; ">중간 점검 결과 List</caption>
  694. <button id="btn_sdelete" class="btn2_letter8" style="left:1078px; top:1px; width:108px; height:19px; ">
  695. <caption>중간점검결과삭제</caption>
  696. <script type="javascript" ev:event="DOMActivate">
  697. <![CDATA[
  698. misfGridIUD(grd_mdlvalu, "D");
  699. ]]>
  700. </script>
  701. </button>
  702. <button id="button3" class="btn2_letter8" style="left:969px; top:1px; width:108px; height:19px; ">
  703. <caption>중간점검결과입력</caption>
  704. <script type="javascript" ev:event="DOMActivate">
  705. <![CDATA[
  706. if ( !isRequiredControls("ipt_valuyy" , "ipt_valuemplno", "cmb_fstscndhfyyflag") || grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("emplno")).length== 0) {
  707. return false;
  708. }
  709. //misfGridIUD(grd_mdlvalu, "A");
  710. model.removenode("/root/copynode");
  711. model.removenode(gvParamPath +"/SMRPV99400_/SMRPV99400_value");
  712. model.makeNode("/root/copynode");
  713. rpvfOpenPopUpList("23",grd_mdlvalu,"","valuyy", "ipt_valuyy,opt_instcd,opt_deptcd,opt_emplno,cmb_fstscndhfyyflag");
  714. var cur_row = grd_mdlvalu.row;
  715. var status = grd_mdlvalu.valueMatrix(cur_row, grd_mdlvalu.colRef("m"));
  716. var CSV = model.getValue(gvParamPath +"/SMRPV99400_/SMRPV99400_value");
  717. setCSVToNode("/root/copynode", CSV, "rpvdkpicodelist");
  718. //alert(CSV);
  719. fSettingIdxInfoList(grd_mdlvalu,"/root/copynode", "rpvdkpicodelist");
  720. ]]>
  721. </script>
  722. </button>
  723. </case>
  724. <case id="case2">
  725. <textarea id="txt_valupsncnts1" ref="/root/send/valupsncnts1" maxbyte="1800" style="left:0px; top:25px; width:1186px; height:165px; "/>
  726. <caption id="caption16" class="tit_2" style="left:0px; top:4px; width:230px; height:14px; vertical-align:middle; ">평가의견</caption>
  727. <line id="line5" class="line_1" style="x1:0px; y1:20px; x2:1186px; y2:20px; "/>
  728. </case>
  729. <case id="case3">
  730. <textarea id="txt_valupsncnts2" ref="/root/send/valupsncnts2" editable="false" maxbyte="1800" style="left:0px; top:25px; width:1186px; height:165px; "/>
  731. <caption id="caption8" class="tit_2" style="left:0px; top:4px; width:230px; height:14px; vertical-align:middle; ">평가의견</caption>
  732. <line id="line7" class="line_1" style="x1:0px; y1:20px; x2:1186px; y2:20px; "/>
  733. </case>
  734. </switch>
  735. <button id="button2" class="btn_sw" group="tab" style="left:93px; top:522px; width:128px; height:22px; ">
  736. <caption>1차평가의견</caption>
  737. <toggle case="case2" ev:event="DOMActivate"/>
  738. </button>
  739. <button id="button5" class="btn_sw" group="tab" selected="true" style="left:1px; top:522px; width:90px; height:22px; ">
  740. <caption>중간점검결과</caption>
  741. <toggle case="case1" ev:event="DOMActivate"/>
  742. </button>
  743. <line id="line8" class="line_3" style="x1:0px; y1:93px; x2:1190px; y2:93px; "/>
  744. <input id="ipt_valuyy" ref="/root/send/bizempl/valuyy" class="input_s_essential" inputtype="date" format="yyyy" style="left:88px; top:18px; width:77px; height:19px; "/>
  745. <caption id="cap_valuyy" class="search_name" style="left:5px; top:18px; width:85px; height:17px; vertical-align:middle; ">평가년도:</caption>
  746. <caption id="cap_valuemplno" class="search_name" style="left:168px; top:18px; width:94px; height:17px; font-weight:bold; ">평가자사번:</caption>
  747. <input id="ipt_valuemplno" ref="/root/send/bizempl/emplno" class="input_default" editable="true" style="left:263px; top:18px; width:87px; height:19px; ">
  748. <script type="javascript" ev:event="xforms-value-changed">
  749. <![CDATA[
  750. // model.makeNode("/root/send/bizempl/emplno");
  751. // model.makeNode("/root/send/bizempl/emplnm");
  752. var recv_list = "emplno,emplnm" ;
  753. rpbfValidationCheck("EMPLNO", recv_list);
  754. // model.setValue(ipt_valuemplno.attribute("ref"), model.getValue("/root/send/bizempl/emplno") );
  755. // model.setValue(ipt_valuemplnm.attribute("ref"), model.getValue("/root/send/bizempl/emplnm") );
  756. //
  757. // model.removenode("/root/send/bizempl/emplno");
  758. // model.removenode("/root/send/bizempl/emplnm");
  759. model.refresh();
  760. ]]>
  761. </script>
  762. </input>
  763. <input id="ipt_valuemplnm" ref="/root/send/bizempl/emplnm" class="input_default" style="left:375px; top:18px; width:114px; height:19px; ">
  764. <script type="javascript" ev:event="xforms-value-changed">
  765. <![CDATA[
  766. // model.makeNode("/root/send/bizempl/emplno");
  767. // model.makeNode("/root/send/bizempl/emplnm");
  768. var recv_list = "emplno,emplnm" ;
  769. rpbfValidationCheck("EMPLNM", recv_list);
  770. // model.setValue(ipt_valuemplno.attribute("ref"), model.getValue("/root/send/bizempl/emplno") );
  771. // model.setValue(ipt_valuemplnm.attribute("ref"), model.getValue("/root/send/bizempl/emplnm") );
  772. //
  773. // model.removenode("/root/send/bizempl/emplno");
  774. // model.removenode("/root/send/bizempl/emplnm");
  775. model.refresh();
  776. if (model.getValue(ipt_valuemplno.attribute("ref")).length > 0) {
  777. btn_search.dispatch("DOMActivate");
  778. }
  779. ]]>
  780. </script>
  781. </input>
  782. <caption id="caption1" class="search_name" visibility="hidden" style="left:661px; top:18px; width:94px; height:17px; vertical-align:middle; ">구분:</caption>
  783. <select1 id="cmb_valuclsdetlcd" ref="/root/send/bizempl/valuclsdetlcd" class="combo_s_essential" visibility="hidden" appearance="minimal" style="left:717px; top:18px; width:15px; height:19px; ">
  784. <choices>
  785. <itemset nodeset="/root/init/valuclsdetlcd">
  786. <label ref="cdnm"/>
  787. <value ref="code"/>
  788. </itemset>
  789. </choices>
  790. </select1>
  791. <select1 id="cmb_fstscndhfyyflag" ref="/root/send/bizempl/fstscndhfyyflag" class="combo_s_essential" appearance="minimal" style="left:586px; top:18px; width:71px; height:19px; ">
  792. <choices>
  793. <itemset nodeset="/root/init/fstscndhfyyflag">
  794. <label ref="cdnm"/>
  795. <value ref="code"/>
  796. </itemset>
  797. </choices>
  798. <script type="javascript" ev:event="xforms-value-changed">
  799. <![CDATA[
  800. btn_search.dispatch("DOMActivate");
  801. ]]>
  802. </script>
  803. </select1>
  804. <caption id="cap_fstscndhfyyflag" class="search_name" style="left:501px; top:18px; width:85px; height:17px; vertical-align:middle; ">상하반기:</caption>
  805. <datagrid id="grd_empl" nodeset="/root/main/list/bizempl/bizempllist" allowuserresize="false" autoresize="true" caption="부서^평가그룹^사원번호^성명^상태^반려" colsep="^" colwidth="100, 60, 57, 49, 75, 33, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" selectionmode="free" style="left:0px; top:120px; width:364px; height:399px; ">
  806. <col checkvalue="Y,N" ref="deptnm" type="output"/>
  807. <col ref="valuclsnm" style="text-align:center; "/>
  808. <col ref="emplno" type="output" style="text-align:center; "/>
  809. <col ref="emplnm" type="output"/>
  810. <col ref="preststat" type="output"/>
  811. <col ref="valupsncnfmflag2" style="text-align:center; "/>
  812. <col ref="aprvflag" visibility="hidden"/>
  813. <col ref="inputendflag" visibility="hidden"/>
  814. <col ref="valuyy" visibility="hidden"/>
  815. <col ref="fstscndhfyyflag" visibility="hidden"/>
  816. <col ref="instcd" visibility="hidden"/>
  817. <col ref="deptcd" visibility="hidden"/>
  818. <col ref="rtnreqresn" visibility="hidden"/>
  819. <col ref="valupsnrtnreqresn" visibility="hidden"/>
  820. <col ref="jobrespnm" visibility="hidden"/>
  821. <col ref="jobgradnm" visibility="hidden"/>
  822. <col ref="instnm" visibility="hidden"/>
  823. <col ref="jobrespcd" visibility="hidden"/>
  824. <col ref="inoutflag" visibility="hidden"/>
  825. <col ref="valupsncnfmflag1" visibility="hidden"/>
  826. <col ref="ownvalucnfmyn" visibility="hidden"/>
  827. <col ref="valuemplno" visibility="hidden"/>
  828. <col ref="procstat" visibility="hidden"/>
  829. <col ref="phone" visibility="hidden"/>
  830. <col ref="email" visibility="hidden"/>
  831. <col ref="valuemplno2" visibility="hidden"/>
  832. <col ref="valupsncnfmyn1" type="output" visibility="hidden"/>
  833. <col ref="orgimrsnappyn" visibility="hidden"/>
  834. <col ref="cnfmflag2" visibility="hidden"/>
  835. <col ref="valuphone2" visibility="hidden"/>
  836. <col ref="valuemail2" visibility="hidden"/>
  837. <col ref="valuemplnm2" visibility="hidden"/>
  838. <script type="javascript" ev:event="onrowchanged">
  839. <![CDATA[
  840. model.setValue(opt_instnm.attribute("ref"), grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("instnm")));
  841. model.setValue(opt_dutplcedeptnm.attribute("ref"), grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("deptnm")));
  842. model.setValue(opt_jobrespnm.attribute("ref"), grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("jobrespnm")));
  843. model.setValue(opt_jobgradnm.attribute("ref"), grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("jobgradnm")));
  844. model.setValue(opt_emplno.attribute("ref"), grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("emplno")));
  845. model.setValue(opt_emplnm.attribute("ref"), grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("emplnm")));
  846. model.setValue(opt_instcd.attribute("ref"), grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("instcd")));
  847. model.setValue(opt_deptcd.attribute("ref"), grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("deptcd")));
  848. model.setValue(opt_jobrespcd.attribute("ref"), grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("jobrespcd")));
  849. misfGridInit(grd_bizidx);
  850. misfMsterDetailRetrieve();
  851. gridrow = grd_empl.row;
  852. model.setValue(txt_valupsncnts1.attribute("ref"), grd_bizidx.valueMatrix(grd_bizidx.fixedRows, grd_bizidx.colRef("valupsncnts1")));
  853. model.setValue(txt_valupsncnts2.attribute("ref"), grd_bizidx.valueMatrix(grd_bizidx.fixedRows, grd_bizidx.colRef("valupsncnts2")));
  854. txt_valupsncnts1.refresh();
  855. fGetIdxCnt();
  856. fcheckcomplete();
  857. // grd_bizidx.subtotal("clear", 0, 0);
  858. //
  859. // grd_bizidx.subtotal("sum",grd_bizidx.colRef("emplno") , grd_bizidx.colRef("ownvaluscornm"), "format:#,###; ", "background-color:#ffff99; font-weight:bold; ", 1, "합계");
  860. // grd_bizidx.subtotal("sum",grd_bizidx.colRef("emplno") , grd_bizidx.colRef("valupsnscor1"), "format:#,###; ", "background-color:#ffff99; font-weight:bold; ", 1, "합계");
  861. // grd_bizidx.subtotal("sum",grd_bizidx.colRef("emplno") , grd_bizidx.colRef("adjtscor"), "format:#,###; ", "background-color:#ffff99; font-weight:bold; ", 1, "합계");
  862. for (var i = grd_bizidx.fixedRows; i < grd_bizidx.rows; i++ )
  863. {
  864. if ( grd_bizidx.valueMatrix(i, grd_bizidx.colRef("filecnt")) > 0 )
  865. {
  866. grd_bizidx.cellstyle("background-color", i, grd_bizidx.colRef("popup")) = "#ffff99";
  867. }
  868. else
  869. {
  870. grd_bizidx.cellstyle("background-color", i, grd_bizidx.colRef("popup")) = "transparent";
  871. }
  872. }
  873. if(grd_bizidx.rows == grd_bizidx.fixedRows)
  874. {
  875. btn_sinsert.disabled = false;
  876. }else
  877. {
  878. btn_sinsert.disabled = true;
  879. }
  880. if (grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("valupsncnfmyn1")) == "Y" )
  881. {
  882. misfSetReadOnlyCol(grd_bizidx, "valupsnscor1", true);
  883. btn_sdelet.disabled = true;
  884. button3.disabled = true;
  885. btn_sdelete.disabled = true;
  886. txt_valupsncnts1.disabled = true;
  887. btn_clearscor.disabled = true;
  888. }
  889. else
  890. {
  891. if (grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("ownvalucnfmyn")) == "Y" ) {
  892. misfSetReadOnlyCol(grd_bizidx, "valupsnscor1", false);
  893. }
  894. else {
  895. misfSetReadOnlyCol(grd_bizidx, "valupsnscor1", true);
  896. }
  897. btn_sdelet.disabled = false;
  898. button3.disabled = false;
  899. btn_sdelete.disabled = false;
  900. txt_valupsncnts1.disabled = false;
  901. btn_clearscor.disabled = false;
  902. }
  903. if ( grd_bizidx.valueMatrix(grd_bizidx.fixedRows, grd_bizidx.colRef("lastcnfmyn")) == "Y" )
  904. {
  905. //grd_bizidx.colhidden(grd_bizidx.colRef("adjtscor")) = false;
  906. ipt_adjtscor.visible = true;
  907. caption15.visible = true;
  908. }
  909. else
  910. {
  911. //grd_bizidx.colhidden(grd_bizidx.colRef("adjtscor")) = true;
  912. ipt_adjtscor.visible = false;
  913. caption15.visible = false;
  914. }
  915. ftotalpoint();
  916. model.refresh();
  917. //grd_bizidx.refresh();
  918. //grd_bizidx.rebuild();
  919. //model.recalculate();
  920. ]]>
  921. </script>
  922. </datagrid>
  923. <datagrid id="grd_bizidx" nodeset="/root/main/list/bizgoalkpi/bizgoalkpilist" autoresize="true" caption="구분(S,F)^업무구분^평가지표^가중치^목표수준^측정방법^달성성과^달성성과^본인평가^평가점수^조정점수" colsep="^" colwidth="58, 78, 116, 44, 152, 82, 97, 20, 55, 55, 55, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" tooltip="true" style="left:368px; top:197px; width:822px; height:322px; ">
  924. <col ref="idxsfflagnm"/>
  925. <col ref="idxcdnm" type="output"/>
  926. <col ref="rsltidx" type="output"/>
  927. <col ref="wtnscornm" type="output"/>
  928. <col ref="goallevl" type="input"/>
  929. <col ref="inspmthd" type="output"/>
  930. <col ref="achvmntrslt" type="output"/>
  931. <col ref="popup" type="inputbutton"/>
  932. <col ref="ownvaluscornm" type="output"/>
  933. <col class="gridcombo" ref="valupsnscor1" type="combo">
  934. <choices>
  935. <itemset>
  936. <label/>
  937. <value/>
  938. </itemset>
  939. </choices>
  940. </col>
  941. <col ref="adjtscor" type="output" visibility="hidden" format="#,###.00" maxlength="5.2"/>
  942. <col ref="publbaseflag" type="output" visibility="hidden"/>
  943. <col ref="valupsnscor1adjtscor" visibility="hidden"/>
  944. <col ref="valuyy" type="output" visibility="hidden"/>
  945. <col ref="emplno" type="output" visibility="hidden"/>
  946. <col ref="fstscndhfyyflag" type="output" visibility="hidden"/>
  947. <col ref="valuclscd" visibility="hidden"/>
  948. <col ref="valumdlcd" visibility="hidden"/>
  949. <col ref="valuclsdetlcd" visibility="hidden"/>
  950. <col ref="publbaseflag" type="output" visibility="hidden"/>
  951. <col ref="idxcd" visibility="hidden"/>
  952. <col ref="inputendflag" visibility="hidden"/>
  953. <col ref="rtnreqresn" visibility="hidden"/>
  954. <col ref="valupsncnts1" visibility="hidden"/>
  955. <col ref="ownvaluscor" visibility="hidden"/>
  956. <col ref="aprvflag" visibility="hidden"/>
  957. <col ref="valupsnrtnreqresn" visibility="hidden"/>
  958. <col ref="ownvalucnfmyn" visibility="hidden"/>
  959. <col ref="valupsncnfmyn1" visibility="hidden"/>
  960. <col ref="lastcnfmyn" visibility="hidden"/>
  961. <col ref="filecnt" visibility="hidden"/>
  962. <col ref="ownvaluexchscor" visibility="hidden" format="#,###.00"/>
  963. <col ref="valupsnexchscor1" visibility="hidden" format="#,###.00"/>
  964. <col ref="valupsncnfmflag1" visibility="hidden"/>
  965. <col ref="procstat" visibility="hidden"/>
  966. <col ref="valupsncnfmflag2" visibility="hidden"/>
  967. <col ref="deptcd" visibility="hidden"/>
  968. <col class="gridcombo" ref="wtnscor" type="combo" visibility="hidden">
  969. <choices>
  970. <itemset>
  971. <label/>
  972. <value/>
  973. </itemset>
  974. </choices>
  975. </col>
  976. <col ref="bizendyn" visibility="hidden"/>
  977. <col ref="valupsncnts2" visibility="hidden"/>
  978. <script type="javascript" ev:event="ondblclick">
  979. <![CDATA[
  980. if(grd_bizidx.rowStatus(grd_bizidx.row) == "1" || grd_bizidx.rowStatus(grd_bizidx.row) == "3" || (grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("idxcd")).length == 0) || (grd_bizidx.col == grd_bizidx.colRef("valupsnscor1")) )return;
  981. if (grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("valupsncnfmyn1")) == "Y" ) return;
  982. if(grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("ownvaluscornm")).length == 0)
  983. {
  984. var valuyy = model.getValue(ipt_valuyy.attribute("ref"));
  985. var emplno = grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("emplno"));
  986. var emplnm = grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("emplnm"));
  987. var fstscndhfyyflag = model.getValue(cmb_fstscndhfyyflag.attribute("ref"));
  988. rpvfOpenPopUpList("25",grd_empl,"","emplno","emplno,emplnm,fstscndhfyyflag,valuyy","emplno,emplnm,fstscndhfyyflag,valuyy","");
  989. }
  990. else
  991. {
  992. misfGridIUD(grd_mdlvalu,"A");
  993. addRow = grd_mdlvalu.rows - grd_mdlvalu.fixedRows;
  994. model.setValue(grd_mdlvalu.nodeset + "[" + addRow + "]/chkdd", getCurrentDate().substr(0, 8));
  995. model.setValue(grd_mdlvalu.nodeset + "[" + addRow + "]/valuyy", grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("valuyy")));
  996. model.setValue(grd_mdlvalu.nodeset + "[" + addRow + "]/emplno", grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("emplno")));
  997. model.setValue(grd_mdlvalu.nodeset + "[" + addRow + "]/fstscndhfyyflag", grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("fstscndhfyyflag")));
  998. model.setValue(grd_mdlvalu.nodeset + "[" + addRow + "]/chkvaluclscd", grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("valuclscd")));
  999. model.setValue(grd_mdlvalu.nodeset + "[" + addRow + "]/chkvalumdlcd", grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("valumdlcd")));
  1000. model.setValue(grd_mdlvalu.nodeset + "[" + addRow + "]/chkvaluclsdetlcd", grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("valuclsdetlcd")));
  1001. model.setValue(grd_mdlvalu.nodeset + "[" + addRow + "]/chkpublbaseflag", grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("publbaseflag")));
  1002. model.setValue(grd_mdlvalu.nodeset + "[" + addRow + "]/chkidxcd", grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("idxcd")));
  1003. model.setValue(grd_mdlvalu.nodeset + "[" + addRow + "]/idxcdnm", grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("idxcdnm")));
  1004. model.setValue(grd_mdlvalu.nodeset + "[" + addRow + "]/deptcd", grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("deptcd")));
  1005. grd_mdlvalu.refresh();
  1006. }
  1007. ]]>
  1008. </script>
  1009. <script type="javascript" ev:event="onbuttonclick">
  1010. <![CDATA[
  1011. if(grd_bizidx.col != grd_bizidx.colRef("popup")) return;
  1012. var valuyy = grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("valuyy"));
  1013. var emplno = grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("emplno"));
  1014. var fstscndhfyyflag = grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("fstscndhfyyflag"));
  1015. var valuclscd = grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("valuclscd"));
  1016. var valumdlcd = grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("valumdlcd"));
  1017. var valuclsdetlcd = grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("valuclsdetlcd"));
  1018. var deptcd = grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("deptcd"));
  1019. var publbaseflag = grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("publbaseflag"));
  1020. var idxcd = grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("idxcd"));
  1021. misfGridInit(grd_fileinfo);
  1022. misfGridIUD(grd_fileinfo, "A");
  1023. model.setValue(grd_fileinfo.nodeset + "[" + (grd_fileinfo.fixedRows)+ "]/valuyy", valuyy);
  1024. model.setValue(grd_fileinfo.nodeset + "[" + (grd_fileinfo.fixedRows)+ "]/emplno", emplno);
  1025. model.setValue(grd_fileinfo.nodeset + "[" + (grd_fileinfo.fixedRows)+ "]/fstscndhfyyflag", fstscndhfyyflag);
  1026. model.setValue(grd_fileinfo.nodeset + "[" + (grd_fileinfo.fixedRows)+ "]/valuclscd", valuclscd);
  1027. model.setValue(grd_fileinfo.nodeset + "[" + (grd_fileinfo.fixedRows)+ "]/valumdlcd", valumdlcd);
  1028. model.setValue(grd_fileinfo.nodeset + "[" + (grd_fileinfo.fixedRows)+ "]/valuclsdetlcd", valuclsdetlcd);
  1029. model.setValue(grd_fileinfo.nodeset + "[" + (grd_fileinfo.fixedRows)+ "]/tableflag", "2");
  1030. model.setValue(grd_fileinfo.nodeset + "[" + (grd_fileinfo.fixedRows)+ "]/deptcd", deptcd);
  1031. model.setValue(grd_fileinfo.nodeset + "[" + (grd_fileinfo.fixedRows)+ "]/publbaseflag", publbaseflag);
  1032. model.setValue(grd_fileinfo.nodeset + "[" + (grd_fileinfo.fixedRows)+ "]/idxcd", idxcd);
  1033. grd_fileinfo.refresh();
  1034. rpvfOpenPopUpList("28",grd_fileinfo,"","emplno","valuyy,emplno,fstscndhfyyflag,valuclscd,valumdlcd,valuclsdetlcd,tableflag,deptcd,publbaseflag,idxcd",
  1035. "valuyy,emplno,fstscndhfyyflag,valuclscd,valumdlcd,valuclsdetlcd,tableflag,deptcd,publbaseflag,idxcd","");
  1036. ]]>
  1037. </script>
  1038. <script type="javascript" ev:event="onentercell">
  1039. <![CDATA[
  1040. ]]>
  1041. </script>
  1042. <script type="javascript" ev:event="xforms-value-changed">
  1043. <![CDATA[
  1044. if (grd_bizidx.col == grd_bizidx.colRef("wtnscor")) {
  1045. var valuclsdetlcd = grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("valuclsdetlcd"));
  1046. if (valuclsdetlcd == "004" && grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("wtnscor")) == "08") {
  1047. messageBox("기본 업무 지표의 가중치는 35이하만 가능합니다. 수정 할 수 ","I004");
  1048. grd_bizidx.valueMatrix(grd_bizidx.row, grd_bizidx.colRef("wtnscor")) = "01";
  1049. grd_bizidx.refresh();
  1050. return;
  1051. }
  1052. }
  1053. ]]>
  1054. </script>
  1055. </datagrid>
  1056. <button id="btn_search" class="btn1_letter2" style="left:1133px; top:17px; width:56px; height:22px; ">
  1057. <caption>조회</caption>
  1058. <script type="javascript" ev:event="DOMActivate">
  1059. <![CDATA[
  1060. if ( !isRequiredControls("ipt_valuyy", "ipt_valuemplno" , "cmb_fstscndhfyyflag") ) {
  1061. return false;
  1062. }
  1063. misfGridInit(grd_empl);
  1064. misfGridInit(grd_bizidx);
  1065. model.setValue(txt_valupsncnts1.attribute("ref"),"");
  1066. model.setValue(txt_valupsncnts2.attribute("ref"),"");
  1067. model.setValue(opt_instnm.attribute("ref"),"");
  1068. model.setValue(opt_dutplcedeptnm.attribute("ref"),"");
  1069. model.setValue(opt_jobrespnm.attribute("ref"),"");
  1070. model.setValue(opt_jobgradnm.attribute("ref"),"");
  1071. model.setValue(opt_emplno.attribute("ref"),"");
  1072. model.setValue(opt_emplnm.attribute("ref"),"");
  1073. submit("TRRPV99912");
  1074. submit("TRRPV05901");
  1075. //misfMsterDetailRetrieve();
  1076. model.setFocus("grd_empl");
  1077. if (gridrow == -1 || gridrow == grd_empl.rows - grd_empl.fixedRows) {
  1078. grd_empl.row = grd_empl.fixedRows;
  1079. }
  1080. else {
  1081. grd_empl.row = gridrow + 1;
  1082. }
  1083. grd_empl.select(grd_empl.row, grd_empl.colRef("emplno")) = true;
  1084. grd_empl.dispatch("onrowchanged");
  1085. var valupsncnfmyn1 = "Y";
  1086. var cnfmflag2 = "B";
  1087. var valupsnemplno2 = "";
  1088. for (var i = grd_empl.fixedRows; i < grd_empl.rows; i++ ) {
  1089. if (grd_empl.valueMatrix(i, grd_empl.colRef("valupsncnfmyn1")) != "Y") {
  1090. valupsncnfmyn1 = "N";
  1091. }
  1092. if (grd_empl.valueMatrix(i, grd_empl.colRef("cnfmflag2")) == "A") {
  1093. cnfmflag2 = "A";
  1094. }
  1095. if (grd_empl.valueMatrix(i, grd_empl.colRef("valuemplno2")) != "") {
  1096. valupsnemplno2 = grd_empl.valueMatrix(i, grd_empl.colRef("valuemplno2"));
  1097. }
  1098. }
  1099. if ( valupsncnfmyn1 == "Y") {
  1100. btn_valuend.disabled = true;
  1101. if (cnfmflag2 != "A" || valupsnemplno2 == "" ) {
  1102. btn_valuendcancle.disabled = false;
  1103. }
  1104. else {
  1105. btn_valuendcancle.disabled = true;
  1106. }
  1107. }
  1108. else {
  1109. btn_valuend.disabled = false;
  1110. if(DUTY_VALU_YN == "Y") {
  1111. btn_valuendcancle.disabled = false;
  1112. }
  1113. else {
  1114. btn_valuendcancle.disabled = true;
  1115. }
  1116. }
  1117. ]]>
  1118. </script>
  1119. </button>
  1120. <button id="btn_sinsert" class="btn2_letter6" style="left:1015px; top:172px; width:86px; height:19px; ">
  1121. <caption>업무지표등록</caption>
  1122. <script type="javascript" ev:event="DOMActivate">
  1123. <![CDATA[
  1124. var fValuyy = grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("valuyy"));
  1125. var fEmplno = grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("emplno"));
  1126. var fEmplnm = grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("emplnm"));
  1127. var fFstscndhfyyflag = cmb_fstscndhfyyflag.value;
  1128. model.makeValue("/root/source/valuyy", fValuyy);
  1129. model.makeValue("/root/source/emplno", fEmplno);
  1130. submit("TRRPV05801");
  1131. model.makeValue("/root/source/bizgoalkpi/valuempllist/trgtemplno", fEmplno);
  1132. model.makeValue("/root/source/bizgoalkpi/valuempllist/trgtemplnm", fEmplnm);
  1133. model.makeValue("/root/source/bizgoalkpi/valuempllist/fstscndhfyyflag", fFstscndhfyyflag);
  1134. model.makeValue("/root/source/bizgoalkpi/valuempllist/popup", "SMRPV06300");
  1135. modal("SMRPV05800", "", "", "", "", "/root/source/bizgoalkpi/valuempllist" , "/root/target");
  1136. ]]>
  1137. </script>
  1138. </button>
  1139. <button id="btn_sdelet" class="btn2_letter6" visibility="hidden" style="left:1103px; top:172px; width:86px; height:19px; ">
  1140. <caption>업무지표삭제</caption>
  1141. <script type="javascript" ev:event="DOMActivate">
  1142. <![CDATA[
  1143. misfGridIUD(grd_bizidx, "D");
  1144. ]]>
  1145. </script>
  1146. </button>
  1147. <button id="button6" class="btn_sw" group="tab" style="left:223px; top:522px; width:128px; height:22px; ">
  1148. <caption>2차평가의견</caption>
  1149. <toggle case="case3" ev:event="DOMActivate"/>
  1150. </button>
  1151. <datagrid id="grd_fileinfo" nodeset="/root/main/list/scrfileinfo/fileinfolist" visibility="hidden" caption="valuyy^instcd^deptcd^emplno^goalflag" colsep="^" colwidth="195, 836, 100, 100, 100, 100, 100" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:1140px; top:440px; width:50px; height:79px; ">
  1152. <col ref="valuyy"/>
  1153. <col ref="emplno"/>
  1154. <col ref="fstscndhfyyflag"/>
  1155. <col ref="valuclscd"/>
  1156. <col ref="valumdlcd"/>
  1157. <col ref="valuclsdetlcd"/>
  1158. <col ref="publbaseflag"/>
  1159. <col ref="idxcd"/>
  1160. <col ref="tableflag"/>
  1161. <col ref="deptcd" visibility="hidden"/>
  1162. </datagrid>
  1163. <output id="opt_instcd" ref="/root/send/emplinfo/instcd" visibility="hidden" style="left:170px; top:70px; width:25px; height:19px; "/>
  1164. <output id="opt_deptcd" ref="/root/send/emplinfo/deptcd" visibility="hidden" style="left:375px; top:70px; width:25px; height:19px; "/>
  1165. <output id="opt_jobrespcd" ref="/root/send/emplinfo/jobrespcd" visibility="hidden" style="left:560px; top:70px; width:50px; height:19px; "/>
  1166. <caption id="caption2" class="tit_2" style="left:372px; top:100px; width:295px; height:13px; vertical-align:middle; ">전사지표 List</caption>
  1167. <line id="line9" class="line_1" style="x1:370px; y1:115px; x2:1190px; y2:115px; "/>
  1168. <datagrid id="grd_ckpilist" nodeset="/root/main/list/bizgoalkpi/ckpilist" caption="구분^가중치^평가점수" colsep="^" colwidth="55, 100, 100" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:368px; top:120px; width:822px; height:50px; ">
  1169. <col ref="idxsfflagnm"/>
  1170. <col ref="wtnscornm"/>
  1171. <col ref="valuscornm"/>
  1172. </datagrid>
  1173. <caption id="cap_total" class="cell_1" style="left:640px; top:520px; width:65px; height:23px; vertical-align:middle; ">본인평가</caption>
  1174. <input id="ipt_indpscor" ref="/root/init/score/indpscor" class="input_essential" disabled="true" format="#,###.##" style="left:708px; top:522px; width:97px; height:19px; text-align:right; "/>
  1175. <caption id="caption14" class="cell_1" style="left:830px; top:520px; width:65px; height:23px; vertical-align:middle; ">1차평가</caption>
  1176. <input id="ipt_valuscor1" ref="/root/init/score/valuscor1" class="input_essential" disabled="true" format="#,###.##" style="left:898px; top:522px; width:97px; height:19px; text-align:right; "/>
  1177. <caption id="caption15" class="cell_1" visibility="hidden" style="left:1020px; top:520px; width:65px; height:23px; vertical-align:middle; ">조정점수</caption>
  1178. <input id="ipt_adjtscor" ref="/root/init/score/adjtscor" class="input_essential" disabled="true" visibility="hidden" format="#,###.##" style="left:1088px; top:522px; width:97px; height:19px; text-align:right; "/>
  1179. <input id="ipt_valumdlcd" ref="/root/send/idxflag/valumdlcd" visibility="hidden" style="left:790px; top:18px; width:65px; height:19px; "/>
  1180. <input id="ipt_idxflag" ref="/root/send/idxflag/idxflag" visibility="hidden" style="left:920px; top:18px; width:65px; height:19px; "/>
  1181. <input id="ipt_valuclscd" ref="/root/send/idxflag/valuclscd" visibility="hidden" style="left:790px; top:35px; width:60px; height:19px; "/>
  1182. <input id="ipt_deptcd" ref="/root/send/emplinfo/deptcd" visibility="hidden" style="left:900px; top:35px; width:30px; height:19px; "/>
  1183. <input id="ipt_instcd" ref="/root/send/emplinfo/instcd" visibility="hidden" style="left:940px; top:35px; width:30px; height:19px; "/>
  1184. <input id="ipt_smallclscd" ref="/root/send/idxflag/smallclscd" visibility="hidden" style="left:985px; top:18px; width:65px; height:19px; "/>
  1185. <input id="ipt_valuclsdetlcd" ref="/root/send/idxflag/valuclsdetlcd" visibility="hidden" style="left:855px; top:18px; width:65px; height:19px; "/>
  1186. <datagrid id="grd_msg" nodeset="/root/main/smsdata/recvrlist" visibility="hidden" caption="체크여부^이름^전화번호" colsep="^" colwidth="30, 50, 70" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:295px; top:440px; width:60px; height:60px; ">
  1187. <col ref="chk"/>
  1188. <col ref="recvrnm"/>
  1189. <col ref="recvrtelno"/>
  1190. </datagrid>
  1191. <button id="btn_valuemplno" class="icon_search" style="left:355px; top:20px; width:16px; height:16px; ">
  1192. <caption/>
  1193. <script type="javascript" ev:event="DOMActivate">
  1194. <![CDATA[
  1195. var recv_list = "emplno,emplnm" ;
  1196. // model.makeNode("/root/send/bizempl/emplno");
  1197. // model.makeNode("/root/send/bizempl/emplnm");
  1198. rpbfOpenPopUpList("SPRPB00101", ipt_valuemplno, recv_list);
  1199. // model.setValue(ipt_valuemplno.attribute("ref"), model.getValue("/root/send/bizempl/emplno") );
  1200. // model.setValue(ipt_valuemplnm.attribute("ref"), model.getValue("/root/send/bizempl/emplnm") );
  1201. //
  1202. // model.removenode("/root/send/bizempl/emplno");
  1203. // model.removenode("/root/send/bizempl/emplnm");
  1204. model.refresh();
  1205. ]]>
  1206. </script>
  1207. </button>
  1208. <button id="btn_clearscor" class="btn5_letter4" disabled="true" style="left:945px; top:172px; width:64px; height:19px; ">
  1209. <caption>점수삭제</caption>
  1210. <script type="javascript" ev:event="DOMActivate">
  1211. <![CDATA[
  1212. for(var i = grd_bizidx.fixedRows; i <= grd_bizidx.rows; i++) {
  1213. grd_bizidx.valueMatrix(i, grd_bizidx.colRef("valupsnscor1")) = " ";
  1214. grd_bizidx.rowStatus(i) = "2";
  1215. }
  1216. btn_save.dispatch("DOMActivate");
  1217. ]]>
  1218. </script>
  1219. </button>
  1220. <select1 id="rbo_enflag" ref="/root/send/bizempl/endflag" visibility="hidden" appearance="full" cols="3" overflow="visible" style="left:909px; top:18px; width:180px; height:19px; border-style:solid; ">
  1221. <choices>
  1222. <itemset nodeset="/root/init/endflag">
  1223. <label ref="cdnm"/>
  1224. <value ref="code"/>
  1225. </itemset>
  1226. </choices>
  1227. </select1>
  1228. </group>
  1229. <group id="grp_btn" scroll="auto" style="left:0px; top:12px; width:1195px; height:27px; ">
  1230. <line id="line6" class="line_6" style="x1:0px; y1:25; x2:1195px; y2:25; "/>
  1231. <button id="btn_init" class="btn4_letter3" style="left:1119px; top:3px; width:68px; height:22px; ">
  1232. <caption>초기화</caption>
  1233. <script type="javascript" ev:event="DOMActivate">
  1234. <![CDATA[
  1235. window.reload() ;
  1236. ]]>
  1237. </script>
  1238. </button>
  1239. <button id="btn_save" class="btn4_letter2" style="left:869px; top:3px; width:56px; height:22px; ">
  1240. <caption>저장</caption>
  1241. <script type="javascript" ev:event="DOMActivate">
  1242. <![CDATA[
  1243. //
  1244. // var skpi = 0;
  1245. // var fkpi = 0;
  1246. // var skpicnt = 0;
  1247. // var fkpicnt = 0;
  1248. //
  1249. // for(var i= grd_bizidx.fixedRows; i < grd_bizidx.rows; i++)
  1250. // {
  1251. // if( grd_bizidx.valueMatrix(i, grd_bizidx.colRef("idxsfflagnm")) == '공유지표' )
  1252. // {
  1253. // skpi += parseInt( grd_bizidx.labelMatrix(i, grd_bizidx.colRef("wtnscor")) );
  1254. // skpicnt += 1;
  1255. // }else if( grd_bizidx.valueMatrix(i, grd_bizidx.colRef("idxsfflagnm")) == '기본지표' )
  1256. // {
  1257. // fkpi += parseInt( grd_bizidx.labelMatrix(i, grd_bizidx.colRef("wtnscor")) );
  1258. // fkpicnt += 1;
  1259. // }
  1260. // }
  1261. //
  1262. //
  1263. // if(model.getValue("/root/init/idxskpimaxcnt") != skpicnt)
  1264. // {
  1265. // messageBox("공유지표 최대 항목갯수는 " + model.getValue("/root/init/idxskpimaxcnt") + "입니다. 저장 할수","I004");
  1266. // return;
  1267. // }
  1268. //
  1269. // if(model.getValue("/root/init/idxfkpimaxcnt") != fkpicnt )
  1270. // {
  1271. // messageBox("업무지표 최대 항목개수는 " + model.getValue("/root/init/idxfkpimaxcnt") + "입니다. 저장 할수","I004");
  1272. // return;
  1273. // }
  1274. //
  1275. //
  1276. //
  1277. // var inoutflag = grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("inoutflag"));
  1278. //
  1279. // if (opt_jobrespcd.value == "1070" || opt_jobrespcd.value == "1901") { //팀장,UM
  1280. // if (inoutflag == "E") { //S-KPI제외
  1281. // if(skpi != 90){
  1282. // messageBox("S-KPI의 가중치의 합이 90 미만(초과) 하였습니다.", "I999");
  1283. // return;
  1284. // }
  1285. // }
  1286. // else {
  1287. // if(skpi != 70){
  1288. // messageBox("S-KPI의 가중치의 합이 70 미만(초과) 하였습니다.", "I999");
  1289. // return;
  1290. // }
  1291. // }
  1292. //
  1293. // if(fkpi != 0)
  1294. // {
  1295. // messageBox("팀장,UM은 F-KPI를 입력할 수 없습니다.", "I999");
  1296. // return;
  1297. // }
  1298. // }
  1299. // else {
  1300. // if (inoutflag == "E") { //S-KPI제외
  1301. // if(skpi != 50){
  1302. // messageBox("S-KPI의 가중치의 합이 50 미만(초과) 하였습니다.", "I999");
  1303. // return;
  1304. // }
  1305. // }
  1306. // else {
  1307. // if(skpi != 40){
  1308. // messageBox("S-KPI의 가중치의 합이 40 미만(초과) 하였습니다.", "I999");
  1309. // return;
  1310. // }
  1311. // }
  1312. //
  1313. // if(fkpi != 50)
  1314. // {
  1315. // messageBox("F-KPI의 가중치의 합이 50 미만(초과) 하였습니다.", "I999");
  1316. // return;
  1317. // }
  1318. // }
  1319. //
  1320. //
  1321. // var wtnscor = 0;
  1322. // for(var row = grd_bizidx.fixedRows; row < grd_bizidx.rows; row++)
  1323. // {
  1324. // if(grd_bizidx.rowStatus(row) != "4" &&
  1325. // grd_bizidx.valueMatrix(row, grd_bizidx.colRef("idxcd")).length> 0 ){
  1326. // wtnscor = wtnscor + parseInt(grd_bizidx.labelMatrix(row, grd_bizidx.colRef("wtnscor")));
  1327. // }
  1328. // }
  1329. // if(wtnscor != 90){
  1330. // var errmsg = "";
  1331. //
  1332. // if(wtnscor < 90)errmsg = (90 - wtnscor) + "미만";
  1333. // else errmsg = (wtnscor - 90) + "초과";
  1334. //
  1335. // messageBox("가중치 합은 90 이 되어야만 합니다[" + errmsg + "]저장" ,"E001");
  1336. // return;
  1337. // }
  1338. var valupsncnts1 = model.getValue(txt_valupsncnts1.attribute("ref"));
  1339. if(grd_bizidx.valueMatrix(grd_bizidx.fixedRows , grd_bizidx.colRef("valupsncnts1")) != valupsncnts1){
  1340. for(var row = grd_bizidx.fixedRows; row < grd_bizidx.rows ; row++)
  1341. {
  1342. if (grd_bizidx.valueMatrix(row, grd_bizidx.colRef("valupsncnfmflag2")) == "R") {
  1343. grd_bizidx.valueMatrix(row, grd_bizidx.colRef("valupsncnfmflag2")) = "B";
  1344. if(grd_bizidx.rowStatus(row) != "1" && grd_bizidx.rowStatus(row) != "3" && grd_bizidx.rowStatus(row) != "4" )grd_bizidx.rowStatus(row) = "2";
  1345. }
  1346. if(grd_bizidx.valueMatrix(row, grd_bizidx.colRef("idxcd")).length> 0){
  1347. model.setValue(grd_bizidx.nodeset + "["+(row - grd_bizidx.fixedRows + 1)+"]/valupsncnts1",valupsncnts1);
  1348. if(grd_bizidx.rowStatus(row) != "1" && grd_bizidx.rowStatus(row) != "3" && grd_bizidx.rowStatus(row) != "4" )grd_bizidx.rowStatus(row) = "2";
  1349. }
  1350. }
  1351. grd_bizidx.refresh();
  1352. }
  1353. else {
  1354. for(var row = grd_bizidx.fixedRows; row < grd_bizidx.rows ; row++)
  1355. {
  1356. if (grd_bizidx.valueMatrix(row, grd_bizidx.colRef("valupsncnfmflag2")) == "R") {
  1357. grd_bizidx.valueMatrix(row, grd_bizidx.colRef("valupsncnfmflag2")) = "B";
  1358. if(grd_bizidx.rowStatus(row) != "1" && grd_bizidx.rowStatus(row) != "3" && grd_bizidx.rowStatus(row) != "4" )grd_bizidx.rowStatus(row) = "2";
  1359. }
  1360. }
  1361. grd_bizidx.refresh();
  1362. }
  1363. model.setValue("/root/send/save/bizmdlbizlist",grd_mdlvalu.getUpdateData());
  1364. model.setValue("/root/send/save/bizgoalkpilist",grd_bizidx.getUpdateData());
  1365. submit("TXRPV06301");
  1366. if (model.getValue(gvErrorMsgPath + "/type") != "error")
  1367. {
  1368. btn_search.dispatch("DOMActivate");
  1369. }
  1370. ]]>
  1371. </script>
  1372. </button>
  1373. <button id="btn_valuend" class="btn4_letter4" style="left:1037px; top:3px; width:80px; height:22px; ">
  1374. <caption>평가완료</caption>
  1375. <script type="javascript" ev:event="DOMActivate">
  1376. <![CDATA[
  1377. for (var i = grd_empl.fixedRows; i < grd_empl.rows ; i++ ) {
  1378. var inputendflag = grd_empl.valueMatrix(i, grd_empl.colRef("inputendflag"));
  1379. var valupsncnfmflag1 = grd_empl.valueMatrix(i, grd_empl.colRef("valupsncnfmflag1"));
  1380. var emplnm = grd_empl.valueMatrix(i, grd_empl.colRef("emplnm"));
  1381. var ownvalucnfmyn = grd_empl.valueMatrix(i, grd_empl.colRef("ownvalucnfmyn"));
  1382. if (inputendflag != "03" && inputendflag != "04") {
  1383. messageBox("[" + emplnm + "]는 업무지표 등록 완료가 되지 않아서 평가를 완료할수 없습니다. ", "I999");
  1384. return;
  1385. }
  1386. if (valupsncnfmflag1 != "F") {
  1387. messageBox("[" + emplnm + "]는 업무지표 확정이 되지 않아서 평가를 완료할수 없습니다. ", "I999");
  1388. return;
  1389. }
  1390. if (ownvalucnfmyn != "Y") {
  1391. messageBox("[" + emplnm + "]는 본인평가 완료가 되지 않아서 평가를 완료할수 없습니다. ", "I999");
  1392. return;
  1393. }
  1394. grd_empl.valueMatrix( i, grd_empl.colRef("valupsncnfmyn1")) = 'Y';
  1395. grd_empl.valueMatrix( i, grd_empl.colRef("procstat")) = "04";
  1396. }
  1397. // for(var i = grd_bizidx.fixedRows; i < grd_bizidx.rows ; i++)
  1398. // {
  1399. // if (grd_bizidx.valueMatrix( i, grd_bizidx.colRef("ownvaluscornm")) != "A")
  1400. // {
  1401. // messageBox("본인평가 미입력된 " + grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("emplnm")) + "[" + grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("emplno")) + "] 님의 평가를 완료할수 없습니다. ", "I999");
  1402. // return;
  1403. // }
  1404. //
  1405. // if (grd_bizidx.valueMatrix( i, grd_bizidx.colRef("valupsnscor1")) == "")
  1406. // {
  1407. // messageBox(grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("emplnm")) + "[" + grd_empl.valueMatrix(grd_empl.row, grd_empl.colRef("emplno")) + "] 님의 평가점수를 모두 입력하세요. ", "I999");
  1408. // return;
  1409. // }
  1410. // }
  1411. //
  1412. if( messageBox("평가를 완료 하시겠습니까?", "Q999") != 6) return;
  1413. for (var j = grd_empl.fixedRows; j < grd_empl.rows ; j++ ) {
  1414. grd_empl.rowStatus( j ) = "2";
  1415. }
  1416. model.setValue("/root/send/save/valucnfmlist",grd_empl.getUpdateData());
  1417. submit("TXRPV06302");
  1418. if (model.getValue("/root/properties/error/type") == "error") {
  1419. return;
  1420. }
  1421. // 수신자 리스트 그리드id ,발신자 폰번호, 발신할 문자메세지
  1422. //fSendMsg( grd_empl, model.getValue("/root/init/info/userinfo/phone"), "업적평가1차평가 평가완료 되었습니다.");
  1423. // Email 그리고 Sms 전송
  1424. // 보내는 사람의 Email 주소가 없을경우 Sms를 전송하도록...Email 주소, Sms 전화번호가 없을경우 경고 메세지 발생.
  1425. // fGrid : Email 주소나 휴대전화번호가 있는 그리드 id.
  1426. // fCmt : 전체적으로 보낼 전송메세지.
  1427. // fEmailTitle : 이메일 전송시의 제목.
  1428. // fCheckYN : 선택된 사람만 전송할지 유무.
  1429. // fEmplno : 발신자의 정보 호출을 위한 발신자 사원번호.
  1430. // fInstcd : 발신자의 정보 호출을 위한 발신자 기관코드.
  1431. rpvfCheckEmailAndSms( grd_empl, "[업적1차평] 평가완료 되었습니다.", "업적1차 평가 통보", 'N',
  1432. ipt_valuemplno.value,"","","","","","Y");
  1433. if (model.getValue(gvErrorMsgPath + "/type") != "error")
  1434. {
  1435. btn_search.dispatch("DOMActivate");
  1436. }
  1437. ]]>
  1438. </script>
  1439. </button>
  1440. <button id="btn_resultqry" class="btn4_letter6" visibility="visible" style="left:746px; top:3px; width:104px; height:22px; ">
  1441. <caption>평가결과조회</caption>
  1442. <script type="javascript" ev:event="DOMActivate">
  1443. <![CDATA[
  1444. model.removenode("/root/temp/source");
  1445. model.makeNode("/root/temp/source");
  1446. model.makeValue("/root/temp/source/valuyy", model.getValue("/root/send/bizempl/valuyy"));
  1447. model.makeValue("/root/temp/source/trgtemplno", model.getValue("/root/send/bizempl/emplno"));
  1448. model.makeValue("/root/temp/source/trgtemplnm", model.getValue("/root/send/bizempl/emplnm"));
  1449. model.makeValue("/root/temp/source/fstscndhfyyflag", model.getValue("/root/send/bizempl/fstscndhfyyflag"));
  1450. model.makeValue("/root/temp/source/instcd", model.getValue("/root/main/valuempllist/dutinst"));
  1451. model.makeValue("/root/temp/source/deptcd", model.getValue("/root/main/valuempllist/dutunitcd"));
  1452. model.makeValue("/root/temp/source/deptnm", model.getValue("/root/main/valuempllist/deptnm"));
  1453. modal("SMRPV07000","","","","","/root/temp/source", "/root/target" );
  1454. ]]>
  1455. </script>
  1456. </button>
  1457. <button id="btn_resultprt" class="btn4_letter6" visibility="visible" style="left:640px; top:2px; width:104px; height:22px; ">
  1458. <caption>평가결과출력</caption>
  1459. <script type="javascript" ev:event="DOMActivate">
  1460. <![CDATA[
  1461. model.removenode("/root/temp/source");
  1462. model.makeNode("/root/temp/source");
  1463. model.makeValue("/root/temp/source/valuyy", model.getValue("/root/send/bizempl/valuyy"));
  1464. model.makeValue("/root/temp/source/trgtemplno", model.getValue("/root/send/bizempl/emplno"));
  1465. model.makeValue("/root/temp/source/trgtemplnm", model.getValue("/root/send/bizempl/emplnm"));
  1466. model.makeValue("/root/temp/source/fstscndhfyyflag", model.getValue("/root/send/bizempl/fstscndhfyyflag"));
  1467. model.makeValue("/root/temp/source/instcd", model.getValue("/root/main/valuempllist/dutinst"));
  1468. model.makeValue("/root/temp/source/deptcd", model.getValue("/root/main/valuempllist/dutunitcd"));
  1469. model.makeValue("/root/temp/source/deptnm", model.getValue("/root/main/valuempllist/deptnm"));
  1470. model.makeValue("/root/temp/source/fstscndflag", "1");
  1471. // modal("SMRPV06300","","","","","/root/temp/source", "/root/target" );
  1472. modal("SMRPV08000","","","","","/root/temp/source", "/root/target" );
  1473. ]]>
  1474. </script>
  1475. </button>
  1476. <button id="btn_valuendcancle" class="btn4_letter6" disabled="true" style="left:930px; top:3px; width:104px; height:22px; ">
  1477. <caption>평가완료취소</caption>
  1478. <script type="javascript" ev:event="DOMActivate">
  1479. <![CDATA[
  1480. for (var i = grd_empl.fixedRows; i < grd_empl.rows ; i++ ) {
  1481. var inputendflag = grd_empl.valueMatrix(i, grd_empl.colRef("inputendflag"));
  1482. var valupsncnfmflag1 = grd_empl.valueMatrix(i, grd_empl.colRef("valupsncnfmflag1"));
  1483. var emplnm = grd_empl.valueMatrix(i, grd_empl.colRef("emplnm"));
  1484. var ownvalucnfmyn = grd_empl.valueMatrix(i, grd_empl.colRef("ownvalucnfmyn"));
  1485. var valupsncnfmyn1 = grd_empl.valueMatrix(i, grd_empl.colRef("valupsncnfmyn1"));
  1486. var cnfmflag2 = grd_empl.valueMatrix(i, grd_empl.colRef("cnfmflag2"));
  1487. if (valupsncnfmyn1 != "Y" && cnfmflag2 != "R" ) {
  1488. messageBox("[" + emplnm + "]는 1차 평가가 완료가 되지 않아서 평가 완료를 취소 할 수 없습니다. ", "I999");
  1489. return;
  1490. }
  1491. grd_empl.valueMatrix( i, grd_empl.colRef("valupsncnfmyn1")) = 'N';
  1492. grd_empl.valueMatrix( i, grd_empl.colRef("procstat")) = "03";
  1493. }
  1494. if( messageBox("평가 완료를 취소 하시겠습니까?", "Q999") != 6) return;
  1495. for (var j = grd_empl.fixedRows; j < grd_empl.rows ; j++ ) {
  1496. grd_empl.rowStatus( j ) = "2";
  1497. }
  1498. model.setValue("/root/send/save/valucnfmlist",grd_empl.getUpdateData());
  1499. submit("TXRPV06302");
  1500. // 수신자 리스트 그리드id ,발신자 폰번호, 발신할 문자메세지
  1501. //fSendMsg( grd_empl, model.getValue("/root/init/info/userinfo/phone"), "업적평가1차평가 평가완료 되었습니다.");
  1502. // Email 그리고 Sms 전송
  1503. // 보내는 사람의 Email 주소가 없을경우 Sms를 전송하도록...Email 주소, Sms 전화번호가 없을경우 경고 메세지 발생.
  1504. // fGrid : Email 주소나 휴대전화번호가 있는 그리드 id.
  1505. // fCmt : 전체적으로 보낼 전송메세지.
  1506. // fEmailTitle : 이메일 전송시의 제목.
  1507. // fCheckYN : 선택된 사람만 전송할지 유무.
  1508. // fEmplno : 발신자의 정보 호출을 위한 발신자 사원번호.
  1509. // fInstcd : 발신자의 정보 호출을 위한 발신자 기관코드.
  1510. rpvfCheckEmailAndSms( grd_empl, "[업적1차평] 평가완료 취소 되었습니다.", "업적1차 평가 통보", 'N',
  1511. ipt_valuemplno.value,"","","","","","Y");
  1512. if (model.getValue(gvErrorMsgPath + "/type") != "error")
  1513. {
  1514. btn_search.dispatch("DOMActivate");
  1515. }
  1516. ]]>
  1517. </script>
  1518. </button>
  1519. </group>
  1520. </xhtml:body>
  1521. </xhtml:html>