/// <summary> /// Adds the specified service level client. /// </summary> /// <param name="paymentPass">The payment pass.</param> /// <returns></returns> public tbl_PaymentBalance Add(tbl_PaymentBalance paymentPass) { paymentPass.ID = Guid.NewGuid(); _dataContext.tbl_PaymentBalance.AddObject(paymentPass); _dataContext.SaveChanges(); return(paymentPass); }
/// <summary> /// Updates the specified service level client. /// </summary> /// <param name="paymentPass">The payment pass.</param> public void Update(tbl_PaymentBalance paymentPass) { _dataContext.SaveChanges(); }
/// <summary> /// Deletes the specified service level client. /// </summary> /// <param name="paymentPass">The payment pass.</param> public void Delete(tbl_PaymentBalance paymentPass) { _dataContext.tbl_PaymentBalance.DeleteObject(paymentPass); _dataContext.SaveChanges(); }
public void Run() { var dataManager = new DataManager(); var paymentPasses = dataManager.PaymentPass.SelectAll().Where(a => a.ProcessedByCron == false && a.OutgoCFOID != null && a.OutgoPaymentArticleID != null).OrderBy(a => a.tbl_Payment.DatePlan).OrderBy(a => a.tbl_Payment.DateFact); var today = DateTime.Now.Date; foreach (var paymentPass in paymentPasses) { #region Новая проводка if (paymentPass.OldAmount == null && paymentPass.OldCreatedAt == null && paymentPass.OldOutgoCFOID == null && paymentPass.OldOutgoPaymentArticleID == null && paymentPass.OldOutgoPaymentPassCategoryID == null && !paymentPass.ToDelete) { var paymentBalances = dataManager.PaymentBalance.SelectByDate(paymentPass.SiteID, paymentPass.OutgoPaymentPassCategoryID, paymentPass.OutgoCFOID, paymentPass.OutgoPaymentArticleID, paymentPass.CreatedAt); foreach (var paymentBalance in paymentBalances) { if (paymentPass.Amount != null) { paymentBalance.BalancePlan += (decimal)paymentPass.Amount; if (paymentPass.IsFact != null && paymentPass.IsFact == true) { paymentBalance.BalanceFact += (decimal)paymentPass.Amount; } dataManager.PaymentBalance.Update(paymentBalance); } } if (paymentBalances == null) { var balance = new tbl_PaymentBalance(); balance.SiteID = paymentPass.SiteID; balance.PaymentPassCategoryID = paymentPass.OutgoPaymentPassCategoryID; balance.CFOID = paymentPass.OutgoCFOID; balance.PaymentArticleID = paymentPass.OutgoPaymentArticleID; balance.Date = paymentPass.CreatedAt; balance.BalancePlan = (decimal)paymentPass.Amount; balance.BalanceFact = paymentPass.IsFact == true ? (decimal)paymentPass.Amount : 0; dataManager.PaymentBalance.Add(balance); } paymentPass.ProcessedByCron = true; dataManager.PaymentPass.Update(paymentPass); continue; } #endregion #region На удаление if (paymentPass.ToDelete) { var paymentBalances = dataManager.PaymentBalance.SelectByDate(paymentPass.SiteID, paymentPass.OutgoPaymentPassCategoryID, paymentPass.OutgoCFOID, paymentPass.OutgoPaymentArticleID, paymentPass.CreatedAt); foreach (var paymentBalance in paymentBalances) { if (paymentBalance.BalancePlan != null && paymentPass.Amount != null && paymentBalance.BalancePlan >= (decimal)paymentPass.Amount) { paymentBalance.BalancePlan -= (decimal)paymentPass.Amount; if (paymentPass.IsFact != null && paymentPass.IsFact == true) { paymentBalance.BalanceFact -= (decimal)paymentPass.Amount; } dataManager.PaymentBalance.Update(paymentBalance); } } dataManager.PaymentPass.Delete(paymentPass); continue; } #endregion #region Изменение if ((paymentPass.OldAmount != null || paymentPass.OldCreatedAt != null || paymentPass.OldOutgoCFOID != null || paymentPass.OldOutgoPaymentArticleID != null || paymentPass.OldOutgoPaymentPassCategoryID != null) && !paymentPass.ToDelete) { var paymentBalances = dataManager.PaymentBalance.SelectByDate(paymentPass.SiteID, paymentPass.OutgoPaymentPassCategoryID, paymentPass.OutgoCFOID, paymentPass.OutgoPaymentArticleID, paymentPass.CreatedAt); foreach (var paymentBalance in paymentBalances) // Обновить новые значения { if (paymentPass.Amount != null) { paymentBalance.BalancePlan += (decimal)paymentPass.Amount; if (paymentPass.IsFact != null && paymentPass.IsFact == true) { paymentBalance.BalanceFact += (decimal)paymentPass.Amount; } dataManager.PaymentBalance.Update(paymentBalance); } } if (paymentBalances == null) //Создать новый баланс { var balance = new tbl_PaymentBalance(); balance.SiteID = paymentPass.SiteID; balance.PaymentPassCategoryID = paymentPass.OutgoPaymentPassCategoryID; balance.CFOID = paymentPass.OutgoCFOID; balance.PaymentArticleID = paymentPass.OutgoPaymentArticleID; balance.Date = paymentPass.CreatedAt; balance.BalancePlan = (decimal)paymentPass.Amount; balance.BalanceFact = paymentPass.IsFact == true ? (decimal)paymentPass.Amount : 0; dataManager.PaymentBalance.Add(balance); } paymentBalances = dataManager.PaymentBalance.SelectByDate(paymentPass.SiteID, paymentPass.OldOutgoPaymentPassCategoryID ?? paymentPass.OutgoPaymentPassCategoryID, paymentPass.OldOutgoCFOID ?? paymentPass.OldOutgoCFOID, paymentPass.OldOutgoPaymentArticleID ?? paymentPass.OutgoPaymentArticleID, paymentPass.OldCreatedAt ?? paymentPass.CreatedAt); foreach (var paymentBalance in paymentBalances) // Обновить старые значения { if (paymentPass.Amount != null) { paymentBalance.BalancePlan -= (decimal)paymentPass.Amount; if (paymentPass.IsFact != null && paymentPass.IsFact == true) { paymentBalance.BalanceFact -= (decimal)paymentPass.Amount; } dataManager.PaymentBalance.Update(paymentBalance); } } paymentPass.OldAmount = null; paymentPass.OldCreatedAt = null; paymentPass.OldOutgoCFOID = null; paymentPass.OldOutgoPaymentArticleID = null; paymentPass.OldOutgoPaymentPassCategoryID = null; paymentPass.ProcessedByCron = true; dataManager.PaymentPass.Update(paymentPass); continue; } #endregion } }