protected override void OnAfterSaveEntity(TechnicalRequrementsTask task) { if (TaskIsActual(task)) { var selectedLookup = this.SelectedLookup; base.OnAfterSaveEntity(task); this.SelectedLookup = selectedLookup; } }
public bool OnSaveTechnicalRequarementsTaskServiceCallback(Guid technicalRequarementsTaskId) { TechnicalRequrementsTask technicalRequrementsTask = _container.Resolve <IUnitOfWork>().Repository <TechnicalRequrementsTask>().GetById(technicalRequarementsTaskId); if (this.SyncContainer.PublishWithinAppForCurrentUser <TechnicalRequrementsTask, AfterSaveTechnicalRequrementsTaskEvent>(technicalRequrementsTask)) { return(true); } return(false); }
private string GetTceNumber(TechnicalRequrementsTask requrementsTask) { try { return(requrementsTask.PriceCalculations .SelectMany(calculation => calculation.PriceCalculationItems.SelectMany(item => item.StructureCosts)) .Select(structureCost => structureCost.Number) .Where(x => string.IsNullOrEmpty(x) == false) .Select(x => x.Split(' ').First()) .Distinct() .OrderBy(x => x) .ToStringEnum()); } catch (Exception) { return(string.Empty); } }
protected override bool TaskIsActual(TechnicalRequrementsTask technicalRequrementsTask) { return(true); }
protected override bool TaskIsActual(TechnicalRequrementsTask technicalRequrementsTask) { User manager = technicalRequrementsTask.FrontManager; return(manager != null && manager.IsAppCurrentUser()); }
public TceReportUnit(TechnicalRequrementsTask technicalRequrementsTask, TechnicalRequrements technicalRequrements, IEnumerable <Tender> tenders) { SalesUnits = technicalRequrements.SalesUnits.ToList(); var salesUnit = SalesUnits.First(); _tenders = tenders.ToList(); OrderInTakeDate = salesUnit.OrderInTakeDate; if (technicalRequrementsTask.PriceCalculations.Any()) { TceNumber = GetTceNumber(technicalRequrementsTask); } TaskOpenDate = technicalRequrementsTask.Start?.Date ?? DateTime.Today.AddYears(10); TaskStartDate = technicalRequrementsTask.Start; TaskFinishDate = technicalRequrementsTask.Finish; Order = salesUnit.Order?.ToString(); OrderPositions = SalesUnits.Select(unit => unit.OrderPosition).GetOrderPositions(); var owners = new List <Company> { salesUnit.Facility.OwnerCompany }; owners.AddRange(salesUnit.Facility.OwnerCompany.ParentCompanies().ToList()); FacilityOwners = owners.ToStringEnum(); var contragent = salesUnit.Specification?.Contract.Contragent ?? GetTenderWinner() ?? salesUnit.Facility.OwnerCompany; Contragent = contragent.ToString(); Facility = salesUnit.Facility.ToString(); Product = $"{salesUnit.Product.ProductType} {salesUnit.Product.Designation}"; Amount = SalesUnits.Count; this.OrderInTakeStatus = GetOrderInTakeStatus(); if (TaskStartDate.HasValue) { var dates = Offers .Where(offer => offer.Project.Id == salesUnit.Project.Id) .Select(offer => offer.Date) .Where(x => x >= this.TaskStartDate.Value) .ToList(); if (dates.Any()) { FirstOfferDate = dates.Min(); } if (FirstOfferDate.HasValue) { Term = (FirstOfferDate.Value - TaskStartDate.Value).Days; } } if (salesUnit.IsLoosen) { CostOfWinner = salesUnit.Cost; Cost = Math.Round(CostOfWinner.Value * (1.0 + _random.Next(5, 20) / 100.0), MidpointRounding.ToEven); if (salesUnit.ProductionTerm < GlobalAppProperties.Actual.StandartTermFromStartToEndProduction) { LossReason = "Сроки производства"; } } else { Cost = salesUnit.Cost; } Manager = salesUnit.Project.Manager?.Employee?.Person.ToString(); BackManager = technicalRequrementsTask.BackManager?.Employee?.Person.ToString(); RealizationDate = salesUnit.RealizationDateCalculated; if (salesUnit.IsLoosen) { CommonStatus = string.IsNullOrEmpty(Order) ? "Конкурс проигран" : "Заказ аннулирован"; } else if (OrderInTakeDate < DateTime.Today) { CommonStatus = $"Факт ОИТ {OrderInTakeDate.Year}"; } else if (OrderInTakeDate.Year > DateTime.Today.Year) { CommonStatus = $"Закупка или тендер перенесены на {OrderInTakeDate.Year} год"; } Producer = salesUnit.Producer?.ToString() ?? string.Empty; ProducerWinner = Producer; }
/// <summary> /// Подходит ли задача конкретно этой VM /// </summary> /// <param name="technicalRequrementsTask">Задача ТСЕ</param> /// <returns></returns> protected abstract bool TaskIsActual(TechnicalRequrementsTask technicalRequrementsTask);