using System;
using System.Data.Entity;
using System.Linq;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace SHERPA.BBM.DatabaseModels
{
//
// This is here so CodeMaid doesn't reorganize this document
//
///
/// Tabella delle Risorse
///
[Table("Resources")]
public class ResourcesModel
{
#region Public Properties
[Key, Column("ResourceId"), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ResourceId { get; set; }
[Column("DocId")]
public int DocId { get; set; }
[Column("Anno")]
public int Anno { get; set; } = DateTime.Today.Year;
[Column("Ordinal")]
public int Ordinal { get; set; } = 0;
[Column("ItemId")]
public int ItemId { get; set; }
[Column("QtyPrev")]
public double QtyPrev { get; set; } = 1;
[Column("QtyOff")]
public double QtyOff { get; set; } = 1;
[NotMapped]
public double StdPrice
{
get
{
return UnitPriceOff * QtyOff;
}
}
[Column("UnitPriceOff")]
public double UnitPriceOff { get; set; }
[Column("FinalPrice")]
public double FinalPrice { get; set; }
[Column("Note")]
public string Note { get; set; } = "";
[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;
}
}
}
[ForeignKey("DocId")]
public virtual DocsModel Document { get; set; }
[ForeignKey("ItemId")]
public virtual ItemsModel Item { get; set; }
#endregion Public Properties
}
}