public SalesOrderBalanceValidator(decimal maxDiff, SalesOrderSettlement settlement) { MaxSettlementDifference = maxDiff; GrossBalance = settlement.GrossValue; NetBalance = settlement.NetValue; VatBalance = settlement.VatValue; }
public void LoadPrepaids(XElement source) { this.Prepaids.Clear(); foreach (XElement vr in source.Elements()) { SalesOrderSettlement so = new SalesOrderSettlement(new Guid(vr.Attribute("id").Value)); so.NetValue = Convert.ToDecimal(vr.Attribute("netValue").Value, CultureInfo.InvariantCulture); so.GrossValue = Convert.ToDecimal(vr.Attribute("grossValue").Value, CultureInfo.InvariantCulture); so.VatValue = Convert.ToDecimal(vr.Attribute("vatValue").Value, CultureInfo.InvariantCulture); this.Prepaids.Add(so); } }
internal void LoadSalesOrder(CommercialDocument salesOrder) { this.SalesOrder.Clear(); foreach (var vtEntry in salesOrder.VatTableEntries) { SalesOrderSettlement so = new SalesOrderSettlement(vtEntry.VatRateId); so.NetValue = vtEntry.NetValue; so.GrossValue = vtEntry.GrossValue; so.VatValue = vtEntry.VatValue; this.SalesOrder.Add(so); } this.CurrentMaxSettlementDifference = ProcessManager.Instance.GetMaxSettlementDifference(salesOrder); }
public ICollection <SalesOrderSettlement> GetUnsettledValues() { List <SalesOrderSettlement> retList = new List <SalesOrderSettlement>(); foreach (var so in this.SalesOrder) { SalesOrderSettlement diff = new SalesOrderSettlement(so.VatRateId); diff.NetValue = so.NetValue; diff.GrossValue = so.GrossValue; diff.VatValue = so.VatValue; var pp = this.Prepaids.Where(p => p.VatRateId == so.VatRateId).FirstOrDefault(); if (pp != null) { diff.NetValue -= pp.NetValue; diff.GrossValue -= pp.GrossValue; diff.VatValue -= pp.VatValue; } SalesOrderBalanceValidator validator = new SalesOrderBalanceValidator(this.CurrentMaxSettlementDifference, diff); if (!validator.IsIllegalOverPayment) //pomijamy gdyż i tak zostanie rzucony wyjątek { if (!validator.IsAcceptableOverPayment) //pomijamy gdyż nastąpi automatyczna korekta { if (diff.NetValue > 0 || diff.GrossValue > 0 || diff.VatValue > 0) { retList.Add(diff); } } } } return(retList); }