Exemple #1
0
 public bool AddNewPayment(Tbl_Payment payment)
 {
     try
     {
         if (_context.Tbl_Payment.Any(x => x.Payment_ID == payment.Payment_ID))
         {
             // user already exists
             Tbl_Payment ToBeUpdatedUser = _context.Tbl_Payment.First(x => x.Payment_ID == payment.Payment_ID);
             ToBeUpdatedUser.Description       = payment.Description;
             ToBeUpdatedUser.Customer_ID       = payment.Customer_ID;
             ToBeUpdatedUser.PaymentAmount     = payment.PaymentAmount;
             ToBeUpdatedUser.PaymentDate       = payment.PaymentDate;
             ToBeUpdatedUser.Payment_ID        = payment.Payment_ID;
             ToBeUpdatedUser.PreInvoiceNumber  = payment.PreInvoiceNumber;
             ToBeUpdatedUser.LastUpdateUser_ID = payment.LastUpdateUser_ID;
             ToBeUpdatedUser.LastUpdateTime    = payment.LastUpdateTime;
             ToBeUpdatedUser.LastUpdateDate    = payment.LastUpdateDate;
         }
         else
         {
             if (_context.Tbl_Payment.Any(x => x.Payment_ID == payment.Payment_ID))
             {
                 return(false);
             }
             Tbl_Payment ToBeInsertedUser = new Tbl_Payment();
             ToBeInsertedUser.Description       = payment.Description;
             ToBeInsertedUser.Customer_ID       = payment.Customer_ID;
             ToBeInsertedUser.PaymentAmount     = payment.PaymentAmount;
             ToBeInsertedUser.PaymentDate       = payment.PaymentDate;
             ToBeInsertedUser.Payment_ID        = payment.Payment_ID;
             ToBeInsertedUser.PreInvoiceNumber  = payment.PreInvoiceNumber;
             ToBeInsertedUser.LastUpdateUser_ID = payment.LastUpdateUser_ID;
             ToBeInsertedUser.LastUpdateTime    = payment.LastUpdateTime;
             ToBeInsertedUser.LastUpdateDate    = payment.LastUpdateDate;
             _context.Tbl_Payment.Add(ToBeInsertedUser);
         }
         if (_context.SaveChanges() > 0)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch (Exception ex)
     {
         return(false);
     }
 }
Exemple #2
0
        public int?Get_CreditBeforeTransaction(Tbl_Payment _Payment)
        {
            int _Credit = Get_WalletCreditWithUserID(_Payment.Payment_UserID);

            switch ((PaymentTitle)_Payment.Payment_TitleCodeID)
            {
            case PaymentTitle.Discharge:
                return(_Credit + _Payment.Payment_Cost);

            case PaymentTitle.ReturnToAccount:
                return(_Credit + _Payment.Payment_Cost);

            case PaymentTitle.ReturnToBankAccount:
                return(_Credit);

            case PaymentTitle.Charge:
                return(_Credit - _Payment.Payment_Cost);

            default:
                return(null);
            }
        }
Exemple #3
0
        public ActionResult Create(Model_UserClassPlanCreate model)
        {
            if (ModelState.IsValid)
            {
                var _User = db.Tbl_User.Where(x => x.User_Guid == model.UserGuid && x.User_IsDelete == false).SingleOrDefault();

                Tbl_UserClassPlan _UserClassPlan = db.Tbl_UserClassPlan.Where(x => x.UCP_UserID == _User.User_ID && x.UCP_CPID == model.ClassID).FirstOrDefault();

                if (_UserClassPlan != null && !_UserClassPlan.UCP_IsDelete)
                {
                    TempData["TosterState"]   = "info";
                    TempData["TosterType"]    = TosterType.Maseage;
                    TempData["TosterMassage"] = "کلاس مورد نظر قبلا خریداری شده است و هم اکنون فعال یا در انتظار تایید می باشد";

                    return(RedirectToAction("Details", "Class", new { area = "Dashboard", id = model.ClassID }));
                }
                ;

                var _ClassPlan = db.Tbl_ClassPlan.Where(x => x.CP_ID == model.ClassID).SingleOrDefault();

                if (_ClassPlan != null)
                {
                    bool        smsResult = true;
                    Tbl_Payment _Payment  = Purchase(_User, _ClassPlan.CP_CostPerSession, ProductType.Class, out bool walletResult, ref smsResult);

                    if (_Payment != null)
                    {
                        db.Tbl_Payment.Add(_Payment);

                        if (_UserClassPlan != null)
                        {
                            _UserClassPlan.UCP_IsDelete     = false;
                            _UserClassPlan.UCP_ModifiedDate = DateTime.Now;
                            _UserClassPlan.Tbl_Payment      = _Payment;

                            db.Entry(_UserClassPlan).State = EntityState.Modified;
                        }
                        else
                        {
                            _UserClassPlan = new Tbl_UserClassPlan()
                            {
                                UCP_Guid         = Guid.NewGuid(),
                                UCP_UserID       = _User.User_ID,
                                UCP_CPID         = model.ClassID,
                                Tbl_Payment      = _Payment,
                                UCP_IsActive     = true,
                                UCP_CreationDate = DateTime.Now,
                                UCP_ModifiedDate = DateTime.Now
                            };

                            db.Tbl_UserClassPlan.Add(_UserClassPlan);
                        }

                        _ClassPlan.CP_Capacity -= 1;

                        db.Entry(_ClassPlan).State = EntityState.Modified;

                        if (Convert.ToBoolean(db.SaveChanges() > 0))
                        {
                            if (_ClassPlan.CP_Capacity <= 0)
                            {
                                TempData["TosterState"]   = "warning";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "ظرفیت کلاس مورد نظر پر شده است";
                            }
                            else
                            {
                                TempData["TosterState"]   = "success";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "ثبت نام با موفقیت انجام شد";
                            }

                            return(RedirectToAction("Details", "Class", new { area = "Dashboard", id = model.ClassID }));
                        }

                        TempData["TosterState"]   = "error";
                        TempData["TosterType"]    = TosterType.Maseage;
                        TempData["TosterMassage"] = "ثبت نام با موفقیت انجام نشد";

                        return(RedirectToAction("Details", "Class", new { area = "Dashboard", id = model.ClassID }));
                    }
                    else
                    {
                        TempData["TosterState"]   = "error";
                        TempData["TosterType"]    = TosterType.Maseage;
                        TempData["TosterMassage"] = "ثبت نام با موفقیت انجام نشد";

                        return(RedirectToAction("Details", "Class", new { area = "Dashboard", id = model.ClassID }));
                    }
                }
                else
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
            }

            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
        }
Exemple #4
0
        private Tbl_Payment Purchase(Tbl_User user, int cost, ProductType type, out bool walletResult, ref bool smsResult)
        {
            Tbl_Payment _Payment;
            int         credit = new Rep_Wallet().Get_WalletCreditWithUserID(user.User_ID);

            if (credit + 30000 < cost)
            {
                if (new SMSPortal().SendServiceable(user.User_Mobile, ".", "", "", user.User_FirstName + " " + user.User_lastName, SMSTemplate.Charge) != "ارسال به مخابرات")
                {
                    smsResult = false;
                }

                walletResult = false;
            }
            else
            {
                walletResult = true;
            }

            switch (type)
            {
            case ProductType.ExamInPerson:

                _Payment = new Tbl_Payment
                {
                    Payment_Guid          = Guid.NewGuid(),
                    Payment_UserID        = user.User_ID,
                    Payment_TitleCodeID   = (int)PaymentTitle.ExamInPerson,
                    Payment_WayCodeID     = (int)PaymentWay.Internet,
                    Payment_StateCodeID   = (int)PaymentState.Confirmed,
                    Payment_Cost          = cost,
                    Payment_Discount      = 0,
                    Payment_RemaingWallet = credit - cost,
                    Payment_TrackingToken = "ESL-" + new Random().Next(100000, 999999).ToString(),
                    Payment_CreateDate    = DateTime.Now,
                    Payment_ModifiedDate  = DateTime.Now
                };

                return(_Payment);

            case ProductType.ExamRemotely:

                return(null);

            case ProductType.Workshop:

                _Payment = new Tbl_Payment
                {
                    Payment_Guid          = Guid.NewGuid(),
                    Payment_UserID        = user.User_ID,
                    Payment_TitleCodeID   = (int)PaymentTitle.Workshop,
                    Payment_WayCodeID     = (int)PaymentWay.Internet,
                    Payment_StateCodeID   = (int)PaymentState.Confirmed,
                    Payment_Cost          = cost,
                    Payment_Discount      = 0,
                    Payment_RemaingWallet = credit - cost,
                    Payment_TrackingToken = "ESL-" + new Random().Next(100000, 999999).ToString(),
                    Payment_CreateDate    = DateTime.Now,
                    Payment_ModifiedDate  = DateTime.Now
                };

                return(_Payment);

            case ProductType.Class:

                _Payment = new Tbl_Payment
                {
                    Payment_Guid          = Guid.NewGuid(),
                    Payment_UserID        = user.User_ID,
                    Payment_TitleCodeID   = (int)PaymentTitle.Class,
                    Payment_WayCodeID     = (int)PaymentWay.Internet,
                    Payment_StateCodeID   = (int)PaymentState.Confirmed,
                    Payment_Cost          = cost,
                    Payment_Discount      = 0,
                    Payment_RemaingWallet = credit,
                    Payment_TrackingToken = "ESL-" + new Random().Next(100000, 999999).ToString(),
                    Payment_CreateDate    = DateTime.Now,
                    Payment_ModifiedDate  = DateTime.Now
                };

                return(_Payment);

            default:
                return(null);
            }
        }
Exemple #5
0
        public ActionResult Pay(Model_PurchasePay model)
        {
            if (ModelState.IsValid)
            {
                var _User = db.Tbl_User.Where(x => x.User_IsDelete == false && x.User_Mobile == User.Identity.Name).SingleOrDefault();

                if (_User != null)
                {
                    switch ((ProductType)model.Type)
                    {
                    case ProductType.Workshop:

                        if (db.Tbl_UserWorkshopPlan.Where(x => x.UWP_UserID == _User.User_ID && x.UWP_WPID == model.ID && x.UWP_IsDelete == false).FirstOrDefault() != null)
                        {
                            TempData["TosterState"]   = "info";
                            TempData["TosterType"]    = TosterType.Maseage;
                            TempData["TosterMassage"] = "کارگاه مورد نظر قبلا خریداری شده است";

                            return(RedirectToAction("Index"));
                        }
                        ;

                        var _WorkshopPlan = db.Tbl_WorkshopPlan.Where(x => x.WP_ID == model.ID).SingleOrDefault();

                        if (_WorkshopPlan != null)
                        {
                            if (_WorkshopPlan.WP_Capacity <= 0)
                            {
                                TempData["TosterState"]   = "info";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "ظرفیت کارگاه مورد نظر پر شده است";

                                return(RedirectToAction("Index"));
                            }

                            bool        smsResult = true;
                            Tbl_Payment _Payment  = Purchase(_User, _WorkshopPlan.WP_Cost, (ProductType)model.Type, out bool walletResult, ref smsResult);

                            if (_Payment != null)
                            {
                                if (!walletResult)
                                {
                                    TempData["TosterState"]   = "error";
                                    TempData["TosterType"]    = TosterType.Maseage;
                                    TempData["TosterMassage"] = "موجودی کیف پول شما کافی نمی باشد";

                                    return(RedirectToAction("Index"));
                                }

                                db.Tbl_Payment.Add(_Payment);

                                Tbl_Wallet _Wallet = db.Tbl_Wallet.Where(x => x.Wallet_UserID == _Payment.Payment_UserID).SingleOrDefault();
                                _Wallet.Wallet_Credit       = _Payment.Payment_RemaingWallet - _Payment.Payment_Cost;
                                _Wallet.Wallet_ModifiedDate = DateTime.Now;

                                db.Entry(_Wallet).State = EntityState.Modified;

                                Tbl_UserWorkshopPlan _UserWorkshopPlan = new Tbl_UserWorkshopPlan()
                                {
                                    UWP_Guid         = Guid.NewGuid(),
                                    UWP_UserID       = _User.User_ID,
                                    UWP_WPID         = model.ID,
                                    UWP_IsActive     = true,
                                    Tbl_Payment      = _Payment,
                                    UWP_CreationDate = DateTime.Now,
                                    UWP_ModifiedDate = DateTime.Now
                                };

                                db.Tbl_UserWorkshopPlan.Add(_UserWorkshopPlan);

                                _WorkshopPlan.WP_Capacity -= 1;

                                db.Entry(_WorkshopPlan).State = EntityState.Modified;

                                if (Convert.ToBoolean(db.SaveChanges() > 0))
                                {
                                    if (!smsResult)
                                    {
                                        TempData["TosterState"]   = "warning";
                                        TempData["TosterType"]    = TosterType.Maseage;
                                        TempData["TosterMassage"] = "خطا در ارسال پیامک";
                                    }
                                    else
                                    {
                                        TempData["TosterState"]   = "success";
                                        TempData["TosterType"]    = TosterType.Maseage;
                                        TempData["TosterMassage"] = "کارگاه مورد نظر با موفقیت خریداری شد";
                                    }

                                    return(RedirectToAction("Index"));
                                }

                                TempData["TosterState"]   = "error";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "کارگاه مورد نظر با موفقیت خریداری نشد";
                            }
                            else
                            {
                                TempData["TosterState"]   = "error";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "کارگاه مورد نظر با موفقیت خریداری نشد";
                            }

                            return(RedirectToAction("Index"));
                        }
                        else
                        {
                            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                        }

                    case ProductType.Class:

                        Tbl_UserClassPlan _UserClassPlan = db.Tbl_UserClassPlan.Where(x => x.UCP_UserID == _User.User_ID && x.UCP_CPID == model.ID).FirstOrDefault();

                        if (_UserClassPlan != null && !_UserClassPlan.UCP_IsDelete)
                        {
                            TempData["TosterState"]   = "info";
                            TempData["TosterType"]    = TosterType.Maseage;
                            TempData["TosterMassage"] = "کلاس مورد نظر قبلا خریداری شده است و هم اکنون فعال یا در انتظار تایید می باشد";

                            return(RedirectToAction("Index"));
                        }
                        ;

                        var _ClassPlan = db.Tbl_ClassPlan.Where(x => x.CP_ID == model.ID).SingleOrDefault();

                        if (_ClassPlan != null)
                        {
                            if (_ClassPlan.CP_Capacity <= 0)
                            {
                                TempData["TosterState"]   = "info";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "ظرفیت کلاس مورد نظر پر شده است";

                                return(RedirectToAction("Index"));
                            }

                            bool        smsResult = true;
                            Tbl_Payment _Payment  = Purchase(_User, _ClassPlan.CP_CostPerSession, (ProductType)model.Type, out bool walletResult, ref smsResult);

                            if (_Payment != null)
                            {
                                db.Tbl_Payment.Add(_Payment);

                                if (_UserClassPlan != null)
                                {
                                    _UserClassPlan.UCP_IsDelete     = false;
                                    _UserClassPlan.UCP_ModifiedDate = DateTime.Now;
                                    _UserClassPlan.Tbl_Payment      = _Payment;

                                    db.Entry(_UserClassPlan).State = EntityState.Modified;
                                }
                                else
                                {
                                    _UserClassPlan = new Tbl_UserClassPlan()
                                    {
                                        UCP_Guid         = Guid.NewGuid(),
                                        UCP_UserID       = _User.User_ID,
                                        UCP_CPID         = model.ID,
                                        Tbl_Payment      = _Payment,
                                        UCP_CreationDate = DateTime.Now,
                                        UCP_ModifiedDate = DateTime.Now
                                    };

                                    db.Tbl_UserClassPlan.Add(_UserClassPlan);
                                }

                                _ClassPlan.CP_Capacity -= 1;

                                db.Entry(_ClassPlan).State = EntityState.Modified;

                                if (Convert.ToBoolean(db.SaveChanges() > 0))
                                {
                                    if (!smsResult)
                                    {
                                        TempData["TosterState"]   = "warning";
                                        TempData["TosterType"]    = TosterType.Maseage;
                                        TempData["TosterMassage"] = "خطا در ارسال پیامک";
                                    }
                                    else
                                    {
                                        TempData["TosterState"]   = "success";
                                        TempData["TosterType"]    = TosterType.Maseage;
                                        TempData["TosterMassage"] = "درخواست خرید کلاس مورد نظر با موفقیت ارسال شد";
                                    }

                                    return(RedirectToAction("Index"));
                                }

                                TempData["TosterState"]   = "error";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "درخواست خرید کلاس مورد نظر با موفقیت ارسال نشد";
                            }
                            else
                            {
                                TempData["TosterState"]   = "error";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "درخواست خرید کلاس مورد نظر با موفقیت ارسال نشد";
                            }

                            return(RedirectToAction("Index"));
                        }
                        else
                        {
                            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                        }

                    case ProductType.ExamInPerson:

                        if (db.Tbl_UserExamInPersonPlan.Where(x => x.UEIPP_UserID == _User.User_ID && x.UEIPP_EIPPID == model.ID && x.UEIPP_IsDelete == false).FirstOrDefault() != null)
                        {
                            TempData["TosterState"]   = "info";
                            TempData["TosterType"]    = TosterType.Maseage;
                            TempData["TosterMassage"] = "آزمون مورد نظر قبلا خریداری شده است";

                            return(RedirectToAction("Index"));
                        }
                        ;

                        var _ExamInPersonPlan = db.Tbl_ExamInPersonPlan.Where(x => x.EIPP_ID == model.ID).SingleOrDefault();

                        if (_ExamInPersonPlan != null)
                        {
                            if (_ExamInPersonPlan.EIPP_Capacity <= 0)
                            {
                                TempData["TosterState"]   = "info";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "ظرفیت آزمون مورد نظر پر شده است";

                                return(RedirectToAction("Index"));
                            }

                            bool        smsResult = true;
                            Tbl_Payment _Payment  = Purchase(_User, _ExamInPersonPlan.EIPP_Cost, (ProductType)model.Type, out bool walletResult, ref smsResult);

                            if (_Payment != null)
                            {
                                if (!walletResult)
                                {
                                    TempData["TosterState"]   = "error";
                                    TempData["TosterType"]    = TosterType.Maseage;
                                    TempData["TosterMassage"] = "موجودی کیف پول شما کافی نمی باشد";

                                    return(RedirectToAction("Index"));
                                }

                                db.Tbl_Payment.Add(_Payment);

                                Tbl_Wallet _Wallet = db.Tbl_Wallet.Where(x => x.Wallet_UserID == _Payment.Payment_UserID).SingleOrDefault();
                                _Wallet.Wallet_Credit       = _Payment.Payment_RemaingWallet - _Payment.Payment_Cost;
                                _Wallet.Wallet_ModifiedDate = DateTime.Now;

                                db.Entry(_Wallet).State = EntityState.Modified;

                                Tbl_UserExamInPersonPlan _UserExamInPersonPlan = new Tbl_UserExamInPersonPlan()
                                {
                                    UEIPP_Guid         = Guid.NewGuid(),
                                    UEIPP_UserID       = _User.User_ID,
                                    UEIPP_EIPPID       = model.ID,
                                    UEIPP_SeatNumber   = new Random().Next(10000, 99999),
                                    Tbl_Payment        = _Payment,
                                    UEIPP_CreationDate = DateTime.Now,
                                    UEIPP_ModifiedDate = DateTime.Now
                                };

                                db.Tbl_UserExamInPersonPlan.Add(_UserExamInPersonPlan);

                                _ExamInPersonPlan.EIPP_Capacity -= 1;

                                db.Entry(_ExamInPersonPlan).State = EntityState.Modified;

                                if (Convert.ToBoolean(db.SaveChanges() > 0))
                                {
                                    if (!smsResult)
                                    {
                                        TempData["TosterState"]   = "warning";
                                        TempData["TosterType"]    = TosterType.Maseage;
                                        TempData["TosterMassage"] = "خطا در ارسال پیامک";
                                    }
                                    else
                                    {
                                        TempData["TosterState"]   = "success";
                                        TempData["TosterType"]    = TosterType.Maseage;
                                        TempData["TosterMassage"] = "آزمون مورد نظر با موفقیت خریداری شد";
                                    }

                                    return(RedirectToAction("Index"));
                                }

                                TempData["TosterState"]   = "error";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "آزمون مورد نظر با موفقیت خریداری نشد";
                            }
                            else
                            {
                                TempData["TosterState"]   = "error";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "آزمون مورد نظر با موفقیت خریداری نشد";
                            }

                            return(RedirectToAction("Index"));
                        }
                        else
                        {
                            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                        }

                    case ProductType.ExamRemotely:

                        //if (db.Tbl_UserExamRemotelyPlan.Where(x => x.UERP_UserID == _User.User_ID && x.UERP_ERPID == model.ID && x.UERP_IsDelete == false).FirstOrDefault() != null)
                        //{
                        //    TempData["TosterState"] = "info";
                        //    TempData["TosterType"] = TosterType.Maseage;
                        //    TempData["TosterMassage"] = "آزمون مورد نظر قبلا خریداری شده است";

                        //    return RedirectToAction("Index");
                        //};

                        //var _ExamRemotelyPlan = db.Tbl_ExamRemotelyPlan.Where(x => x.ERP_ID == model.ID).SingleOrDefault();

                        //if (_ExamRemotelyPlan != null)
                        //{
                        //    if (_ExamRemotelyPlan.ERP_Capacity <= 0)
                        //    {
                        //        TempData["TosterState"] = "info";
                        //        TempData["TosterType"] = TosterType.Maseage;
                        //        TempData["TosterMassage"] = "ظرفیت آزمون مورد نظر پر شده است";

                        //        return RedirectToAction("Index");
                        //    }

                        //    bool smsResult = true;
                        //    Tbl_Payment _Payment = Purchase(_User, _ExamRemotelyPlan.cost, (ProductType)model.Type, out bool walletResult, ref smsResult);

                        //    if (_Payment != null)
                        //    {
                        //        if (!walletResult)
                        //        {
                        //            TempData["TosterState"] = "error";
                        //            TempData["TosterType"] = TosterType.Maseage;
                        //            TempData["TosterMassage"] = "موجودی کیف پول شما کافی نمی باشد";

                        //            return RedirectToAction("Index");
                        //        }

                        //        db.Tbl_Payment.Add(_Payment);

                        //        Tbl_Wallet _Wallet = db.Tbl_Wallet.Where(x => x.Wallet_UserID == _Payment.Payment_UserID).SingleOrDefault();
                        //        _Wallet.Wallet_Credit = _Payment.Payment_RemaingWallet - _Payment.Payment_Cost;
                        //        _Wallet.Wallet_ModifiedDate = DateTime.Now;

                        //        Tbl_UserExamRemotelyPlan _UserExamRemotelyPlan = new Tbl_UserExamRemotelyPlan()
                        //        {
                        //            UCP_Guid = Guid.NewGuid(),
                        //            UCP_UserID = _User.User_ID,
                        //            UCP_CPID = model.ID,
                        //            Tbl_Payment = _Payment,
                        //            UCP_CreationDate = DateTime.Now,
                        //            UCP_ModifiedDate = DateTime.Now
                        //        };

                        //        db.Tbl_UserExamRemotelyPlan.Add(_UserExamRemotelyPlan);

                        //        _ExamRemotelyPlan.ERP_Capacity -= 1;

                        //        db.Entry(_ExamRemotelyPlan).State = EntityState.Modified;

                        //        if (Convert.ToBoolean(db.SaveChanges() > 0))
                        //        {
                        //            if (!smsResult)
                        //            {
                        //                TempData["TosterState"] = "warning";
                        //                TempData["TosterType"] = TosterType.Maseage;
                        //                TempData["TosterMassage"] = "خطا در ارسال پیامک";
                        //            }
                        //            else
                        //            {
                        //                TempData["TosterState"] = "success";
                        //                TempData["TosterType"] = TosterType.Maseage;
                        //                TempData["TosterMassage"] = "آزمون مورد نظر با موفقیت خریداری شد";
                        //            }

                        //            return RedirectToAction("Index");
                        //        }

                        //        TempData["TosterState"] = "error";
                        //        TempData["TosterType"] = TosterType.Maseage;
                        //        TempData["TosterMassage"] = "آزمون مورد نظر با موفقیت خریداری نشد";
                        //    }
                        //    else
                        //    {
                        //        TempData["TosterState"] = "error";
                        //        TempData["TosterType"] = TosterType.Maseage;
                        //        TempData["TosterMassage"] = "آزمون مورد نظر با موفقیت خریداری نشد";
                        //    }

                        //    return RedirectToAction("Index");
                        //}
                        //else
                        //{
                        //    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                        //}

                        break;

                    default:
                        return(HttpNotFound());
                    }
                }

                return(HttpNotFound());
            }

            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
        }
        public ActionResult Create(Model_UserExamInPersonPlanCreate model)
        {
            if (ModelState.IsValid)
            {
                var _User = db.Tbl_User.Where(x => x.User_Guid == model.UserGuid && x.User_IsDelete == false).SingleOrDefault();

                if (db.Tbl_UserExamInPersonPlan.Where(x => x.UEIPP_UserID == _User.User_ID && x.UEIPP_EIPPID == model.ExamID && x.UEIPP_IsDelete == false).FirstOrDefault() != null)
                {
                    TempData["TosterState"]   = "info";
                    TempData["TosterType"]    = TosterType.Maseage;
                    TempData["TosterMassage"] = "آزمون مورد نظر قبلا خریداری شده است";

                    return(RedirectToAction("Details", "ExamInPerson", new { area = "Dashboard", id = model.ExamID }));
                }
                ;

                var _ExamInPersonPlan = db.Tbl_ExamInPersonPlan.Where(x => x.EIPP_ID == model.ExamID).SingleOrDefault();

                if (_ExamInPersonPlan != null)
                {
                    bool        smsResult = true;
                    Tbl_Payment _Payment  = Purchase(_User, _ExamInPersonPlan.EIPP_Cost, ProductType.ExamInPerson, out bool walletResult, ref smsResult);

                    if (_Payment != null)
                    {
                        db.Tbl_Payment.Add(_Payment);

                        Tbl_Wallet _Wallet = db.Tbl_Wallet.Where(x => x.Wallet_UserID == _Payment.Payment_UserID).SingleOrDefault();
                        _Wallet.Wallet_Credit       = _Payment.Payment_RemaingWallet - _Payment.Payment_Cost;
                        _Wallet.Wallet_ModifiedDate = DateTime.Now;

                        db.Entry(_Wallet).State = EntityState.Modified;

                        Tbl_UserExamInPersonPlan _UserExamInPersonPlan = new Tbl_UserExamInPersonPlan
                        {
                            UEIPP_Guid         = Guid.NewGuid(),
                            UEIPP_UserID       = new Rep_User().Get_UserIDWithGUID(model.UserGuid),
                            UEIPP_EIPPID       = model.ExamID,
                            UEIPP_SeatNumber   = 0,
                            Tbl_Payment        = _Payment,
                            UEIPP_IsActive     = true,
                            UEIPP_CreationDate = DateTime.Now,
                            UEIPP_ModifiedDate = DateTime.Now
                        };

                        db.Tbl_UserExamInPersonPlan.Add(_UserExamInPersonPlan);

                        _ExamInPersonPlan.EIPP_Capacity -= 1;

                        db.Entry(_ExamInPersonPlan).State = EntityState.Modified;

                        if (Convert.ToBoolean(db.SaveChanges() > 0))
                        {
                            //if (_ExamInPersonPlan.EIPP_Capacity <= 0)
                            //{
                            //    TempData["TosterState"] = "warning";
                            //    TempData["TosterType"] = TosterType.Maseage;
                            //    TempData["TosterMassage"] = "ظرفیت آزمون مورد نظر پر شده است";

                            //    return RedirectToAction("Details", "ExamInPerson", new { area = "Dashboard", id = model.ExamID });
                            //}

                            if (!walletResult && !smsResult)
                            {
                                TempData["TosterState"]   = "warning";
                                TempData["TosterType"]    = TosterType.WithTitel;
                                TempData["TosterTitel"]   = "خطا در ارسال پیامک";
                                TempData["TosterMassage"] = "کمبود موجودی کیف پول کاربر";
                            }
                            else if (!walletResult)
                            {
                                TempData["TosterState"]   = "warning";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "کمبود موجودی کیف پول کاربر";
                            }
                            else if (!smsResult)
                            {
                                TempData["TosterState"]   = "warning";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "خطا در ارسال پیامک";
                            }
                            else
                            {
                                TempData["TosterState"]   = "success";
                                TempData["TosterType"]    = TosterType.Maseage;
                                TempData["TosterMassage"] = "ثبت نام با موفقیت انجام شد";
                            }

                            return(RedirectToAction("Details", "ExamInPerson", new { area = "Dashboard", id = model.ExamID }));
                        }

                        TempData["TosterState"]   = "error";
                        TempData["TosterType"]    = TosterType.Maseage;
                        TempData["TosterMassage"] = "ثبت نام با موفقیت انجام نشد";

                        return(RedirectToAction("Details", "ExamInPerson", new { area = "Dashboard", id = model.ExamID }));
                    }
                    else
                    {
                        TempData["TosterState"]   = "error";
                        TempData["TosterType"]    = TosterType.Maseage;
                        TempData["TosterMassage"] = "ثبت نام با موفقیت انجام نشد";

                        return(RedirectToAction("Details", "ExamInPerson", new { area = "Dashboard", id = model.ExamID }));
                    }
                }
                else
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
            }

            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
        }
        public ActionResult SubmitPayment(DataSourceRequest command, PaymentListModel model)
        {
            HttpSessionStateBase session = HttpContext.Session;

            try
            {
                Tbl_Payment tu = new Tbl_Payment();
                tu.Customer_ID      = model.Customer_ID;
                tu.Description      = model.Description;
                tu.PaymentAmount    = model.PaymentAmount;
                tu.PaymentDate      = model.PaymentDate;
                tu.Payment_ID       = model.Payment_ID;
                tu.PreInvoiceNumber = model.PreInvoiceNumber;


                tu.LastUpdateUser_ID = Convert.ToInt32(session["UserID"]);
                tu.LastUpdateDate    = DateTime.Now.ToString("yyyy-MM-dd");
                tu.LastUpdateTime    = DateTime.Now.ToString("HH:mm");

                if (_accService.AddNewPayment(tu))
                {
                    var gridModel = new DataSourceResult
                    {
                        ExtraData = new PaymentModel
                        {
                            Message      = Message.OperationSuccessful,
                            MessageColor = "green"
                        },
                        Total = 1
                    };
                    return(Json(gridModel));
                }
                else
                {
                    var gridModel = new DataSourceResult
                    {
                        ExtraData = new PaymentModel
                        {
                            Message      = Message.OperationUnsuccessful,
                            MessageColor = "red"
                        },
                        Total = 1
                    };
                    return(Json(gridModel));
                }
            }
            catch (Exception ex)
            {
                var gridModel = new DataSourceResult
                {
                    ExtraData = new PaymentModel
                    {
                        Message      = Message.OperationUnsuccessful,
                        MessageColor = "red"
                    },
                    Total = 1
                };
                return(Json(gridModel));
            }
            //return "";
        }
Exemple #8
0
        public ActionResult Create(Model_UserClassPlanPresenceCreate model)
        {
            if (ModelState.IsValid)
            {
                int userClassId = (int)TempData["UserClassPlanID"];

                var _UserClass = db.Tbl_UserClassPlan.Where(x => x.UCP_IsDelete == false && x.UCP_ID == userClassId).SingleOrDefault();

                var _Wallet = db.Tbl_Wallet.Where(x => x.Wallet_UserID == _UserClass.UCP_UserID).SingleOrDefault();
                _Wallet.Wallet_Credit = _Wallet.Wallet_Credit - _UserClass.Tbl_ClassPlan.CP_CostPerSession + model.Discount;

                Tbl_Payment _Payment = new Tbl_Payment()
                {
                    Payment_Guid          = Guid.NewGuid(),
                    Payment_UserID        = _UserClass.UCP_UserID,
                    Payment_TitleCodeID   = (int)PaymentTitle.Presence,
                    Payment_WayCodeID     = (int)PaymentWay.InPerson,
                    Payment_StateCodeID   = (int)PaymentState.Confirmed,
                    Payment_Cost          = _UserClass.Tbl_ClassPlan.CP_CostPerSession,
                    Payment_Discount      = model.Discount,
                    Payment_RemaingWallet = _Wallet.Wallet_Credit,
                    Payment_TrackingToken = "ESL-" + new Random().Next(100000, 999999).ToString(),
                    Payment_CreateDate    = DateTime.Now,
                    Payment_ModifiedDate  = DateTime.Now
                };

                Tbl_UserClassPlanPresence _UserClassPlanPresence = new Tbl_UserClassPlanPresence
                {
                    UCPP_Guid         = Guid.NewGuid(),
                    UCPP_UCPID        = userClassId,
                    UCPP_IsPresent    = model.Presence,
                    UCPP_Date         = DateConverter.ToGeorgianDateTime(model.Date),
                    UCPP_CreationDate = DateTime.Now,
                    UCPP_ModifiedDate = DateTime.Now
                };

                _UserClassPlanPresence.Tbl_Payment = _Payment;

                db.Tbl_Payment.Add(_Payment);
                db.Tbl_UserClassPlanPresence.Add(_UserClassPlanPresence);
                db.Entry(_Wallet).State = EntityState.Modified;

                if (Convert.ToBoolean(db.SaveChanges() > 0))
                {
                    TempData["TosterState"]   = "success";
                    TempData["TosterType"]    = TosterType.Maseage;
                    TempData["TosterMassage"] = "حضور با موفقیت ثبت شد";

                    return(RedirectToAction("Details", new { id = userClassId }));
                }
                else
                {
                    TempData["TosterState"]   = "error";
                    TempData["TosterType"]    = TosterType.Maseage;
                    TempData["TosterMassage"] = "حضور با موفقیت ثبت نشد";

                    return(RedirectToAction("Details", new { id = userClassId }));
                }
            }

            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
        }