%option explicit%>
<%
shopcheckadmin ""
'**************************************************************************
' Version 6.50 Display orders'
' April 13, 2004
' Oct 2, 2004 case on ocustomerid
'**************************************************************************
'
dim Selectioncritereontext
dim mysql
Dim Fieldcount
Dim Headnames(6)
Dim Fieldnames(6)
Dim ProcType
Dim SortType
Dim Sortfield
Dim SortUpDown
Dim Sortupdownnames(2)
Dim Sortupdownvalues(2)
dim sortupdowncount
Dim Procnames(3)
dim Procvalues(3)
Dim Pendnames(20)
dim Pendvalues(20)
dim pendingcount
Dim Idfield
Dim SearchFieldvalue, searchfieldname
Dim i
dim orderfieldcount, orderfields
Dim item
dim dbtable
Dim scriptresponder
Dim editresponder
Dim dbc
dim fieldname
dim pending, pendtype
dim PendingFieldnames(20),pendingfieldcount, pendingnamescount
dim PaidFieldnames(20),paidfieldcount, paidnamescount, paidnames(20),paidvalues(20)
dim paid, paidtype, ocardtype
dim stockconn, items
dim specialsearchcount
dim prevandor
specialsearchcount=4
setsess "currenturl","shopa_displayorders.asp"
if request.form("advanced") > "" then
if request.form("advanced") <> getsess("advanced") then
setsess "advanced", request.form("advanced")
responseredirect "shopa_displayorders.asp"
end if
end if
ShopcheckLicense
Shopproductcheck
AdminPageHeader ' Admin page headers are different
SetFieldNames ' field names for table
OpenOrderDB dbc ' open database
GetInput ' get all form fields
If Request("Delete")<>"" Then
For each item in Request("DeleteUser")
DeleteRecord Item
Next
End if
If Request("Process")<>"" Then
For each item in Request("Processed")
MarkProcessed Item
Next
End if
If Request("MarkPending")<>"" Then
For each item in Request("Pending")
MarkPending Item
Next
End if
GenerateDisplayHeader ' Generate sort button etc
scriptresponder="shopa_formatorder.asp"
editresponder="shopa_editrecord.asp"
'debugwrite "sql=" & mysql
ShopopenRecordSet mysql, rsorder, mypagesize, mypage
Selectioncritereontext = mysql
GenerateTable ' write the tabe
'Call PageNavBar (Mysql) ' put bottom navigation bar
rsOrder.close ' close database
set rsOrder=nothing
shopCloseDatabase dbc
If getconfig("xlistallorders")="Yes" then
response.write "
"
end if
AdminPageTrailer ' Write admin trailer
'
Sub GetInput
Idfield="Orderid"
mypage = Request.querystring("page")
'first time we need everything, othertimes sql is set up
sortfield=request("Sortfield")
' See how we are sorting
If Sortfield="" then
sortfield="orderid"
end if
'response.write "sortfield="& sortfield
' see which types processed or unprocessed
'VP-ASP 6.09 - Security Precaution
Proctype=cleanchars(request("Proctype"))
If Proctype="" then
Proctype="0"
end if
'response.write "Proctype=" & proctype
'VP-ASP 6.09 - Security Precaution
Pendtype=cleanchars(request("Pendtype"))
If Pendtype="" then
Pendtype=""
end if
SortUpdown=request("SortUpdown")
Paidtype=request("Paidtype")
If Paidtype="" then
Paidtype="*"
end if
If SortUpdown="" then
sortupdown="DESC"
end if
if mypage="" then
mypage=1
GenerateSQL
else
Mysql=GetSess("sqlquery")
Proctype=GetSess("Proctype")
sortfield=GetSess("sortfield")
sortupdown=GetSess("sortupdown")
pendtype=getsess("pendtype")
end if
if request.form("showhowmany") > "" then
if request.form("showhowmany") <> getlang("langcommonselect") then
setsess "showhowmany", request.form("showhowmany")
else
setsess "showhowmany", getconfig("xeditdisplaymaxrecords")
end if
else
if getsess("showhowmany") > "" then
else
setsess "showhowmany", getconfig("xeditdisplaymaxrecords")
end if
end if
maxrecs=getsess("showhowmany")
mypagesize=maxrecs
end sub
'
' SQL is generate by using fields on form
Sub GenerateSQL
dim sqlproc
dim dbtable, whereok
dim bracketopen,i, sqladd
sqladd=" Where"
bracketopen=false
dbtable="orders"
MySql = "SELECT * from " & dbtable
'whereok=" WHERE "
'response.write "generated sql=" & mysql
For i = 1 to specialsearchcount
specialsearchterm MYSQL,sqladd,Request("criterion" & i),Request("criterionvalue" & i ),Request("Selection" & i),bracketopen
if sqladd = "AND" then
whereok = " AND "
else
whereok =" WHERE "
end if
Next
if bracketopen then MYSQl=MYSQL & ")"
if Proctype="" then
sqlproc = whereok & " oprocessed=0"
whereok= " AND "
else
if Proctype="*" then
sqlproc=""
AddPendingSql sqlproc, whereok
else
If Proctype="0" then
sqlproc = whereok & " oprocessed=" & Proctype
whereok=" AND "
AddPendingSql sqlproc, whereok
else
sqlproc = whereok & " oprocessed<>0"
whereok=" AND "
end if
end if
end if
Mysql = mysql & sqlproc
'VP-ASP 6.09 - Security precautions
Searchfieldvalue=cleanchars(request("searchfieldvalue"))
Searchfieldname=cleanchars(request("Searchfieldname"))
If searchfieldvalue<>"" and searchfieldname<> getlang("Langcommonselect") then
mysql = mysql & whereOK & searchfieldname & " LIKE '%" & searchfieldvalue & "%'"
whereok= " and "
end if
AddPaidSql mysql, whereok
If sortfield<>"" then
mysql=mysql & " order by " & sortfield & " " & sortupdown
end if
SetSess "sqlquery",MySQL
setSess "Proctype",Proctype
SetSess "sortfield",sortfield
SetSess "sortupdown",sortupdown
setsess "paidtype",paidtype
SetSess "pendtype",pendtype
'debugwrite mysql
End sub
'
Sub GenerateTable
dim howmanyfields
dim howmanyrecs
dim my_link
dim processed
dim pending, orderid, pendingfieldname, fieldname
dim paidyesno
howmanyfields=fieldcount
GenerateDisplayHeaderFlat
GenerateDisplayBodyHeader
%>
<%
end if
'Put Headings On The Table of Field Names
for i=0 to howmanyfields
%>
<% SortHeader Headnames(i), fieldnames(i) %>
<%
next
%>
<%=getlang("LangOrdersMarkProcessed")%>
<%
If getconfig("xorderpending")="Yes" then
%>
<%=getlang("LangOrdersMarkPending")%>
<%
end if
%>
<%=getlang("langcommonview")%>
<%
%>
<%=getlang("LangMenuEdit")%>
<%
%>
<% if request("specialfunction") = "Mail" then
response.write getlang("langcustemail")
elseif request("specialfunction") = "Export" then
response.write getlang("langspecialexport")
else
response.write getlang("langmenudelete")
end if%>
<%
' Now lets grab all the records
howmanyrecs=0
DO UNTIL rsorder.eof OR howmanyrecs=maxrecs
orderid=rsorder(idfield)
processed=rsorder("oprocessed")
pending=rsorder("opending")
ocardtype=rsorder("ocardtype")
validateorder ocardtype,PaidYesno
If isnull(pending) then pending="No"
'VP-ASP 6.50 - broadened defintion of IF statement to cover cases where xmysql hasn't been set
if ucase(xdatabasetype) = "MYSQL" OR ucase(xdatabasetype) = "MYSQL351" OR getconfig("xMYSQL")="Yes" then
if processed then
processed=1
else
processed=0
end if
end if
If paidYesno="Yes" then
if processed<>0 then
response.write ReportDetailRowX
else
response.write ReportDetailRow
end if
else
response.write ReportDetailRowUnpaid
end if
'============================
'Printer Friendly Link
'============================
Response.write "
<%
GenerateDisplayBodyFooter
end sub
Sub SetFieldNames
Fieldcount=6
fieldnames(0)="orderid"
fieldnames(1)="ocustomerid"
fieldnames(2)="odate"
fieldnames(3)="orderamount"
fieldnames(4)="olastname"
fieldnames(5)="ocountry"
fieldnames(6)="ocardtype"
headnames(0)="orderid"
headnames(1)="customerid"
Headnames(2)=getlang("langDisplayDate")
Headnames(3)=getlang("langDisplayAmount")
Headnames(4)=getlang("langCustLastName")
HeadNames(5)=getlang("langCustCountry")
HeadNames(6)=getlang("LangCheckoutPaymentType")
Sortupdownnames(0)=getlang("langAscending")
Sortupdownnames(1)=getlang("langDescending")
Sortupdownvalues(0)="ASC"
Sortupdownvalues(1)="DESC"
Procnames(0)=getlang("langAllOrders")
Procnames(1)=getlang("langProcessed")
Procnames(2)=getlang("langUnprocessed")
ProcValues(0)="*"
ProcValues(1)="1"
ProcValues(2)="0"
'
Pendingcount=0
if getconfig("xorderpending")="Yes" then
SetupPending
end if
setuppaid
end sub
'
Sub DeleteRecord(Item)
dim Rowsaffected
dbc.execute "delete from oitems where orderid = " & item
dbc.execute "delete from orders where orderid = " & item, rowsaffected, 1
end sub
Sub MarkProcessed (Item)
'Response.write "item=" & item
sql= "update orders set oprocessed = 1 where orderid =" & item
dbc.Execute sql
updatestock item
If getconfig("xmailprocessed")="Yes" then
MailProcessedOrder dbc, item
end if
End sub
Sub GenerateDisplayHeader
%>
<%end sub
'==============================================
' SPECIAL SEARCH CUSTOMISATION
' Write all the fields for that table
'==============================================
Sub Writetableallfields (num,selecttype)
dim sql,rs,fieldnamestable,fieldcount,strselect,fldName,selected
fieldcount=0
if selecttype="multiple" then
strselect=" type=multiple size=5 "
else
strselect=" size=1"
end if
SQL = "SELECT * FROM orders"
Set rs = dbc.Execute(SQL)
%>
<%
closerecordset rs
End Sub
Sub AddHowMany
%>