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 }); } } }
public DtoWorkShedule[] GetWorkShedules() { using (var db = new KadrDataContext()) { return(db.WorkShedules.Select(s => DtoClassConstructor.DtoWorkShedule(s)).ToArray()); } }
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); } } }
public DtoCategory[] GetCategoryes() { using (var db = new KadrDataContext()) { return(db.Category.Select(s => DtoClassConstructor.DtoCategory(s)).ToArray()); } }
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); } }
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 }); } } }
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 }); } } }
public DtoDayStatus[] GetDayStatusList() { using (var db = new KadrDataContext()) { return(db.DayStatus.Select(s => DtoClassConstructor.DtoDayStatus(s)).ToArray()); } }
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); } } }
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 }); } } }
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)); } }
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)); } }
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()); } }
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()); } }
//========================= Дни исключения ================================================================== /// <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()); } }
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()); } }
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()); } }
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()); } }
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()); }
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)); } }
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(); } }
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; }
//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()); }
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()); } }
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)); } }
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); }
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 }); }
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); } }
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()); } }
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); }