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); }
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()); }