Example #1
0
        /// <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();
            }
        }
Example #2
0
        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;
                }
            }
        }