public IActionResult Create(CreateMoneyTransferDto model) { if (ModelState.IsValid) { if (!Utility.ValidYMobileNo(model.PartnerId)) { model.Error = "رقم موبايل خاطئ"; model.PayType = new CommonCodeRepo(_db).GetCodesByType("pay.type"); return(View(model)); } if (model.Amount <= 0) { model.Error = "المبلغ غير صحيح"; model.PayType = new CommonCodeRepo(_db).GetCodesByType("pay.type"); return(View(model)); } var result = GetBasicInfo(model.PartnerId, model.Amount); if (result.Error != "N/A") { model.Error = result.Error; model.PayType = new CommonCodeRepo(_db).GetCodesByType("pay.type"); return(View(model)); } result.AmountName = new MonyToString().NumToStr(result.Amount); result.PayTypeName = new CommonCodeRepo(_db).GetCodesById(model.PayTypeId, "pay.type").Name; result.PayTypeId = model.PayTypeId; result.PayNo = model.PayNo; result.PayDate = model.PayDate; result.PayBank = model.PayBank; result.Note = model.Note; result.BillNo = model.BillNo; result.RequestNo = model.RequestNo; result.RequestAmount = model.RequestAmount; result.PayType = new CommonCodeRepo(_db).GetCodesByType("pay.type"); return(View("Confirmation", result)); } var payTypes = new CommonCodeRepo(_db).GetCodesByType("pay.type"); model.PayType = payTypes; return(View(model)); }
public IActionResult Create() { var currentRoleId = _partnerManager.GetCurrentUserRole(this.HttpContext); var permission = _partnerActivity.GetPartAct("MoneyTransfer.Create", currentRoleId); if (permission == null) { _toastNotification.AddErrorToastMessage("ليس لديك الصلاحيات الكافية", new ToastrOptions { Title = "" }); return(Redirect(Request.Headers["Referer"].ToString())); } var model = new CreateMoneyTransferDto(); var currentPartAccount = _partnerManager.GetCurrentUserAccount(this.HttpContext); var currentPart = _partnerManager.GetPartnerByAccount(currentPartAccount); model.CreatorBalance = currentPart.Balance - currentPart.Reserved; var payTypes = new CommonCodeRepo(_db).GetCodesByType("pay.type"); model.PayType = payTypes; model.PayDate = DateTime.Today; return(View(model)); }
public CreateMoneyTransferDto GetBasicInfo(string pId, double amount = 0) { if (pId.Length != 9) { return new CreateMoneyTransferDto { Error = "رقم خاطئ" } } ; var validateResult = _partnerManager.Validate(pId); if (validateResult.Success) { var currentId = _partnerManager.GetCurrentUserId(this.HttpContext); var partner = validateResult.Partner; var currentRoleId = _partnerManager.GetCurrentUserRole(this.HttpContext); var permission = _partnerActivity.GetPartAct("MoneyTransfer.Create", currentRoleId); if (permission == null) { return(new CreateMoneyTransferDto { Error = "ليس لديك الصلاحية الكافية" }); } if (permission.Details == null || permission.Details?.Count == 0) { return(new CreateMoneyTransferDto { Error = "لم يتم تعريف هذا الاجراء او ليس لديك الصلاحية الكافية" }); } var moneyTransferSettings = permission.Details.Find(x => x.ToRole.Id == partner.Role.Id); if (moneyTransferSettings == null) { return new CreateMoneyTransferDto { Error = "لم يتم تعريف هذا الاجراء او ليس لديك الصلاحية الكافية" } } ; if (permission.Scope.Id == "CurOpOnly") { return(new CreateMoneyTransferDto { Error = "نظرا للقيود التي تم تعريفها على العملية لا يمكنك تنفيذ الاجراء" }); } if (permission.Scope.Id == "Exclusive" && partner.RefPartner.Id != currentId) { return(new CreateMoneyTransferDto { Error = "ليس لديك الصلاحية الكافية لنقل رصيد الى هذه الجهة" }); } var model = new CreateMoneyTransferDto { PartnerId = partner.Id, PartnerName = partner.Name, PartnerRoleName = partner.Role.Name, PartnerBalance = partner.Balance, TaxPercent = moneyTransferSettings.TaxPercent, BonusPercent = moneyTransferSettings.BonusPercent, BounsTaxPercent = moneyTransferSettings.BonusTaxPercent, FixedFactor = moneyTransferSettings.FixedFactor, Error = "N/A" }; if (amount <= 0) { return(model); } if (moneyTransferSettings.MaxValue > 0 && amount > moneyTransferSettings.MaxValue) { model.Error = $"المبلغ اكبر من الاحد الاعلى المسموح به {moneyTransferSettings.MaxValue.ToString("N0")} "; return(model); } if (moneyTransferSettings.MinValue > 0 && amount < moneyTransferSettings.MinValue) { model.Error = $"المبلغ اقل من الاحد الادنى المسموح به {moneyTransferSettings.MinValue.ToString("N0")} "; return(model); } var currParAccountd = _partnerManager.GetCurrentUserAccount(this.HttpContext); var currPart = _partnerManager.GetPartnerByAccount(currParAccountd); model.CreateorId = currPart.Id; model.CreateorName = currPart.Name; model.CreateorRoleId = currPart.Role.Id; model.CreateorRoleName = currPart.Role.Name; model.CreatorBalance = currPart.Balance - currPart.Reserved; if (moneyTransferSettings.CheckBalanceRequired) { if (amount > model.CreatorBalance) { model.Error = $"رصيدك غير كافي { model.CreatorBalance.ToString("N0") } "; return(model); } } var netAmount = amount * (moneyTransferSettings.FixedFactor <= 0 ? 1 : moneyTransferSettings.FixedFactor); var taxAmount = netAmount * (moneyTransferSettings.TaxPercent / 100); var bounsAmount = netAmount * (moneyTransferSettings.BonusPercent / 100); var bounsTaxAmount = bounsAmount * (moneyTransferSettings.BonusTaxPercent / 100); var recievedAmount = netAmount; model.Amount = amount; model.NetAmount = netAmount; model.TaxAmount = taxAmount; model.BounsAmount = bounsAmount; model.BounsTaxAmount = bounsTaxAmount; model.ReceivedAmount = recievedAmount; return(model); } else { return(new CreateMoneyTransferDto { Error = "غير موجود" }); } }
public IActionResult Confirmation(CreateMoneyTransferDto model) { if (model.Id > 0) { model.Error = "تم التحويل مسبقا"; return(View(model)); } var moneyTransfer = new MoneyTransfer(); moneyTransfer.Partner = _partnerManager.GetPartnerById(model.PartnerId); moneyTransfer.PayType.Id = model.PayTypeId; moneyTransfer.PayNo = model.PayNo; moneyTransfer.PayDate = model.PayDate; moneyTransfer.PayBank = model.PayBank; moneyTransfer.CreatedBy = _partnerManager.GetPartnerById(_partnerManager.GetCurrentUserId(this.HttpContext)); moneyTransfer.AccessChannel.Id = "web"; moneyTransfer.Amount = model.Amount; moneyTransfer.BillNo = model.BillNo; moneyTransfer.RequestNo = model.RequestNo; moneyTransfer.RequestAmount = model.RequestAmount; moneyTransfer.Note = model.Note; moneyTransfer.NetAmount = model.NetAmount; moneyTransfer.TaxPercent = model.TaxPercent; moneyTransfer.TaxAmount = model.TaxAmount; moneyTransfer.BonusPercent = model.BonusPercent; moneyTransfer.BounsAmount = model.BounsAmount; moneyTransfer.BounsTaxPercent = model.BounsTaxPercent; moneyTransfer.BounsTaxAmount = model.BounsTaxAmount; moneyTransfer.ReceivedAmount = model.ReceivedAmount; var result = new MoneyTransferRepo(_db, _partnerManager, _partnerActivity).Create(moneyTransfer); if (result.Success) { model.Id = result.AffectedCount; ModelState.SetModelValue("Id", new ValueProviderResult("" + result.AffectedCount + "", CultureInfo.InvariantCulture)); //CreatePDF(model.Id); moneyTransfer.NetAmount = Math.Round(moneyTransfer.NetAmount, 2); moneyTransfer.Partner.Balance = _partnerManager.GetBalance(moneyTransfer.Partner.Account); moneyTransfer.CreatedBy.Balance = _partnerManager.GetBalance(moneyTransfer.CreatedBy.Account); new NotificationRepo(_db, _partnerManager).SendNotification <MoneyTransfer>("MoneyTransfer.Create", result.AffectedCount, moneyTransfer); return(View(model)); } else { if (result.AffectedCount == -500) { model.Error = "لم يتم تعريف هذا الاجراء او ليس لديك الصلاحية الكافية"; } else if (result.AffectedCount == -501) { model.Error = $"رصيدك غير كافي { model.CreatorBalance.ToString("N0") } "; } else if (result.AffectedCount == -502) { model.Error = $"المبلغ اقل من الاحد الادنى المسموح به"; } if (result.AffectedCount == -503) { model.Error = $"المبلغ اكبر من الاحد الاعلى المسموح به"; } } return(View(model)); }