EnVisageOnline/Main/Source/EnVisage/Models/MixModels/ScenarioCalendarMixModel.cs

97 lines
3.7 KiB
C#

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<ScenarioCalendarRateModel> Rates { get; set; }
public ScenarioCalendarMixFinInfoModel FinInfo { get; set; }
public bool IsBottomUp { get; set; }
public ScenarioCalendarMixModel() : base()
{
Rates = new List<ScenarioCalendarRateModel>();
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<Guid> TeamsInScenario { get; set; }
public List<MixScenarioDates> 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; }
}
}