partial void DeletetOrder(tOrder instance);
 partial void InserttOrder(tOrder instance);
 partial void UpdatetOrder(tOrder instance);
		private void detach_tOrders(tOrder entity)
		{
			this.SendPropertyChanging();
			entity.tCoupon = null;
		}
		private void attach_tOrders(tOrder entity)
		{
			this.SendPropertyChanging();
			entity.tCoupon = this;
		}
 public void InsertOrUpdate(tOrder order)
 {
     if (order.IDOrder == default(int)) {
         // New entity
         context.tOrders.InsertOnSubmit(order);
     } else {
         // Existing entity
         tOrder orderToUpdate = Find(order.IDOrder);
         if (orderToUpdate != null && orderToUpdate.IDOrder > 0) {
             orderToUpdate.AmountPaid = order.AmountPaid;
             orderToUpdate.BuyerNotes = order.BuyerNotes;
             orderToUpdate.IDCoupon = order.IDCoupon;
             orderToUpdate.IDDeal = order.IDDeal;
             orderToUpdate.IDUserBought = order.IDUserBought;
             orderToUpdate.MobilePhoneNo = order.MobilePhoneNo;
             orderToUpdate.OrderNotes = order.OrderNotes;
             orderToUpdate.OrderStatus = order.OrderStatus;
             orderToUpdate.PaymentType = order.PaymentType;
             orderToUpdate.Quantity = order.Quantity;
             orderToUpdate.RefundStatus = order.RefundStatus;
             orderToUpdate.Options = order.OrderNotes;
             orderToUpdate.ReferrerAddress = order.ReferrerAddress;
         }
     }
 }
Exemple #7
0
        public ActionResult SMSMessageApprove(PaymentResultModel inputModel)
        {
            int UserID = (int)MembershipHelper.GetCurrenUser().ProviderUserKey;
            PaymentResultModel resModel = new PaymentResultModel();
            resModel = inputModel;
            tPaymentMessage msg = _paymentMessageRepository.Find(inputModel.SMSUniqueID);
            if (msg == null) {
                resModel.PaymentStatus = false;
                resModel.StatusMessage += "SMS Code not found :" + msg.UniqueID;
                ModelState.AddModelError("SMSStatus", resModel.StatusMessage);
                return View("MakePayment", inputModel);
            }
            if (inputModel.PaymentCode != msg.SMSCode) {
                resModel.PaymentStatus = false;
                resModel.StatusMessage += "SMS Code is wrong :" + msg.UniqueID;
                ModelState.AddModelError("SMSStatus", resModel.StatusMessage);
                return View("MakePayment", inputModel);
            }

            tDeal currentDeal = _dealRepository.Find(inputModel.IDDeal);
            ValidateDeal(currentDeal);
            if (!ModelState.IsValid) {
                resModel.PaymentStatus = false;
                resModel.StatusMessage += "Deal Error";
                ModelState.AddModelError("SMSStatus", resModel.StatusMessage);
                return View("MakePayment", inputModel);
            }

            List<tCoupon> couponsForThisPartner = _couponRepository.GetListByIDPartnerNotUsedAndNotConsumed(currentDeal.IDPartner);
            if (couponsForThisPartner == null || couponsForThisPartner.Count == 0) {
                resModel.PaymentStatus = false;
                resModel.StatusMessage += "Coupon info could't be found, please contact web admin";
                ModelState.AddModelError("SMSStatus", resModel.StatusMessage);
                return View("MakePayment", inputModel);
            }
            tCoupon currCouponToUse = couponsForThisPartner[0];
            resModel.CouponCode = currCouponToUse.CustomCode;
            currCouponToUse.CouponStatus = (int)Enums.enmCouponStatus.Used;
            decimal AmountToBePaid = CalculateAmountToBePaid(currentDeal, inputModel.Quantity);
            if (AmountToBePaid <= 0) {
                resModel.PaymentStatus = false;
                resModel.StatusMessage += "Please verify amount to be paid for this deal!";
                ModelState.AddModelError("SMSStatus", resModel.StatusMessage);
                return View("MakePayment", inputModel);
            }

            resModel.StatusMessage = "Your Order has been approved succesfully!";
            resModel.PaymentStatus = true;
            _couponRepository.InsertOrUpdate(currCouponToUse);

            tOrder order = new tOrder();
            order.AmountPaid = AmountToBePaid;
            order.BuyerNotes = CommonUtils.Instance.ShoppingCart.BuyerNotes;
            order.IDCoupon = currCouponToUse.IDCoupon;
            order.IDDeal = currentDeal.IDDeal;

            order.IDUserBought = UserID;
            order.MobilePhoneNo = CommonUtils.Instance.ShoppingCart.MobilePhone;
            order.OrderNotes = CommonUtils.Instance.ShoppingCart.OrderNotes;
            order.OrderStatus = (int)Enums.enmOrderStatus.ToBePaid;
            order.PaymentType = (int)Enums.enmPaymentType.BeelineKG;
            order.Quantity = CommonUtils.Instance.ShoppingCart.Quantity;
            order.RefundStatus = (int)Enums.enmRefundStatus.OrderSuccessful;
            _orderRepository.InsertOrUpdate(order);

            if (resModel.PaymentStatus) {
                _orderRepository.Save();
                _couponRepository.Save();
            }

            return View(resModel);
        }
Exemple #8
0
        public ActionResult MakePayment(tDealBuyModel currentCheckoutData)
        {
            currentCheckoutData.Quantity = CommonUtils.Instance.ShoppingCart.Quantity;
            currentCheckoutData.BuyerNotes = CommonUtils.Instance.ShoppingCart.BuyerNotes;
            currentCheckoutData.MobilePhone = CommonUtils.Instance.ShoppingCart.MobilePhone;

            PaymentResultModel resModel = new PaymentResultModel();
            resModel.IDDeal = currentCheckoutData.IDDeal;
            int UserID = (int)MembershipHelper.GetCurrenUser().ProviderUserKey;
            tOrder ordData = _orderRepository.GetOrderByIDDealIDUser(currentCheckoutData.IDDeal, UserID);
            tDeal currentDeal = _dealRepository.Find(currentCheckoutData.IDDeal);
            tDealBuyModel buyModel = GetBuyModel(currentDeal);
            if (ordData != null && ordData.tCoupon.ConsumeStatus == (int)Enums.enmCouponConsumeStatus.NotConsumed) {
                resModel.PaymentStatus = false;
                resModel.StatusMessage += "You have already bought this deal, please use it's coupon and try again";
                ModelState.AddModelError("Error", resModel.StatusMessage);

                return View("Checkout", buyModel);
            }

            ValidateDeal(currentDeal);
            if (!ModelState.IsValid) {
                resModel.PaymentStatus = false;
                resModel.StatusMessage += "Deal Error";
                ModelState.AddModelError("Error", resModel.StatusMessage);

                return View("Checkout", buyModel);
            }
            if (currentCheckoutData.Quantity < currentDeal.QuantityMinimum) {
                resModel.PaymentStatus = false;
                resModel.StatusMessage += "Minimum Quantity allowed :" + currentDeal.QuantityMinimum;
                ModelState.AddModelError("Error", resModel.StatusMessage);
                return View("Checkout", buyModel);
            }

            List<tCoupon> couponsForThisPartner = _couponRepository.GetListByIDPartnerNotUsedAndNotConsumed(currentDeal.IDPartner);
            if (couponsForThisPartner == null || couponsForThisPartner.Count == 0) {
                resModel.PaymentStatus = false;
                resModel.StatusMessage += "Coupon info could't be found, please contact web admin";
                currentCheckoutData.currentDeal = currentDeal;
                ModelState.AddModelError("Error", resModel.StatusMessage);
                return View("Checkout", buyModel);
            }
            tCoupon currCouponToUse = couponsForThisPartner[0];
            resModel.CouponCode = currCouponToUse.CustomCode;
            currCouponToUse.CouponStatus = (int)Enums.enmCouponStatus.Used;
            IPayment paymentAgent = new PaymentAgentBeelineKg();
            decimal AmountToBePaid = CalculateAmountToBePaid(currentDeal, currentCheckoutData.Quantity);
            if (AmountToBePaid <= 0) {
                resModel.PaymentStatus = false;
                resModel.StatusMessage += "Please verify amount to be paid for this deal!";
                ModelState.AddModelError("Error", resModel.StatusMessage);
                return View("Checkout", buyModel);
            }
            PaymentBLL pBLL = new PaymentBLL();
            bool paymentResult = pBLL.MakePayment(AmountToBePaid, paymentAgent);
            resModel.StatusMessage = pBLL.StatusMessage;
            resModel.PaymentStatus = paymentResult;
            resModel.CouponCode = currCouponToUse.CustomCode;

            if (paymentAgent.GetType() == typeof(PaymentAgentBeelineKg)) {
                System.Guid uniqueID = Guid.NewGuid();
                tPaymentMessage msg = new tPaymentMessage();
                msg.UniqueID = uniqueID.ToString();
                msg.IDDeal = currentCheckoutData.IDDeal;
                msg.IDUsed = UserID;
                msg.SMSCode = pBLL.PaymentCode;
                msg.DateAdded = DateTime.Now;
                msg.Approved = false;
                _paymentMessageRepository.InsertOrUpdate(msg);
                resModel.PaymentType = (int)Enums.enmPaymentType.BeelineKG;
                resModel.SMSUniqueID = uniqueID.ToString();
            } else {
                //Burdan aşağısı sadece kredikartı için çalışır
                _couponRepository.InsertOrUpdate(currCouponToUse);

                tOrder order = new tOrder();
                order.AmountPaid = AmountToBePaid;
                order.BuyerNotes = CommonUtils.Instance.ShoppingCart.BuyerNotes;
                order.IDCoupon = currCouponToUse.IDCoupon;
                order.IDDeal = currentDeal.IDDeal;

                order.IDUserBought = UserID;
                order.MobilePhoneNo = CommonUtils.Instance.ShoppingCart.MobilePhone;
                order.OrderNotes = currentCheckoutData.OrderNotes;
                CommonUtils.Instance.ShoppingCart.OrderNotes = currentCheckoutData.OrderNotes;
                order.OrderStatus = (int)Enums.enmOrderStatus.ToBePaid;
                order.PaymentType = (int)Enums.enmPaymentType.BeelineKG;
                order.Quantity = currentCheckoutData.Quantity;
                order.RefundStatus = (int)Enums.enmRefundStatus.OrderSuccessful;
                _orderRepository.InsertOrUpdate(order);

                if (paymentResult) {
                    _orderRepository.Save();
                    _couponRepository.Save();
                }
            }
            return View(resModel);
        }