Я работаю над проектом сайта, где пользователь может заказать один продукт двумя разными способами.
Позвольте мне дать вам пример. Давайте предположим, что у нас есть продукт 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.
Примечание **, если я вижу его как тот же продукт, то логически, как сейчас, вместо того, чтобы добавлять новую строку в корзину, я должен увеличить количество.
если я сделаю это, я потеряю информацию о надстройках, цена изменится, и это не очень хорошо.
Я знаю, что есть лучший способ выполнить это. Заранее благодарим за ваше решение. Любая помощь высоко ценится.