Files
BeWoPlaner/Data/Entities/CostRatePeriod.cs

197 lines
4.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using BS.Shared;
namespace BeWo.Data.Entities
{
[DebuggerDisplay("{CostRateType} {CostRateValue}")]
public class CostRatePeriod : BeWoEntityBase
{
public static string PropertyName_CostRateType = "CostRateType";
public static string PropertyName_CostRateValue = "CostRateValue";
public static string PropertyName_EndDate = "EndDate";
public static string PropertyName_ObjectOid = "ObjectOid";
public static string PropertyName_ObjectTid = "ObjectTid";
public static string PropertyName_StartDate = "StartDate";
public static string PropertyName_UnitName = "UnitName";
public static string PropertyName_ValueListEntry = "ValueListEntry";
private CostRatePeriodType _CostRateType;
private decimal? _CostRateValue;
private DateTime? _EndDate;
private long? _ObjectOid;
private TableID _ObjectTid;
private DateTime? _StartDate;
private string _UnitName;
private ValueListEntry _ValueListEntry;
public virtual CostRatePeriodType CostRateType
{
get
{
return this._CostRateType;
}
set
{
if (this.AreDifferent(this._CostRateType, value))
{
this._CostRateType = value;
}
}
}
public virtual decimal? CostRateValue
{
get
{
return this._CostRateValue;
}
set
{
if (this.AreDifferent(this._CostRateValue, value))
{
this._CostRateValue = value;
}
}
}
public virtual DateTime? EndDate
{
get
{
return this._EndDate;
}
set
{
if (this.AreDifferent(this._EndDate, value))
{
this._EndDate = value;
}
}
}
public virtual long? ObjectOid
{
get
{
return this._ObjectOid;
}
set
{
if (this.AreDifferent(this._ObjectOid, value))
{
this._ObjectOid = value;
}
}
}
public virtual TableID ObjectTid
{
get
{
return this._ObjectTid;
}
set
{
if (this._ObjectTid != value)
{
this._ObjectTid = value;
}
}
}
public virtual DateTime? StartDate
{
get
{
return this._StartDate;
}
set
{
if (this.AreDifferent(this._StartDate, value))
{
this._StartDate = value;
}
}
}
public virtual string UnitName
{
get
{
return this._UnitName;
}
set
{
if (this.AreDifferent(this._UnitName, value))
{
this._UnitName = value;
}
}
}
public virtual ValueListEntry ValueListEntry
{
get
{
return this._ValueListEntry;
}
set
{
if (this.AreDifferent(this._ValueListEntry, value))
{
this._ValueListEntry = value;
}
}
}
//public static CostRatePeriod GetValidServiceUnitForDate(IList<CostRatePeriod> costRates, DateTime date)
//{
// if (costRates == null)
// {
// return null;
// }
// var serviceUnits = costRates.Where(i => i.CostRateType == CostRatePeriodType.MinutesPerServiceUnit && i.CostRateValue.HasValue && !string.IsNullOrEmpty(i.UnitName));
// return serviceUnits.Where(i => i.EndDate.HasValue).OrderBy(i => i.EndDate).FirstOrDefault(i => i.EndDate >= date) ?? serviceUnits.SingleOrDefault(i => !i.EndDate.HasValue);
//}
//public virtual decimal GetMinutesInBE(decimal minutes)
//{
// return minutes / this.CostRateValue.Value;
//}
//public virtual decimal GetBEInMinutes(decimal be)
//{
// return be * CostRateValue.Value;
//}
}
}