using EnVisage.Code; using EnVisage.Code.DAL.Mongo; using System; using System.Collections.Generic; namespace EnVisage.Models { public class ScenarioCalendarMixModel : ScenarioCalendarModelBase { public Guid Id { get; set; } public Guid? ParentId { get; set; } public long StartDate { get; set; } public long EndDate { get; set; } public Guid TemplateId { get; set; } public bool GrowthScenario { get; set; } public ScenarioType Type { get; set; } public int Duration { get; set; } public bool IsNew { get; set; } public string Name { get; set; } public bool Pinned { get; set; } public ItemVersionInfo VersionInfo { get; set; } public List Rates { get; set; } public ScenarioCalendarMixFinInfoModel FinInfo { get; set; } public bool IsBottomUp { get; set; } public ScenarioCalendarMixModel() : base() { Rates = new List(); VersionInfo = new ItemVersionInfo(); } public ScenarioCalendarMixModel(MixScenario scenario) : this() { if (scenario == null) return; Id = scenario.Id; StartDate = scenario.StartDate; EndDate = scenario.EndDate; TemplateId = scenario.TemplateId; ParentId = scenario.ParentId; GrowthScenario = scenario.GrowthScenario; Type = scenario.Type; Duration = scenario.Duration; Rates = scenario.Rates; IsNew = scenario.IsNew; IsBottomUp = scenario.IsBottomUp; VersionInfo = new ItemVersionInfo() { SourceVersion = (scenario.VersionInfo != null) ? scenario.VersionInfo.SourceVersion : null, RmoVersion = (scenario.VersionInfo != null) ? scenario.VersionInfo.RmoVersion : 1 }; FinInfo = scenario.FinInfo != null ? scenario.FinInfo.Clone() : null; } } public class ScenarioCalendarMixFinInfoModel { public bool IsRevenueGenerating { get; set; } public decimal ProjectedRevenue { get; set; } public decimal RevenueAfterCost { get; set; } public decimal? ActualRevenueAfterCost { get; set; } public int? GrossMargin { get; set; } public int? LMMargin { get; set; } public bool UseLMMargin { get; set; } public int CalculatedGrossMargin { get; set; } public int CalculatedGrossMarginLM { get; set; } public int? CalculatedGrossMarginActuals { get; set; } public int? CalculatedGrossMarginLMActuals { get; set; } public decimal TDDirectCosts { get; set; } public decimal BUDirectCosts { get; set; } public decimal? ActualLabor { get; set; } public string LaborMaterialsSplit { get; set; } public string ActualLaborMaterialsSplit { get; set; } public decimal? ActualMaterials { get; set; } public decimal ActualsTotal { get; set; } public decimal EFXSplit { get; set; } public short LaborSplitPercentage { get; set; } public CostSavingSnapshotModel CostSaving { get; set; } } public class MixScenarioDetailsFormLoadModel { public ScenarioCalendarMixModel Scenario { get; set; } public List TeamsInScenario { get; set; } public List MixScenarioDependencyData { get; set; } } public class MixScenarioDates { public Guid? ProjectId { get; set; } public Guid? ScenaroId { get; set; } public long? StartDate { get; set; } public long? EndDate { get; set; } } }