public static void DeleteLogLoyaltyPoint(int?CustomerId, decimal?totalAmount, int?ProductInvoiceId) { Erp.Domain.Sale.Repositories.LogLoyaltyPointRepository logLoyaltyPointRepository = new Erp.Domain.Sale.Repositories.LogLoyaltyPointRepository(new Domain.Sale.ErpSaleDbContext()); Erp.Domain.Account.Repositories.CustomerRepository customerRepository = new Erp.Domain.Account.Repositories.CustomerRepository(new Domain.Account.ErpAccountDbContext()); Erp.Domain.Sale.Repositories.LoyaltyPointRepository loyaltyPointRepository = new Erp.Domain.Sale.Repositories.LoyaltyPointRepository(new Domain.Sale.ErpSaleDbContext()); var setting_point = loyaltyPointRepository.GetAllLoyaltyPoint().Where(x => x.MinMoney <= totalAmount && totalAmount <= x.MaxMoney).ToList(); //kiểm tra thông tin khách hàng có tồn tại hay không và cập nhật điểm vào khách hàng var customer = customerRepository.GetCustomerById(CustomerId.Value); if (customer != null) { int so_diem_cu_cua_hoa_don = 0; var LoyaltyPoint = logLoyaltyPointRepository.GetAllLogLoyaltyPoint().Where(x => x.CustomerId == CustomerId && x.ProductInvoiceId == ProductInvoiceId).ToList(); if (LoyaltyPoint.Count() > 0) { so_diem_cu_cua_hoa_don = LoyaltyPoint.FirstOrDefault().PlusPoint.Value; //cập nhật lại điểm vào khách hàng khi bỏ ghi sổ hóa đơn customer.Point = customer.Point - so_diem_cu_cua_hoa_don; customerRepository.UpdateCustomer(customer); //xóa lịch sử tích lũy điểm logLoyaltyPointRepository.DeleteLogLoyaltyPoint(LoyaltyPoint.FirstOrDefault().Id); } } }
public static void CreateLogLoyaltyPoint(int?CustomerId, decimal?totalAmount, int?ProductInvoiceId) { Erp.Domain.Sale.Repositories.LogLoyaltyPointRepository logLoyaltyPointRepository = new Erp.Domain.Sale.Repositories.LogLoyaltyPointRepository(new Domain.Sale.ErpSaleDbContext()); Erp.Domain.Account.Repositories.CustomerRepository customerRepository = new Erp.Domain.Account.Repositories.CustomerRepository(new Domain.Account.ErpAccountDbContext()); Erp.Domain.Sale.Repositories.LoyaltyPointRepository loyaltyPointRepository = new Erp.Domain.Sale.Repositories.LoyaltyPointRepository(new Domain.Sale.ErpSaleDbContext()); int?point = 0; var min = loyaltyPointRepository.GetAllLoyaltyPoint().OrderBy(x => x.MinMoney).FirstOrDefault(); if (totalAmount < min.MinMoney) { point = min.PlusPoint; } else { var max = loyaltyPointRepository.GetAllLoyaltyPoint().OrderByDescending(x => x.MinMoney).FirstOrDefault(); if (totalAmount > max.MaxMoney) { point = max.PlusPoint; } else { var setting_point = loyaltyPointRepository.GetAllLoyaltyPoint().Where(x => x.MinMoney <= totalAmount && totalAmount <= x.MaxMoney).FirstOrDefault(); point = setting_point != null ? setting_point.PlusPoint : 0; } } //kiểm tra thông tin khách hàng có tồn tại hay không và cập nhật điểm vào khách hàng var customer = customerRepository.GetCustomerById(CustomerId.Value); if (customer != null) { var logLoyaltyPoint = new LogLoyaltyPoint(); logLoyaltyPoint.IsDeleted = false; logLoyaltyPoint.CreatedUserId = WebSecurity.CurrentUserId; logLoyaltyPoint.ModifiedUserId = WebSecurity.CurrentUserId; logLoyaltyPoint.AssignedUserId = WebSecurity.CurrentUserId; logLoyaltyPoint.CreatedDate = DateTime.Now; logLoyaltyPoint.ModifiedDate = DateTime.Now; logLoyaltyPoint.PlusPoint = point; logLoyaltyPoint.ProductInvoiceId = ProductInvoiceId; if (customer.Point != null) { logLoyaltyPoint.TotalPoint = customer.Point + logLoyaltyPoint.PlusPoint; } else { logLoyaltyPoint.TotalPoint = logLoyaltyPoint.PlusPoint; } logLoyaltyPointRepository.InsertLogLoyaltyPoint(logLoyaltyPoint); //cập nhật điểm vào khách hàng customer.Point = logLoyaltyPoint.TotalPoint; customerRepository.UpdateCustomer(customer); } }