102 lines
2.6 KiB
C#
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
|
|
}
|
|
} |