-
Notifications
You must be signed in to change notification settings - Fork 0
Common
Hakan Uçar edited this page Oct 17, 2022
·
7 revisions
Sistemin genelinde kullanılan classların tanımlandığı yer
Satış yapılan gerçek kişi yada kurum class
public class BusinessPartner : IBusinessPartner
{
public string Name { get; set; }
public string Group { get; set; }
public DateTime BirthDate { get; set; }
}
Satışı yapılan ürün bilgilerinin tanımlandığı class
public class Item : IItem
{
public string Category { get; set; }
}
Satış belgesindeki ürün bilgilerinin tanımlandığı class
public class DocumentLine : IDocumentLine
{
public double Discount { get; set; }
public double Quantity { get; set; }
public double Price { get; set; }
public double LineTotal { get { return Price * Quantity; } }
public Item Item { get; set; }
}
Satış belgesi(sepet) class
public class Document : IDocument
{
public DateTime DocDate { get; set; } = DateTime.Now;
public double DocTotal { get { return Lines.Sum(x => x.LineTotal); } }
public BusinessPartner BusinessPartner { get; set; } = new BusinessPartner();
public List<DocumentLine> Lines { get; set; } = new List<DocumentLine>();
}
İndirim uygulamak için gerekli olan metadataların tanımlandığı class
public class Discount : AbstractDiscountValidator<Discount>,IDiscount
{
public DiscountType Type { get; set; }
public DomainType Domain { get; set; }
public double DiscountValue { get; set; }
public double TriggerValue { get; set; }
public double EffectedValue { get; set; }
public Discount(IDocument document) : base(document)
{
}
public override ValidationResult Validate()
{
Fails.Clear();
foreach (var item in Rules)
{
Fails.Add(item.Validate(this));
}
ValidationResult oValid = new ValidationResult(Fails);
return oValid;
}
}