Example #1
0
 public DtoMessage InsertExeptionsDay(DtoExceptionDay exceptionDay)
 {
     using (var db = new KadrDataContext())
     {
         try
         {
             var exception = new Exception
             {
                 DateException = exceptionDay.Date,
                 ExceptionName = exceptionDay.Name,
                 idDayStatus   = exceptionDay.DayStatus.IdDayStatus,
                 KolHourGNS    = exceptionDay.GNS,
                 KolHourGPS    = exceptionDay.GPS,
                 KolHourMNS    = exceptionDay.MNS,
                 KolHourMPS    = exceptionDay.MPS,
                 idPrikaz      = 1,
                 idWorkShedule = exceptionDay.WorkShedule.IdWorkShedule
             };
             db.Exception.InsertOnSubmit(exception);
             db.SubmitChanges();
             return(new DtoMessage
             {
                 Result = true
             });
         }
         catch (System.Exception ex)
         {
             return(new DtoMessage
             {
                 Result = false,
                 Message = ex.Message + " " + ex.TargetSite
             });
         }
     }
 }
Example #2
0
 public DtoWorkShedule[] GetWorkShedules()
 {
     using (var db = new KadrDataContext())
     {
         return(db.WorkShedules.Select(s => DtoClassConstructor.DtoWorkShedule(s)).ToArray());
     }
 }
Example #3
0
 public bool AddApproverForDepartment(int idEmployee, int idDepartment, int approveNumber)
 {
     using (var db = new KadrDataContext())
     {
         try
         {
             var currentApprover =
                 db.Approver.Where(
                     f =>
                     f.idDepartment == idDepartment & f.ApproverType.ApproveNumber == approveNumber &
                     f.DateEnd == null).ToArray();
             foreach (var approver in currentApprover)
             {
                 approver.DateEnd = DateTime.Now;
             }
             var newApprover = new Approver
             {
                 idApproverType =
                     db.ApproverType.Where(w => w.ApproveNumber == approveNumber).Select(
                         s => s.id).FirstOrDefault(),
                 idDepartment = idDepartment,
                 idEmployee   = idEmployee,
                 DateBegin    = DateTime.Now,
                 DateEnd      = null
             };
             db.Approver.InsertOnSubmit(newApprover);
             db.SubmitChanges();
             return(true);
         }
         catch (System.Exception)
         {
             return(false);
         }
     }
 }
Example #4
0
 public DtoCategory[] GetCategoryes()
 {
     using (var db = new KadrDataContext())
     {
         return(db.Category.Select(s => DtoClassConstructor.DtoCategory(s)).ToArray());
     }
 }
Example #5
0
 public bool EditTimeSheetRecords(DtoTimeSheetRecord[] recordsForEdit)
 {
     using (var db = new KadrDataContext())
     {
         try
         {
             foreach (var recordForEdit in recordsForEdit)
             {
                 var updeteItem =
                     db.TimeSheetRecords.FirstOrDefault(
                         f => f.IdTimeSheetRecord == recordForEdit.IdTimeSheetRecord);
                 if (updeteItem == null)
                 {
                     continue;
                 }
                 updeteItem.JobTimeCount   = recordForEdit.JobTimeCount;
                 updeteItem.NightTimeCount = (recordForEdit.NightTimeCount != "")? Convert.ToDouble(recordForEdit.NightTimeCount) : 0;
                 updeteItem.idDayStatus    = recordForEdit.DayStays.IdDayStatus;
             }
             db.SubmitChanges();
         }
         catch (System.Exception)
         {
             return(false);
         }
         return(true);
     }
 }
Example #6
0
        public DtoMessage DeleteExeptionsDay(int idExceptionDay)
        {
            using (var db = new KadrDataContext())
            {
                try
                {
                    var exceptionDay = db.Exception.FirstOrDefault(f => f.id == idExceptionDay);

                    if (exceptionDay != null)
                    {
                        db.Exception.DeleteOnSubmit(exceptionDay);
                    }
                    db.SubmitChanges();
                    return(new DtoMessage
                    {
                        Result = true
                    });
                }
                catch (System.Exception ex)
                {
                    return(new DtoMessage
                    {
                        Result = false,
                        Message = ex.Message
                    });
                }
            }
        }
Example #7
0
 public DtoMessage CreateTimeSheet(int idDepartment, DateTime dateBeginPeriod, DateTime dateEndPeriod,
                                   DtoApprover approver, IEnumerable <DtoFactStaffEmployee> employees = null)
 {
     using (var db = new KadrDataContext())
     {
         try
         {
             //todo:тут надо корректно вытаскивать согласователя
             var timeSheet = new TimeSheetManaget(idDepartment, dateBeginPeriod, dateEndPeriod,
                                                  approver.EmployeeLogin, db);
             timeSheet.GenerateTimeSheet(employees.ToArray());
             return(new DtoMessage
             {
                 Result = true
             });
         }
         catch (System.Exception ex)
         {
             return(new DtoMessage
             {
                 Message = ex.Message,
                 Result = false
             });
         }
     }
 }
Example #8
0
 public DtoDayStatus[] GetDayStatusList()
 {
     using (var db = new KadrDataContext())
     {
         return(db.DayStatus.Select(s => DtoClassConstructor.DtoDayStatus(s)).ToArray());
     }
 }
Example #9
0
        public bool EditEmployeeRegim(int IdFactStaff, int IdWorkShedule, bool isPersonalRegim, int HoursWeek)
        {
            using (var db = new KadrDataContext())
            {
                try
                {
                    var fs = db.FactStaffs.FirstOrDefault(f => f.id == IdFactStaff);
                    if (isPersonalRegim) //если это персональный режим
                    {
                        fs.idTimeSheetSheduleType = IdWorkShedule;
                    }
                    else
                    {
                        db.PlanStaff.FirstOrDefault(p => p.id == fs.idPlanStaff.Value).IdWorkShedule = IdWorkShedule;
                    }
                    fs.CurrentChange.WorkHoursInWeek = HoursWeek;

                    db.SubmitChanges();
                    return(true);
                }
                catch (System.Exception)
                {
                    return(false);
                }
            }
        }
Example #10
0
 public DtoMessage EditExeptionsDay(DtoExceptionDay exceptionDay)
 {
     using (var db = new KadrDataContext())
     {
         try
         {
             var exception = db.Exception.FirstOrDefault(f => f.id == exceptionDay.IdExceptionDay);
             if (exception != null)
             {
                 exception.DateException = exceptionDay.Date;
                 exception.ExceptionName = exceptionDay.Name;
                 exception.idDayStatus   = exceptionDay.DayStatus.IdDayStatus;
                 exception.KolHourGNS    = exceptionDay.GNS;
                 exception.KolHourGPS    = exceptionDay.GPS;
                 exception.KolHourMNS    = exceptionDay.MNS;
                 exception.KolHourMPS    = exceptionDay.MPS;
                 exception.idPrikaz      = 1;
                 exception.idWorkShedule = exceptionDay.WorkShedule.IdWorkShedule;
             }
             db.SubmitChanges();
             return(new DtoMessage
             {
                 Result = true
             });
         }
         catch (System.Exception ex)
         {
             return(new DtoMessage
             {
                 Result = false,
                 Message = ex.Message
             });
         }
     }
 }
Example #11
0
 public bool IsAnyTimeSheetWithThisId(int idTimeSheet)
 {
     using (var db = new KadrDataContext())
     //using (var dbloger = new DataContextLoger("GetTimeSheetLog.txt", FileMode.OpenOrCreate, db))
     {
         return(db.TimeSheet.Any(a => a.id == idTimeSheet));
     }
 }
Example #12
0
 public DtoTimeSheet GetTimeSheet(int idTimeSheet, bool isEmpty = false)
 {
     using (var db = new KadrDataContext())
     //using (var dbloger = new DataContextLoger("GetTimeSheetLog.txt", FileMode.OpenOrCreate, db))
     {
         return(DtoClassConstructor.DtoTimeSheet(db, idTimeSheet, isEmpty));
     }
 }
Example #13
0
 public DtoEmployee[] GetAllEmployees()
 {
     using (var db = new KadrDataContext())
     {
         return
             (db.FactStaffs.Where(w => w.DateEnd == null || w.DateEnd > DateTime.Today).Select(
                  s => DtoClassConstructor.DtoEmployee(s.Employee)).Distinct().ToArray());
     }
 }
Example #14
0
 public DtoEmployee[] GetDepartmentEmployees(int idDepartment)
 {
     using (var db = new KadrDataContext())
     {
         return
             (db.FactStaffs.Where(w => w.PlanStaff.idDepartment == idDepartment && (w.DateEnd == null || w.DateEnd > DateTime.Today)).Select(
                  s => DtoClassConstructor.DtoEmployee(s.Employee)).Distinct().ToArray());
     }
 }
Example #15
0
        //=========================  Дни исключения ==================================================================

        /// <summary>
        /// Возвращает список дней исключений
        /// </summary>
        /// <returns></returns>
        public DtoExceptionDay[] GetExeptionsDays()
        {
            using (var db = new KadrDataContext())
            {
                return
                    (db.Exception.OrderBy(o => o.DateException)
                     .Select(s => DtoClassConstructor.DtoExceptionDay(s))
                     .ToArray());
            }
        }
Example #16
0
 public DtoDepartment[] GetDepartmentsList()
 {
     using (var db = new KadrDataContext())
     {
         return
             (db.Department.Where(w => w.dateExit == null | w.dateExit > DateTime.Now)
              .Select(s => DtoClassConstructor.DtoDepartment(db, s.id))
              .ToArray());
     }
 }
Example #17
0
 public DtoTimeSheet[] GetTimeSheetListForDepartments(int[] idDepartment, DateTime dateStart, int koll = 0, bool isEmpty = false)
 {
     using (var db = new KadrDataContext())
     {
         return(koll <= 0
             ? db.TimeSheet.Where(w => idDepartment.Contains(w.idDepartment) && w.DateBeginPeriod.Year == dateStart.Year && w.DateBeginPeriod.Month == dateStart.Month)
                .Select(s => DtoClassConstructor.DtoTimeSheet(db, s.id, isEmpty)).ToArray()
             : db.TimeSheet.Where(w => idDepartment.Contains(w.idDepartment) && w.DateBeginPeriod.Year == dateStart.Year && w.DateBeginPeriod.Month == dateStart.Month)
                .Select(s => DtoClassConstructor.DtoTimeSheet(db, s.id, isEmpty)).ToArray());
     }
 }
Example #18
0
 public DtoApprover GetDepartmentApprover(int idDepartment, int approveNumber, bool isAdmin = false)
 {
     using (var db = new KadrDataContext())
     {
         return
             (db.Approver.Where(
                  w => w.idDepartment == idDepartment & w.ApproverType.ApproveNumber == approveNumber &
                  ((w.DateEnd == null) || (w.DateEnd >= DateTime.Now))).
              Select(s => DtoClassConstructor.DtoApprover(db, s.Employee.id, isAdmin)).FirstOrDefault());
     }
 }
Example #19
0
        private IEnumerable <int> GetInnerDepartmentsIdForTS(KadrDataContext db, IEnumerable <int> idsDepartment)
        {
            var list = new List <int>();

            foreach (var id in idsDepartment)
            {
                list.Add(id);
                var temp = db.Department.Where(w => w.idManagerDepartment == id && w.HasTimeSheet == false).Select(s => s.id);
                list.AddRange(GetInnerDepartmentsIdForTS(db, temp));
            }
            return(list.ToArray());
        }
Example #20
0
 public DtoApprover GetApproverForTimeSheet(int idTimeSheet, int approverNum)
 {
     using (var db = new KadrDataContext())
     {
         var timeSheet = db.TimeSheet.FirstOrDefault(f => f.id == idTimeSheet);
         if (timeSheet == null)
         {
             return(null);
         }
         var idDepatrment = timeSheet.idDepartment;
         return(GetDepartmentApprover(idDepatrment, approverNum));
     }
 }
Example #21
0
 public void DelFakeTimeSheet(int id)
 {
     using (var db = new KadrDataContext())
     {
         var ts = db.TimeSheet.FirstOrDefault(f => f.id == id);
         if (ts == null || !ts.IsFake)
         {
             throw new System.Exception("Fake timeSheet delition proplems");
         }
         db.TimeSheet.DeleteOnSubmit(ts);
         db.SubmitChanges();
     }
 }
Example #22
0
        private void SetDataContext(KadrDataContext db)
        {
            _db = db;
            var loadOptions = new DataLoadOptions();

            loadOptions.LoadWith((FactStaffWithHistory fswh) => fswh.PlanStaff);
            loadOptions.LoadWith((PlanStaff ps) => ps.Post);
            loadOptions.LoadWith((Post p) => p.Category);
            loadOptions.LoadWith((PlanStaff ps) => ps.WorkShedule);
            loadOptions.LoadWith((FactStaffWithHistory fswh) => fswh.Employee);
            loadOptions.LoadWith((OK_Otpusk oko) => oko.OK_Otpuskvid);
            _db.LoadOptions = loadOptions;
        }
Example #23
0
 //Old version
 public static DtoApproverDepartment DtoApproverDepartment(KadrDataContext db, int idApprover)
 {
     return(db.Approver.Where(w => w.id == idApprover).Select(s => new DtoApproverDepartment
     {
         IdDepartment = s.idDepartment,
         ApproveNumber = (int)s.ApproverType.ApproveNumber,
         ApproveTypeName = s.ApproverType.ApproverTypeName,
         DepartmentFullName = s.Dep.Department.DepartmentName,
         DepartmentSmallName = s.Dep.Department.DepartmentSmallName,
         IdManagerDepartment = s.Dep.Department.idManagerDepartment,
         IdApprover = s.id
     }).FirstOrDefault());
 }
Example #24
0
 public DtoTimeSheet[] GetTimeSheetList(int idDepartment, int koll = 0, bool isEmpty = false)
 {
     using (var db = new KadrDataContext())
     //using (var dbloger = new DataContextLoger("GetTimeSheetListLog.txt", FileMode.OpenOrCreate, db))
     {
         return(koll <= 0
             ? db.TimeSheet.Where(w => w.idDepartment == idDepartment)
                .Select(s => DtoClassConstructor.DtoTimeSheet(db, s.id, isEmpty)).ToArray()
             : db.TimeSheet.Where(w => w.idDepartment == idDepartment)
                .OrderByDescending(o => o.DateBeginPeriod).Take(koll)
                .Select(s => DtoClassConstructor.DtoTimeSheet(db, s.id, isEmpty)).ToArray());
     }
 }
Example #25
0
 public DtoApprover GetCurrentApproverByLogin(string employeeLogin, bool isAdmin = false)
 {
     employeeLogin = UserNameAdapter.Adapt(employeeLogin);
     if (string.IsNullOrWhiteSpace(employeeLogin))
     {
         return(null);
     }
     using (var db = new KadrDataContext())
     {
         var idEmployee =
             db.Employees.FirstOrDefault(w => w.EmployeeLogin.ToLower() == employeeLogin.ToLower());
         return(idEmployee != null?DtoClassConstructor.DtoApprover(db, idEmployee.id, isAdmin) :
                    DtoClassConstructor.DtoApproverIfNullAndAdmin(db, isAdmin));
     }
 }
Example #26
0
        public static DtoTimeSheetEmployee DtoTimeSheetEmployee(KadrDataContext db, int idTimeSheet, int idFactStaffHistory)
        {
            var records =
                db.TimeSheetRecords.Where(w => w.idTimeSheet == idTimeSheet & w.idFactStaffHistory == idFactStaffHistory).Select(
                    s => DtoTimeSheetRecord(s)).ToArray();

            // records
            var emp = new DtoTimeSheetEmployee
            {
                FactStaffEmployee = DtoFactStaffEmployee(db, idFactStaffHistory),
                Records           = records,
                IdTimeSheet       = idTimeSheet
            };

            return(emp);
        }
Example #27
0
        public static DtoDepartment DtoDepartment(KadrDataContext db, int idDepartment)
        {
            var dep = db.Department.FirstOrDefault(w => w.id == idDepartment);

            if (dep == null)
            {
                throw new System.Exception("Запрашиваемый отдел не найден. IdDep=" + idDepartment);
            }
            return(new DtoDepartment
            {
                IdDepartment = dep.id,
                DepartmentFullName = dep.DepartmentName,
                DepartmentSmallName = dep.DepartmentSmallName,
                IdManagerDepartment = dep.idManagerDepartment,
                HasTimeSheet = dep.HasTimeSheet
            });
        }
Example #28
0
 public bool CanApprove(int idTimeSheet, DtoApprover approver)
 {
     using (var db = new KadrDataContext())
     {
         //var approver = GetCurrentApproverByLogin(employeeLogin);
         var timeSheet             = db.TimeSheet.FirstOrDefault(f => f.id == idTimeSheet);
         var timeSheetApprovalStep = GetTimeSheetApproveStep(idTimeSheet) + 1;
         if (timeSheet == null)
         {
             return(false);
         }
         var approveDepartment =
             approver.GetDepartmentApproverNumbers(timeSheet.idDepartment)
             .FirstOrDefault(f => f.ApproveNumber == timeSheetApprovalStep);
         return(approveDepartment != null &&
                approveDepartment.ApproveNumber == timeSheetApprovalStep);
     }
 }
Example #29
0
 public DtoTimeSheetApproveHistiry[] GetTimeSheetApproveHistory(int idTimeSheet)
 {
     using (var db = new KadrDataContext())
     {
         return(db.TimeSheetApproval.Where(w => w.idTimeSheet == idTimeSheet).Select(
                    s => new DtoTimeSheetApproveHistiry
         {
             AppoverComment = s.Comment,
             AppoverDate = s.ApprovalDate,
             AppoverName =
                 string.Format("{1} {0} {2}", s.Approver.Employee.FirstName,
                               s.Approver.Employee.LastName, s.Approver.Employee.Otch),
             AppoverStatus = s.Approver.ApproverType.ApproverTypeName,
             AppoverVisa = s.Result ? "Согласовано" : "Отклонено",
             AppoverResult = s.Result
         }).OrderBy(o => o.AppoverDate).ToArray());
     }
 }
Example #30
0
        public static DtoTimeSheet DtoTimeSheet(KadrDataContext db, int idTimeSheet, bool isEmpty = false)
        {
            var service   = new TimeSheetService();
            var timeSheet = db.TimeSheet.Where(w => w.id == idTimeSheet).Select(s => new DtoTimeSheet
            {
                IdTimeSheet     = s.id,
                DateBegin       = s.DateBeginPeriod,
                DateEnd         = s.DateEndPeriod,
                DateComposition = s.DateComposition,
                Department      = DtoDepartment(db, s.idDepartment),
                ApproveStep     = service.GetTimeSheetApproveStep(idTimeSheet),
                IsFake          = s.IsFake,
                Holidays        = db.Exception.Where(e => (e.DateException >= s.DateBeginPeriod) && (e.DateException <= s.DateEndPeriod) &&
                                                     (e.WorkShedule.AllowNight) &&
                                                     (e.idDayStatus == IdHoliday)).Select(t => DtoExceptionDay(t)).ToArray(),
                EmployeesCount = db.TimeSheetRecords.Where(we => we.idTimeSheet == idTimeSheet)
                                 .Select(ec => ec.idFactStaffHistory)
                                 .Distinct()
                                 .Count()
            }).FirstOrDefault();

            if (timeSheet == null)
            {
                return(null);
            }
            if (isEmpty)
            {
                return(timeSheet);
            }
            timeSheet.Approvers =
                Enumerable.Range(1, 3)
                .Select(s => DtoTimeSheetApprover(db, idTimeSheet, s, timeSheet.ApproveStep))
                .ToArray();
            timeSheet.Employees = db.TimeSheetRecords.Where(we => we.idTimeSheet == idTimeSheet)
                                  .Select(se => se.idFactStaffHistory)
                                  .Distinct()
                                  .Select(se => DtoTimeSheetEmployee(db, idTimeSheet, se))
                                  .ToArray().OrderByDescending(o => o.FactStaffEmployee.Post.IsMenager).
                                  ThenBy(t => t.FactStaffEmployee.Post.Category.OrderBy).
                                  ThenBy(o => o.FactStaffEmployee.Surname).
                                  ToArray();
            return(timeSheet);
        }