예제 #1
0
        public void LoadEmpSchedInListView(ListView lv)
        {
            Emp_Sched es = new Emp_Sched();
            DataTable dt = new DataTable();

            dt = es.SELECT_ALL();
            if (dt != null)
            {
                int ctr = 1;
                foreach (DataRow r in dt.Rows)
                {
                    ListViewItem li = new ListViewItem();
                    li.Text = ctr.ToString();
                    li.SubItems.Add(r["fullname"].ToString());
                    li.SubItems.Add(r["mon"].ToString());
                    li.SubItems.Add(r["tue"].ToString());
                    li.SubItems.Add(r["wed"].ToString());
                    li.SubItems.Add(r["thu"].ToString());
                    li.SubItems.Add(r["fri"].ToString());
                    li.SubItems.Add(r["sat"].ToString());
                    li.SubItems.Add(r["sun"].ToString());
                    li.SubItems.Add(Convert.ToDateTime(r["date_updated"].ToString()).ToShortDateString());
                    lv.Items.Add(li);
                    ctr++;
                }
            }
        }
예제 #2
0
        public void LoadEmpSchedInListView(ListView lv)
        {
            Emp_Sched es = new Emp_Sched();
            DataTable dt = new DataTable();

            dt = es.SELECT_ALL();
            if (dt != null)
            {
                int ctr = 1;
                foreach (DataRow r in dt.Rows)
                {
                    ListViewItem li = new ListViewItem();
                    li.Text = ctr.ToString();
                    li.SubItems.Add(r["fullname"].ToString());
                    li.SubItems.Add(r["mon"].ToString());
                    li.SubItems.Add(r["tue"].ToString());
                    li.SubItems.Add(r["wed"].ToString());
                    li.SubItems.Add(r["thu"].ToString());
                    li.SubItems.Add(r["fri"].ToString());
                    li.SubItems.Add(r["sat"].ToString());
                    li.SubItems.Add(r["sun"].ToString());
                    li.SubItems.Add(Convert.ToDateTime(r["date_updated"].ToString()).ToShortDateString());
                    lv.Items.Add(li);
                    ctr++;
                }
            }
        }
예제 #3
0
        private void tztpassword_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode.ToString().Equals("Return"))
            {

                Employee emp, emp1 = new Employee();
                emp1.empid = txtid.Text;
                String hash;
                using (MD5 md5Hash = MD5.Create())
                {
                    hash = Global.GetMd5Hash(md5Hash, txtpassword.Text);
                }

                emp1.password = hash;
                emp = emp1.SELECT_BY_IDPASS();

                //MessageBox.Show(hash);

                if (emp != null)
                {

                    Global.CURRENT_USER.empid = emp.empid;
                    Global.CURRENT_USER = emp;
                    Global.CURRENT_USER.pic = emp.GET_IMAGE_BY_ID();
                    Global.CURRENT_USER.basic_pay = emp.GET_BASIC_PAY();
                    Global.CURRENT_USER.emp_status = emp.GET_EMPLOYMENT_STATUS();
                    Global.CURRENT_USER.position = emp.GET_CURRENT_POSITION();
                    Global.CURRENT_USER.branch = emp.GET_BRANCH_ASSIGNMENT();

                    //CREATE A RESTRICTION OBJECT
                    Emp_Restriction r = new Emp_Restriction();
                    //SET CURRENT USER RESTRICTION
                    r.empid = Global.CURRENT_USER.empid;
                    Global.CURRENT_USER.restriction = r.SELECT_BY_ID();
                    Global.CURRENT_USER.LIST_BENEFITS();

                    //GET CURRENT USER LATEST SCHEDULE
                    Emp_Sched es = new Emp_Sched();
                    es.empid = Global.CURRENT_USER.empid;
                    Global.CURRENT_USER.schedule = es.SELECT_BY_EMPID();

                    Global.CURRENT_USER.ISLOGGEDIN = true;

                    frmMain f = new frmMain();
                    f.Show();

                    this.Hide();

                }
                else {
                    MessageBox.Show("Nothing found");
                }

            }
        }
예제 #4
0
        public void LoadEmpSched(ComboBox cbo)
        {
            Emp_Sched es = new Emp_Sched();
            DataTable dt = new DataTable();

            dt = es.SELECT_ALL();
            if (dt != null)
            {
                foreach (DataRow r in dt.Rows)
                {
                    cbo.Items.Add(r["lname"] + ", " + r["fname"] + " " + r["mname"] + "-" + r["empid"]);
                }
            }
        }
예제 #5
0
        public void LoadEmpSched(ComboBox cbo)
        {
            Emp_Sched es = new Emp_Sched();
            DataTable dt = new DataTable();

            dt = es.SELECT_ALL();
            if (dt != null)
            {
                foreach (DataRow r in dt.Rows)
                {
                    cbo.Items.Add(r["lname"] + ", " + r["fname"] + " " + r["mname"] + "-" + r["empid"]);
                }
            }
        }
예제 #6
0
        }//end save

        public Emp_Sched SELECT_BY_EMPID()
        {
            DataTable    dt  = new DataTable();
            MySqlCommand cmd = new MySqlCommand();

            db.SET_COMMAND_PARAMS(cmd, "EMP_SCHED_SELECT_BY_EMPID");
            cmd.Parameters.AddWithValue("_empid", empid);
            MySqlDataAdapter da = new MySqlDataAdapter(cmd);

            da.Fill(dt);

            if (dt != null)
            {
                if (dt.Rows.Count > 0)
                {
                    DataRow r = dt.Rows[0];

                    Emp_Sched es = new Emp_Sched();

                    es.empid = r["empid"].ToString();
                    es.mon   = r["mon"].ToString();
                    es.tue   = r["tue"].ToString();
                    es.wed   = r["wed"].ToString();
                    es.thu   = r["thu"].ToString();
                    es.fri   = r["fri"].ToString();
                    es.sat   = r["sat"].ToString();
                    es.sun   = r["sun"].ToString();

                    return(es);
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
예제 #7
0
        private void btnsave_Click(object sender, EventArgs e)
        {
            //validate
            bool proceed = (cboEmp.Text == "") ? proceed = false : proceed = true;

            //TO COUNT THE NUMBER OF DAYS CHECKED
            int days_selected = 0;

            if (proceed)
            {

                //CHECK IF COMBOBOXES HAVE VALUE
                if (mon.combobox.Text == "") { mon.ischecked = false; } else { days_selected++; }
                if (tue.combobox.Text == "") { tue.ischecked = false; } else { days_selected++; }
                if (wed.combobox.Text == "") { wed.ischecked = false; } else { days_selected++; }
                if (thu.combobox.Text == "") { thu.ischecked = false; } else { days_selected++; }
                if (fri.combobox.Text == "") { fri.ischecked = false; } else { days_selected++; }
                if (sat.combobox.Text == "") { sat.ischecked = false; } else { days_selected++; }
                if (sun.combobox.Text == "") { sun.ischecked = false; } else { days_selected++; }
                if (sched_adjustment.combobox.Text == "") { sched_adjustment.ischecked = false; } else { days_selected++; }

                Emp_Sched es = new Emp_Sched();
                es.empid = emp.empid;

                es.mon = (mon.ischecked) ? mon.combobox.Text : "";
                es.tue = (tue.ischecked) ? tue.combobox.Text : "";
                es.wed = (wed.ischecked) ? wed.combobox.Text : "";
                es.thu = (thu.ischecked) ? thu.combobox.Text : "";
                es.fri = (fri.ischecked) ? fri.combobox.Text : "";
                es.sat = (sat.ischecked) ? sat.combobox.Text : "";
                es.sun = (sun.ischecked) ? sun.combobox.Text : "";

                if (days_selected > 0)
                {
                    if (es.save())
                    {
                        if (sched_adjustment.ischecked)
                        {
                            Emp_Sched_Adjustment esa = new Emp_Sched_Adjustment();

                            esa.empid = es.empid;
                            esa.schedule_template_id = sched_adjustment.combobox.Text;
                            esa.when_applicable = "ALWAYS";
                            esa.adjustment_day = cbofirst.Text + "_" + cboday.Text;

                            if (esa.save())
                            {
                                MessageBox.Show("Successful \n\n Including Schedule Adjustments", "Save");
                            }
                            else
                            {
                                MessageBox.Show("There was a problem saving SCHEDULE_ADJUSTMENT :\n" + db.err.Message);
                            }
                        }
                        else {
                            MessageBox.Show("Successful\n\nSchedule Adjustments not detected.", "Save");
                        }
                    }
                    else
                    {
                        MessageBox.Show("There was a problem saving new Employee Schedule : \n\n" + db.err.Message, "Failed");
                    }

                }
                else
                {
                    MessageBox.Show("Please fill select from schedule templates.");
                }
            }
            else {
                MessageBox.Show("Please select Employee");
            }// END IF PROCEED
        }
예제 #8
0
        //for asychronous transaction
        public Emp_Sched SELECT_BY_EMPID(non_static_dbcon usethisconnection)
        {
            DataTable dt = new DataTable();
            MySqlCommand cmd = new MySqlCommand();
            usethisconnection.SET_COMMAND_PARAMS(cmd, "EMP_SCHED_SELECT_BY_EMPID");
            cmd.Parameters.AddWithValue("_empid", empid);
            MySqlDataAdapter da = new MySqlDataAdapter(cmd);
            da.Fill(dt);

            if (dt != null)
            {
                if (dt.Rows.Count > 0)
                {
                    DataRow r = dt.Rows[0];

                    Emp_Sched es = new Emp_Sched();

                    es.empid = r["empid"].ToString();
                    es.mon = r["mon"].ToString();
                    es.tue = r["tue"].ToString();
                    es.wed = r["wed"].ToString();
                    es.thu = r["thu"].ToString();
                    es.fri = r["fri"].ToString();
                    es.sat = r["sat"].ToString();
                    es.sun = r["sun"].ToString();

                    return es;

                }
                else { return null; }

            }
            else
            {
                return null;
            }
        }
예제 #9
0
        //BGW asynchronously GET EMPLOYEE DETAILS
        //ASYNC GET IMAGE FROM DATABASE
        //ASYNC GET LASTEST POSITION
        private void bgw_DoWork(object sender, DoWorkEventArgs e)
        {
            Employee getter = new Employee();
            getter.empid = empid;

            if (dbcon.CONNECT()) {
                emp=getter.SELECT_BY_ID(dbcon);
                emp.GET_IMAGE_BY_ID(dbcon);
                emp.GET_CURRENT_POSITION(dbcon);

                Emp_Sched es = new Emp_Sched();
                es.empid = emp.empid;
                empsched = es.SELECT_BY_EMPID(dbcon);
            }
        }
예제 #10
0
        //ONCE ASYNC GET OF ATTENDANCE IS DONE
        //1. LIST THE ATTENDANCE IN THE LISTBOX PROVIDED
        //2. START RETRIEVING THE EMPLOYEE'S SCHEDULE
        private void bgwattendance_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if (dbcon.DISCONNECT())
            {
                int ctr = 1;

                if (attendancedt != null)
                {
                    foreach (DataRow dr in attendancedt.Rows)
                    {
                        DateTime d = Convert.ToDateTime(dr["date_"].ToString());

                        string time_attendance = dr["attendance"].ToString();
                        ListViewItem li = new ListViewItem();
                        li.Text = ctr.ToString();
                        li.SubItems.Add(d.ToLongDateString());
                        li.SubItems.Add(time_attendance);

                        //========================================================//begin
                        //RECONSTRUCT AND SHOW THE EMPLOYEE SCHEDULE
                        //THEN COMPARE SCHEDULE WITH HIS/HERE BIOMETRICS ATTENDANCE
                         Emp_Sched es= new Emp_Sched();
                         es.empid= empid;// EMPID OF THE EMPLOYEE
                         empsched= es.SELECT_BY_EMPID();

                         String SCHEDULE_FOR_THE_DAY = "";
                        //GET SCHEDULE DEPENDING ON THE DAY OF THE WEEK
                         switch (d.DayOfWeek) {
                             case DayOfWeek.Monday  :{ SCHEDULE_FOR_THE_DAY=empsched.mon;break;}
                             case DayOfWeek.Tuesday :{ SCHEDULE_FOR_THE_DAY=empsched.tue;break;}
                             case DayOfWeek.Wednesday:{ SCHEDULE_FOR_THE_DAY=empsched.wed;break;}
                             case DayOfWeek.Thursday:{ SCHEDULE_FOR_THE_DAY=empsched.thu;break;}
                             case DayOfWeek.Friday:{ SCHEDULE_FOR_THE_DAY=empsched.fri;break;}
                             case DayOfWeek.Saturday:{ SCHEDULE_FOR_THE_DAY=empsched.sat;break;}
                             case DayOfWeek.Sunday:{ SCHEDULE_FOR_THE_DAY=empsched.sun;break;}

                         }

                         //IF ATTENDANCE IS MONDAY THEN COMPARE WITH MONDAY SCHEDULE
                         //SO WE NEED TO RECONSTRUCT SCHEDULE FOR ALL DAYS OF THE WEEK

                         //RECONSTRUCT SCHEDULE AND CREATE A DATETIME
                         //WITH DATE SAME AS THE ATTENDANCE
                         //BUT TIME IS FETCH FROM THE EMPLOYEE SCHEULE IN THE DATABASE
                         String[] SPLITTED_SCHEDULE_ID = SCHEDULE_FOR_THE_DAY.Split('-');
                         //CHECK FOR TIME-IN-TIME-OUT-TIME-IN-TIME-OUT
                         //KIND OF SCHEDULE
                         if (SPLITTED_SCHEDULE_ID.Length == 8)
                         {
                             AM_IN_HOUR = Convert.ToInt32(SPLITTED_SCHEDULE_ID[0]);
                             AM_IN_MIN = Convert.ToInt32(SPLITTED_SCHEDULE_ID[1]);
                             AM_OUT_HOUR = Convert.ToInt32(SPLITTED_SCHEDULE_ID[2]);
                             AM_OUT_MIN = Convert.ToInt32(SPLITTED_SCHEDULE_ID[3]);
                             PM_IN_HOUR = Convert.ToInt32(SPLITTED_SCHEDULE_ID[4]);
                             PM_IN_MIN = Convert.ToInt32(SPLITTED_SCHEDULE_ID[5]);
                             PM_OUT_HOUR = Convert.ToInt32(SPLITTED_SCHEDULE_ID[6]);
                             PM_OUT_MIN = Convert.ToInt32(SPLITTED_SCHEDULE_ID[7]);

                             AM_IN_SCHED = new DateTime(d.Year, d.Month, d.Day, AM_IN_HOUR, AM_IN_MIN, 0);
                             AM_OUT_SCHED = new DateTime(d.Year, d.Month, d.Day, AM_OUT_HOUR, AM_OUT_MIN, 0);

                             PM_IN_SCHED = new DateTime(d.Year, d.Month, d.Day, PM_IN_HOUR, PM_IN_MIN, 0);
                             PM_OUT_SCHED = new DateTime(d.Year, d.Month, d.Day, PM_OUT_HOUR, PM_OUT_MIN, 0);

                             //NOW THAT THE SCHEDULE IS RECONSTRUCTED
                             //WE NEED TO RECONSTRUCT ATTENDANCE COMPARE IT WITH THE SCHEDULE

                             string[] SPLITTED_BIOMETRICS_ATTENDANCE = time_attendance.Split(',');
                             //RECONSCTRUCT THE ATTENDANCE
                             //4 HERE MEANS
                             //TIME-IN, TIME-OUT, TIME-IN, TIME-OUT
                             //THERE ARE 4 WORDS IN BETWEEN COMMA ","

                             if ((SPLITTED_BIOMETRICS_ATTENDANCE.Length == 4))
                             {
                                 AM_IN_ATT = Convert.ToDateTime(d.ToShortDateString() + " " + SPLITTED_BIOMETRICS_ATTENDANCE[0]);
                                 AM_OUT_ATT = Convert.ToDateTime(d.ToShortDateString() + " " + SPLITTED_BIOMETRICS_ATTENDANCE[1]);
                                 PM_IN_ATT = Convert.ToDateTime(d.ToShortDateString() + " " + SPLITTED_BIOMETRICS_ATTENDANCE[2]);
                                 PM_OUT_ATT = Convert.ToDateTime(d.ToShortDateString() + " " + SPLITTED_BIOMETRICS_ATTENDANCE[3]);

                                 TimeSpan am_in_diff = AM_IN_ATT - AM_IN_SCHED;
                                 int am_late = ((int)am_in_diff.TotalMinutes > Properties.Settings.Default.MIN_LATE_GRACE_PERIOD)? (int)am_in_diff.TotalMinutes: 0;

                                 TimeSpan am_out_diff = AM_OUT_SCHED-AM_OUT_ATT;
                                 int am_ut = ((int)am_out_diff.TotalMinutes > 0) ? Math.Abs((int)am_out_diff.TotalMinutes) : 0;

                                 li.SubItems.Add((am_late+ am_ut).ToString());

                             }
                             else if ((SPLITTED_BIOMETRICS_ATTENDANCE.Length ==2))
                             {
                                 IN_ATT = Convert.ToDateTime(d.ToShortDateString() + " " + SPLITTED_BIOMETRICS_ATTENDANCE[0]);
                                 OUT_ATT = Convert.ToDateTime(d.ToShortDateString() + " " + SPLITTED_BIOMETRICS_ATTENDANCE[1]);

                                 //IF THE ATTENDANCE IS IN-OUT ONLY
                                 //DETERMINE IF IT IS AM/PM
                                 if (IN_ATT.ToString("tt", CultureInfo.InvariantCulture) == "AM")
                                 {
                                     //li.SubItems.Add("ATTENDANCE IS AM_ONLY");
                                     //CHECK FOR HOURS_IN_SERVICE

                                     TimeSpan in_diff = IN_ATT - AM_IN_SCHED;

                                     int in_late = ((int)in_diff.TotalMinutes > Properties.Settings.Default.MIN_LATE_GRACE_PERIOD) ? (int)in_diff.TotalMinutes : 0;

                                     TimeSpan HOURS_IN_SERVICE = OUT_ATT.Subtract(AM_IN_SCHED);

                                     //CREATE A TIME_SPAN (1 HOUR LUNCH BREAK)
                                     TimeSpan LUNCH_BREAK = TimeSpan.FromHours(1);

                                     //SUBTRACT LUNCH BREAK FROMT HE HOURS_IN_SERVICE
                                     li.SubItems.Add("TOTAL_HOURS : " + HOURS_IN_SERVICE.Subtract(LUNCH_BREAK).ToString());

                                 }
                                 else {
                                     li.SubItems.Add("ATTENDANCE IS PM_ONLY...");
                                     //CHECK FOR HOURS_IN_SERVICE
                                     //li.SubItems.Add("INAPPROPRIATE ATTENDANCE...");
                                 }

                             }
                             else if ((SPLITTED_BIOMETRICS_ATTENDANCE.Length == 3) || (SPLITTED_BIOMETRICS_ATTENDANCE.Length > 4))
                             {
                                 li.SubItems.Add("INAPPROPRIATE ATTENDANCE...");
                             }

                         }
                         else if (SPLITTED_SCHEDULE_ID.Length == 4){

                             //THIS WILL EXECUTE IF EMPLOYEE SCHEDULE IS LIKE 8-0-12-0
                             //LIKE TIME-IN, TIME-OUT KIND OF SCHEDULE
                             li.SubItems.Add("SCHEDULE IS NOT SET TO TIME-IN, TIME-OUT, TIME-IN, TIME-OUT");

                         }
                         else {
                             //IF NO SCHEDULE FOR THIS DAY
                             //YET THERE IS AN ATTENDANCE
                             li.SubItems.Add("NO SCHEDULE FOR THIS DAY, CHECKING FOR OVERTIME...");
                         }

                        //====================================================//end

                        lbattendance.Items.Add(li);
                        ctr++;
                    }
                }
                else
                {
                    lbattendance.Items.Add("No Attendance found...");
                }//END IF ATTENDANCE != NULL

                lblaction.Text = "completed...";
                pb.Value = pb.Value + 20;
                lblaction.Text = "retrieving employee schedule...";

                TimeSpan span = TimeSpan.FromMinutes(TOTAL_LATES_FOR_THIS_CUTOFF);
                int total_hours_late=(int)span.TotalHours;

                lbltotallate.Text =(total_hours_late > 1)? total_hours_late.ToString() + " Hours " + span.Minutes.ToString() + " Minutes" :  total_hours_late.ToString() + " Hour " + span.Minutes.ToString() + " Minutes";

                //bgwschedule.RunWorkerAsync();

            }//END IF DBCON.DISCONNECT
        }
예제 #11
0
        private void viewScheduleToolStripMenuItem_Click(object sender, EventArgs e)
        {
            String id = lv.SelectedItems[0].SubItems[1].Text;
            //MessageBox.Show(id);

            Employee emp, emp1 = new Employee();
            emp1.empid = id;
            emp = emp1.SELECT_BY_ID();
            emp.GET_BASIC_PAY();
            emp.GET_BRANCH_ASSIGNMENT();
            emp.GET_EMPLOYMENT_STATUS();
            emp.GET_IMAGE_BY_ID();
            emp.GET_CURRENT_POSITION();
            emp.LIST_BENEFITS();
            pnlops.Controls.Clear();

            Emp_Sched es = new Emp_Sched();
            es.empid = emp.empid;
            emp.schedule= es.SELECT_BY_EMPID();

            emp_view_sched c = new emp_view_sched();
            c.emp = emp;
            c.Width = pnlops.Width;
            pnlops.Height = c.Height;

            pnlops.Controls.Add(c);
        }
예제 #12
0
 private void emp_sched_ctrl_Load(object sender, EventArgs e)
 {
     Emp_Sched es = new Emp_Sched();
     es.LoadEmpSchedInListView(lv);
 }