/// <summary> /// Метод получения проходов сотрудника /// </summary> /// <param name="startPeriod">Начало периода</param> /// <param name="endPeriod">окончание периода</param> /// <param name="emplCode">Код сотрудника</param> /// <param name="pEmployeePrimary"></param> /// <param name="sourceTable"></param> /// <param name="isByDay"></param> /// <param name="isEnterPrevDayByDay"></param> public EmployeeTimePeriodsInfo(DateTime startPeriod, DateTime endPeriod, int emplCode, bool pEmployeePrimary, EmployeePeriodsInfoDs.ПроходыСотрудниковDataTable sourceTable, bool isByDay = false, bool isEnterPrevDayByDay = false) { IsEnterPrevDayByDay = isEnterPrevDayByDay; _employeePrimary = pEmployeePrimary; _startTime = startPeriod; _endTime = endPeriod; ComlpeteEventsTableFromDataTable(startPeriod, endPeriod, emplCode, sourceTable, isByDay); if (isByDay) { CompletePeriodsByDay(); } else { CompletePeriods(); } }
private void ComlpeteEventsTableFromDataTable(DateTime startPeriod, DateTime endPeriod, int emplCode, EmployeePeriodsInfoDs.ПроходыСотрудниковDataTable sourceTable, bool isByDay = false) { var filterString = string.Format("Когда >= '{0}' AND Когда <= '{1}' AND КодСотрудника = {2}", startPeriod.Date.AddDays(-1).ToString("yyyy-MM-dd HH:mm:ss"), endPeriod.Date.AddDays(2).ToString("yyyy-MM-dd HH:mm:ss"), emplCode); //_sourceRows = sourceTable.Select(filterString, "Когда"); var source_rows = sourceTable.Select(filterString, "Когда"); _sourceEvents = new EnterEvent[source_rows.Length]; for (var i = 0; i < source_rows.Length; i++) { _sourceEvents[i].when = (DateTime)source_rows[i]["Когда"]; _sourceEvents[i].code = DBNull.Value == source_rows[i]["КодРасположения"] ? null : (int?)source_rows[i]["КодРасположения"]; _sourceEvents[i].place = _resolvePlaces ? source_rows[i]["Расположение"].ToString() : string.Empty; } if (isByDay) { filterString = string.Format("Когда >= '{0}' AND Когда <= '{1}' AND КодСотрудника = {2}", startPeriod.Date.AddDays(-1).ToString("yyyy-MM-dd HH:mm:ss"), endPeriod.Date.AddDays(2).ToString("yyyy-MM-dd HH:mm:ss"), emplCode); //_sourceRowsByDay = sourceTable.Select(filterString, "Когда"); source_rows = sourceTable.Select(filterString, "Когда"); _sourceEventsByDay = new EnterEvent[source_rows.Length]; for (var i = 0; i < source_rows.Length; i++) { _sourceEventsByDay[i].when = (DateTime)source_rows[i]["Когда"]; _sourceEventsByDay[i].code = DBNull.Value == source_rows[i]["КодРасположения"] ? null : (int?)source_rows[i]["КодРасположения"]; _sourceEventsByDay[i].place = _resolvePlaces ? source_rows[i]["Расположение"].ToString() : string.Empty; } } }