www.pudn.com > EMS.rar > BaseInfo.cs


using System; 
using System.Collections.Generic; 
using System.Text; 
//引用类库 
using System.Data; 
using System.Data.SqlClient; 
using System.Windows.Forms; 
using System.Runtime.InteropServices; 
 
namespace EMS.BaseClass 
{ 
    class BaseInfo 
    { 
        //[DllImport("shell32")] 
        //public static extern long ShellExecute() 
        ////(ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long 
        //public static extern long  
        //[DllImport("NETAPI32")] 
        //public static extern long NetMessageBufferSend(string Server, byte[] yToName, byte[] yFromName, byte[] yMsg, int lSize); 
 
        DataBase data = new DataBase(); 
 
        #region 添加--往来单位信息 
        ///  
        /// 添加往来单位 
        ///  
        ///  
        /// 返回往来单位id 
        public int AddUnits(cUnitsInfo units) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@unitcode",  SqlDbType.VarChar, 5, units.UnitCode), 
                						data.MakeInParam("@fullname",  SqlDbType.VarChar, 30, units.FullName), 
                						data.MakeInParam("@tax",  SqlDbType.VarChar, 30, units.Tax), 
                						data.MakeInParam("@tel",  SqlDbType.VarChar, 20, units.Tel), 
                						data.MakeInParam("@linkman",  SqlDbType.VarChar, 10, units.LinkMan), 
                						data.MakeInParam("@address",  SqlDbType.VarChar, 60, units.Address), 
                						data.MakeInParam("@accounts",  SqlDbType.VarChar, 80, units.Accounts), 
										 
			}; 
            return (data.RunProc("INSERT INTO tb_units (unitcode, fullname, tax, tel, linkman, address, accounts) VALUES (@unitcode,@fullname,@tax,@tel,@linkman,@address,@accounts)", prams)); 
        } 
        #endregion  
 
        #region 修改--往来单位信息 
        ///  
        /// 修改往来单位信息 
        ///  
        ///  
        ///  
        public int UpdateUnits(cUnitsInfo units) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@unitcode",  SqlDbType.VarChar, 5, units.UnitCode), 
                						data.MakeInParam("@fullname",  SqlDbType.VarChar, 30, units.FullName), 
                						data.MakeInParam("@tax",  SqlDbType.VarChar, 30, units.Tax), 
                						data.MakeInParam("@tel",  SqlDbType.VarChar, 20, units.Tel), 
                						data.MakeInParam("@linkman",  SqlDbType.VarChar, 10, units.LinkMan), 
                						data.MakeInParam("@address",  SqlDbType.VarChar, 60, units.Address), 
                						data.MakeInParam("@accounts",  SqlDbType.VarChar, 80, units.Accounts), 
			}; 
            return (data.RunProc("update tb_units set fullname=@fullname,tax=@tax,tel=@tel,linkman=@linkman,address=@address,accounts=@accounts where unitcode=@unitcode", prams)); 
        } 
        #endregion 
 
        #region 删除--往来单位信息 
        ///  
        /// 删除往来单位 
        ///  
        ///  
        /// 返回往来单位id 
        public int DeleteUnits(cUnitsInfo units) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@unitcode",  SqlDbType.VarChar, 5, units.UnitCode), 
			}; 
            return (data.RunProc("delete from tb_units where unitcode=@unitcode", prams)); 
        } 
        #endregion  
 
        #region 查询--往来单位信息 
        ///  
        /// 根据--单位编号--得到往来单位信息 
        ///  
        ///  
        ///  
        ///  
        public DataSet FindUnitsByUnitCode(cUnitsInfo units,string tbName) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@unitcode",  SqlDbType.VarChar, 5, units.UnitCode+"%"), 
			}; 
            return (data.RunProcReturn("select * from tb_units where unitcode like @unitcode", prams, tbName)); 
        } 
        ///  
        /// 根据--单位名称--得到往来单位信息 
        ///  
        ///  
        ///  
        ///  
        public DataSet FindUnitsByFullName(cUnitsInfo units, string tbName) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@fullname",  SqlDbType.VarChar, 30, units.FullName+"%"), 
			}; 
            return (data.RunProcReturn("select * from tb_units where fullname like @fullname", prams, tbName)); 
        } 
        ///  
        /// 得到所有--往来单位信息 
        ///  
        ///  
        ///  
        public DataSet GetAllUnits(string tbName) 
        { 
            return (data.RunProcReturn("select * from tb_units ORDER BY unitcode", tbName)); 
        } 
        #endregion 
 
 
        #region 添加--库存商品信息 
        ///  
        /// 添加库存商品基本信息 
        ///  
        /// 库存商品数据结构类对象 
        ///  
        public int AddStock(cStockInfo stock) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@tradecode",  SqlDbType.VarChar, 5, stock.TradeCode), 
                						data.MakeInParam("@fullname",  SqlDbType.VarChar, 30,stock.FullName), 
                						data.MakeInParam("@type",  SqlDbType.VarChar, 10, stock.TradeType), 
                						data.MakeInParam("@standard",  SqlDbType.VarChar, 10, stock.Standard), 
                						data.MakeInParam("@unit",  SqlDbType.VarChar, 4, stock.Unit), 
                						data.MakeInParam("@produce",  SqlDbType.VarChar, 20, stock.Produce), 
			}; 
            return (data.RunProc("INSERT INTO tb_stock (tradecode, fullname, type, standard, unit, produce) VALUES (@tradecode,@fullname,@type,@standard,@unit,@produce)", prams)); 
        } 
        #endregion 
 
        #region 修改--库存商品信息 
        ///  
        /// 修改库存商品信息 
        ///  
        /// 库存商品数据结构类对象 
        ///  
        public int UpdateStock(cStockInfo stock) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@tradecode",  SqlDbType.VarChar, 5, stock.TradeCode), 
                						data.MakeInParam("@fullname",  SqlDbType.VarChar, 30,stock.FullName), 
                						data.MakeInParam("@type",  SqlDbType.VarChar, 10, stock.TradeType), 
                						data.MakeInParam("@standard",  SqlDbType.VarChar, 10, stock.Standard), 
                						data.MakeInParam("@unit",  SqlDbType.VarChar, 4, stock.Unit), 
                						data.MakeInParam("@produce",  SqlDbType.VarChar, 20, stock.Produce), 
			}; 
            return (data.RunProc("update tb_stock set fullname=@fullname,type=@type,standard=@standard,unit=@unit,produce=@produce where tradecode=@tradecode", prams)); 
        } 
        #endregion 
 
        #region 删除--库存商品信息 
        ///  
        /// 删除库存商品信息 
        ///  
        /// 库存商品数据结构类对象 
        ///  
        public int DeleteStock(cStockInfo stock) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@tradecode",  SqlDbType.VarChar, 5, stock.TradeCode), 
			}; 
            return (data.RunProc("delete from tb_stock where tradecode=@tradecode", prams)); 
        } 
        #endregion 
 
        #region 查询--往来单位信息 
        ///  
        /// 根据--商品产地--得到库存商品信息 
        ///  
        /// 库存商品数据结构类对象 
        /// 映射原表名称 
        ///  
        public DataSet FindStockByProduce(cStockInfo stock, string tbName) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@produce",  SqlDbType.VarChar, 5, stock.Produce+"%"), 
			}; 
            return (data.RunProcReturn("select * from tb_stock where produce like @produce", prams, tbName)); 
        } 
        ///  
        /// 根据--商品名称--得到库存商品信息 
        ///  
        ///  
        ///  
        ///  
        public DataSet FindStockByFullName(cStockInfo stock, string tbName) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@fullname",  SqlDbType.VarChar, 30, stock.FullName+"%"), 
			}; 
            return (data.RunProcReturn("select * from tb_stock where fullname like @fullname", prams, tbName)); 
        } 
        ///  
        /// 得到所有--库存商品信息 
        ///  
        ///  
        ///  
        public DataSet GetAllStock(string tbName) 
        { 
            return (data.RunProcReturn("select * from tb_Stock ORDER BY tradecode", tbName)); 
        } 
        #endregion 
 
 
        #region 添加--公司职员信息 
        ///  
        /// 添加--公司职员--信息 
        ///  
        ///  
        ///  
        public int AddEmployee(cEmployeeInfo employee) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@employeecode",  SqlDbType.VarChar, 5, employee.EmployeeCode), 
                						data.MakeInParam("@fullname",  SqlDbType.VarChar, 20,employee.FullName), 
                						data.MakeInParam("@sex",  SqlDbType.VarChar, 4, employee.Sex), 
                						data.MakeInParam("@dept",  SqlDbType.VarChar, 20, employee.Dept), 
                						data.MakeInParam("@tel",  SqlDbType.VarChar, 20, employee.Tel), 
                						data.MakeInParam("@memo",  SqlDbType.VarChar, 20, employee.Memo), 
			}; 
            return (data.RunProc("INSERT INTO tb_Employee (employeecode, fullname, sex, dept, tel, memo) VALUES (@employeecode,@fullname,@sex,@dept,@tel,@memo)", prams)); 
        } 
        #endregion 
 
        #region 修改--公司职员信息 
        ///  
        /// 修改--公司职员--信息 
        ///  
        ///  
        ///  
        public int UpdateEmployee(cEmployeeInfo employee) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@employeecode",  SqlDbType.VarChar, 5, employee.EmployeeCode), 
                						data.MakeInParam("@fullname",  SqlDbType.VarChar, 20,employee.FullName), 
                						data.MakeInParam("@sex",  SqlDbType.VarChar, 4, employee.Sex), 
                						data.MakeInParam("@dept",  SqlDbType.VarChar, 20, employee.Dept), 
                						data.MakeInParam("@tel",  SqlDbType.VarChar, 20, employee.Tel), 
                						data.MakeInParam("@memo",  SqlDbType.VarChar, 20, employee.Memo), 
			}; 
            return (data.RunProc("update tb_Employee set fullname=@fullname,sex=@sex,dept=@dept,tel=@tel,memo=@memo where employeecode=@employeecode", prams)); 
        } 
        #endregion 
 
        #region 删除--公司职员信息 
        ///  
        /// 删除--公司职员--信息 
        ///  
        ///  
        ///  
        public int DeleteEmployee(cEmployeeInfo employee) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@employeecode",  SqlDbType.VarChar, 5, employee.EmployeeCode), 
			}; 
            return (data.RunProc("delete from tb_employee where employeecode=@employeecode", prams)); 
        } 
        #endregion 
 
        #region 查询--公司职员信息 
        ///  
        /// 根据--职员所在部门--得到公司职员信息 
        ///  
        ///  
        ///  
        ///  
        public DataSet FindEmployeeByDept(cEmployeeInfo employee, string tbName) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@dept",  SqlDbType.VarChar, 20, employee.Dept+"%"), 
			}; 
            return (data.RunProcReturn("select * from tb_employee where dept like @dept", prams, tbName)); 
        } 
        ///  
        /// 根据--职员姓名--得到公司职员信息 
        ///  
        ///  
        ///  
        ///  
        public DataSet FindEmployeeByFullName(cEmployeeInfo employee, string tbName) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@fullname",  SqlDbType.VarChar, 20, employee.FullName+"%"), 
			}; 
            return (data.RunProcReturn("select * from tb_employee where fullname like @fullname", prams, tbName)); 
        } 
        ///  
        /// 得到所有--公司职员信息 
        ///  
        ///  
        ///  
        public DataSet GetAllEmployee(string tbName) 
        { 
            return (data.RunProcReturn("select * from tb_Employee ORDER BY employeecode", tbName)); 
        } 
        #endregion 
 
 
        #region 商品进销存---单据过账 
 
        ///  
        /// 得到所有tbName表中信息--主要用来:得到最大的单据编号然后自动编号 
        ///  
        /// 数据表名称 
        ///  
        public DataSet GetAllBill(string tbName_trueName) 
        {  
            return(data.RunProcReturn("select * from "+tbName_trueName+"",tbName_trueName)); 
        } 
        ///  
        /// 处理进货单和销售退货单-数据---向主表中添加数据 
        ///  
        /// 过账单据数据结构类对象 
        /// 数据库中数据表名称 
        ///  
        public int AddTableMainWarehouse(cBillInfo billinfo, string AddTableName_trueName) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@billdate",  SqlDbType.DateTime, 8, billinfo.BillDate), 
                						data.MakeInParam("@billcode",  SqlDbType.VarChar, 20,billinfo.BillCode), 
                						data.MakeInParam("@units",  SqlDbType.VarChar, 30, billinfo.Units), 
                						data.MakeInParam("@handle",  SqlDbType.VarChar, 10, billinfo.Handle), 
                						data.MakeInParam("@summary",  SqlDbType.VarChar, 100, billinfo.Summary), 
                						data.MakeInParam("@fullpayment",  SqlDbType.Float, 8, billinfo.FullPayment), 
                                        data.MakeInParam("@payment",  SqlDbType.Float, 8, billinfo.Payment), 
			}; 
            return (data.RunProc("INSERT INTO " + AddTableName_trueName + " (billdate, billcode, units, handle, summary, fullpayment,payment) VALUES (@billdate,@billcode,@units,@handle,@summary,@fullpayment,@payment)", prams)); 
        } 
        ///  
        /// 处理进货退货单和销售单-数据---向主表中添加数据 
        ///  
        /// 过账单据数据结构类对象 
        /// 数据库中数据表名称 
        ///  
        public int AddTableMainSellhouse(cBillInfo billinfo, string AddTableName_trueName) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@billdate",  SqlDbType.DateTime, 8, billinfo.BillDate), 
                						data.MakeInParam("@billcode",  SqlDbType.VarChar, 20,billinfo.BillCode), 
                						data.MakeInParam("@units",  SqlDbType.VarChar, 30, billinfo.Units), 
                						data.MakeInParam("@handle",  SqlDbType.VarChar, 10, billinfo.Handle), 
                						data.MakeInParam("@summary",  SqlDbType.VarChar, 100, billinfo.Summary), 
                						data.MakeInParam("@fullpayment",  SqlDbType.Float, 8, billinfo.FullPayment), 
                                        data.MakeInParam("@payment",  SqlDbType.Float, 8, billinfo.Payment), 
			}; 
            return (data.RunProc("INSERT INTO " + AddTableName_trueName + " (billdate, billcode, units, handle, summary, fullgathering,gathering) VALUES (@billdate,@billcode,@units,@handle,@summary,@fullpayment,@payment)", prams)); 
        } 
 
 
 
        ///  
        /// 向明细表中添加数据-进货单-销售退货单-销售单-进货退货单 
        ///  
        /// 过账单据数据结构类对象 
        /// 数据库中数据表名称 
        ///  
        public int AddTableDetailedWarehouse(cBillInfo billinfo, string AddTableName_trueName) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@billcode",  SqlDbType.VarChar, 20, billinfo.BillCode), 
                						data.MakeInParam("@tradecode",  SqlDbType.VarChar, 20,billinfo.TradeCode), 
                						data.MakeInParam("@fullname",  SqlDbType.VarChar, 20, billinfo.FullName), 
                						data.MakeInParam("@unit",  SqlDbType.VarChar, 10, billinfo.TradeUnit), 
                						data.MakeInParam("@qty",  SqlDbType.Float, 8, billinfo.Qty), 
                						data.MakeInParam("@price",  SqlDbType.Float, 8, billinfo.Price), 
                                        data.MakeInParam("@tsum",  SqlDbType.Float, 8, billinfo.TSum), 
                                        data.MakeInParam("@billdate",  SqlDbType.DateTime, 8, billinfo.BillDate), 
            }; 
            return (data.RunProc("INSERT INTO " + AddTableName_trueName + " (billcode, tradecode, fullname, unit, qty, price,tsum,billdate) VALUES (@billcode,@tradecode,@fullname,@unit,@qty,@price,@tsum,@billdate)", prams)); 
        } 
        ///  
        /// 修改库存数量和加权平均价格 
        ///  
        /// 库存商品数据结构类对象 
        ///  
        public int UpdateStock_QtyAndAveragerprice(cStockInfo stock) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@tradecode",  SqlDbType.VarChar, 5, stock.TradeCode), 
                						data.MakeInParam("@qty",  SqlDbType.Float, 30,stock.Qty), 
                                        data.MakeInParam("@price",  SqlDbType.Float, 30,stock.Price), 
                						data.MakeInParam("@averageprice",  SqlDbType.Float, 10, stock.AveragePrice), 
			}; 
            return (data.RunProc("update tb_stock set qty=@qty,price=@averageprice,averageprice=@averageprice where tradecode=@tradecode", prams)); 
        } 
        ///  
        /// 修改销售商品和进货退货商品--后的库存商品数量 
        ///  
        ///  
        ///  
        public int UpdateSaleStock_Qty(cStockInfo stock) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@tradecode",  SqlDbType.VarChar, 5, stock.TradeCode), 
                						data.MakeInParam("@qty",  SqlDbType.Float, 30,stock.Qty), 
			}; 
            return (data.RunProc("update tb_stock set qty=@qty where tradecode=@tradecode", prams)); 
        } 
        ///  
        /// 修改库存数量和销售(和进货退货)最后一次价格 
        ///  
        /// 库存商品数据结构类对象 
        ///  
        public int UpdateStock_Qty(cStockInfo stock) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@tradecode",  SqlDbType.VarChar, 5, stock.TradeCode), 
                						data.MakeInParam("@qty",  SqlDbType.Float, 30,stock.Qty), 
                                        data.MakeInParam("@price",  SqlDbType.Float, 30,stock.SalePrice), 
			}; 
            return (data.RunProc("update tb_stock set qty=@qty,saleprice=@price where tradecode=@tradecode", prams)); 
        } 
        ///  
        /// 根据商品编号TradeCode,主要得到数量和加权平均价格,用于对其更新。 
        ///  
        /// 库存商品数据结构类对象 
        /// 映射虚拟表名称 
        ///  
        public DataSet GetStockByTradeCode(cStockInfo stock, string tbName) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@tradecode",SqlDbType.VarChar, 30, stock.TradeCode), 
			}; 
            return (data.RunProcReturn("select * from tb_stock where tradecode like @tradecode", prams, tbName)); 
        } 
        #endregion 
 
        #region 商品进销存---往来账明细表 
        ///  
        /// 添加数据---往来账本明细表 
        ///  
        ///  
        ///  
        public int AddCurrentAccount(cCurrentAccount currentAccount) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@billdate",  SqlDbType.DateTime, 8, currentAccount.BillDate), 
                						data.MakeInParam("@billcode",  SqlDbType.VarChar, 20,currentAccount.BillCode), 
                						data.MakeInParam("@addgathering",  SqlDbType.Float, 8, currentAccount.AddGathering), 
                						data.MakeInParam("@factaddfee",  SqlDbType.Float, 8,currentAccount.FactAddFee), 
                						data.MakeInParam("@reducegathering",  SqlDbType.Float, 8,currentAccount.ReduceGathering), 
                						data.MakeInParam("@factfee",  SqlDbType.Float, 8, currentAccount.FactReduceGathering), 
                                        data.MakeInParam("@balance",  SqlDbType.Float, 8, currentAccount.Balance), 
                                        data.MakeInParam("@units",  SqlDbType.VarChar, 20,currentAccount.Units), 
			}; 
            return (data.RunProc("INSERT INTO tb_currentaccount (billdate, billcode, addgathering, factaddfee, reducegathering, factfee,balance,units) VALUES (@billdate,@billcode,@addgathering,@factaddfee,@reducegathering,@factfee,@balance,@units)", prams)); 
        } 
        #endregion 
 
 
        #region 进货管理--进货分析 
        ///  
        /// 商品进货分析--不含进货退货 
        ///  
        ///  
        ///  
        public DataSet BuyStockAnalyse(string tbName) 
        { 
            return (data.RunProcReturn("SELECT a.tradecode, a.fullname, a.averageprice as price, b.qty, b.tsum FROM tb_stock a INNER JOIN (SELECT SUM(qty) AS qty, SUM(tsum) AS tsum, fullname FROM tb_rewarehouse_detailed GROUP BY fullname) b ON a.fullname = b.fullname WHERE (a.price > 0)", tbName)); 
        } 
 
        ///  
        /// 商品进货分析(含退货) 
        ///  
        ///  
        ///  
        public DataSet BuyAllStockAnalyse(string tbName) 
        { 
            return (data.RunProcReturn("select tradecode,fullname,AVG(price) AS price,sum(qty) as qty,sum(tsum) as tsum from tb_warehouse_detailed group by tradecode,fullname", tbName)); 
        } 
        #endregion 
 
        #region  进货管理--进货统计 
        ///  
        /// 进货商品--详细统计 
        ///  
        ///  
        ///  
        ///  
        ///  
        ///  
        public DataSet BuyStockSumDetailed(cBillInfo billinfo, string tbName, DateTime starDateTime, DateTime endDateTime) 
        { 
            SqlParameter[] prams = { 
                						data.MakeInParam("@units",  SqlDbType.VarChar, 30, "%"+billinfo.Units+"%"), 
                						data.MakeInParam("@handle",  SqlDbType.VarChar, 10,"%"+ billinfo.Handle+"%"), 
			}; 
            return (data.RunProcReturn("SELECT b.tradecode AS 商品编号, b.fullname AS 商品名称, SUM(b.qty) AS 进货数量,SUM(b.tsum) AS 进货金额 FROM tb_warehouse_main a INNER JOIN (SELECT billcode, tradecode, fullname, SUM(qty) AS qty, SUM(tsum) AS tsum FROM tb_warehouse_detailed GROUP BY tradecode, billcode, fullname) b ON a.billcode = b.billcode AND a.units LIKE @units AND a.handle LIKE @handle WHERE (a.billdate BETWEEN '" + starDateTime + "' AND '" + endDateTime + "') GROUP BY b.tradecode, b.fullname",prams, tbName)); 
        } 
        ///  
        /// 进货商品--统计所有 
        ///  
        ///  
        ///  
        ///  
        ///  
        ///  
        public DataSet BuyStockSum(string tbName) 
        { 
            return (data.RunProcReturn("select tradecode as 商品编号,fullname as 商品名称,sum(qty) as 进货数量,sum(tsum)as 进货金额 from tb_warehouse_detailed group by tradecode, fullname", tbName)); 
        } 
        #endregion 
 
 
        #region  销售管理--销售统计 
        ///  
        /// 销售商品--详细统计 
        ///  
        ///  
        ///  
        ///  
        ///  
        ///  
        public DataSet SellStockSumDetailed(cBillInfo billinfo, string tbName, DateTime starDateTime, DateTime endDateTime) 
        { 
            SqlParameter[] prams = { 
                						data.MakeInParam("@units",  SqlDbType.VarChar, 30,"%"+ billinfo.Units+"%"), 
                						data.MakeInParam("@handle",  SqlDbType.VarChar, 10,"%"+ billinfo.Handle+"%"), 
			}; 
            return (data.RunProcReturn("SELECT b.tradecode AS 商品编号, b.fullname AS 商品名称, SUM(b.qty) AS 销售数量,SUM(b.tsum) AS 销售金额 FROM tb_sell_main a INNER JOIN (SELECT billcode, tradecode, fullname, SUM(qty) AS qty, SUM(tsum) AS tsum FROM tb_sell_detailed GROUP BY tradecode, billcode, fullname) b ON a.billcode = b.billcode AND a.units LIKE @units AND a.handle LIKE @units WHERE (a.billdate BETWEEN '" +starDateTime+ "' AND '" +endDateTime+ "') GROUP BY b.tradecode, b.fullname", prams, tbName)); 
        } 
        ///  
        /// 销售商品--统计所有 
        ///  
        ///  
        ///  
        ///  
        ///  
        ///  
        public DataSet SellStockSum(string tbName) 
        { 
            return (data.RunProcReturn("select tradecode as 商品编号,fullname as 商品名称,sum(qty) as 销售数量,sum(tsum) as 销售金额 from tb_sell_detailed group by tradecode, fullname", tbName)); 
        } 
        #endregion 
 
        #region 销售管理--月销售状况 
        ///  
        /// 统计商品销售状况 
        ///  
        ///  
        ///  
        public DataSet SellStockStatusSum(string tbName) 
        { 
            return (data.RunProcReturn("select a.tradecode as 商品编号,a.fullname as 商品名称,a.qty as 销售数量,a.price AS 销售均价,a.tsum as 销售金额,b.qty2 as '退货数量',b.tsum2 as '退货金额' from (SELECT tradecode,fullname,avg(price)as price,sum(qty) AS qty, sum(tsum) as tsum from tb_sell_detailed group by tradecode,fullname) a left join (SELECT tradecode,fullname,sum(qty) AS qty2, sum(tsum) as tsum2 from tb_resell_detailed group by tradecode,fullname) b on a.tradecode=b.tradecode ", tbName)); 
        } 
         
        ///  
        /// 明细账本---‘商品销售’和‘商品销售退货’ 
        ///  
        ///  
        ///  
        ///  
        ///  
        ///  
        public DataSet SellStockDetailed(string strTradeCode,DateTime starDateTime,DateTime endDateTime,string tbName) 
        { 
            return (data.RunProcReturn("SELECT billdate as 销售日期, billcode as 单据编号, tradecode as 商品编号, fullname as 商品名称, price as 销售价格, qty as 销售数量, tsum as 销售金额 FROM "+tbName+" where tradecode = '" + strTradeCode + "' AND billdate BETWEEN '" +starDateTime+ "' AND '" +endDateTime+"'", tbName)); 
        } 
        #endregion 
 
        #region 销售管理--商品销售排行 
        ///  
        /// 设置排行榜条件--往来单位-下拉列表 
        ///  
        ///  
        ///  
        public DataSet SetUnitsList(string tbName) 
        { 
            return (data.RunProcReturn("select * from tb_units", tbName)); 
        } 
        ///  
        /// 设置排行榜条件--经手人-下拉列表 
        ///  
        ///  
        ///  
        public DataSet SetHandleList(string tbName) 
        { 
            return (data.RunProcReturn("select * from tb_employee", tbName)); 
        } 
        ///  
        /// 按销售金额排行 
        ///  
        ///  
        ///  
        ///  
        ///  
        ///  
        public DataSet GetTSumDesc(string handle,string units,DateTime StarDateTime,DateTime EndDateTime,string tbName) 
        { 
            return (data.RunProcReturn("SELECT * FROM (SELECT b.tradecode AS 商品编号, b.fullname AS 商品名称, SUM(b.qty) AS 销售数量, SUM(b.tsum) AS 销售金额 FROM tb_sell_main a INNER JOIN (SELECT billcode, tradecode, fullname, SUM(qty) AS qty, SUM(tsum) AS tsum FROM tb_sell_detailed GROUP BY tradecode, billcode, fullname) b ON a.billcode = b.billcode AND a.units LIKE '%" + units + "%' AND a.handle LIKE '%" + handle + "%' WHERE (a.billdate BETWEEN '" + StarDateTime + "' AND '" + EndDateTime + "')GROUP BY b.tradecode, b.fullname) DERIVEDTBL ORDER BY 销售金额 DESC", tbName)); 
        } 
        ///  
        /// 按销售数量排行 
        ///  
        ///  
        ///  
        ///  
        ///  
        ///  
        public DataSet GetQtyDesc(string handle, string units, DateTime StarDateTime, DateTime EndDateTime, string tbName) 
        { 
            return (data.RunProcReturn("SELECT * FROM (SELECT b.tradecode AS 商品编号, b.fullname AS 商品名称, SUM(b.qty) AS 销售数量, SUM(b.tsum) AS 销售金额 FROM tb_sell_main a INNER JOIN (SELECT billcode, tradecode, fullname, SUM(qty) AS qty, SUM(tsum) AS tsum FROM tb_sell_detailed GROUP BY tradecode, billcode, fullname) b ON a.billcode = b.billcode AND a.units LIKE '%" + units + "%' AND a.handle LIKE '%" + handle + "%' WHERE (a.billdate BETWEEN '" + StarDateTime + "' AND '" + EndDateTime + "')GROUP BY b.tradecode, b.fullname) DERIVEDTBL ORDER BY 销售数量 DESC", tbName)); 
        } 
        #endregion 
 
        #region 销售管理--商品销售成本明细 
        ///  
        /// 根据单据编号--得到销售明细表中数据 
        ///  
        ///  
        ///  
        ///  
        public DataSet GetDetailedkByBillCode(string billCode, string tbName) 
        { 
            return (data.RunProcReturn("SELECT tradecode,fullname,price,tsum,SUM(qty) AS qty FROM tb_sell_detailed WHERE (billcode = '" + billCode + "')group by tradecode,fullname,price,tsum",tbName)); 
        } 
        ///  
        /// 根据单据编号--得到销售明细表中数据 
        ///  
        ///  
        ///  
        ///  
        public DataSet GetStockByTradeCode(string tradeCode, string tbName) 
        { 
            return (data.RunProcReturn("select * from tb_stock where tradecode ='" +tradeCode + "'", tbName)); 
        } 
        ///  
        /// 根据日期--查询销售主表中数据 
        ///  
        ///  
        ///  
        ///  
        public DataSet FindSellStock(DateTime starDataTime,DateTime endDataTime) 
        { 
            return (data.RunProcReturn("select * from tb_sell_main where (billdate BETWEEN '" +starDataTime+ " ' AND '" +endDataTime+ " ')", "tb_sell_main")); 
        } 
        #endregion 
 
 
        #region 库存管理--库存状况 
        ///  
        /// 检索库存商品--并按数量排序 
        ///  
        ///  
        ///  
        public DataSet setStockStatus(string tbName) 
        { 
            return (data.RunProcReturn("select * from tb_stock order by qty",tbName)); 
        } 
        ///  
        /// 根据商品编号,获得库存商品中所有信息 
        ///  
        ///  
        ///  
        ///  
        public DataSet GetStockLimitByTradeCode(string tradeCode,string tbName) 
        { 
            return(data.RunProcReturn("select * from tb_Stock where tradecode='"+tradeCode+"'",tbName)); 
        } 
       ///  
       /// 库存商品上下限设置 
       ///  
       ///  
       ///  
        public int UpdateStockLimit(cStockInfo stock) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@tradecode",  SqlDbType.VarChar,5,stock.TradeCode), 
                						data.MakeInParam("@upperlimit",  SqlDbType.Float, 8, stock.UpperLimit), 
                						data.MakeInParam("@lowerlimit",  SqlDbType.Float, 8, stock.LowerLimit), 
            }; 
             return (data.RunProc("update tb_stock set upperlimit=@upperlimit,lowerlimit=@lowerlimit where tradecode=@tradecode", prams)); 
         } 
        #endregion 
 
        #region 库存商品上下限报警 
         ///  
        /// 库存商品下限报警 
        ///  
        ///  
        public DataSet GetLowerLimit() 
        { 
            return (data.RunProcReturn("SELECT tradecode as 商品编号, fullname as 商品名称, qty as 库存数量,upperlimit as 库存上限,lowerlimit as 库存下限 from tb_stock WHERE (qty < lowerlimit) and lowerlimit > 0", "tb_stock")); 
        } 
        ///  
        /// 库存商品上限报警 
        ///  
        ///  
        public DataSet GetUpperLimit() 
        { 
            return (data.RunProcReturn("SELECT tradecode as 商品编号, fullname as 商品名称, qty as 库存数量,upperlimit as 库存上限,lowerlimit as 库存下限 FROM tb_stock WHERE (upperlimit < qty) and upperlimit>0","tb_stock")); 
        } 
        #endregion 
 
        #region 库存盘点 
        public int CheckStock(cStockInfo stock) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@tradecode",  SqlDbType.VarChar, 5, stock.TradeCode), 
                						data.MakeInParam("@check",  SqlDbType.Float, 8,stock.Check), 
			}; 
            return (data.RunProc("update tb_stock set stockcheck=@check where tradecode=@tradecode", prams)); 
        } 
        #endregion 
 
 
        #region 本单位信息设置--系统设置 
        ///  
        /// 本单位信息设置 
        ///  
        ///  
        ///  
        public int UpdateSysUnits(cUnits units) 
        { 
            SqlParameter[] prams = { 
                						data.MakeInParam("@fullname",  SqlDbType.VarChar, 30, units.FullName), 
                						data.MakeInParam("@tax",  SqlDbType.VarChar, 30, units.Tax), 
                						data.MakeInParam("@tel",  SqlDbType.VarChar, 20, units.Tel), 
                						data.MakeInParam("@linkman",  SqlDbType.VarChar, 10, units.Linkman), 
                						data.MakeInParam("@address",  SqlDbType.VarChar, 60, units.Address), 
                						data.MakeInParam("@accounts",  SqlDbType.VarChar, 80, units.Accounts), 
			}; 
            return (data.RunProc("update tb_unit set fullname=@fullname,tax=@tax,tel=@tel,linkman=@linkman,address=@address,accounts=@accounts", prams)); 
        } 
        public int InsertSysUnits(cUnits units) 
        { 
            SqlParameter[] prams = { 
                						data.MakeInParam("@fullname",  SqlDbType.VarChar, 30, units.FullName), 
                						data.MakeInParam("@tax",  SqlDbType.VarChar, 30, units.Tax), 
                						data.MakeInParam("@tel",  SqlDbType.VarChar, 20, units.Tel), 
                						data.MakeInParam("@linkman",  SqlDbType.VarChar, 10, units.Linkman), 
                						data.MakeInParam("@address",  SqlDbType.VarChar, 60, units.Address), 
                						data.MakeInParam("@accounts",  SqlDbType.VarChar, 80, units.Accounts), 
			}; 
            return (data.RunProc("insert into tb_unit (fullname,tax,tel,linkman,address,accounts) values (@fullname,@tax,@tel,@linkman,@address,@accounts)", prams)); 
        } 
        ///  
        /// 得到本单位信息设置 
        ///  
        ///  
        ///  
        public DataSet GetAllUnit() 
        { 
            return (data.RunProcReturn("select * from tb_unit","tb_unit")); 
        } 
        #endregion 
 
        #region  数据库备份与恢复--系统设置 
        ///  
        /// 备份数据库 
        ///  
        ///  
        public void BackUp(string bakUpName) 
        { 
            data.RunProc("BACKUP DATABASE db_CMS TO DISK ='"+bakUpName+"'"); 
        } 
        ///  
        /// 恢复数据库 
        ///  
        ///  
        public void ReStore(string reStoreName) 
        { 
            data.RunProc("use master RESTORE DATABASE db_CMS from disk='"+reStoreName+"'"); 
        } 
        #endregion 
 
        #region  系统数据清理--系统设置 
        ///  
        /// 根据指定的数据表清除数据表中数据 
        ///  
        ///  
        public void ClearTable(string tbName_true) 
        { 
            data.RunProc("delete from " + tbName_true + ""); 
        } 
        #endregion 
 
        #region 系统操作员及权限设置--系统设置 
        ///  
        /// 添加系统操作员 
        ///  
        ///  
        ///  
        public void AddSysUser(string userName,string pwd) 
        { 
            data.RunProc("INSERT INTO tb_power (sysuser, password) VALUES ('" + userName + "', '" + pwd + "')"); 
        } 
        ///  
        /// 删除系统操作员 
        ///  
        ///  
        public void DeleteSysUser(int ID) 
        { 
            data.RunProc("delete from tb_power where id='"+ID+"'"); 
        } 
        ///  
        /// 获得所有系统用户信息 
        ///  
        ///  
        public DataSet GetAllUser() 
        {  
            return(data.RunProcReturn("select * from tb_power","tb_Power")); 
        } 
        ///  
        /// 根据用户名称---查询系统用户 
        ///  
        ///  
        ///  
        public bool FindUserName(string userName) 
        { 
            DataSet ds = null; 
            ds = data.RunProcReturn("select * from tb_power where sysuser='" + userName + "'", "tb_power"); 
            if (ds.Tables[0].Rows.Count > 0) 
            { return true; } 
            else 
            { return false; } 
        } 
        ///  
        /// 修改系统用户信息及所对应的权限 
        ///  
        ///  
        public void UpdateSysUser(cPopedom popedom) 
        { 
            SqlParameter[] prams = { 
                                        data.MakeInParam("@id",  SqlDbType.Int, 4, popedom.ID), 
									    data.MakeInParam("@sysuser",  SqlDbType.VarChar, 20, popedom.SysUser), 
                						data.MakeInParam("@password",  SqlDbType.VarChar, 20,popedom.Password), 
                						data.MakeInParam("@stock",  SqlDbType.Bit, 1, popedom.Stock), 
                						data.MakeInParam("@vendition",  SqlDbType.Bit, 1, popedom.Vendition), 
                						data.MakeInParam("@storage",  SqlDbType.Bit, 1, popedom.Storage), 
                						data.MakeInParam("@system",  SqlDbType.Bit, 1, popedom.SystemSet), 
                                        data.MakeInParam("@base",  SqlDbType.Bit, 1, popedom.Base_Info), 
			}; 
            int i = data.RunProc("update tb_power set sysuser=@sysuser,password=@password,stock=@stock,vendition=@vendition,storage=@storage,system=@system,base=@base where id=@id", prams); 
        } 
        #endregion 
 
        #region 往来单位对账 
        ///  
        /// 往来单位列表--并统计应收额-增加及减少 
        ///  
        ///  
        public DataSet GetUnitsList() 
        { 
            return (data.RunProcReturn("SELECT units as 往来单位, SUM(addgathering) AS 应收增加, SUM(reducegathering) AS 应收减少 FROM tb_currentaccount GROUP BY units", "tb_currentaccount")); 
        } 
        ///  
        ///查询在指定的日期段中--是否存在--查询结果 
        ///  
        ///  
        ///  
        ///  
        ///  
        public DataSet FindCurrentAccountDate(string units, DateTime starDateTime,DateTime endDateTime) 
        { 
            return (data.RunProcReturn("SELECT * FROM tb_currentaccount WHERE units='" + units + "' AND billdate BETWEEN '" +starDateTime+"'AND '" +endDateTime+ "'","tb_currentaccount")); 
        } 
        ///  
        /// 往来对账--根据单据编号--查询明细表中数据 
        ///  
        ///  
        ///  
        ///  
        public DataSet FindDetailde(string tb_Detailed_true, string billcode) 
        { 
            return (data.RunProcReturn("select * from "+tb_Detailed_true+" where (billcode='" + billcode + "')ORDER BY tsum","detailed")); 
        } 
        ///  
        /// 往来对账--根据单据编号--查询主表中数据 
        ///  
        ///  
        ///  
        ///  
        public DataSet FindMain(string tb_Main_true, string billcode) 
        { 
            return (data.RunProcReturn("select * from "+tb_Main_true+" where billcode='" + billcode + "'","main")); 
        } 
        #endregion 
 
        #region 辅助工具管理 
        //ShellExecute Me.hWnd, "open", "http://www.mingrisoft.com", 1, 1, 5 
        public void OpenInernet() 
        {  
 
        } 
        #endregion 
 
        #region 系统登录 
        ///  
        /// 系统登录 
        ///  
        ///  
        ///  
        public DataSet Login(cPopedom popedom) 
        { 
            SqlParameter[] prams = { 
									    data.MakeInParam("@sysuser",  SqlDbType.VarChar, 20, popedom.SysUser), 
                						data.MakeInParam("@password",  SqlDbType.VarChar, 20,popedom.Password), 
			}; 
            return (data.RunProcReturn("SELECT * FROM tb_power WHERE (sysuser = @sysuser) AND (password = @password)",prams, "tb_power")); 
        } 
 
        #endregion 
    } 
    #region 定义往来单位--数据结构 
    public class cUnitsInfo 
    { 
        private string unitcode = ""; 
        private string fullname = ""; 
        private string tax = ""; 
        private string tel = ""; 
        private string linkman = ""; 
        private string address = ""; 
        private string accounts = ""; 
        private float gathering = 0; 
        private float payment = 0; 
        ///  
        /// 单位编号 
        ///  
        public string UnitCode 
        { 
            get { return unitcode; } 
            set { unitcode = value; } 
        } 
        ///  
        /// 单位全称 
        ///  
        public string FullName 
        { 
            get { return fullname; } 
            set { fullname = value; } 
        } 
        ///  
        /// 单位税号 
        ///  
        public string Tax 
        { 
            get { return tax; } 
            set { tax = value; } 
        } 
        ///  
        /// 联系人 
        ///  
        public string LinkMan 
        { 
            get { return linkman; } 
            set { linkman = value; } 
        } 
        ///  
        /// 联系电话 
        ///  
        public string Tel 
        { 
            get { return tel; } 
            set { tel = value; } 
        } 
        ///  
        /// 单位地址 
        ///  
        public string Address 
        { 
            get { return address; } 
            set { address = value; } 
        } 
        ///  
        /// 开户行及账号 
        ///  
        public string Accounts 
        { 
            get { return accounts; } 
            set { accounts = value; } 
        } 
        ///  
        /// 累计应收款 
        ///  
        public float Gathering 
        { 
            get { return gathering; } 
            set { gathering = value; } 
        } 
        ///  
        /// 累计应付款 
        ///  
        public float Payment 
        { 
            get { return payment; } 
            set { payment = value; } 
        } 
    } 
 
    #endregion 
 
    #region 定义库存商品--数据结构 
    public class cStockInfo 
    { 
        private string tradecode = ""; 
        private string fullname = ""; 
        private string tradetpye = ""; 
        private string standard = ""; 
        private string tradeunit = ""; 
        private string produce = ""; 
        private float qty = 0; 
        private float price = 0; 
        private float averageprice = 0; 
        private float saleprice = 0; 
        private float check = 0; 
        private float upperlimit = 0; 
        private float lowerlimit = 0; 
        ///  
        /// 商品编号 
        ///  
        public string TradeCode 
        { 
            get { return tradecode; } 
            set { tradecode = value; } 
        } 
        ///  
        /// 单位全称 
        ///  
        public string FullName 
        { 
            get { return fullname; } 
            set { fullname = value; } 
        } 
        ///  
        /// 商品型号 
        ///  
        public string TradeType 
        { 
            get { return tradetpye; } 
            set { tradetpye = value; } 
        } 
        ///  
        /// 商品规格 
        ///  
        public string Standard 
        { 
            get { return standard; } 
            set { standard = value; } 
        } 
        ///  
        /// 商品单位 
        ///  
        public string Unit 
        { 
            get { return tradeunit; } 
            set { tradeunit = value; } 
        } 
        ///  
        /// 商品产地 
        ///  
        public string Produce 
        { 
            get { return produce; } 
            set { produce = value; } 
        } 
        ///  
        /// 库存数量 
        ///  
        public float Qty 
        { 
            get { return qty; } 
            set { qty = value; } 
        } 
        ///  
        /// 进货时最后一次价格 
        ///  
        public float Price 
        { 
            get { return price; } 
            set { price = value; } 
        } 
        ///  
        /// 加权平均价格 
        ///  
        public float AveragePrice 
        { 
            get { return averageprice; } 
            set { averageprice = value; } 
        } 
        ///  
        /// 销售时的最后一次销价 
        ///  
        public float SalePrice 
        { 
            get { return saleprice; } 
            set { saleprice = value; } 
        } 
        ///  
        /// 盘点数量 
        ///  
        public float Check 
        { 
            get { return check; } 
            set { check = value; } 
        } 
        ///  
        /// 库存报警上限 
        ///  
        public float UpperLimit 
        { 
            get { return upperlimit; } 
            set { upperlimit = value; } 
        } 
        ///  
        /// 库存报警下限 
        ///  
        public float LowerLimit 
        { 
            get { return lowerlimit; } 
            set { lowerlimit = value; } 
        } 
    } 
 
    #endregion 
 
    #region 定义公司职员--数据结构 
    public class cEmployeeInfo 
    { 
        private string employeecode = ""; 
        private string fullname = ""; 
        private string sex = ""; 
        private string dept = ""; 
        private string tel = ""; 
        private string memo = ""; 
        ///  
        /// 职员编号 
        ///  
        public string EmployeeCode 
        { 
            get { return employeecode; } 
            set { employeecode = value; } 
        } 
        ///  
        /// 职员姓名 
        ///  
        public string FullName 
        { 
            get { return fullname; } 
            set { fullname = value; } 
        } 
        ///  
        /// 职员性别 
        ///  
        public string Sex 
        { 
            get { return sex; } 
            set { sex = value; } 
        } 
        ///  
        /// 所在部门 
        ///  
        public string Dept 
        { 
            get { return dept; } 
            set { dept = value; } 
        } 
        ///  
        /// 职员电话 
        ///  
        public string Tel 
        { 
            get { return tel; } 
            set { tel = value; } 
        } 
        ///  
        /// 备注信息 
        ///  
        public string Memo 
        { 
            get { return memo; } 
            set { memo = value; } 
        } 
     } 
 
    #endregion 
 
    #region 定义过账单据--数据结构 
    public class cBillInfo 
    { 
        //主表结构 
        private DateTime billdate=DateTime.Now; 
        private string billcode = ""; 
        private string units = ""; 
        private string handle = ""; 
        private string summary = ""; 
        private float fullpayment = 0; 
        private float payment = 0; 
 
        //明细表结构 
        private string tradecode = ""; 
        private string fullname = ""; 
        private string tradeunit = ""; 
        private float qty = 0; 
        private float price = 0; 
        private float tsum = 0; 
 
        ///  
        /// 录单日期 
        ///  
        public DateTime BillDate 
        { 
            get { return billdate; } 
            set { billdate = value; } 
        } 
        ///  
        /// 单据编号 
        ///  
        public string BillCode 
        { 
            get { return billcode; } 
            set { billcode = value; } 
        } 
        ///  
        /// 供货单位 
        ///  
        public string Units 
        { 
            get { return units; } 
            set { units = value; } 
        } 
        ///  
        /// 经手人 
        ///  
        public string Handle 
        { 
            get { return handle; } 
            set { handle = value; } 
        } 
        ///  
        /// 摘要 
        ///  
        public string Summary 
        { 
            get { return summary; } 
            set { summary = value; } 
        } 
        ///  
        /// 应付金额 
        ///  
        public float FullPayment 
        { 
            get { return fullpayment; } 
            set { fullpayment = value; } 
        } 
        ///  
        /// 实付金额 
        ///  
        public float Payment 
        { 
            get { return payment; } 
            set { payment = value; } 
        } 
 
        //***************明细表结构******************// 
        ///  
        /// 商品编号 
        ///  
        public string TradeCode 
        { 
            get { return tradecode; } 
            set { tradecode = value; } 
        } 
 
        ///  
        /// 商品名称 
        ///  
        public string FullName 
        { 
            get { return fullname; } 
            set { fullname = value; } 
        } 
        ///  
        /// 商品单位 
        ///  
        public string TradeUnit 
        { 
            get { return tradeunit; } 
            set { tradeunit = value; } 
        } 
        ///  
        /// 数量 
        ///  
        public float Qty 
        { 
            get { return qty; } 
            set { qty = value; } 
        } 
        ///  
        /// 价格 
        ///  
        public float Price 
        { 
            get { return price; } 
            set { price = value; } 
        } 
        ///  
        /// 金额=数量*价格 
        ///  
        public float TSum 
        { 
            get { return tsum; } 
            set { tsum = value; } 
        } 
    } 
     #endregion 
 
    #region 定义往来账本明细--数据结构 
    public class cCurrentAccount 
    { 
        private DateTime billdate = DateTime.Now; 
        private string billcode = ""; 
        private float addgathering=0;             //应收增加 
        private float factaddfee = 0;             //实际增加 
        private float reducegathering = 0;        //应收减少 
        private float factreducegathering = 0;    //实际减少 
        private float balance = 0;  //应收与增加 差额 
        private string units = ""; 
 
        ///  
        /// 录单日期 
        ///  
        public DateTime BillDate 
        { 
            get { return billdate; } 
            set { billdate = value; } 
        }///  
        /// 单据编号 
        ///  
        public string BillCode 
        { 
            get { return billcode; } 
            set { billcode = value; } 
        }///  
        /// 应收增加 
        ///  
        public float AddGathering 
        { 
            get { return addgathering; } 
            set { addgathering = value; } 
        }///  
        /// 实际增加 
        ///  
        public float FactAddFee 
        { 
            get { return factaddfee; } 
            set { factaddfee = value; } 
        }///  
        /// 应收减少 
        ///  
        public float ReduceGathering 
        { 
            get { return reducegathering; } 
            set { reducegathering = value; } 
        }///  
        /// 实际减少 
        ///  
        public float FactReduceGathering 
        { 
            get { return factreducegathering; } 
            set { factreducegathering = value; } 
        }///  
        /// 余额(应收金额-实际金额) 
        ///  
        public float Balance 
        { 
            get { return balance; } 
            set { balance = value; } 
        }///  
        /// 往来单位 
        ///  
        public string Units 
        { 
            get { return units; } 
            set { units = value; } 
        } 
    } 
 
    #endregion 
 
    #region 定义本单位信息设置--数据结构 
    public class cUnits 
    { 
        private string fullname = ""; 
        private string tax = ""; 
        private string tel = ""; 
        private string linkman = ""; 
        private string address = ""; 
        private string accounts = ""; 
 
        ///  
        /// 单位全称 
        ///  
        public string FullName 
        { 
            get { return fullname; } 
            set { fullname = value; } 
        } 
        ///  
        /// 税号 
        ///  
        public string Tax 
        { 
            get { return tax; } 
            set { tax = value; } 
        } 
        ///  
        /// 单位电话 
        ///  
        public string Tel 
        { 
            get { return tel; } 
            set { tel = value; } 
        } 
        ///  
        /// 联系人 
        ///  
        public string Linkman 
        { 
            get { return linkman; } 
            set { linkman = value; } 
        } 
        ///  
        /// 联系地址 
        ///  
        public string Address 
        { 
            get { return address; } 
            set { address = value; } 
        } 
        ///  
        /// 开户行及账号 
        ///  
        public string Accounts 
        { 
            get { return accounts; } 
            set { accounts = value; } 
        } 
    } 
 
    #endregion 
 
    #region 定义往来账明细表---数据结构 
    public class cCurrentaccount 
    { 
        private DateTime billdate = DateTime.Now; 
        private string billcode = ""; 
        private float addgathering = 0; 
        private float factaddfee = 0; 
        private float reducegathering = 0; 
        private float factfee = 0; 
        private float balance = 0; 
        private string units = ""; 
        ///  
        /// 录单日期 
        ///  
        public DateTime BillDate 
        { 
            get { return billdate; } 
            set { billdate = value; } 
        } 
        ///  
        /// 单据编号 
        ///  
        public string BillCode 
        { 
            get { return billcode; } 
            set { billcode = value; } 
        } 
        ///  
        /// 应收增加 
        ///  
        public float AddGathering 
        { 
            get { return addgathering; } 
            set { addgathering = value; } 
        } 
        ///  
        /// 实际增加 
        ///  
        public float FactAddfee 
        { 
            get { return factaddfee; } 
            set { factaddfee = value; } 
        } 
        ///  
        /// 应收减少 
        ///  
        public float ReduceGathering 
        { 
            get { return reducegathering; } 
            set { reducegathering = value; } 
        } 
        ///  
        /// 实际减少 
        ///  
        public float FactFee 
        { 
            get { return factfee; } 
            set { factfee = value; } 
        } 
        ///  
        /// 应收余额 
        ///  
        public float Balance 
        { 
            get { return balance; } 
            set { balance = value; } 
        } 
        ///  
        /// 往来单位 
        ///  
        public string Units 
        { 
            get { return units; } 
            set { units = value; } 
        } 
    } 
    #endregion 
 
    #region 定义权限--数据结构 
    public class cPopedom 
    { 
        private int id = 0; 
        private string sysuser = ""; 
        private string password = ""; 
        Boolean stock = false; 
        Boolean vendition = false; 
        Boolean storage = false; 
        Boolean system=false; 
        Boolean base_info=false; 
        ///  
        /// ID 
        ///  
        public int ID 
        { 
            get { return id; } 
            set { id = value; } 
        } 
        ///  
        /// 用户名称 
        ///  
        public string SysUser 
        { 
            get { return sysuser; } 
            set { sysuser = value; } 
        } 
        ///  
        /// 用户密码 
        ///  
        public string Password 
        { 
            get { return password; } 
            set { password = value; } 
        } 
        ///  
        /// 进货权限 
        ///  
        public Boolean Stock 
        { 
            get { return stock; } 
            set { stock = value; } 
        } 
        ///  
        /// 销售权限 
        ///  
        public Boolean Vendition 
        { 
            get { return vendition; } 
            set { vendition = value; } 
        } 
        ///  
        /// 库存权限 
        ///  
        public Boolean Storage 
        { 
            get { return storage; } 
            set { storage = value; } 
        } 
        ///  
        /// 系统设置权限 
        ///  
        public Boolean SystemSet 
        { 
            get { return system; } 
            set { system = value; } 
        } 
        ///  
        /// 基本信息权限 
        ///  
        public Boolean Base_Info 
        { 
            get { return base_info; } 
            set { base_info = value; } 
        } 
    } 
    #endregion 
}