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

📄 invoice.cs

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

    public sealed class Invoice : IInvoice
    {
        private int m_TotalOfInvoice;

        public bool Add(InvoiceInfo invoiceInfo)
        {
            Parameters cmdParams = new Parameters();
            cmdParams.AddInParameter("@ClientId", DbType.Int32, invoiceInfo.ClientId);
            cmdParams.AddInParameter("@UserName", DbType.String, invoiceInfo.UserName);
            cmdParams.AddInParameter("@OrderId", DbType.Int32, invoiceInfo.OrderId);
            cmdParams.AddInParameter("@InvoiceType", DbType.Int32, invoiceInfo.InvoiceType);
            cmdParams.AddInParameter("@InvoiceDate", DbType.DateTime, invoiceInfo.InvoiceDate);
            cmdParams.AddInParameter("@InvoiceNum", DbType.String, invoiceInfo.InvoiceNum);
            cmdParams.AddInParameter("@InvoiceTitle", DbType.String, invoiceInfo.InvoiceTitle);
            cmdParams.AddInParameter("@InvoiceContent", DbType.String, invoiceInfo.InvoiceContent);
            cmdParams.AddInParameter("@TotalMoney", DbType.Decimal, invoiceInfo.TotalMoney);
            cmdParams.AddInParameter("@Drawer", DbType.String, invoiceInfo.Drawer);
            cmdParams.AddInParameter("@Inputer", DbType.String, invoiceInfo.Inputer);
            cmdParams.AddInParameter("@Memo", DbType.String, invoiceInfo.Memo);
            return DBHelper.ExecuteProc("PR_Shop_Invoice_Add", cmdParams);
        }

        public InvoiceInfo GetInvoiceInfoById(int invoiceId)
        {
            Database database = DatabaseFactory.CreateDatabase();
            DbCommand storedProcCommand = database.GetStoredProcCommand("PR_Shop_Invoice_GetById");
            database.AddInParameter(storedProcCommand, "@InvoiceId", DbType.Int32, invoiceId);
            using (NullableDataReader reader = new NullableDataReader(database.ExecuteReader(storedProcCommand)))
            {
                if (reader.Read())
                {
                    InvoiceInfo info = InvoiceItemFromrdr(reader);
                    info.MoneyTotal = reader.GetDecimal("MoneyTotal");
                    info.MoneyReceipt = reader.GetDecimal("MoneyReceipt");
                    info.Memo = reader.GetString("Memo");
                    return info;
                }
                return new InvoiceInfo(true);
            }
        }

        public InvoiceInfo GetInvoiceInfoByOrderId(int orderId)
        {
            Database database = DatabaseFactory.CreateDatabase();
            DbCommand storedProcCommand = database.GetStoredProcCommand("PR_Shop_Invoice_GetByOrderId");
            database.AddInParameter(storedProcCommand, "@OrderId", DbType.Int32, orderId);
            using (NullableDataReader reader = new NullableDataReader(database.ExecuteReader(storedProcCommand)))
            {
                if (reader.Read())
                {
                    InvoiceInfo info = new InvoiceInfo();
                    info.ClientId = reader.GetInt32("ClientID");
                    info.UserName = reader.GetString("UserName");
                    info.InvoiceContent = reader.GetString("InvoiceContent");
                    info.OrderNum = reader.GetString("OrderNum");
                    info.ClientName = reader.GetString("ClientName");
                    info.MoneyTotal = reader.GetDecimal("MoneyTotal");
                    info.MoneyReceipt = reader.GetDecimal("MoneyReceipt");
                    info.Email = reader.GetString("Email");
                    return info;
                }
                return new InvoiceInfo(true);
            }
        }

        public IList<InvoiceInfo> GetList(int startRowIndexId, int maxNumberRows, int searchType, string keyword, int quickSearch)
        {
            Database database = DatabaseFactory.CreateDatabase();
            DbCommand storedProcCommand = database.GetStoredProcCommand("PR_Common_GetList");
            database.AddInParameter(storedProcCommand, "@StartRows", DbType.Int32);
            database.AddInParameter(storedProcCommand, "@PageSize", DbType.Int32);
            database.AddInParameter(storedProcCommand, "@SortColumn", DbType.String);
            database.AddInParameter(storedProcCommand, "@StrColumn", DbType.String);
            database.AddInParameter(storedProcCommand, "@Sorts", DbType.String);
            database.AddInParameter(storedProcCommand, "@Filter", DbType.String);
            database.AddInParameter(storedProcCommand, "@TableName", DbType.String);
            database.SetParameterValue(storedProcCommand, "@StartRows", startRowIndexId);
            database.SetParameterValue(storedProcCommand, "@PageSize", maxNumberRows);
            database.SetParameterValue(storedProcCommand, "@SortColumn", "InvoiceID");
            database.SetParameterValue(storedProcCommand, "@StrColumn", "I.*,O.OrderNum, C.ShortedForm AS ClientName");
            database.SetParameterValue(storedProcCommand, "@Sorts", "DESC");
            database.SetParameterValue(storedProcCommand, "@TableName", "PE_InvoiceItem AS I LEFT JOIN PE_Orders AS O LEFT JOIN PE_Client AS C ON O.ClientID = C.ClientID ON I.OrderID = O.OrderID");
            switch (quickSearch)
            {
                case 1:
                    database.SetParameterValue(storedProcCommand, "@Filter", "datediff(dd,I.InvoiceDate,GetDate())<10");
                    break;

                case 2:
                    database.SetParameterValue(storedProcCommand, "@Filter", "datediff(m,I.InvoiceDate,GetDate())<1");
                    break;

                case 3:
                    database.SetParameterValue(storedProcCommand, "@Filter", "I.InvoiceType=0");
                    break;

                case 4:
                    database.SetParameterValue(storedProcCommand, "@Filter", "I.InvoiceType=1");
                    break;

                case 5:
                    database.SetParameterValue(storedProcCommand, "@Filter", "I.InvoiceType=2");
                    break;

                default:
                    if (!string.IsNullOrEmpty(keyword))
                    {
                        switch (searchType)
                        {
                            case 1:
                                database.SetParameterValue(storedProcCommand, "@Filter", "C.ShortedForm like '%" + keyword + "%'");
                                break;

                            case 2:
                                database.SetParameterValue(storedProcCommand, "@Filter", "Drawer like '%" + keyword + "%'");
                                break;

                            case 3:
                                database.SetParameterValue(storedProcCommand, "@Filter", "datediff(dd,I.InvoiceDate,'" + keyword + "')=0");
                                break;

                            case 4:
                                database.SetParameterValue(storedProcCommand, "@Filter", "I.ClientID=" + keyword);
                                break;

                            case 5:
                                database.SetParameterValue(storedProcCommand, "@Filter", "I.OrderID=" + keyword + "");
                                break;
                        }
                    }
                    else
                    {
                        database.SetParameterValue(storedProcCommand, "@Filter", "");
                    }
                    break;
            }
            database.AddOutParameter(storedProcCommand, "@Total", DbType.Int32, 10);
            IList<InvoiceInfo> list = new List<InvoiceInfo>();
            using (NullableDataReader reader = new NullableDataReader(database.ExecuteReader(storedProcCommand)))
            {
                while (reader.Read())
                {
                    list.Add(InvoiceItemFromrdr(reader));
                }
            }
            this.m_TotalOfInvoice = (int) database.GetParameterValue(storedProcCommand, "@Total");
            return list;
        }

        public int GetTotalOfInvoiceItem()
        {
            return this.m_TotalOfInvoice;
        }

        private static InvoiceInfo InvoiceItemFromrdr(NullableDataReader rdr)
        {
            InvoiceInfo info = new InvoiceInfo();
            info.InvoiceId = rdr.GetInt32("InvoiceID");
            info.ClientId = rdr.GetInt32("ClientID");
            info.UserName = rdr.GetString("UserName");
            info.OrderId = rdr.GetInt32("OrderID");
            info.InvoiceType = rdr.GetInt32("InvoiceType");
            info.InvoiceNum = rdr.GetString("InvoiceNum");
            info.InvoiceTitle = rdr.GetString("InvoiceTitle");
            info.InvoiceContent = rdr.GetString("InvoiceContent");
            info.InvoiceDate = rdr.GetDateTime("InvoiceDate");
            info.TotalMoney = rdr.GetDecimal("TotalMoney");
            info.Drawer = rdr.GetString("Drawer");
            info.Inputer = rdr.GetString("Inputer");
            info.InputTime = rdr.GetDateTime("InputTime");
            info.OrderNum = rdr.GetString("OrderNum");
            info.ClientName = rdr.GetString("ClientName");
            return info;
        }
    }
}

⌨️ 快捷键说明

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