123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182 |
- String.prototype.rpdfToDate = rpdfToDate;
- Date.prototype.rpdfFormat = rpdfFormat;
- Date.prototype.rpdfGetRelativeDate = rpdfGetRelativeDate;
- //코드 HELP 화면 OPEN-Modal
- /*
- phelp_kind : "01" - 근무스케쥴신청등록_사유등록
- pcontrol_name : 값을 체크하고 저장될 목적지 컨트롤(Grid,Input.....)
- pcdgrupid : 공통코드일경우 코드군 ("Z0007","R0001"...)
- precv_list: 리턴받을 Instance명 (마지막 Element만 ','로 분리)
- pdefault_value : 부모 윈도우에서 넘어오는 값
- */
- function rpdfOpenPopUpList(phelp_kind, pcontrol_name, pcdgrupid, precv_list, pdefault_value, pNodeName, pSendNode)
- {
- var recv_list = precv_list.split(",");
-
- var arrNodeNames = "";
-
- if(pNodeName != "" && pNodeName != null)
- {
- var arrNodeNames = pNodeName.split(",");
- }
- if(pdefault_value != "" && pdefault_value != null)
- {
- var default_value = pdefault_value.split(",");
- }
-
- var recvref_node = "/root/source/recvref";
- var cdgrupid_node = "/root/source/cdgrupid";
- var recvitem_node = "/root/source/recvitem";
- var default_node = "/root/source/defaultvalue";
- var checkyn_node = "/root/source/checkyn";
- var control_node = "/root/source/control";
-
- model.removeNodeset(recvref_node);
- model.removeNodeset(cdgrupid_node);
- model.removeNodeset(recvitem_node);
- model.removeNodeset(default_node);
- model.removeNodeset(checkyn_node);
- model.removeNodeset(control_node);
-
- model.makeNode(recvref_node);
- model.makeNode(cdgrupid_node);
- model.makeNode(recvitem_node);
- model.makeNode(default_node);
- model.makeNode(checkyn_node);
-
- if(precv_list != "")
- {
- for (var k = 0; k <=recv_list.length-1; k++)
- {
- model.makeValue(recvitem_node + "/" + recv_list[k], recv_list[k]);
- }
- }
-
- var obj = null;
-
- if (pcontrol_name.elementName == "xforms:datagrid")
- {
- //grid에서 호출 했을경우.
-
- pcontrol_name.endEditCell();
- if(pdefault_value != "" && pdefault_value != null)
- {
- for (var z = 0; z < default_value.length; z++)
- {
- obj = document.controls(default_value[z]);
- if (obj != null && obj.elementName != "xforms:datagrid" )
- {
- model.makeValue(default_node + "/" + default_value[z] , model.getValue(obj.attribute("ref")));
-
- }
- // else if (obj != null && obj.elementName == null && arrNodeNames.length == default_value.length)
- // {
- // model.makeValue(default_node + "/" + arrNodeNames[z], model.getValue(obj.attribute("ref")));
- // }
- else
- {
- model.makeValue(default_node + "/" + default_value[z] ,
- model.getValue(pcontrol_name.nodeset + "[" + (pcontrol_name.row - pcontrol_name.fixedRows + 1)+ "]/" + default_value[z]));
- }
- }
- }
- model.setValue(recvref_node, pcontrol_name.nodeset + "[" + (pcontrol_name.row - pcontrol_name.fixedRows + 1) + "]");
-
- }
- else
- {
- //grid외의 control에서 호출했을경우.
- var node_path = pcontrol_name.attribute("ref").split("/");
- var source_path = "/root";
-
- for (var i = 2 ; i < node_path.length - 1; i++)
- {
- source_path = source_path + "/" + node_path[i];
- }
-
- if(pdefault_value != "" && pdefault_value != null)
- {
- for (var z = 0; z < default_value.length; z++)
- {
- obj = document.controls(default_value[z]);
-
- /*
- if (obj != null && arrNodeNames.length == default_value.length)
- {
- model.makeValue(default_node + "/" + arrNodeNames[z], model.getValue(obj.attribute("ref")));
- }
- else if (obj != null)
- {
- model.makeValue(default_node + "/" + default_value[z] , model.getValue(obj.attribute("ref")));
-
- }
- */
- if (obj != null)
- {
- model.makeValue(default_node + "/" + default_value[z] , model.getValue(obj.attribute("ref")));
-
- }
- }
- }
-
- model.setValue(recvref_node ,source_path);
- }
-
-
- if (pcdgrupid.length > 0 )
- {
- model.setValue(cdgrupid_node ,pcdgrupid);
- }
-
- model.makeValue(control_node, pcontrol_name.attribute("id"));
-
- var window_name = "" ;
-
- if (phelp_kind == "1") // 근무스케쥴신청_사유등록HELP
- {
- window_name = "SPRPD10700";
- }
- else if(phelp_kind == "2") // 근무스케쥴신청_사유조회HELP
- {
- window_name = "SPRPD10800";
- }
- else if(phelp_kind == "3") // 개인근무변경신청
- {
- window_name = "SPRPD10001";
- }
- else
- {
- window_name = "";
- }
-
- modal(window_name,"","","","", pSendNode, "/root/target");
- }
- /*
- 코드 HELP 화면의 선택된 값 Return
- pdesgrid_name : 리턴값을 받을 대상 오프너의 그리드
- pgrid_name : HELP화면의 Grid
- */
- function rpdfPopUpListReturn() {
-
- var recv_ref = model.getValue("root/target/recvref");
- var node = instance1.selectNodes("root/target/recvitem/*");
- var control_name = model.getValue("root/target/control");
- var obj = document.controls(control_name);
-
- if (checkOpener()) {
- for (var j = 0; j < node.length; j++) {
- opener.model.makeValue(recv_ref + "/" + node.item(j).nodeName, model.getValue(pgrid_name.nodeset + "[" + (pgrid_name.row - pgrid_name.fixedRows + 1) + "]/" + pgrid_name.colAttribute(j+1,"ref")));
- }
- window.close();
- }
- else {
- messageBox("상위 화면이 변경되어 데이터를 전달", "E001");
- }
- }
- //HELP 화면에서 취소 버튼 Click시 처리
- /*
- pcontrol_name : 부모화면의 컨트롤/Grid 명
- */
- function rpdfPopUpListCancel() {
-
- if (checkOpener()) {
- window.close();
- }
- else {
- messageBox("상위 화면이 변경되어 데이터를 전달", "E001");
- }
- }
- //콤보에 권한별 부서코드세팅
- //pcontrol_name : 세팅될 컨트롤 명
- //pall : 콤보에 세팅값에 전체항목 추가 'null' or 'Y' 일시 '전체' 셋팅
- function rpdfComboCdList(pcontrol_name, pall)
- {
- var control_id = pcontrol_name.attribute("id");
-
- var comcd_node = "/root/send/comcdref";
- var comcd_rsltnode = "/root/init/combocd";
- var comcd_itemset = "/root/init/" + control_id;
-
- var comcd_tempnode = "/root/init/temp";
-
- model.removeNodeset(comcd_node);
- model.removeNodeset(comcd_itemset);
- model.removeNodeSet(comcd_tempnode);
-
- model.makeNode(comcd_node);
- model.makeNode(comcd_node + "/cdid");
- model.makeNode(comcd_node + "/cdnm");
- model.makeNode(comcd_node + "/refcond");
-
- model.makeNode(comcd_rsltnode);
- model.makeNode(comcd_itemset);
- model.makeNode(comcd_tempnode);
-
- pcontrol_name.choices.itemset.attribute("nodeset") = comcd_itemset+"/combocodelist";
- pcontrol_name.choices.itemset.label.attribute("ref") = "cdnm";
- pcontrol_name.choices.itemset.value.attribute("ref") = "cdid";
-
- model.setValue(comcd_node + "/cdid", "%");
- model.setValue(comcd_node + "/cdnm", "%");
- model.makeValue(comcd_node + "/userid", getUserInfo("userid"));
- model.makeValue(comcd_node + "/instcd", getUserInfo("dutplceinstcd"));
-
- model.removeChild("TRRPD02210");
- model.createChild("xforms:submission", "id:TRRPD02210;mediatype:application/x-www-form-urlencoded; method:post; ref:" + comcd_node + "; resultref:" + comcd_rsltnode + "; ");
- submit("TRRPD02210");
-
- if(pall != null && pall == "Y")
- {
- model.copyNode(comcd_tempnode, comcd_rsltnode);
- model.makeValue(comcd_rsltnode + "/combocodelist[" + 1 + "]/cdnm", " 전체 ");
- model.makeValue(comcd_rsltnode + "/combocodelist[" + 1 + "]/cdid", "");
- sourcenode = document.models(0).instances(0).selectSingleNode(comcd_tempnode);
- tarnode = document.models(0).instances(0).selectSingleNode(comcd_rsltnode);
- cnt = 1;
- var sourcenodelist = sourcenode.childNodes;
- while (childNode = sourcenodelist.nextNode())
- {
- model.makeValue(comcd_rsltnode + "/combocodelist[" + (cnt + 1) + "]/cdnm", childNode.getXPathString(comcd_tempnode + "/combocodelist[" + cnt + "]/cdnm"));
- model.makeValue(comcd_rsltnode + "/combocodelist[" + (cnt + 1) + "]/cdid", childNode.getXPathString(comcd_tempnode + "/combocodelist[" + cnt + "]/cdid"));
- cnt++;
- }
-
- // model.removeNode(comcd_tempnode);
- }
- // else model.copyNode(comcd_itemset,comcd_rsltnode);
- model.refresh();
- }
- //Grid 콤보에 공통코드 Setting
- /*
- pcdgrupid : 공통코드군
- pgrid_name: Grid명
- pcolumn_id: Column명
- pmid_cls : 구매재고일경우만 넘김('PUR')
- */
- function rpdfGridComboComCdList(pcontrol_name, pref_list)
- {
- var control_id = pcontrol_name.attribute("id");
- var pcdgrupid="";
- var ref_list=pref_list.split(",");
- var comcd_node = "/root/send/comcdref";
- var comcd_rsltnode = "/root/init/comcd";
- var comcd_itemset = "/root/init/" + control_id;
- model.removeNodeset(comcd_node);
- model.removeNodeset(comcd_itemset);
-
- model.makeNode(comcd_node);
- model.makeNode(comcd_node + "/emplno");
- model.makeNode(comcd_node + "/dutplceinstcd");
- model.makeNode(comcd_node + "/cdgrupid");
- model.makeNode(comcd_node + "/cdid");
- model.makeNode(comcd_node + "/cdnm");
- model.makeNode(comcd_node + "/refcond");
-
- model.makeNode(comcd_rsltnode);
- model.makeNode(comcd_itemset);
-
- pcontrol_name.choices.itemset.attribute("nodeset") = comcd_itemset+"/comcodelist";
- pcontrol_name.choices.itemset.label.attribute("ref") = "cdnm";
- pcontrol_name.choices.itemset.value.attribute("ref") = "cdid";
- // pcontrol_name.refresh();
- model.setValue(comcd_node + "/emplno", ref_list[0]);
- model.setValue(comcd_node + "/dutplceinstcd", ref_list[1]);
- model.setValue(comcd_node + "/cdgrupid", pcdgrupid);
- model.setValue(comcd_node + "/cdid","%");
- model.setValue(comcd_node + "/cdnm","%");
- model.removeChild("TRRPD01302");
- model.createChild("xforms:submission", "id:TRRPD01302;mediatype:application/x-www-form-urlencoded; method:post; ref:" + comcd_node + "; resultref:" + comcd_rsltnode + "; ");
- submit("TRRPD01302");
- }
- /*
- function rpdfGridComboComCdList(pcdgrupid, pgrid_name, pcolumn_id,pref_list,cur_row)
- {
- var control_id = pgrid_name.attribute("id");
- var ref_list=pref_list.split(",");
- var column_no = pgrid_name.colRef(pcolumn_id);
- var column_name = pgrid_name.colAttribute(column_no, "id");
- var column_obj = document.controls(column_name);
- var comcd_node = "/root/send/comcdref";
- var comcd_rsltnode = "/root/init/comcd";
- var comcd_itemset = "/root/init/" + control_id + "/" + pcolumn_id;
-
- model.removeNodeset(comcd_node);
- model.removeNodeset(comcd_itemset);
-
- model.makeNode(comcd_node);
- model.makeNode(comcd_node + "/cdgrupid");
- model.makeNode(comcd_node + "/emplno");
- model.makeNode(comcd_node + "/dutplceinstcd");
- model.makeNode(comcd_node + "/cdid");
- model.makeNode(comcd_node + "/cdnm");
- model.makeNode(comcd_node + "/refcond");
-
- model.makeNode(comcd_rsltnode);
- model.makeNode(comcd_itemset);
-
- var column_id = pgrid_name.colattribute(column_no, "id");
- column_obj.choices.itemset.attribute("nodeset")= comcd_itemset+"/comcodelist";
- column_obj.choices.itemset.label.attribute("ref") = "cdnm";
- column_obj.choices.itemset.value.attribute("ref") = "cdid";
-
-
-
- // pgrid_name.choices.itemset.attribute("nodeset") = comcd_itemset+"/comcodelist";
- //
- // alert("kkkk");
- // pgrid_name.choices.itemset.label.attribute("ref") = "cdnm";
- // pgrid_name.choices.itemset.value.attribute("ref") = "cdid";
- // pgrid_name.refresh();
- model.setValue(comcd_node + "/emplno", ref_list[0]);
- model.setValue(comcd_node + "/dutplceinstcd", ref_list[1]);
- model.setValue(comcd_node + "/cdgrupid", pcdgrupid);
- model.setValue(comcd_node + "/cdid","%");
- model.setValue(comcd_node + "/cdnm","%");
-
-
- model.removeChild("TRRPD01302");
- model.createChild("xforms:submission", "id:TRRPD01302;mediatype:application/x-www-form-urlencoded; method:post; ref:" + comcd_node + "; resultref:" + comcd_rsltnode + "; ");
- submit("TRRPD01302");
- model.copyNode(comcd_itemset,comcd_rsltnode);
-
- model.refresh();
- }
- */
- /* ---------------------------------------------------
- * 두 일자사이의 차를 일단위로 반환
- * pFromDate - 시작일자 문자열 (YYYYMMDD or YYYY/MM/DD or YYYY-MM-DD)
- * pToDate - 종료일자 문자열 (YYYYMMDD or YYYY/MM/DD or YYYY-MM-DD)
- * return : 종료일자에서 시작일자를 뺀 일자
- ---------------------------------------------------*/
-
- function rpdfGetDateTerm(pFromDate, pToDate)
- {
- var arrFrDate = new Array(3);
- var arrToDate = new Array(3);
- if(pFromDate.length == 8) {
- arrFrDate[0] = pFromDate.substr(0, 4);
- arrFrDate[1] = pFromDate.substr(4, 2);
- arrFrDate[2] = pFromDate.substr(6, 2);
- } else if(pFromDate.length == 10) {
- arrFrDate = pFromDate.split("/");
- if(arrDate.length != 3) {
- arrFrDate = pFromDate.split("-");
- }
- }
- if(pToDate.length == 8) {
- arrToDate[0] = pToDate.substr(0, 4);
- arrToDate[1] = pToDate.substr(4, 2);
- arrToDate[2] = pToDate.substr(6, 2);
- } else if(pToDate.length == 10) {
- arrToDate = pToDate.split("/");
- if(arrDate.length != 3) {
- arrToDate = pToDate.split("-");
- }
- }
- var frdt = new Date(eval(arrFrDate[0]), eval(arrFrDate[1]) - 1, eval(arrFrDate[2]));
- var todt = new Date(eval(arrToDate[0]), eval(arrToDate[1]) - 1, eval(arrToDate[2]));
- var diff = (todt - frdt) / 1000;
- diff = diff / (60 * 60 * 24);
- return diff;
- }
- /**
- *---------------------------------------------------
- * 두 시간의 차를 초단위로 반환
- * pFromTime - 시작시간 문자열 (hhmm or hh:mm or hhmmss or hh:mm:ss)
- * pToTime - 종료시간 문자열 (hhmm or hh:mm or hhmmss or hh:mm:ss)
- * return : (종료시간 - 시작시간) 를 초단위로 반환
- * ---------------------------------------------------
- */
- function rpdfGetTimeTerm(pFromTime, pToTime)
- {
- var arrFrTime = new Array(3);
- var arrToTime = new Array(3);
- arrFrTime[0] = pFromTime.substr(0, 2);
- arrFrTime[1] = pFromTime.substr(2, 2);
- arrFrTime[2] = pFromTime.substr(4, 2);
- if(arrFrTime[2].length == 0) arrFrTime[2] = 0;
- // } else if(pFromTime.length == 5 || pFromTime.length == 8) {
- // arrFrTime = pFromTime.split(":");
- // if(arrFrTime[2].length == 0) arrFrTime[2] = 0;
- // }
- // if(pToTime.length == 4 || pToTime.length == 6) {
- arrToTime[0] = pToTime.substr(0, 2);
- arrToTime[1] = pToTime.substr(2, 2);
- arrToTime[2] = pToTime.substr(4, 2);
- if(arrToTime[2].length == 0) arrToTime[2] = 0;
- // } else if(pToTime.length == 5 || pToTime.length == 8) {
- // arrToTime = pFromTime.split(":");
- // if(arrFrTime[2].length == 0) arrToTime[2] = 0;
- // }
- var frtm = new Date(2000, 1, 1, eval(arrFrTime[0]), eval(arrFrTime[1]), eval(arrFrTime[2]), 0);
- var totm = new Date(2000, 1, 1, eval(arrToTime[0]), eval(arrToTime[1]), eval(arrToTime[2]), 0);
- var diff = (totm - frtm) / 1000;
- return diff;
- }
- //=============================================================================================
- // 근무시간 계산 - 분단위
- // pFrdate : 시작일자
- // pFrtime : 시작시간
- // pTodate : 종료일자
- // pTotime : 종료시간
- //=============================================================================================
- function rpdfGetCalcDutyTime(pFrdate, pFrtime, pTodate, pTotime) {
-
- var iTimeTerm = 0;
- var iDateTerm = 0;
- //근무시간을 구함(분단위)
- if (pFrdate == pTodate) {
- iTimeTerm = rpdfGetTimeTerm(pFrtime, pTotime) / 60;
- } else {
- iDateTerm = rpdfGetDateTerm(pFrdate, pTodate);
- if (iDateTerm == 1) {
- iTimeTerm = rpdfGetTimeTerm(pFrtime, "2400") / 60;
- iTimeTerm = iTimeTerm + rpdfGetTimeTerm("0000", pTotime) / 60;
- } else {
- iTimeTerm = rpdfGetTimeTerm(pFrtime, "2400") / 60;
- iTimeTerm = iTimeTerm + rpdfGetTimeTerm("0000", pTotime) / 60;
- iTimeTerm = iTimeTerm + (iDateTerm-1)*24*60;
- }
- }
- return Math.floor(iTimeTerm);
- }
- function rpdToDay(ptime) {
- var time = ptime.substring(0,2);
- var mm =ptime.substring(2,2);
- if (time <10)
- time=("0"+time).toString();
- else
- time=time.toString();
- if (mm <10)
- mm=("0"+mm).toString();
- else
- mm=mm.toString();
-
-
-
- return time+mm;
- }
- //=============================================================================================
- // 야간 근무시간 계산 - 분단위
- // pFrdate : 시작일자
- // pFrtime : 시작시간
- // pTodate : 종료일자
- // pTotime : 종료시간
- //=============================================================================================
- function rpdfGetNightTime(pFrdate, pFrtime, pTodate, pTotime){
-
- //===== 야간근무시간
- var sGjfrdt = parseFloat(pFrdate);
- var sGjtodt_v = pFrdate.rpdfToDate("YYYYMMDD").rpdfGetRelativeDate(1, "D").rpdfFormat();
- var sGjtodt =parseFloat(sGjtodt_v);
- var sGjfrtm = parseFloat("2200");
- var sGjtotm = parseFloat("0600");
-
- var sFrdate, sTodate, sFrtime, sTotime;
- var pFrdate = parseFloat(pFrdate);
- var pFrtime = parseFloat(pFrtime);
- var pTodate = parseFloat(pTodate);
- var pTotime = parseFloat(pTotime);
- //야간근무에 해당되는 시각..
- /* if (pFrtime <= sGjtotm || pFrtime >= sGjfrtm || pTotime <= sGjtotm || pTotime >= sGjfrtm) {
- if(pFrtime >= sGjfrtm){
- ssFrtime = pFrtime
- }
-
- }*/
-
- if (pFrtime <= sGjtotm || pFrtime >= sGjfrtm || pTotime <= sGjtotm || pTotime >= sGjfrtm) {
- if (pFrtime > sGjtotm && pFrtime <= sGjfrtm) {
- pFrtime = rpdToDay(pFrtime);
- sGjtotm = rpdToDay(sGjtotm);
- sGjfrtm = rpdToDay(sGjfrtm);
- pFrdate=pFrdate.toString();
- pFrddtm=pFrdate+pFrtime;
-
- if (parseFloat(pFrddtm) > (sGjfrdt + sGjfrtm)) {
- parseFloat(sFrdate) = pFrdate;
- parseFloat(sFrtime) = pFrtime;
- } else {
- parseFloat(sFrdate) = sGjfrdt;
- parseFloat(sFrtime) = sGjfrtm;
- }
- }
-
- //alert(pFrdate + pFrtime + " ~ " + pTodate + pTotime);
- /* alert("a=="+pFrdate +"==="+ sGjtotm + " ~ " + pFrtime +"==="+ sGjfrtm);
- if (pFrtime > sGjtotm && pFrtime <= sGjfrtm) {
- alert("1");
- if ((pFrdate + pFrtime) > (sGjfrdt + sGjfrtm)) {
- alert("2");
- parseFloat(sFrdate) = pFrdate;
- parseFloat(sFrtime) = pFrtime;
- } else {
- alert("3");
- parseFloat(sFrdate) = sGjfrdt;
- parseFloat(sFrtime) = sGjfrtm;
- }
- alert("2=="+sFrdate +"==="+ sFrtime);
- if ((pTodate + pTotime) < (sGjtodt + sGjtotm)) {
- alert("4");
- sTodate = pTodate;
- sTotime = pTotime;
- } else {
- alert("5");
- sTodate = sGjtodt;
- sTotime = sGjtotm;
- }
- alert("3=="+sTodate +"==="+ sTotime);
- } else if (pFrtime <= sGjtotm) {
- sGjtodt = sGjfrdt;
- sFrdate = pFrdate;
- sFrtime = pFrtime;
- alert("4=="+sGjtodt +"==="+ sFrdate+"=="+sFrtime);
- if ((pTodate + pTotime) < (sGjtodt + sGjtotm)) {
- sTodate = pTodate;
- sTotime = pTotime;
- } else {
- sTodate = sGjtodt;
- sTotime = sGjtotm;
- }
- }
- }*/
- }
- return rpdfGetCalcDutyTime(sFrdate, sFrtime, sTodate, sTotime);
- }
- //휴일근무에 해당하는시간 계산
- // pFrdate : 시작일자
- // pFrtime : 시작시간
- // pTodate : 종료일자
- // pTotime : 종료시간
- // pHolyflag1 : 시작일 휴무여부 : 휴일이면 'Y' 아니면 'N'
- // pHolyflag2 : 종료일 휴무여부 : 휴일이면 'Y' 아니면 'N'
-
- function rpdfGetHolyTime(pFrdate, pFrtime, pTodate, pTotime,pHolyflag1, pHolyflag2) {
-
- var iTimeTerm = 0;
- var iDateTerm = 0;
- var iTimeTerm1 = 0;
- var iDateTerm1 = 0;
- var iTimeTerm2 = 0;
- var iDateTerm2 = 0;
-
- if(pHolyflag1=='Y'){
- if (pFrdate == pTodate) {
- iTimeTerm1 = rpdfGetTimeTerm(pFrtime, pTotime) / 60;
- } else {
- iDateTerm1 = rpdfGetDateTerm(pFrdate, pTodate);
- if (iDateTerm1 == 1) {
- iTimeTerm1 = rpdfGetTimeTerm(pFrtime, "2400") / 60;
- iTimeTerm1= iTimeTerm1 + rpdfGetTimeTerm("0000", pTotime) / 60;
- } else {
- iTimeTerm1 = rpdfGetTimeTerm(pFrtime, "2400") / 60;
- iTimeTerm1 = iTimeTerm1 + rpdfGetTimeTerm("0000", pTotime) / 60;
- iTimeTerm1 = iTimeTerm1 + (iDateTerm-1)*24*60;
- }
- }
- }
- if(pHolyflag2=='Y'){
- if (pFrdate == pTodate) {
- iTimeTerm2 = rpdfGetTimeTerm(pFrtime, pTotime) / 60;
- } else {
- iDateTerm2 = rpdfGetDateTerm(pFrdate, pTodate);
- if (iDateTerm2 == 1) {
- iTimeTerm2 = rpdfGetTimeTerm(pFrtime, "2400") / 60;
- iTimeTerm2 = iTimeTerm2 + rpdfGetTimeTerm("0000", pTotime) / 60;
- } else {
- iTimeTerm2 = rpdfGetTimeTerm(pFrtime, "2400") / 60;
- iTimeTerm2 = iTimeTerm2 + rpdfGetTimeTerm("0000", pTotime) / 60;
- iTimeTerm2 = iTimeTerm2 + (iDateTerm2-1)*24*60;
- }
- }
- }
- iTimeTerm=iTimeTerm1+iTimeTerm2;
- return Math.floor(iTimeTerm);
- }
- /**
- * 문자열 날짜를 Date로 반환
- * var date = "2002-03-05".toDate("YYYY-MM-DD")
- * pPattern - Date를 표현하고 있는 현재의 String을 pattern으로 표현한다.
- *
- * # syntex
- *
- * YYYY : year(4자리)
- * YY : year(2자리)
- * MM : month in year(number)
- * DD : day in month
- * hh : hour in day (0~23)
- * mm : minute in hour
- * ss : second in minute
- * SS : millisecond in second
- *
- * 주의) 이 중에서 YYYY(YY), MM, DD 는 반드시 있어야 한다.
- *
- * return : 변환된 Date Object.
- * ---------------------------------------------------
- */
- function rpdfToDate(pPattern)
- {
- var index = -1;
- var year;
- var month;
- var day;
- var hour = 0;
- var min = 0;
- var sec = 0;
- var ms = 0;
- if ((index = pPattern.indexOf("YYYY")) == -1 ) {
- index = pPattern.indexOf("YY");
- year = "20" + this.substr(index, 2);
- } else {
- year = this.substr(index, 4);
- }
- index = pPattern.indexOf("MM");
- month = this.substr(index, 2);
- index = pPattern.indexOf("DD");
- day = this.substr(index, 2);
- if ((index = pPattern.indexOf("hh")) != -1 ) {
- hour = this.substr(index, 2);
- }
- if ((index = pPattern.indexOf("mm")) != -1 ) {
- min = this.substr(index, 2);
- }
- if ((index = pPattern.indexOf("ss")) != -1 ) {
- sec = this.substr(index, 2);
- }
- if ((index = pPattern.indexOf("SS")) != -1 ) {
- ms = this.substr(index, 2);
- }
- return new Date(year, month - 1, day, hour, min, sec, ms);
- }
- /**
- * 특정일자의 상대일자(+/-)를 계산
- * pNum - 구하고자 하는 상대일 수 (+/-)
- * pKind - 구하고자 하는 기준(위 참조)
- *
- * pKind에 따른 상대일자를 계산한다.
- *
- * "Y" : 년
- * "M" : 월
- * "D" : 일
- * "h" : 시
- * "m" : 분
- * "s" : 초
- *
- * default는 "D"
- *
- * 함수 호출시 다음과 같이 사용한다.
- *
- * 1) date.rpdfGetRelativeDate(10) --> default로 일에 대한 상대일을 구한다.
- * 2) date.rpdfGetRelativeDate(10, "Y") --> 년도에 대한 상대일을 구한다.
- *
- * return : Date
- *---------------------------------------------------
- */
- function rpdfGetRelativeDate(pNum, pKind)
- {
- var dt = this;
- if(typeof(pKind) == "undefined") pKind = "D";
- if(pKind == "Y") {
- dt.setFullYear(this.getFullYear() + pNum);
- } else if(pKind == "M") {
- dt.setMonth(this.getMonth() + pNum);
- } else if(pKind == "D") {
- dt.setDate(this.getDate() + pNum);
- } else if(pKind == "h") {
- dt.setHours(this.getHours() + pNum);
- } else if(pKind == "m") {
- dt.setMinutes(this.getMinutes() + pNum);
- } else if(pKind == "s") {
- dt.setSeconds(this.getSeconds() + pNum);
- }
- return dt;
- }
- /**
- * default pattern은 "YYYYMMDD"이다.
- *
- * 함수 호출시 다음과 같이 사용한다.
- *
- * 1) rpdfFormat() --> default로 YYYYMMDD형태로 반환한다.
- * 2) rpdfFormat("YYYY/MM/DD") --> pattern 형식으로 반환한다.
- *
- *
- * pPattern - syntex 참조
- * *
- * # syntex
- *
- * YYYY : hour in am/pm (1~12)
- * MM : month in year(number)
- * MON : month in year(text) 예) "January"
- * DD : day in month
- * DAY : day in week 예) "Sunday"
- * HH : hour in am/pm (1~12)
- * hh : hour in day (0~23)
- * mm : minute in hour
- * ss : second in minute
- * SS : millisecond in second
- * a : am/pm 예) "AM"
- *
- *
- * return : Pattern 형태의 문자열
- * ---------------------------------------------------
- */
- function rpdfFormat(pPattern)
- {
- var GLB_MONTH_IN_YEAR = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
- var GLB_DAY_IN_WEEK = new Array("Sunday", "Monday", "Tuesday", "Wednesday","Thursday", "Friday", "Saturday");
- var year = this.getFullYear();
- var month = this.getMonth() + 1;
- var day = this.getDate();
- var dayInWeek = this.getDay();
- var hour24 = this.getHours();
- var ampm = (hour24 < 12) ? 0 : 1;
- var hour12 = (hour24 > 12) ? (hour24 - 12) : hour24;
- var min = this.getMinutes();
- var sec = this.getSeconds();
- var YYYY = "" + year;
- var YY = YYYY.substr(2);
- var MM = (("" + month).length == 1) ? "0" + month : "" + month;
- var MON = GLB_MONTH_IN_YEAR[month-1];
- var DD = (("" + day).length == 1) ? "0" + day : "" + day;
- var DAY = GLB_DAY_IN_WEEK[dayInWeek];
- var HH = (("" + hour12).length == 1) ? "0" + hour12 : "" + hour12;
- var hh = (("" + hour24).length == 1) ? "0" + hour24 : "" + hour24;
- var mm = (("" + min).length == 1) ? "0" + min : "" + min;
- var ss = (("" + sec).length == 1) ? "0" + sec : "" + sec;
- var SS = "" + this.getMilliseconds();
- var a = (a == 0) ? "AM" : "PM";
- var dateStr;
- var index = -1;
- if (typeof(pPattern) == "undefined") {
- dateStr = "YYYYMMDD";
- } else {
- dateStr = pPattern;
- }
- dateStr = dateStr.replace(/a/g, a);
- dateStr = dateStr.replace(/YYYY/g, YYYY);
- dateStr = dateStr.replace(/YY/g, YY);
- dateStr = dateStr.replace(/MM/g, MM);
- dateStr = dateStr.replace(/MON/g, MON);
- dateStr = dateStr.replace(/DD/g, DD);
- dateStr = dateStr.replace(/DAY/g, DAY);
- dateStr = dateStr.replace(/hh/g, hh);
- dateStr = dateStr.replace(/HH/g, HH);
- dateStr = dateStr.replace(/mm/g, mm);
- dateStr = dateStr.replace(/ss/g, ss);
- return dateStr;
- }
- function rpdfCheckDateTime(pDateString, pFormat)
- {
- var dt = pDateString.rpdfToDate(pFormat).rpdfFormat(pFormat);
- return (pDateString == dt);
- }
- //화면에서 multilinegrid의 마스터 Detail관계 설정
- /*
- pGrid_name : Grid id명
- pMaster_Grid : pGrid_name의 마스터 Grid id명
- pSubmit_Id : pGrid_name을 조회할 Submit id
- pSave_Yn : pGrid_name 저장여부("Y","N")
- pSelectionMode : pGrid_name 의 선택모드 "free", "byrow", "bycol"..
- */
- function fmisfMsterDetailSet(pGrid_name, pMaster_Grid, pSubmit_Id, pSave_Yn, pSelectionMode)
- {
-
- var current_gridnode = MASTDETAIL_NODE + "/" + pGrid_name.attribute("id");
- model.makeNode(MASTDETAIL_NODE);
- model.makeNode(current_gridnode);
- model.makeNode(current_gridnode + "/current");
- model.makeNode(current_gridnode + "/master");
- model.makeNode(current_gridnode + "/submit");
- model.makeNode(current_gridnode + "/saveyn");
-
- model.setValue(current_gridnode + "/current", pGrid_name.attribute("id"));
-
- if (pMaster_Grid == null) {
- model.setValue(current_gridnode + "/master", "");
- }
- else {
- model.setValue(current_gridnode + "/master", pMaster_Grid.attribute("id"));
- }
- model.setValue(current_gridnode + "/submit", pSubmit_Id);
- model.setValue(current_gridnode + "/saveyn", pSave_Yn);
-
- if(pSelectionMode != null)
- {
- pGrid_name.focusColor = "#ccffff";
- }
- else
- {
- pGrid_name.focusColor = "#ccffff";
- }
- }
- //Grid 입력,삭제 처리.
- /*
- pGrid_Name : 입력,삭제할 multilinegrid id명
- pIAD_Flag : 행추가,행삽입,행삭제 여부("A","I","D")
- pRefresh_Flag : 행추가, 삽입후 misfGridDefaultSet (Default 값 셋팅 유무 Y, N ) default : Y(사용)
- */
- function fmisfGridIUD(pGrid_Name, pIAD_Flag, pRefresh_Flag ) {
- model.setfocus(pGrid_Name.attribute("id"));
- if (pIAD_Flag == "I")
- {
- pGrid_Name.insertRow(pGrid_Name.row, "below", false);
- pGrid_Name.select(pGrid_Name.row, pGrid_Name.col) = true;
- }
- else if (pIAD_Flag == "D")
- {
- var sRowIdxes = "";
- var iSelectedCnt = pGrid_Name.selectedCells.length;
-
- for(var i=0; i<iSelectedCnt; i++)
- {
- var iRowIdx = pGrid_Name.selectedCells.item(i).row;
- if(!misfGetRowIdxExists(sRowIdxes, iRowIdx)) continue;
- sRowIdxes = sRowIdxes + iRowIdx + ",";
- if (pGrid_Name.rowstatus(iRowIdx) == 4)
- {
- pGrid_Name.removeStatus(iRowIdx,"delete");
- }
- else
- {
- if (misfCheckDeleteYN(pGrid_Name) == "Y")
- {
- // 1 : 초기 insert 한상태, 3 : insert한 Row를 Edit 한경우 3으로 변경됨
- if(pGrid_Name.rowstatus(iRowIdx) == 1 || pGrid_Name.rowstatus(iRowIdx) == 3)
- {
- pGrid_Name.deleteRow(pGrid_Name.row, false);
- if(i+1 == iSelectedCnt) pGrid_Name.select(pGrid_Name.row, pGrid_Name.col) = true;
- }
- else
- {
- pGrid_Name.addStatus(iRowIdx,"delete");
- }
- }
- else
- {
- messageBox("세부내역이 존재 하므로 삭제 ", "E001");
- }
- }
- }
- }
- else if (pIAD_Flag == "A") {
- pGrid_Name.addRow(false);
- pGrid_Name.select(pGrid_Name.row, pGrid_Name.col) = true;
- // pGrid_Name.refresh();
- }
-
- if ( pRefresh_Flag != "N" ) {
-
- if (pIAD_Flag == "A" || pIAD_Flag == "I") {
- // pGrid_Name.dispatch("onrowchanged");
- misfGridDefaultSet(pGrid_Name);
-
- pGrid_Name.col = 1;
- }
- }
- }
- function rpdfSetControlByJobRespCd(sControlNames, sJobRespCd, sDutUnitcd)
- {
- if(sJobRespCd != null && sJobRespCd != "")
- {
- JOB_RESP_CD = sJobRespCd;
- }
- if(sDutUnitcd != null && sDutUnitcd != "")
- {
- DUT_UNIT_CD = sDutUnitcd;
- }
- var arrCtrlNms = sControlNames.split(",");
- var objCtrls = "";
-
- var sDutyRespYn = ""; // 복무 책임자
- var sDutyPartYn = ""; // 인사 복무 담당자
-
- if(instance1.selectNodes("/root/main/authlist/auth").length > 0)
- {
- sDutyRespYn = model.getValue("/root/main/authlist/auth/dutyresp");
- sDutyPartYn = model.getValue("/root/main/authlist/auth/insaduty");
- }
- else
- {
- sDutyRespYn = "N";
- sDutyPartYn = "N";
- }
-
- for(var i=0; i<arrCtrlNms.length; i++)
- {
- objCtrls = document.controls(arrCtrlNms[i]);
-
- // 권한이 UM, 팀장, JM, 복무책임자, 인사담당자
- if(JOB_RESP_CD == "1901" || JOB_RESP_CD == "1070" || JOB_RESP_CD == "1907" || JOB_RESP_CD == "1080" || JOB_RESP_CD == "2430" ||
- DUTY_PART_YN == "Y" || DUTY_RESP_YN == "Y")
- {
- objCtrls.disabled = false;
- }
- else
- {
- objCtrls.disabled = true;
- }
- /*
- if(sDutyPartYn == "Y")
- {
- objCtrls.disabled = false;
- }
- */
- }
- }
- function rpdfSetDutUnitCombo()
- {
- if(instance1.selectNodes("/root/init/combocd/combocodelist").length == 0)
- {
- model.makeValue("/root/init/cmb_dutplce/combocodelist/cdid", model.getValue("/root/temp/userinfo/dutunitcd"));
- model.makeValue("/root/init/cmb_dutplce/combocodelist/cdnm", model.getValue("/root/temp/userinfo/dutunitnm"));
- }
- else
- {
- var bAdd = true;
- var iStartIdx = 1;
- for(var i=1; i<=instance1.selectNodes("/root/init/combocd/combocodelist").length; i++)
- {
- if(model.getValue("/root/init/combocd/combocodelist[" + i + "]/cdid") == model.getValue("/root/temp/userinfo/dutunitcd")) bAdd = false;
- }
- var DUT_UNIT_CD = model.getValue("/root/temp/userinfo/dutunitcd")
- // var nodes = instance1.selectNodes("/root/init/combocd/combocodelist[cdid=" + DUT_UNIT_CD + "]/cdid");
- // var node = nodes.nextNode();
-
- // if(node.length == 1) bAdd = false;
-
- if(bAdd)
- {
- if(DUT_UNIT_CD != "")
- {
- iStartIdx++;
- model.makeValue("/root/init/cmb_dutplce/combocodelist/cdid", model.getValue("/root/temp/userinfo/dutunitcd"));
- model.makeValue("/root/init/cmb_dutplce/combocodelist/cdnm", model.getValue("/root/temp/userinfo/dutunitnm"));
- }
- }
- for(var i=iStartIdx; i<=instance1.selectNodes("/root/init/combocd/combocodelist").length; i++)
- {
- model.makeValue("/root/init/cmb_dutplce/combocodelist[" + i + "]/cdid", model.getValue("/root/init/combocd/combocodelist[" + i + "]/cdid"));
- model.makeValue("/root/init/cmb_dutplce/combocodelist[" + i + "]/cdnm", model.getValue("/root/init/combocd/combocodelist[" + i + "]/cdnm"));
- }
- }
- model.removenode("/root/init/combocd");
- model.removenode("/root/init/temp");
- }
- function rpdfSetControlAuth()
- {
- if(getUserInfo("dutplceinstcd") == "001" && DUTY_PART_YN == "Y")
- {
- cmb_instcd.disabled = false;
- cmb_dutplce.visible = false;
- ipt_dutdeptcd.disabled = false;
- ipt_dutdeptnm.disabled = false;
- btn_dutdept.disabled = false;
- }
- else if(getUserInfo("dutplceinstcd") != "001" && DUTY_PART_YN == "Y")
- {
- cmb_instcd.disabled = true;
- cmb_dutplce.visible = false;
- ipt_dutdeptcd.disabled = false;
- ipt_dutdeptnm.disabled = false;
- btn_dutdept.disabled = false;
- }
- else
- {
- cmb_instcd.disabled = true;
- cmb_dutplce.visible = true;
- ipt_dutdeptcd.disabled = true;
- ipt_dutdeptnm.disabled = true;
- btn_dutdept.disabled = true;
- }
- }
- function rpdfSetControlAuthDuty()
- {
- if(DUTY_PART_YN == "Y")
- {
- cmb_instcd.disabled = false;
- ipt_dutdeptcd.disabled = false;
- ipt_dutdeptnm.disabled = false;
- btn_dutdept.disabled = false;
-
- ipt_emplno.disabled = false;
- btn_help.disabled = false;
- ipt_emplnm.disabled = false;
-
- }
- else
- {
- cmb_instcd.disabled = true;
- ipt_dutdeptcd.disabled = true;
- ipt_dutdeptnm.disabled = true;
- btn_dutdept.disabled = true;
-
- ipt_emplno.disabled = true;
- btn_help.disabled = true;
- ipt_emplnm.disabled = true;
- }
- }
- //콤보에 부서코드세팅
- //pcontrol_name : 세팅될 컨트롤 명
- //pall : 콤보에 세팅값에 전체항목 추가 'null' or 'Y' 일시 '전체' 셋팅
- function rpdfDeptComboCdList(pcontrol_name, pall)
- {
- var control_id = pcontrol_name.attribute("id");
-
- var comcd_node = "/root/send/comcdref";
- var comcd_rsltnode = "/root/init/combocd";
- var comcd_itemset = "/root/init/" + control_id;
-
- var comcd_tempnode = "/root/init/temp";
-
- model.removeNodeset(comcd_node);
- model.removeNodeset(comcd_itemset);
- model.removeNodeSet(comcd_tempnode);
-
- model.makeNode(comcd_node);
- model.makeNode(comcd_node + "/cdid");
- model.makeNode(comcd_node + "/cdnm");
- model.makeNode(comcd_node + "/refcond");
-
- model.makeNode(comcd_rsltnode);
- model.makeNode(comcd_itemset);
- model.makeNode(comcd_tempnode);
-
- pcontrol_name.choices.itemset.attribute("nodeset") = comcd_itemset+"/combocodelist";
- pcontrol_name.choices.itemset.label.attribute("ref") = "cdnm";
- pcontrol_name.choices.itemset.value.attribute("ref") = "cdid";
-
- model.setValue(comcd_node + "/cdid", "%");
- model.setValue(comcd_node + "/cdnm", "%");
- model.makeValue(comcd_node + "/userid", getUserInfo("userid"));
- model.makeValue(comcd_node + "/instcd", getUserInfo("dutplceinstcd"));
-
- model.removeChild("TRRPD12002");
- model.createChild("xforms:submission", "id:TRRPD12002;mediatype:application/x-www-form-urlencoded; method:post; ref:" + comcd_node + "; resultref:" + comcd_rsltnode + "; ");
- submit("TRRPD12002");
-
- if(pall != null && pall == "Y")
- {
- model.copyNode(comcd_tempnode, comcd_rsltnode);
- model.makeValue(comcd_rsltnode + "/combocodelist[" + 1 + "]/cdnm", " 전체 ");
- model.makeValue(comcd_rsltnode + "/combocodelist[" + 1 + "]/cdid", "");
- sourcenode = document.models(0).instances(0).selectSingleNode(comcd_tempnode);
- tarnode = document.models(0).instances(0).selectSingleNode(comcd_rsltnode);
- cnt = 1;
- var sourcenodelist = sourcenode.childNodes;
- while (childNode = sourcenodelist.nextNode())
- {
- model.makeValue(comcd_rsltnode + "/combocodelist[" + (cnt + 1) + "]/cdnm", childNode.getXPathString(comcd_tempnode + "/combocodelist[" + cnt + "]/cdnm"));
- model.makeValue(comcd_rsltnode + "/combocodelist[" + (cnt + 1) + "]/cdid", childNode.getXPathString(comcd_tempnode + "/combocodelist[" + cnt + "]/cdid"));
- cnt++;
- }
- }
- model.refresh();
- }
|