SMRSG07400.js 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540
  1. /* ---------------------------------------------------------------------
  2. SMRSG07400_(수탁)청구분출고관리.xrw (SMRSG07400.js - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By SungWook Jung
  6. : 2009.10.22
  7. ---------------------------------------------------------------------- */
  8. var gUserid = ""; // 사용자
  9. var gUserNm = ""; // 사용자명
  10. var gDutplceinstcd = ""; // 사용자 기관코드
  11. var gDutplceinstnm = ""; // 사용자 기관명칭
  12. var gDutplcecd = ""; // 사용자 부서코드
  13. var gDutplcenm = ""; // 사용자 부서코드명
  14. var gPurcCloseYymm = "";
  15. var xAuth = !(checkAuth("X"));
  16. var pAuth = !(checkAuth("P"));
  17. // 청구구분
  18. var tReqFlagData = "A." // 01 Y 의료소모품
  19. + "B." // 02 Z 일반소모품
  20. + "C." // 03 K 의료비품
  21. + "D." // 04 G 일반비품
  22. + "E." // 05 P 약품및재료
  23. + "F." // 06 P 제제약품
  24. + "G." // 07 E 장비
  25. + "H." // 08 P 수액
  26. + "I." // 09 P 조영제
  27. + "S." // 10 B 수리관리
  28. + "X." // 11 T 교환물품
  29. + "Y." // 12 T 청구물품
  30. + "Z" ; // 13 T 멸균의뢰
  31. var tReqFlag = tReqFlagData.split(".");
  32. // 물품구분
  33. var tGoodFlagData = "Y." // 01 의료소모품
  34. + "Z." // 02 일반소모품
  35. + "U." // 03 의료비품
  36. + "G." // 04 일반비품
  37. + "P." // 05 약품
  38. + "P." // 06 약품
  39. + "P." // 07 약품및재료
  40. + "P." // 08 약품
  41. + "P." // 09 약품
  42. + "B." // 10 수리부품
  43. + "T." // 11 공급실물품
  44. + "T." // 12 공급실물품
  45. + "T" ; // 13 공급실물품
  46. var tGoodFlag = tGoodFlagData.split(".");
  47. var tPath = "/root/init/cmb_goodflag";
  48. var sPath = "/root/init/cmb_goodflagcopy";
  49. // --------------------------------------------------
  50. // Tree정보 가져오기
  51. // --------------------------------------------------
  52. function fInit() {
  53. //vMenuParameter = getScreenMenuParameter(); // 메뉴파라메터 가져오기
  54. gUserid = getUserInfo("userid" ); // 사용자
  55. gUserNm = getUserInfo("usernm" ); // 사용자명칭
  56. gDutplceinstcd = getUserInfo("dutplceinstcd"); // 사용자 기관코드
  57. gDutplceinstnm = getUserInfo("dutplceinstnm"); // 사용자 기관명칭
  58. gDutplcecd = getUserInfo("dutplcecd" ); // 사용자 부서코드
  59. gDutplcenm = getUserInfo("dutplcenm" ); // 사용자 부서코드명
  60. fInitialize();
  61. return;
  62. }
  63. function fInitialize() {
  64. model.resetInstanceNode("/root/send");
  65. misfGridInit(grd_goodreq);
  66. rszfUserReqInstList(cmb_instcd,getUserInfo("userid"),"%","B");
  67. rszfUserReqFlagList(cmb_reqflag,getUserInfo("dutplceinstcd"),getUserInfo("userid"),"1","B");
  68. misfGridComboComCdList("R0116",grd_goodreq,"deliveprcsflag");
  69. // misfComboComCdListMulti("R0092,R0111","cmb_reqmthd,cmb_purcflag");
  70. // rszfComboAppendBlankChild("cmb_reqmthd,cmb_purcflag");
  71. zbcfGetCodeList( new Array ( "R0092" //청구방법
  72. ,"R0111") //구매구분
  73. , new Array ( "/root/init/mlist" //청구방법
  74. ,"/root/init/mlist")); //구매구분
  75. model.setValue("/root/init/mlist/R0092/cdnm", "전체");
  76. model.setValue("/root/init/mlist/R0111/cdnm", "전체");
  77. rszfGoodFlagListByPgmGubn(cmb_goodflag,"1","N");
  78. // misfMsterDetailSet(grd_goodreq,null, "TRRSO00301" ,"Y");
  79. model.setValue(cmb_instcd.attribute("ref") , getUserInfo("dutplceinstcd"));
  80. // model.setValue(ipt_reqdeptcd.attribute("ref") , getUserInfo("dutplcecd"));
  81. // model.setValue(opt_reqdeptnm.attribute("ref") , getUserInfo("dutplcenm"));
  82. var curdate = getCurrentDate();
  83. var cvtdate = curdate.toDate("YYYYMMDD");
  84. model.setValue(ipt_reqfrdd.attribute("ref") , cvtdate.getAddDate(-10,"D").getDateFormat("YYYYMMDD"));
  85. model.setValue(ipt_reqtodd.attribute("ref") , curdate);
  86. model.setValue(ipt_delivedd.attribute("ref") , curdate);
  87. // if(cmb_deliveprcsflag_group.length> 0) cmb_deliveprcsflag_group.selectedindex= 0;
  88. grd_goodreq.explorerbar = "sortshow";
  89. for(licol = 0; licol < grd_goodreq.cols ; licol++)if(grd_goodreq.colRef("reqdeptnm") != licol) grd_goodreq.mergecol(licol) = false;
  90. grd_goodreq.mergecells = "bycol";
  91. //model.setValue(ipt_emplno.attribute("ref"), getUserInfo("userid"));
  92. //model.setValue(ipt_emplnm.attribute("ref"), getUserInfo("usernm"));
  93. //addComboItem("cmb_reqflag" , "전체", "", "above");
  94. cmb_reqflag.select(0);
  95. addComboItem("cmb_goodflag", "전체", "", "above");
  96. // misfComboComCdList('R0025', cmb_goodflag, "N"); //물품구분
  97. // fSetReqAuth(); // 청구권한설정 [20090129] YYJ fReqdeptCopy() 함수에서 호출 하기 때문에 제외 처리
  98. //부서가 구매팀인지 확인해서 구매팀일 경우 부서찾기 항목을 visibility true 아니면 false
  99. // -------------------------------------------------------------------------------------
  100. // 기관별 구매시스템 기본정보를 조회한다
  101. // vPathResult = "/root/init/RscsysinftLists";
  102. // -------------------------------------------------------------------------------------
  103. rszfRscsysinftLists(getUserInfo("dutplceinstcd"));
  104. // -------------------------------------------------------------------------------------
  105. // 구매 인터페이스 거래처정보를 조회한다
  106. // vPathResult = "/root/init/RscifcustLists";
  107. // pInstcd" : (조회값) 기관코드
  108. // pEntrregno" : (조회값) 거래처
  109. // pMaindeptcd" : (조회값) 관리부서코드
  110. // pCombo : 콤보구분
  111. // pAllYN : 전체구분
  112. // ------------------------------------------------------------------------------------*/
  113. gPurcCloseYymm = getRscsysinftInfo("purccloseyymm");
  114. if(gPurcCloseYymm >= getCurrentDate().substr(0,6)) {
  115. messageBox("마감이 완료되어 출고처리가 불가능합니다.", "I");
  116. btn_save.disabled = true;
  117. } else {
  118. btn_save.disabled = false;
  119. }
  120. model.refresh();
  121. }
  122. // ------------------------------
  123. // 출고 저장
  124. // ------------------------------
  125. function fSettingSaveOutData(){
  126. for (var liRow = grd_goodreq.fixedRows ; liRow < grd_goodreq.rows ; liRow++) {
  127. //출고생성되지 않은 데이타라면 출고시 입력을 위해 insert logic으로 구현한다
  128. //grd_goodreq.rowStatus(liRow) = "1";
  129. model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/deliveunit" , grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("requnit")) );
  130. model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/delivedeptcd" , getUserInfo("dutplcecd") );
  131. model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/delivepsn" , getUserInfo("userid" ) );
  132. //model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/windeptcd" , grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("reqdeptcd")));
  133. //model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/deliveprcsflag" , "7");
  134. if (model.getValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/deliveprcsflag") == "1"){
  135. model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/delivedd" , model.getValue(ipt_delivedd.attribute("ref")) );
  136. }
  137. }
  138. model.setValue("/root/send/save/gooddelive/gooddelivelist", grd_goodreq.getUpdateData());
  139. submit("TXRSG07401");
  140. if (model.getValue(gvErrorMsgPath + "/type") != "error")btn_search.dispatch("DOMActivate");
  141. }
  142. function fCheckSaveData() {
  143. if(model.getValue(cmb_instcd.attribute("ref")).length== 0 )
  144. {
  145. messageBox("기관코드를 " ,"C002");
  146. model.setFocus("cmb_instcd");
  147. return false;
  148. }
  149. return true;
  150. }
  151. function fReqFagChange(pReqFlag) {
  152. for (i = 0; i < tReqFlag.length; i++) {
  153. if (tReqFlag[i] == pReqFlag) {
  154. model.setValue(cmb_goodflag.attribute("ref"), tGoodFlag[i] );
  155. // alert(tGoodFlag[i]);
  156. cmb_goodflag.refresh();
  157. break;
  158. }
  159. }
  160. // cmb_goodflag.select(0); //청구구분
  161. }
  162. // ----------------------------------------------------------------------------
  163. // 접수 선택 / 취소
  164. // ----------------------------------------------------------------------------
  165. function fSelectSetting(pGrid, pRowStat, pCheckYn)
  166. {
  167. var reqqty;
  168. var inptqty;
  169. var delivedeptqty;
  170. var remstocqty;
  171. for (var liRow = pGrid.fixedRows ; liRow < pGrid.rows ; liRow++)
  172. {
  173. reqqty = parseInt(model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/reqqty" ));
  174. inptqty = parseInt(model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/inptqty" ));
  175. delivedeptqty = parseInt(model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/delivedeptqty"));
  176. remstocqty = parseInt(model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/remstocqty" ));
  177. beforqty = parseInt(model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/beforqty" ));
  178. workflag = model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/workflag" );
  179. deliveprcsflag = model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/deliveprcsflag");
  180. requnino = model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/requnino" );
  181. if (deliveprcsflag == "1"){
  182. if(pRowStat == "1") {
  183. if (workflag == "4"){
  184. if(delivedeptqty != 0) {
  185. pGrid.valueMatrix(liRow, pGrid.colRef("select")) = pCheckYn;
  186. pGrid.rowStatus(liRow) = pRowStat;
  187. }
  188. }else{
  189. if(remstocqty > 0 && remstocqty >= delivedeptqty && (reqqty+beforqty) != 0 && delivedeptqty != 0) {
  190. pGrid.valueMatrix(liRow, pGrid.colRef("select")) = pCheckYn;
  191. pGrid.rowStatus(liRow) = pRowStat;
  192. }
  193. }
  194. } else {
  195. pGrid.valueMatrix(liRow, pGrid.colRef("select")) = pCheckYn;
  196. pGrid.rowStatus(liRow) = pRowStat;
  197. }
  198. }
  199. }
  200. model.refresh();
  201. }
  202. //----------------------
  203. // 재고잔량 계산
  204. //----------------------
  205. function fRemainDataCalc()
  206. {
  207. var sstocqty = 0;
  208. var sRemStocQty = 0;
  209. var sGoodCd = "";
  210. var sAllsizespecid = "";
  211. var wGoodCd = "";
  212. var wAllsizespecid = "";
  213. var sWorkflag = "";
  214. var sGenwin = "";
  215. var sStocrgstyn = "";
  216. for (var i = 1; i < grd_goodreq.rows; i++) {
  217. sWorkflag = model.getValue(grd_goodreq.nodeset + "["+ i +"]/workflag").getTrim();
  218. sDeliveprcsflag = model.getValue(grd_goodreq.nodeset + "["+ i +"]/deliveprcsflag").getTrim();
  219. if ((sWorkflag != "4") && (sDeliveprcsflag != "7")){
  220. if (model.getValue(grd_goodreq.nodeset+"["+ i +"]/remcheck") != "Y") {
  221. sGoodCd = model.getValue(grd_goodreq.nodeset+"["+ i +"]/goodcd" );
  222. sAllsizespecid = model.getValue(grd_goodreq.nodeset+"["+ i +"]/allsizespecid");
  223. sRemStocQty = parseFloat(model.getValue(grd_goodreq.nodeset+"["+ i +"]/stocqty" ));
  224. model.setValue(grd_goodreq.nodeset+"["+ i +"]/remcheck" , "Y");
  225. grd_goodreq.valueMatrix(i,grd_goodreq.colRef("remstocqty")) = sRemStocQty+"";
  226. sRemStocQty = sRemStocQty - parseFloat(model.getValue(grd_goodreq.nodeset+"["+ i +"]/delivedeptqty" ));
  227. for (var j = i+1; j < grd_goodreq.rows; j++) {
  228. if (sGoodCd == model.getValue(grd_goodreq.nodeset+"["+ j +"]/goodcd" ) &&
  229. sAllsizespecid == model.getValue(grd_goodreq.nodeset+"["+ j +"]/allsizespecid") ) {
  230. var sDeliveprcsflag2 = grd_goodreq.valueMatrix(j,grd_goodreq.colRef("deliveprcsflag"));
  231. var sWorkflag2 = grd_goodreq.valueMatrix(j,grd_goodreq.colRef("workflag"));
  232. if ((sWorkflag2 != "4") && (sDeliveprcsflag2 != "7")){
  233. model.setValue(grd_goodreq.nodeset+"["+ j +"]/remcheck" , "Y");
  234. grd_goodreq.valueMatrix(j,grd_goodreq.colRef("remstocqty")) = sRemStocQty+"";
  235. /* if (parseFloat(sRemStocQty) < 1 ) {
  236. grd_goodreq.cellstyle("background-color", j, grd_goodreq.colRef("stocqty"), j, grd_goodreq.colRef("delivedeptqty")) = "yellow";
  237. grd_goodreq.cellstyle("color" , j, grd_goodreq.colRef("stocqty"), j, grd_goodreq.colRef("delivedeptqty")) = "red";
  238. }
  239. */
  240. sRemStocQty = sRemStocQty - parseFloat(model.getValue(grd_goodreq.nodeset+"["+ j +"]/delivedeptqty" ));
  241. }
  242. }
  243. }
  244. }
  245. }
  246. }
  247. for (var i = 1; i < grd_goodreq.rows; i++) {
  248. var sRemStocQty = parseFloat(model.getValue(grd_goodreq.nodeset+"["+ i +"]/stocqty" ));
  249. var sWorkflag = model.getValue(grd_goodreq.nodeset + "["+ i +"]/workflag" ).getTrim();
  250. var sGenwin = model.getValue(grd_goodreq.nodeset + "["+ i +"]/genwin" ).getTrim();
  251. var sStocrgstyn = model.getValue(grd_goodreq.nodeset + "["+ i +"]/stocrgstyn").getTrim();
  252. var sDeliveprcsflag = model.getValue(grd_goodreq.nodeset + "["+ i +"]/deliveprcsflag").getTrim();
  253. if ((parseFloat(sRemStocQty) < 1 ) && (sWorkflag2 != "4") && (sDeliveprcsflag != "7")){
  254. grd_goodreq.cellstyle("background-color", i, grd_goodreq.colRef("stocqty"), i, grd_goodreq.colRef("delivedeptqty")) = "yellow";
  255. grd_goodreq.cellstyle("color" , i, grd_goodreq.colRef("stocqty"), i, grd_goodreq.colRef("delivedeptqty")) = "red";
  256. }
  257. if (sGenwin == "Y" || sStocrgstyn == "N"){
  258. grd_goodreq.cellstyle("background-color", i, grd_goodreq.colRef("genwin"), i, grd_goodreq.colRef("stocrgstyn")) = "pink";
  259. }
  260. model.setValue(grd_goodreq.nodeset+"["+ i +"]/remcheck" , "N");
  261. }
  262. grd_goodreq.refresh();
  263. }
  264. //진행상태가 청구시 선택 컨트롤 불능!
  265. function fGridSelectDisabled()
  266. {
  267. for(var s = 0; s < grd_goodreq.rows; s++)
  268. {
  269. //진행상태가 청구시 선택 컨트롤 불능!
  270. if(grd_goodreq.valueMatrix(s, grd_goodreq.colRef("deliveprcsflag")) == '7' )
  271. {
  272. grd_goodreq.isReadOnly(s, grd_goodreq.colRef("select")) = true;
  273. grd_goodreq.isReadOnly(s, grd_goodreq.colRef("delivedeptqty")) = true;
  274. }else{
  275. grd_goodreq.isReadOnly(s, grd_goodreq.colRef("select")) = false;
  276. grd_goodreq.isReadOnly(s, grd_goodreq.colRef("delivedeptqty")) = false;
  277. }
  278. }
  279. }
  280. function fGridSelectGoodReq()
  281. {
  282. // 선택 클릭시
  283. if(grd_goodreq.col == grd_goodreq.colRef("select")){
  284. if(model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/select") == "Y" ){
  285. var reqqty = parseInt(model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/reqqty" ));
  286. var beforqty = parseInt(model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/beforqty" ));
  287. var delivedeptqty = parseInt(model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/delivedeptqty" ));
  288. var predelivedeptqty = parseInt(model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/predelivedeptqty"));
  289. var remstocqty = parseInt(model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/remstocqty" ));
  290. var workflag = model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/workflag" );
  291. var stocrgstyn = model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/stocrgstyn" );
  292. if (stocrgstyn == "N"){
  293. messageBox("(" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "번째) 재고 등록이 되어 있지", "I011");
  294. return;
  295. }
  296. if (workflag != "4"){
  297. if(remstocqty < delivedeptqty ) {
  298. messageBox("출고량이 잔량보다 클수 없습니다.", "E");
  299. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/delivedeptqty", model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/predelivedeptqty"));
  300. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  301. grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("select")) = "N";
  302. }else{
  303. grd_goodreq.rowStatus(grd_goodreq.row) = "1";
  304. grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("select")) = "Y";
  305. }
  306. }else{ // 상비품 반납일 경우 ( 잔량과 출고량간의 Validation Check Logic이 불필요 ) -> 쌓이는 재고 개념이기 때문
  307. if(reqqty != delivedeptqty)
  308. {
  309. messageBox("상비품 반납건의 청구량과 출고량이 " ,"E004");
  310. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/delivedeptqty", model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/predelivedeptqty"));
  311. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  312. grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("select")) = "N";
  313. }else{
  314. grd_goodreq.rowStatus(grd_goodreq.row) = "1";
  315. grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("select")) = "Y";
  316. }
  317. }
  318. }else{
  319. //model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/delivedeptqty", model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/predelivedeptqty"));
  320. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  321. }
  322. }
  323. // 출고 수량 Validation Check
  324. if(grd_goodreq.col == grd_goodreq.colRef("inptqty") || grd_goodreq.col == grd_goodreq.colRef("select")){
  325. //if(grd_goodreq.col == grd_goodreq.colRef("delivedeptqty")){
  326. var beforqty = parseInt(model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/beforqty"));
  327. var reqqty = parseInt(model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/reqqty"));
  328. var remstocqty = parseInt(model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/remstocqty"));
  329. var inptqty = parseInt(model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/inptqty"));
  330. var delivedeptqty = parseInt(model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/delivedeptqty"));
  331. var workflag = model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1) + "]/workflag" );
  332. //delivedeptqty = beforqty + inptqty ;
  333. if ((workflag != "4") && (workflag != "2")){
  334. if(remstocqty < delivedeptqty ) {
  335. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  336. grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("select")) = "N";
  337. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/delivedeptqty", 0);
  338. messageBox("출고량이 잔량보다 클수 없습니다.", "E");
  339. return;
  340. }
  341. if((reqqty-beforqty) > delivedeptqty)
  342. {
  343. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  344. grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("select")) = "N";
  345. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/delivedeptqty", 0);
  346. messageBox("청구량과 선불출량의 차가 출고량을 초과 " ,"E001");
  347. return;
  348. }
  349. if(delivedeptqty == 0)
  350. {
  351. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  352. grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("select")) = "N";
  353. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/delivedeptqty", 0);
  354. messageBox("출고량이 " ,"I004");
  355. return;
  356. }
  357. }else{
  358. // (상비품, 일반) 반납은 무조건 "-" 출고 처리
  359. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/delivedeptqty", delivedeptqty * -1);
  360. delivedeptqty = model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/delivedeptqty");
  361. if(reqqty != delivedeptqty)
  362. {
  363. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  364. grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("select")) = "N";
  365. model.setValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/delivedeptqty", 0);
  366. messageBox("반납건의 청구량과 출고량이 " ,"E004");
  367. return;
  368. }
  369. }
  370. if(model.getValue(grd_goodreq.nodeset + "[" + (grd_goodreq.row - grd_goodreq.fixedRows + 1)+ "]/select") != "Y" ){
  371. grd_goodreq.rowStatus(grd_goodreq.row) = "0";
  372. }
  373. }
  374. grd_goodreq.refresh();
  375. }
  376. function freqlistprint() {
  377. var Path = "/root/send/goodreqprnt/goodreqprntlist";
  378. model.removenode(Path);
  379. model.makeNode(Path);
  380. //copyNodesetType(Path, grd_goodreq.nodeset+ "[deliveprcsflag='7']");
  381. copyNodesetType(Path, grd_goodreq.nodeset);
  382. model.makeValue("/root/send/goodreqprnt/goodreqprntcomn/purcdmndfrdd", model.getValue("/root/send/goodreq/reqfrdd")); // 요구일자
  383. model.makeValue("/root/send/goodreqprnt/goodreqprntcomn/purcdmndtodd", model.getValue("/root/send/goodreq/reqtodd")); // 요구일자
  384. exeReportPreview("RPRSG07401","XMLSTR");
  385. }
  386. /* ------------------------------------------------- */
  387. /* ------End Of List ------------------------------- */
  388. /* -------------------------------------------------- */