?? st_order.cs
字號:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
namespace ST_GROUP.FlowerPrearrange
{
/// <summary>
/// ST_Order description。
/// </summary>
public class ST_Order:ST_Base,IEnumerator
{
private ArrayList ST_allFlowers = new ArrayList();
private int ST_userId;
//private byte status;
private DateTime ST_date = System.DateTime.Now.Date;
private int ST_position=-1;
public ST_Order()
{
}
#region Properties of order class
object IEnumerator.Current
{
get
{
return ST_allFlowers[ST_position];
}
}
/// <summary>
/// set detail of order form
/// </summary>
public int ST_Count
{
get
{
ST_strSQL = "Select Count(*) From ST_OrderDetails Where ST_OrderId=" + this.ST_ID;
try
{
return ST_ExecuteSql4Value(ST_strSQL);
}
catch
{
return -1;
}
}
}
/// <summary>
/// sum
/// </summary>
public double ST_Total
{
get
{
ST_strSQL = "Select Sum(A.ST_Price * A.ST_Discount * C.ST_Quantity) as ST_Total From ST_Flower A,ST_Orders B ,ST_OrderDetails C Where A.ST_id = C.ST_FlowerId and B.ST_id = C.ST_OrderId And C.ST_OrderId=" + this.ST_ID;
try
{
return (double)ST_ExecuteSql4ValueEx(ST_strSQL);
}
catch
{
return 0.0;
}
}
}
/// <summary>
/// ST_User ID
/// </summary>
public int ST_UserId
{
get
{
return ST_userId;
}
set
{
ST_userId = value;
}
}
#endregion
#region ST_Functions of order class
/// <summary>
/// return details of this order
/// </summary>
/// <returns></returns>
public ICollection ST_GetItems()
{
return ST_allFlowers;
}
public ST_OrderDetails this[int index]
{
get
{
return (ST_OrderDetails)ST_allFlowers[index];
}
}
public void ST_Clear()
{
ST_allFlowers.Clear();
}
public void ST_Add(ST_OrderDetails value)
{
ST_allFlowers.Add(value);
}
bool IEnumerator.MoveNext()
{
ST_position++;
if(ST_position>=ST_allFlowers.Count)
{
return false;
}
else
{
return true;
}
}
void IEnumerator.Reset()
{
ST_position = -1;
}
public void ST_RemoveAt(int index)
{
ST_allFlowers.RemoveAt(index);
}
public void ST_Remove(int itemId)
{
foreach(ST_OrderDetails item in ST_allFlowers)
{
if(itemId == item.ST_FlowerId)
{
ST_allFlowers.Remove(item);
return;
}
}
}
public int ST_Have(int ST_userId)
{
try
{
string [] ST_arrSQL = new String[ST_allFlowers.Count];
ST_strSQL = "Insert into ST_Orders(ST_UserId) values(" + ST_userId.ToString() + ")";
ST_ExecuteSql(ST_strSQL);
ST_strSQL = "Select Max(ST_Id) From ST_Orders";
int orderId = ST_ExecuteSql4Value(ST_strSQL);
System.Text.StringBuilder ST_sb = new System.Text.StringBuilder();
ST_GROUP.FlowerPrearrange.ST_OrderDetails ST_item = new ST_GROUP.FlowerPrearrange.ST_OrderDetails();
for(int i=0;i<ST_allFlowers.Count;i++)
{
ST_item = (ST_GROUP.FlowerPrearrange.ST_OrderDetails)ST_allFlowers[i];
ST_sb.Append("Insert into ST_OrderDetails(ST_OrderId,ST_FlowerId,ST_Quantity) values(");
ST_sb.Append(orderId.ToString());
ST_sb.Append(",");
ST_sb.Append(ST_item.ST_FlowerId.ToString());
ST_sb.Append(",");
ST_sb.Append(ST_item.ST_Quantity.ToString());
ST_sb.Append(")");
ST_arrSQL[i] = ST_sb.ToString();
ST_sb.Remove(0,ST_sb.Length);
}
ST_ExecuteSqls(ST_arrSQL);
return orderId;
}
catch
{
throw new Exception("ST_Order Flowers FAILED!");
}
}
public static bool ST_Deal(int orderId)
{
ST_strSQL = "Update ST_OrdersV Set ST_Status =1 Where ST_Id=" + orderId.ToString();
try
{
ST_ExecuteSql4Ds(ST_strSQL);
ST_strSQL = "Update ST_Flower set ST_Sales=ST_Sales+1 Where ST_id in(SELECT b.ST_FlowerId FROM ST_Orders a INNER JOIN ST_OrderDetails b ON a.ST_Id = b.ST_OrderId AND a.ST_Id = " + orderId.ToString() + ")";
ST_ExecuteSql4Ds(ST_strSQL);
return true;
}
catch
{
throw new Exception("處理定單失敗!");
}
}
public static DataSet ST_GetOrder(int orderId)
{
ST_strSQL = "SELECT ST_UserId, ST_OrderDate,CASE WHEN ST_Status = '1' THEN 'dealt' ELSE 'on progress' END AS ST_Status FROM ST_Orders Where ST_Id=" + orderId.ToString();
try
{
return ST_ExecuteSql4Ds(ST_strSQL);
}
catch
{
throw new Exception("Get order failed!");
}
}
public static DataSet ST_GetOrders()
{
ST_strSQL = "SELECT * FROM ST_OrdersV Where ST_Status=0 or ST_Status IS NULL";
try
{
return ST_ExecuteSql4Ds(ST_strSQL);
}
catch
{
throw new Exception("Get ST_Orders failed!");
}
}
public static DataSet ST_GetOrders(int ST_userId)
{
ST_strSQL = "SELECT ST_Id,ST_UserId, ST_OrderDate,CASE WHEN ST_Status = '1' THEN 'dealt' ELSE 'on progress' END AS ST_Status FROM St_Orders Where ST_UserId=" + ST_userId.ToString();
try
{
return ST_ExecuteSql4Ds(ST_strSQL);
}
catch
{
throw new Exception("獲取定單失敗!");
}
}
public static DataSet ST_GetDetails(int orderId)
{
ST_strSQL = "Select * from ST_DetailsV Where ST_orderId=" + orderId.ToString();
try
{
return ST_ExecuteSql4Ds(ST_strSQL);
}
catch
{
throw new Exception("獲取定單細節(jié)失敗!");
}
}
#endregion
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -