예제 #1
0
 public DtoDayStatus[] GetDayStatusList()
 {
     using (var db = new KadrDataContext())
     {
         return(db.DayStatus.Select(s => DtoClassConstructor.DtoDayStatus(s)).ToArray());
     }
 }
예제 #2
0
 public DtoCategory[] GetCategoryes()
 {
     using (var db = new KadrDataContext())
     {
         return(db.Category.Select(s => DtoClassConstructor.DtoCategory(s)).ToArray());
     }
 }
예제 #3
0
 public DtoWorkShedule[] GetWorkShedules()
 {
     using (var db = new KadrDataContext())
     {
         return(db.WorkShedules.Select(s => DtoClassConstructor.DtoWorkShedule(s)).ToArray());
     }
 }
예제 #4
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));
     }
 }
예제 #5
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());
     }
 }
예제 #6
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());
     }
 }
예제 #7
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());
     }
 }
예제 #8
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());
            }
        }
예제 #9
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());
     }
 }
예제 #10
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());
     }
 }
예제 #11
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());
     }
 }
예제 #12
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));
     }
 }
예제 #13
0
 public DtoApprover GetNextApproverForTimeSheet(int idTimeSheet)
 {
     using (var db = new KadrDataContext())
     {
         var timeSheet   = db.TimeSheet.FirstOrDefault(f => f.id == idTimeSheet);
         var approverNum = GetTimeSheetApproveStep(idTimeSheet);
         if (timeSheet == null || approverNum >= 3)
         {
             return(null);
         }
         var idDepatrment = timeSheet.idDepartment;
         var approver     =
             db.Approver.FirstOrDefault(
                 f =>
                 f.idDepartment == idDepatrment && f.ApproverType.ApproveNumber == approverNum + 1 &&
                 f.DateEnd == null);
         return(approver != null?DtoClassConstructor.DtoApprover(db, approver.Employee.id) : null);
     }
 }
예제 #14
0
 public TimeSheetsAndCount GetTimeSheetList(int idDepartment, TimeSheetFilter filter, int skip, int take)
 {
     using (var db = new KadrDataContext())
     //using (var dbloger = new DataContextLoger("GetTimeSheetList.txt", FileMode.OpenOrCreate, db))
     {
         var approveSteps = TimeSheetFilterAdapter(filter);
         var query        = db.TimeSheetView.Where(
             w => w.idDepartment == idDepartment && approveSteps.Contains(w.ApproveStep)
             );
         return(new TimeSheetsAndCount
         {
             Count = query.Count(),
             TimeSheets = query.OrderByDescending(o => o.DateBeginPeriod)
                          .ThenByDescending(t => t.DateComposition)
                          .Skip(skip)
                          .Take(take)
                          .Select(s => DtoClassConstructor.DtoTimeSheet(s)).ToArray()
         });
     }
 }
예제 #15
0
 public DtoFactStaffEmployee[] GetEmployeesForTimeSheet(int idDepartment, DtoApprover approver, DateTime dateStart, DateTime dateEnd)
 {
     using (var db = new KadrDataContext())
     {
         //var depsId = GetDepartmentsIdList(idDepartment);
         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;
         var ts = new TimeSheetManaget(idDepartment, dateStart, dateEnd, approver.EmployeeLogin, db);
         return
             (ts.GetAllEmployees()
              .Select(s => DtoClassConstructor.DtoFactStaffEmployee(db, s.idFactStaffHistory))
              .ToArray());
     }
 }
예제 #16
0
 public DtoTimeSheet CreateFakeTimeSheet(int idDepartment, DateTime dateStart, DtoApprover approver)
 {
     using (var db = new KadrDataContext())
     {
         if (db.TimeSheet.Any(a => a.idDepartment == idDepartment && a.DateBeginPeriod == dateStart))
         {
             throw new System.Exception("Табель на этот месяц уже сформирован.");
         }
         var dtoApproverDepartment = approver.DtoApproverDepartments.FirstOrDefault(w => w.IdDepartment == idDepartment);
         var ts = new TimeSheet
         {
             idDepartment    = idDepartment,
             DateComposition = DateTime.Now,
             DateBeginPeriod = dateStart,
             DateEndPeriod   = dateStart.AddMonths(1).AddDays(-1),
             ApproveStep     = 0,
             IsFake          = true,
             idCreater       = dtoApproverDepartment.IdApprover
         };
         db.TimeSheet.InsertOnSubmit(ts);
         db.SubmitChanges();
         return(DtoClassConstructor.DtoTimeSheet(db.TimeSheetView.Single(s => s.id == ts.id)));
     }
 }
예제 #17
0
 public DtoTimeSheet GetTimeSheet(int idTimeSheet, bool isEmpty = false)
 {
     using (var db = new KadrDataContext())
         using (var dbloger = new DataContextLoger("GetTimeSheetLog.sql", FileMode.OpenOrCreate, db))
         {
             var loadOptions = new DataLoadOptions();
             loadOptions.LoadWith((TimeSheet ts) => ts.TimeSheetRecords);
             loadOptions.LoadWith((TimeSheet ts) => ts.Dep);
             loadOptions.LoadWith((Dep d) => d.Department);
             loadOptions.LoadWith((TimeSheetRecord tsr) => tsr.FactStaffHistory);
             loadOptions.LoadWith((FactStaffWithHistory f) => f.FactStaff);
             loadOptions.LoadWith((FactStaff f) => f.Employee);
             loadOptions.LoadWith((FactStaffWithHistory f) => f.FactStaff.PlanStaff);
             loadOptions.LoadWith((PlanStaff p) => p.Post);
             loadOptions.LoadWith((Post p) => p.Category);
             db.LoadOptions = loadOptions;
             //return DtoClassConstructor.DtoTimeSheet(db, idTimeSheet, isEmpty);
             return(db.TimeSheetView.Where(f => f.id == idTimeSheet).Select(s => DtoClassConstructor.DtoTimeSheet(s, isEmpty)).FirstOrDefault());
         }
 }
예제 #18
0
        DtoApproverDepartment GetDtoApprover(string employeeLogin)
        {
            var idEmployee = _db.Employees.Where(w => w.EmployeeLogin.ToLower() == employeeLogin.ToLower()).Select(s => s.id).FirstOrDefault();

            return(DtoClassConstructor.DtoApprover(_db, idEmployee).DtoApproverDepartments.FirstOrDefault(w => w.IdDepartment == IdDepartment));
        }