% '------------------------------------------------------------------------------- ' 名 称:shohin2.asp ' 機 能:商品明細の表示 ' 戻り画面:ichiran.asp ' :kensaku2.asp ' :shohin1.asp ' 送 信 先:shohin2.asp ' 次 画 面:shohin3.asp(詳細) ' :shohin4.asp(画像) ' :shopping.asp(購入する) ' キ ー 6:shopping.asp ' 0:default.asp '------------------------------------------------------------------------------- %> <%option explicit%> <%'PC版共通定義%> <%'サイト毎の定義&既存アプリ定義%> <% Function GetZaikoFLG2(ZaikoSyouhinCode) dim l_objDbClassGetZaiko dim l_getZaikoObjRSet dim l_strSqlgetZaiko dim l_paramsGetZaiko dim nIndex dim ReturnGetZaikoFLG Set l_objDbClassGetZaiko = new CDb l_objDbClassGetZaiko.Connect(Session(C_WEBSHOP_CON)) ReturnGetZaikoFLG = True l_strSqlgetZaiko = "SELECT MAX(在庫残数) AS 在庫残数最大" l_strSqlgetZaiko = l_strSqlgetZaiko & " FROM SHOHIN" nIndex = 0 l_strSqlgetZaiko = l_strSqlgetZaiko & " WHERE ACODE = ?" Redim l_paramsGetZaiko(nIndex + 1) nIndex = nIndex + 1: l_paramsGetZaiko(nIndex) = ACODE l_strSqlgetZaiko = l_strSqlgetZaiko & " AND 商品コード = ?" l_strSqlgetZaiko = l_strSqlgetZaiko & " GROUP BY 商品コード" Redim preserve l_paramsGetZaiko(nIndex + 1) nIndex = nIndex + 1: l_paramsGetZaiko(nIndex) = ZaikoSyouhinCode Set l_getZaikoObjRSet = l_objDbClassGetZaiko.doCursolOpen(l_strSqlgetZaiko, l_paramsGetZaiko, 0, adOpenForwardOnly, adLockReadOnly, 0) If l_getZaikoObjRSet.EOF = False Then If l_getZaikoObjRSet("在庫残数最大") <= 0 Then ReturnGetZaikoFLG = False End If End If If l_getZaikoObjRSet.State <> false Then l_getZaikoObjRSet.Close Set l_getZaikoObjRSet = Nothing Set l_objDbClassGetZaiko = Nothing GetZaikoFLG2 = ReturnGetZaikoFLG End Function %> <% Function GetZaikoFLG(ZaikoSyouhinCode) Dim l_objDbClassZaiko Dim l_strSqlZaiko Dim l_paramsZaiko Dim l_paramsZaiko2 Dim l_paramsZaiko3 Dim l_zaikoObjRSet Dim nIndex Dim nIndex2 Dim nIndex3 Set l_objDbClassZaiko = new CDb l_objDbClassZaiko.Connect(Session(C_WEBSHOP_CON)) Dim ReturnGetZaikoFLG ReturnGetZaikoFLG = True l_strSqlZaiko = "SELECT MAX(在庫残数) AS 在庫残数最大" l_strSqlZaiko = l_strSqlZaiko & " FROM SHOHIN" nIndex = 0 nIndex2 = 0 nIndex3 = 0 l_strSqlZaiko = l_strSqlZaiko & " WHERE ACODE = ?" ReDim l_paramsZaiko(nIndex + 1) nIndex = nIndex + 1: l_paramsZaiko(nIndex) = adInteger Redim l_paramsZaiko2(nIndex2 + 1) nIndex2 = nIndex2 + 1: l_paramsZaiko2(nIndex2) = 4 ReDim l_paramsZaiko3(nIndex3 + 1) nIndex3 = nIndex3 + 1: l_paramsZaiko3(nIndex3) = EscapeSQL(ACODE) l_strSqlZaiko = l_strSqlZaiko & " AND (CASE WHEN ISNULL(表示商品コード, '') = '' THEN 商品コード ELSE 表示商品コード END = ?)" l_strSqlZaiko = l_strSqlZaiko & " GROUP BY CASE WHEN ISNULL(表示商品コード, '') = '' THEN 商品コード ELSE 表示商品コード END" Redim Preserve l_paramsZaiko(nIndex + 1) nIndex = nIndex + 1: l_paramsZaiko(nIndex) = adChar Redim Preserve l_paramsZaiko2(nIndex2 + 1) nIndex2 = nIndex2 + 1: l_paramsZaiko2(nIndex2) = 15 Redim Preserve l_paramsZaiko3(nIndex3 + 1) nIndex3 = nIndex3 + 1: l_paramsZaiko3(nIndex3) = EscapeSQL(ZaikoSyouhinCode) Set l_zaikoObjRSet = l_objDbClassZaiko.doSelectCreateParam(l_strSqlZaiko, l_paramsZaiko, l_paramsZaiko2, l_paramsZaiko3) If IsObject(l_zaikoObjRSet) And l_zaikoObjRSet.Eof = False Then If l_zaikoObjRSet("在庫残数最大") <= 0 Then ReturnGetZaikoFLG = False End If End If If l_zaikoObjRSet.State <> false Then l_zaikoObjRSet.close Set l_zaikoObjRSet = Nothing Set l_objDbClassZaiko = Nothing GetZaikoFLG = ReturnGetZaikoFLG End Function Function GetZaikoFLG3(ZaikoSyouhinCode) Dim l_objDbClassZaiko Dim l_strSqlZaiko Dim l_paramsZaiko Dim l_paramsZaiko2 Dim l_paramsZaiko3 Dim l_zaikoObjRSet Dim nIndex Dim nIndex2 Dim nIndex3 Set l_objDbClassZaiko = new CDb l_objDbClassZaiko.Connect(Session(C_WEBSHOP_CON)) Dim ReturnGetZaikoFLG ReturnGetZaikoFLG = True l_strSqlZaiko = "SELECT MAX(在庫残数) AS 在庫残数最大" l_strSqlZaiko = l_strSqlZaiko & " FROM SHOHIN" nIndex = 0 nIndex2 = 0 nIndex3 = 0 l_strSqlZaiko = l_strSqlZaiko & " WHERE ACODE = ?" ReDim l_paramsZaiko(nIndex + 1) nIndex = nIndex + 1: l_paramsZaiko(nIndex) = adInteger Redim l_paramsZaiko2(nIndex2 + 1) nIndex2 = nIndex2 + 1: l_paramsZaiko2(nIndex2) = 4 ReDim l_paramsZaiko3(nIndex3 + 1) nIndex3 = nIndex3 + 1: l_paramsZaiko3(nIndex3) = EscapeSQL(ACODE) l_strSqlZaiko = l_strSqlZaiko & " AND 表示商品コード = ?" l_strSqlZaiko = l_strSqlZaiko & " GROUP BY 表示商品コード" Redim Preserve l_paramsZaiko(nIndex + 1) nIndex = nIndex + 1: l_paramsZaiko(nIndex) = adChar Redim Preserve l_paramsZaiko2(nIndex2 + 1) nIndex2 = nIndex2 + 1: l_paramsZaiko2(nIndex2) = 15 Redim Preserve l_paramsZaiko3(nIndex3 + 1) nIndex3 = nIndex3 + 1: l_paramsZaiko3(nIndex3) = EscapeSQL(ZaikoSyouhinCode) Set l_zaikoObjRSet = l_objDbClassZaiko.doSelectCreateParam(l_strSqlZaiko, l_paramsZaiko, l_paramsZaiko2, l_paramsZaiko3) If IsObject(l_zaikoObjRSet) And l_zaikoObjRSet.Eof = False Then If l_zaikoObjRSet("在庫残数最大") <= 0 Then ReturnGetZaikoFLG = False End If End If If l_zaikoObjRSet.State <> false Then l_zaikoObjRSet.close Set l_zaikoObjRSet = Nothing Set l_objDbClassZaiko = Nothing GetZaikoFLG3 = ReturnGetZaikoFLG End Function %> <% 'on error resume next '----- 変数宣言 Dim l_objDbClass 'データベース Dim l_objRSet 'レコードセット Dim l_objRSet2 Dim l_objRSet3 'レコードセット Dim l_strSql 'SQL文 Dim l_params 'SQL文 Dim l_params2 'SQL文 Dim l_params3 'SQL文 Dim nIndex Dim l_clsSession Dim DataBase 'データベース種類 Dim Hozon '検索結果保存フラグ Dim Line '固定行数 Dim NebikiF '値引期間自 Dim NebikiT '値引期間至 Dim NebikiK '値引掛率 Dim Nebiki '値引フラグ Dim Soryou '送料区分 Dim PointShop 'ポイントショップ Dim ARYshoppingcart 'ショッピングカート Dim MaxCartItems Dim icount 'ショッピング商品数 Dim Shocd '表示商品コード Dim Shocdx '表示商品コード Dim Shocdh '表示商品コード Dim Msg 'メッセージ Dim shopcode 'ショップ Dim Fast ' Dim Sw_Find '検索スイッチ Dim Sw_Qty '数量スイッチ Dim chumon '発売中止フラグ Dim chushi '発注中止フラグ Dim sweof 'EOFスイッチ Dim color '色の件数 Dim kikaku '規格件数 Dim Cart '買い物フラグ Dim i '添字 Dim j '添字 Dim Gamen '戻り画面 Dim pageno '戻りページNO Dim pageb '戻りページNO Dim Best Dim Shin Dim Sale Dim Shomei Dim From Dim Tox Dim Shubetsu Dim Maker Dim pos Dim posx Dim sw_ok Dim sw_sel '--5.1変更箇所・ここから-- Dim sw_zaiko '--5.1変更箇所・ここまで-- Dim Bunrui1 dim filedir dim filename dim fs Dim shonum '(色サイズ指定の場合)購入可能な商品数 Dim SessionID dim shocdsize dim shocdcolor dim cname '--2015/03/05 変更箇所・ここから-- Dim CartOpen Dim CartClose '--2015/03/05変更箇所・ここまで-- SessionID = Trim(Request("sessionid")) Shocd = trim(Request("Shocd")) '商品コード Gamen = trim(Request("Gamen")) '戻り画面 '----- 入力条件の保存 Fast = trim(Request("Fast")) Best = trim(Request("best")) Shin = trim(Request("shin")) Sale = trim(Request("sale")) From = trim(Request("from")) Tox = trim(Request("To")) Shomei = trim(Request("shomei")) Shubetsu = trim(Request("shubetsu")) Maker = trim(Request("maker")) pageno = trim(Request("pageno")) pageb = trim(Request("pageb")) Bunrui1 = trim(Request("Bunrui1")) Set l_objDbClass = new CDb l_objDbClass.Connect(Session(C_WEBSHOP_CON)) Set l_clsSession = new CSession Call l_clsSession.SetSessionId(SessionID) Call l_clsSession.SelectSession shopcode = session("Shop") shocdsize = trim(request("shocdsize")) shocdcolor = trim(request("shocdcolor")) cname = session("cname") Line = 0 sw_zaiko = 0 'アーティスト毎の基本情報を取得 l_strSql = "select * from INIT where ACODE = ? and ID = '1'" Redim l_params(1) l_params(1) = ACODE Set l_objRSet = l_objDbClass.doSelect(l_strSql, l_params) DataBase = cint(l_objRSet.Fields("DBTYPE")) Hozon = cint(l_objRSet("検索結果保存フラグ")) NebikiF = l_objRSet("値引期間自") NebikiT = l_objRSet("値引期間至") Soryou = cint(l_objRSet("送料区分")) NebikiK = clng(l_objRSet("値引掛率")) PointShop = cint(l_objRSet("ポイントショップ")) Cart = 0 if cint(l_objRSet("ポイントショップ")) = 1 then Line = 1 if Not IsNull(NebikiF) and Not IsNull(NebikiT) and Nebikik <> 0 then if date >= NebikiF and date <= NebikiT then Line = Line + 1 Nebiki = "1" end if end if if cint(l_objRSet("送料区分")) = 1 then Line = Line + 1 Set l_objRSet = Nothing 'リダイレクト時に長いGetでのでの値渡しがあると機種依存でエラーが発生するため '一時的にsession変数に値を入れ、Server.trnsferでページ遷移を行う。 '行った先のページでは、session.abandonを行いSessionを破棄する。 session("sessionid") = SessionID session("gamen") = Gamen session("shocd") = shocd session("Fast") = Fast session("Pageno") = Pageno session("Bunrui1") = Bunrui1 session("pageb") = pageb session("best") = best session("Shin") = Shin session("Sale") = Sale session("Shomei") = Shomei session("From") = From session("Tox") = Tox session("Shubetsu") = Shubetsu session("Maker") = Maker session("shocdsize") = shocdsize session("shocdcolor") = shocdcolor If Trim(Request("ACTION"))="詳細" Then Shocdh = trim(Request("shocdh")) session("shocdh") = shocdh server.transfer("shohin3.asp") ElseIf Trim(Request("ACTION"))="画像" Then Shocdh = trim(Request("shocdh")) filename = trim(Request("filename")) session("shocdh") = shocdh session("filename") = filename server.transfer("shohin4.asp") ElseIf Trim(Request("ACTION"))="購入する" AND request("shocdx") <> "" then ''########################################################################################################################### ''購入時の処理 ''########################################################################################################################### MaxCartItems = cint(strCartItem) iCount = clng(Session("ItemCount")) Call l_clsSession.SelectCart for i = 1 to iCount if ARYshoppingcart(cartItemCode,i) = "NEBIKI" then ARYshoppingcart(cartItemQuantity,i) = 0 end if if ARYshoppingcart(cartItemCode,i) = "SORYOU" then ARYshoppingcart(cartItemQuantity,i) = 0 end if if ARYshoppingcart(cartItemCode,i) = "POINTSHOP" then ARYshoppingcart(cartItemQuantity,i) = 0 end if next If iCount > 0 Then CartItemDel End If l_clsSession.DeleteCart if shocdsize <> "" then l_strSql = "select *, (CASE WHEN 表示商品コード Is Null THEN 商品コード WHEN Len(表示商品コード) = 0 THEN 商品コード ELSE 表示商品コード END) AS リスト商品コード from SHOHIN Where ACODE = ? and サイズ = ? and (CASE WHEN 表示商品コード Is Null THEN 商品コード WHEN Len(表示商品コード) = 0 THEN 商品コード ELSE 表示商品コード END = ?)" Redim l_params(3) l_params(1) = adInteger l_params(2) = adChar l_params(3) = adChar Redim l_params2(3) l_params2(1) = 4 l_params2(2) = 15 l_params2(3) = 15 Redim l_params3(3) l_params3(1) = ACODE l_params3(2) = trim(shocdsize) l_params3(3) = Shocd Set l_objRSet = l_objDbClass.doSelectCreateParam(l_strSql, l_params, l_params2, l_params3) elseif shocdcolor <> "" then l_strSql = "select *, (CASE WHEN 表示商品コード Is Null THEN 商品コード WHEN Len(表示商品コード) = 0 THEN 商品コード ELSE 表示商品コード END) AS リスト商品コード from SHOHIN Where ACODE = ? and 色 = ? and (CASE WHEN 表示商品コード Is Null THEN 商品コード WHEN Len(表示商品コード) = 0 THEN 商品コード ELSE 表示商品コード END = ?)" Redim l_params(3) l_params(1) = adInteger l_params(2) = adChar l_params(3) = adChar Redim l_params2(3) l_params2(1) = 4 l_params2(2) = 15 l_params2(3) = 15 Redim l_params3(3) l_params3(1) = ACODE l_params3(2) = trim(shocdcolor) l_params3(3) = Shocd Set l_objRSet = l_objDbClass.doSelectCreateParam(l_strSql, l_params, l_params2, l_params3) else l_strSql = "select *, (CASE WHEN 表示商品コード Is Null THEN 商品コード WHEN Len(表示商品コード) = 0 THEN 商品コード ELSE 表示商品コード END) AS リスト商品コード from SHOHIN Where ACODE = ? and (CASE WHEN 表示商品コード Is Null THEN 商品コード WHEN Len(表示商品コード) = 0 THEN 商品コード ELSE 表示商品コード END = ?)" Redim l_params(2) l_params(1) = adInteger l_params(2) = adChar Redim l_params2(2) l_params2(1) = 4 l_params2(2) = 15 Redim l_params3(2) l_params3(1) = ACODE l_params3(2) = Shocd Set l_objRSet = l_objDbClass.doSelectCreateParam(l_strSql, l_params, l_params2, l_params3) end if Shocdx = trim(l_objRSet("商品コード")) Shocdh = trim(l_objRSet("商品コード")) ' l_strSql = "SELECT * FROM SHOHIN WHERE and ACODE = ? and 商品コード = ?" ' Redim l_params(2) ' l_params(1) = shopcode ' l_params(2) = Shocdh ' ' Set l_objRSet = l_objDbClass.doSelect(l_strSql, l_params) If Not IsEmpty(l_objRSet) Then Sw_Find = 0 Sw_Qty = 0 For i = 1 to iCount If trim(ARYshoppingcart(cartShoCode,i)) = Shocdh then Sw_Find = 1 if clng(ARYshoppingcart(cartItemQuantity,i)) + 1 < 1000 then ARYshoppingcart(cartItemQuantity,i) = clng(ARYshoppingcart(cartItemQuantity,i)) + 1 else Sw_Qty = 1 end if i = iCount + 1 end If Next if Len(Msg) = 0 then if Sw_Find = 0 then if iCount < (clng(MaxCartItems) - Line) then iCount = iCount + 1 ARYshoppingcart(cartCHECKED,iCount) = "CHECKED" If IsNull(l_objRSet("携帯用商品名")) = True Then ARYshoppingcart(cartItemName,iCount) = trim(l_objRSet("商品タイトル")) & " " & trim(l_objRSet("商品名")) ElseIf trim(l_objRSet("携帯用商品名")) <> "" Then ARYshoppingcart(cartItemName,iCount) = trim(l_objRSet("商品タイトル")) & " " & trim(l_objRSet("携帯用商品名")) Else ARYshoppingcart(cartItemName,iCount) = trim(l_objRSet("商品タイトル")) & " " & trim(l_objRSet("商品名")) End If if shocdx = shocdh then ARYshoppingcart(cartItemCode,iCount) = trim(l_objRSet("商品コード")) else ARYshoppingcart(cartItemCode,iCount) = trim(l_objRSet("表示商品コード")) l_strSql = "SELECT * FROM SHOHIN WHERE ACODE = ? and 商品コード = ?" Redim l_params(2) l_params(1) = shopcode l_params(2) = Shocdx Set l_objRSet2 = l_objDbClass.doSelect(l_strSql, l_params) If trim(l_objRSet2("携帯用商品名")) <> "" Then ARYshoppingcart(cartItemName,iCount) = trim(l_objRSet2("携帯用商品名")) Else ARYshoppingcart(cartItemName,iCount) = trim(l_objRSet2("商品名")) End If If Not IsEmpty(l_objRSet2) Then end if end if ARYshoppingcart(cartShoCode,iCount) = trim(l_objRSet("商品コード")) ARYshoppingcart(cartItemQuantity,iCount) = 1 ARYshoppingcart(cartUnitPrice,iCount) = clng(l_objRSet("販売単価")) ARYshoppingcart(cartColorId,iCount) = "" ARYshoppingcart(cartColorCode,iCount) = "" ARYshoppingcart(cartSizeId,iCount) = "" ARYshoppingcart(cartSizeCode,iCount) = "" ARYshoppingcart(cartNebiki,iCount) = clng(l_objRSet("値引区分")) ARYshoppingcart(cartPoint,iCount) = clng(l_objRSet("POINT区分")) ARYshoppingcart(cartErr,iCount) = "" if trim(l_objRSet("色")) <> "" then ARYshoppingcart(cartColorId,iCount) = "1" ARYshoppingcart(cartColorCode,iCount) = trim(l_objRSet("色")) end if if trim(l_objRSet("サイズ")) <> "" then ARYshoppingcart(cartSizeId,iCount) = "1" ARYshoppingcart(cartSizeCode,iCount) = trim(l_objRSet("サイズ")) end if Cart = 1 else Msg = (clng(MaxCartItems) - Line) & "明細を超えるご注文は入力できません。" end if elseif Sw_Qty = 1 then Msg = "数量が999を超えるご注文は入力できません。" else Cart = 1 end if else Msg = "「" & l_objRSet("商品名") & "」は" & Msg & "と同時にご購入することはできません。" end if end if Session("ItemCount") = iCount Call l_clsSession.InsertCart Call l_clsSession.UpdateSession Set l_objRSet = Nothing session("shocdh") = shocdh session("gamenb") = Gamen session("gamen") = 5 session("To") = Tox if msg = "" then server.transfer("shopping.asp") end if end if Dim w_zauko Dim w_Mongon dim W_gazouFileName dim w_nsize dim w_niro dim w_KEITAIYOUSYOUHINMEI dim w_KAIINNGENTEI Dim w_bunrui Dim w_ShohinName l_strSql = "select 商品名, 在庫状況,販売開始,販売終了 from SHOHIN Where ACODE = ? and 商品コード = ?" Redim l_params(2) l_params(1) = shopcode l_params(2) = Shocd Set l_objRSet = l_objDbClass.doSelect(l_strSql, l_params) If l_objRSet.Eof = False Then w_ShohinName = l_objRSet("商品名") w_Mongon = l_objRSet("在庫状況") End If '2015/03/05 追加 CartOpen = l_objRSet("販売開始") CartClose = l_objRSet("販売終了") if isnull(CartOpen) then CartOpen = "2000/01/01 00:00:00" end if if isnull(CartClose) then CartClose = "2099/01/01 00:00:00" end if ''''''''''''''' Call l_objRSet.Close Set l_objRSet = Nothing l_strSql = "select *, ISNULL(サイズ, '') as nサイズ, ISNULL(色, '') as n色, (CASE WHEN 表示商品コード Is Null THEN 商品コード WHEN Len(表示商品コード) = 0 THEN 商品コード ELSE 表示商品コード END) AS リスト商品コード from SHOHIN Where ACODE = ? and (CASE WHEN 表示商品コード Is Null THEN 商品コード WHEN Len(表示商品コード) = 0 THEN 商品コード ELSE 表示商品コード END = ?) ORDER BY 商品コード" Redim l_params(2) l_params(1) = adInteger l_params(2) = adChar Redim l_params2(2) l_params2(1) = 4 l_params2(2) = 15 Redim l_params3(2) l_params3(1) = shopcode l_params3(2) = Shocd Set l_objRSet = l_objDbClass.doSelectCreateParam(l_strSql, l_params, l_params2, l_params3) if l_objRSet.eof then msg = "商品が登録されていません。!" else w_KEITAIYOUSYOUHINMEI = trim(l_objRSet("携帯用商品説明3")) w_KAIINNGENTEI = l_objRSet("カテゴリ3") w_nsize = trim(l_objRSet("nサイズ")) w_niro = trim(l_objRSet("n色")) W_gazouFileName = trim(l_objRSet("リスト商品コード")) w_zauko = l_objRSet("在庫残数") ' w_Mongon = l_objRSet("在庫状況") w_bunrui = l_objRSet("分類コード1") end if %>

