/// <summary> /// Изменить объект. /// </summary> /// <param name="entity">Объект.</param> public void Update(Core.BusinessTrip.Domain.BusinessTrip entity) { BusinessTripContext businessTripContext = new BusinessTripContext(); businessTripContext.Entry <Core.BusinessTrip.Domain.BusinessTrip>(entity).State = EntityState.Modified; businessTripContext.SaveChanges(); }
/// <summary> /// Изменить объект. /// </summary> /// <param name="entity">Объект.</param> public void Update(Core.BusinessTrip.Domain.BusinessTrip entity) { using (BusinessTripContext businessTripContext = new BusinessTripContext(ConnectionString)) { businessTripContext.Configuration.AutoDetectChangesEnabled = false; businessTripContext.Configuration.ValidateOnSaveEnabled = false; var com = entity.Command; com.BusinessTripId = entity.BusinessTripId; businessTripContext.Entry <Command>(com).State = EntityState.Modified; entity.Command = null; var requestTransport = entity.RequestTransport; requestTransport.BusinessTripId = entity.BusinessTripId; businessTripContext.Entry <RequestTransport>(requestTransport).State = EntityState.Modified; entity.RequestTransport = null; businessTripContext.Entry <Core.BusinessTrip.Domain.BusinessTrip>(entity).State = EntityState.Modified; businessTripContext.Database.Log = (s => System.Diagnostics.Debug.WriteLine(s)); businessTripContext.SaveChanges(); businessTripContext.Configuration.AutoDetectChangesEnabled = true; businessTripContext.Configuration.ValidateOnSaveEnabled = true; } }
/// <summary> /// Сохранить объект. /// </summary> /// <param name="entity">Объект.</param> public void Save(Core.BusinessTrip.Domain.BusinessTrip entity) { BusinessTripContext businessTripContext = new BusinessTripContext(); businessTripContext.Entry(entity).State = EntityState.Added; businessTripContext.SaveChanges(); }
public static bool GetDataTemplete(Core.BusinessTrip.Domain.BusinessTrip businessTrip) { Object templatePathObj = System.IO.Path.GetFullPath(string.Format(@"\\fs21402\Templates\WindowsPrograms\IT-Distr\028_BusinessTrip\Content\Excel\{0}\{1}", "TemplateTask", businessTrip.TypeWork != null ? businessTrip.TypeWork.TemplateTask : "Служебное задание.xltx"));//"путь к файлу шаблона"; try { if (File.Exists(templatePathObj.ToString())) { _application = new Excel.Application(); _workBook = _application.Workbooks.Add(templatePathObj); _workSheet = (Excel.Worksheet)_workBook.Worksheets.get_Item(1); Visible = false; return(true); } else { _logger.Error(string.Format("{0} | {1} | {2}", DirectoryName, "Отсутствует шаблон служебного задания.")); MessageBox.Show("Отсутствует шаблон служебного задания.", DirectoryName, MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } } catch (Exception ex) { _logger.Error(string.Format("{0} | {1} | {2}", DirectoryName, ex.Message, ex.InnerException != null ? (ex.InnerException.InnerException != null ? ex.InnerException.InnerException.Message : "") : "")); MessageBox.Show("Ошибка при экспорте служебного задания.", DirectoryName, MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } }
/// <summary> /// Сохранение командировки. /// </summary> /// <param name="businessTrip">Командировка.</param> public int?SaveBusinessTrip(Core.BusinessTrip.Domain.BusinessTrip businessTrip) { try { var time = DateTime.Now.TimeOfDay; var businessTripSave = Repository.SaveBusinessTrip(businessTrip); var timeNew = DateTime.Now.TimeOfDay; var implementationTime = timeNew - time; _logger.Info(string.Format("{0} | Добавление записи ({1} с.).", DirectoryName, implementationTime.TotalSeconds)); return(businessTripSave.BusinessTripId); } catch (OutOfMemoryException) { MessageBox.Show("Недостаточный объем памяти.", DirectoryName, MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } catch (DbUpdateException ex) { _logger.Warn(string.Format("{0} | {1} | {2}", DirectoryName, ex.Message, ex.InnerException != null ? (ex.InnerException.InnerException != null ? ex.InnerException.InnerException.Message : "") : "")); MessageBox.Show("Сохранение невозможно. Отсутствуют права доступа.", DirectoryName, MessageBoxButtons.OK, MessageBoxIcon.Warning); return(null); } catch (Exception ex) { _logger.Error(string.Format("{0} | {1} | {2}", DirectoryName, ex.Message, ex.InnerException != null ? (ex.InnerException.InnerException != null ? ex.InnerException.InnerException.Message : "") : "")); MessageBox.Show("Ошибка при сохранении командировки.", DirectoryName, MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } }
/// <summary> /// Обновление командировки. /// </summary> /// <param name="businessTrip">Командировка.</param> public void Update(Core.BusinessTrip.Domain.BusinessTrip businessTrip) { try { var time = DateTime.Now.TimeOfDay; Repository.Update(businessTrip); var timeNew = DateTime.Now.TimeOfDay; var implementationTime = timeNew - time; _logger.Info(string.Format("{0} | Обновление записи: {1} ({2} с.).", DirectoryName, businessTrip.BusinessTripId, implementationTime.TotalSeconds)); } catch (OutOfMemoryException) { MessageBox.Show("Недостаточный объем памяти.", DirectoryName, MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (DbUpdateException ex) { _logger.Warn(string.Format("{0} | {1} | {2}", DirectoryName, ex.Message, ex.InnerException != null ? (ex.InnerException.InnerException != null ? ex.InnerException.InnerException.Message : "") : "")); MessageBox.Show("Обновление невозможно. Командировка удалена другим пользователем или отсутствуют права доступа.", DirectoryName, MessageBoxButtons.OK, MessageBoxIcon.Warning); } catch (Exception ex) { _logger.Error(string.Format("{0} | {1} | {2}", DirectoryName, ex.Message, ex.InnerException != null ? (ex.InnerException.InnerException != null ? ex.InnerException.InnerException.Message : "") : "")); MessageBox.Show("Ошибка при обновлении командировки.", DirectoryName, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Сохранение командировки. /// </summary> /// <param name="businessTrip">Командировка.</param> /// <returns>Ид новой командировки.</returns> public int SaveBusinessTrip(Core.BusinessTrip.Domain.BusinessTrip businessTrip) { using (var businessTripContex = new BusinessTripContext()) { businessTripContex.BusinessTrips.Add(businessTrip); businessTripContex.SaveChanges(); return(businessTrip.BusinessTripId); } }
/// <summary> /// Сохранение командировки. /// </summary> /// <param name="businessTrip">Командировка.</param> public Core.BusinessTrip.Domain.BusinessTrip SaveBusinessTrip(Core.BusinessTrip.Domain.BusinessTrip businessTrip) { using (var businessTripContext = new BusinessTripContext(ConnectionString)) { businessTripContext.BusinessTrips.Add(businessTrip); businessTripContext.Database.Log = (s => System.Diagnostics.Debug.WriteLine(s)); businessTripContext.SaveChanges(); return(businessTrip); } }
/// <summary> /// Сохранить объект. /// </summary> /// <param name="entity">Объект.</param> public Core.BusinessTrip.Domain.BusinessTrip Save(Core.BusinessTrip.Domain.BusinessTrip entity) { BusinessTripContext businessTripContext = new BusinessTripContext(ConnectionString); businessTripContext.Configuration.AutoDetectChangesEnabled = false; businessTripContext.Configuration.ValidateOnSaveEnabled = false; businessTripContext.Entry(entity).State = EntityState.Added; businessTripContext.Database.Log = (s => System.Diagnostics.Debug.WriteLine(s)); businessTripContext.SaveChanges(); businessTripContext.Configuration.AutoDetectChangesEnabled = true; businessTripContext.Configuration.ValidateOnSaveEnabled = true; return(entity); }
public Command(BusinessTrip businessTripOf, Person responsibleForEquipment, Person responsibleForData, Person responsibleForCommunication, Person responsibleForTechnicalSecurity, Person responsibleForFireSecurity, Person responsibleForIndustrialSecurity, Person responsibleForRigInspection, /*DateTime? dateBegin, DateTime? dateEnd,*/ Person responsibleForDealer, DateTime?dateDelivery, Person responsibleForReceiving, Person responsibleForMonitoring, Person responsibleForInformation) { BusinessTripOf = businessTripOf; ResponsibleForEquipment = responsibleForEquipment; ResponsibleForData = responsibleForData; ResponsibleForCommunication = responsibleForCommunication; ResponsibleForTechnicalSecurity = responsibleForTechnicalSecurity; ResponsibleForFireSecurity = responsibleForFireSecurity; ResponsibleForIndustrialSecurity = responsibleForIndustrialSecurity; ResponsibleForRigInspection = responsibleForRigInspection; //DateBegin = dateBegin; //DateEnd = dateEnd; ResponsibleForDealer = responsibleForDealer; DateDelivery = dateDelivery; ResponsibleForReceiving = responsibleForReceiving; ResponsibleForMonitoring = responsibleForMonitoring; ResponsibleForInformation = responsibleForInformation; }
private void Update_Handler(Core.BusinessTrip.Domain.BusinessTrip businessTrip) { _model.Update(businessTrip); }
private void Save_Handler(Core.BusinessTrip.Domain.BusinessTrip businessTrip) { _view.SaveIndex = _model.Save(businessTrip); }
public static void ExportToExcel(Core.BusinessTrip.Domain.BusinessTrip businessTrip, Dictionary <string, string> targets) { if (!GetDataTemplete(businessTrip)) //test vs { return; } try { SetCellValue(businessTrip.HeadStructuralDivision != null ? Regex.Replace(string.Format("{0} {1} {2}", HelperReports.TransformationBeginStr(businessTrip.HeadStructuralDivision.Position.Nominative, false), !HelperReports.IsPositionHead(businessTrip.HeadStructuralDivision.Position.Nominative) && businessTrip.HeadStructuralDivision.Department != null ? HelperReports.GetCategoryGenitiveByDepartmentCategory(businessTrip.HeadStructuralDivision.Department.Category) : "", businessTrip.HeadStructuralDivision.Department != null ? HelperReports.TransformationBeginStr(businessTrip.HeadStructuralDivision.Department.Nominative) : ""), "[ ]+", " ").TrimEnd(' ') : "<не задан руководитель структурного подразделения>", "HeadStructuralDivisionPositionOne"); SetCellValue(businessTrip.HeadStructuralDivision != null ? Regex.Replace(string.Format("{0} {1} {2}", HelperReports.TransformationBeginStr(businessTrip.HeadStructuralDivision.Position.Nominative, false), !HelperReports.IsPositionHead(businessTrip.HeadStructuralDivision.Position.Nominative) && businessTrip.HeadStructuralDivision.Department != null ? HelperReports.GetCategoryGenitiveByDepartmentCategory(businessTrip.HeadStructuralDivision.Department.Category) : "", businessTrip.HeadStructuralDivision.Department != null ? HelperReports.TransformationBeginStr(businessTrip.HeadStructuralDivision.Department.Nominative) : ""), "[ ]+", " ").TrimEnd(' ') : "<не задан руководитель структурного подразделения>", "HeadStructuralDivisionPositionTwo"); SetCellValue(businessTrip.HeadStructuralDivision != null ? HelperReports.GetNameShort(businessTrip.HeadStructuralDivision.Name) : "<не задан руководитель структурного подразделения>", "HeadStructuralDivisionNameOne"); SetCellValue(businessTrip.HeadStructuralDivision != null ? HelperReports.GetNameShort(businessTrip.HeadStructuralDivision.Name) : "<не задан руководитель структурного подразделения>", "HeadStructuralDivisionNameTwo"); if (businessTrip.HeadStructuralDivision == null) { SetCellYellowColor("HeadStructuralDivisionNameOne"); SetCellYellowColor("HeadStructuralDivisionNameTwo"); SetCellYellowColor("HeadStructuralDivisionPositionOne"); SetCellYellowColor("HeadStructuralDivisionPositionTwo"); } //SetCellValue(businessTrip.HeadOrganization != null ? HelperReports.TransformationBeginStr(businessTrip.HeadOrganization.Position.Nominative, false) : // "<не задан руководитель организации>", "HeadOrganizationPosition"); SetCellValue(businessTrip.HeadOrganization != null ? Regex.Replace(string.Format("{0} {1}", HelperReports.TransformationBeginStr(businessTrip.HeadOrganization.Position.Nominative, false), HelperReports.IsPositionHead(businessTrip.HeadOrganization.Position.Nominative) && businessTrip.HeadOrganization.Department != null ? HelperReports.TransformationBeginStr(businessTrip.HeadOrganization.Department.Nominative) : ""), "[ ]+", " ").TrimEnd(' ') : "<не задан руководитель организации>", "HeadOrganizationPosition"); SetCellValue(businessTrip.HeadOrganization != null ? HelperReports.GetNameShort(businessTrip.HeadOrganization.Name) : "<не задан руководитель организации>", "HeadOrganizationName"); if (businessTrip.HeadOrganization == null) { SetCellYellowColor("HeadOrganizationPosition"); SetCellYellowColor("HeadOrganizationName"); } SetCellValue(businessTrip.NumberDocument, "NumberDocument"); SetCellValue(businessTrip.DateFormulationToString, "DateFormulation"); SetCellValue(string.Format("Выполнение {0} на об.:", businessTrip.TypeWork != null ? HelperReports.TransformationBeginStr(businessTrip.TypeWork.Name) : "<не задан вид работ>"), "TypeWork"); if (businessTrip.TypeWork == null) { SetCellYellowColor("TypeWork"); } PartyPersonComparer partyPersonComparer = new PartyPersonComparer(); var persons = businessTrip.Party != null ? (businessTrip.Party.PartyPersons != null ? businessTrip.Party.PartyPersons.ToList() : new List <PartyPerson>()) : new List <PartyPerson>(); persons.Sort(partyPersonComparer); DirectionComparer directionComparer = new DirectionComparer(); var directions = businessTrip.Directions != null ? businessTrip.Directions : new List <Direction>(); directions.Sort(directionComparer); //if (persons.Count > 0) //{ var responsiblePerson = persons.FirstOrDefault(p => p.IsResponsible); SetCellValue(responsiblePerson != null ? HelperReports.TransformationBeginStr(responsiblePerson.Position, false) : "<не задан ответственный за командировку>", "PersonPosition"); SetCellValue(responsiblePerson != null ? HelperReports.GetNameShort(responsiblePerson.Name) : "<не задан ответственный за командировку>", "PersonName"); SetCellValue(responsiblePerson != null ? (responsiblePerson.Person.Department != null ? Regex.Replace(string.Format("{0} {1} {2}", HelperReports.TransformationBeginStr(responsiblePerson.Person.Department.Category, false), HelperReports.TransformationBeginStr(responsiblePerson.Person.Department.Nominative), !string.IsNullOrWhiteSpace(responsiblePerson.Person.Department.Number) ? string.Format("({0} № {1})", HelperReports.TransformationBeginStr(responsiblePerson.Person.Department.Category), responsiblePerson.Person.Department.Number) : ""), "[ ]+", " ").TrimEnd(' ') : "<не задан отдел для ответственного за командировку>") : "<не задан ответственный за командировку>", "Department"); if (responsiblePerson == null) { SetCellYellowColor("PersonPosition"); SetCellYellowColor("PersonName"); SetCellYellowColor("Department"); } else { if (responsiblePerson.Person.Department == null) { SetCellYellowColor("Department"); } } //} var saveRowCount = 0; if (persons.Count > 0) { var countRowInsert = directions.Count != 0 ? persons.Count * directions.Count - 1 : persons.Count - 1; while (countRowInsert != 0) { InsertRow(16); MergeCell(16, 2, 16, 8); SetBorders(16, 2, 16, 8); MergeCell(16, 26, 16, 49); SetBorders(16, 26, 16, 49); MergeCell(16, 50, 16, 63); SetBorders(16, 50, 16, 63); MergeCell(16, 88, 16, 106); SetBorders(16, 88, 16, 106); MergeCell(16, 107, 16, 124); SetBorders(16, 107, 16, 124); MergeCell(16, 126, 16, 136); SetBorders(16, 126, 16, 136); MergeCell(16, 137, 16, 144); SetBorders(16, 137, 16, 144); MergeCell(16, 149, 16, 162); SetBorders(16, 149, 16, 162); countRowInsert--; } var rowCount = directions.Count != 0 ? persons.Count * directions.Count : persons.Count; saveRowCount = rowCount; var numPerson = 0; if (directions.Count > 0) { for (int i = 0; i < rowCount; i = i + directions.Count) { if (numPerson < persons.Count) { SetCellValue((numPerson + 1).ToString(), i + 15, 2); SetCellValue(persons[numPerson].PersonnelNumber, i + 15, 25); SetCellValue(HelperReports.GetNameShort(persons[numPerson].Name), i + 15, 26); SetCellValue(HelperReports.TransformationBeginStr(persons[numPerson].Position, false), i + 15, 50); numPerson++; } if (directions.Count > 0) { MergeCell(i + 15, 2, i + 15 + directions.Count - 1, 2); SetBorders(i + 15, 2, i + 15 + directions.Count - 1, 2); MergeCell(i + 15, 25, i + 15 + directions.Count - 1, 25); SetBorders(i + 15, 25, i + 15 + directions.Count - 1, 25); MergeCell(i + 15, 26, i + 15 + directions.Count - 1, 26); SetBorders(i + 15, 26, i + 15 + directions.Count - 1, 26); MergeCell(i + 15, 50, i + 15 + directions.Count - 1, 50); SetBorders(i + 15, 50, i + 15 + directions.Count - 1, 50); var numDirections = 0; for (int j = i; j < directions.Count + i; j++) { if (numDirections < directions.Count) { SetCellValue(directions[numDirections].Location != null ? directions[numDirections].Location.ShortAddress : "", i + numDirections + 15, 88); SetCellValue(directions[numDirections].Organization != null ? directions[numDirections].Organization.ShortName : "", i + numDirections + 15, 107); SetCellValue(directions[numDirections].DateBeginAsString, i + numDirections + 15, 126); SetCellValue(directions[numDirections].DateEndAsString, i + numDirections + 15, 137); if (directions[numDirections].DateBegin != null && directions[numDirections].DateEnd != null) { var countEqualDirections = directions.Count(d => d.DateBeginAsString == directions[numDirections].DateBeginAsString && d.DateEndAsString == directions[numDirections].DateEndAsString); if (countEqualDirections > 1) { SetCellValue(Math.Round((double)1 / countEqualDirections, 2).ToString(), i + numDirections + 15, 148); } else { SetCellValue(Math.Round((directions[numDirections].DateEnd.Value - directions[numDirections].DateBegin.Value).TotalDays + 1).ToString(), i + numDirections + 15, 148); } } SetCellValue(string.Format("Об. {0}", directions[numDirections].Reason), i + numDirections + 15, 149); numDirections++; } } } } } else { for (int i = 0; i < persons.Count; i = i + 1) { if (numPerson < persons.Count) { SetCellValue((numPerson + 1).ToString(), i + 15, 2); SetCellValue(persons[i].PersonnelNumber, i + 15, 25); SetCellValue(HelperReports.GetNameShort(persons[i].Name), i + 15, 26); SetCellValue(HelperReports.TransformationBeginStr(persons[i].Position, false), i + 15, 50); numPerson++; } } } } if (targets != null) { if (targets.Count != 0) { if (targets.Count > 3) { var rowCount = targets.Count; while (rowCount != 0) { InsertRow(saveRowCount - 1 + 19); MergeCell(saveRowCount - 1 + 19, 2, saveRowCount - 1 + 19, 124); SetBorders(saveRowCount - 1 + 19, 2, saveRowCount - 1 + 19, 124); MergeCell(saveRowCount - 1 + 19, 126, saveRowCount - 1 + 19, 162); SetBorders(saveRowCount - 1 + 19, 126, saveRowCount - 1 + 19, 162); rowCount--; } } for (int i = 0; i < directions.Count; i++) { if (targets.Keys.Any(d => d == directions[i].Reason)) { SetCellValue(targets[directions[i].Reason], i + saveRowCount - 1 + 18, 2); } //_workSheet.Range[_workSheet.Cells[i + saveRowCount - 1 + 18, 2], _workSheet.Cells[i + saveRowCount - 1 + 18, 124]].NamedRange.AutoFit(); //_workSheet.Cells[i + saveRowCount - 1 + 18, 2].NamedRange.AutoFit(); //_workSheet.Cells[i + saveRowCount - 1 + 18, 2].EntireRow.AutoFit(); //double CellHeight = _workSheet.Cells[i + saveRowCount - 1 + 18, 2].RowHeight;//узнать высоту ////objSheet.get_Range(SecondCell, SecondCell).Value2 = ""; //очистить ячейку //_workSheet.Cells[i + saveRowCount - 1 + 18, 2].RowHeight = CellHeight; ////SetAutoFit(i + saveRowCount - 1 + 18, 2, i + saveRowCount - 1 + 18, 124); } } } Visible = true; } catch (Exception ex) { _logger.Error(string.Format("{0} | {1} | {2}", DirectoryName, ex.Message, ex.InnerException != null ? (ex.InnerException.InnerException != null ? ex.InnerException.InnerException.Message : "") : "")); MessageBox.Show("Ошибка при экспорте служебного задания.", DirectoryName, MessageBoxButtons.OK, MessageBoxIcon.Error); Close(); } }
public static void ExportToExcel(Core.BusinessTrip.Domain.BusinessTrip businessTrip) { if (!GetDataTemplete(businessTrip)) { return; } try { SetCellValue(businessTrip.HeadStructuralDivision != null ? Regex.Replace(string.Format("от {0} {1} {2}", HelperReports.TransformationBeginStr(businessTrip.HeadStructuralDivision.Position.Genitive), !HelperReports.IsPositionHead(businessTrip.HeadStructuralDivision.Position.Nominative) && businessTrip.HeadStructuralDivision.Department != null ? HelperReports.GetCategoryGenitiveByDepartmentCategory(businessTrip.HeadStructuralDivision.Department.Category) : "", string.Format("№ {0}", !string.IsNullOrWhiteSpace(businessTrip.HeadStructuralDivision.Department.Number) ? businessTrip.HeadStructuralDivision.Department.Number : "<не задан номер отдела>")), "[ ]+", " ").TrimEnd(' ') : "<не задан руководитель структурного подразделения>", "HeadStructuralDivisionPosition"); SetCellValue(businessTrip.HeadStructuralDivision != null ? HelperReports.GetNameGenitiveByName(businessTrip.HeadStructuralDivision.Name) : "<не задан руководитель структурного подразделения>", "HeadStructuralDivisionNameOne"); SetCellValue(businessTrip.HeadStructuralDivision != null ? HelperReports.GetNameShort(businessTrip.HeadStructuralDivision.Name) : "<не задан руководитель структурного подразделения>", "HeadStructuralDivisionName"); if (businessTrip.HeadStructuralDivision == null) { SetCellYellowColor("HeadStructuralDivisionPosition"); SetCellYellowColor("HeadStructuralDivisionNameOne"); SetCellYellowColor("HeadStructuralDivisionName"); } else { if (businessTrip.HeadStructuralDivision.Department != null) { if (string.IsNullOrWhiteSpace(businessTrip.HeadStructuralDivision.Department.Number)) { SetCellYellowColor("HeadStructuralDivisionPosition"); } } } SetCellValue(businessTrip.RequestTransport.DateFormulation != null ? businessTrip.RequestTransport.DateFormulation.Value.ToShortDateString() : "<не задана дата формирования заявки на транспорт>", "DateFormulation"); if (businessTrip.RequestTransport.Date == null) { SetCellYellowColor("DateFormulation"); } SetCellValue(businessTrip.HeadOrganization != null ? Regex.Replace(string.Format("{0} {1}", HelperReports.TransformationBeginStr(businessTrip.HeadOrganization.Position.Nominative, false), HelperReports.IsPositionHead(businessTrip.HeadOrganization.Position.Nominative) && businessTrip.HeadOrganization.Department != null ? HelperReports.TransformationBeginStr(businessTrip.HeadOrganization.Department.Nominative) : ""), "[ ]+", " ").TrimEnd(' ') : "<не задан руководитель организации>", "HeadOrganizationPosition"); SetCellValue(businessTrip.HeadOrganization != null ? HelperReports.GetNameShort(businessTrip.HeadOrganization.Name) : "<не задан руководитель организации>", "HeadOrganizationName"); if (businessTrip.HeadOrganization == null) { SetCellYellowColor("HeadOrganizationPosition"); SetCellYellowColor("HeadOrganizationName"); } SetCellValue(businessTrip.RequestTransport.ProjectManager != null ? HelperReports.TransformationBeginStr(businessTrip.RequestTransport.ProjectManager.Position.Nominative, false) : "<не задан сотрудник отдела управления проектами>", "ProjectManagerPosition"); SetCellValue(businessTrip.RequestTransport.ProjectManager != null ? HelperReports.GetNameShort(businessTrip.RequestTransport.ProjectManager.Name) : "<не задан сотрудник отдела управления проектами>", "ProjectManagerName"); if (businessTrip.RequestTransport.ProjectManager == null) { SetCellYellowColor("ProjectManagerPosition"); SetCellYellowColor("ProjectManagerName"); } SetCellValue(businessTrip.RequestTransport.Date != null ? businessTrip.RequestTransport.Date.Value.ToShortDateString() : "<не задана дата выдачи транспорта>", "Date"); if (businessTrip.RequestTransport.Date == null) { SetCellYellowColor("Date"); } SetCellValue(businessTrip.RequestTransport.TimeHour != null ? businessTrip.RequestTransport.TimeHour.ToString() : "<не задано время>", "TimeHour"); if (businessTrip.RequestTransport.TimeHour == null) { SetCellYellowColor("TimeHour"); } SetCellValue(businessTrip.RequestTransport.Address != null ? businessTrip.RequestTransport.Address.ShortAddress : "<не задан адрес>", "Address"); if (businessTrip.RequestTransport.Address == null) { SetCellYellowColor("Address"); } PartyPersonComparer partyPersonComparer = new PartyPersonComparer(); var persons = businessTrip.Party != null ? (businessTrip.Party.PartyPersons != null ? businessTrip.Party.PartyPersons.ToList() : new List <PartyPerson>()) : new List <PartyPerson>(); persons.Sort(partyPersonComparer); DirectionComparer directionComparer = new DirectionComparer(); var directions = businessTrip.Directions != null ? businessTrip.Directions : new List <Direction>(); directions.Sort(directionComparer); var responsiblePerson = persons.FirstOrDefault(p => p.IsResponsible); SetCellValue(responsiblePerson != null ? HelperReports.GetNameShort(responsiblePerson.Name) : "<не задан ответственный за командировку>", "ContactName"); SetCellValue(responsiblePerson != null ? (!string.IsNullOrWhiteSpace(responsiblePerson.Person.PhoneNumber) ? responsiblePerson.Person.PhoneNumber : "<не задан телефон ответственного за командировку>") : "<не задан ответственный за командировку>", "ContactPhone"); if (responsiblePerson == null) { SetCellYellowColor("ContactName"); SetCellYellowColor("ContactPhone"); } else { if (string.IsNullOrWhiteSpace(responsiblePerson.Person.PhoneNumber)) { SetCellYellowColor("ContactPhone"); } } if (directions.Count > 0) { var countRowInsert = directions.Count != 0 ? directions.Count - 1 : 0; while (countRowInsert != 0) { InsertRow(19); countRowInsert--; } MergeCell(18, 1, 18 + directions.Count - 1, 1); MergeCell(18, 6, 18 + directions.Count - 1, 6); MergeCell(18, 7, 18 + directions.Count - 1, 7); MergeCell(18, 8, 18 + directions.Count - 1, 8); MergeCell(18, 9, 18 + directions.Count - 1, 9); MergeCell(18, 10, 18 + directions.Count - 1, 10); SetBorders(18, 1, 18 + directions.Count - 1, 11); SetCellValue(businessTrip.RequestTransport.Transport != null ? HelperReports.TransformationBeginStr(businessTrip.RequestTransport.Transport.Mark, false) : "", 18, 1); SetCellValue(string.Format("Обеспечение {0} работ", businessTrip.TypeWork != null ? HelperReports.TransformationBeginStr(businessTrip.TypeWork.Name) : ""), 18, 6); SetCellValue(businessTrip.RequestTransport.Mileage != null ? businessTrip.RequestTransport.Mileage.Value.ToString() : "", 18, 7); SetCellValue(businessTrip.RequestTransport.TimeWork != null ? businessTrip.RequestTransport.TimeWork.Value.ToString() : "", 18, 8); SetCellValue(persons.Count.ToString(), 18, 9); SetCellValue(persons.Count != 0 ? HelperReports.GetNameShort(persons.FirstOrDefault().Name) : "", 18, 10); for (int i = 0; i < directions.Count; i++) { SetCellValue(directions[i].DateBeginAsString, i + 18, 2); SetCellValue(directions[i].DateEndAsString, i + 18, 3); SetCellValue(directions[i].Location != null ? directions[i].Location.ShortAddress : "", i + 18, 4); SetCellValue(directions[i].Organization != null ? directions[i].Organization.ShortName : "", i + 18, 5); SetCellValue(string.Format("Об. {0}", directions[i].Reason), i + 18, 11); } } Visible = true; } catch (Exception ex) { _logger.Error(string.Format("{0} | {1} | {2}", DirectoryName, ex.Message, ex.InnerException != null ? (ex.InnerException.InnerException != null ? ex.InnerException.InnerException.Message : "") : "")); MessageBox.Show("Ошибка при экспорте служебного задания.", DirectoryName, MessageBoxButtons.OK, MessageBoxIcon.Error); Close(); } }