SMRSO00310.js 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701
  1. /* ---------------------------------------------------------------------
  2. SMRSO00310_청구분출고관리(성가, 빈센트).xrw (SMRSO00310.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By Francis Choi
  6. : 2009.08.05
  7. ---------------------------------------------------------------------- */
  8. var gUserid = ""; // 사용자
  9. var gUserNm = ""; // 사용자명
  10. var gDutplceinstcd = ""; // 사용자 기관코드
  11. var gDutplceinstnm = ""; // 사용자 기관명칭
  12. var gDutplcecd = ""; // 사용자 부서코드
  13. var gDutplcenm = ""; // 사용자 부서코드명
  14. var gPurcCloseYymm = "";
  15. var btn = "btn_dlvr";
  16. //
  17. var xAuth = !(checkAuth("X"));
  18. var pAuth = !(checkAuth("P"));
  19. // --------------------------------------------------
  20. // Tree정보 가져오기
  21. // --------------------------------------------------
  22. function fInit() {
  23. //vMenuParameter = getScreenMenuParameter(); // 메뉴파라메터 가져오기
  24. gUserid = getUserInfo("userid" ); // 사용자
  25. gUserNm = getUserInfo("usernm" ); // 사용자명칭
  26. gDutplceinstcd = getUserInfo("dutplceinstcd"); // 사용자 기관코드
  27. gDutplceinstnm = getUserInfo("dutplceinstnm"); // 사용자 기관명칭
  28. gDutplcecd = getUserInfo("dutplcecd" ); // 사용자 부서코드
  29. gDutplcenm = getUserInfo("dutplcenm" ); // 사용자 부서코드명
  30. fCheckAuth();
  31. fInitialize();
  32. return;
  33. }
  34. function fInitialize() {
  35. model.resetInstanceNode("/root/send");
  36. misfGridInit(grd_goodreq);
  37. rszfUserReqInstList(cmb_instcd,getUserInfo("userid"),"%","B");
  38. rszfUserReqFlagList(cmb_reqflag,getUserInfo("dutplceinstcd"),getUserInfo("userid"),"1","B");
  39. misfGridComboComCdList("R0116",grd_goodreq,"deliveprcsflag");
  40. // misfComboComCdListMulti("R0092,R0111","cmb_reqmthd,cmb_purcflag");
  41. // rszfComboAppendBlankChild("cmb_reqmthd,cmb_purcflag");
  42. zbcfGetCodeList( new Array ( "R0092" //청구방법
  43. ,"R0111" //구매구분
  44. )
  45. , new Array ( "/root/init/mlist" //청구방법
  46. ,"/root/init/mlist" //구매구분
  47. )
  48. );
  49. model.setValue("/root/init/mlist/R0092/cdnm", "전체");
  50. model.setValue("/root/init/mlist/R0111/cdnm", "전체");
  51. rszfGoodFlagListByPgmGubn(cmb_goodflag,"1","N");
  52. misfMsterDetailSet(grd_goodreq,null, "TRRSO00301" ,"Y");
  53. model.setValue(cmb_instcd.attribute("ref") , getUserInfo("dutplceinstcd"));
  54. // model.setValue(ipt_reqdeptcd.attribute("ref") , getUserInfo("dutplcecd"));
  55. // model.setValue(opt_reqdeptnm.attribute("ref") , getUserInfo("dutplcenm"));
  56. var curdate = getCurrentDate();
  57. var cvtdate = curdate.toDate("YYYYMMDD");
  58. model.setValue(ipt_reqfrdd.attribute("ref") , cvtdate.getAddDate(-10,"D").getDateFormat("YYYYMMDD"));
  59. model.setValue(ipt_reqtodd.attribute("ref") , curdate);
  60. model.setValue(ipt_delivedd.attribute("ref") , curdate);
  61. model.setValue(ipt_delivefrdd.attribute("ref"), cvtdate.getAddDate(-10,"D").getDateFormat("YYYYMMDD"));
  62. model.setValue(ipt_delivetodd.attribute("ref"), curdate);
  63. // if(cmb_deliveprcsflag_group.length> 0) cmb_deliveprcsflag_group.selectedindex= 0;
  64. grd_goodreq.explorerbar = "sortshow";
  65. for(licol = 0; licol < grd_goodreq.cols ; licol++)if(grd_goodreq.colRef("reqdeptnm") != licol) grd_goodreq.mergecol(licol) = false;
  66. grd_goodreq.mergecells = "bycol";
  67. //model.setValue(ipt_emplno.attribute("ref"), getUserInfo("userid"));
  68. //model.setValue(ipt_emplnm.attribute("ref"), getUserInfo("usernm"));
  69. //addComboItem("cmb_reqflag" , "전체", "", "above");
  70. cmb_reqflag.select(0);
  71. addComboItem("cmb_goodflag", "전체", "", "above");
  72. // misfComboComCdList('R0025', cmb_goodflag, "N"); //물품구분
  73. // fSetReqAuth(); // 청구권한설정 [20090129] YYJ fReqdeptCopy() 함수에서 호출 하기 때문에 제외 처리
  74. //부서가 구매팀인지 확인해서 구매팀일 경우 부서찾기 항목을 visibility true 아니면 false
  75. // -------------------------------------------------------------------------------------
  76. // 기관별 구매시스템 기본정보를 조회한다
  77. // vPathResult = "/root/init/RscsysinftLists";
  78. // -------------------------------------------------------------------------------------
  79. rszfRscsysinftLists(getUserInfo("dutplceinstcd"));
  80. // -------------------------------------------------------------------------------------
  81. // 구매 인터페이스 거래처정보를 조회한다
  82. // vPathResult = "/root/init/RscifcustLists";
  83. // pInstcd" : (조회값) 기관코드
  84. // pEntrregno" : (조회값) 거래처
  85. // pMaindeptcd" : (조회값) 관리부서코드
  86. // pCombo : 콤보구분
  87. // pAllYN : 전체구분
  88. // ------------------------------------------------------------------------------------*/
  89. gPurcCloseYymm = getRscsysinftInfo("purccloseyymm");
  90. if(gPurcCloseYymm >= getCurrentDate().substr(0,6)) {
  91. messageBox("마감이 완료되어 출고처리가 불가능합니다.", "I");
  92. btn_save.disabled = true;
  93. } else {
  94. btn_save.disabled = false;
  95. }
  96. model.refresh();
  97. }
  98. function fCheckAuth() {
  99. btn_search.disabled = !checkAuth("R") ;
  100. btn_save.disabled = !checkAuth("X") ;
  101. }
  102. function fCheckRetrieveData(pmsg) {
  103. if (model.getValue(cmb_instcd.attribute("ref")).length== 0 ) {
  104. if(pmsg == true)
  105. {
  106. messageBox("기관코드를 " ,"C002");
  107. model.setFocus("cmb_instcd");
  108. }
  109. return false;
  110. }
  111. if (model.getValue(cmb_reqflag.attribute("ref")).length== 0 ) {
  112. if(pmsg == true)
  113. {
  114. messageBox("청구구분을" ,"C002");
  115. model.setFocus("cmb_reqflag");
  116. }
  117. return false;
  118. }
  119. if (model.getValue(ipt_reqfrdd.attribute("ref")).length== 0 ) {
  120. if(pmsg == true)
  121. {
  122. messageBox("청구시작일자를 " ,"C001");
  123. model.setFocus("ipt_reqfrdd");
  124. }
  125. return false;
  126. }
  127. if (model.getValue(ipt_reqtodd.attribute("ref")).length== 0 ) {
  128. if(pmsg == true)
  129. {
  130. messageBox("청구종료일자를" ,"C001");
  131. model.setFocus("ipt_reqtodd");
  132. }
  133. return false;
  134. }
  135. if (model.getValue(ipt_delivedd.attribute("ref")).length== 0 ) {
  136. if(pmsg == true)
  137. {
  138. messageBox("출고일자를" ,"C001");
  139. model.setFocus("ipt_delivedd");
  140. }
  141. return false;
  142. }
  143. /*
  144. if (model.getValue(cmb_deliveprcsflag.attribute("ref")).length== 0 ) {
  145. if(pmsg == true)
  146. {
  147. messageBox("진행상태 " ,"C001");
  148. model.setFocus("cmb_deliveprcsflag");
  149. }
  150. return false;
  151. }
  152. if (model.getValue(cmb_deliveflag.attribute("ref")).length== 0 ) {
  153. if(pmsg == true)
  154. {
  155. messageBox("불출구분 " ,"C001");
  156. model.setFocus("cmb_deliveflag");
  157. }
  158. return false;
  159. }
  160. if (model.getValue(ipt_winpsn.attribute("ref")).length== 0 )
  161. {
  162. if(pmsg == true)
  163. {
  164. messageBox("불출자 " ,"C001");
  165. model.setFocus("ipt_winpsn");
  166. }
  167. return false;
  168. }
  169. */
  170. return true;
  171. }
  172. function fDefaultSetting(prow) {
  173. var grd_setting;
  174. if(sch_select.selectedIndex == 0)grd_setting = grd_nonwin;
  175. else grd_setting = grd_goodwin;
  176. model.setValue(grd_setting.nodeset+"["+prow+"]/instcd",model.getValue("/root/send/goodwin/instcd"));
  177. model.setValue(grd_setting.nodeset+"["+prow+"]/goodflag",model.getValue("/root/send/goodwin/goodflag"));
  178. model.setValue(grd_setting.nodeset+"["+prow+"]/windd",model.getValue("/root/send/goodwin/windd"));
  179. model.setValue(grd_setting.nodeset+"["+prow+"]/winpsn",model.getValue("/root/send/goodwin/winpsn"));
  180. model.setValue(grd_setting.nodeset+"["+prow+"]/windeptcd",model.getValue("/root/send/goodwin/windeptcd"));
  181. model.setValue(grd_setting.nodeset+"["+prow+"]/installplcecd",model.getValue("/root/send/goodwin/installplcecd"));
  182. model.setValue(grd_setting.nodeset+"["+prow+"]/paycond",model.getValue("/root/send/goodwin/paycond"));
  183. model.setValue(grd_setting.nodeset+"["+prow+"]/temppay",model.getValue("/root/send/goodwin/temppay"));
  184. model.setValue(grd_setting.nodeset+"["+prow+"]/calcdocukind",model.getValue("/root/send/goodwin/calcdocukind"));
  185. model.setValue(grd_setting.nodeset+"["+prow+"]/calcdocudd",model.getValue("/root/send/goodwin/calcdocudd"));
  186. model.setValue(grd_setting.nodeset+"["+prow+"]/suplplcecd",model.getValue("/root/send/goodwin/suplplcecd"));
  187. model.setValue(grd_setting.nodeset+"["+prow+"]/winseqno",prow);
  188. model.setValue(grd_setting.nodeset+"["+prow+"]/delivedeptqty",0);
  189. model.setValue(grd_setting.nodeset+"["+prow+"]/deliveno",0);
  190. model.setValue(grd_setting.nodeset+"["+prow+"]/stocqty",0);
  191. }
  192. function fSettingGoodList(pnode, nodename, userqtynm) {
  193. var codynode = instance1.selectNodes(pnode + "/*");
  194. var addRow = grd_goodwin.rows - grd_goodwin.fixedRows;
  195. if(model.getValue(grd_goodwin.nodeset + "[" + addRow + "]/goodcd").length > 0)addRow = addRow + 1;
  196. for (var j = 1; j <= codynode.length ; j++) {
  197. if(addRow > grd_goodwin.rows - grd_goodwin.fixedRows)
  198. {
  199. misfGridIUD(grd_goodwin,"A");
  200. addRow = grd_goodwin.rows - grd_goodwin.fixedRows;
  201. fDefaultSetting(addRow );
  202. }
  203. model.setValue(grd_goodwin.nodeset + "[" + addRow + "]/goodcd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodcd"));
  204. model.setValue(grd_goodwin.nodeset + "[" + addRow + "]/goodnm" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodnm"));
  205. model.setValue(grd_goodwin.nodeset + "[" + addRow + "]/goodspec" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodspec"));
  206. model.setValue(grd_goodwin.nodeset + "[" + addRow + "]/goodmodel" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodmodel"));
  207. model.setValue(grd_goodwin.nodeset + "[" + addRow + "]/prodcmpynm" , model.getValue(pnode +"/" + nodename + "[" + j + "]/prodcmpynm"));
  208. model.setValue(grd_goodwin.nodeset + "[" + addRow + "]/winpackqty" , model.getValue(pnode +"/" + nodename + "[" + j + "]/" + userqtynm));
  209. model.setValue(grd_goodwin.nodeset + "[" + addRow + "]/winpackunit" , model.getValue(pnode +"/" + nodename + "[" + j + "]/purcunit"));
  210. model.setValue(grd_goodwin.nodeset + "[" + addRow + "]/winunit" , model.getValue(pnode +"/" + nodename + "[" + j + "]/purcunit"));
  211. model.setValue(grd_goodwin.nodeset + "[" + addRow + "]/winqty" , model.getValue(pnode +"/" + nodename + "[" + j + "]/" + userqtynm));
  212. model.setValue(grd_goodwin.nodeset + "[" + addRow + "]/winpackcntperunit" , 1);
  213. model.setValue(grd_goodwin.nodeset + "[" + addRow + "]/winunitcost" , 0);
  214. model.setValue(grd_goodwin.nodeset + "[" + addRow + "]/winamt" , 0);
  215. addRow = addRow + 1;
  216. }
  217. //model.removenode(pnode);
  218. model.refresh();
  219. }
  220. // 진행상태가 강제종료시 선택 컨트롤 불능!
  221. function fGridSelectDisabled()
  222. {
  223. for (var s = 0; s < grd_goodreq.rows; s++)
  224. {
  225. //진행상태가 강제종료시 선택 컨트롤 불능!
  226. if (grd_goodreq.valueMatrix(s, grd_goodreq.colRef("deliveprcsflag")) == '6' )
  227. {
  228. grd_goodreq.isReadOnly(s, grd_goodreq.colRef("select")) = true;
  229. }
  230. }
  231. }
  232. function fSettingPreSaveData()
  233. {
  234. for(var liRow = grd_goodreq.fixedRows ; liRow < grd_goodreq.rows ; liRow++)
  235. {
  236. //출고생성되지 않은 데이타라면 출고시 입력을 위해 insert logic으로 구현한다
  237. if((grd_goodreq.valueMatrix(liRow ,"delivedd").length == 0 ||
  238. grd_goodreq.valueMatrix(liRow ,"deliveno").length == 0 ||
  239. grd_goodreq.valueMatrix(liRow ,"deliveseqno").length == 0) &&
  240. grd_goodreq.rowStatus(liRow) == "1")grd_goodreq.rowStatus(liRow) = "2";
  241. }
  242. }
  243. function fSettingSaveInData()
  244. {
  245. for(var liRow = grd_nonwin.fixedRows; liRow < grd_nonwin.rows ; liRow++)
  246. {
  247. fDefaultSetting(liRow);
  248. model.setValue(grd_nonwin.nodeset + "[" + (liRow - grd_nonwin.fixedRows + 1) + "]/windeptcd" , grd_nonwin.valueMatrix(liRow ,grd_nonwin.colRef("reqdeptcd")));
  249. //model.setValue(grd_nonwin.nodeset + "[" + (liRow - grd_nonwin.fixedRows + 1) + "]/delivedeptcd" , model.getValue(ipt_windeptcd.attribute("ref")));
  250. model.setValue(grd_nonwin.nodeset + "[" + (liRow - grd_nonwin.fixedRows + 1) + "]/delivedeptcd" , getUserInfo("userid"));
  251. getUserInfo("userid")
  252. }
  253. }
  254. // function fSettingSaveOutData()
  255. // {
  256. // alert("청구1");
  257. // var delivedeptqty;
  258. // var deliveqty;;
  259. //
  260. // for(var liRow = grd_goodreq.fixedRows ; liRow < grd_goodreq.rows ; liRow++)
  261. // {
  262. // delivedeptqty = parseInt(grd_goodreq.valueMatrix(liRow, grd_goodreq.colRef("deliveqty")));
  263. // deliveqty = parseInt(grd_goodreq.valueMatrix(liRow, grd_goodreq.colRef("delivedeptqty")));
  264. //
  265. //// grd_goodreq.valueMatrix(liRow, grd_goodreq.colRef("delivedeptqty")) = delivedeptqty + deliveqty;
  266. // //model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/delivedeptqty" , delivedeptqty + deliveqty);
  267. // /*--------------------------------------------------------------------
  268. // ------------------ //날짜를 바꿔 입력하면 그날로 새 출고건이
  269. // 삽입된다. ------------------------------------------------------------
  270. // --------------------------*/ var pdelivedeptqty =
  271. // parseInt(grd_goodreq.valueMatrix(liRow
  272. // ,grd_goodreq.colRef("delivedeptqty"))); var ppredelivedeptqty =
  273. // parseInt(grd_goodreq.valueMatrix(liRow
  274. // ,grd_goodreq.colRef("predelivedeptqty")));
  275. //
  276. // //출고생성되지 않은 데이타라면 출고시 입력을 위해 insert logic으로 구현한다
  277. // if((grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("delivedd")).length == 0 ||
  278. // grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("deliveno")).length == 0 ||
  279. // grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("deliveseqno")).length == 0) && pdelivedeptqty > 0 )
  280. //
  281. //// grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("select")) == "Y")
  282. // {
  283. // grd_goodreq.rowStatus(liRow) = "1";
  284. // model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/deliveunit" , grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("requnit")));
  285. // model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/delivedd" , model.getValue(ipt_delivedd.attribute("ref")));
  286. //// model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/delivedeptcd" , model.getValue(ipt_windeptcd.attribute("ref")));
  287. //// model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/delivepsn" , model.getValue(ipt_winpsn.attribute("ref")));
  288. // model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/delivedeptcd" , getUserInfo("dutplcecd"));
  289. // model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/delivepsn" , getUserInfo("userid"));
  290. // model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/windeptcd" , grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("reqdeptcd")));
  291. // }
  292. // /*--------------------------------------------------------------------------------------
  293. // // 출고량을 0 으로셋팅하면 status ='D'로 하구 BIZ에서 삭제처리한다.
  294. // --------------------------------------------------------------------------------------*/
  295. // else if((grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("delivedd")).length != 0 &&
  296. // grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("deliveno")).length != 0 &&
  297. // grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("deliveseqno")).length != 0) &&
  298. // ( ( pdelivedeptqty != ppredelivedeptqty ) && pdelivedeptqty == 0 ) )
  299. // {
  300. // grd_goodreq.rowStatus(liRow) = "4";
  301. // }
  302. //
  303. // model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/predeliveprcsflag" , "1");
  304. // }
  305. //
  306. // model.setValue("/root/send/save/gooddelive/gooddelivelist", grd_goodreq.getUpdateData());
  307. //
  308. //
  309. // submit("TXRSO00101");
  310. //
  311. // if (model.getValue(gvErrorMsgPath + "/type") != "error")btn_search.dispatch("DOMActivate");
  312. // else
  313. // {
  314. // for(var liRow = grd_goodreq.fixedRows ; liRow < grd_goodreq.rows ; liRow++)
  315. // {
  316. // //출고생성되지 않은 데이타라면 출고시 입력을 위해 insert logic으로 구현한다
  317. // if((grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("delivedd")).length == 0 ||
  318. // grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("deliveno")).length == 0 ||
  319. // grd_goodreq.valueMatrix(liRow , grd_goodreq.colRef("deliveseqno")).length == 0) &&
  320. // grd_goodreq.rowStatus(liRow) == "1")grd_goodreq.rowStatus(liRow) = "2";
  321. // }
  322. // }
  323. //
  324. //
  325. // ------------------------------
  326. // 출고 저장
  327. // ------------------------------
  328. function fSettingSaveOutData() {
  329. var delivedeptqty;
  330. var deliveqty;
  331. var remainqty;
  332. for (var liRow = grd_goodreq.fixedRows ; liRow < grd_goodreq.rows ; liRow++) {
  333. if (grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("select")) == "Y") {
  334. delivedeptqty = parseInt(grd_goodreq.valueMatrix(liRow, grd_goodreq.colRef("delivedeptqty")));
  335. remainqty = parseInt(grd_goodreq.valueMatrix(liRow, grd_goodreq.colRef("remainqty" )));
  336. deliveqty = parseInt(grd_goodreq.valueMatrix(liRow, grd_goodreq.colRef("deliveqty" )));
  337. grd_goodreq.valueMatrix(liRow, grd_goodreq.colRef("delivedeptqty")) = remainqty + deliveqty;
  338. /*--------------------------------------------------------------------------------------
  339. //날짜를 바꿔 입력하면 그날로 새 출고건이 삽입된다.
  340. --------------------------------------------------------------------------------------*/
  341. var pdelivedeptqty = parseInt(grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("delivedeptqty" )));
  342. var ppredelivedeptqty = parseInt(grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("predelivedeptqty")));
  343. //출고생성되지 않은 데이타라면 출고시 입력을 위해 insert logic으로 구현한다
  344. if ((grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("delivedd" )).length == 0 ||
  345. grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("deliveno" )).length == 0 ||
  346. grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("deliveseqno")).length == 0 ) &&
  347. pdelivedeptqty != 0 )
  348. {
  349. grd_goodreq.rowStatus(liRow) = "1";
  350. model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/deliveunit" , grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("requnit")) );
  351. model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/delivedd" , model.getValue(ipt_delivedd.attribute("ref")) );
  352. model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/delivedeptcd" , getUserInfo("dutplcecd") );
  353. model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/delivepsn" , getUserInfo("userid" ) );
  354. model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/windeptcd" , grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("reqdeptcd")));
  355. }
  356. // ------------------------------------------------------------------------------------
  357. // 출고량을 0 으로셋팅하면 status ='D'로 하구 BIZ에서 삭제처리한다.
  358. // ------------------------------------------------------------------------------------
  359. else if ( grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("delivedd" )).length != 0 &&
  360. grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("deliveno" )).length != 0 &&
  361. grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("deliveseqno")).length != 0 &&
  362. pdelivedeptqty != ppredelivedeptqty &&
  363. pdelivedeptqty == 0 ) {
  364. grd_goodreq.rowStatus(liRow) = "4";
  365. }
  366. model.setValue(grd_goodreq.nodeset + "[" + (liRow - grd_goodreq.fixedRows + 1) + "]/predeliveprcsflag" , "1");
  367. }
  368. }
  369. model.setValue("/root/send/save/gooddelive/gooddelivelist", grd_goodreq.getUpdateData());
  370. submit("TXRSO00101");
  371. if (model.getValue(gvErrorMsgPath + "/type") != "error")btn_search.dispatch("DOMActivate");
  372. else
  373. {
  374. for(var liRow = grd_goodreq.fixedRows ; liRow < grd_goodreq.rows ; liRow++)
  375. {
  376. //출고생성되지 않은 데이타라면 출고시 입력을 위해 insert logic으로 구현한다
  377. if ((grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("delivedd" )).length == 0 ||
  378. grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("deliveno" )).length == 0 ||
  379. grd_goodreq.valueMatrix(liRow ,grd_goodreq.colRef("deliveseqno")).length == 0) &&
  380. grd_goodreq.rowStatus(liRow) == "1") grd_goodreq.rowStatus(liRow) = "2";
  381. }
  382. }
  383. }
  384. function fSettingSaveOutData2()
  385. {
  386. var delivedeptqty;
  387. var deliveqty;
  388. for(var liRow = grd_gooddlvrlist.fixedRows ; liRow < grd_gooddlvrlist.rows ; liRow++)
  389. {
  390. /*--------------------------------------------------------------------------------------
  391. //날짜를 바꿔 입력하면 그날로 새 출고건이 삽입된다.
  392. --------------------------------------------------------------------------------------*/
  393. var pdelivedeptqty = parseInt(grd_gooddlvrlist.valueMatrix(liRow ,grd_gooddlvrlist.colRef("delivedeptqty")));
  394. if((grd_gooddlvrlist.valueMatrix(liRow ,grd_gooddlvrlist.colRef("delivedd")).length != 0 &&
  395. grd_gooddlvrlist.valueMatrix(liRow ,grd_gooddlvrlist.colRef("deliveno")).length != 0 &&
  396. grd_gooddlvrlist.valueMatrix(liRow ,grd_gooddlvrlist.colRef("deliveseqno")).length != 0) &&
  397. pdelivedeptqty == 0 )
  398. {
  399. grd_gooddlvrlist.rowStatus(liRow) = "4";
  400. }
  401. model.setValue(grd_gooddlvrlist.nodeset + "[" + (liRow - grd_gooddlvrlist.fixedRows + 1) + "]/predeliveprcsflag" , "1");
  402. }
  403. model.setValue("/root/send/save/gooddelive/gooddlvrlist", grd_gooddlvrlist.getUpdateData());
  404. submit("TXRSO00102");
  405. if (model.getValue(gvErrorMsgPath + "/type") != "error"){
  406. btn_search.dispatch("DOMActivate");
  407. }
  408. else
  409. {
  410. // for(var liRow = grd_gooddlvrlist.fixedRows ; liRow < grd_gooddlvrlist.rows ; liRow++)
  411. // {
  412. // //출고생성되지 않은 데이타라면 출고시 입력을 위해 insert logic으로 구현한다
  413. // if((grd_gooddlvrlist.valueMatrix(liRow ,grd_gooddlvrlist.colRef("delivedd")).length == 0 ||
  414. // grd_gooddlvrlist.valueMatrix(liRow ,grd_gooddlvrlist.colRef("deliveno")).length == 0 ||
  415. // grd_gooddlvrlist.valueMatrix(liRow , grd_gooddlvrlist.colRef("deliveseqno")).length == 0) &&
  416. // grd_gooddlvrlist.rowStatus(liRow) == "1")grd_gooddlvrlist.rowStatus(liRow) = "2";
  417. // }
  418. }
  419. }
  420. function fCheckSaveData() {
  421. if(model.getValue(cmb_instcd.attribute("ref")).length== 0 )
  422. {
  423. messageBox("기관코드를 " ,"C002");
  424. model.setFocus("cmb_instcd");
  425. return false;
  426. }
  427. for (var currow = grd_goodreq.fixedRows; currow < grd_goodreq.rows; currow++)
  428. {
  429. if (grd_goodreq.valueMatrix(currow, grd_goodreq.colRef("unwinresn" )).length == 0 &&
  430. grd_goodreq.valueMatrix(currow, grd_goodreq.colRef("deliveprcsflag")) == "6" )
  431. {
  432. messageBox("강제종결일 경우 사유를 반드시 " ,"C001");
  433. grd_goodreq.row = currow;
  434. grd_goodreq.col = grd_goodreq.colRef("unwinresn");
  435. grd_goodreq.editCell();
  436. return false;
  437. }
  438. }
  439. /*
  440. if(model.getValue(cmb_deliveprcsflag.attribute("ref")) == 1)
  441. {
  442. var chkins = false;
  443. for(var currow = grd_goodreq.fixedRows; currow < grd_goodreq.rows; currow++)
  444. {
  445. if(grd_goodreq.valueMatrix(currow, grd_goodreq.colRef("deliveno")).length == 0)
  446. {
  447. chkins = true;
  448. break;
  449. }
  450. }
  451. if(chkins)
  452. {
  453. if(model.getValue(ipt_windeptcd.attribute("ref")).length== 0 )
  454. {
  455. messageBox("출고부서를 " ,"C001");
  456. model.setFocus("ipt_windeptcd");
  457. return false;
  458. }
  459. if(model.getValue(ipt_winpsn.attribute("ref")).length== 0 )
  460. {
  461. messageBox("출고담담자를 " ,"C001");
  462. model.setFocus("ipt_winpsn");
  463. return false;
  464. }
  465. }
  466. }
  467. */
  468. return true;
  469. }
  470. function fAfterRetrieve()
  471. {
  472. var winqty = 0;
  473. var winamt = 0;
  474. for(var currow = grd_goodwin.fixedRows ; currow < grd_goodwin.rows ; currow++)
  475. {
  476. winqty = winqty + parseFloat( grd_goodwin.valueMatrix(currow , grd_goodwin.colRef("winqty")));
  477. winamt = winamt + 0 + parseFloat(grd_goodwin.valueMatrix(currow , grd_goodwin.colRef("winamt")));
  478. }
  479. model.setValue(ipt_sumwinqty.attribute("ref"),winqty);
  480. model.setValue(opt_sumwinamt.attribute("ref"),winamt);
  481. model.refresh();
  482. }
  483. // 청구구분
  484. var tReqFlagData = "A." // 01 Y 의료소모품
  485. + "B." // 02 Z 일반소모품
  486. + "C." // 03 K 의료비품
  487. + "D." // 04 G 일반비품
  488. + "E." // 05 P 약품및재료
  489. + "F." // 06 P 제제약품
  490. + "G." // 07 E 장비
  491. + "H." // 08 P 수액
  492. + "I." // 09 P 조영제
  493. + "S." // 10 B 수리관리
  494. + "X." // 11 T 교환물품
  495. + "Y." // 12 T 청구물품
  496. + "Z" ; // 13 T 멸균의뢰
  497. var tReqFlag = tReqFlagData.split(".");
  498. // 물품구분
  499. var tGoodFlagData = "Y." // 01 의료소모품
  500. + "Z." // 02 일반소모품
  501. + "U." // 03 의료비품
  502. + "G." // 04 일반비품
  503. + "P." // 05 약품
  504. + "P." // 06 약품
  505. + "P." // 07 약품및재료
  506. + "P." // 08 약품
  507. + "P." // 09 약품
  508. + "B." // 10 수리부품
  509. + "T." // 11 공급실물품
  510. + "T." // 12 공급실물품
  511. + "T" ; // 13 공급실물품
  512. var tGoodFlag = tGoodFlagData.split(".");
  513. var tPath = "/root/init/cmb_goodflag";
  514. var sPath = "/root/init/cmb_goodflagcopy";
  515. //
  516. function fReqFagChange(pReqFlag) {
  517. for (i = 0; i < tReqFlag.length; i++) {
  518. if (tReqFlag[i] == pReqFlag) {
  519. model.setValue(cmb_goodflag.attribute("ref"), tGoodFlag[i] );
  520. // alert(tGoodFlag[i]);
  521. cmb_goodflag.refresh();
  522. break;
  523. }
  524. }
  525. // cmb_goodflag.select(0); //청구구분
  526. }
  527. // ----------------------------------------------------------------------------
  528. // 접수 선택 / 취소
  529. // ----------------------------------------------------------------------------
  530. function fSelectSetting(pGrid, pRowStat, pCheckYn)
  531. {
  532. var reqqty;
  533. var deliveqty;
  534. var remainqty;
  535. var remstocqty;
  536. for (var liRow = pGrid.fixedRows ; liRow < pGrid.rows ; liRow++)
  537. {
  538. adjtqty = parseInt(model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/adjtqty"));
  539. deliveqty = parseInt(model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/deliveqty"));
  540. remainqty = parseInt(model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/remainqty"));
  541. remstocqty = parseInt(model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/remstocqty"));
  542. if(pRowStat == "2") {
  543. if(remstocqty > 0 && remstocqty >= remainqty && adjtqty != 0 && remainqty != 0) {
  544. pGrid.valueMatrix(liRow, pGrid.colRef("select")) = pCheckYn;
  545. pGrid.rowStatus(liRow) = pRowStat;
  546. }
  547. } else {
  548. pGrid.valueMatrix(liRow, pGrid.colRef("select")) = pCheckYn;
  549. pGrid.rowStatus(liRow) = pRowStat;
  550. }
  551. }
  552. model.refresh();
  553. }
  554. //----------------------
  555. // 재고잔량 계산
  556. //----------------------
  557. function fRemainDataCalc()
  558. {
  559. var sTotStocQty = 0;
  560. var sRemStocQty = 0;
  561. var sGoodCd = "";
  562. var sAllsizespecid = "";
  563. var wGoodCd = "";
  564. var wAllsizespecid = "";
  565. for (var i = 1; i < grd_goodreq.rows; i++) {
  566. if (model.getValue(grd_goodreq.nodeset+"["+ i +"]/remcheck") != "Y") {
  567. sGoodCd = model.getValue(grd_goodreq.nodeset+"["+ i +"]/goodcd" );
  568. sAllsizespecid = model.getValue(grd_goodreq.nodeset+"["+ i +"]/allsizespecid");
  569. sTotStocQty = parseInt(model.getValue(grd_goodreq.nodeset+"["+ i +"]/totstocqty" ));
  570. sRemStocQty = parseInt(model.getValue(grd_goodreq.nodeset+"["+ i +"]/totstocqty" ));
  571. for (var j = i; j < grd_goodreq.rows; j++) {
  572. if (sGoodCd == model.getValue(grd_goodreq.nodeset+"["+ j +"]/goodcd" ) &&
  573. sAllsizespecid == model.getValue(grd_goodreq.nodeset+"["+ j +"]/allsizespecid") ) {
  574. model.setValue(grd_goodreq.nodeset+"["+ j +"]/remcheck" , "Y");
  575. model.setValue(grd_goodreq.nodeset+"["+ j +"]/remstocqty", sRemStocQty+"" );
  576. //grd_goodreq.cellstyle("background-color", j, grd_goodreq.colRef("totstocqty"), j, grd_goodreq.colRef("remainqty")) = "";
  577. //grd_goodreq.cellstyle("color" , j, grd_goodreq.colRef("totstocqty"), j, grd_goodreq.colRef("remainqty")) = "";
  578. sRemStocQty = sRemStocQty - parseInt(model.getValue(grd_goodreq.nodeset+"["+ j +"]/remainqty" ));
  579. if (sRemStocQty < 1 ) {
  580. grd_goodreq.cellstyle("background-color", j, grd_goodreq.colRef("totstocqty"), j, grd_goodreq.colRef("remainqty")) = "yellow";
  581. grd_goodreq.cellstyle("color" , j, grd_goodreq.colRef("totstocqty"), j, grd_goodreq.colRef("remainqty")) = "red";
  582. }
  583. }
  584. }
  585. }
  586. }
  587. //
  588. for (var i = 1; i < grd_goodreq.rows; i++) {
  589. model.setValue(grd_goodreq.nodeset+"["+ i +"]/remcheck" , "N");
  590. }
  591. grd_goodreq.refresh();
  592. }
  593. /* ------------------------------------------------- */
  594. /* ------End Of List ------------------------------- */
  595. /* -------------------------------------------------- */