2016-04-20 3 views
0

ノンコマース用の初心者です。チェックアウト時にノップコミックス更新用カスタマイズテーブル

チェックアウト時にカスタマイズテーブルをチェックして更新するアイデアはありますか? 私の場合は次のようになります:

私は "DailyLimit"テーブルとして新しいデータベーステーブルを作成しました。 テーブルフィールドにはID、Date、DailyLimitがあります。

チェックアウト製品の場合、毎日の制限の「日付」を確認する必要があります。 1日の制限が< = 0の場合は、アラートがポップアップ表示され、それ以外の場合はDailyLimitフィールドに更新されます。

PS:既に日付チェックアウト属性を作成し、セッションとして作成しています。

Checkoutコントローラでは、availableQty変数パスをモデルに追加しました。

public ActionResult OnePageCheckout(){ 
      //validation 
      var cart = _workContext.CurrentCustomer.ShoppingCartItems 
       .Where(sci => sci.ShoppingCartType == ShoppingCartType.ShoppingCart) 
       .LimitPerStore(_storeContext.CurrentStore.Id) 
       .ToList(); 

//Problem here 
      var availableQtyFromDB = "SELECT DailyLimit FROM deliveryTbl WHERE date =Session["DeliveryDateForDesley"]" //problem here 

      if (cart.Count == 0) 
       return RedirectToRoute("ShoppingCart"); 

      if (!_orderSettings.OnePageCheckoutEnabled) 
       return RedirectToRoute("Checkout"); 

      if ((_workContext.CurrentCustomer.IsGuest() && !_orderSettings.AnonymousCheckoutAllowed)) 
       return new HttpUnauthorizedResult(); 


      var model = new OnePageCheckoutModel 
      { 
       ShippingRequired = cart.RequiresShipping(), 
       DisableBillingAddressCheckoutStep = _orderSettings.DisableBillingAddressCheckoutStep, 
       availableQty = availableQtyFromDB 

      }; 
      return View(model); 

     } 

しかし、私はどのようにこのコントローラのSELECT文を書くのか分かりません。 毎日の制限を更新する方法はありません。

+0

既にお試しいただいたコードはどこですか? –

+0

こんにちは、私は前に試しているコードを更新しています。 – edward5007

答えて

0

興味深い質問です。あなたのコードに基づいて、あなたはEFフレームワークではあまり働いていないと思います。私がノンコマースで働き始めたとき、私もそうだった。しかし、非商取引の最善のことは、アプリケーションの他の部分で解決された共通の問題のほとんどです。

まず、盲目的にSQLをコントローラに書き込まないと、多くの助けになります。学ぶための良い方法は

.LimitPerStore(_storeContext.CurrentStore.Id) 

方法を見てすることであり、彼らはエンティティフレームワークを使用してクエリ/選択を行っていますか。彼らは店舗ごとにそれをしています。あなたは1日にそれをする必要があります。これは、ノーコムのアーキテクチャに沿ったソリューションを実現するのに役立ちます。

出典:Ex-nopCommerce開発者3年間。

関連する問題