SMMNP05400.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382
  1. /* ---------------------------------------------------------------------
  2. 가납물품입고(SMMNP05400.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By kim bo sung
  6. : 2007.09.19
  7. 2) : Ver.2.00.01
  8. : Create By K. J. M
  9. : 2010.07.14
  10. ---------------------------------------------------------------------- */
  11. var xPathDataA = "/root/main/mnphtrininfo/mnphtrinlist";
  12. var xPathDataB = "/root/main/goodprcplist";
  13. var xPathDataC = "/root/main/winqtylist";
  14. var xPathDataD = "/root/main/goodwinlist";
  15. var xSendReqData = "/root/send/reqdata"; //보내는값
  16. var xSendSaveData = "/root/send/savedata"; //받은 리스트 갯수값
  17. var xCondData = "/root/main/cond"; //조건항목들
  18. var xErrMsg = "/root/properties/error/msg";
  19. var xTempData = "/root/temp";
  20. // --------------------------------------------------
  21. // 화면 초기화
  22. // --------------------------------------------------
  23. function fInit() {
  24. //화면 open 시 일자 자동지정
  25. //var Nowdt = getCurrentDate();
  26. //
  27. //model.setValue(xCondData+"/opcnfmfrdd",Nowdt);
  28. //model.setValue(xCondData+"/opcnfmtodd",Nowdt);
  29. //
  30. //model.removenode(xPathDataA);//가납 물품 입고 그리드 초기화
  31. //model.removenode(xPathDataB);//가납 물품 처방 내역 그리드 초기화
  32. //model.removenode(xPathDataC);//가납 물품 입고 입고량 내역 그리드 초기화
  33. //model.removenode(xPathDataD);//가납 물품 일과 입고 그리드 초기화
  34. //model.removeNodeset(xPathDataA);//가납 물품 입고 그리드 초기화
  35. //model.removeNodeset(xPathDataB);//가납 물품 처방 내역 그리드 초기화
  36. //model.removeNodeset(xPathDataC);//가납 물품 입고 입고량 내역 그리드 초기화
  37. //model.removeNodeset(xPathDataD);//가납 물품 일과 입고 그리드 초기화
  38. //
  39. //
  40. //grd_mnphtrinlist.explorerbar = "sort";
  41. //grd_goodprcplist.explorerbar = "sort";
  42. //grd_winqtylist.explorerbar = "sort";
  43. //grd_goodwinlist.explorerbar = "sort";
  44. //grd_goodwinlist.fixedcellcheckbox(0,15) = true;
  45. //
  46. //submit("TRMNP03004", false) // 수술실(Rosette) 가져오기
  47. //
  48. //model.makeValue("/root/send/opcnfmdd", Nowdt);
  49. //model.makeValue("/root/send/rosette", model.getValue("/root/main/cond/oprosette"));
  50. //submit("TRMNP03002", false); // 수술실코드 가져오기
  51. //
  52. //model.removenode("/root/send");
  53. //model.makeNode("/root/send/reqdata");
  54. //model.copyNode("/root/send/reqdata", "/root/main/cond");
  55. //submit("TRMNP04404", false);
  56. //
  57. //submit("TRMNP05502", false); //거래처 조회
  58. //
  59. //model.removenode("/root/send");
  60. //model.makeValue("/root/send/flag" , "X" );
  61. //model.makeValue("/root/send/searchitem", "XX" );
  62. //model.makeValue("/root/send/deptflag" , "011" );
  63. //
  64. //submit("TRMNP00107");
  65. //
  66. //addComboItem("cmb_rosette", "전 체", "", "above" );
  67. //addComboItem("cmb_oproomcd", "전 체", "", "above" );
  68. //addComboItem("cmb_perfdeptlist", "전 체", "", "above" );
  69. //addComboItem("cmb_drlist", "전 체", "", "above" );
  70. //addComboItem("cmb_lrg", "전 체", "", "above" );
  71. //화면 open 시 일자 자동지정
  72. var Nowdt = getCurrentDate();
  73. Nowdt.substr(0, 8);
  74. model.toggle("wingood");
  75. model.setValue(xCondData + "/reffromdd",Nowdt);
  76. model.setValue(xCondData + "/reftodd",Nowdt);
  77. model.setValue(xCondData + "/windd", Nowdt);
  78. model.setValue(xCondData + "/batchwindd", Nowdt);
  79. model.removeNodeset(xPathDataA);//가납 물품 입고 그리드 초기화
  80. model.removeNodeset(xPathDataB);//가납 물품 처방 내역 그리드 초기화
  81. model.removeNodeset(xPathDataC);//가납 물품 입고 입고량 내역 그리드 초기화
  82. model.removeNodeset(xPathDataD);//가납 물품 일과 입고 그리드 초기화
  83. grd_mnphtrinlist.explorerbar = "sort";
  84. grd_goodprcplist.explorerbar = "sort";
  85. grd_winqtylist.explorerbar = "sort";
  86. grd_goodwinlist.explorerbar = "sort";
  87. grd_goodwinlist.fixedcellcheckbox(0,10) = true;
  88. model.refresh();
  89. }
  90. // --------------------------------------------------
  91. // 그리드 조회
  92. // --------------------------------------------------
  93. function fList_Read() {
  94. var Nowdt = getCurrentDate();
  95. Nowdt.substr(0, 8);
  96. var tabflag = model.getValue(xCondData + "/tabflag");
  97. if( tabflag == "A" ) {//가납 물품 입고
  98. model.copyNode(xSendReqData, xCondData);
  99. submit("TRMNP05401");
  100. }else if( tabflag == "B" ) {//가납 물품 처방 내역
  101. model.copyNode(xSendReqData, xCondData);
  102. submit("TRMNP05402");
  103. }else if( tabflag == "C" ) {//가납 물품 입고 입고량 내역
  104. model.copyNode(xSendReqData, xCondData);
  105. submit("TRMNP05403");
  106. }else if( tabflag == "D" ) {//가납 물품 일괄 입고, 반납
  107. model.copyNode(xSendReqData, xCondData);
  108. model.makeValue("/root/send/reqdata/windd", model.getValue("/root/main/cond/batchwindd"));
  109. submit("TRMNP05404");
  110. }
  111. }
  112. // --------------------------------------------------
  113. // 팝업호출
  114. // --------------------------------------------------
  115. function fPopup() {
  116. var refflag = model.getValue(xTempData + "/refflag");
  117. switch (refflag) {
  118. case "1": /*물품명으로 검색*/
  119. setParameter("refnm", model.getValue(xCondData + "/goodnm"));
  120. setParameter("refflag", "1");
  121. break;
  122. case "2": /*물품코드으로 검색*/
  123. setParameter("refnm", model.getValue(xCondData + "/goodcd"));
  124. setParameter("refflag", "2");
  125. break;
  126. default:
  127. setParameter("refnm", model.getValue(xCondData + "/goodcd"));
  128. setParameter("refflag", "2");
  129. break;
  130. }
  131. setParameter("goodflag", "");
  132. setParameter("openflag", "STOC");
  133. setParameter("menuparam", "S");
  134. setParameter("tabflag", "CCR");
  135. setParameter("cartgubn", model.getValue("/root/main/cond/deptflag"));
  136. modal("SMMNP04460" ,"", "100", "100", "SMMNP04460", "", "");
  137. var getData = model.getValue("/root/properties/parameters/SendData/SendDatavalue");
  138. if( getData == "") {
  139. return;
  140. }else if( model.getValue(xTempData +"/chkcncl") == "C" ) {//팝업에서 취소를 선택하거나 창을 강제로 닫았을 경우
  141. return;
  142. }else {
  143. var getDataTemp1 = getData.split("▩"); //모조건 첫번째의 자료를 가져온다.
  144. var getDataTemp2 = getDataTemp1[0].split("|");
  145. model.setValue(xCondData+ "/goodcd", getDataTemp2[0]);
  146. model.setValue(xCondData+ "/goodnm", getDataTemp2[1]);
  147. model.setValue(xCondData+ "/allsizespecid", getDataTemp2[2]);
  148. model.refresh();
  149. }
  150. fList_Read();
  151. }
  152. // --------------------------------------------------
  153. // 물품코드 키입력
  154. // --------------------------------------------------
  155. function fGoodcd_onkeyup() {
  156. inputEnterKey("btn_search", "DOMActivate");
  157. }
  158. // --------------------------------------------------
  159. // 물품명 키입력
  160. // --------------------------------------------------
  161. function fGoodnm_onkeyup() {
  162. inputEnterKey("btn_search", "DOMActivate");
  163. }
  164. // --------------------------------------------------
  165. // 엑셀저장
  166. // --------------------------------------------------
  167. function fExcel_Save() {
  168. var tabflag = model.getValue("/root/main/cond/tabflag");
  169. var pGrid = "";
  170. switch(tabflag) {
  171. case "A" :
  172. pGrid = grd_mnphtrinlist;
  173. break;
  174. case "B" :
  175. pGrid = grd_goodprcplist;
  176. break;
  177. case "C" :
  178. pGrid = grd_winqtylist;
  179. break;
  180. case "D" :
  181. pGrid = grd_goodwinlist;
  182. break;
  183. }
  184. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  185. if (fileName != ""){
  186. pGrid.saveExcel(fileName, "sheetname:sheet1;colhiddenextend:true", false, false, "", "", true);
  187. }
  188. }
  189. // --------------------------------------------------
  190. // 그리드 입력시 자동 체크기능
  191. // --------------------------------------------------
  192. function fAutoChkflag(pGrid) {
  193. //입력시 확인하여 체크를 자동 설정한다.
  194. var row = grd_mnphtrinlist.row;
  195. if( ( model.getValue(xPathDataA + "[" + row + "]/winqty") == "0" )||( model.getValue(xPathDataA + "[" + row + "]/winqty") == "0.0" ) ) {
  196. model.setValue(xPathDataA + "[" + row + "]/chkflag", "false");
  197. }else {
  198. model.setValue(xPathDataA + "[" + row + "]/chkflag", "true");
  199. }
  200. }
  201. /* --------------------------------------------------*/
  202. /* type : function */
  203. /* access : public */
  204. /* desc : 입고량 자동 입력 */
  205. /* param : */
  206. /* return : */
  207. /* --------------------------------------------------*/
  208. function fEndEdit() {
  209. var iRow = -1;
  210. var iCol = -1;
  211. var iRows = grd_goodwinlist.rows;
  212. iRow = grd_goodwinlist.row;
  213. iCol = grd_goodwinlist.col;
  214. if(event.button==1) {
  215. return;
  216. }
  217. if (grd_goodwinlist.rows <= 1 || grd_goodwinlist.row == 0) {
  218. return;
  219. }
  220. if (grd_goodwinlist.col == 1) {
  221. return;
  222. }
  223. /*if( ( model.getValue("/root/main/goodwinlist[" + iRow + "]/winqty") == "0" )||( model.getValue("/root/main/goodwinlist[" + iRow + "]/winqty") == "0.0" ) ) {
  224. messageBox("입고량은 0은 입고처리를 할 수 ", "I004");
  225. grd_goodwinlist.editCell();
  226. return;
  227. }else {
  228. model.setValue("/root/main/goodwinlist[" + iRow + "]/chkflag", "true");
  229. }*/
  230. //for( var i = 2; i < iRows; i++) {
  231. //model.setValue("/root/main/goodwinlist[" + i + "]/winqty", model.getValue("/root/main/goodwinlist[" + iRow + "]/winqty"));
  232. model.setValue("/root/main/goodwinlist[" + grd_goodwinlist.row + "]/chkflag", "true");
  233. //}
  234. model.refresh();
  235. }
  236. /* --------------------------------------------------*/
  237. /* type : function */
  238. /* access : public */
  239. /* desc : 거래처, 제조회사별 일괄 입고 */
  240. /* param : */
  241. /* return : */
  242. /* --------------------------------------------------*/
  243. function fBatchWin() {
  244. var iRows = -1;
  245. var chkflag, goodcd, allsizespecid, windd, winqty, statusValue, deptflag, oldqty, acmlbaseqty;
  246. var cnt = 0;
  247. //wingubn 1:일반입고, 2:일괄입고, 3:반납
  248. var trustlist = "m▦goodcd▦allsizespecid▦windd▦winqty▦wingubn▦oproomcd▦goodqty▦deptflag";
  249. iRows = grd_goodwinlist.rows;
  250. for( var row = 1; row <= iRows; row++ ) {
  251. chkflag = model.getValue( xPathDataD + "[" + row + "]/chkflag");
  252. goodcd = model.getValue( xPathDataD + "[" + row + "]/goodcd");
  253. allsizespecid = model.getValue( xPathDataD + "[" + row + "]/allsizespecid");
  254. statusValue = model.getValue( xPathDataD + "[" + row + "]/status");
  255. winqty = model.getValue( xPathDataD + "[" + row + "]/winqty");
  256. oldqty = model.getValue( xPathDataD + "[" + row + "]/oldqty");
  257. acmlbaseqty = model.getValue( xPathDataD + "[" + row + "]/acmlbaseqty");
  258. windd = model.getValue( xCondData + "/batchwindd");
  259. deptflag = model.getValue( xCondData + "/deptflag");
  260. if( chkflag == "true" ) {
  261. if( oldqty < 1 ) {
  262. if( ( model.getValue("/root/main/goodwinlist[" + row + "]/winqty") == "0" )||( model.getValue("/root/main/goodwinlist[" + row + "]/winqty") == "0.0" ) ) {
  263. messageBox("입고량은 0은 입고처리를 할 수 ", "I004");
  264. grd_goodwinlist.editCell();
  265. return;
  266. }
  267. }
  268. //statusValue = "i";
  269. cnt += 1;
  270. trustlist = trustlist + "▩" + statusValue + "▦" + goodcd + "▦" + allsizespecid
  271. + "▦" + windd + "▦" + parseInt(winqty) + "▦" + "2"
  272. + "▦" + "0000" + "▦" + ((parseInt(winqty) - parseInt(oldqty)) * parseInt(acmlbaseqty)) + "▦" + deptflag;
  273. }
  274. }
  275. if( cnt > 0 ) {
  276. model.setValue(xSendSaveData, trustlist);
  277. submit("TXMNP05401", false);
  278. model.removeNodeset(xPathDataD);//가납 물품 일과 입고 그리드 초기화
  279. model.setValue("/root/main/cond/goodcd", "");
  280. model.setValue("/root/main/cond/goodnm", "");
  281. model.setValue("/root/main/cond/allsizespecid", "");
  282. model.refresh();
  283. }else {
  284. messageBox("선택한것이", "I004");
  285. }
  286. }
  287. /* --------------------------------------------------*/
  288. /* type : function */
  289. /* access : public */
  290. /* desc : 거래처, 제조회사별 일괄 반납 */
  291. /* param : */
  292. /* return : */
  293. /* --------------------------------------------------*/
  294. function fBatchRtn() {
  295. var iRows = -1;
  296. var chkflag, goodcd, allsizespecid, windd, winqty, statusValue, deptflag;
  297. var cnt = 0;
  298. //wingubn 1:일반입고, 2:일괄입고, 3:반납
  299. var trustlist = "m▦rownum▦goodcd▦allsizespecid▦windd▦winqty▦wingubn▦deptflag";
  300. iRows = grd_goodwinlist.rows;
  301. for( var row = 1; row <= iRows; row++ ) {
  302. chkflag = model.getValue( xPathDataD + "[" + row + "]/chkflag");
  303. goodcd = model.getValue( xPathDataD + "[" + row + "]/goodcd");
  304. allsizespecid = model.getValue( xPathDataD + "[" + row + "]/allsizespecid");
  305. winqty = model.getValue( xPathDataD + "[" + row + "]/winqty");
  306. windd = model.getValue( xCondData + "/batchwindd");
  307. deptflag = model.getValue( xCondData + "/deptflag");
  308. if( chkflag == "true" ) {
  309. statusValue = "r";
  310. cnt += 1;
  311. trustlist = trustlist + "▩" + statusValue + "▦" + cnt + "▦" + goodcd + "▦" + allsizespecid
  312. + "▦" + windd + "▦" + winqty + "▦" + "3" + "▦" + deptflag;
  313. }
  314. }
  315. if( cnt > 0 ) {
  316. model.setValue(xSendSaveData, trustlist);
  317. submit("TXMNP05401", false);
  318. model.removeNodeset(xPathDataD);//가납 물품 일과 입고 그리드 초기화
  319. model.setValue("/root/main/cond/goodcd", "");
  320. model.setValue("/root/main/cond/goodnm", "");
  321. model.setValue("/root/main/cond/allsizespecid", "");
  322. model.refresh();
  323. }else {
  324. messageBox("선택한것이", "I004");
  325. }
  326. }
  327. /*-------------------------------------------------*/
  328. /*----------------End Of List ---------------------*/
  329. /*-------------------------------------------------*/