SMMNA01600.js 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  1. /***********************************************************************************************************************************************
  2. * create date : 2007.12.26
  3. * author : dhkim
  4. * file name : SMMNA01600.js
  5. * desc : 혈액불출 리스트를 조회한다.
  6. ***********************************************************************************************************************************************/
  7. var xApuPath = '/root/main/apuinfo';
  8. var xCondPath = '/root/cond';
  9. var xUserInfoPath = '/root/main/userpopupinfo'; //불출,확인자팝업결과 xPath
  10. var currentDate = getCurrentDate();
  11. /*
  12. * 전체병동정보를 가져온다.
  13. */
  14. function fGetWard(){
  15. submit('TRMNA01602');
  16. }
  17. /*
  18. * 초기화
  19. */
  20. function fInit(){
  21. model.removeNodeset(xApuPath);
  22. //model.removeNodeset(xCondPath);
  23. //model.makeValue(xCondPath + '/fromdd', currentDate);
  24. //model.makeValue(xCondPath + '/todd', currentDate);
  25. //model.makeNode(xCondPath + '/wardcd');
  26. //model.makeNode(xCondPath + '/iogbn');
  27. model.setValue(xCondPath + '/fromdd', currentDate);
  28. model.setValue(xCondPath + '/todd', currentDate);
  29. fGetWard();//병동코드load
  30. addComboItem("cmb_wardcd", "전체", "ALL", "above");//콤보에 전체추가
  31. cmb_wardcd.select(0); //첫번째값 세팅
  32. rdo_iogbn.select(0);
  33. rdo_outflag.select(2);
  34. model.refresh();
  35. fSearch();
  36. }
  37. /*
  38. * 혈액불출 리스트를 조회한다.
  39. */
  40. function fSearch(){
  41. var iogbn = model.getValue(xCondPath+'/iogbn');
  42. var wardcd = model.getValue(xCondPath+'/wardcd');
  43. var fromdd = model.getValue(xCondPath+'/fromdd');
  44. var todd = model.getValue(xCondPath+'/todd');
  45. var outflag = model.getValue(xCondPath+'/outflag');
  46. var bizlrgkind = model.getValue("/root/hidden/bizlrgkind"); //20100623 서승현 추가
  47. if(iogbn == 'I' && wardcd == ''){
  48. model.setValue(xCondPath+'/wardcd', 'ALL');
  49. }
  50. if(fromdd == '')
  51. fromdd = currentDate;
  52. if(todd == '')
  53. todd = currentDate;
  54. model.removeNodeset(xApuPath + "/apulist");
  55. model.removeNodeset(xCondPath);
  56. model.makeValue(xCondPath + '/wardcd', wardcd);
  57. model.makeValue(xCondPath + '/fromdd', fromdd);
  58. model.makeValue(xCondPath + '/todd', todd);
  59. model.makeValue(xCondPath + '/iogbn', iogbn);
  60. model.makeValue(xCondPath + '/outflag', outflag);
  61. model.makeValue(xCondPath + '/bizlrgkind', bizlrgkind); //20100623 서승현 추가
  62. if(!submit('TRMNA01601')){
  63. messageBox('조회를', 'E009');
  64. }
  65. //------------(20080124)
  66. // 불출된것은 선택하지 못하게 한다.
  67. var pGrd = grd_apulist;
  68. var outflag = "";
  69. var confdd = "";
  70. if (pGrd.rows <= 1 ) return;
  71. pGrd.isReadOnly(1,1,pGrd.rows-1,pGrd.cols-1)= true;
  72. var sApuoutdd = getCurrentDate();
  73. var sApuouttm = getCurrentTime().substring(0,4);
  74. var sApuoutid = getUserId();
  75. var sApuoutnm = getUserName();
  76. for (var row=1;row<pGrd.rows;row++) {
  77. //확인일자가 입력되지 않으면 불출일자를 입력할수 있도록 한다.
  78. confdd = model.getValue("/root/main/apuinfo/apulist[" + row + "]/confdd");
  79. if (confdd == "") {
  80. pGrd.isReadOnly(row,pGrd.colRef("chk"), row,pGrd.colRef("chk")) = false;
  81. pGrd.isReadOnly(row,pGrd.colRef("apuoutdd"),row,pGrd.colRef("apuoutdd"))= false;
  82. pGrd.isReadOnly(row,pGrd.colRef("apuouttm"),row,pGrd.colRef("apuouttm"))= false;
  83. pGrd.isReadOnly(row,pGrd.colRef("apuoutnm"),row,pGrd.colRef("apuoutnm"))= false;
  84. }
  85. //----------------------(20080621)추가
  86. pGrd.isReadOnly(row,pGrd.colRef("phqty"), row,pGrd.colRef("phqty")) = false;
  87. pGrd.isReadOnly(row,pGrd.colRef("yieldqty"), row,pGrd.colRef("yieldqty")) = false;
  88. pGrd.isReadOnly(row,pGrd.colRef("outremark"), row,pGrd.colRef("outremark")) = false;
  89. //----------------------
  90. //(20080819) 주석처리
  91. // default로 불출일자, 시간, 불출자 넣지 말것, 체크할 때에만 넣을것
  92. /*
  93. outflag = model.getValue("/root/main/apuinfo/apulist[" + row + "]/outflag");
  94. if (outflag == "N") {
  95. model.setValue("/root/main/apuinfo/apulist[" + row + "]/apuoutdd" , sApuoutdd);
  96. model.setValue("/root/main/apuinfo/apulist[" + row + "]/apuouttm" , sApuouttm);
  97. model.setValue("/root/main/apuinfo/apulist[" + row + "]/apuoutid" , sApuoutid);
  98. model.setValue("/root/main/apuinfo/apulist[" + row + "]/apuoutnm" , sApuoutnm);
  99. }
  100. */
  101. }
  102. //--------------------------------------------------
  103. }
  104. /*
  105. * date : 2007.12.31
  106. * desc : 조회조건의 외래입원구분에 따른 병동선택 사용을 컨트롤한다.
  107. * 외래일때는 병동콤보를 사용불가상태로 만들고
  108. * 입원일때는 병동콤보를 사용가능상태로 만든다.
  109. * rdo_iogbn : 외래입원구분 (외래 : O, 입원 : I)
  110. * cmb_wardcd : 병동
  111. **/
  112. function fDisabledCondWardCd(ioGbn){
  113. if(ioGbn == 'I' || ioGbn == 'A'){
  114. model.setValue(xCondPath + '/wardcd', 'ALL');
  115. cmb_wardcd.disabled = false;
  116. }else if(ioGbn == 'O'){
  117. model.setValue(xCondPath + '/wardcd', '');
  118. cmb_wardcd.disabled = true;
  119. }
  120. model.refresh();
  121. }
  122. /*
  123. * 2007.12.30
  124. * 혈액불출내역정보가 유효한 데이터인지 검증한다.
  125. **/
  126. function fIsValid(){
  127. var apuoutdd; //불출일자
  128. var apuouttm; //불출시간
  129. var apuoutid; //불출자
  130. var confdd; //확인일자
  131. var conftm; //확인시간
  132. var confid; //확인자
  133. for(var row = 1; row <= grd_apulist.rows; row++){
  134. if ( model.getValue(xApuPath + '/apulist[" + row + "]/chk') == "ture") {
  135. apuoutdd = model.getValue(xApuPath + '/apulist[" + row + "]/apuoutdd');
  136. apuouttm = model.getValue(xApuPath + '/apulist[" + row + "]/apuouttm');
  137. apuoutid = model.getValue(xApuPath + '/apulist[" + row + "]/apuoutid');
  138. confdd = model.getValue(xApuPath + '/apulist[" + row + "]/confdd');
  139. conftm = model.getValue(xApuPath + '/apulist[" + row + "]/conftm');
  140. confid = model.getValue(xApuPath + '/apulist[" + row + "]/confid');
  141. if(apuoutdd == '' || !isValidDateTime(apuoutdd, 'YYYYMMDD')){
  142. messageBox(i + '번째의 불출일자를 날짜형식(예(2008-01-01))에 맞게', 'C001');
  143. return false;
  144. }
  145. if(apuouttm == '' || !isValidDateTime(apuouttm, 'hhmmss')){
  146. messageBox(i + '번째의 불출시간을 시간형식(예(23:01:30))에 맞게', 'C001');
  147. return false;
  148. }
  149. if(apuoutid == ''){
  150. alert(i + '번째의 불출자를 선택하세요.');
  151. return false;
  152. }
  153. /*
  154. //20080818 주석처리
  155. if(confdd == '' || !isValidDateTime(confdd, 'YYYYMMDD')){
  156. messageBox(i + '번째의 확인일자를 날짜형식(예(2008-01-01))에 맞게', 'C001');
  157. return false;
  158. }
  159. if(conftm == '' || !isValidDateTime(conftm, 'hhmmss')){
  160. messageBox(i + '번째의 확인시간을 시간형식(예(23:01:30))에 맞게', 'C001');
  161. return false;
  162. }
  163. if(confid == ''){
  164. messageBox(i + '번째의 확인자를', 'C002');
  165. return false;
  166. }
  167. */
  168. } else {
  169. }
  170. }
  171. return true;
  172. }
  173. /*
  174. * 2007.12.30
  175. * 혈액불출내역정보를 수정한다.
  176. **/
  177. function fSave(){
  178. var msgNo = messageBox('혈액불출등록을', 'Q004');//실행하시겠습니까?
  179. //수정된 자료는 전부 가져가고, api에서 chk=ture인것만 저장함
  180. if(fIsValid()&& msgNo == 6){
  181. model.removeNodeset('/root/send');
  182. model.makeValue('/root/send/savedata', grd_apulist.getUpdateDataAll('u'));
  183. var saveflag = "saveflag▩O"
  184. model.makeValue('/root/send/saveflag', saveflag);//저장종류(O:불출등록/R:remark)
  185. //test
  186. //return;
  187. if(submit('TXMNA01601')){
  188. fSearch();
  189. }
  190. }else{
  191. return false;
  192. }
  193. }
  194. /*
  195. * 2008.08.18
  196. * 입력한 ph, yield, 불출remark를 저장한다.
  197. */
  198. function fRemarkSave(){
  199. var msgNo = messageBox('입력하신 내역을', 'Q002');//저장하시겠습니까?
  200. //수정된 자료는 전부 가져가고, api에서 chk=ture인것만 저장함
  201. if(msgNo == 6){
  202. model.removeNodeset('/root/send');
  203. model.makeValue('/root/send/savedata', grd_apulist.getUpdateDataAll('u'));
  204. var saveflag = "saveflag▩R"
  205. model.makeValue('/root/send/saveflag', saveflag);//저장종류(O:불출등록/R:remark)
  206. //test
  207. //return;
  208. if(submit('TXMNA01601')){
  209. fSearch();
  210. }
  211. }else{
  212. return false;
  213. }
  214. }
  215. /*
  216. * 2007.12.31
  217. * 변경된 그리드의 row상태를 update 상태로 바꾼다.
  218. **/
  219. function fSetUpdateState(isPop){
  220. //isPop -- popup으로 변경된 노드는 true값으로 받아옴..그리드는 상태값이 setValue로 들어오는 값은 변경되지 않는다....;
  221. var curRow = grd_apulist.row;
  222. if(grd_apulist.rowStatus(grd_apulist.row) == 2 || isPop){
  223. model.setValue(xApuPath + '/apulist[' + curRow + ']' + '/status', 'u');
  224. }
  225. }
  226. /*
  227. 사용자팝업 호출
  228. function fUseridPopup(pPath, pNodeID, pNodeNM, pNodeDept, pNodeDeptNM, pDOC, pDeptFlag, pSearchdd) {
  229. setParameter("SendData_Searchdd", pSearchdd);
  230. var pParam = fShowModal("SPMNP00001");
  231. //alert("pSearchdd : "+pSearchdd);
  232. fUserDataSet(pParam, pPath+pNodeID,pPath+pNodeNM, pPath+pNodeDept, pPath+pNodeDeptNM, pDOC, pSearchdd);
  233. }
  234. */
  235. /**
  236. * 2007-12-30
  237. * 불출및 확인자를 선택하기 위한 팝업화면을 호출한다.
  238. * 불출내역등록그리드의 클릭이벤트 발생시 호출된다.
  239. */
  240. function fGetWorkerId(outConfGbn){
  241. var curRow = grd_apulist.row;
  242. if (curRow <= 0) return;
  243. if (model.getValue("/root/main/apuinfo/apulist[" + curRow + "]/confdd") != "" ) {
  244. messageBox('불출되어 확인된 자료 ', 'E008');
  245. return;
  246. }
  247. model.removenodeset(xUserInfoPath);
  248. model.makeValue(xUserInfoPath + '/param', '_OneS');
  249. modal("../../userdeptinfoweb/xrw/SPZSU10103_사용자부서선택조회", "", "200", "200", "SPZSU10103","/root/main/userpopupinfo","/root/main/temp");
  250. var iParam = getParameter('SPZSU10103_');
  251. if(iParam != ''){
  252. setCSVToNode(xUserInfoPath, iParam);
  253. if(getNodesetCount(xUserInfoPath) == 1){
  254. if(outConfGbn == 'out'){
  255. model.setValue(xApuPath + '/apulist[' + curRow + ']/apuoutid', model.getValue(xUserInfoPath + '/list/userid'));
  256. model.setValue(xApuPath + '/apulist[' + curRow + ']/apuoutnm', model.getValue(xUserInfoPath + '/list/usernm'));
  257. }else if(outConfGbn == 'conf'){
  258. model.setValue(xApuPath + '/apulist[' + curRow + ']/confid', model.getValue(xUserInfoPath + '/list/userid'));
  259. model.setValue(xApuPath + '/apulist[' + curRow + ']/confnm', model.getValue(xUserInfoPath + '/list/usernm'));
  260. }
  261. fSetUpdateState(true);//current row staus 변경
  262. }
  263. }
  264. clearParameter("SPZSU10103_");
  265. }