SMCVB00200_VOC처리요청내용.xrw 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * Name : SMCVB00200_VOC 처리요청내용
  4. * Summary : VOC 처리요청내용
  5. * Programmer : 김준규
  6. * Date Written : 2007.01.22
  7. * History : 2007.03.19
  8. * Remark :
  9. -->
  10. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  11. <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">
  12. <xhtml:head>
  13. <xhtml:title>VOC처리요청내용</xhtml:title>
  14. <model id="model1">
  15. <instance id="instance1">
  16. <root xmlns="">
  17. <main>
  18. <vocdata>
  19. <accept>
  20. <clntnm/>
  21. <acptseq/>
  22. <acptdd/>
  23. <genrdd/>
  24. <acpttype/>
  25. <prcsstat/>
  26. <acptkindlrg/>
  27. <acptkindmdl/>
  28. <acptkindsml/>
  29. <acpttitl/>
  30. <acptcnts/>
  31. <acpviewdd/>
  32. <openallyn/>
  33. <fstrgstrnm/>
  34. <lastupdtrnm/>
  35. </accept>
  36. <deptview>
  37. <deptnm/>
  38. <deptcd/>
  39. <empnm/>
  40. <empid/>
  41. </deptview>
  42. </vocdata>
  43. <reqdata>
  44. <list>
  45. <reqlist>
  46. <deptnm/>
  47. <empnm/>
  48. <prcsstat/>
  49. <acptdd/>
  50. <replreqdd/>
  51. <replacptdd/>
  52. <innraprvreqdd/>
  53. <innraprvdd/>
  54. <endreqyn/>
  55. <rereqyn/>
  56. <deptcd/>
  57. <empid/>
  58. <csteamreqcnts/>
  59. <rgstseq/>
  60. <acptseq/>
  61. </reqlist>
  62. </list>
  63. <area>
  64. <reqdeptnm/>
  65. <reqdeptcd/>
  66. <reqempnm/>
  67. <reqempid/>
  68. <reqreplreqdd/>
  69. <reqcsteamreqcnts/>
  70. <reqacptdd/>
  71. <reqacptseq/>
  72. <reqrgstseq/>
  73. <savemode>I</savemode>
  74. </area>
  75. </reqdata>
  76. <vocpopup>
  77. <title/>
  78. <contents/>
  79. <inputmode/>
  80. <receive_path/>
  81. </vocpopup>
  82. <vocdeltemp>
  83. <delacptdd/>
  84. <delacptseq/>
  85. <delrgstseq/>
  86. </vocdeltemp>
  87. <temp>
  88. <data>
  89. <srchacptdd1/>
  90. <srchacptdd2/>
  91. <srchacpttypecd/>
  92. <srchprcsstatcd/>
  93. <srchdeptcd/>
  94. <srchdeptnm/>
  95. <srchcintnm/>
  96. <srchpatnm/>
  97. </data>
  98. <key>
  99. <sndacptdd/>
  100. <sndacptseq/>
  101. </key>
  102. </temp>
  103. </main>
  104. <send>
  105. <data/>
  106. </send>
  107. <init>
  108. <C0003list>
  109. <cdid/>
  110. <cdnm/>
  111. </C0003list>
  112. <C0004list>
  113. <cdid/>
  114. <cdnm/>
  115. </C0004list>
  116. <C0005list>
  117. <cdid/>
  118. <cdnm/>
  119. </C0005list>
  120. <C0006list>
  121. <cdid/>
  122. <cdnm/>
  123. </C0006list>
  124. <C0007list>
  125. <cdid/>
  126. <cdnm/>
  127. </C0007list>
  128. <C0008list>
  129. <cdid/>
  130. <cdnm/>
  131. </C0008list>
  132. <C0009list>
  133. <cdid/>
  134. <cdnm/>
  135. </C0009list>
  136. </init>
  137. </root>
  138. </instance>
  139. <submission id="TRCVB00201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/temp/key" resultref="/root/main/vocdata"/>
  140. <submission id="TRCVB00202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/temp/key" resultref="/root/main/reqdata/list"/>
  141. <submission id="TXCVB00201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/reqdata/area"/>
  142. <submission id="TXCVB00202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/reqdata/area"/>
  143. <submission id="TXCVB00203" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/temp/key"/>
  144. <submission id="TXCVB00205" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/vocdeltemp"/>
  145. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="urlencoded-post" replace="instance"/>
  146. </model>
  147. <script type="javascript" ev:event="xforms-ready">
  148. <![CDATA[
  149. submit("TRCVB00201");
  150. if( model.getValue("/root/main/vocdata/accept/acptkindlrg") == "C" ) {
  151. switch (model.getValue("/root/main/vocdata/accept/acptkindmdl")) {
  152. case "ES" :
  153. cmb_AcptKindSml.choices.itemset.attribute("nodeset") = "/root/init/C0005list/C0005";
  154. zbcfGetCodeList( new Array("C0003", "C0004", "C0005"), new Array("/root/init/C0003list", "/root/init/C0004list", "/root/init/C0005list"), true );
  155. break;
  156. case "PS" :
  157. cmb_AcptKindSml.choices.itemset.attribute("nodeset") = "/root/init/C0006list/C0006";
  158. zbcfGetCodeList( new Array("C0003", "C0004", "C0006"), new Array("/root/init/C0003list", "/root/init/C0004list", "/root/init/C0006list"), true );
  159. break;
  160. case "OS" :
  161. cmb_AcptKindSml.choices.itemset.attribute("nodeset") = "/root/init/C0007list/C0007";
  162. zbcfGetCodeList( new Array("C0003", "C0004", "C0007"), new Array("/root/init/C0003list", "/root/init/C0004list", "/root/init/C0007list"), true );
  163. break;
  164. case "NS" :
  165. cmb_AcptKindSml.choices.itemset.attribute("nodeset") = "/root/init/C0008list/C0008";
  166. zbcfGetCodeList( new Array("C0003", "C0004", "C0008"), new Array("/root/init/C0003list", "/root/init/C0004list", "/root/init/C0008list"), true );
  167. break;
  168. case "TS" :
  169. cmb_AcptKindSml.choices.itemset.attribute("nodeset") = "/root/init/C0009list/C0009";
  170. zbcfGetCodeList( new Array("C0003", "C0004", "C0009"), new Array("/root/init/C0003list", "/root/init/C0004list", "/root/init/C0009list"), true );
  171. break;
  172. default :
  173. zbcfGetCodeList( new Array("C0003", "C0004"), new Array("/root/init/C0003list", "/root/init/C0004list"), true );
  174. break;
  175. }
  176. } else {
  177. zbcfGetCodeList( new Array("C0003"), new Array("/root/init/C0003list"), true );
  178. }
  179. if( model.getValue("/root/main/vocdata/accept/prcsstat") != "접수완료" ) {
  180. btn_req.disabled = true;
  181. btn_save.disabled = true;
  182. btn_reqall.disabled = true;
  183. btn_clear.disabled = true;
  184. }
  185. submit("TRCVB00202");
  186. if (grd_reqlist.rows < 2){
  187. btn_reqall.disabled = true;
  188. } else {
  189. }
  190. fCheckAuth();
  191. model.refresh();
  192. ]]>
  193. </script>
  194. <script type="javascript">
  195. <![CDATA[
  196. function fCheckAuth() {
  197. // 권한체크
  198. if (!checkAuth("r")) {
  199. btn_list.disabled = true;
  200. btnsearch_dept.disabled = true;
  201. btnsearch_emp.disabled = true;
  202. btn_clear.disabled = true;
  203. }
  204. if (!checkAuth("x")) {
  205. btn_save.disabled = true;
  206. btn_req.disabled = true;
  207. btn_reqall.disabled = true;
  208. }
  209. if (!checkAuth("p")) {
  210. }
  211. }
  212. ]]>
  213. </script>
  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/basiccodeweb/js/ZBC001.js"/>
  218. </xhtml:head>
  219. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  220. <group id="grp_tle" style="left:0px; top:0px; width:1195px; height:13px; ">
  221. <caption id="caption1" class="tit_1" style="left:0px; top:0px; width:145px; height:13px; ">VOC 처리요청 내용</caption>
  222. </group>
  223. <group id="grp_Accept" style="left:225px; top:23px; width:970px; height:336px; ">
  224. <caption id="caption23" class="tit_2" style="left:5px; top:0px; width:119px; height:13px; ">등록된 접수내역</caption>
  225. <select id="chk_allopen" ref="/root/main/vocdata/accept/openallyn" disabled="true" overflow="visible" appearance="full" disable.background-color="transparent" style="left:814px; top:0px; width:156px; height:19px; font-weight:bold; border-style:none; ">
  226. <choices>
  227. <item>
  228. <label>모든 부서에 내용 공개</label>
  229. <value>Y</value>
  230. </item>
  231. </choices>
  232. </select>
  233. <line id="line8" class="line_1" style="x1:0px; y1:15px; x2:970px; y2:15px; "/>
  234. <line id="line9" class="line_2" style="x1:0px; y1:42px; x2:970px; y2:42px; "/>
  235. <caption id="caption24" class="cell_1" style="left:0px; top:20px; width:105px; height:23px; text-align:center; vertical-align:middle; ">접수일자</caption>
  236. <output id="ipt_AcptViewDD" ref="/root/main/vocdata/accept/acpviewdd" class="output_fix" inputtype="date" style="left:108px; top:21px; width:130px; height:19px; "/>
  237. <caption id="caption25" class="cell_1" style="left:241px; top:20px; width:105px; height:23px; text-align:center; vertical-align:middle; ">접수번호</caption>
  238. <output id="opt_AcptNo" ref="/root/main/vocdata/accept/acptseq" class="output_fix" inputtype="date" style="left:349px; top:21px; width:130px; height:19px; "/>
  239. <caption id="caption26" class="cell_1" style="left:483px; top:20px; width:105px; height:23px; text-align:center; vertical-align:middle; ">접수형태</caption>
  240. <output id="ipt_GenrDD" ref="/root/main/vocdata/accept/genrdd" class="output_fix" style="left:591px; top:21px; width:130px; height:19px; "/>
  241. <caption id="caption3" class="cell_1" style="left:723px; top:20px; width:105px; height:23px; text-align:center; vertical-align:middle; ">민원인</caption>
  242. <output id="ipt_CintNm" ref="/root/main/vocdata/accept/clntnm" class="output_fix" style="left:832px; top:21px; width:130px; height:19px; "/>
  243. <line id="line10" class="line_2" style="x1:0px; y1:66px; x2:970px; y2:66px; "/>
  244. <caption id="caption28" class="cell_1" style="left:0px; top:44px; width:105px; height:23px; text-align:center; vertical-align:middle; ">접수유형</caption>
  245. <select1 id="cmb_AcptKindLrg" ref="/root/main/vocdata/accept/acptkindlrg" class="combo_default" disabled="true" appearance="minimal" style="left:108px; top:45px; width:120px; height:19px; ">
  246. <choices>
  247. <itemset nodeset="/root/init/C0003list/C0003">
  248. <label ref="cdnm"/>
  249. <value ref="cdid"/>
  250. </itemset>
  251. </choices>
  252. </select1>
  253. <select1 id="cmb_AcptKindMdl" ref="/root/main/vocdata/accept/acptkindmdl" class="combo_default" disabled="true" appearance="minimal" style="left:230px; top:45px; width:120px; height:19px; ">
  254. <choices>
  255. <itemset nodeset="/root/init/C0004list/C0004">
  256. <label ref="cdnm"/>
  257. <value ref="cdid"/>
  258. </itemset>
  259. </choices>
  260. </select1>
  261. <select1 id="cmb_AcptKindSml" ref="/root/main/vocdata/accept/acptkindsml" class="combo_default" disabled="true" appearance="minimal" style="left:352px; top:45px; width:127px; height:19px; ">
  262. <choices>
  263. <itemset nodeset="/root/init/C0005list/C0005">
  264. <label ref="cdnm"/>
  265. <value ref="cdid"/>
  266. </itemset>
  267. </choices>
  268. </select1>
  269. <caption id="caption4" class="cell_1" style="left:723px; top:44px; width:105px; height:23px; text-align:center; vertical-align:middle; ">진행상태</caption>
  270. <output id="opt_PrcsStat" ref="/root/main/vocdata/accept/prcsstat" class="output_fix" style="left:832px; top:45px; width:130px; height:19px; "/>
  271. <line id="line12" class="line_2" style="x1:0px; y1:162px; x2:970px; y2:162px; "/>
  272. <caption id="caption29" class="cell_1" style="left:0px; top:68px; width:105px; height:95px; text-align:center; vertical-align:middle; ">
  273. <![CDATA[민원이 제기된
  274. 부서 및 직원]]>
  275. </caption>
  276. <datagrid id="grd_dept" nodeset="/root/main/vocdata/deptview" caption="해당부서^부서코드^해당직원^직원ID^등록순서" colwidth="150, 80, 100, 90, 0" dataheight="23" defaultrows="0" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" style="left:108px; top:69px; width:450px; height:93px; ">
  277. <col class="text_center" ref="deptnm"/>
  278. <col class="text_center" ref="deptcd"/>
  279. <col class="text_center" ref="empnm"/>
  280. <col class="text_center" ref="empid"/>
  281. <col ref="rgstseq" visibility="hidden"/>
  282. <script type="javascript" ev:event="ondblclick">
  283. <![CDATA[
  284. var row = grd_dept.row;
  285. var s_deptnm = grd_dept.valueMatrix(row, grd_dept.colRef("deptnm"));
  286. var s_deptcd = grd_dept.valueMatrix(row, grd_dept.colRef("deptcd"));
  287. var s_prcsstat = model.getValue("/root/main/vocdata/accept/prcsstat");
  288. if ((grd_dept.row > 0) && grd_dept.isCell(event.target)){
  289. if ( s_prcsstat == "접수완료" ){
  290. if (grd_dept.row > 0){
  291. model.resetInstanceNode("/root/main/reqdata/area");
  292. model.setValue("/root/main/reqdata/area/savemode", "I");
  293. model.setValue("/root/main/reqdata/area/reqdeptnm", s_deptnm);
  294. model.setValue("/root/main/reqdata/area/reqdeptcd", s_deptcd);
  295. btn_req.disabled = false;
  296. btn_save.disabled = false;
  297. model.refresh();
  298. } else {
  299. }
  300. } else if ( s_prcsstat == "회신요청"){
  301. if (grd_dept.row > 0){
  302. model.resetInstanceNode("/root/main/reqdata/area");
  303. model.setValue("/root/main/reqdata/area/savemode", "I");
  304. model.setValue("/root/main/reqdata/area/reqdeptnm", s_deptnm);
  305. model.setValue("/root/main/reqdata/area/reqdeptcd", s_deptcd);
  306. btn_req.disabled = false;
  307. model.refresh();
  308. } else {
  309. }
  310. } else {
  311. }
  312. } else {
  313. }
  314. ]]>
  315. </script>
  316. </datagrid>
  317. <line id="line13" class="line_2" style="x1:0px; y1:186px; x2:970px; y2:186px; "/>
  318. <caption id="caption33" class="cell_1" style="left:0px; top:164px; width:105px; height:23px; text-align:center; vertical-align:middle; ">제 목</caption>
  319. <output id="ipt_AcptTitl" ref="/root/main/vocdata/accept/acpttitl" class="output_fix" style="left:108px; top:165px; width:850px; height:19px; "/>
  320. <line id="line14" class="line_3" style="x1:0px; y1:334px; x2:970px; y2:334px; "/>
  321. <caption id="caption34" class="cell_1" style="left:0px; top:188px; width:105px; height:147px; text-align:center; vertical-align:middle; ">
  322. <![CDATA[민원 내용]]>
  323. <script type="javascript" ev:event="ondblclick">
  324. <![CDATA[
  325. var s_contents = model.getValue("/root/main/vocdata/accept/acptcnts");
  326. model.setValue("/root/main/vocpopup/title", "민원 내용");
  327. model.setValue("/root/main/vocpopup/contents", s_contents);
  328. open("SPCVD00500", "", "", "", "SPCVD00500", "/root/main/vocpopup", "/root/main/vocpopup");
  329. model.setValue("/root/main/vocpopup/title", "");
  330. model.setValue("/root/main/vocpopup/contents", "");
  331. model.refresh();
  332. ]]>
  333. </script>
  334. </caption>
  335. <textarea id="tar_AcptCnts" ref="/root/main/vocdata/accept/acptcnts" scroll="vertical" editable="false" style="left:108px; top:189px; width:850px; height:143px; "/>
  336. <line id="line16" style="x1:590px; y1:189px; x2:590px; y2:332px; border-color:#c0c0c0; border-style:dotted; "/>
  337. <caption id="caption5" class="cell_1" style="left:483px; top:20px; width:105px; height:23px; text-align:center; vertical-align:middle; ">발생일자</caption>
  338. <caption id="caption6" class="cell_1" style="left:483px; top:44px; width:105px; height:23px; text-align:center; vertical-align:middle; ">접수구분</caption>
  339. <output id="cmb_AcptType" ref="/root/main/vocdata/accept/acpttype" class="output_fix" style="left:591px; top:45px; width:130px; height:19px; "/>
  340. </group>
  341. <caption id="caption15" class="search_no_b" style="left:662px; top:19px; width:48px; height:17px; ">등록자</caption>
  342. <output id="opt_fstrgstrnm" ref="/root/main/vocdata/accept/fstrgstrnm" class="output_fix" style="left:708px; top:18px; width:80px; height:19px; text-align:center; "/>
  343. <caption id="caption2" class="search_no_b" style="left:796px; top:19px; width:74px; height:17px; ">최종수정자</caption>
  344. <output id="opt_lastupdtrnm" ref="/root/main/vocdata/accept/lastupdtrnm" class="output_fix" style="left:866px; top:18px; width:80px; height:19px; text-align:center; "/>
  345. <group id="grp_reqlist" style="left:225px; top:359px; width:970px; height:155px; ">
  346. <caption id="caption21" class="tit_2" style="left:5px; top:10px; width:341px; height:14px; ">민원담당부서에서 부서 담당자에게 처리요청을 한 목록</caption>
  347. <button id="btn_delReq" class="btn2_letter9" style="left:357px; top:4px; width:119px; height:19px; ">
  348. <caption>임시저장 부서 삭제</caption>
  349. <script type="javascript" ev:event="DOMActivate">
  350. <![CDATA[
  351. var row = grd_reqlist.row;
  352. var check_acptdd = model.getValue("/root/main/vocdata/accept/acptdd") ;
  353. var check_acptseq = model.getValue("/root/main/vocdata/accept/acptseq") ;
  354. var check_rgstseq = grd_reqlist.valueMatrix(row, grd_reqlist.colRef("rgstseq"));
  355. var check_replreqdd = grd_reqlist.valueMatrix(row, grd_reqlist.colRef("replreqdd"));
  356. if ((grd_reqlist.row > 0) && (grd_reqlist.col > 1)){
  357. if (check_rgstseq == ""){
  358. messageBox("선택된 부서가 ","I004");
  359. model.SetFocus("grd_reqlist");
  360. return false;
  361. } else {
  362. if ((check_rgstseq != "") && (check_replreqdd != "")){
  363. messageBox("선택한 부서는 이미 처리요청을 하였으므로 삭제하실 수 ","I004");
  364. model.SetFocus("grd_reqlist");
  365. return false;
  366. } else {
  367. model.makeValue("/root/main/vocdeltemp/delacptdd", check_acptdd);
  368. model.makeValue("/root/main/vocdeltemp/delacptseq", check_acptseq);
  369. model.makeValue("/root/main/vocdeltemp/delrgstseq", check_rgstseq);
  370. if (submit("TXCVB00205")){
  371. messageBox("선택한 부서에 대한 임시저장내용 삭제가 ", "I002");
  372. submit("TRCVB00202");
  373. model.resetInstanceNode("/root/main/vocdeltemp");
  374. }
  375. model.refresh();
  376. }
  377. }
  378. } else {
  379. messageBox("선택된 부서가 ","I004");
  380. model.SetFocus("grd_reqlist");
  381. return false;
  382. }
  383. ]]>
  384. </script>
  385. </button>
  386. <button id="btn_reqall" class="btn5_letter9" style="left:848px; top:4px; width:119px; height:19px; ">
  387. <caption>관련 부서 요청 완료</caption>
  388. <script type="javascript" ev:event="DOMActivate">
  389. <![CDATA[
  390. if (grd_reqlist.rows > 0){
  391. for ( i = 1; i < grd_reqlist.rows; i++) {
  392. if (grd_reqlist.valueMatrix(i, grd_reqlist.colRef("replreqdd")) == ""){
  393. messageBox(i+" 번째 부서에 대하여 처리요청이 이루어지지 않아 모든 관련부서 요청완료처리를 ","E001");
  394. model.SetFocus("grd_reqlist");
  395. return false;
  396. }
  397. }
  398. var rtn = messageBox("모든 관련 담당부서에 회신요청을 완료하셨습니까? 처리요청을 완료", "S001");
  399. if(rtn == 6){
  400. if (submit("TXCVB00203")){
  401. btn_reqall.disabled = true;
  402. btn_req.disabled = true;
  403. btn_save.disabled = true;
  404. btn_clear.disabled = true;
  405. model.SetValue("/root/main/vocdata/accept/prcsstat", "회신요청")
  406. messageBox("이 접수 내용의 전체 진행상태가 회신요청으로 수정", "I001");
  407. model.refresh();
  408. }
  409. }
  410. } else {
  411. messageBox("요청 부서가 없는 경우에는 관련부서 요청완료처리를 ","E001");
  412. return false;
  413. }
  414. model.refresh();
  415. ]]>
  416. </script>
  417. </button>
  418. <line id="line1" class="line_1" style="x1:0px; y1:25px; x2:970px; y2:25px; "/>
  419. <datagrid id="grd_reqlist" nodeset="/root/main/reqdata/list/reqlist" allowselection="false" caption="담당부서^담당직원^진행상태^접수일자^회신요청일^부서확인일^결재요청일^부서장결재^부서종결^재요청^부서코드^직원ID^의견^등록순서^접수순서" colsep="^" colwidth="150, 85, 90, 90, 90, 90, 90, 90, 75, 60, 0, 0, 0, 0, 0" dataheight="23" defaultrows="0" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" style="left:0px; top:30px; width:970px; height:125px; ">
  420. <col class="text_center" ref="deptnm"/>
  421. <col class="text_center" ref="empnm"/>
  422. <col class="text_center" ref="prcsstat"/>
  423. <col class="text_center" ref="acptdd" format="yyyy-mm-dd"/>
  424. <col class="text_center" ref="replreqdd" format="yyyy-mm-dd"/>
  425. <col class="text_center" ref="replacptdd" format="yyyy-mm-dd"/>
  426. <col class="text_center" ref="innraprvreqdd" format="yyyy-mm-dd"/>
  427. <col class="text_center" ref="innraprvdd" format="yyyy-mm-dd"/>
  428. <col class="text_center" ref="endreqyn"/>
  429. <col class="text_center" ref="rereqyn"/>
  430. <col class="text_center" ref="deptcd" visibility="hidden"/>
  431. <col class="text_center" ref="empid" visibility="hidden"/>
  432. <col ref="csteamreqcnts" visibility="hidden"/>
  433. <col ref="rgstseq" visibility="hidden"/>
  434. <col ref="acptseq" visibility="hidden"/>
  435. <script type="javascript" ev:event="ondblclick">
  436. <![CDATA[
  437. var row = grd_reqlist.row;
  438. var receive_replreqdd = grd_reqlist.valueMatrix(row, grd_reqlist.colRef("replreqdd"));
  439. var receive_deptnm = grd_reqlist.valueMatrix(row, grd_reqlist.colRef("deptnm"));
  440. var receive_deptcd = grd_reqlist.valueMatrix(row, grd_reqlist.colRef("deptcd"));
  441. var receive_empnm = grd_reqlist.valueMatrix(row, grd_reqlist.colRef("empnm"));
  442. var receive_empid = grd_reqlist.valueMatrix(row, grd_reqlist.colRef("empid"));
  443. var receive_csteamreqcnts = grd_reqlist.valueMatrix(row, grd_reqlist.colRef("csteamreqcnts"));
  444. var receive_rgstseq = grd_reqlist.valueMatrix(row, grd_reqlist.colRef("rgstseq"));
  445. var receive_prcsstat = grd_reqlist.valueMatrix(row, grd_reqlist.colRef("prcsstat"));
  446. if ((grd_reqlist.row > 0) && grd_reqlist.isCell(event.target)){
  447. model.setValue("/root/main/reqdata/area/reqreplreqdd", receive_replreqdd);
  448. model.setValue("/root/main/reqdata/area/reqdeptnm", receive_deptnm);
  449. model.setValue("/root/main/reqdata/area/reqdeptcd", receive_deptcd);
  450. model.setValue("/root/main/reqdata/area/reqempnm", receive_empnm);
  451. model.setValue("/root/main/reqdata/area/reqempid", receive_empid);
  452. model.setValue("/root/main/reqdata/area/reqcsteamreqcnts", receive_csteamreqcnts);
  453. model.setValue("/root/main/reqdata/area/reqrgstseq", receive_rgstseq);
  454. model.setValue("/root/main/reqdata/area/savemode", "U");
  455. if( receive_prcsstat != "" ) {
  456. btn_req.disabled = true;
  457. btn_save.disabled = true;
  458. } else {
  459. btn_req.disabled = false;
  460. btn_save.disabled = false;
  461. }
  462. model.refresh();
  463. } else {
  464. }
  465. ]]>
  466. </script>
  467. </datagrid>
  468. </group>
  469. <group id="grp_req" style="left:225px; top:516px; width:970px; height:235px; ">
  470. <caption id="caption11" class="tit_2" style="left:5px; top:10px; width:344px; height:13px; ">민원담당부서에서 부서 담당자에게 처리요청을 한 내용</caption>
  471. <line id="line5" class="line_1" style="x1:0px; y1:25px; x2:970px; y2:25px; "/>
  472. <line id="line6" class="line_2" style="x1:0px; y1:51px; x2:970px; y2:51px; "/>
  473. <caption id="caption12" class="cell_1" style="left:0px; top:30px; width:105px; height:23px; text-align:center; vertical-align:middle; ">요청일자</caption>
  474. <output id="opt_ReplReq" ref="/root/main/reqdata/area/reqreplreqdd" class="output_fix" format="yyyy-mm-dd" appearance="output" style="left:108px; top:31px; width:130px; height:19px; "/>
  475. <caption id="caption13" class="cell_1" style="left:241px; top:30px; width:105px; height:23px; text-align:center; vertical-align:middle; ">담당부서</caption>
  476. <caption id="caption14" class="cell_1" style="left:597px; top:30px; width:105px; height:23px; text-align:center; vertical-align:middle; ">담당직원</caption>
  477. <button id="btnsearch_dept" class="icon_search" style="left:473px; top:33px; width:16px; height:16px; ">
  478. <caption/>
  479. <script type="javascript" ev:event="DOMActivate">
  480. <![CDATA[
  481. var search_term1 = model.getValue("/root/main/reqdata/area/reqdeptcd");
  482. var search_term2 = model.getValue("/root/main/reqdata/area/reqdeptnm");
  483. if (( search_term2 != "") && ( search_term1 == "")) {
  484. var search_condition = "deptnm";
  485. var search_term = search_term2;
  486. } else if ( search_term1 != "") {
  487. var search_condition = "deptcd";
  488. var search_term = search_term1;
  489. } else {
  490. var search_condition = "deptnm";
  491. var search_term = "";
  492. }
  493. var receive_deptcd_path = "/root/main/reqdata/area/reqdeptcd";
  494. var receive_deptnm_path = "/root/main/reqdata/area/reqdeptnm";
  495. setParameter("search_condition", search_condition);
  496. setParameter("search_term", search_term);
  497. setParameter("receive_deptcd_path", receive_deptcd_path);
  498. setParameter("receive_deptnm_path", receive_deptnm_path);
  499. modal("SPCCM00300")
  500. clearParameter("search_condition");
  501. clearParameter("search_term");
  502. clearParameter("receive_deptcd_path");
  503. clearParameter("receive_deptnm_path");
  504. // zbcfOpenInstDeptCodeList(search_condition, search_term, receive_deptcd_path, receive_deptnm_path);
  505. ]]>
  506. </script>
  507. </button>
  508. <input id="ipt_DeptNm" ref="/root/main/reqdata/area/reqdeptnm" class="input_essential" style="left:349px; top:31px; width:120px; height:19px; ">
  509. <script type="javascript" ev:event="onkeyup">
  510. <![CDATA[
  511. inputEnterKey("btnsearch_dept", "DOMActivate");
  512. ]]>
  513. </script>
  514. </input>
  515. <output id="ipt_DeptCd" ref="/root/main/reqdata/area/reqdeptcd" class="output_fix" style="left:492px; top:31px; width:100px; height:19px; "/>
  516. <button id="btnsearch_emp" class="icon_search" style="left:829px; top:32px; width:16px; height:16px; ">
  517. <caption/>
  518. <script type="javascript" ev:event="DOMActivate">
  519. <![CDATA[
  520. if ( model.getValue("/root/main/reqdata/area/reqempid") != "" ){
  521. var search_condition = "empid";
  522. var search_term = model.getValue("/root/main/reqdata/area/reqempid");
  523. } else if ( model.getValue("/root/main/reqdata/area/reqdeptcd") != "" ){
  524. var search_condition = "deptcd";
  525. var search_term = model.getValue("/root/main/reqdata/area/reqdeptcd");
  526. } else {
  527. var search_condition = "empnm";
  528. var search_term = model.getValue("/root/main/reqdata/area/reqempid");
  529. }
  530. // var search_condition = "empid";
  531. // var search_term = model.getValue("/root/main/vocdata/deptview/area/EmpID");
  532. var receive_empid_path = "/root/main/reqdata/area/reqempid";
  533. var receive_empnm_path = "/root/main/reqdata/area/reqempnm";
  534. var receive_deptcd_path = "/root/main/reqdata/area/reqdeptcd";
  535. var receive_deptnm_path = "/root/main/reqdata/area/reqdeptnm";
  536. setParameter("search_condition", search_condition);
  537. setParameter("search_term", search_term);
  538. setParameter("receive_empid_path", receive_empid_path);
  539. setParameter("receive_empnm_path", receive_empnm_path);
  540. setParameter("receive_deptcd_path", receive_deptcd_path);
  541. setParameter("receive_deptnm_path", receive_deptnm_path);
  542. modal("SPCCM00400")
  543. clearParameter("search_condition");
  544. clearParameter("search_term");
  545. clearParameter("receive_empid_path");
  546. clearParameter("receive_empnm_path");
  547. clearParameter("receive_deptcd_path");
  548. clearParameter("receive_deptnm_path");
  549. ]]>
  550. </script>
  551. </button>
  552. <input id="ipt_EmpNm" ref="/root/main/reqdata/area/reqempnm" class="input_essential" editable="false" style="left:705px; top:31px; width:120px; height:19px; ">
  553. <script type="javascript" ev:event="onkeyup">
  554. <![CDATA[
  555. inputEnterKey("btnsearch_emp", "DOMActivate");
  556. ]]>
  557. </script>
  558. </input>
  559. <output id="ipt_EmpId" ref="/root/main/reqdata/area/reqempid" class="output_fix" style="left:848px; top:31px; width:100px; height:19px; "/>
  560. <line id="line11" class="line_3" style="x1:0px; y1:233px; x2:970px; y2:233px; "/>
  561. <caption id="caption19" class="cell_1" style="left:0px; top:54px; width:105px; height:180px; text-align:center; vertical-align:middle; ">
  562. <![CDATA[민원담당부서
  563. 처리요청의견]]>
  564. <script type="javascript" ev:event="ondblclick">
  565. <![CDATA[
  566. var s_contents = model.getValue("/root/main/reqdata/area/reqcsteamreqcnts");
  567. var receive_path = "/root/main/reqdata/area/reqcsteamreqcnts";
  568. model.setValue("/root/main/vocpopup/title", "민원담당부서\n처리요청의견");
  569. model.setValue("/root/main/vocpopup/contents", s_contents);
  570. model.makeValue("/root/main/vocpopup/inputmode", "i");
  571. model.makeValue("/root/main/vocpopup/receive_path", receive_path);
  572. open("SPCVD00500", "", "", "", "SPCVD00500", "/root/main/vocpopup", "/root/main/vocpopup");
  573. model.setValue("/root/main/vocpopup/title", "");
  574. model.setValue("/root/main/vocpopup/contents", "");
  575. model.setValue("/root/main/vocpopup/inputmode", "");
  576. model.setValue("/root/main/vocpopup/receive_path", "");
  577. model.refresh();
  578. ]]>
  579. </script>
  580. </caption>
  581. <textarea id="tar_Cnts" ref="/root/main/reqdata/area/reqcsteamreqcnts" navindex="1" scroll="vertical" style="left:108px; top:54px; width:850px; height:177px; "/>
  582. <line id="line17" style="x1:590px; y1:54px; x2:590px; y2:231px; border-color:#c0c0c0; border-style:dotted; "/>
  583. </group>
  584. <group id="grp_btn" scroll="auto" style="left:225px; top:751px; width:970px; height:27px; ">
  585. <button id="btn_list" class="btn6_letter2" style="left:0px; top:5px; width:56px; height:22px; ">
  586. <caption>목록</caption>
  587. <script type="javascript" ev:event="DOMActivate">
  588. <![CDATA[
  589. navigate("SMCVB00100", "", "", "", "SMCVB00100", "/root/main/temp", "/root/send");
  590. ]]>
  591. </script>
  592. </button>
  593. <caption id="caption31" class="hand" style="left:100px; top:7px; width:520px; height:17px; ">내용 가운데 있는 점선(- - -)은 보고서 출력시 다음 줄로 넘어가는 기준선입니다.</caption>
  594. <button id="btn_save" class="btn4_letter4" style="left:738px; top:5px; width:80px; height:22px; ">
  595. <caption>임시저장</caption>
  596. <script type="javascript" ev:event="DOMActivate">
  597. <![CDATA[
  598. var check_acptdd = model.getValue("/root/main/vocdata/accept/acptdd") ;
  599. var check_acptseq = model.getValue("/root/main/vocdata/accept/acptseq") ;
  600. var check_reqdeptcd = model.getValue("/root/main/reqdata/area/reqdeptcd") ;
  601. var check_savemode = model.getValue("/root/main/reqdata/area/savemode");
  602. if (isRequiredControls("ipt_DeptNm", "ipt_DeptCd", "ipt_EmpNm", "ipt_EmpId", "tar_Cnts") ){
  603. if (grd_reqlist.rows > 1){
  604. if (check_savemode != "U"){
  605. for ( i = 1; i < grd_reqlist.rows; i++) {
  606. if ((grd_reqlist.valueMatrix(i, grd_reqlist.colRef("deptcd")) == check_reqdeptcd) && (grd_reqlist.valueMatrix(i, grd_reqlist.colRef("rereqyn")) != "Y")){
  607. messageBox(i+" 번째 요청 부서와 같은 부서에 대하여 임시저장을 ","E001");
  608. model.SetFocus("ipt_DeptNm");
  609. return false;
  610. } else if ((grd_reqlist.valueMatrix(i, grd_reqlist.colRef("deptcd")) == check_reqdeptcd) && (grd_reqlist.valueMatrix(i, grd_reqlist.colRef("rereqyn")) == "Y") && (grd_reqlist.valueMatrix(i, grd_reqlist.colRef("endreqyn")) != "Y")){
  611. messageBox(i+" 번째 재요청 부서와 같은 부서에 대하여 임시저장을 ","E001");
  612. model.SetFocus("ipt_DeptNm");
  613. return false;
  614. }
  615. }
  616. }
  617. model.setValue("/root/main/reqdata/area/reqacptdd", check_acptdd);
  618. model.setValue("/root/main/reqdata/area/reqacptseq", check_acptseq);
  619. if (submit("TXCVB00201")){
  620. messageBox("처리요청 내용의 임시 저장이 ", "I002");
  621. submit("TRCVB00202");
  622. model.resetInstanceNode("/root/main/reqdata/area");
  623. model.setValue("/root/main/reqdata/area/savemode", "I");
  624. }
  625. } else {
  626. model.setValue("/root/main/reqdata/area/reqacptdd", check_acptdd);
  627. model.setValue("/root/main/reqdata/area/reqacptseq", check_acptseq);
  628. if (submit("TXCVB00201")){
  629. messageBox("처리요청 내용의 임시 저장이 ", "I002");
  630. submit("TRCVB00202");
  631. model.resetInstanceNode("/root/main/reqdata/area");
  632. model.setValue("/root/main/reqdata/area/savemode", "I");
  633. }
  634. }
  635. model.refresh();
  636. }
  637. ]]>
  638. </script>
  639. </button>
  640. <button id="btn_req" class="btn4_letter4" style="left:820px; top:5px; width:80px; height:22px; ">
  641. <caption>처리요청</caption>
  642. <script type="javascript" ev:event="DOMActivate">
  643. <![CDATA[
  644. var check_acptdd = model.getValue("/root/main/vocdata/accept/acptdd") ;
  645. var check_acptseq = model.getValue("/root/main/vocdata/accept/acptseq") ;
  646. var check_reqdeptcd = model.getValue("/root/main/reqdata/area/reqdeptcd") ;
  647. var check_savemode = model.getValue("/root/main/reqdata/area/savemode");
  648. if (isRequiredControls("ipt_DeptNm", "ipt_DeptCd", "ipt_EmpNm", "ipt_EmpId", "tar_Cnts") ){
  649. if (grd_reqlist.rows > 1){
  650. if (check_savemode != "U"){
  651. for ( i = 1; i < grd_reqlist.rows; i++) {
  652. if ((grd_reqlist.valueMatrix(i, grd_reqlist.colRef("deptcd")) == check_reqdeptcd) && (grd_reqlist.valueMatrix(i, grd_reqlist.colRef("rereqyn")) != "Y")){
  653. messageBox(i+" 번째 요청 부서와 같은 부서에 대하여 처리요청을 다시 ","E001");
  654. model.SetFocus("ipt_DeptNm");
  655. return false;
  656. } else if ((grd_reqlist.valueMatrix(i, grd_reqlist.colRef("deptcd")) == check_reqdeptcd) && (grd_reqlist.valueMatrix(i, grd_reqlist.colRef("rereqyn")) == "Y") && (grd_reqlist.valueMatrix(i, grd_reqlist.colRef("endreqyn")) != "Y")){
  657. messageBox(i+" 번째 재요청 부서와 같은 부서에 대하여 처리요청을 다시 ","E001");
  658. model.SetFocus("ipt_DeptNm");
  659. return false;
  660. }
  661. }
  662. }
  663. model.setValue("/root/main/reqdata/area/reqacptdd", check_acptdd);
  664. model.setValue("/root/main/reqdata/area/reqacptseq", check_acptseq);
  665. if (submit("TXCVB00202")){
  666. messageBox("담당부서에 대한 처리요청이 ", "I002");
  667. submit("TRCVB00202");
  668. model.resetInstanceNode("/root/main/reqdata/area");
  669. model.setValue("/root/main/reqdata/area/savemode", "I");
  670. btn_reqall.disabled = false;
  671. }
  672. } else {
  673. model.setValue("/root/main/reqdata/area/reqacptdd", check_acptdd);
  674. model.setValue("/root/main/reqdata/area/reqacptseq", check_acptseq);
  675. if (submit("TXCVB00202")){
  676. messageBox("담당부서에 대한 처리요청이 ", "I002");
  677. submit("TRCVB00202");
  678. model.resetInstanceNode("/root/main/reqdata/area");
  679. model.setValue("/root/main/reqdata/area/savemode", "I");
  680. btn_reqall.disabled = false;
  681. }
  682. }
  683. model.refresh();
  684. }
  685. ]]>
  686. </script>
  687. </button>
  688. <button id="btn_clear" class="btn4_letter3" style="left:902px; top:5px; width:68px; height:22px; ">
  689. <caption>초기화</caption>
  690. <script type="javascript" ev:event="DOMActivate">
  691. <![CDATA[
  692. model.resetInstanceNode("/root/main/reqdata/area");
  693. model.setValue("/root/main/reqdata/area/savemode", "I");
  694. btn_req.disabled = false;
  695. btn_save.disabled = false;
  696. model.refresh();
  697. ]]>
  698. </script>
  699. </button>
  700. </group>
  701. <import id="import1" overflow="hidden" instancetype="merge" src="./SSCVA00100_LeftTree.xrw" style="left:0px; top:23px; width:215px; height:744px; "/>
  702. <shape id="rndrctlgnd" class="roundrect_legend" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:24px; top:529px; width:167px; height:200px; background-color:#f2f6ff; border-color:#c8c0fd; "/>
  703. <caption id="caption50" class="hand" style="left:35px; top:540px; width:144px; height:30px; ">VOC 진행 프로세스</caption>
  704. <caption id="caption51" style="left:60px; top:574px; width:115px; height:20px; font-weight:bold; vertical-align:top; line-spacing:7; ">
  705. <![CDATA[(1) 접수완료]]>
  706. <hint>
  707. <![CDATA[
  708. 민원담당부서에서 여러 경로를 통해 접수된 VOC를 민원인
  709. 정보와 함께 등록을 하게 되면【접수완료】상태가 된다.
  710. ]]>
  711. </hint>
  712. </caption>
  713. <caption id="caption52" style="left:60px; top:594px; width:115px; height:20px; font-weight:bold; vertical-align:top; line-spacing:7; ">
  714. <![CDATA[(2) 회신요청]]>
  715. <hint>
  716. <![CDATA[
  717. 민원담당부서 담당자가 "접수완료"된 VOC를 선택하여 담당부서를 정해
  718. 처리 요청을 하게 되면【회신요청】상태가 된다. 이 때 담당부서가 2개
  719. 이상인 경우에 담당부서를 계속해서 지정하여 처리 요청을 할 수 있다.
  720. ]]>
  721. </hint>
  722. </caption>
  723. <caption id="caption53" style="left:60px; top:614px; width:115px; height:20px; font-weight:bold; vertical-align:top; line-spacing:7; ">
  724. <![CDATA[(3) 부서처리중]]>
  725. <hint>
  726. <![CDATA[
  727. 각 부서 담당자가 "회신요청"된 VOC를 선택하여 그 내용을 읽고 『부서 접수 확인』
  728. 버튼을 눌러 해당 VOC 처리를 시작했음을 알리게 되면【부서처리중】상태가 된다.
  729. ]]>
  730. </hint>
  731. </caption>
  732. <caption id="caption54" style="left:60px; top:634px; width:115px; height:21px; font-weight:bold; vertical-align:top; line-spacing:7; ">
  733. <![CDATA[(4) 부서장결재]]>
  734. <hint>
  735. <![CDATA[
  736. 각 부서 담당자가 "부서처리중"인 VOC에 대하여 실제 업무처리를 하고
  737. 부서장에게 결재 요청을 하고 난 뒤 부서장이 의견을 적고 결재 버튼을
  738. 눌러 민원담당부서 담당자에게 회신하게 되면【부서장결재】상태가 된다.
  739. ]]>
  740. </hint>
  741. </caption>
  742. <caption id="caption55" style="left:60px; top:654px; width:115px; height:20px; font-weight:bold; vertical-align:top; line-spacing:7; ">
  743. <![CDATA[(5) 처리완료]]>
  744. <hint>
  745. <![CDATA[
  746. 민원담당부서 담당자가 "부서장결재"인 VOC에 대하여 부서의 처리결과를 판단하여
  747. 그 결과가 미진하거나 또 다른 부서와 관련된다고 판단되면 "재요청 처리"를 할 수 있고,
  748. 제대로 처리되었다고 판단되면 원인분석 및 개선활동을 적고 이후에도 지속적으로 관리
  749. 하여야 하는지 여부를 체크하고 완료처리 버튼을 누르게 되면【처리완료】상태가 된다.
  750. ]]>
  751. </hint>
  752. </caption>
  753. <caption id="caption56" style="left:60px; top:676px; width:115px; height:20px; vertical-align:top; line-spacing:7; ">
  754. <![CDATA[ * 접수취소]]>
  755. <hint>
  756. <![CDATA[
  757. "접수완료"된 VOC는 "회신 요청"을 하기 전에 "접수 취소"를 할 수 있다. 하지만 이미
  758. 프로세스가 진행되어 담당부서로 요청이 들어간 경우에는 접수 취소를 할 수 없게 된다.
  759. ]]>
  760. </hint>
  761. </caption>
  762. <caption id="caption57" style="left:60px; top:696px; width:115px; height:20px; vertical-align:top; line-spacing:7; ">
  763. <![CDATA[ * 자체처리]]>
  764. <hint>
  765. <![CDATA[
  766. "접수완료"된 VOC는 "회신 요청"을 하기 전에 민원담당부서에서 자체적으로 완료처리를 할 수 있다.
  767. 하지만 이미 프로세스가 진행되어 담당부서로 요청이 들어간 경우에는 자체처리를 할 수 없게 된다.
  768. ]]>
  769. </hint>
  770. </caption>
  771. </xhtml:body>
  772. </xhtml:html>