コード例 #1
0
        public static JsTimeSheetViewModel TimeSheet(DtoTimeSheet timeSheet, DtoDayStatus[] dayStatusList)
        {
            var cult = System.Globalization.CultureInfo.GetCultureInfo("ru-Ru");
            var ts   = new JsTimeSheetViewModel
            {
                DayStatusList = dayStatusList,
                TimeSheet     = new JsTimeSheetModel
                {
                    Department           = timeSheet.Department.DepartmentFullName,
                    IdTimeSheet          = timeSheet.IdTimeSheet,
                    TimeSheetApproveStep = timeSheet.ApproveStep
                }
            };

            var employees = new List <JsEmployeeModel>();

            foreach (var empl in timeSheet.Employees)
            {
                var records    = new List <JsTimeSheetRecordModel>();
                var recordsArr = empl.Records.OrderBy(o => o.Date).ToArray();
                for (int i = 0; i < recordsArr.Length; i++)
                {
                    var rec = recordsArr[i];
                    records.Add(new JsTimeSheetRecordModel
                    {
                        IdTimeSheetRecord = rec.IdTimeSheetRecord,
                        DayAweek          = rec.Date.ToString("dddd", cult),
                        IdDayStatus       = rec.DayStays.IdDayStatus,
                        JobTimeCount      = rec.JobTimeCount,
                        NightTimeCount    = (rec.NightTimeCount != "") ? Convert.ToDouble(rec.NightTimeCount) : 0,
                        Date  = rec.Date.ToString("dd MMMM"),
                        Order = i
                    });
                }
                employees.Add(new JsEmployeeModel
                {
                    Surname     = empl.FactStaffEmployee.Surname,
                    Name        = empl.FactStaffEmployee.Name,
                    Patronymic  = empl.FactStaffEmployee.Patronymic,
                    Post        = empl.FactStaffEmployee.Post,
                    WorkShedule = empl.FactStaffEmployee.WorkShedule,
                    StaffRate   = empl.FactStaffEmployee.StaffRate,
                    //FinSrc = empl.FactStaffEmployee.FinSrc,
                    Records = records.ToArray()
                });
            }
            ts.TimeSheet.Employees = employees.ToArray();
            return(ts);
        }
コード例 #2
0
ファイル: TimeSheetToDbf.cs プロジェクト: UGTU/TimeSheet
        public byte[] GenerateDbf(DtoTimeSheet timeSheet)
        {
            var fields = new List <DBFField>
            {
                new DBFField("IdTs", NativeDbType.Numeric, 50, 0),          //Идентификатор табеля
                new DBFField("TsDateSt", NativeDbType.Date),                //Табель с
                new DBFField("TsDateEnd", NativeDbType.Date),               //Табель по
                new DBFField("TsDateComp", NativeDbType.Date),              //Дата составления табеля
                new DBFField("IdDep", NativeDbType.Numeric, 50, 0),         //Идентификатор структурного подразделения
                new DBFField("DepSName", NativeDbType.Char, 350, 0),        //Короткое название структ. подразделения
                new DBFField("DepFName", NativeDbType.Char, 350, 0),        //Полное название структ подразделение
                new DBFField("ETabNum", NativeDbType.Char, 350, 0),         //Табельный номер сотрудника
                new DBFField("IdEmployee", NativeDbType.Numeric, 50, 0),    //Идентификатор сотрудника
                new DBFField("IdFactStaf", NativeDbType.Numeric, 50, 0),    //Идентификатор фактической ставки сотр.
                new DBFField("EFirstname", NativeDbType.Char, 50, 0),       //Фамилия
                new DBFField("ELastName", NativeDbType.Char, 50, 0),        //Имя
                new DBFField("EPatronymi", NativeDbType.Char, 50, 0),       //Отчество
                new DBFField("IdPost", NativeDbType.Numeric, 50, 0),        //Идентификатор должности
                new DBFField("EPostname", NativeDbType.Char, 50, 0),        //Название должности
                new DBFField("EStufRate", NativeDbType.Float, 50, 0),       //Ставка
                new DBFField("IdShedule", NativeDbType.Numeric, 50, 0),     //Идентификатор графика работы
                new DBFField("SheduleNam", NativeDbType.Char, 50, 0),       //Название графика работы
                new DBFField("RecDate", NativeDbType.Date),                 //Дата
                new DBFField("IdDayStat", NativeDbType.Numeric, 50, 0),     //Идентификатор статуса дня
                new DBFField("RecStatus", NativeDbType.Char, 50, 0),        //Статус дня
                new DBFField("IdRec", NativeDbType.Char, 50, 0),            //Идентификатор записи табеля
                new DBFField("RecHours", NativeDbType.Float, 50, 0),        //Отработано часов
            };

            var writer = new DBFWriter {
                Fields = fields.ToArray(), CharEncoding = Encoding.Default
            };
            var addRecList1 = new List <object>
            {
                timeSheet.IdTimeSheet,
                timeSheet.DateBegin,
                timeSheet.DateEnd,
                timeSheet.DateComposition,
                timeSheet.Department.IdDepartment,
                timeSheet.Department.DepartmentSmallName,
                timeSheet.Department.DepartmentFullName
            };
            var addRecList2 = new List <object>();
            var addRecList3 = new List <object>();

            foreach (var empl in timeSheet.Employees)
            {
                addRecList2.Clear();
                addRecList2.AddRange(addRecList1.ToArray());
                addRecList2.Add(empl.FactStaffEmployee.ItabN);
                addRecList2.Add(empl.FactStaffEmployee.IdEmployee);
                addRecList2.Add(empl.FactStaffEmployee.IdFactStaff);
                addRecList2.Add(empl.FactStaffEmployee.Surname);
                addRecList2.Add(empl.FactStaffEmployee.Name);
                addRecList2.Add(empl.FactStaffEmployee.Patronymic);
                addRecList2.Add(empl.FactStaffEmployee.Post.IdPost);
                addRecList2.Add(empl.FactStaffEmployee.Post.PostFullName);
                addRecList2.Add(empl.FactStaffEmployee.StaffRate);
                addRecList2.Add(empl.FactStaffEmployee.WorkShedule.IdWorkShedule);
                addRecList2.Add(empl.FactStaffEmployee.WorkShedule.WorkSheduleName);
                foreach (var rec in empl.Records)
                {
                    addRecList3.Clear();
                    addRecList3.AddRange(addRecList2.ToArray());
                    addRecList3.Add(rec.Date);
                    addRecList3.Add(rec.DayStays.IdDayStatus);
                    addRecList3.Add(rec.DayStays.SmallDayStatusName);
                    addRecList3.Add(rec.IdTimeSheetRecord.ToString());
                    addRecList3.Add(rec.JobTimeCount);
                    writer.AddRecord(addRecList3.ToArray());
                }
            }
            var fos = new MemoryStream();

            {
                writer.Write(fos);
            }
            return(fos.ToArray());
        }