Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if (model.IsPublished)
- {
- if (model.PromoQuota.ToJSON() != promo.ResetQuota)//cek bagan resetquota, berubah atau tidak
- {
- if (!string.IsNullOrEmpty(promo.HistoryResetQuota))
- {
- List<PromoQuotaModel> HistoryResetQuota = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PromoQuotaModel>>(promo.HistoryResetQuota);
- int TransMax = 0;
- int.TryParse(promo.TRANSAKSIMAX, out TransMax);
- var ListUsed = ProductTransactionQuota.GetListNonExpiredByPromoCode(promo.KodePromo);
- if (model.PromoQuota.ResetQuotaType == Constant.ResetQuotaPromoType.Manual && TransMax > 0)
- {
- int QuotaUsed = ListUsed.Sum(x => x.Quantity);
- int TotalPrev = 0;
- if (model.PromoQuota.Accumulation == true)
- {
- int prev = HistoryResetQuota.Where(x => x.ResetQuotaType == Constant.ResetQuotaPromoType.Auto).Sum(x => x.AutoResetPromoQuotaDetail.Sum(y => y.Quota));
- prev += HistoryResetQuota.Where(x => x.ResetQuotaType != Constant.ResetQuotaPromoType.Auto).Sum(x => x.TotalResetQuota);
- TotalPrev = prev - QuotaUsed;
- }
- else
- {
- int prev = HistoryResetQuota.Where(x => x.ResetQuotaType == Constant.ResetQuotaPromoType.Auto).Sum(x => x.AutoResetPromoQuotaDetail.Sum(y => y.Quota));
- prev += HistoryResetQuota.Where(x => x.ResetQuotaType != Constant.ResetQuotaPromoType.Auto).Sum(x => x.TotalResetQuota);
- TotalPrev = prev;
- }
- if (!String.IsNullOrEmpty(promo.ResetQuota))
- {
- PromoQuotaModel RecentResetQuota = Newtonsoft.Json.JsonConvert.DeserializeObject<PromoQuotaModel>(promo.ResetQuota);
- if (RecentResetQuota.StartDatePromo <= DateTime.Now && RecentResetQuota.EndDatePromo >= DateTime.Now)
- {
- CookieManager.Set(CookieManager.CMS_GLOBAL_ERROR, "Reset promo sebelumnya sedang aktif", false);
- return RedirectToAction(MVC.Promo.Edit(promo.ID));
- }
- }
- if (TotalPrev + model.PromoQuota.TotalResetQuota > TransMax)
- {
- CookieManager.Set(CookieManager.CMS_GLOBAL_ERROR, "Total quota reset dengan reset sebelumnya tidak boleh melebihi transaksi max promo utama", false);
- return RedirectToAction(MVC.Promo.Edit(promo.ID));
- }
- else
- {
- //if (model.PromoQuota.Accumulation == true)
- //{
- // promo.TotalQuota = model.PromoQuota.TotalResetQuota + QuotaUsed;
- //}
- //else
- //{
- // promo.TotalQuota = model.PromoQuota.TotalResetQuota;
- //}
- }
- }
- else
- {
- ////auto
- //promo.TotalQuota = model.PromoQuota.TotalResetQuota;
- int QuotaUsed = ListUsed.Sum(x => x.Quantity);
- int TotalPrev = 0;
- if (model.PromoQuota.Accumulation == true)
- {
- int prev = HistoryResetQuota.Where(x => x.ResetQuotaType == Constant.ResetQuotaPromoType.Auto).Sum(x => x.AutoResetPromoQuotaDetail.Sum(y => y.Quota));
- prev += HistoryResetQuota.Where(x => x.ResetQuotaType != Constant.ResetQuotaPromoType.Auto).Sum(x => x.TotalResetQuota);
- TotalPrev = prev - QuotaUsed;
- }
- else
- {
- int prev = HistoryResetQuota.Where(x => x.ResetQuotaType == Constant.ResetQuotaPromoType.Auto).Sum(x => x.AutoResetPromoQuotaDetail.Sum(y => y.Quota));
- prev += HistoryResetQuota.Where(x => x.ResetQuotaType != Constant.ResetQuotaPromoType.Auto).Sum(x => x.TotalResetQuota);
- TotalPrev = prev;
- }
- if (!String.IsNullOrEmpty(promo.ResetQuota))
- {
- PromoQuotaModel RecentResetQuota = Newtonsoft.Json.JsonConvert.DeserializeObject<PromoQuotaModel>(promo.ResetQuota);
- if (RecentResetQuota.AutoResetPromoQuotaDetail != null)
- {
- foreach (var item in RecentResetQuota.AutoResetPromoQuotaDetail)
- if (item.StartDate <= DateTime.Now && item.EndDate >= DateTime.Now)
- {
- CookieManager.Set(CookieManager.CMS_GLOBAL_ERROR, "Reset promo sebelumnya sedang aktif", false);
- return RedirectToAction(MVC.Promo.Edit(promo.ID));
- }
- }
- }
- int QuotaWillBeReset = model.PromoQuota.AutoResetPromoQuotaDetail.Sum(x => x.Quota);
- if (TotalPrev + QuotaWillBeReset > TransMax)
- {
- CookieManager.Set(CookieManager.CMS_GLOBAL_ERROR, "Total quota reset dengan reset sebelumnya tidak boleh melebihi transaksi max promo utama", false);
- return RedirectToAction(MVC.Promo.Edit(promo.ID));
- }
- }
- model.PromoQuota.IsExecuted = false;
- promo.ResetQuota = model.PromoQuota.ToJSON().ToString();
- ////delete all used quota transaction
- //foreach (var itemList in ListUsed)
- //{
- // itemList.IsDeleted = true;
- // itemList.Update(CookieManager.Get(CookieManager.USERID).ToString());
- //}
- HistoryResetQuota.Add(model.PromoQuota);
- promo.HistoryResetQuota = HistoryResetQuota.ToJSON();
- }
- else
- {
- if ((model.PromoQuota.ResetQuotaType == Constant.ResetQuotaPromoType.Manual || (model.PromoQuota.ResetQuotaType == Constant.ResetQuotaPromoType.Auto && model.PromoQuota.CategoryReset == Constant.ResetQuotaPromoAutoType.Perhari)) && (model.PromoQuota.StartDatePromo == DateTime.MinValue || model.PromoQuota.EndDatePromo == DateTime.MinValue))
- {
- CookieManager.Set(CookieManager.CMS_GLOBAL_ERROR, "Tanggal awal atau tanggal akhir reset promo harap diisi terlebih dahulu", false);
- return RedirectToAction(MVC.Promo.Edit(promo.ID));
- }
- List<PromoQuotaModel> HistoryResetQuota = new List<PromoQuotaModel>();
- promo.ResetQuota = model.PromoQuota.ToJSON().ToString();
- HistoryResetQuota.Add(model.PromoQuota);
- promo.HistoryResetQuota = HistoryResetQuota.ToJSON().ToString();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement