⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 salecount.cs

📁 动易SiteFactory&#8482 网上商店系统1.0源代码
💻 CS
字号:
namespace PowerEasy.SqlServerDal.Shop
{
    using Microsoft.Practices.EnterpriseLibrary.Data;
    using PowerEasy.Common;
    using PowerEasy.IDal.Shop;
    using PowerEasy.Model.Shop;
    using PowerEasy.SqlServerDal;
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.Common;
    using System.Text;

    public sealed class SaleCount : ISaleCount
    {
        private int m_TotalOfSaleCount;

        public IList<SaleCountInfo> GetSaleCountList(int startRowIndexId, int maxNumberRows, string infoType, string searchType, string keyword, int orderType)
        {
            string str;
            Database database = DatabaseFactory.CreateDatabase();
            DbCommand storedProcCommand = database.GetStoredProcCommand("PR_Shop_Statistics_GetList");
            database.AddInParameter(storedProcCommand, "@StartRows", DbType.Int32, startRowIndexId);
            database.AddInParameter(storedProcCommand, "@PageSize", DbType.Int32, maxNumberRows);
            database.AddInParameter(storedProcCommand, "@ID", DbType.String, "P.ProductID");
            database.AddInParameter(storedProcCommand, "@Group", DbType.String, "Group by P.ProductID");
            if ((orderType == 0) || (orderType == 1))
            {
                database.AddInParameter(storedProcCommand, "@SortColumn", DbType.String, "SUM(I.Amount)");
                if (orderType == 1)
                {
                    database.AddInParameter(storedProcCommand, "@Sorts", DbType.String, "ASC");
                }
                else
                {
                    database.AddInParameter(storedProcCommand, "@Sorts", DbType.String, "DESC");
                }
            }
            else
            {
                database.AddInParameter(storedProcCommand, "@SortColumn", DbType.String, "SUM(I.SubTotal)");
                if (orderType == 3)
                {
                    database.AddInParameter(storedProcCommand, "@Sorts", DbType.String, "ASC");
                }
                else
                {
                    database.AddInParameter(storedProcCommand, "@Sorts", DbType.String, "DESC");
                }
            }
            database.AddInParameter(storedProcCommand, "@TableName", DbType.String, "PE_OrderItem I inner join PE_CommonProduct P on I.ProductID=P.ProductID and I.TableName=P.TableName");
            StringBuilder builder = new StringBuilder();
            if (string.IsNullOrEmpty(infoType) || (infoType == "All"))
            {
                database.AddInParameter(storedProcCommand, "@StrColumn", DbType.String, " Max(I.ProductID) as ProductID,Max(I.TableName) as TableName,Max(P.ProductName) as ProductName,Max(P.Unit) as Unit,sum(I.Amount) as tAmount,sum(I.SubTotal) as tSubTotal ");
                builder.Append("I.OrderID in (select OrderID from PE_Orders where (MoneyReceipt>=MoneyTotal or MoneyReceipt>0) And DeliverStatus<=1)");
            }
            else
            {
                database.AddInParameter(storedProcCommand, "@StrColumn", DbType.String, " Max(I.ProductID) as ProductID,Max(I.TableName) as TableName,Max(P.ProductName) as ProductName,Max(P.Unit) as Unit,sum(I.Amount) as NoDeliverAmount ");
                builder.Append("I.OrderID in (select OrderID from PE_Orders where MoneyReceipt>=MoneyTotal)");
            }
            if (!string.IsNullOrEmpty(searchType) && ((str = searchType) != null))
            {
                if (!(str == "Day"))
                {
                    if (str == "Week")
                    {
                        builder.Append(" and datediff(ww,I.BeginDate,GetDate())<1");
                    }
                    else if (str == "Month")
                    {
                        builder.Append(" and datediff(m,I.BeginDate,GetDate())<1");
                    }
                    else if (str == "ProductName")
                    {
                        builder.Append(" and P.ProductName like '%" + keyword + "%'");
                    }
                    else if (str == "InputTime")
                    {
                        builder.Append(" and I.BeginDate='" + keyword + "'");
                    }
                }
                else
                {
                    builder.Append(" and datediff(dd,I.BeginDate,GetDate())<1");
                }
            }
            database.AddInParameter(storedProcCommand, "@Filter", DbType.String, builder.ToString());
            database.AddOutParameter(storedProcCommand, "@Total", DbType.Int32, maxNumberRows);
            IList<SaleCountInfo> list = new List<SaleCountInfo>();
            using (NullableDataReader reader = new NullableDataReader(database.ExecuteReader(storedProcCommand)))
            {
                while (reader.Read())
                {
                    list.Add(SaleCountInfoFromrdataReader(reader, infoType));
                }
            }
            this.m_TotalOfSaleCount = DataConverter.CLng(database.GetParameterValue(storedProcCommand, "@Total"));
            return list;
        }

        public int GetTotalOfSaleCount()
        {
            return this.m_TotalOfSaleCount;
        }

        private static SaleCountInfo SaleCountInfoFromrdataReader(NullableDataReader dataReader, string infoType)
        {
            SaleCountInfo info = new SaleCountInfo();
            info.ProductId = dataReader.GetInt32("ProductID");
            info.ProductName = dataReader.GetString("ProductName");
            info.Unit = dataReader.GetString("Unit");
            info.TableName = dataReader.GetString("TableName");
            if (infoType == "NoDeliver")
            {
                info.NoDeliverAmount = dataReader.GetInt32("NoDeliverAmount");
                return info;
            }
            info.TotalAmount = dataReader.GetInt32("tAmount");
            info.SubTotal = dataReader.GetDecimal("tSubTotal");
            return info;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -