
/* ##############################################################
	설  명 : [Modal]마이페이지- 회원탈퇴 팝업
	작성일 : 2024. 09. 24.
	작성자 : NTsoft
	수정일 	        수정자 	 수정내용
	-------         -------- ---------------------------
	2024. 09. 24.	NTsoft 	 최초 생성
*/
let userAccountDeleteModal = {
    callback : null,
    reqParam : null,
    dataList : null,
    /* 모달 초기화 작업 */
    init : function () {
        $('#userAccountDeleteModal').remove();
        $('body').append( this.HtmlTemplate);
        //그리드 이벤트
        this.setEvent();
    },
    /* 그리드 이벤트 설정 */
    setEvent:function() {
        $('#userAccountDeleteModal .btnCancle').on("click", function(){
            userAccountDeleteModal.close();
        });

        $('#userAccountDeleteModal .btnSave').on("click", function(){
            userAccountDeleteModal.save("I");
        });
    },
    /* 데이터 선택 */
    setSelect:function(selectNumber) {
        let checkedData = dataList[selectNumber];
        if(dataList==null||checkedData==undefined){
            return ;
        }

        if( userAccountDeleteModal.callback )  {
            userAccountDeleteModal.callback(checkedData);
        }
        userAccountDeleteModal.close();
    },
    // 상세 조회
    search:function(state) {
        let muAttendanceId  = userAccountDeleteModal.reqParam.muAttendanceId;
        let muAttendanceId2 = userAccountDeleteModal.reqParam.muAttendanceId2;
        let muMemberId      = userAccountDeleteModal.reqParam.muMemberId;
        let attendanceDate  = userAccountDeleteModal.reqParam.attendanceDate;

        if(true != fn_emptyCheck(muAttendanceId) && true != fn_emptyCheck(muAttendanceId2)){
            modalEvent.warning("수정", "근태 정보가 없습니다.");
            return;
        }

        if(true != fn_emptyCheck(muMemberId)){
            modalEvent.warning("수정", "직원 정보가 없습니다.");
            return;
        }

        if(true != fn_emptyCheck(attendanceDate)){
            modalEvent.warning("수정", "근태날짜 정보가 없습니다.");
            return;
        }

        let formData = new FormData();
        formData.append("menuClass", menuClass);
        formData.append("muAttendanceId", muAttendanceId);
        formData.append("muAttendanceId2", muAttendanceId2);

        $.ajax({
            url: encodeURI('/webattendance/selectAttendanceCommute.do'),
            data: formData,
            dataType: "json",
            processData: false,
            contentType: false,
            type: 'POST',
            async: true,
            success: function(data){
                if('0'==data.msgCode){
                    if(0<data.rows.length){
                        $("#userAccountDeleteModal #modalMemberNameId").text(data.rows[0].memberName+'('+data.rows[0].loginId+')');
                        $("#userAccountDeleteModal #modalAttendanceDate").text(attendanceDate);

                        // $("#userAccountDeleteModal #modalStartTime").siblings("button").text(data.rows[0].startTime);
                        $("#userAccountDeleteModal #modalStartTime").val(data.rows[0].startTime||"00:00");
                        // $("#userAccountDeleteModal #modalEndTime").siblings("button").text(data.rows[0].endTime);
                        $("#userAccountDeleteModal #modalEndTime").val(data.rows[0].endTime||"00:00");
                    }
                }
                else{
                    modalEvent.danger("조회 오류", data.msgDesc);
                }
            },
            error : function(xhr, status, error) {
                modalEvent.danger("조회 오류", "조회 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
            },
            beforeSend:function(){

            },
            complete:function(){

            }
        });
    },
    //저장
    save:function(state) {
        let muAttendanceId  = userAccountDeleteModal.reqParam.muAttendanceId;
        let muAttendanceId2 = userAccountDeleteModal.reqParam.muAttendanceId2;
        let muMemberId      = userAccountDeleteModal.reqParam.muMemberId;
        let attendanceDate  = userAccountDeleteModal.reqParam.attendanceDate;
        let startTime       = $("#userAccountDeleteModal #modalStartTime").val();
        let endTime         = $("#userAccountDeleteModal #modalEndTime").val();

        if(true != fn_emptyCheck(muAttendanceId) && true != fn_emptyCheck(muAttendanceId2)){
            modalEvent.warning("수정", "근태 정보가 없습니다.");
            return;
        }

        if(true != fn_emptyCheck(muMemberId)){
            modalEvent.warning("수정", "직원 정보가 없습니다.");
            return;
        }

        if(true != fn_emptyCheck(attendanceDate)){
            modalEvent.warning("수정", "날짜 정보가 없습니다.");
            return;
        }

        if(true != fn_emptyCheck(startTime)){
            modalEvent.warning("수정", "출근 시간 정보가 없습니다.");
            return;
        }

        if(true != fn_emptyCheck(endTime)){
            modalEvent.warning("수정", "퇴근 시간 정보가 없습니다.");
            return;
        }
        if(startTime>=endTime){
            modalEvent.warning("수정", "출/퇴근기록을 다시 확인해주세요");
            return;
        }

        modalEvent.info("수정", "출/퇴근 정보를 수정하시겠습니까?", function(){
            let formData = new FormData();
            formData.append("menuClass", menuClass);
            formData.append("muAttendanceId", muAttendanceId);
            formData.append("muAttendanceId2", muAttendanceId2);
            formData.append("muMemberId", muMemberId);
            formData.append("attendanceDate", attendanceDate);
            formData.append("startTime", startTime);
            formData.append("endTime", endTime);

            $.ajax({
                url: encodeURI('/webattendance/updateAttendanceCommute.do'),
                data: formData,
                dataType: "json",
                processData: false,
                contentType: false,
                type: 'POST',
                async: true,
                success: function(data){
                    if('0'==data.msgCode){
                        modalEvent.success("수정 성공", data.msgDesc, function(){
                            if( userAccountDeleteModal.callback )  {
                                userAccountDeleteModal.callback();
                            }
                            userAccountDeleteModal.close();
                        });
                    }
                    else{
                        modalEvent.danger("수정 오류", data.msgDesc);
                    }
                },
                error : function(xhr, status, error) {
                    modalEvent.danger("수정 오류", "등록 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
                },
                beforeSend:function(){

                },
                complete:function(){

                }
            });
        });
    },
    /*
     * 팝업
     * callback : 콜백함수, reqParam: 팝업파라미터
     */
    popup:function(callback, reqParam) {
        // 초기화 후 열기
        userAccountDeleteModal.init();

        //콜백함수 지정.
        userAccountDeleteModal.callback = callback;
        userAccountDeleteModal.reqParam = reqParam;
        userAccountDeleteModal.dataList = null;

        fn_dateTimePicker1("#modalStartTime", "00:00");
        fn_dateTimePicker1("#2", "00:00");

        setTimeout(function(){
            $('#userAccountDeleteModal').modal('show')
        }, 200);

        userAccountDeleteModal.search();
    },
    /*
     * 팝업 닫기
     */
    close:function() {
        $('#userAccountDeleteModal').modal('hide');

		setTimeout(function(){
			$('#userAccountDeleteModal').remove();
		},500);
    },
    HtmlTemplate : `
	<div class="modal withdrawal_modal fade" id="userAccountDeleteModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <p class="label">회원탈퇴</p>
                </div>    
    
                <div class="modal-body">
                    <p>회원탈퇴를 진행하시겠습니까?</p>
                </div>

                <div class="modal-footer">
                    <div class="btn_box">
                        <button class="close_btn">취소</button>
                        <button class="save_btn">탈퇴하기</button>
                    </div>
                </div>
            </div>
        </div>
    </div>
    `
};