/
main.csp
120 lines (106 loc) · 4.15 KB
/
main.csp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<HTML>
<HEAD>
<TITLE>メイン</TITLE>
<STYLE type="text/css">
<!--
.editnumeric{
text-align : right;
}
-->
</STYLE>
</HEAD>
<BODY>
<CSP:OBJECT NAME="cust" CLASSNAME="Shop.Customer" OBJID=#($get(%session.Data("oid")))#>
<SCRIPT LANGUAGE="JavaScript">
function addent(id,amount) {
#server(..AddEntry(id,amount))#;
}
</SCRIPT>
<SCRIPT LANGUAGE="SQL" NAME="res">
SELECT ID,Code,Name,Description,ListPrice FROM Shop.Product where deleteflg = 0
</SCRIPT>
<FORM name=form>
<TABLE cellpadding="0" cellspacing="2"><TBODY>
<CSP:WHILE CONDITION="res.Next()">
<TR><TD>
<TABLE border="1" cellspacing="0" cellpadding="0">
<TR><TD valign="middle" align="center">
<TABLE cellspacing="3" cellpadding="3" height="60">
<TBODY>
<TR>
<TD rowspan="2" width="100" align="center" valign="middle" nowrap>
<SCRIPT LANGUAGE="SQL" NAME="resimage" P1=#(res.GetData(2))#>
SELECT Picture FROM Shop.Product where Code=?
</SCRIPT>
<csp:WHILE CONDITION="resimage.Next()">
<IMG SRC="_CSP.StreamServer.cls?STREAMOID=#(..Encrypt(resimage.GetData(1)))#&CONTENTTYPE=image/gif" width="100" height="100" border="0">
</csp:WHILE>
</TD>
<TD width="160"><B>#(res.GetData(3))#</B></TD>
<TD width="128"><FONT color="#333333">商品コード: #(res.GetData(2))#</FONT></TD>
<TD rowspan="2" align="center" width="71"><FONT color="#333333">注文数<BR>
</FONT><FONT color="#333333"><INPUT size="3" maxlength="3" type="text" name="amount#(res.GetData(1))#" class="editnumeric">個</FONT><BR>
<BR>
<INPUT type="button" value="かごへ" onclick="addent('#(res.GetData(1))#',form.amount#(res.GetData(1))#.value);"></TD>
</TR>
<TR>
<TD width="160"><FONT size="-1" color="#333333">#(res.GetData(4))#</FONT></TD>
<TD width="128" align="right"><FONT size="-1" face="MS Pゴシック" color="#CC0033"><I><FONT size="+3">#($fnumber(cust.determinePrice(res.GetData(5)),","))#</FONT></I> </FONT><FONT color="#CC0033">円</FONT></TD>
</TR>
</TBODY>
</TABLE>
</TD></TR></TABLE>
</TD></TR>
</CSP:WHILE>
</TBODY></TABLE>
</FORM>
<SCRIPT LANGUAGE=CACHE METHOD="AddEntry" ARGUMENTS="id:%String,amount:%Numeric">
// 顧客情報の呼び出し
if $get(%session.Data("oid"))="" {
set cust=""
} else {
set cust=##class(Shop.Customer).%OpenId(%session.Data("oid"))
}
if cust="" {
&JS<alert('ログアウトされました。\n再度ログインしてください。');
top.document.location = 'login.htm';>
quit
}
// かごにエントリを追加
if +amount=0 {
// 個数の入力領域から入力された文字列を削除
&JS<form.amount#(id)#.value = "";>
// 個数が0の場合、かごにエントリがなければエラーを表示する。
if '$data(%session.Data("basket",id)) {
&JS<alert('個数を入力してください');>
quit
}
// かごからエントリを削除
kill %session.Data("basket",id)
} else {
// かごにエントリを追加
set %session.Data("basket",id)=amount
}
//注文件数の取得
set id="",count=0
for {
set id=$order(%session.Data("basket",id))
quit:id=""
set id($increment(count))=id
}
// 注文件数から
&JS<top.menu.document.order.orderlist.length = #(count)#;>
set total=0
for i=1:1:count {
set oref=##class(Shop.Product).%OpenId(id(i))
//set oref=##class(User.Product).%OpenId(id(i))
set item=$extract(oref.Name,1,$zposition(oref.Name,20))
set line=item_$justify("",20-$zwidth(item))_" "_$justify(%session.Data("basket",id(i)),3)
&JS<top.menu.document.order.orderlist[#(i-1)#].value= '#(id(i))#';
top.menu.document.order.orderlist[#(i-1)#].text='#(line)#';>
set total=total+(cust.determinePrice(oref.ListPrice)*%session.Data("basket",id(i)))
}
&JS<top.menu.document.order.total.value = '#($fnumber(total,","))#';>
</SCRIPT>
</BODY>
</HTML>