2016-04-20 19 views
0

我是nopcommerce的新手。Nopcommerce更新自定义表结账时

任何想法检查和更新自定义表检查时? 我的情况是这样的:

我已经在我的数据库中创建了一个新的表名称作为“DailyLimit”表。 表字段有ID,日期,DailyLimit。

当结帐产品时,我需要检查每日限额的“日期”。如果每日限制< = 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框架。当我开始使用nopcommerce时,我也是那样。但nopcommerce中最好的事情是大多数常见问题都在应用程序的其他部分解决。

首先,在控制器中盲目写入SQL不会有太大的帮助。好的学习方法是看看

.LimitPerStore(_storeContext.CurrentStore.Id) 

方法以及他们如何使用实体框架完成查询/选择。他们已经为每家店做到了这一点。你需要每天做。这将帮助您按照nopcommerce架构解决您​​的解决方案。

来源:Ex-nopCommerce开发者3年。