public static void Update(int id, EmployeeFines empfine)
        {
            try
            {
                db.cmd.CommandText = @"update tblEmployeeFines set Fine=@fn,DateTime=@dt,Note=@nt,
                                     AddedByEmployee_ID=@abid,Employee_ID=@empid,FineStatus_ID=@fsid where Id=@id; ";

                db.cmd.Parameters.AddWithValue("@fn", empfine.Fine);
                db.cmd.Parameters.AddWithValue("@dt", empfine.DateTime);
                db.cmd.Parameters.AddWithValue("@nt", empfine.Note);
                db.cmd.Parameters.AddWithValue("@abid", empfine.AddedByEmployeesId);
                db.cmd.Parameters.AddWithValue("@empid", empfine.EmployeesId);
                db.cmd.Parameters.AddWithValue("@fsid", empfine.FineStatusesId);
                db.cmd.Parameters.AddWithValue("@id", id);
                db.con.Open();
                db.cmd.ExecuteNonQuery();
            }

            catch (SqlException sqlex)
            {
                SqlExceptionErrorHandling rh = new SqlExceptionErrorHandling();
                rh.GetError(sqlex);
            }
            finally
            {
                db.CloseDb(db.con, db.cmd);
            }
        }
        public static int Add(EmployeeFines employeeFines)
        {
            int retvalue = -1;

            try
            {
                db.cmd.CommandType = CommandType.StoredProcedure;
                db.cmd.CommandText = "procEmployeeFines_AddEmployeeFines";
                db.cmd.Parameters.AddWithValue("@Fine", employeeFines.Fine);
                db.cmd.Parameters.AddWithValue("@DateTime", employeeFines.DateTime);
                db.cmd.Parameters.AddWithValue("@Note", employeeFines.Note);
                db.cmd.Parameters.AddWithValue("@AddedByEmployee_ID", employeeFines.AddedByEmployeesId);
                db.cmd.Parameters.AddWithValue("@Employee_ID", employeeFines.EmployeesId);
                db.cmd.Parameters.AddWithValue("@FineStatus_ID", employeeFines.FineStatusesId);
                db.cmd.Parameters.Add("@id", SqlDbType.Int);
                db.cmd.Parameters["@id"].Direction = ParameterDirection.Output;
                db.con.Open();
                db.cmd.ExecuteNonQuery();
                retvalue = Convert.ToInt32(db.cmd.Parameters["@id"].Value);
            }

            catch (SqlException sqlex)
            {
                SqlExceptionErrorHandling rh = new SqlExceptionErrorHandling();
                rh.GetError(sqlex);
            }
            finally
            {
                db.CloseDb(db.con, db.cmd);
            }

            return(retvalue);
        }
        public static int Add(EmployeeFines employeeFines, FineStatuses fineStatuses)
        {
            int retvalue = -1;

            employeeFines.FineStatusesId = FineStatuses.Add(fineStatuses);
            retvalue = EmployeeFines.Add(employeeFines);
            return(retvalue);
        }
        public static float FineAmount(int employeesId, int Month)
        {
            float emptotal    = 0;
            var   empfine     = new EmployeeFines();
            var   empfinedata = EmployeeFines.ListOfEmployeeFines.
                                FindAll(e => e.EmployeesId == employeesId &&
                                        Convert.ToDateTime(e.DateTime).Month == Month).
                                Select(e => e.Fine);

            emptotal = empfinedata.Sum();

            return(emptotal);
        }
        //public EmployeeFines()
        //{
        //    Employees = new Employees();
        //    AddedByEmployees = new Employees();
        //}
        private static List <EmployeeFines> _GetEmployeeFines()
        {
            List <EmployeeFines> EmployeeFines = new List <EmployeeFines>();


            try
            {
                Command            = "select * from tblEmployeeFines";
                db.cmd.CommandText = Command;
                db.con.Open();

                SqlDataReader rdr = db.cmd.ExecuteReader();
                while (rdr.Read())
                {
                    EmployeeFines singleEmployeeFines = new EmployeeFines();
                    singleEmployeeFines.Id                 = (int)rdr[0];
                    singleEmployeeFines.Fine               = Convert.ToSingle(rdr[1]);
                    singleEmployeeFines.DateTime           = rdr[2].ToString();
                    singleEmployeeFines.Note               = rdr[3].ToString();
                    singleEmployeeFines.AddedByEmployeesId = (int)rdr[4];
                    singleEmployeeFines.EmployeesId        = (int)rdr[5];
                    singleEmployeeFines.FineStatusesId     = (int)rdr[6];


                    var emp = new Employees();
                    singleEmployeeFines.Employees = Employees.ListOfEmployees.SingleOrDefault(e => e.Id == singleEmployeeFines.EmployeesId);

                    var addedbyemp = new Employees();
                    singleEmployeeFines.Employees = Employees.ListOfEmployees.SingleOrDefault(e => e.Id == singleEmployeeFines.AddedByEmployeesId);

                    singleEmployeeFines.FineStatuses = FineStatuses.ListOfFineStatuses.SingleOrDefault(f => f.Id == singleEmployeeFines.FineStatusesId);

                    EmployeeFines.Add(singleEmployeeFines);
                }
            }
            catch (SqlException sqlex)
            {
                SqlExceptionErrorHandling rh = new SqlExceptionErrorHandling();
                rh.GetError(sqlex);
            }
            finally
            {
                db.con.Close();
            }
            return(EmployeeFines);
        }
        public static int Add(SalaryRecords salaryRecords)
        {
            int retvalue = -1;

            try
            {
                int       month = Convert.ToDateTime(salaryRecords.DateTime).Month;
                Employees emp1  = new Employees();

                EmployeeAttendanceRecords empr1 = new EmployeeAttendanceRecords();
                EmployeeFines             empf1 = new EmployeeFines();

                salaryRecords.PayableAmount = Convert.ToDecimal(Employees.ListOfEmployees.SingleOrDefault(e => e.Id == salaryRecords.EmployeesId).Salary - EmployeeAttendanceRecords.AmountDetection(salaryRecords.EmployeesId, month) - EmployeeFines.FineAmount(salaryRecords.EmployeesId, month));

                db.cmd.CommandType = CommandType.StoredProcedure;
                db.cmd.CommandText = "procSalaryRecords_AddSalaryRecords";
                db.cmd.Parameters.AddWithValue("@DateTime", salaryRecords.DateTime);
                db.cmd.Parameters.AddWithValue("@Paid", salaryRecords.Paid);
                db.cmd.Parameters.AddWithValue("@PayableAmount", salaryRecords.PayableAmount);
                db.cmd.Parameters.AddWithValue("@Employee_ID", salaryRecords.EmployeesId);
                db.cmd.Parameters.AddWithValue("@AddedByEmployee_ID", salaryRecords.AddedByEmployesId);
                db.cmd.Parameters.Add("@id", SqlDbType.Int);
                db.cmd.Parameters["@id"].Direction = ParameterDirection.Output;
                db.con.Open();
                db.cmd.ExecuteNonQuery();
                retvalue = Convert.ToInt32(db.cmd.Parameters["@id"].Value);
            }

            catch (SqlException sqlex)
            {
                SqlExceptionErrorHandling rh = new SqlExceptionErrorHandling();
                rh.GetError(sqlex);
            }
            finally
            {
                db.CloseDb(db.con, db.cmd);
            }

            return(retvalue);
        }
 public static void Update(int Id, EmployeeFines empfine, FineStatuses finestatus)
 {
     empfine.FineStatusesId = FineStatuses.Add(finestatus);
     EmployeeFines.Update(Id, empfine);
 }