コード例 #1
0
        public IActionResult Create(int mt)
        {
            var currentRoleId = partnerManager.GetCurrentUserRole(this.HttpContext);
            var permission    = partnerActivity.GetPartAct("MoneyTransfer.Adjustment", currentRoleId);

            if (permission == null)
            {
                toastNotification.AddErrorToastMessage("ليس لديك الصلاحيات الكافية ", new ToastrOptions {
                    Title = ""
                });
                return(Redirect(Request.Headers["Referer"].ToString()));
            }

            if (permission.Details == null)
            {
                toastNotification.AddErrorToastMessage("ليس لديك الصلاحيات الكافية ", new ToastrOptions {
                    Title = ""
                });
                return(Redirect(Request.Headers["Referer"].ToString()));
            }
            if (permission.Details.Count == 0)
            {
                toastNotification.AddErrorToastMessage("ليس لديك الصلاحيات الكافية ", new ToastrOptions {
                    Title = ""
                });
                return(Redirect(Request.Headers["Referer"].ToString()));
            }
            var moneyTransfer = new MoneyTransferRepo(db, partnerManager, partnerActivity).GetSingleOrDefault(mt);

            if (moneyTransfer == null)
            {
                toastNotification.AddErrorToastMessage("لا توجد بيانات ");
                return(Redirect(Request.Headers["Referer"].ToString()));
            }
            if (moneyTransfer.Adjusted || moneyTransfer.AdjustmentNo > 0)
            {
                toastNotification.AddErrorToastMessage("تم اجراء تسوية سابقة على هذه العملية ", new ToastrOptions {
                    Title = ""
                });
                return(Redirect(Request.Headers["Referer"].ToString()));
            }
            if (!permission.Details.Any(x => x.ToRole.Id == moneyTransfer.CreatedBy.Role.Id))
            {
                toastNotification.AddErrorToastMessage("ليس لديك الصلاحيات الكافية لاجراء تسوية لهذه الجهة ", new ToastrOptions {
                    Title = ""
                });
                return(Redirect(Request.Headers["Referer"].ToString()));
            }
            var model = new CreateAdjustmentDto();

            model.OriginTrans     = moneyTransfer;
            model.TaxPercent      = moneyTransfer.TaxPercent;
            model.BonusPercent    = moneyTransfer.BonusPercent;
            model.BounsTaxPercent = moneyTransfer.BounsTaxPercent;
            model.FixedFactor     = moneyTransfer.FixedFactor;
            return(View(model));
        }
コード例 #2
0
        public IActionResult Create(CreateAdjustmentDto model)
        {
            if (ModelState.IsValid)
            {
                var adj = new Adjustment();
                adj.CreatedBy.Id      = partnerManager.GetCurrentUserId(this.HttpContext);
                adj.CreatedBy.Account = partnerManager.GetCurrentUserAccount(this.HttpContext);
                adj.MoneyTransferId   = model.OriginTrans.Id;
                adj.Amount            = model.Amount;
                adj.AccessChannel.Id  = "web";
                adj.Note = model.Note;
                var result = new AdjustmentRepo(db, partnerManager, partnerActivity).Create(adj);
                if (result.Success)
                {
                    adj.DestPartner = partnerManager.GetPartnerByAccount(model.OriginTrans.Partner.Account);
                    adj.SrcPartner  = partnerManager.GetPartnerByAccount(model.OriginTrans.CreatedBy.Account);
                    toastNotification.AddInfoToastMessage("تم انشاء التسوية بنجاح ", new ToastrOptions {
                        Title = ""
                    });
                    new NotificationRepo(db, partnerManager).SendNotification <Adjustment>("MoneyTransfer.Adjustment", result.AffectedCount, adj);
                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    switch (result.AffectedCount)
                    {
                    case -513:
                        model.Error = "ليس لديك الصلاحية الكافية لاجراء التسوية";
                        break;

                    case -505:
                        model.Error = "هناك خطأ في احدى القيم ، مما ادى الى فشل اجراء التسوية";
                        break;

                    case -500:
                        model.Error = "هناك احدى البيانات المهمة لم تعد متوفرة";
                        break;

                    case -502:
                        model.Error = "مبلغ التسوية اقل من المبلغ المسموح به";
                        break;

                    case -503:
                        model.Error = "مبلغ التسوية اكبر من المبلغ المسموح به";
                        break;

                    case -509:
                        model.Error = "تم عمل تسوية في وقت سابق";
                        break;

                    case -510:
                        model.Error = "مبلغ التسوية غير صحيح سوف يجعل الحركة السابقة غير صحيحة";
                        break;

                    case -507:
                        model.Error = "بيانات الارصدة لم تعد محدثة";
                        break;

                    case -508:
                        model.Error = "فات الاوان على اجراء تسوية لهذه العملية";
                        break;

                    case -501:
                        model.Error = "الرصيد غير كافي";
                        break;

                    default:
                        model.Error = "لم يتم اجراء التسوية بنجاح" + result.AffectedCount;
                        break;
                    }
                }
            }
            return(View(model));
        }