15static const wchar_t __THIS_FILE__[] = L
"eshop/ShoppingBasket.cpp";
18void EShopServlet::onViewShoppingBasket(
23 Writer& out = ctx.
writer();
25 ListedStringToStringArrayMap& params = ctx.__formMap;
27 StringArray& vQty = params[L
"qty"];
32 if (vPID.size() == 1 && vQty.isEmpty())
46 " FROM ES_SHOPPING_BASKET "
47 " WHERE SESSION_ID = :SESSION_ID "
48 " AND PRODUCT_ID = :PRODUCT_ID"
50 q.params()[0].setValue(session.
sessionID());
51 q.params()[1].setValue(nProductID);
58 "INSERT INTO ES_SHOPPING_BASKET "
59 " VALUES(:SESSION_ID, :PRODUCT_ID, 1)"
61 q.params()[0].setValue(session.
sessionID());
62 q.params()[1].setValue(nProductID);
73 "UPDATE ES_SHOPPING_BASKET "
74 " SET QUANTITY = :QUANTITY "
75 " WHERE SESSION_ID = :SESSION_ID"
76 " AND PRODUCT_ID = :PRODUCT_ID"
78 for(
int i = 0; i < vPID.size(); i++)
99 q.params()[0].setValue(nQuantity);
100 q.params()[1].setValue(session.
sessionID());
101 q.params()[2].setValue(nProductID);
107 "DELETE FROM ES_SHOPPING_BASKET "
108 " WHERE SESSION_ID = \'" + session.
sessionID()
109 + L
"\' AND QUANTITY = 0 "
114 TextTemplate tpl = *m_pViewShoppingBasket;
115 TextTemplate& row = tpl[L
"ROW"];
117 String strActionHREF = String::format(L
"?%ls=%d",
119 tpl.assign(L
"ACTION_HREF", strActionHREF);
123 "SELECT S.PRODUCT_ID, S.QUANTITY, P.PRODUCT_NAME, P.QUALITY, P.PRICE,"
124 " S.QUANTITY, P.PRICE * S.QUANTITY AS AMOUNT, P.IMAGE_FILE_NAME "
125 " FROM ES_SHOPPING_BASKET S \n"
126 " INNER JOIN ES_PRODUCT P "
127 " ON S.PRODUCT_ID = P.PRODUCT_ID \n"
128 " WHERE S.SESSION_ID = \'"
137 tpl.assign(L
"TOTAL", L
"0");
145 q.fields().byName(L
"AMOUNT").getValue(nAmount);
149 + q.fields().byName(L
"IMAGE_FILE_NAME").asString();
152 row.assign(q.fields(), L
" ");
153 row.assign(L
"IMAGE", strImage);
154 tpl.append(L
"ROW", row);
157 tpl.assign(L
"TOTAL", String::valueOf(nTotal));
163 TextTemplate& tplNotLogin = tpl[L
"NOT_LOGIN"];
164 tpl.assign(L
"NOT_LOGIN", tplNotLogin);
168 tpl.erase(L
"NOT_LOGIN");
169 TextTemplate& tplOrder = tpl[L
"ORDER"];
170 tplOrder.assign(L
"USER_NAME", session.
userName());
172 strActionHREF = String::format(L
"?%ls=%d",
174 tplOrder.assign(L
"ACTION_HREF", strActionHREF);
176 tpl.assign(L
"ORDER", tplOrder);
@ CM_VIEW_SHOPPING_BASKET
#define __DCL_TRACE1(fmt, arg1)
#define __DCL_ASSERT(expr)
const String & userName() const
const String & sessionID() const
SQLConnection * SQLConn() const
static String dirname(const String &_path)
static int32_t parse(const wchar_t *_number, unsigned _base=10) __DCL_THROWS1(NumericConvertException *)