обновление количества товара, когда товар можно заказать двумя разными способами, содержащими разные цены и стоимость заказа? - PullRequest
0 голосов
/ 09 сентября 2018

Я работаю над проектом сайта, где пользователь может заказать один продукт двумя разными способами.

Позвольте мне дать вам пример. Давайте предположим, что у нас есть продукт X.

ресурсы:

**table 1--> tbprd (tb-product)**


 prdcod  prdtit   prdprc($)  prdprcWaddon($) prdqty
---------------------------------------------------
   101     x         5           10              1

prdcod (PK) = product code
prdtit = product title.
prdprc = product price without addon.
prdprcWaddon = product price with addon.

**table 2 --> tbaddon**
addocd    addtit    addprc($)   addqty
 ----------------------------------------
  99       test       1           10

 addcod (PK) 
 addtit = addon title.
 addprc = addon price. along with the prdprcWaddon, 
          addon has its on individual price as well. 

   datatable ord (it is used to store the my cart 
   info temporarily before payment confirmation. ) 
   --> containing major columns as for this situation 
      are 

      ordcod  ordprdcod ordprc ordprdqty
     -----------------------------------


       ordcod (pk)
       ordprdcod(FK) to tbprd.
       ordprc (total price of the order)
       here the ordprc is calculated via expression 
       :(ordprdqty*(ordprdprc+(addqty*addprc)))

       ordprdqty = product order quantity  

пользователь может заказать x этими двумя способами .-->

A. Пользователь может просто заказать товар самостоятельно. **

B. Пользователь также может заказать его с различными дополнениями.

, что приводит к различным конечным ценам на один и тот же продукт.

* СЕЙЧАС, если пользователь добавляет x (A.) В свою корзину, общая сумма корзины становится $ 5.

теперь по какой-либо причине пользователь хочет этот продукт также с аддонами (B). Поэтому он переходит на страницу продукта и создает X с аддонами и добавляет его в свою корзину. Таким образом, общая сумма для этого продукта становится $ 11.

Теперь проблема в том, как мне просмотреть этот второй продукт (который технически X с дополнениями).

По логике я должен видеть это как другой продукт и должен добавить новую строку в мою корзину данных.

теперь кол-во по умолчанию порядка всегда равно 1. В случае x мы заказали 2 QTY из x, один простой порядок и один с дополнением.

Теперь я ищу способ запросить этот набор данных и сравнить количество qty с количеством левого продукта в инвентаризации tbprd (prdqty).

В настоящее время используется код (не точный):

// здесь session ["ss"] содержит датируемый орд.

DataTable tb = (DataTable)(Session["ss"]);

        foreach (DataRow row in tb.Rows)
        {

//Comparing the qty available and order qty of a prd.
            clsprd.prd obj = new 
            clsprd.prd();
            ordbcod =Convert.ToInt32(row["ordbcod"]);
            qty = obj.Get_left_qty(ordbcod);
            ordqty = Convert.ToInt32(row["ordqty"]);

            if (qty < ordqty)
            {
                string script = "<script 
   type=\"text/javascript\">alert
 ('One of your product size is more then its actual 
 `enter code here`quantity');</script>";
               ClientScript.RegisterClientScriptBlock
 (this.GetType(),"Alert", script);
            }             

        }

это хорошо работает, если пользователь заказывает только один тип продукта (простой или только с надстройкой). Для приведенного выше примера (X) у нас есть 2 строки в корзине того же продукта (X), кол-во левых которых равно 1 (как в таблице):

this code works as following  
-----------------------------

for the first row X(A.) simple ord 
ordqty = 1
left qty = 1
and it then is false for this condt. (qty < ordqty)

now the loop continues and compare the second row in 
the cart (X with addon)
for this too 
ordqty = 1
left qty = 1
and it then again is false for this condt. (qty < 
ordqty).

WHILE IT MUST HAVE GIVEN AN ERROR AS TECHNICALLY THE            
X IS ORDERED FOR QTY 2 BUT WE ONLY HAVE ONE TO 
SERVE.SO MY CURRENT CODE IS NOT RIGHT. IM LOOKING FOR 
A CODE THAT CAN HELP RESOLVE THIS PROBLEM.
I THINK IT CAN BE DONE VIA USING LINQ BUT I DONT HAVE 
ANY EXPERIENCE OF USING LINQ.

Примечание **, если я вижу его как тот же продукт, то логически, как сейчас, вместо того, чтобы добавлять новую строку в корзину, я должен увеличить количество. если я сделаю это, я потеряю информацию о надстройках, цена изменится, и это не очень хорошо.

Я знаю, что есть лучший способ выполнить это. Заранее благодарим за ваше решение. Любая помощь высоко ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...