Пример #1
0
        private void loadMsgNotification()
        {
            if (UserInfo.Getinstance().loginON == false)
            {
                return;
            }
            string          query = "SELECT COUNT(*) as cnt FROM 쪽지 WHERE 수신확인 = '읽지않음' AND 받는사람 = " + UserInfo.Getinstance().Id;
            MySqlDataReader rdr   = DBManager.GetInstance().select(query);

            rdr.Read();
            string cnt = rdr["cnt"].ToString();

            Console.WriteLine(cnt);

            if (Convert.ToInt32(cnt) != 0)
            {
                MessageBox.Show("아직 읽지않은 쪽지가 있습니다.");

                /*
                 * dtDelayStart = DateTime.Now;
                 *
                 * MsgNotify.Visible = true;
                 * //5초간 지연
                 * DelaySystem(3000);
                 * MsgNotify.Visible = false;
                 */
            }

            rdr.Close();
        }
Пример #2
0
        private void combo_Appr_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (combo_Appr.Text) //콤보박스 선택 변경마다 조건 변경
            {
            case "등록 결재 내역":         //내가 기안자인 모든 결재 내역
                query = "SELECT a.ID as 번호,(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 기안자 FROM Employee WHERE identification = " + id + ") AS 기안자," +
                        "a.제목,a.내용,w.업무내용,a.코멘트,a.진행상황,a.결재자수,(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 사원 FROM Employee WHERE identification = a.제1결재자) as 제1결재자," +
                        "(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 사원 FROM Employee WHERE identification = a.제2결재자) as 제2결재자," +
                        "(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 사원 FROM Employee WHERE identification = a.제3결재자) as 제3결재자," +
                        "a.기안자시간,a.1승인시간,a.2승인시간,a.3승인시간,a.반려메모 " +
                        "FROM 결재 as a, 업무마스터 as w WHERE 기안자 = " + id + " AND (a.관련업무 = w.업무번호) ORDER BY a.반려여부";
                break;

            case "결재 중 내역":     //내가 기안자인 결재 중 내역
                query = "SELECT a.ID as 번호,(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 기안자 FROM Employee WHERE identification = " + id + ") AS 기안자," +
                        "a.제목,a.내용,w.업무내용,a.코멘트,a.진행상황,a.결재자수,(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 사원 FROM Employee WHERE identification = a.제1결재자) as 제1결재자," +
                        "(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 사원 FROM Employee WHERE identification = a.제2결재자) as 제2결재자," +
                        "(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 사원 FROM Employee WHERE identification = a.제3결재자) as 제3결재자" +
                        ",a.기안자시간,a.1승인시간,a.2승인시간,a.3승인시간,a.반려메모 " +
                        "FROM 결재 as a, 업무마스터 as w WHERE 기안자 = " + id + " AND 진행상황 < 결재자수 AND (a.관련업무 = w.업무번호) AND 반려여부 = 0";
                break;

            case "결재 완료 내역":     //내가 기안자인 결재 완료 내역
                query = "SELECT a.ID as 번호,(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 기안자 FROM Employee WHERE identification = " + id + ") AS 기안자," +
                        "a.제목,a.내용,w.업무내용,(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 사원 FROM Employee WHERE identification = a.제1결재자) as 제1결재자," +
                        "(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 사원 FROM Employee WHERE identification = a.제2결재자) as 제2결재자," +
                        "(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 사원 FROM Employee WHERE identification = a.제3결재자) as 제3결재자," +
                        "a.기안자시간,a.1승인시간,a.2승인시간,a.3승인시간 " +
                        "FROM 결재 as a, 업무마스터 as w WHERE 기안자 = " + id + " AND 진행상황 = 결재자수 AND (a.관련업무 = w.업무번호)";
                break;

            case "결재할 내역":     //내가 결재할 차례인 모든 결재 내역
                query = "SELECT a.ID as 번호,(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 사원 FROM Employee WHERE identification = a.기안자) as 기안자,a.제목,a.내용,w.업무내용,a.코멘트," +
                        "(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 사원 FROM Employee WHERE identification = a.제1결재자) as 제1결재자," +
                        "(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 사원 FROM Employee WHERE identification = a.제2결재자) as 제2결재자," +
                        "(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 사원 FROM Employee WHERE identification = a.제3결재자) as 제3결재자," +
                        "a.기안자시간,a.1승인시간,a.2승인시간,a.3승인시간,a.반려메모 " +
                        "FROM 결재 as a, 업무마스터 as w WHERE 진행상황 < 결재자수 AND ((진행상황 = 0 AND 제1결재자 = " + id + ") OR" +
                        "(진행상황 = 1 AND 제2결재자 = " + id + ") OR (진행상황 = 2 AND 제3결재자 = " + id + ")) AND (a.관련업무 = w.업무번호) AND 반려여부 = 0";
                break;

            case "반려 내역":     //내가 기안한 결재 중 반려 내역
                query = "SELECT a.ID as 번호,(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 사원 FROM Employee WHERE identification = a.기안자) as 기안자,a.제목,a.내용,w.업무내용," +
                        "(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 사원 FROM Employee WHERE identification = a.제1결재자) as 제1결재자," +
                        "(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 사원 FROM Employee WHERE identification = a.제2결재자) as 제2결재자," +
                        "(SELECT GROUP_CONCAT(name, '(', identification, ')') AS 사원 FROM Employee WHERE identification = a.제3결재자) as 제3결재자," +
                        "a.기안자시간,a.1승인시간,a.2승인시간,a.3승인시간,a.반려메모 " +
                        "FROM 결재 as a, 업무마스터 as w WHERE (기안자 = " + id + " OR  제1결재자 = " + id + " OR 제2결재자 = " + id + " OR 제3결재자 = " + id + ") " +
                        "AND (a.관련업무 = w.업무번호) AND 반려여부 = 1 ORDER BY a.기안자시간 desc";
                break;
                //반려내역 누구에게 보여줄것인지
            }
            MySqlDataReader rdr = DBManager.GetInstance().select(query); //테이블 가져오기

            DataTable dt = new DataTable();

            dt.Load(rdr);
            dgv_MyApprList.DataSource = dt;
            rdr.Close();
        }
Пример #3
0
        public void deleteHRData(string table, string need)
        {
            string query = "";

            query += "DELETE FROM " + table + " WHERE " + need;
            DBManager.GetInstance().DBquery(query);
        }
Пример #4
0
        public void GetEmployee()               //사원 가져오는 함수
        {
            listViewShowEmployee.BeginUpdate(); //업데이트 시작
            if (comboBoxShowDepartment.SelectedIndex == -1)
            {
                MessageBox.Show("부서가 선택되지 않았습니다.", "확인");
                listViewShowEmployee.EndUpdate(); //업데이트 종료
                return;
            }
            listViewShowEmployee.Items.Clear();   //listview 초기화
            listViewShowEmployee.Columns.Clear(); //listview column 초기화
            int             idx   = comboBoxShowDepartment.SelectedIndex;
            string          query = "SELECT * FROM Employee WHERE department = " + department_[idx] + " AND valid = 1";
            MySqlDataReader rdr   = DBManager.GetInstance().select(query); //DB에서 값을 가져옴

            while (rdr.Read())
            {
                ListViewItem items = new ListViewItem(rdr["identification"].ToString()); //사원 id 값을 가져옴.
                items.SubItems.Add(rdr["name"].ToString());                              //사원의 이름을 가져옴.
                listViewShowEmployee.Items.Add(items);                                   //listview에 더함
            }
            rdr.Close();
            // 컬럼명과 컬럼사이즈 지정
            listViewShowEmployee.Columns.Add("사원번호", 70, HorizontalAlignment.Left);
            listViewShowEmployee.Columns.Add("사원이름", 70, HorizontalAlignment.Left);

            listViewShowEmployee.EndUpdate(); //업데이트 종료
        }
Пример #5
0
        private void button_Task_Delete_Click(object sender, EventArgs e) // 삭제 버튼
        {
            if (TaskmasterView.CurrentCell == null)
            {
                MessageBox.Show("삭제할 업무를 선택해주세요", "업무삭제확인", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else
            {
                button_Task_Apply.Visible = true;
                string selected = TaskmasterView.SelectedRows[0].Cells[0].Value.ToString();
                int    id       = Convert.ToInt32(selected);

                if (MessageBox.Show("이 업무는 정말 삭제하시겠습니까? 삭제하시면 더이상 결재가 불가능한 업무입니다.", "업무삭제확인",
                                    MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    string deleteflagtask = "UPDATE 업무마스터 SET 업무유효성 = 0 Where 업무번호 = " + id + "";
                    DBManager.GetInstance().DBquery(deleteflagtask);
                    MessageBox.Show("이 업무는 더이상 결재 할 수 없습니다.", "업무삭제확인", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    syndataview();
                }
                else
                {
                    MessageBox.Show("업무삭제가 취소되었습니다.", "업무삭제취소", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
        }
Пример #6
0
        private void PaymentListView_CellClick(object sender, DataGridViewCellEventArgs e) // 그냥 셀 클릭 시
        {
            int    rowIndex        = PaymentListView.CurrentCellAddress.Y;
            string num             = PaymentListView.Rows[rowIndex].Cells[0].Value.ToString();
            int    selectedId      = Convert.ToInt32(num);
            int    firstpaymentid  = 0;
            int    secondpaymentid = 0;
            int    thirdpaymentid  = 0;
            string checkpayment1   = "SELECT 진행상황,결재자수,제1결재자,제2결재자" +
                                     ",ifnull(제3결재자,0)AS 제3결재자 FROM 결재 WHERE ID = " + selectedId;
            MySqlDataReader rdr = DBManager.GetInstance().select(checkpayment1);

            while (rdr.Read())
            {
                paymentprocesscount = Convert.ToInt32(rdr["진행상황"].ToString());  // 진행상황 값 받아오기
                firstpaymentid      = Convert.ToInt32(rdr["제1결재자"].ToString()); // 제 1결재자 값 받아오기
                secondpaymentid     = Convert.ToInt32(rdr["제2결재자"].ToString()); // 제 2결재자 값 받아오기
                thirdpaymentid      = Convert.ToInt32(rdr["제3결재자"].ToString()); // 제 3결재 값 받아오기
            }

            if (firstpaymentid == id)
            {
                usercount = 1;
            }
            else if (secondpaymentid == id)
            {
                usercount = 2;
            }
            else if (thirdpaymentid == id)
            {
                usercount = 3;
            }

            textBoxComent.Text = PaymentListView.SelectedRows[0].Cells[4].Value.ToString();
        }
Пример #7
0
        //코멘트가 null이 아닐때
        public void Insert_payment(int id, string title, string content, int selectedId, string coment, int chckapprovernum,
                                   int Approver1, int Approver2, Nullable <int> Approver3)
        {
            DateTime date     = DateTime.Now;
            string   date_now = date.ToString("yyy-MM-dd HH:mm:ss");

            if (coment == null && Approver3 == null)
            {
                DBManager.GetInstance().DBquery(
                    "INSERT INTO erp_school.결재(기안자, 제목, 내용, 관련업무, 코멘트, 진행상황, 결재자수, 제1결재자, 제2결재자, 제3결재자, 기안자시간,반려여부) VALUES("
                    + id + ",'" + title + "','" + content + "'," + selectedId + ",null,0," + chckapprovernum +
                    "," + Approver1 + "," + Approver2 + ",null,'" + date_now + "',0);");
            }
            else if (Approver3 == null)
            {
                DBManager.GetInstance().DBquery(
                    "INSERT INTO erp_school.결재(기안자,제목,내용,관련업무,코멘트,진행상황,결재자수,제1결재자,제2결재자,제3결재자,기안자시간,반려여부) VALUES("
                    + id + ",'" + title + "','" + content + "'," + selectedId + ",'" + coment + "',0," + chckapprovernum +
                    "," + Approver1 + "," + Approver2 + ",null,'" + date_now + "',0);");
            }
            else if (coment == null)
            {
                DBManager.GetInstance().DBquery(
                    "INSERT INTO erp_school.결재(기안자,제목,내용,관련업무,코멘트,진행상황,결재자수,제1결재자,제2결재자,제3결재자,기안자시간,반려여부) VALUES("
                    + id + ",'" + title + "','" + content + "'," + selectedId + ",null,0," + chckapprovernum +
                    "," + Approver1 + "," + Approver2 + "," + Approver3 + ",'" + date_now + "',0);");
            }
            else
            {
                DBManager.GetInstance().DBquery(
                    "INSERT INTO erp_school.결재(기안자,제목,내용,관련업무,코멘트,진행상황,결재자수,제1결재자,제2결재자,제3결재자,기안자시간,반려여부) VALUES("
                    + id + ",'" + title + "','" + content + "'," + selectedId + ",'" + coment + "',0," + chckapprovernum +
                    "," + Approver1 + "," + Approver2 + "," + Approver3 + ",'" + date_now + "',0);");
            }
        }
        void initChange()
        {
            //날짜!!!!******,
            string          query = "SELECT 부서,업무종류,업무내용,날짜,시작시간,종료시간 FROM 일일업무등록,업무마스터 WHERE 업무마스터id=업무번호 AND id = " + changeid;
            MySqlDataReader rdr = DBManager.GetInstance().select(query);
            string          com1 = "", com2 = "", com3 = "";

            while (rdr.Read())
            {
                com1        = rdr["부서"].ToString();
                com2        = rdr["업무종류"].ToString();
                com3        = rdr["업무내용"].ToString();
                changeDate  = (DateTime)rdr["날짜"];
                changeStart = (DateTime)rdr["시작시간"];
                changeEnd   = (DateTime)rdr["종료시간"];
            }

            //시간 세팅
            dateTimePicker1.Value     = changeDate;
            dateTimePickerStart.Value = changeStart;
            dateTimePickerEnd.Value   = changeEnd;


            comboBox소속.SelectedItem   = com1;
            comboBox업무종류.SelectedItem = com2;

            fill업무내용event(); //업무내용 콤보 채우기

            comboBox업무내용.SelectedItem = com3;
        }
        private bool CheckTimeStartEnd(string date)
        {
            string select = "";

            DateTime nowStart = dateTimePickerStart.Value;
            DateTime nowEnd   = dateTimePickerEnd.Value;

            if (CASE.Equals("수정"))
            {
                //수정된 사람, 날짜에 해당하는 시작,종료시간
                select = "SELECT 시작시간,종료시간 FROM 일일업무등록 WHERE 날짜='" +
                         date + "' AND 등록자id=(SELECT 등록자id FROM 일일업무등록 WHERE id=" + changeid + ")";
            }
            else
            {
                //등록자, 날짜에 해당하는 시작,종료시간
                select = "SELECT 시작시간,종료시간 FROM 일일업무등록 WHERE 날짜='" +
                         date + "' AND 등록자id=" + UserInfo.Getinstance().Id;
            }

            MySqlDataReader rdr = DBManager.GetInstance().select(select);

            while (rdr.Read())
            {
                //시작,종료시간 검사
                DateTime start, end;
                start = (DateTime)rdr["시작시간"];
                end   = (DateTime)rdr["종료시간"];

                //수정 내역 낑겨 있을 경우
                if (CASE.Equals("수정") && DateTime.Compare(Convert.ToDateTime(date), changeDate) == 0 && TimeSpan.Compare(start.TimeOfDay, changeStart.TimeOfDay) == 0 &&
                    TimeSpan.Compare(end.TimeOfDay, changeEnd.TimeOfDay) == 0)
                {
                    // 그냥 통과, 다음 시간 체크하기
                    continue;
                }
                //검사 코드 추가 ****
                else if (TimeSpan.Compare(nowStart.TimeOfDay, start.TimeOfDay) > 0 && TimeSpan.Compare(end.TimeOfDay, nowStart.TimeOfDay) > 0) ///잘못됬음.
                {
                    return(false);
                }
                else if (TimeSpan.Compare(nowEnd.TimeOfDay, start.TimeOfDay) > 0 && TimeSpan.Compare(end.TimeOfDay, nowEnd.TimeOfDay) > 0)
                {
                    return(false);
                }
                else if (TimeSpan.Compare(nowStart.TimeOfDay, start.TimeOfDay) < 0 && TimeSpan.Compare(nowEnd.TimeOfDay, end.TimeOfDay) > 0)
                {
                    return(false);
                }
                else if (TimeSpan.Compare(nowStart.TimeOfDay, start.TimeOfDay) == 0 && TimeSpan.Compare(end.TimeOfDay, nowEnd.TimeOfDay) == 0)
                {
                    return(false);
                }
            }

            return(true);
        }
Пример #10
0
        public DataTable selectDGV(string select, string from, string where)
        {
            string          query = "SELECT " + select + " FROM " + from + where;
            MySqlDataReader rdr   = DBManager.GetInstance().select(query);
            DataTable       dt    = new DataTable();

            dt.Load(rdr);
            rdr.Close();
            return(dt);
        }
Пример #11
0
        public DataTable SetWork()
        {
            //업무번호에 따른 업무내용을 들고와야함(업무번호,업무내용)삭제유무가 0인거는 들고오면 안됨
            //부서도 들고와야할거같기도.....
            MySqlDataReader rdr  = DBManager.GetInstance().select("SELECT 업무번호, 부서, 업무내용 FROM erp_school.업무마스터 WHERE 업무유효성=1;");
            DataTable       work = new DataTable();

            work.Load(rdr);
            rdr.Close();
            return(work);
        }
Пример #12
0
        void fillcombo() // 콤보박스에 부서를 넣을 것임
        {
            string          Combolist = "SELECT * FROM 부서 WHERE valid = 1 AND ID > 1";
            MySqlDataReader rdr       = DBManager.GetInstance().select(Combolist);

            while (rdr.Read())
            {
                string listname = rdr.GetString("부서명");
                comboBoxAFcompany.Items.Add(listname);
            }
        }
Пример #13
0
        public void SettingGridView()
        {
            MySqlDataReader rdr = DBManager.GetInstance().select(select); //쿼리 결과 받아오기

            DataTable dt = new DataTable();

            dt.Load(rdr);

            dataGridView.DataSource = dt; //VIEW 직접 접근해서 그려주기
            rdr.Close();
        }
Пример #14
0
        void SalaryInputDialog_FormClosed(object sender, FormClosedEventArgs e) //추가수당 입력 dialog가 꺼졌을 때
        {
            ChangeLabel();                                                      //업데이트 시킴.
            //추가수당을 db에 업데이트 시킴.
            int      idx        = listViewShowEmployee.FocusedItem.Index;
            string   employeeid = listViewShowEmployee.Items[idx].Text;
            DateTime dt         = dateTimePickerYearMonth.Value;
            string   date       = string.Format("{0}-{1}", dt.Year, dt.Month);
            string   query      = "UPDATE SalaryDetail SET extratime = " + ExtraHour_ + " WHERE employeeid = " + employeeid + " AND month = '" + date + "-01'";

            DBManager.GetInstance().DBquery(query); //insert 실행
        }
Пример #15
0
        private void MessageAck_Load(object sender, EventArgs e)
        {
            string query = "SELECT 수신확인, name AS 받는사람, 제목, 내용 FROM 쪽지 join Employee on 쪽지.받는사람 = Employee.Identification WHERE 보낸사람 = " + UserManager.Id;

            MySqlDataReader rdr = DBManager.GetInstance().select(query);

            DataTable dt = new DataTable();

            dt.Load(rdr);
            dataGridView1.DataSource = dt;

            rdr.Close();
        }
Пример #16
0
        void InitCombo() //부서 콤보 채우기
        {
            string          query = "SELECT DISTINCT 부서 FROM 업무마스터 WHERE 업무유효성=1";
            MySqlDataReader rdr   = DBManager.GetInstance().select(query);

            while (rdr.Read())
            {
                comboBox소속.Items.Add(rdr["부서"].ToString());
            }
            //나머지 콤보박스 비우기
            comboBox업무종류.Items.Clear();
            comboBox업무내용.Items.Clear();
        }
Пример #17
0
 private void buttonPayment_Accept_Click(object sender, EventArgs e) // 결재진행을 누를 시
 {
     if (PaymentListView.Rows.Count != 0)                            // 결재내역에 있으면
     {
         if (PaymentListView.CurrentCell != null)
         {
             string selected    = PaymentListView.SelectedRows[0].Cells[0].Value.ToString();
             int    id          = Convert.ToInt32(selected);
             string paymenttime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
             if (paymentprocesscount + 1 == usercount && usercount == 1)
             {
                 string first_payment_accepttime = "UPDATE 결재 SET 진행상황 = 진행상황 + 1, 1승인시간 = '" + paymenttime + "'" + "WHERE ID = " + id;
                 DBManager.GetInstance().DBquery(first_payment_accepttime);
                 MessageBox.Show(paymenttime + "에 결재가 완료되었습니다.", "결재알림", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                 paymentviewer();
             }
             else if (paymentprocesscount + 1 == usercount && usercount == 2)
             {
                 string second_payment_accepttime = "UPDATE 결재 SET 진행상황 = 진행상황 + 1, 2승인시간 = '" + paymenttime + "'" + "WHERE ID = " + id;
                 DBManager.GetInstance().DBquery(second_payment_accepttime);
                 MessageBox.Show(paymenttime + "에 결재가 완료되었습니다.", "결재알림", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                 paymentviewer();
             }
             else if (paymentprocesscount + 1 == usercount && usercount == 3)
             {
                 string second_payment_accepttime = "UPDATE 결재 SET 진행상황 = 진행상황 + 1, 3승인시간 = '" + paymenttime + "'" + "WHERE ID = " + id;
                 DBManager.GetInstance().DBquery(second_payment_accepttime);
                 MessageBox.Show(paymenttime + "에 결재가 완료되었습니다.", "결재알림", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                 paymentviewer();
             }
             else if (usercount == 4)
             {
                 MessageBox.Show("선택 후 결재를 진행해 주세요.", "결재알림", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
             }
             else
             {
                 MessageBox.Show("현재 결재할 수 있는 사용자가아닙니다.", "결재알림", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
         else
         {
             MessageBox.Show("결재목록을 선택해주세요.", "결재알림", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
         }
     }
     else
     {
         MessageBox.Show("현재 결재수락할 수 있는 결재목록이 없습니다.", "결재알림", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
     }
 }
Пример #18
0
        private void button_Task_Apply_Click(object sender, EventArgs e) // 등록 버튼
        {
            string          AFcompany    = comboBoxAFcompany.Text;
            string          Taskkind     = comboBoxTaskKind.Text;
            string          TaskContents = textBoxTaskContents.Text;
            string          overlap      = "SELECT COUNT(*) as cnt FROM 업무마스터 WHERE 부서 = '" + AFcompany + "'" + "AND 업무종류 = '" + Taskkind + "'" + "AND 업무내용 = '" + TaskContents + "'";
            MySqlDataReader count        = DBManager.GetInstance().select(overlap); // 중복여부 확인
            int             overlapflag  = 0;                                       // 중복횟수

            while (count.Read())
            {
                overlapflag = Convert.ToInt32(count["cnt"]); // 중복여부 확인을 정수로 선언
            }
            if (overlapflag == 0)                            // 중복된 값이 없으면
            {
                if (AFcompany == "")                         // 소속을 안 적으면
                {
                    MessageBox.Show("소속을 입력해주세요", "업무등록오류", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else if (Taskkind == "") // 업무종류를 안 적으면
                {
                    MessageBox.Show("업무종류를 입력해주세요", "업무등록오류", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else if (TaskContents == "") // 업무내용을 안 적으면
                {
                    MessageBox.Show("업무내용을 입력해주세요", "업무등록오류", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else // 업무유효성은 1로 지정(초기값) => 데이터 그리뷰에 있는 내용을 보고 적을 수도 있어서 중복방지를 할려고 함
                {
                    if (MessageBox.Show("업무를 등록하시겠습니까?", "업무등록확인", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        string addtask = "INSERT INTO 업무마스터(부서,업무종류,업무내용,업무유효성)" +
                                         "VALUES('" + AFcompany + "','" + Taskkind + "','" + TaskContents + "'" + "," + "1)";
                        DBManager.GetInstance().DBquery(addtask);
                        MessageBox.Show("등록되었습니다.", "업무등록확인", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        syndataview();
                    }
                    else
                    {
                        MessageBox.Show("업무등록이 취소되었습니다.", "업무등록취소", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                }
            }
            else // 중복된 값이 있으면
            {
                MessageBox.Show("중복된 업무는 등록할 수 없습니다.", "등록오류", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #19
0
        public void GetTotalHour() //추가기능 전체 시간 가져오는 함수
        {
            DateTime dt   = dateTimePickerYearMonth.Value;
            string   date = string.Format("{0:0000}-{1:00}", dt.Year, dt.Month);

            if (listViewShowEmployee.SelectedItems.Count == 0)
            {
                MessageBox.Show("사원을 선택해주세요", "확인");
                return;
            }
            int    idx        = listViewShowEmployee.FocusedItem.Index;
            string employeeid = listViewShowEmployee.Items[idx].Text;
            string query      = "select empID,sum(hour(daytime))as h, sum(minute(daytime))as m, sum(second(daytime))as s from(select empID,date,subtime(empOut, empIn) as daytime from Attendance) as tmp where empID ="
                                + employeeid + " AND DATE_FORMAT(Date,'%Y-%m') = '" + date + "' group by empID";
            //사원 id, 시간, 분, 초를 받아옴.
            MySqlDataReader rdr = DBManager.GetInstance().select(query);
            int             hour = 0, month = 0, second = 0;

            if (rdr.Read())
            {
                hour   = Int32.Parse(rdr["h"].ToString());
                month  = Int32.Parse(rdr["m"].ToString());
                second = Int32.Parse(rdr["s"].ToString());
            }
            totalworktime_ = hour + (float)month / 60;

            query = "SELECT * FROM SalaryDetail WHERE employeeid = " + employeeid + " AND month = '" + date + "-01'";
            rdr   = DBManager.GetInstance().select(query); //DB에서 값을 가져옴
            if (rdr.Read())
            {
                if (rdr["extratime"].ToString() != "")
                {
                    ExtraHour_ = Double.Parse(rdr["extratime"].ToString());
                }
                else
                {
                    ExtraHour_ = 0;
                }
            }
            else
            {
                query = "INSERT INTO SalaryDetail(employeeid, month) VALUES(" + employeeid + ", '" + date + "-01')";
                DBManager.GetInstance().DBquery(query); //insert 실행
                ExtraHour_ = 0;
            }
        }
Пример #20
0
        private void fill업무내용event()
        {
            //한번 닦기
            comboBox업무내용.Items.Clear();

            //업무 내용 세팅, 가끔씩 null 받아옴... 오류 많이생김 고치기
            string com1 = comboBox소속.SelectedItem.ToString();
            string com2 = comboBox업무종류.SelectedItem.ToString();

            string          query = "SELECT DISTINCT 업무내용 FROM 업무마스터 WHERE 부서 LIKE '" + com1 + "' AND 업무종류 LIKE '" + com2 + "' AND 업무유효성=1";
            MySqlDataReader rdr   = DBManager.GetInstance().select(query);

            while (rdr.Read())
            {
                comboBox업무내용.Items.Add(rdr["업무내용"].ToString());
            }
        }
Пример #21
0
        private void buttonOK_Click(object sender, EventArgs e)
        {                                    //입력되지 않았을 경우 예외처리하기
            if (textBoxInputHour.Text == "") //입력되지 않은 경우
            {
                DBManager.GetInstance().msg("시간을 입력해주세요");
                return;
            }
            double i = 0;

            if (double.TryParse(textBoxInputHour.Text, out i) == false) //가격이 정수가 아닐경우
            {
                DBManager.GetInstance().msg("정수 가격을 입력해주세요");
                return;
            }
            detail_.ExtraHour_ = Double.Parse(textBoxInputHour.Text);
            this.Close();
        }
Пример #22
0
        public void ChangeDept(string ID, int parameter)
        {
            string query = "";

            switch (parameter)
            {
            case 1:
                query = @"UPDATE Employee SET position='부서장',department=" + ID + " WHERE identification=" + deptMaster;
                break;

            case 2:
                query = @"UPDATE Employee SET position='부서장',department=" + ID + " WHERE identification=" + deptMaster + ";" +
                        "UPDATE Employee SET position='사원' WHERE identification in (SELECT Identification FROM (SELECT identification FROM Employee WHERE identification <> " + deptMaster + " AND position='부서장' AND department=" + deptID + ") AS 사원)";
                break;
            }
            DBManager.GetInstance().DBquery(query);
        }
Пример #23
0
        public void GetDepartment()//부서를 가져오는 코드
        {
            string          query = "SELECT * FROM 부서 WHERE valid = 1";
            MySqlDataReader rdr   = DBManager.GetInstance().select(query); //DB에서 값을 가져옴

            comboBoxShowDepartment.Items.Clear();
            while (rdr.Read())
            {
                string id = rdr["ID"].ToString();
                if (id == "1") //총장일 경우
                {
                    continue;
                }
                department_.Add(id);
                comboBoxShowDepartment.Items.Add(rdr["부서명"].ToString());
            }
            rdr.Close();
        }
Пример #24
0
        private void buttonDenycheck_Click(object sender, EventArgs e) // 결재반려 후 확인을 누르면
        {
            string selected = PaymentListView.SelectedRows[0].Cells[0].Value.ToString();
            int    id       = Convert.ToInt32(selected);

            if (MessageBox.Show("결재를 반려하시겠습니까?", "결재반려확인", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                string paymentdenymemo = "UPDATE 결재 SET 반려메모 ='" + textBoxPaymentdenymemo.Text + "'" + "," + "반려여부 = '1' , 진행상황 = '0'" +
                                         "WHERE ID = " + id;
                DBManager.GetInstance().DBquery(paymentdenymemo);
                MessageBox.Show("결재가 반려되었습니다.", "결재반려", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                paymentviewer();
            }
            else
            {
                MessageBox.Show("결재반려가 취소되었습니다.", "결재반려취소", MessageBoxButtons.OK);
            }
        }
Пример #25
0
 private void button_Task_Rectify_Click(object sender, EventArgs e) // 수정 버튼
 {
     if (TaskmasterView.CurrentCell == null)
     {
         MessageBox.Show("수정할 업무를 선택해주세요", "업무수정확인", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
     }
     else
     {
         button_Task_Apply.Visible = true;
         string selected = TaskmasterView.SelectedRows[0].Cells[0].Value.ToString();
         int    id       = Convert.ToInt32(selected);
         if (comboBoxAFcompany.Text == "") // 소속에 아무것도 없으면
         {
             MessageBox.Show("소속명을 기입하십시오", "업무수정오류", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
         else if (comboBoxTaskKind.Text == "") // 업무종류를 선택하지 않으면
         {
             MessageBox.Show("업무종류를 선택해주세요", "업무수정오류", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
         else if (textBoxTaskContents.Text == "") // 업무내용에 아무것도 없으면
         {
             MessageBox.Show("업무내용을 기입하십시오", "업무수정오류", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
         else
         {
             if (MessageBox.Show("업무를 수정하시겠습니까?", "업무수정확인", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
             {
                 string updatetask = "UPDATE 업무마스터 SET  부서 = '" + comboBoxAFcompany.Text + "'" + "," +
                                     "업무종류 = '" + comboBoxTaskKind.Text + "'" + "," + "업무내용 = '" + textBoxTaskContents.Text + "'" +
                                     "WHERE 업무번호 = " + id + "";
                 DBManager.GetInstance().DBquery(updatetask);
                 MessageBox.Show("업무가수정되었습니다.", "업무수정확인", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                 syndataview();
             }
             else
             {
                 MessageBox.Show("업무수정이 취소되었습니다.", "업무수정취소", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
             }
         }
     }
 }
Пример #26
0
        private void syndataview()                // 동기화 함수
        {
            comboBoxAFcompany.SelectedIndex = -1; // 입력방지 콤보박스 값 초기화
            comboBoxTaskKind.SelectedIndex  = -1; // 입력방지 콤보박스 값 초기화
            try { TaskmasterView.Rows.Clear(); }
            catch {}
            string          Tasklist = "SELECT 업무번호,부서,업무종류,업무내용 FROM 업무마스터 WHERE 업무유효성 = 1";
            MySqlDataReader rdr      = DBManager.GetInstance().select(Tasklist);
            DataTable       dt       = new DataTable();

            dt.Load(rdr);
            dt.DefaultView.Sort       = "업무번호"; // 업무번호 정렬하기
            TaskmasterView.DataSource = dt;
            if (TaskmasterView.Rows.Count == 0) // 업무마스터에 아무것도 없으면
            {
                TaskmasterView.DataSource = null;
            }
            comboBoxAFcompany.Text   = "";
            comboBoxTaskKind.Text    = "";
            textBoxTaskContents.Text = "";
        }
Пример #27
0
        private void buttonDelete_Click(object sender, EventArgs e) //삭제 버튼
        {
            try
            {
                //선택된 값 삭제
                //id(pk)값 가지고 삭제
                int id = Int32.Parse(dataGridViewSelect.Rows[dataGridViewSelect.CurrentCellAddress.Y].Cells[0].Value.ToString());
                //MessageBox.Show("" + id);

                //삭제 쿼리 보내기
                string query = "DELETE FROM 일일업무등록 WHERE id = " + id;
                DBManager.GetInstance().DBquery(query);

                MessageBox.Show("삭제되었습니다.");
                //화면 닦이는지 확인
                gridView.SettingGridView();
            }
            catch
            {
                MessageBox.Show("선택후 진행해 주세요");
            }
        }
Пример #28
0
        public void getlocaltime(string employeeid, string date)
        {
            string          query = "SELECT * FROM SalaryDetail WHERE employeeid = " + employeeid + " AND month = '" + date + "-01'";
            MySqlDataReader rdr   = DBManager.GetInstance().select(query); //DB에서 값을 가져옴

            if (rdr.Read())
            {
                // DateTime today = DateTime.Now.Date;
                //DateTime firstday = today.AddDays(1 - today.Day);
                // DateTime lastday = firstday.AddMonths(1).AddDays(-1);

                string tmp = rdr["totalwork"].ToString(); //총근무 시간을 가져옴
                if (rdr["totalwork"].ToString() == "")    //추가기능 구현전 아무것도 입력되어 있지 않을 경우
                {
                    totalworktime_ = 207;
                }
                else
                {
                    totalworktime_ = Int32.Parse(rdr["totalwork"].ToString());
                }
                tmp = rdr["extratime"].ToString(); //추가시간을 가져옴.
                if (rdr["extratime"].ToString() != "")
                {
                    ExtraHour_ = Int32.Parse(rdr["extratime"].ToString());
                }
                else
                {
                    ExtraHour_ = 0;
                }
            }
            else
            {
                query = "INSERT INTO SalaryDetail(employeeid, month) VALUES(" + employeeid + ", '" + date + "-01')";
                DBManager.GetInstance().DBquery(query); //insert 실행
                totalworktime_ = 207;
                ExtraHour_     = 0;
            }
        }
Пример #29
0
        //콤보박스 값들은 이벤트에 따라 바뀌여야함.
        private void comboBox소속_SelectedIndexChanged(object sender, EventArgs e) //부서선택
        {
            //한번 닦기
            comboBox업무종류.Items.Clear();

            //업무 종류 세팅
            string com1 = comboBox소속.SelectedItem.ToString();

            string          query = "SELECT DISTINCT 업무종류 FROM 업무마스터 WHERE 부서 LIKE '" + com1 + "' AND 업무유효성=1";
            MySqlDataReader rdr   = DBManager.GetInstance().select(query);

            while (rdr.Read())
            {
                comboBox업무종류.Items.Add(rdr["업무종류"].ToString());
            }

            //첫번째 선택
            comboBox업무종류.SelectedIndex = 0;

            //나머지 콤보박스 비우기
            comboBox업무내용.SelectedItem = null;
            comboBox업무내용.Items.Clear();
        }
Пример #30
0
        private void paymentviewer() // 첫 화면 함수
        {
            labelpaymentdeny.Visible       = false;
            textBoxPaymentdenymemo.Visible = false;
            buttonDenycheck.Visible        = false;
            textBoxComent.Text             = "";
            DataTable dt = new DataTable();

            dt.Clear();
            string checkpayment1 = "SELECT ID,기안자,제목,내용,코멘트,제1결재자,제2결재자" +
                                   ",ifnull(제3결재자,0)AS 제3결재자 FROM 결재 WHERE 진행상황 < 결재자수 AND 1승인시간 IS NULL AND 반려여부 = 0 AND 제1결재자 = " + id;
            string checkpayment2 = "SELECT ID,기안자,제목,내용,코멘트,제1결재자,제2결재자" +
                                   ",ifnull(제3결재자,0)AS 제3결재자 FROM 결재 WHERE 진행상황 < 결재자수 AND 진행상황=1 AND 2승인시간 IS NULL AND 반려여부 = 0 AND 제2결재자 = " + id;
            string checkpayment3 = "SELECT ID,기안자,제목,내용,코멘트,제1결재자,제2결재자" +
                                   ",ifnull(제3결재자,0)AS 제3결재자 FROM 결재 WHERE 진행상황 < 결재자수 AND 진행상황=2 AND 3승인시간 IS NULL AND 반려여부 = 0 AND 제3결재자 = " + id;
            MySqlDataReader rdr1 = DBManager.GetInstance().select(checkpayment1);
            MySqlDataReader rdr2 = DBManager.GetInstance().select(checkpayment2);
            MySqlDataReader rdr3 = DBManager.GetInstance().select(checkpayment3);
            DataTable       dt1  = new DataTable();

            dt1.Load(rdr1);
            DataTable dt2 = new DataTable();

            dt2.Load(rdr2);
            DataTable dt3 = new DataTable();

            dt3.Load(rdr3);
            dt1.Merge(dt2);
            dt1.Merge(dt3);
            dt1.DefaultView.Sort       = "ID"; // 데이터그리드뷰에서 ID를 정렬한다.
            PaymentListView.DataSource = dt1;

            if (PaymentListView.Rows.Count == 0) // 결재내역에 없으면
            {
                PaymentListView.DataSource = null;
            }
        }