SMMMI00800.xjs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[
  3. /*function list
  4. * fInitialize_SMMMI00800 : 최초 화면초기화 함수
  5. * fInitialize_SMMMI00800_L : 좌측 당직코드 정보 초기화 함수
  6. * fInitialize_SMMMI00800_R : 우측 당직코드 정보 초기화 함수
  7. * fRightDisabled : PK값이 들어가있는 오브젝트 활성여부 체크 함수
  8. */
  9. function fInitialize_SMMMI00800(){
  10. lf_mmbfGetDeptCodeComboList(ds_init_orddept, "A"); // 진료과 콤보
  11. lf_mmbfGetDeptCodeComboList(ds_init_workdept, "I"); // 근무부서 콤보
  12. frmf_addComboItem("grd_right_top.combo00", "선택", "-");
  13. var oParam = {};
  14. oParam.id = "TRMMI00802";
  15. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  16. oParam.method = "reqGetWorkAuthDept";
  17. oParam.inds = "req=ds_send_searchinfo";
  18. oParam.outds = "ds_init_authdept=result";
  19. oParam.async = false;
  20. oParam.callback = "cf_TRMMI00802";
  21. tranf_submit(oParam); // 관리부서 /root/init/authdept 설정
  22. ds_send_searchinfo.setColumn(0,"authdeptcd",sysf_getUserInfo("dutplcecd"));
  23. fInitialize_SMMMI00800_L();
  24. fInitialize_SMMMI00800_R();
  25. fGetWorkinfolist();
  26. fRightDisabled(true);
  27. }
  28. function cf_TRMMI00802(sSvcId, nErrorCode, sErrorMsg) {
  29. if(nErrorCode < 0) return;
  30. }
  31. function fInitialize_SMMMI00800_L(){
  32. fRightDisabled(true);
  33. ds_workcdlist.clearData();
  34. ds_send_searchinfo.setColumn(0,"basedd", utlf_getCurrentDate());
  35. ds_send_searchinfo.setColumn(0,"useynflag","");
  36. }
  37. function fInitialize_SMMMI00800_R(){
  38. fRightDisabled(true);
  39. ds_workinfo.clearData();
  40. ds_dutylist.clearData();
  41. ds_appdeptlist.clearData();
  42. ds_appuserlist.clearData();
  43. }
  44. function fInitNewWorkCd() {
  45. ds_workinfo.addRow();
  46. ds_workinfo.setColumn(0,"gubun", "I");
  47. ds_workinfo.setColumn(0,"workcd", "");
  48. ds_workinfo.setColumn(0,"worknm", "");
  49. ds_workinfo.setColumn(0,"fromdd", utlf_getCurrentDate());
  50. ds_workinfo.setColumn(0,"todd", "99991231");
  51. ds_workinfo.setColumn(0,"worktype", "D");
  52. ds_workinfo.setColumn(0,"workdeptcd", "-");
  53. ds_workinfo.setColumn(0,"useyn", "Y");
  54. ds_workinfo.setColumn(0,"rmk", "");
  55. ds_workinfo.setColumn(0,"authdeptcd", "");
  56. ds_workinfo.setColumn(0,"authdeptnm", "");
  57. }
  58. function fRightDisabled(flag){
  59. if(flag){
  60. grd_right_top.ipt_workcd.enable = false;
  61. }else{
  62. grd_right_top.ipt_workcd.enable = true;
  63. }
  64. }
  65. function fWorkCdEmptyCheck(){
  66. if(utlf_isNull(ds_workinfo.getColumn(0,"authdeptcd"))){
  67. ds_workinfo.setColumn(0,"authdeptcd",sysf_getUserInfo("dutplcecd"));
  68. }
  69. var sWorkCd = ds_workinfo.getColumn(0,"workcd");
  70. if(utlf_isNull(sWorkCd) || sWorkCd.length != 3){
  71. sysf_messageBox("당직코드는 3자리로 입력 하셔야 합니다.","E999");
  72. return false;
  73. }
  74. if(utlf_isNull(ds_workinfo.getColumn(0,"worknm"))){
  75. sysf_messageBox("당직명을","C001");
  76. return false;
  77. }
  78. if(ds_workinfo.getColumn(0,"worktype") == "U" && ds_workinfo.getColumn(0,"workdeptcd") == "-"){
  79. sysf_messageBox("근무지별 당직인 경우 근무부서를 선택 하셔야 합니다.","E999");
  80. return false;
  81. }
  82. return true;
  83. }
  84. function fWorkDutyCheck() {
  85. var sDutyCd = "";
  86. var sDutyNm = "";
  87. var sNextYn = "";
  88. var sFromTm = "";
  89. var sToTm = "";
  90. for (var i = 0; i < ds_dutylist.rowcount; i++){
  91. sDutyCd = ds_dutylist.getColumn(i, "dutycd");
  92. sDutyNm = ds_dutylist.getColumn(i, "dutynm");
  93. sNextYn = ds_dutylist.getColumn(i, "nextyn");
  94. sFromTm = ds_dutylist.getColumn(i, "fromtm");
  95. sToTm = ds_dutylist.getColumn(i, "totm");
  96. if(utlf_isNull(sDutyCd)){
  97. sysf_messageBox("근무코드를","C001");
  98. return false;
  99. }
  100. if(utlf_isNull(sDutyNm)){
  101. sysf_messageBox("근무명을","C001");
  102. return false;
  103. }
  104. if(sNextYn == "N") { // 당일
  105. if(sFromTm >= sToTm) {
  106. sysf_messageBox("당일인 경우 시작시간이 종료시간 이후로 입력 할 수 없습니다.","E999");
  107. return false;
  108. }
  109. } else { // 익일
  110. if(sFromTm <= sToTm) {
  111. sysf_messageBox("익일인 경우 시작시간이 종료시간 이전으로 입력 할 수 없습니다.","E999");
  112. return false;
  113. }
  114. }
  115. }
  116. return true;
  117. }
  118. function fSaveWorkCdinfo(){
  119. if(!fWorkCdEmptyCheck()) { return; }
  120. dsf_createDs("ds_send_appdept");
  121. var oDsUpdate = grdf_getGridUpdateData(grd_right_top.grd_appdept);
  122. grdf_setStatusColumn(oDsUpdate, "state");
  123. ds_send_appdept.copyData(oDsUpdate, true);
  124. dsf_createDs("ds_send_appuser");
  125. var oDsUpdate = grdf_getGridUpdateData(grd_right_top.grd_appuser);
  126. grdf_setStatusColumn(oDsUpdate, "state");
  127. ds_send_appuser.copyData(oDsUpdate, true);
  128. if(!fWorkDutyCheck()) { return; }
  129. dsf_createDs("ds_send_duty");
  130. var oDsUpdate = grdf_getGridUpdateData(grd_right_top.grd_dutylist);
  131. grdf_setStatusColumn(oDsUpdate, "state");
  132. ds_send_duty.copyData(oDsUpdate, true);
  133. dsf_createDs("ds_result");
  134. var oParam = {};
  135. oParam.id = "TXMMI00800";
  136. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  137. oParam.method = "reqExeWorkCdInfo";
  138. oParam.inds = "workinfo=ds_workinfo appdept=ds_send_appdept appuser=ds_send_appuser dutyinfo=ds_send_duty";
  139. oParam.outds = "ds_result=result";
  140. oParam.async = false;
  141. oParam.callback = "cf_TXMMI00800";
  142. tranf_submit(oParam);
  143. if(arErrorCode.pop("TXMMI00800") > -1){
  144. fInitialize_SMMMI00800_R();
  145. fGetWorkinfolist();
  146. sysf_messageBox("저장 되었습니다.","I999");
  147. } else {
  148. sysf_messageBox("저장에 실패 하였습니다.","I999");
  149. }
  150. }
  151. function cf_TXMMI00800(sSvcId, nErrorCode, sErrorMsg) {
  152. arErrorCode.push(sSvcId, nErrorCode);
  153. }
  154. function fGetWorkinfoDetail(){
  155. var currow = ds_workcdlist.rowposition;
  156. ds_send_reqdata.clear();
  157. dsf_copyColInfo(ds_send_reqdata,ds_workcdlist);
  158. var newrow = ds_send_reqdata.addRow();
  159. ds_send_reqdata.copyRow(newrow,ds_workcdlist,currow);
  160. ds_send_reqdata.addColumn("flag","string");
  161. ds_send_reqdata.setColumn(0,"flag","detail");
  162. ds_send_reqdata.addColumn("basedd","string");
  163. ds_send_reqdata.setColumn(0,"basedd",ds_send_searchinfo.getColumn(0,"basedd"));
  164. //sysf_trace(ds_send_reqdata.saveXML());
  165. ds_workinfo.clearData();
  166. ds_dutylist.clearData();
  167. ds_appdeptlist.clearData();
  168. ds_appuserlist.clearData();
  169. var oParam = {};
  170. oParam.id = "TRMMI00801";
  171. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  172. oParam.method = "reqGetWorkCdinfo";
  173. oParam.inds = "req=ds_send_reqdata";
  174. oParam.outds = "ds_workinfo=result ds_dutylist=excodeinfo ds_appdeptlist=appdept ds_appuserlist=appuser ds_dutylist=dutylist";
  175. oParam.async = false;
  176. oParam.callback = "cf_TRMMI00801";
  177. tranf_submit(oParam);
  178. if(arErrorCode.pop("TRMMI00801") > -1){
  179. var sAuthDeptCd = ds_workinfo.getColumn(0,"authdeptcd");
  180. if(sysf_getUserInfo("dutplcecd") != sAuthDeptCd && sysf_getUserInfo("userid") != "EMR"){
  181. grd_righr_bottom.btn_save.enable = false;
  182. }else{
  183. grd_righr_bottom.btn_save.enable = true;
  184. }
  185. fRightDisabled(true);
  186. }
  187. }
  188. function cf_TRMMI00801(sSvcId, nErrorCode, sErrorMsg) {
  189. arErrorCode.push(sSvcId, nErrorCode);
  190. }
  191. function fGetWorkinfolist(){
  192. ds_send_searchinfo.setColumn(0,"flag","list");
  193. var oParam = {};
  194. oParam.id = "TRMMI00800";
  195. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  196. oParam.method = "reqGetWorkCdinfo";
  197. oParam.inds = "req=ds_send_searchinfo";
  198. oParam.outds = "ds_workcdlist=result";
  199. oParam.async = false;
  200. oParam.callback = "cf_TRMMI00800";
  201. tranf_submit(oParam);
  202. if(arErrorCode.pop("TRMMI00800") > -1){
  203. ds_objectinfo_user.setColumn(0,"orddrid","");
  204. ds_objectinfo_user.setColumn(0,"orddept","");
  205. ds_objectinfo_dept.setColumn(0,"orddept","");
  206. }
  207. }
  208. function cf_TRMMI00800(sSvcId, nErrorCode, sErrorMsg) {
  209. arErrorCode.push(sSvcId, nErrorCode);
  210. }
  211. /*
  212. * param = D -> 부서 U -> 사용자 T -> 근무
  213. */
  214. function fGridAdd(datagrid:Dataset, sFlag){
  215. var sWorkCd = "";
  216. var sAppId = "";
  217. var sAppIdNm = "";
  218. var msg = "";
  219. var nRow = 0;
  220. sWorkCd = ds_workinfo.getColumn(0,"workcd");
  221. if(utlf_isNull(sWorkCd)) {
  222. sysf_messageBox("당직 정보가 없습니다.","E999");
  223. return;
  224. }
  225. if(sFlag == "D" || sFlag == "U") {
  226. if(sFlag == "D"){
  227. sAppId = ds_objectinfo_dept.getColumn(0,"orddept");
  228. sAppIdNm = ds_init_orddept.lookup("deptcd", sAppId, "depthngnm");
  229. } else if(sFlag == "U"){
  230. sAppId = ds_objectinfo_user.getColumn(0,"orddrid");
  231. sAppIdNm = ds_init_userlist.lookup("userid", sAppId ,"usernm");
  232. }
  233. if(!utlf_isNull(sAppId)){
  234. if(fCheckDup(sAppId, datagrid)){
  235. if(sFlag == "D"){
  236. msg = "해당 부서는";
  237. } else if(sFlag == "U"){
  238. msg = "해당 사용자는";
  239. }
  240. sysf_messageBox(msg,"E006");
  241. return;
  242. }
  243. nRow = datagrid.addRow();
  244. datagrid.setColumn(nRow,"workcd", ds_workinfo.getColumn(0,"workcd"));
  245. datagrid.setColumn(nRow,"appno", "0");
  246. datagrid.setColumn(nRow,"apptype", sFlag);
  247. datagrid.setColumn(nRow,"appid", sAppId);
  248. datagrid.setColumn(nRow,"appidnm", sAppIdNm);
  249. datagrid.setColumn(nRow,"fromdd", utlf_getCurrentDate());
  250. datagrid.setColumn(nRow,"todd", "99991231");
  251. ds_objectinfo_dept.setColumn(0,"orddept","");
  252. ds_objectinfo_user.setColumn(0,"orddrid","");
  253. }
  254. } else if (sFlag == "T") {
  255. nRow = datagrid.addRow();
  256. datagrid.setColumn(nRow,"workcd", ds_workinfo.getColumn(0,"workcd"));
  257. datagrid.setColumn(nRow,"dutyno", "0");
  258. datagrid.setColumn(nRow,"dutycd", "");
  259. datagrid.setColumn(nRow,"dutynm", "");
  260. datagrid.setColumn(nRow,"maxcnt", "1");
  261. datagrid.setColumn(nRow,"fromtm", "0000");
  262. datagrid.setColumn(nRow,"totm", "0000");
  263. datagrid.setColumn(nRow,"nextyn", "N");
  264. datagrid.setColumn(nRow,"holigubun", "S");
  265. datagrid.setColumn(nRow,"weekpay", "0");
  266. datagrid.setColumn(nRow,"holipay", "0");
  267. datagrid.setColumn(nRow,"fromdd", utlf_getCurrentDate());
  268. datagrid.setColumn(nRow,"todd", "99991231");
  269. } else {
  270. sysf_messageBox("추가 할 항목을 아래에서 선택 하세요.", "I999");
  271. return;
  272. }
  273. }
  274. function fGridDel(datagrid:Dataset){
  275. var sNodeSet = "";
  276. var nRow = datagrid.rowposition;
  277. var nStatus = null;
  278. if( nRow < 0 ){
  279. alert("삭제할 항목을 선택해주십시오.");
  280. return;
  281. }
  282. nStatus = datagrid.getRowType(nRow);
  283. datagrid.updatecontrol = false;
  284. if(nStatus == 1) { // 기존데이터
  285. datagrid.setRowType(nRow, 8);
  286. } else if (nStatus == 2) { // 신규데이터
  287. datagrid.deleteRow(nRow);
  288. } else if (nStatus == 8) { // 삭제데이터
  289. datagrid.setRowType(nRow,1);
  290. }
  291. datagrid.updatecontrol = true;
  292. }
  293. function fCheckDup(sValue, objds:Dataset){
  294. var nCnt = objds.rowcount;
  295. var bExist = false;
  296. for(i=0; i< nCnt; i++){
  297. if(sValue == objds.getColumn(i,"appid")){
  298. bExist = true;
  299. }
  300. }
  301. return bExist;
  302. }
  303. function fCompareDate(){
  304. var fromdd = ds_workinfo.getColumn(0,"fromdd");
  305. var todd = ds_workinfo.getColumn(0,"todd");
  306. if(!utlf_isNull(fromdd) && !utlf_isNull(todd)){
  307. if(todd < fromdd){
  308. sysf_messageBox("시작일자가 종료일자보다 빠를 수","I004");
  309. return;
  310. }
  311. }
  312. }
  313. ]]></Script>