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

📄 lineitemaccessor.cs.svn-base

📁 MIED是用于个人帐务管理的小型软件
💻 SVN-BASE
字号:
using System.Data.Common;
using DatabaseUtil;
using Mied.BusinessObject.Bills;
using Mied.DAL.TableSchema;
using System.Data;
using System.Collections;
using System;

namespace Mied.DAL.Accesses
{
    public class LineItemAccessor : AccessorSelect
    {
        public LineItemAccessor(MiedDatabase database)
            : base(database, LineItemSchema.TableName)
        {
        }

        public LineItemList SelectList(int billID)
        {
            IList list = this.SelectList(LineItemSchema.FieldBillID, billID);
            return (LineItemList)list;
        }

        public void SaveList(int billID, LineItemList list, DbTransaction transaction)
        {
            this.DeleteList(billID, transaction);
            foreach (LineItem lineItem in list)
                base.Insert(lineItem, transaction);
        }

        public void DeleteList(int billID, DbTransaction transaction)
        {
            LineItemList list = this.SelectList(billID);
            foreach (LineItem item in list)
                this.Delete(item.ID.Value, transaction);
        }

        protected override IList CreateEntityList()
        {
            return new LineItemList();
        }

        public bool HasLineItemReferenced(int productID)
        {
            DbCommand command = this.Database.Connection.CreateCommand();

            command.CommandText = string.Format("SELECT count({0}) FROM {1}",LineItemSchema.FieldProductID,LineItemSchema.TableName);
            CommandFactory.WhereAnd(command, LineItemSchema.FieldProductID, productID);           

            object res = command.ExecuteScalar();
            Type type = res.GetType();

            int count = (null != res && type != typeof(DBNull)) ? (int)res : 0;

            return count >0;
        }
        protected override CommandFieldValueList BuildPairList(Mied.BusinessObject.Entity entity)
        {
            LineItem lineItem = (LineItem)entity;
            CommandFieldValueList list = new CommandFieldValueList(lineItem.ID);
            list.Add(LineItemSchema.FieldBillID, lineItem.BillID);
            list.Add(LineItemSchema.FieldOrder, lineItem.Order);
            list.Add(LineItemSchema.FieldProductID, lineItem.ProductID);
            list.Add(LineItemSchema.FieldColumn1, lineItem.Column1);
            list.Add(LineItemSchema.FieldColumn2, lineItem.Column2);
            list.Add(LineItemSchema.FieldColumn3, lineItem.Column3);
            list.Add(LineItemSchema.FieldDescription, lineItem.Description);
            list.Add(LineItemSchema.FieldQuantity, lineItem.Quantity);
            list.Add(LineItemSchema.FieldPrice, lineItem.Price);
            list.Add(LineItemSchema.FieldDiscount, lineItem.DiscountPercent);
            list.Add(LineItemSchema.FieldTax1, lineItem.Tax1);
            list.Add(LineItemSchema.FieldTax2, lineItem.Tax2);
            list.Add(LineItemSchema.FieldAmount, lineItem.Amount);
            list.Add(LineItemSchema.FieldReceiveQuantity, lineItem.ReceivedQuantity);
            return list;
        }

        protected override Mied.BusinessObject.Entity ReadEntity(RecordReader reader)
        {
            LineItem lineItem = new LineItem();

            lineItem.ID = reader.GetInt32(LineItemSchema.FieldID);
            lineItem.BillID = reader.GetInt32(LineItemSchema.FieldBillID);
            lineItem.Order = reader.GetInt32(LineItemSchema.FieldOrder);
            lineItem.ProductID = reader.GetInt32Null(LineItemSchema.FieldProductID);
            lineItem.Column1 = reader.GetString(LineItemSchema.FieldColumn1);
            lineItem.Column2 = reader.GetString(LineItemSchema.FieldColumn2);
            lineItem.Column3 = reader.GetString(LineItemSchema.FieldColumn3);
            lineItem.Description = reader.GetString(LineItemSchema.FieldDescription);
            lineItem.Quantity = reader.GetDecimal(LineItemSchema.FieldQuantity);
            lineItem.Price = reader.GetDecimal(LineItemSchema.FieldPrice);
            lineItem.DiscountPercent = reader.GetDecimal(LineItemSchema.FieldDiscount);
            lineItem.Tax1 = reader.GetBoolean(LineItemSchema.FieldTax1);
            lineItem.Tax2 = reader.GetBoolean(LineItemSchema.FieldTax2);
            lineItem.Amount = reader.GetDecimal(LineItemSchema.FieldAmount);
            lineItem.ReceivedQuantity = reader.GetDecimal(LineItemSchema.FieldReceiveQuantity);

            return lineItem;
        }
    }
}

⌨️ 快捷键说明

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