/// <summary>
        /// 插入数据记录
        /// </summary>
        ///<param name="model">实体类</param>
        /// <returns>插入数据是否成功:true成功,false不成功</returns>
        public static bool Insert(SubStorageAccountModel model)
        {
            ArrayList sqlList = new ArrayList();
            SqlCommand cmd = SubStorageAccountDBHelper.InsertCommand(model);

            sqlList.Add(cmd);

            if (SqlHelper.ExecuteTransWithArrayList(sqlList))
            {
                int i = 0;
                if (int.TryParse(cmd.Parameters["@IndexID"].Value.ToString(), out i))
                {
                    model.ID = i;
                }
                return true;
            }
            else
            {
                return false;
            }
        }
        public static bool RunSubDeliverySendIn(SubDeliverySend model)
        {
            #region 读取配送单明细
            StringBuilder sbSql = new StringBuilder();
            sbSql.Append("SELECT sdsd.SendNo,sdsd.ProductID,sdsd.SendPrice,sdsd.SendCount,pi1.IsBatchNo FROM officedba.SubDeliverySendDetail sdsd ");
            sbSql.Append(" LEFT JOIN officedba.ProductInfo pi1 ON pi1.ID=sdsd.ProductID ");
            sbSql.Append(" where sdsd.CompanyCD=@CompanyCD AND sdsd.SendNo=@SendNo");

            SqlParameter[] Paras = { 
                                   new SqlParameter("@CompanyCD",SqlDbType.VarChar),
                                   new SqlParameter("@SendNo",SqlDbType.VarChar)};
            Paras[0].Value = model.CompanyCD;
            Paras[1].Value = model.SendNo;
            DataTable dtDetail = SqlHelper.ExecuteSql(sbSql.ToString(), Paras);


            ArrayList SqlList = new ArrayList();
            int id = 0;
            decimal count = 0m;
            /*实时判断明细是否存在*/
            if (dtDetail != null && dtDetail.Rows.Count > 0)
            {
                #region 更新配送单信息
                StringBuilder sbMainSql = new StringBuilder();
                sbMainSql.Append("UPDATE officedba.SubDeliverySend SET InUserID=@InUserID , InDate=@InDate ,BusiStatus=@BusiStatus ");
                sbMainSql.Append(" where ID=@ID");
                SqlParameter[] MainParas = { 
                                           new SqlParameter("@InUserID",SqlDbType.Int),
                                           new SqlParameter("@InDate",SqlDbType.DateTime),
                                           new SqlParameter("@BusiStatus",SqlDbType.VarChar),
                                           new SqlParameter("@ID",SqlDbType.Int)};
                MainParas[0].Value = model.InUserID;
                MainParas[1].Value = model.InDate;
                MainParas[2].Value = model.BusiStatus;
                MainParas[3].Value = model.ID;
                SqlCommand SqlMainCmd = new SqlCommand() { CommandText = sbMainSql.ToString() };
                SqlMainCmd.Parameters.AddRange(MainParas);
                SqlList.Add(SqlMainCmd);
                #endregion
                foreach (DataRow row in dtDetail.Rows)
                {
                    string BatchNo = "";
                    #region 添加门店库存流水帐
                    if (row["IsBatchNo"].ToString() == "1")
                    {
                        BatchNo = model.BatchNo;
                    }
                    SubStorageAccountModel aModel = new SubStorageAccountModel();
                    aModel.BatchNo = BatchNo;
                    aModel.BillNo = row["SendNo"].ToString();
                    aModel.BillType = 2;
                    aModel.CompanyCD = model.CompanyCD;
                    aModel.Creator = model.Creator;
                    aModel.DeptID = model.ApplyDeptID;
                    aModel.HappenDate = DateTime.Now;
                    if (int.TryParse(row["ProductID"].ToString(), out id))
                    {
                        aModel.ProductID = id;
                    }
                    if (decimal.TryParse(row["SendPrice"].ToString(), out count))
                    {
                        aModel.Price = count;
                    }
                    if (decimal.TryParse(row["SendCount"].ToString(), out count))
                    {
                        aModel.HappenCount = count;
                    }
                    aModel.PageUrl = model.Remark;
                    SqlList.Add(XBase.Data.Office.SubStoreManager.SubStorageAccountDBHelper.GetCountAndInsertCommand(aModel));
                    #endregion

                    SqlList.Add(XBase.Data.Office.LogisticsDistributionManager.StorageProductQueryDBHelper.UpdateProductCount(model.CompanyCD
                            , row["ProductID"].ToString(), model.ApplyDeptID.ToString(), BatchNo, count));

                }
                return SqlHelper.ExecuteTransWithArrayList(SqlList);
            }
            else
                return false;
            #endregion
        }
        public static bool RukuSubSellBack(SubSellBackModel model, string DetailBackCount, string DetailStorageID, string DetailProductID, string DetailUnitPrice, string DetailBatchNo, string length)
        {
            #region 入库单据
            ArrayList listADD = new ArrayList();
            bool result = false;
            StringBuilder strSql = new StringBuilder();
            if (model.PayedTotal != model.WairPayTotal)
            {
                strSql.AppendLine("update officedba.SubSellBack set ");
                strSql.AppendLine(" InUserID=@InUserID");
                strSql.AppendLine(" ,InDate=@InDate");
                strSql.AppendLine(" ,BillStatus=@BillStatus");
                strSql.AppendLine(" ,BusiStatus=@BusiStatus");
                strSql.AppendLine(" ,PayedTotal=@PayedTotal");
                strSql.AppendLine(" ,WairPayTotal=@WairPayTotal");
                strSql.AppendLine(" where");
                strSql.AppendLine(" CompanyCD=@CompanyCD");
                strSql.AppendLine(" and ID=@ID");
                SqlCommand comm = new SqlCommand();
                comm.Parameters.Add(SqlHelper.GetParameter("@InUserID", model.InUserID));
                comm.Parameters.Add(SqlHelper.GetParameter("@InDate", model.InDate == null
                                                            ? SqlDateTime.Null
                                                            : SqlDateTime.Parse(model.InDate.ToString())));
                comm.Parameters.Add(SqlHelper.GetParameter("@BillStatus", model.BillStatus));
                comm.Parameters.Add(SqlHelper.GetParameter("@BusiStatus", model.BusiStatus));
                comm.Parameters.Add(SqlHelper.GetParameter("@PayedTotal", model.PayedTotal));
                comm.Parameters.Add(SqlHelper.GetParameter("@WairPayTotal", model.WairPayTotal));
                comm.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", model.CompanyCD));
                comm.Parameters.Add(SqlHelper.GetParameter("@ID", model.ID));
                comm.CommandText = strSql.ToString();

                listADD.Add(comm);
            }
            else
            {
                strSql.AppendLine("update officedba.SubSellBack set ");
                strSql.AppendLine(" InUserID=@InUserID");
                strSql.AppendLine(" ,InDate=@InDate");
                strSql.AppendLine(" ,Closer=@Closer");
                strSql.AppendLine(" ,CloseDate=getdate()");
                strSql.AppendLine(" ,BillStatus=@BillStatus");
                strSql.AppendLine(" ,BusiStatus=@BusiStatus");
                strSql.AppendLine(" ,PayedTotal=@PayedTotal");
                strSql.AppendLine(" ,WairPayTotal=@WairPayTotal");
                strSql.AppendLine(" where");
                strSql.AppendLine(" CompanyCD=@CompanyCD");
                strSql.AppendLine(" and ID=@ID");
                SqlCommand comm = new SqlCommand();
                comm.Parameters.Add(SqlHelper.GetParameter("@InUserID", model.InUserID));
                comm.Parameters.Add(SqlHelper.GetParameter("@InDate", model.InDate == null
                                                            ? SqlDateTime.Null
                                                            : SqlDateTime.Parse(model.InDate.ToString())));
                comm.Parameters.Add(SqlHelper.GetParameter("@Closer", model.Closer));
                comm.Parameters.Add(SqlHelper.GetParameter("@BillStatus", model.BillStatus));
                comm.Parameters.Add(SqlHelper.GetParameter("@BusiStatus", model.BusiStatus));
                comm.Parameters.Add(SqlHelper.GetParameter("@PayedTotal", model.PayedTotal));
                comm.Parameters.Add(SqlHelper.GetParameter("@WairPayTotal", model.WairPayTotal));
                comm.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", model.CompanyCD));
                comm.Parameters.Add(SqlHelper.GetParameter("@ID", model.ID));
                comm.CommandText = strSql.ToString();

                listADD.Add(comm);
            }
            #endregion

            #region 入库时回写响应模块的退货数量
            try
            {

                int id = 0;
                decimal count = 0m;
                if (model.SendMode == "1")
                {//分店发货,更新分店的存量表中的现有存量,增加相应物品的退货数量
                    int lengs = Convert.ToInt32(length);
                    if (lengs > 0)
                    {
                        string[] BackCount = DetailBackCount.Split(',');
                        string[] ProductID = DetailProductID.Split(',');
                        string[] UnitPrice = DetailUnitPrice.Split(',');
                        string[] BatchNo = DetailBatchNo.Split(',');
                        for (int i = 0; i < lengs; i++)
                        {
                            #region 添加门店库存流水帐
                            SubStorageAccountModel aModel = new SubStorageAccountModel();
                            aModel.BatchNo = BatchNo[i];
                            aModel.BillNo = model.BackNo;
                            aModel.BillType = 4;
                            aModel.CompanyCD = model.CompanyCD;
                            aModel.Creator = model.Closer;
                            aModel.DeptID = model.DeptID;
                            aModel.HappenDate = DateTime.Now;
                            if (int.TryParse(ProductID[i], out id))
                            {
                                aModel.ProductID = id;
                            }
                            if (decimal.TryParse(UnitPrice[i], out count))
                            {
                                aModel.Price = count;
                            }
                            if (decimal.TryParse(BackCount[i], out count))
                            {
                                aModel.HappenCount = count;
                            }
                            aModel.PageUrl = model.Remark;
                            listADD.Add(XBase.Data.Office.SubStoreManager.SubStorageAccountDBHelper.GetCountAndInsertCommand(aModel));
                            #endregion

                            // 更新库存
                            listADD.Add(XBase.Data.Office.LogisticsDistributionManager.StorageProductQueryDBHelper.UpdateProductCount(model.CompanyCD
                                        , ProductID[i], model.DeptID.ToString(), BatchNo[i], count));
                        }
                    }
                }
                else
                {//总部发货,更新总部的分仓存量表中的现有存量,增加相应物品的退货数量
                    int lengs = Convert.ToInt32(length);
                    if (lengs > 0)
                    {
                        string[] BackCount = DetailBackCount.Split(',');
                        string[] StorageID = DetailStorageID.Split(',');
                        string[] ProductID = DetailProductID.Split(',');
                        string[] UnitPrice = DetailUnitPrice.Split(',');
                        string[] BatchNo = DetailBatchNo.Split(',');
                        for (int i = 0; i < lengs; i++)
                        {
                            #region 添加库存流水帐

                            XBase.Model.Office.StorageManager.StorageAccountModel sModel = new XBase.Model.Office.StorageManager.StorageAccountModel();
                            sModel.BatchNo = BatchNo[i];
                            sModel.BillNo = model.BackNo;
                            sModel.BillType = 22;
                            sModel.CompanyCD = model.CompanyCD;
                            sModel.Creator = model.Closer;
                            if (int.TryParse(StorageID[i], out id))
                            {
                                sModel.StorageID = id;
                            }
                            if (int.TryParse(ProductID[i], out id))
                            {
                                sModel.ProductID = id;
                            }
                            if (decimal.TryParse(UnitPrice[i], out count))
                            {
                                sModel.Price = count;
                            }
                            if (decimal.TryParse(BackCount[i], out count))
                            {
                                sModel.HappenCount = count;
                            }
                            sModel.HappenDate = DateTime.Now;
                            sModel.PageUrl = model.Remark;
                            listADD.Add(XBase.Data.Office.StorageManager.StorageAccountDBHelper.InsertStorageAccountCommand(sModel, "0"));

                            #endregion

                            // 更新库存
                            listADD.Add(XBase.Data.Office.StorageManager.StorageSearchDBHelper.UpdateProductCount(model.CompanyCD, ProductID[i], StorageID[i], BatchNo[i], count));

                        }
                    }
                }

                if (SqlHelper.ExecuteTransWithArrayList(listADD))
                {
                    result = true;
                }
                return result;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            #endregion

        }
        public static bool RunSubDeliveryTransIn(SubDeliveryTrans model)
        {
            ArrayList SqlList = new ArrayList();

            #region 更新调拨单
            StringBuilder strSql = new StringBuilder();
            strSql.Append("update officedba.SubDeliveryTrans set ");
            strSql.Append("BusiStatus=@BusiStatus,");
            strSql.Append("InUserID=@InUserID,");
            strSql.Append("InDate=@InDate");
            strSql.Append(" where ID=@ID ");
            SqlParameter[] parameters = {
					new SqlParameter("@ID", SqlDbType.Int,4),
					new SqlParameter("@BusiStatus", SqlDbType.Char,1),
					new SqlParameter("@InUserID", SqlDbType.Int,4),
					new SqlParameter("@InDate", SqlDbType.DateTime)};
            parameters[0].Value = model.ID;
            parameters[1].Value = model.BusiStatus;
            parameters[2].Value = model.InUserID;
            parameters[3].Value = model.InDate;
            #endregion

            SqlCommand sqlMainCmd = new SqlCommand() { CommandText = strSql.ToString() };
            sqlMainCmd.Parameters.AddRange(parameters);
            SqlList.Add(sqlMainCmd);

            #region 实时读取明细信息
            StringBuilder sbDetailSql = new StringBuilder();
            sbDetailSql.Append(" SELECT ProductID,TransCount,BatchNo,TransPrice FROM officedba.SubDeliveryTransDetail  ");
            sbDetailSql.Append(" WHERE CompanyCD=@CompanyCD AND TransNo=@TransNo");
            SqlParameter[] DetailParas = { 
                                        new SqlParameter("@CompanyCD",SqlDbType.VarChar),
                                        new SqlParameter("@TransNo",SqlDbType.VarChar)};
            DetailParas[0].Value = model.CompanyCD;
            DetailParas[1].Value = model.TransNo;
            DataTable dtDetails = SqlHelper.ExecuteSql(sbDetailSql.ToString(), DetailParas);
            #endregion

            int id = 0;
            decimal count = 0m;
            if (dtDetails != null && dtDetails.Rows.Count > 0)
            {
                foreach (DataRow row in dtDetails.Rows)
                {
                    #region 添加门店库存流水帐
                    SubStorageAccountModel aModel = new SubStorageAccountModel();
                    aModel.BatchNo = row["BatchNo"].ToString().Trim();
                    aModel.BillNo = model.TransNo;
                    aModel.BillType = 6;
                    aModel.CompanyCD = model.CompanyCD;
                    aModel.Creator = model.Creator;
                    aModel.DeptID = model.InDeptID;
                    aModel.HappenDate = DateTime.Now;
                    if (int.TryParse(row["ProductID"].ToString(), out id))
                    {
                        aModel.ProductID = id;
                    }
                    if (decimal.TryParse(row["TransPrice"].ToString(), out count))
                    {
                        aModel.Price = count;
                    }
                    if (decimal.TryParse(row["TransCount"].ToString(), out count))
                    {
                        aModel.HappenCount = count;
                    }
                    aModel.PageUrl = model.Remark;
                    SqlList.Add(XBase.Data.Office.SubStoreManager.SubStorageAccountDBHelper.GetCountAndInsertCommand(aModel));


                    #endregion

                    SqlList.Add(XBase.Data.Office.LogisticsDistributionManager.StorageProductQueryDBHelper.UpdateProductCount(model.CompanyCD
                        , row["ProductID"].ToString(), model.InDeptID.ToString(), row["BatchNo"].ToString(), count));

                }
                return SqlHelper.ExecuteTransWithArrayList(SqlList);
            }
            else
                return false;

        }
        public static bool SubDeliveryBackOut(SubDeliveryBack model)
        {
            StringBuilder sbSql = new StringBuilder();
            sbSql.Append("SELECT * FROM officedba.SubDeliveryBackDetail  ");
            sbSql.Append(" WHERE CompanyCD=@CompanyCD and BackNo=@BackNo");

            SqlParameter[] paras = { 
                                   new SqlParameter("@CompanyCD",SqlDbType.VarChar),
                                   new SqlParameter("@BackNo",SqlDbType.VarChar)};
            paras[0].Value = model.CompanyCD;
            paras[1].Value = model.BackNo;

            DataTable dtBack = SqlHelper.ExecuteSql(sbSql.ToString(), paras);
            ArrayList SqlList = new ArrayList();

            if (dtBack != null && dtBack.Rows.Count > 0)
            {

                #region 更新单据
                StringBuilder sbMainSql = new StringBuilder();
                sbMainSql.Append("UPDATE  officedba.SubDeliveryBack SET OutUserID=@OutUserID,OutDate=@OutDate,BusiStatus=@BusiStatus ");
                sbMainSql.Append(" WHERE ID=@ID ");
                SqlParameter[] MainParas = { 
                                           new SqlParameter("@OutUserID",SqlDbType.Int),
                                           new SqlParameter("@OutDate",SqlDbType.DateTime),
                                           new SqlParameter("@BusiStatus",SqlDbType.VarChar),
                                           new SqlParameter("@ID",SqlDbType.Int)
                                       };
                MainParas[0].Value = model.OutUserID;
                MainParas[1].Value = model.OutDate;
                MainParas[2].Value = model.BusiStatus;
                MainParas[3].Value = model.ID;

                SqlCommand sqlMainCmd = new SqlCommand() { CommandText = sbMainSql.ToString() };
                sqlMainCmd.Parameters.AddRange(MainParas);
                SqlList.Add(sqlMainCmd);
                #endregion

                int id = 0;
                decimal count = 0m;
                foreach (DataRow row in dtBack.Rows)
                {
                    #region 添加门店库存流水帐
                    SubStorageAccountModel aModel = new SubStorageAccountModel();
                    aModel.BatchNo = row["SendBatchNo"].ToString();
                    aModel.BillNo = model.BackNo;
                    aModel.BillType = 7;
                    aModel.CompanyCD = model.CompanyCD;
                    aModel.Creator = model.Creator;
                    aModel.DeptID = model.ApplyDeptID;
                    aModel.HappenDate = DateTime.Now;
                    if (int.TryParse(row["ProductID"].ToString(), out id))
                    {
                        aModel.ProductID = id;
                    }
                    if (decimal.TryParse(row["BackPrice"].ToString(), out count))
                    {
                        aModel.Price = count;
                    }
                    if (decimal.TryParse(row["BackCount"].ToString(), out count))
                    {
                        aModel.HappenCount = -count;
                    }
                    aModel.PageUrl = model.Remark;
                    SqlList.Add(XBase.Data.Office.SubStoreManager.SubStorageAccountDBHelper.GetCountAndInsertCommand(aModel));
                    #endregion
                    // 更新库存
                    SqlList.Add(XBase.Data.Office.LogisticsDistributionManager.StorageProductQueryDBHelper.UpdateProductCount(model.CompanyCD
                                , row["ProductID"].ToString(), model.ApplyDeptID.ToString(), row["SendBatchNo"].ToString(), -count));

                }

                bool res = SqlHelper.ExecuteTransWithArrayList(SqlList);
                return res;

            }
            else
                return false;

        }
        /// <summary>
        /// 设置新增和修改的参数数组的值
        /// </summary>
        /// <param name="parameters">参数数组</param>
        /// <param name="model">实体类</param>
        /// <returns>返回参数数组</returns>
        private static SqlParameter[] SetInsertAndUpdateParametersValue(SqlParameter[] parameters, SubStorageAccountModel model)
        {
            if (!model.ID.HasValue) parameters[m_iDCol].Value = System.DBNull.Value; else parameters[m_iDCol].Value = model.ID; // ID,自动生成
            parameters[m_companyCDCol].Value = model.CompanyCD; // 公司编码
            if (!model.DeptID.HasValue) parameters[m_deptIDCol].Value = System.DBNull.Value; else parameters[m_deptIDCol].Value = model.DeptID; // 分店ID
            if (!model.BillType.HasValue) parameters[m_billTypeCol].Value = System.DBNull.Value; else parameters[m_billTypeCol].Value = model.BillType; // 单据类型
            if (!model.ProductID.HasValue) parameters[m_productIDCol].Value = System.DBNull.Value; else parameters[m_productIDCol].Value = model.ProductID; // 物品ID
            parameters[m_batchNoCol].Value = model.BatchNo; // 批次
            parameters[m_billNoCol].Value = model.BillNo; // 单据编号
            if (!model.HappenDate.HasValue) parameters[m_happenDateCol].Value = System.DBNull.Value; else parameters[m_happenDateCol].Value = model.HappenDate; // 出入库时间
            if (!model.HappenCount.HasValue) parameters[m_happenCountCol].Value = System.DBNull.Value; else parameters[m_happenCountCol].Value = model.HappenCount; // 出入库数量
            if (!model.ProductCount.HasValue) parameters[m_productCountCol].Value = System.DBNull.Value; else parameters[m_productCountCol].Value = model.ProductCount; // 现有存量
            if (!model.Creator.HasValue) parameters[m_creatorCol].Value = System.DBNull.Value; else parameters[m_creatorCol].Value = model.Creator; // 业务操作人(取当前登录人的ID)
            parameters[m_pageUrlCol].Value = model.PageUrl; // 页面链接地址
            if (!model.Price.HasValue) parameters[m_priceCol].Value = System.DBNull.Value; else parameters[m_priceCol].Value = model.Price; // 单价
            parameters[m_remarkCol].Value = model.Remark; // 备注

            return parameters;
        }
        /// <summary>
        /// 修改数据记录
        /// </summary>
        /// <param name="model">实体类</param>
        /// <returns>修改数据是否成功:true成功,false不成功</returns>
        public static bool Update(SubStorageAccountModel model)
        {
            bool returnValue = false; // 返回值

            // SQL语句
            StringBuilder sqlSentence = new StringBuilder(C_UPDATE);

            // 参数设置
            SqlParameter[] parameters = SetInsertAndUpdateParameters();
            parameters = SetInsertAndUpdateParametersValue(parameters, model);

            //执行SQL
            returnValue = SqlHelper.ExecuteTransSql(sqlSentence.ToString(), parameters) > 0;

            return returnValue;
        }
        /// <summary>
        /// 修改数据记录
        /// </summary>
        /// <param name="model">实体类</param>
        /// <returns>修改操作的执行命令</returns>
        public static SqlCommand UpdateCommand(SubStorageAccountModel model)
        {
            // SQL语句
            SqlCommand comm = new SqlCommand();
            comm.CommandText = C_UPDATE;
            // 参数设置
            SqlParameter[] parameters = SetInsertAndUpdateParameters();
            parameters = SetInsertAndUpdateParametersValue(parameters, model);

            comm.Parameters.AddRange(parameters);

            return comm;
        }
 /// <summary>
 /// 插入操作的执行命令(并且获得现有库存量)
 /// </summary>
 /// <param name="model">实体类</param>
 /// <returns>插入操作的执行命令</returns>
 public static SqlCommand GetCountAndInsertCommand(SubStorageAccountModel model)
 {
     DataTable dt = GetSubProductCount(model.CompanyCD, model.ProductID.Value.ToString(), model.DeptID.Value.ToString(), model.BatchNo);
     decimal count = 0m;
     model.ProductCount = model.HappenCount;
     if (dt.Rows.Count > 0 && decimal.TryParse(dt.Rows[0]["ProductCount"].ToString(), out count))
     {
         model.ProductCount = count + (model.ProductCount.HasValue ? model.ProductCount.Value : 0);
     }
     model.HappenCount = Math.Abs(model.HappenCount.HasValue ? model.HappenCount.Value : 0);
     return InsertCommand(model);
 }
        /// <summary>
        /// 插入操作的执行命令
        /// </summary>
        /// <param name="model">实体类</param>
        /// <returns>插入操作的执行命令</returns>
        public static SqlCommand InsertCommand(SubStorageAccountModel model)
        {
            // SQL语句
            SqlCommand comm = new SqlCommand();
            comm.CommandText = C_INSERT + " SET @IndexID = @@IDENTITY ";
            // 参数设置
            SqlParameter[] parameters = SetInsertAndUpdateParameters();
            parameters = SetInsertAndUpdateParametersValue(parameters, model);

            comm.Parameters.AddRange(parameters);
            SqlParameter IndexID = new SqlParameter("@IndexID", SqlDbType.Int);
            IndexID.Direction = ParameterDirection.Output;
            comm.Parameters.Add(IndexID);

            return comm;
        }
 /// <summary>
 /// 列表界面查询方法
 /// </summary>
 /// <param name="pageIndex">当前页</param>
 /// <param name="pageCount">每页记录数</param>
 /// <param name="orderBy">排序方法</param>
 /// <param name="TotalCount">总记录数</param>
 /// <param name="model">实体类</param>
 /// <returns></returns>
 public static DataTable SelectListData(int pageIndex, int pageCount, string orderBy, ref int TotalCount
     , SubStorageAccountModel model)
 {
     SqlCommand comm = new SqlCommand();
     StringBuilder sql = new StringBuilder(C_SELECT_ALL);
     sql.Append(" WHERE 1=1 ");
     comm.CommandText = sql.ToString();
     return SqlHelper.PagerWithCommand(comm, pageIndex, pageCount, orderBy, ref TotalCount);
 }
Exemplo n.º 12
0
 /// <summary>
 /// 列表界面查询方法
 /// </summary>
 /// <param name="pageIndex">当前页</param>
 /// <param name="pageCount">每页记录数</param>
 /// <param name="orderBy">排序方法</param>
 /// <param name="TotalCount">总记录数</param>
 /// <param name="model">实体类</param>
 /// <returns></returns>
 public static DataTable SelectListData(int pageIndex, int pageCount, string orderBy, ref int TotalCount
     , SubStorageAccountModel model)
 {
     return SubStorageAccountDBHelper.SelectListData(pageIndex, pageCount, orderBy, ref TotalCount, model);
 }
Exemplo n.º 13
0
 /// <summary>
 /// 修改数据记录
 /// </summary>
 ///<param name="model">实体类</param>
 /// <returns>修改数据是否成功:true成功,false不成功</returns>
 public static bool Update(SubStorageAccountModel model)
 {
     return SubStorageAccountDBHelper.Update(model);
 }
Exemplo n.º 14
0
        public static bool ConfirmSubStorageIn(SubStorageInModel Model, string DetailProductID, string DetailSendCount, string DetailUnitPrice, string DetailBatchNo, string length)
        {
            #region 确认门店库存单中信息
            ArrayList listADD = new ArrayList();
            bool result = false;
            StringBuilder strSql = new StringBuilder();
            strSql.AppendLine("update officedba.SubStorageIn set ");
            strSql.AppendLine(" Confirmor=@Confirmor");
            strSql.AppendLine(" ,BillStatus=5");
            strSql.AppendLine(" ,ConfirmDate=getdate()");
            strSql.AppendLine(" where");
            strSql.AppendLine(" CompanyCD=@CompanyCD");
            strSql.AppendLine(" and ID=@ID");
            SqlCommand comm = new SqlCommand();
            comm.Parameters.Add(SqlHelper.GetParameter("@Confirmor", Model.Confirmor));
            comm.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", Model.CompanyCD));
            comm.Parameters.Add(SqlHelper.GetParameter("@ID", Model.ID));
            comm.CommandText = strSql.ToString();

            listADD.Add(comm);
            #endregion

            #region 确认时插入物流配送中的分店存量表
            try
            {

                int lengs = Convert.ToInt32(length);
                int id = 0;
                decimal count = 0m;
                if (lengs > 0)
                {
                    string[] ProductID = DetailProductID.Split(',');
                    string[] SendCount = DetailSendCount.Split(',');
                    string[] UnitPrice = DetailUnitPrice.Split(',');
                    string[] BatchNo = DetailBatchNo.Split(',');
                    for (int i = 0; i < lengs; i++)
                    {
                        #region 添加门店库存流水帐
                        SubStorageAccountModel aModel = new SubStorageAccountModel();
                        aModel.BatchNo = BatchNo[i];
                        aModel.BillNo = Model.InNo;
                        aModel.BillType = 1;
                        aModel.CompanyCD = Model.CompanyCD;
                        aModel.Creator = Model.Confirmor;
                        aModel.DeptID = Model.DeptID;
                        aModel.HappenDate = DateTime.Now;
                        if (int.TryParse(ProductID[i], out id))
                        {
                            aModel.ProductID = id;
                        }
                        if (decimal.TryParse(UnitPrice[i], out count))
                        {
                            aModel.Price = count;
                        }
                        if (decimal.TryParse(SendCount[i], out count))
                        {
                            aModel.HappenCount = count;
                        }
                        aModel.PageUrl = Model.Remark;
                        listADD.Add(XBase.Data.Office.SubStoreManager.SubStorageAccountDBHelper.GetCountAndInsertCommand(aModel));
                        #endregion

                        // 更新分店存量表
                        listADD.Add(StorageProductQueryDBHelper.UpdateProductCount(Model.CompanyCD
                            , ProductID[i], Model.DeptID.ToString(), BatchNo[i], count));
                    }
                }



                if (SqlHelper.ExecuteTransWithArrayList(listADD))
                {
                    //ID = comm.Parameters["@ID"].Value.ToString();
                    result = true;
                }
                return result;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            #endregion

        }
Exemplo n.º 15
0
 /// <summary>
 /// 批量导入数据
 /// </summary>
 /// <param name="dt">数据集</param>
 /// <param name="userInfo">登录信息</param>
 /// <returns></returns>
 public static bool ImportData(DataTable dt, UserInfoUtil userInfo)
 {
     ArrayList list = new ArrayList();
     string temp = "";
     decimal count = 0m;
     Dictionary<string, Product> dicProduct = new Dictionary<string, Product>();
     Dictionary<string, int> dicDept = new Dictionary<string, int>();
     foreach (DataRow dr in dt.Rows)
     {
         #region 添加门店库存流水帐
         SubStorageAccountModel aModel = new SubStorageAccountModel();
         aModel.BillNo = "";
         aModel.BillType = 8;
         aModel.CompanyCD = userInfo.CompanyCD;
         aModel.Creator = userInfo.EmployeeID;
         aModel.HappenDate = DateTime.Now;
         aModel.Price = 0;
         temp = dr["物品编号"].ToString().Trim();
         if (!dicProduct.ContainsKey(temp))
         {// 物品编号
             foreach (DataRow item in GetProductIDWithProdNo(userInfo.CompanyCD, temp).Rows)
             {
                 Product p = new Product();
                 p.id = int.Parse(item["ID"].ToString());
                 p.isBatchNo = item["IsBatchNo"].ToString() == "1";
                 dicProduct.Add(temp, p);
             }
         }
         aModel.BatchNo = dicProduct[temp].isBatchNo ? dr["批次"].ToString() : "";
         aModel.ProductID = dicProduct[temp].id;
         temp = dr["分店名称"].ToString().Trim();
         if (!dicDept.ContainsKey(temp))
         {// 分店名称
             foreach (DataRow item in GetDeptIDWithDeptName(userInfo.CompanyCD, temp).Rows)
             {
                 dicDept.Add(temp, int.Parse(item["ID"].ToString()));
             }
         }
         aModel.DeptID = dicDept[temp];
         if (decimal.TryParse(dr["现有存量"].ToString(), out count))
         {
             aModel.HappenCount = count;
         }
         list.Add(XBase.Data.Office.SubStoreManager.SubStorageAccountDBHelper.GetCountAndInsertCommand(aModel));
         #endregion
         // 更新分店存量表
         list.Add(StorageProductQueryDBHelper.UpdateProductCount(userInfo.CompanyCD
             , aModel.ProductID.ToString(), aModel.DeptID.ToString(), aModel.BatchNo, count));
     }
     return SqlHelper.ExecuteTransWithArrayList(list);
 }
Exemplo n.º 16
0
        /// <summary>
        /// 确认
        /// </summary>
        /// <param name="SubSellOrderM"></param>
        /// <param name="SubSellOrderDetailMList"></param>
        /// <returns></returns>
        public static bool ConfirmOutSubSellOrder(SubSellOrderModel SubSellOrderM, List<SubSellOrderDetailModel> SubSellOrderDetailMList)
        {
            try
            {
                ArrayList lstConfirm = new ArrayList();
                UserInfoUtil userInfo = (UserInfoUtil)SessionUtil.Session["UserInfo"];
                int id = 0;
                decimal count = 0m;
                if (SubSellOrderM.SendMode == "1")
                {//分店发货
                    //确认时,更新分店存量表
                    foreach (SubSellOrderDetailModel SubSellOrderDetailM in SubSellOrderDetailMList)
                    {
                        #region 添加门店库存流水帐
                        SubStorageAccountModel aModel = new SubStorageAccountModel();
                        aModel.BatchNo = SubSellOrderDetailM.BatchNo;
                        aModel.BillNo = SubSellOrderM.OrderNo;
                        aModel.BillType = 3;
                        aModel.CompanyCD = SubSellOrderDetailM.CompanyCD;
                        aModel.PageUrl = "";
                        if (int.TryParse(SubSellOrderM.Creator, out id))
                        {
                            aModel.Creator = id;
                        }
                        if (int.TryParse(SubSellOrderM.DeptID, out id))
                        {
                            aModel.DeptID = id;
                        }
                        aModel.HappenDate = DateTime.Now;
                        if (int.TryParse(SubSellOrderDetailM.ProductID, out id))
                        {
                            aModel.ProductID = id;
                        }
                        if (decimal.TryParse(SubSellOrderDetailM.UnitPrice, out count))
                        {
                            aModel.Price = count;
                        }
                        if (decimal.TryParse(SubSellOrderDetailM.ProductCount, out count))
                        {
                            aModel.HappenCount = -count;
                        }
                        aModel.PageUrl = SubSellOrderM.Remark;
                        lstConfirm.Add(XBase.Data.Office.SubStoreManager.SubStorageAccountDBHelper.GetCountAndInsertCommand(aModel));
                        #endregion

                        lstConfirm.Add(XBase.Data.Office.LogisticsDistributionManager.StorageProductQueryDBHelper.UpdateProductCount(userInfo.CompanyCD
                            , SubSellOrderDetailM.ProductID, SubSellOrderM.DeptID, SubSellOrderDetailM.BatchNo, -count));
                    }
                }
                else if (SubSellOrderM.SendMode == "2")
                {//总部发货
                    //确认时更新分仓存量表
                    foreach (SubSellOrderDetailModel SubSellOrderDetailM in SubSellOrderDetailMList)
                    {
                        #region 添加库存流水帐

                        XBase.Model.Office.StorageManager.StorageAccountModel sModel = new XBase.Model.Office.StorageManager.StorageAccountModel();
                        sModel.BatchNo = SubSellOrderDetailM.BatchNo;
                        sModel.BillNo = SubSellOrderM.OrderNo;
                        sModel.BillType = 21;
                        sModel.CompanyCD = SubSellOrderDetailM.CompanyCD;
                        if (int.TryParse(SubSellOrderDetailM.StorageID, out id))
                        {
                            sModel.StorageID = id;
                        }
                        if (int.TryParse(SubSellOrderM.Creator, out id))
                        {
                            sModel.Creator = id;
                        }
                        if (int.TryParse(SubSellOrderDetailM.ProductID, out id))
                        {
                            sModel.ProductID = id;
                        }
                        if (decimal.TryParse(SubSellOrderDetailM.UnitPrice, out count))
                        {
                            sModel.Price = count;
                        }
                        if (decimal.TryParse(SubSellOrderDetailM.ProductCount, out count))
                        {
                            sModel.HappenCount = count;
                        }
                        sModel.HappenDate = DateTime.Now;
                        sModel.PageUrl = SubSellOrderM.Remark;
                        lstConfirm.Add(XBase.Data.Office.StorageManager.StorageAccountDBHelper.InsertStorageAccountCommand(sModel, "1"));

                        #endregion

                        // 更新库存
                        lstConfirm.Add(XBase.Data.Office.StorageManager.StorageSearchDBHelper.UpdateProductCount(userInfo.CompanyCD
                            , SubSellOrderDetailM.ProductID, SubSellOrderDetailM.StorageID
                            , SubSellOrderDetailM.BatchNo, -count));
                    }
                }

                //更新发货信息和安装信息
                lstConfirm.Add(SubSellOrderDBHelper.ConfirmOutSubSellOrder(SubSellOrderM));

                //获取登陆用户信息
                //UserInfoUtil userInfo = (UserInfoUtil)SessionUtil.Session["UserInfo"];
                //定义返回变量
                bool isSucc = false;
                /* 
                 * 定义日志内容变量 
                 * 增删改相关的日志,需要输出操作日志,该类型日志插入到数据库
                 * 其他的 如出现异常时,需要输出系统日志,该类型日志保存到日志文件
                 */

                //执行插入操作
                try
                {
                    isSucc = SqlHelper.ExecuteTransWithArrayList(lstConfirm);
                }
                catch (Exception ex)
                {
                    //输出日志
                    WriteSystemLog(userInfo, ex);
                }
                //定义变量
                string remark;
                //成功时
                if (isSucc)
                {
                    //设置操作成功标识
                    remark = ConstUtil.LOG_PROCESS_SUCCESS;
                }
                else
                {
                    //设置操作成功标识 
                    remark = ConstUtil.LOG_PROCESS_FAILED;
                }

                LogInfoModel logModel = InitLogInfo(SubSellOrderM.OrderNo);
                //涉及关键元素 这个需要根据每个页面具体设置,本页面暂时设置为空
                logModel.Element = ConstUtil.LOG_PROCESS_OUT;
                //设置操作成功标识
                logModel.Remark = remark;

                //登陆日志
                LogDBHelper.InsertLog(logModel);
                return isSucc;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }