123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335 |
- /* ---------------------------------------------------------------------
-
- SMRSP00100_검수 및 입고관리.xrw
- - Version :
- 1) : Ver.1.00.01
- : Create By Chungpd
- : 2010.11.08
- ---------------------------------------------------------------------- */
- // 초기화하기
- function fInitialize()
- {
- // 금일 날자 설정
- var curdate = getCurrentDate();
- var cvtdate = curdate.toDate("YYYYMMDD");
- //misfGridComboComCdList("030M0011",grd_purcchk,"chkflag");
- misfComboComCdList("030M0011", cmb_chkflag);
- misfComboComCdList("030M0005", cmb_teamflag);
- misfComboComCdList("030M0001", cmb_wareflag_search);
- misfComboComCdList("R0109" , cmb_calcdocukind);
- misfComboComCdListMulti("Z0007","cmb_instcd");
- model.setValue("/root/send/search/instcd", getUserInfo("dutplceinstcd")); // 기관 설정
- //model.setValue(ipt_windtfrom.attribute("ref") ,cvtdate.getAddDate(-10,"D").getDateFormat("YYYYMMDD"));
- model.setValue(cal_purcchkdd_search.attribute("ref") , curdate);
-
- model.setValue("/root/send/nosearch/instcd" , model.getValue(cmb_instcd.attribute("ref")));
- model.setValue("/root/send/nosearch/purcchkdd" , model.getValue(cal_purcchkdd_search.attribute("ref")));
- if (submit("TRRSI10102")){
- var purcchkno = model.getValue("/root/main/list/purcchknoinfo/maxpurcchkno/purcchkno");
- model.setValue(ipt_purcchkno_search.attribute("ref"), purcchkno);
- }
- model.setValue("/root/send/nosearch/instcd" , "");
- model.setValue("/root/send/nosearch/purcchkdd" , "");
-
- btn_search.dispatch("DOMActivate");
- model.refresh();
-
- }
- // 검수 세부 내역에서 특정 검수수량 변경시 해당 검수금액이 자동으로 연산 되는 기능
- function fCalcAmt()
- {
- if( grd_purcchk.col == grd_purcchk.colRef("chkqty")
- || grd_purcchk.col == grd_purcchk.colRef("chkgoodunitcost")){
- var chkamt;
- var chkgoodunitcost = grd_purcchk.valueMatrix(grd_purcchk.row, grd_purcchk.colRef("chkgoodunitcost"));
- var chkqty = grd_purcchk.valueMatrix(grd_purcchk.row, grd_purcchk.colRef("chkqty"));
-
- chkamt = parseFloat(chkgoodunitcost) * parseFloat(chkqty);
- grd_purcchk.valueMatrix(grd_purcchk.row, grd_purcchk.colRef("chkamt")) = parseFloat(chkamt);
-
- }
-
- model.refresh();
-
- }
- // 공통에 변경된 사항이 있는지를 인지하기 위한 함수 (불필요한 transaction을 줄이고자하는 의도로 작성했음)
- function fCmprChngVal()
- {
- var bfpath = "/root/submain/list/purcchkinfo/purcchkmainlist";
- var prestpath = "/root/main/list/purcchkinfo/purcchkmainlist";
- var chngflag = false;
- if ( model.getValue(bfpath+"/purcchkdd" ) != model.getValue(prestpath+"/purcchkdd" ) // 검수일자
- || model.getValue(bfpath+"/purcchkno" ) != model.getValue(prestpath+"/purcchkno" ) // 검수번호
- || model.getValue(bfpath+"/teamflag" ) != model.getValue(prestpath+"/teamflag" ) // 팀구분
- || model.getValue(bfpath+"/acntcd" ) != model.getValue(prestpath+"/acntcd" ) // 계정코드
- || model.getValue(bfpath+"/acntnm" ) != model.getValue(prestpath+"/acntnm" ) // 계정코드명
- || model.getValue(bfpath+"/supdd" ) != model.getValue(prestpath+"/supdd" ) // 납품일
- || model.getValue(bfpath+"/calcdocukind" ) != model.getValue(prestpath+"/calcdocukind" ) // 계산서유형
- || model.getValue(bfpath+"/purccondd" ) != model.getValue(prestpath+"/purccondd" ) // 계약일자
- || model.getValue(bfpath+"/purcconno" ) != model.getValue(prestpath+"/purcconno" )){ // 계약번호
- chngflag = true;
-
- }
- return chngflag;
-
- }
- // 저장 - 공통항목으로 Grouping된 것을 하위단에 풀어주며 풀린 데이타를 서버 PGM으로 넘기는 기능이 함수에 녹아있음.
- function fSave(){
- var updtdata = "", rowno = "";
- if (fSaveValiChk() == false) return;
-
- for(i=1;i<grd_purcchk.rows;i++){
-
- if (fCmprChngVal() == true){
- if (grd_purcchk.rowStatus(i) == "0"){
- grd_purcchk.rowStatus(i) = "2";
- }
-
- grd_purcchk.valueMatrix(i, grd_purcchk.colRef("purcchkdd" )) = model.getValue(cal_purcchkdd.attribute("ref"));
- grd_purcchk.valueMatrix(i, grd_purcchk.colRef("purcchkno" )) = model.getValue(ipt_purcchkno.attribute("ref"));
- grd_purcchk.valueMatrix(i, grd_purcchk.colRef("supdd" )) = model.getValue(cal_supdd.attribute("ref"));
- grd_purcchk.valueMatrix(i, grd_purcchk.colRef("teamflag" )) = model.getValue(cmb_teamflag.attribute("ref"));
- grd_purcchk.valueMatrix(i, grd_purcchk.colRef("acntcd" )) = model.getValue(ipt_acntcd.attribute("ref"));
- grd_purcchk.valueMatrix(i, grd_purcchk.colRef("acntnm" )) = model.getValue(opt_acntnm.attribute("ref"));
- grd_purcchk.valueMatrix(i, grd_purcchk.colRef("calcdocukind" )) = model.getValue(cmb_calcdocukind.attribute("ref"));
- grd_purcchk.valueMatrix(i, grd_purcchk.colRef("newyn" )) = model.getValue(ipt_newyn.attribute("ref"));
- }
- }
-
- updtdata = getGridUpdateData(grd_purcchk);
-
- if(updtdata == ""){
- messageBox("저장할 데이타가 ","E014");
- return false;
- }
-
- if (rowno != ""){
- messageBox(rowno.substr(1, rowno.length-1)+"번째건의 수량이 입력되지 ", "I011");
- return false;
- }
- model.setValue("/root/send/save/purcchklist", updtdata);
- if (submit("TXRSI10101")){
- messageBox("저장이","I002");
- }else{
- messageBox("저장","E009");
- return;
- }
- btn_search.dispatch("DOMActivate");
- }
- // 계약 내역조회에 있는 데이타를 끌고 온다.(데이타의 유효성도 체크한다.)
- function fDataSet(pnode, nodename)
- {
- var flag = "Y", rowno = "", wflag = "Y", wrowno = "";
- var codynode = instance1.selectNodes(pnode + "/*");
- var vInstance = document.models(0).instances(0);
- var cnt = vInstance.selectNodes("/root/main/list/purcchkinfo/purcchksublist").length;
- if (codynode.length > 0){
- model.setValue(cmb_teamflag.attribute("ref") , model.getValue(pnode +"/" + nodename + "[" + 1 + "]/teamflag")); // 팀구분
- model.setValue(ipt_acntcd.attribute("ref" ) , model.getValue(pnode +"/" + nodename + "[" + 1 + "]/acntcd" )); // 계정코드
- model.setValue(opt_acntnm.attribute("ref" ) , model.getValue(pnode +"/" + nodename + "[" + 1 + "]/acntnm" )); // 계정과목
- model.refresh();
- }
-
- for (var j = 1; j <= codynode.length ; j++) {
-
- for (var i=1 ; i<= cnt;i++){
-
- var srcgoodcd = model.getValue(pnode +"/" + nodename + "[" + j + "]/goodcd");
- var goodcd = model.getValue(grd_purcchk.nodeset + "[" + i + "]/goodcd");
-
- var srcallsizespecid = model.getValue(pnode +"/" + nodename + "[" + j + "]/allsizespecid");
- var allsizespecid = model.getValue(grd_purcchk.nodeset + "[" + i + "]/allsizespecid");
-
- if (srcgoodcd == goodcd && srcallsizespecid == allsizespecid){
-
- flag = "N";
- rowno = rowno + ","+i; // 이미 존재하는 코드 check
-
- //messageBox("물품조회 "+i+"번째에 동일 물품이 존재합니다.", "I");
-
- }
-
- }
-
- if (flag == "Y"){
-
- grd_purcchk.addRow(false);
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/prestatus" , "I");
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/goodcd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodcd" )); // 물품코드
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/allsizespecid" , model.getValue(pnode +"/" + nodename + "[" + j + "]/allsizespecid" )); // 규격코드
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/goodnm" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodnm" )); // 물품명
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/goodspec" , model.getValue(pnode +"/" + nodename + "[" + j + "]/goodspec" )); // 규격
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/chkunit" , model.getValue(pnode +"/" + nodename + "[" + j + "]/conunit" )); // 계약단위
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/reqpackcntperunit" , model.getValue(pnode +"/" + nodename + "[" + j + "]/reqpackcntperunit" )); // Box수량
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/conqty" , model.getValue(pnode +"/" + nodename + "[" + j + "]/conqty" )); // 계약량
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/chkqty" , model.getValue(pnode +"/" + nodename + "[" + j + "]/spreqty" )); // 검수량
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/delivedeptcd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/reqdeptcd" )); // 출고부서코드
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/delivedeptnm" , model.getValue(pnode +"/" + nodename + "[" + j + "]/reqdeptnm" )); // 출고부서명
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/chkflag" , model.getValue(pnode +"/" + nodename + "[" + j + "]/chkflag" )); // 검수구분
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/chkgoodunitcost" , model.getValue(pnode +"/" + nodename + "[" + j + "]/congoodunitcost" )); // 검수단가
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/purccondd" , model.getValue(pnode +"/" + nodename + "[" + j + "]/purccondd" )); // 계약일자
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/purcconno" , model.getValue(pnode +"/" + nodename + "[" + j + "]/purcconno" )); // 계약번호
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/purcconseq" , model.getValue(pnode +"/" + nodename + "[" + j + "]/purcconseq" )); // 계약순번
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/purcchkdd" , model.getValue(cal_purcchkdd.attribute("ref"))); // 검수일자
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/purcchkno" , model.getValue(ipt_purcchkno.attribute("ref"))); // 검수번호
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/supdd" , model.getValue(cal_supdd.attribute("ref" ))); // 납품일자
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/teamflag" , model.getValue(cmb_teamflag.attribute("ref"))); // 팀구분
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/acntcd" , model.getValue(ipt_acntcd.attribute("ref" ))); // 계정코드
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/acntnm" , model.getValue(opt_acntnm.attribute("ref" ))); // 계정과목
- model.makeValue(grd_purcchk.nodeset + "[" + (grd_purcchk.row) + "]/calcdocukind" , model.getValue(cmb_calcdocukind.attribute("ref")));// 계산서일자
-
- grd_purcchk.cellAttribute("disabled", grd_purcchk.row , grd_purcchk.colRef("chkyn")) = "true";
-
- }
- flag = "Y";
-
- }
-
- if (rowno != ""){
- messageBox("입고검수 내역 "+rowno.substr(1, rowno.length-1)+"번째에 동일 물품이 존재합니다.", "I");
- }
- if (wrowno != ""){
- messageBox("이미 입력된 건의 입고계정과 "+wrowno.substr(1, wrowno.length-1)+"번째의 물품코드의 입고계정이 일치하지 않습니다.", "I");
- }
-
- grd_purcchk.refresh();
-
- }
- // 계약 내역 조회 전에 필수 입력 항목 check (계정과목은 품의 내역과 계약 내역의 동기화를 위해 꼭 필요함)
- function fDataValiChk()
- {
- var smsg = "";
-
- if(cal_purcchkdd.value.getTrim() == "") smsg += "검수일자, ";
- if(ipt_purcchkno.value.getTrim() == "") smsg += "검수번호, ";
- //if(ipt_acntcd.value.getTrim() == "") smsg += "계정과목, ";
- if (smsg == ""){
- return true;
- }else{
- messageBox(smsg.substr(0, smsg.length-2) + "은(는)","I003");
- return false;
-
- }
- }
- // 저장하기전에 필수항목 점검
- function fSaveValiChk()
- {
- var smsg = "";
-
- if(cal_purcchkdd.value.getTrim() == "") smsg += "검수일자, ";
- if(ipt_purcchkno.value.getTrim() == "") smsg += "검수번호, ";
- if(cmb_teamflag.value.getTrim() == "") smsg += "팀구분, ";
- if(ipt_acntcd.value.getTrim() == "") smsg += "계정과목, ";
- if (smsg == ""){
- return true;
- }else{
- messageBox(smsg.substr(0, smsg.length-2) + "은(는)","I003");
- return false;
- }
- }
- // 다중 선택해서 삭제 가능하도록 처리(현재는 사용하지 않음)
- function fDelSetting(pGrid)
- {
-
- var rowIdx, rowInval="";
-
- if (pGrid.selectedRows > 0) {
- var selectedRows = Array(pGrid.selectedRows);
- for(i=0;i< pGrid.selectedRows;i++) {
- selectedRows[i] = pGrid.selectedRow(i);
- }
- }else{
- messageBox("삭제할 데이타가 ","E014");
- return;
- }
-
- for ( var i= 0; i < selectedRows.length; i++){
-
- rowIdx = selectedRows[i];
- if (pGrid.valueMatrix(rowIdx, pGrid.colRef("purcchkno")) == ""){
- pGrid.rowStatus(rowIdx) = "4";
- }else{
- rowInval += rowIdx + ","
- }
- }
- if (rowInval != ""){
- messageBox(rowInval.substr(0, rowInval.length-1)+"번째는 계약처리된", "I009");
-
- }
- model.refresh();
- }
- // 데이타의 무결성을 위해 수정시 기본키로 잡혀 있는 계약일자와 번호는 절대 수정 불가능 상태로 만드는 기능
- function fDisabledControl(state)
- {
- cal_purcchkdd.disabled = state;
- ipt_purcchkno.disabled = state;
- }
- // 데이타가 없으면 입력과 관련된 버튼들을 불능 상태로 만드는 기능
- function fConDisabledControl(state)
- {
- btn_purccon.disabled = state;
- btn_choidel.disabled = state;
- btn_save.disabled = state;
- }
-
- // 출력물 생성시 임시 노드에 지정 노드값 복사는 가능 (미사용 향후 개발의 편의성을 위해 추가한 기능)
- function freqlistprint() {
- var Path = "/root/send/winregstprnt/winregstprntlist";
- model.removenode(Path);
- model.makeNode(Path);
-
- copyNodesetType(Path, grd_winregst.nodeset+ "[chk='Y']");
- exeReportPreview("RPRSP00100","XMLSTR");
- }
|