Files
SHERPA/SHERPA.BBM/DatabaseModels/ResurcesModel.cs
T
2021-05-10 18:44:06 +02:00

102 lines
2.6 KiB
C#

using System;
using System.Data.Entity;
using System.Linq;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace SHERPA.BBM.DatabaseModels
{
/// <summary>
/// Tabella delle Risorse
/// </summary>
[Table("Resources")]
public class ResourcesModel
{
#region Public Properties
[Column("DocId", Order = 1)]
public int DocId { get; set; }
[ForeignKey("DocId")]
public virtual DocsModel Document { get; set; }
[Column("FinaPrice", Order = 8)]
public double FinalPrice { get; set; }
[ForeignKey("ItemId")]
public virtual ItemsModel Item { get; set; }
[Column("ItemId", Order = 3)]
public int ItemId { get; set; }
[Column("Ordinal", Order = 2)]
public int Ordinal { get; set; } = 0;
[NotMapped]
[DisplayFormat(DataFormatString = "{0:P2}", ApplyFormatInEditMode = true)]
[Range(0, 1, ErrorMessage = "Percentuale fino a 1=100%")]
public double PercReduction
{
get
{
double answ = 0;
if (StdPrice > 0)
{
answ = (StdPrice - FinalPrice) / StdPrice;
}
return Math.Round(answ, 4);
}
set
{
if (value > 0 && value < 1)
{
FinalPrice = StdPrice * (1 - value);
}
}
}
[NotMapped]
public double PriceReduction
{
get
{
double answ = 0;
if (StdPrice > 0)
{
answ = (StdPrice - FinalPrice);
}
return answ;
}
set
{
if (value > 0 && value < StdPrice)
{
var fPrice = StdPrice - value;
FinalPrice = fPrice > 0 ? fPrice : 0;
}
}
}
[Column("QtyOff", Order = 5)]
public double QtyOff { get; set; } = 1;
[Column("QtyPrev", Order = 4)]
public double QtyPrev { get; set; } = 1;
[Key, Column("ResourceId", Order = 0), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ResourceId { get; set; }
public double StdPrice
{
get
{
return UnitPriceOff * QtyOff;
}
}
[Column("UnitPriceOff", Order = 6)]
public double UnitPriceOff { get; set; }
#endregion Public Properties
}
}