Пример #1
0
 /// <summary>
 /// 更新一条数据
 /// </summary>
 /// <param name="model">model</param>
 public bool ModifyRecord(CStockUpBillData model)
 {
     return this.stockUpBillDB.ModifyRecord(model);
 }
Пример #2
0
    /// <summary>
    /// 自动生成拣货计划
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnPlan_click(object sender, EventArgs e)
    {
        UStockBB stockBB = new UStockBB();
        CStockUpBillBB stockUpBillBB = new CStockUpBillBB();
        CStockUpDetailBB stockUpDetailBB = new CStockUpDetailBB();
        LMaterialRelationBB materialRelationBB = new LMaterialRelationBB();
        CSaleDetailBB saleDetailBB = new CSaleDetailBB();
        LMaterialBB materialBB = new LMaterialBB();

        try
        {
            CStockUpBillData stockUpBillModel = new CStockUpBillData();
            DataSet dsStock = new DataSet();
            DataSet dsStockUpDetail = new DataSet();
            DataRow[] drsStock = null;
            string strInfo = "";

            stockUpBillModel = stockUpBillBB.GetModel(this.IdValue);//销售备货单实例

            #region 生成按单的拣货信息

            //如果是按单,则直接查找按单采购物料
            //dsStock = stockBB.GetVListByGroup("(saleBillNo in ('" + stockUpBillModel.saleBillNos.Replace(",", "','")
            //    + "') or substring(financeBillNo,1,charindex('-',financeBillNo)) like '%"
            //    + this.hidCustNo.Value + "%') and isOutStocking=0 and wareLocatorNo<>''");

            //如果是按单,则直接查找按单采购物料
            dsStock = stockBB.GetVListByGroup_ByFinanceBillNo("(stock.saleBillNo in ('" + stockUpBillModel.saleBillNos.Replace(",", "','")
                + "') or '," + stockUpBillModel.financeBillNos + ",' like '%,'+stock.financeBillNo+',%') and stock.financeBillSortNo='01' and stock.isOutStocking=0 and stock.wareLocatorNo<>''");

            //获取定向的备货单明细
            dsStockUpDetail = stockUpDetailBB.GetMaterielVList("stockUpBillNo='" + stockUpBillModel.stockUpBillNo
                + "' and financeBillSort='按单'");//and isnull(financeBillNo,'')<>''

            if (dsStock.Tables[0].Rows.Count > 0)
            {
                foreach (DataRow drStockUpDetail in dsStockUpDetail.Tables[0].Rows)
                {
                    //备货单明细合计出来的某种物料总数量
                    int needCount = Convert.ToInt32(drStockUpDetail["num"]);
                    string strMaterialNo = drStockUpDetail["materialno"].ToString();//物料号
                    string strFinanceBillNo = drStockUpDetail["financeBillNo"].ToString();
                    //string strFinanceBillSort = drStockUpDetail["financeBillSort"].ToString();
                    string strFinanceBillSort = "按单";
                    string strDocEntry = drStockUpDetail["docEntry"].ToString();//销售订单ID
                    string strSaleBillNo = drStockUpDetail["saleBillNo"].ToString();//销售订单号
                    string strLineNum = drStockUpDetail["lineNum"].ToString();//行号
                    string strAbsEntry = drStockUpDetail["absEntry"].ToString();//提货单编号

                    #region 按单的需原物料拣货

                    while (needCount > 0)
                    {
                        //根据先进先出,尽量使用同一托盘原则
                        //找到仓库内的同种物料所在的库位以及数量
                        //首先查找不少于此需要物料数量的库位
                        drsStock = dsStock.Tables[0].Select("financeBillNo='" + strFinanceBillNo
                           + "' and materialNo='" + strMaterialNo + "' and num>=" + needCount.ToString());

                        if (drsStock.Length == 0)
                        {
                            drsStock = dsStock.Tables[0].Select("financeBillNo='" + strFinanceBillNo
                                + "' and materialNo='" + strMaterialNo + "' and num>0");
                        }

                        if (drsStock.Length > 0)
                        {
                            //当前库位所拥有该物料的数量
                            int haveCount = Convert.ToInt32(drsStock[0]["num"]);

                            //如果当前库位的物料数量大于备货单所需数量,就保存当前库位
                            DataRow drnew = this.DtResult.NewRow();

                            drnew["rowId"] = Guid.NewGuid().ToString();
                            drnew["id"] = 0;

                            if (haveCount >= needCount)
                            {
                                drnew["num"] = needCount;
                            }
                            else
                            {
                                drnew["num"] = haveCount;
                            }

                            drsStock[0]["num"] = Convert.ToInt32(drsStock[0]["num"]) - Convert.ToInt32(drnew["num"]);//库存数量减去已备货数量

                            needCount = needCount - Convert.ToInt32(drnew["num"]);

                            drnew["stockUpBillNo"] = stockUpBillModel.stockUpBillNo;
                            drnew["palletIndex"] = drStockUpDetail["palletIndex"].ToString();
                            drnew["wareNo"] = drsStock[0]["wareNo"];
                            drnew["wareLocatorNo"] = drsStock[0]["wareLocatorNo"];
                            drnew["palletNo"] = drsStock[0]["palletNo"];
                            drnew["stockUpMaterialNo"] = strMaterialNo;//备货物料编号
                            drnew["materialNo"] = drsStock[0]["materialNo"];//实际拣货物料编号
                            drnew["wareNm"] = drsStock[0]["wareNm"];
                            drnew["wareLocatorNm"] = drsStock[0]["wareLocatorNm"];
                            drnew["materialDesc"] = drsStock[0]["materialDesc"];
                            drnew["financeBillNo"] = strFinanceBillNo;//采购合同号
                            drnew["financeBillSort"] = strFinanceBillSort;//采购合同类型
                            drnew["saleBillNo"] = strSaleBillNo;//销售订单号
                            drnew["docEntry"] = strDocEntry;//销售订单ID
                            drnew["lineNum"] = strLineNum;//行号
                            drnew["absEntry"] = strAbsEntry;//提货单号
                            drnew["instantState"] = "01";
                            drnew["isDel"] = false;

                            this.DtResult.Rows.Add(drnew);

                            drStockUpDetail["num"] = needCount;//重新赋值拣货数量
                        }
                        else
                        {
                            needCount = 0;
                        }
                    }

                    #endregion 按单的需原物料拣货
                }
            }

            #endregion 生成按单的拣货信息

            #region 销售订单没有按单采购

            //备货需要逐个库位查找
            dsStock = stockBB.GetVListByGroup("stock.financeBillSortNo='02' and stock.isOutStocking=0 and stock.wareLocatorNo<>''");

            //获取备货的备货单明细
            dsStockUpDetail = stockUpDetailBB.GetMaterielVList("stockUpBillNo='" + stockUpBillModel.stockUpBillNo
                + "' and financeBillSort='备货'");//根据采购合同类型,不根据采购合同号判断 and (isnull(financeBillNo,'')=''

            if (dsStock.Tables[0].Rows.Count > 0)
            {
                foreach (DataRow drStockUpDetail in dsStockUpDetail.Tables[0].Rows)
                {
                    //备货单明细合计出来的某种物料总数量
                    int needCount = Convert.ToInt32(drStockUpDetail["num"]);
                    string strMaterialNo = drStockUpDetail["materialno"].ToString();//物料号
                    string strFinanceBillNo = "";
                    string strFinanceBillSort = "备货";
                    string strSaleBillNo = drStockUpDetail["saleBillNo"].ToString();//销售订单号
                    string strLineNum = drStockUpDetail["lineNum"].ToString();//行号
                    string strAbsEntry = drStockUpDetail["absEntry"].ToString();//提货单编号
                    string strDocEntry = drStockUpDetail["docEntry"].ToString();//销售订单ID

                    while (needCount > 0)
                    {
                        #region 原物料拣货

                        //找到仓库内的同种物料所在的库位以及数量
                        drsStock = dsStock.Tables[0].Select("materialno='" + strMaterialNo
                            + "' and num>=" + needCount.ToString());

                        if (drsStock.Length == 0)
                        {
                            drsStock = dsStock.Tables[0].Select("materialno='" + strMaterialNo + "' and num>0");
                        }

                        if (drsStock.Length > 0)
                        {
                            //当前库位所拥有该物料的数量
                            int haveCount = Convert.ToInt32(drsStock[0]["num"]);

                            //如果当前库位的物料数量大于备货单所需数量,就保存当前库位
                            DataRow drnew = this.DtResult.NewRow();

                            drnew["rowId"] = Guid.NewGuid().ToString();
                            drnew["id"] = 0;

                            if (haveCount >= needCount)
                            {
                                drnew["num"] = needCount;
                            }
                            else
                            {
                                drnew["num"] = haveCount;
                            }

                            drsStock[0]["num"] = Convert.ToInt32(drsStock[0]["num"]) - Convert.ToInt32(drnew["num"]);//库存数量减去已备货数量

                            needCount = needCount - Convert.ToInt32(drnew["num"]);

                            drnew["stockUpBillNo"] = stockUpBillModel.stockUpBillNo;
                            drnew["palletIndex"] = drStockUpDetail["palletIndex"].ToString();
                            drnew["wareNo"] = drsStock[0]["wareNo"];
                            drnew["wareLocatorNo"] = drsStock[0]["wareLocatorNo"];
                            drnew["palletNo"] = drsStock[0]["palletNo"];
                            drnew["stockUpMaterialNo"] = strMaterialNo;//备货物料编号
                            drnew["materialNo"] = drsStock[0]["materialNo"];//实际拣货物料编号
                            drnew["wareNm"] = drsStock[0]["wareNm"];
                            drnew["wareLocatorNm"] = drsStock[0]["wareLocatorNm"];
                            drnew["materialDesc"] = drsStock[0]["materialDesc"];
                            drnew["instantState"] = "01";
                            drnew["financeBillNo"] = strFinanceBillNo;//采购合同号
                            drnew["financeBillSort"] = strFinanceBillSort;//采购合同类型
                            drnew["saleBillNo"] = strSaleBillNo;//销售订单号
                            drnew["docEntry"] = strDocEntry;//销售订单ID
                            drnew["lineNum"] = strLineNum;//行号
                            drnew["absEntry"] = strAbsEntry;//提货单号
                            drnew["isDel"] = false;

                            this.DtResult.Rows.Add(drnew);

                            drStockUpDetail["num"] = needCount;//重新赋值拣货数量
                        }
                        else
                        {
                            break;
                        }

                        #endregion 原物料拣货
                    }

                    #region 根据物料对应关系拣货

                    while (needCount > 0)
                    {
                        //需要根据物料对应关系拣其他物料
                        DataTable dtConvertMaterial = new DataTable();

                        dtConvertMaterial = materialRelationBB.GetList("oldMaterialNo='" + strMaterialNo + "'").Tables[0];

                        if (dtConvertMaterial.Rows.Count == 0)
                        {
                            break;
                        }

                        foreach (DataRow row in dtConvertMaterial.Rows)
                        {
                            //找到仓库内的有对应关系物料所在的库位以及数量
                            drsStock = dsStock.Tables[0].Select("materialno='" + row["newMaterialNo"].ToString()
                                + "' and num>=" + needCount.ToString());

                            if (drsStock.Length == 0)
                            {
                                drsStock = dsStock.Tables[0].Select("materialno='" + row["newMaterialNo"].ToString() + "' and num>0");
                            }

                            if (drsStock.Length > 0)
                            {
                                //当前库位所拥有该物料的数量
                                int haveCount = Convert.ToInt32(drsStock[0]["num"]);

                                //如果当前库位的物料数量大于备货单所需数量,就保存当前库位
                                DataRow drnew = this.DtResult.NewRow();

                                drnew["rowId"] = Guid.NewGuid().ToString();
                                drnew["id"] = 0;

                                if (haveCount >= needCount)
                                {
                                    drnew["num"] = needCount;
                                }
                                else
                                {
                                    drnew["num"] = haveCount;
                                }

                                drsStock[0]["num"] = Convert.ToInt32(drsStock[0]["num"]) - Convert.ToInt32(drnew["num"]);//库存数量减去已备货数量

                                needCount = needCount - Convert.ToInt32(drnew["num"]);

                                drnew["stockUpBillNo"] = stockUpBillModel.stockUpBillNo;
                                drnew["palletIndex"] = drStockUpDetail["palletIndex"].ToString();
                                drnew["wareNo"] = drsStock[0]["wareNo"];
                                drnew["wareLocatorNo"] = drsStock[0]["wareLocatorNo"];
                                drnew["palletNo"] = drsStock[0]["palletNo"];
                                drnew["stockUpMaterialNo"] = strMaterialNo;//备货物料编号
                                drnew["materialNo"] = drsStock[0]["materialNo"];//实际拣货物料编号
                                drnew["wareNm"] = drsStock[0]["wareNm"];
                                drnew["wareLocatorNm"] = drsStock[0]["wareLocatorNm"];
                                drnew["materialDesc"] = drsStock[0]["materialDesc"];
                                drnew["instantState"] = "01";
                                drnew["financeBillNo"] = strFinanceBillNo;//采购合同号
                                drnew["financeBillSort"] = strFinanceBillSort;//采购合同类型
                                drnew["saleBillNo"] = strSaleBillNo;//销售订单号
                                drnew["docEntry"] = strDocEntry;//销售订单ID
                                drnew["lineNum"] = strLineNum;//行号
                                drnew["absEntry"] = strAbsEntry;//提货单号
                                drnew["isDel"] = false;

                                this.DtResult.Rows.Add(drnew);

                                drStockUpDetail["num"] = needCount;//重新赋值拣货数量
                            }
                            else
                            {
                                needCount = 0;
                                break;

                            }

                        }

                    }

                    #endregion 根据物料对应关系拣货
                }
            }

            #endregion 销售订单没有按单采购

            #region 判断是否完全拣货

            DataSet dsStockUpDetail_Temp = stockUpDetailBB.GetMaterielVList("stockUpBillNo='" + stockUpBillModel.stockUpBillNo + "'");

            foreach (DataRow rowStockUpDetail in dsStockUpDetail_Temp.Tables[0].Rows)
            {
                int planNum = 0, factNum = 0;
                DataRow[] myDataRowArray = null;
                string strNewMaterialNo = "";
                DataTable dtConvertMaterial = new DataTable();

                //计算计划备货数量
                myDataRowArray = dsStockUpDetail_Temp.Tables[0].Select("materialNo='"
                    + rowStockUpDetail["materialNo"].ToString() + "'");
                foreach (DataRow row in myDataRowArray)
                {
                    planNum += Convert.ToInt32(row["num"]);
                }

                //计算原物料可拣货数量

                //20140725  update
                //myDataRowArray = this.DtResult.Select("isDel=0 and materialNo='"
                //    + rowStockUpDetail["materialNo"].ToString() + "'");
                myDataRowArray = this.DtResult.Select("isDel=0 and materialNo=stockupmaterialNo and materialNo='"
                 + rowStockUpDetail["materialNo"].ToString() + "'");
                foreach (DataRow row in myDataRowArray)
                {
                    factNum += Convert.ToInt32(row["num"]);
                }
                // 20140807 add
                if (planNum != factNum)
                {
                    //获取转换物料的拣货数量
                    dtConvertMaterial = materialRelationBB.GetList("oldMaterialNo='" + rowStockUpDetail["materialNo"].ToString() + "'").Tables[0];
                    if (dtConvertMaterial.Rows.Count > 0)
                    {
                        //  20140725  update
                        //strNewMaterialNo = dtConvertMaterial.Rows[0]["newMaterialNo"].ToString();

                        //myDataRowArray = this.DtResult.Select("isDel=0 and materialNo='" + strNewMaterialNo + "'");
                        strNewMaterialNo = dtConvertMaterial.Rows[0]["oldMaterialNo"].ToString();
                        myDataRowArray = this.DtResult.Select("isDel=0 and stockupmaterialNo='" + strNewMaterialNo + "' and materialNo<>stockupmaterialNo ");

                        foreach (DataRow row in myDataRowArray)
                        {
                            factNum += Convert.ToInt32(row["num"]);
                        }
                    }
                }

                //判断是否完成拣货
                if (planNum != factNum)
                {
                    strInfo += "物料【" + rowStockUpDetail["materialNo"].ToString() + "】,计划拣货【"
                        + planNum.ToString() + "】件,实际拣货【" + factNum.ToString() + "】件;";

                }
            }

            if (strInfo != "")
            {
                this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert(\"当前未完成拣货,不允许保存!提示信息:" + strInfo + "\");", true);
            }

            #endregion 判断是否完全拣货

            this.BindGridPickOutPlan();//绑定拣货计划列表
        }
        catch (Exception ex)
        {
            this.ClientScript.RegisterStartupScript(this.GetType(), "ShowErr", "ShowErr(\"" + Server.UrlEncode(ex.Message) + "\",3);", true);
            return;
        }
        finally
        {
            stockBB.Dispose();
            stockUpBillBB.Dispose();
            stockUpDetailBB.Dispose();
            materialRelationBB.Dispose();
            saleDetailBB.Dispose();
            materialBB.Dispose();
        }
    }
Пример #3
0
        //*****************************************************************************
        //do it later      do it later      do it later
        //*****************************************************************************
        /// <summary>
        /// 保存备货计划
        /// </summary>
        /// <param name="data">备货单实例</param>
        /// <param name="dtStockUpDetall">备货明细数据源</param>
        /// <param name="issubmit">是否提交</param>
        /// <returns></returns>
        public bool SaveBArrangeBill(CStockUpBillData data, DataTable dtStockUpDetall, bool isSubmit)
        {
            bool ret = false;
            CStockUpDetailBB stockUpDetailBB = new CStockUpDetailBB(connection);
            CStockUpBillBB stockUpBillBB = new CStockUpBillBB(connection);
            SCommBB commBB = new SCommBB(this.connection);
            SqlTransaction trans = null;

            try
            {
                if (this.transaction == null)
                {
                    trans = this.connection.BeginTransaction("TransSave");
                    stockUpDetailBB.Transaction = trans;
                    stockUpBillBB.Transaction = trans;
                    commBB.Transaction = trans;
                }
                else
                {
                    stockUpDetailBB.Transaction = this.transaction;
                    stockUpBillBB.Transaction = this.transaction;
                    commBB.Transaction = this.transaction;
                }

                int mainId = 0;
                CStockUpDetailData stockUpDetailModel = new CStockUpDetailData();
                string strSaleBillNos = "", strAbsEntrys = "", strLineNums = "";
                string[] saleBillNoArray = null, absEntryArray = null, lineNumArray = null;

                if (data.id == 0)
                {
                    #region 新增备货单

                    //新增备货主表数据
                    mainId = stockUpBillBB.AddRecord(data);

                    //新增备货单明细数据
                    foreach (DataRow dr in dtStockUpDetall.Rows)
                    {
                        if (dr["isdel"].ToString() == "0")
                        {
                            stockUpDetailModel = new CStockUpDetailData();

                            stockUpDetailModel.financeBillNo = dr["financeBillNo"].ToString();
                            stockUpDetailModel.financeBillSort = dr["financeBillSort"].ToString();
                            stockUpDetailModel.materialNo = dr["materialNo"].ToString();
                            stockUpDetailModel.num = Convert.ToInt32(dr["num"]);
                            stockUpDetailModel.instantState = "01";
                            stockUpDetailModel.palletIndex = Convert.ToInt32(dr["palletIndex"]);
                            stockUpDetailModel.stockUpBillNo = data.stockUpBillNo;
                            stockUpDetailModel.saleBillNo = dr["saleBillNo"].ToString();
                            stockUpDetailModel.DocEntry = Convert.ToInt32(dr["DocEntry"]);
                            stockUpDetailModel.absEntry = Convert.ToInt32(dr["absEntry"]);//销售提货单ID
                            stockUpDetailModel.lineNum = Convert.ToInt32(dr["lineNum"]);//销售订单行号
                            stockUpDetailModel.GZT = "";//分配工作台

                            stockUpDetailBB.AddRecord(stockUpDetailModel);
                        }
                    }

                    #endregion 新增备货单
                }
                else
                {
                    #region 修改备货单

                    //修改备货主表数据
                    stockUpBillBB.ModifyRecord(data);

                    //维护备货单明细数据
                    foreach (DataRow dr in dtStockUpDetall.Rows)
                    {
                        if (Convert.ToInt32(dr["id"]) > 0 && dr["isdel"].ToString() == "1")//删除方法
                        {
                            stockUpDetailBB.DeleteRecord(Convert.ToInt32(dr["id"]));

                        }
                        else if (Convert.ToInt32(dr["id"]) > 0 && dr["isdel"].ToString() == "0")//修改
                        {
                            stockUpDetailModel = stockUpDetailBB.GetModel(Convert.ToInt32(dr["id"]));

                            stockUpDetailModel.num = Convert.ToInt32(dr["num"]);

                            stockUpDetailBB.ModifyRecord(stockUpDetailModel);

                        }
                        else if (Convert.ToInt32(dr["id"]) == 0 && dr["isdel"].ToString() == "0")//添加
                        {
                            stockUpDetailModel = new CStockUpDetailData();

                            stockUpDetailModel.financeBillNo = dr["financeBillNo"].ToString();
                            stockUpDetailModel.financeBillSort = dr["financeBillSort"].ToString();
                            stockUpDetailModel.materialNo = dr["materialNo"].ToString();
                            stockUpDetailModel.num = Convert.ToInt32(dr["num"]);
                            stockUpDetailModel.instantState = "01";
                            stockUpDetailModel.palletIndex = Convert.ToInt32(dr["palletIndex"]);
                            stockUpDetailModel.stockUpBillNo = data.stockUpBillNo;
                            stockUpDetailModel.saleBillNo = dr["saleBillNo"].ToString();
                            stockUpDetailModel.DocEntry = Convert.ToInt32(dr["DocEntry"]);//销售订单ID
                            stockUpDetailModel.absEntry = Convert.ToInt32(dr["absEntry"]);//销售提货单ID
                            stockUpDetailModel.lineNum = Convert.ToInt32(dr["lineNum"]);//销售订单行号
                            stockUpDetailModel.GZT = "";//分配工作台

                            stockUpDetailBB.AddRecord(stockUpDetailModel);

                        }
                    }

                    #endregion 修改备货单
                }

                //根据提货单ID,更改销售订单状态
                strSaleBillNos = data.saleBillNos;
                strAbsEntrys = data.absEntrys;//提货单ID组合
                strLineNums = data.lineNums;
                saleBillNoArray = strSaleBillNos.Split(',');//销售订单编号数组
                absEntryArray = strAbsEntrys.Split(',');//提货单ID数组
                lineNumArray = strLineNums.Split(',');

                for (int n = 0; n < saleBillNoArray.Length; n++)
                {
                    //更改提货单状态
                    commBB.ExecuteSql("update dbo.CSaleBill set instantState='02',stockupBillNo='" + data.stockUpBillNo
                        + "' where saleBillNo='" + saleBillNoArray[n] + "' and absEntry='" + absEntryArray[n]
                        + "' and lineNum='" + lineNumArray[n] + "'");
                }

                if (this.transaction == null) trans.Commit();
                ret = true;
            }
            catch (Exception ex)
            {
                if (this.transaction == null) trans.Rollback("TransSave");
                throw ex;
            }
            finally
            {
                stockUpDetailBB.Dispose();
                stockUpBillBB.Dispose();
                commBB.Dispose();
            }

            return ret;
        }
Пример #4
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 /// <param name="model">model</param>
 public int AddRecord(CStockUpBillData model)
 {
     return this.stockUpBillDB.AddRecord(model);
 }
Пример #5
0
        /// <summary>
        /// 增加一条"销售备货单"信息
        /// </summary>
        /// <param name="model">model</param>
        public int AddRecord(CStockUpBillData model)
        {
            int id = 0;
            SqlTransaction trans = null;
            try
            {
                if (this.transaction == null)
                {
                    trans = this.connection.BeginTransaction("TransAdd");
                    this.stockUpBillBB.Transaction = trans;
                    this.errorDiaryBB.Transaction = trans;
                    this.operatDiaryBB.Transaction = trans;
                }

                id = this.stockUpBillBB.AddRecord(model);

                SOperatDiaryData operatDiaryData = new SOperatDiaryData();
                operatDiaryData.empId = this.empId;
                operatDiaryData.functionId = "";
                operatDiaryData.recordId = id.ToString();
                operatDiaryData.operateContent = "销售备货单增加一条id为“" + id.ToString() + "”的记录";
                this.operatDiaryBB.AddRecord(operatDiaryData);

                if (this.transaction == null) trans.Commit();
            }
            catch (Exception ex)
            {
                if (this.transaction == null) trans.Rollback("TransAdd");
                SErrorDiaryData errorDiaryData = new SErrorDiaryData();
                errorDiaryData.empId = this.empId;
                errorDiaryData.functionId = "";
                errorDiaryData.errorText = "销售备货单增加记录时报错:" + ex.Message;
                this.errorDiaryBB.AddRecord(errorDiaryData);
                throw ex;
            }
            finally
            {
            }
            return id;
        }
Пример #6
0
        /// <summary>
        /// 更新一条"销售备货单"信息
        /// </summary>
        /// <param name="model">model</param>
        public bool ModifyRecord(CStockUpBillData model)
        {
            bool ret = false;
            SqlTransaction trans = null;
            try
            {
                if (this.transaction == null)
                {
                    trans = this.connection.BeginTransaction("TransModify");
                    this.stockUpBillBB.Transaction = trans;
                    this.errorDiaryBB.Transaction = trans;
                    this.operatDiaryBB.Transaction = trans;
                }

                this.stockUpBillBB.ModifyRecord(model);

                SOperatDiaryData operatDiaryData = new SOperatDiaryData();
                operatDiaryData.empId = this.empId;
                operatDiaryData.functionId = "";
                operatDiaryData.recordId = model.id.ToString();
                operatDiaryData.operateContent = "销售备货单修改一条id为“" + model.id.ToString() + "”的记录";
                this.operatDiaryBB.AddRecord(operatDiaryData);

                if (this.transaction == null) trans.Commit();
                ret = true;
            }
            catch (Exception ex)
            {
                if (this.transaction == null) trans.Rollback("TransModify");
                SErrorDiaryData errorDiaryData = new SErrorDiaryData();
                errorDiaryData.empId = this.empId;
                errorDiaryData.functionId = "";
                errorDiaryData.errorText = "销售备货单修改记录“" + model.id.ToString() + "”时报错:" + ex.Message;
                this.errorDiaryBB.AddRecord(errorDiaryData);
                throw ex;
            }
            finally
            {
            }
            return ret;
        }
Пример #7
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        /// <param name="model">model</param>
        public int AddRecord(CStockUpBillData model)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("set nocount on; ");
            strSql.Append("insert into CStockUpBill(");
            strSql.Append(@"stockUpBillNo,saleBillNos,absEntrys,custNo,invoiceNo,palletSortId,shippingMarkNo,stockUpEmpId,outStockDt,mark,
                            isrtEmpId,isrtDt,updtEmpId,updtDt,commitEmpId,commitDt,instantState,financeBillNos,lineNums)");
            strSql.Append(" values (");
            strSql.Append(@"@stockUpBillNo,@saleBillNos,@absEntrys,@custNo,@invoiceNo,@palletSortId,@shippingMarkNo,@stockUpEmpId,@outStockDt,@mark,
                            @isrtEmpId,@isrtDt,@updtEmpId,@updtDt,@commitEmpId,@commitDt,@instantState,@financeBillNos,@lineNums)");
            strSql.Append("; select @@identity; set nocount off; ");
            SqlParameter[] parameters = {
                    new SqlParameter("@stockUpBillNo", SqlDbType.VarChar,20),
                    new SqlParameter("@saleBillNos", SqlDbType.VarChar,1000),
                    new SqlParameter("@absEntrys", SqlDbType.VarChar,1000),
                    new SqlParameter("@custNo", SqlDbType.VarChar,20),
                    new SqlParameter("@invoiceNo", SqlDbType.VarChar,20),
                    new SqlParameter("@palletSortId", SqlDbType.Int),
                    new SqlParameter("@shippingMarkNo", SqlDbType.NVarChar,20),
                    new SqlParameter("@stockUpEmpId", SqlDbType.Int),
                    new SqlParameter("@outStockDt", SqlDbType.DateTime),
                    new SqlParameter("@mark", SqlDbType.NVarChar,500),
                    new SqlParameter("@isrtEmpId", SqlDbType.Int),
                    new SqlParameter("@isrtDt", SqlDbType.DateTime),
                    new SqlParameter("@updtEmpId", SqlDbType.Int),
                    new SqlParameter("@updtDt", SqlDbType.DateTime),
                    new SqlParameter("@commitEmpId", SqlDbType.Int),
                    new SqlParameter("@commitDt", SqlDbType.DateTime),
                    new SqlParameter("@instantState", SqlDbType.VarChar,10),
                    new SqlParameter("@financeBillNos", SqlDbType.VarChar,500),
                    new SqlParameter("@lineNums", SqlDbType.VarChar,500)
                };
            parameters[0].Value = model.stockUpBillNo;
            parameters[1].Value = model.saleBillNos;
            parameters[2].Value = model.absEntrys;
            parameters[3].Value = model.custNo;
            parameters[4].Value = model.invoiceNo;
            parameters[5].Value = model.palletSortId;
            parameters[6].Value = model.shippingMarkNo;
            parameters[7].Value = model.stockUpEmpId;
            parameters[8].Value = model.outStockDt == string.Empty ? null : model.outStockDt;
            parameters[9].Value = model.mark;
            parameters[10].Value = model.isrtEmpId;
            parameters[11].Value = model.isrtDt == string.Empty ? null : model.isrtDt;
            parameters[12].Value = model.updtEmpId;
            parameters[13].Value = model.updtDt == string.Empty ? null : model.updtDt;
            parameters[14].Value = model.commitEmpId;
            parameters[15].Value = model.commitDt == string.Empty ? null : model.commitDt;
            parameters[16].Value = model.instantState;
            parameters[17].Value = model.financeBillNos;
            parameters[18].Value = model.lineNums;

            int id = 0;
            try
            {
                object ret = SqlHelper.ExecuteScalar(this.connection, this.transaction, CommandType.Text, strSql.ToString(), parameters);

                if (ret != null && ret != DBNull.Value)
                {
                    id = Convert.ToInt32(ret);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return id;
        }
Пример #8
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        /// <param name="model">model</param>
        public bool ModifyRecord(CStockUpBillData model)
        {
            bool ret = false;
            StringBuilder strSql = new StringBuilder();
            strSql.Append("update CStockUpBill set ");
            strSql.Append("stockUpBillNo=@stockUpBillNo,");
            strSql.Append("saleBillNos=@saleBillNos,");
            strSql.Append("absEntrys=@absEntrys,");
            strSql.Append("custNo=@custNo,");
            strSql.Append("invoiceNo=@invoiceNo,");
            strSql.Append("palletSortId=@palletSortId,");
            strSql.Append("shippingMarkNo=@shippingMarkNo,");
            strSql.Append("stockUpEmpId=@stockUpEmpId,");
            strSql.Append("outStockDt=@outStockDt,");
            strSql.Append("mark=@mark,");
            strSql.Append("isrtEmpId=@isrtEmpId,");
            strSql.Append("isrtDt=@isrtDt,");
            strSql.Append("updtEmpId=@updtEmpId,");
            strSql.Append("updtDt=@updtDt,");
            strSql.Append("commitEmpId=@commitEmpId,");
            strSql.Append("commitDt=@commitDt,");
            strSql.Append("instantState=@instantState,");
            strSql.Append("financeBillNos=@financeBillNos,");
            strSql.Append("lineNums=@lineNums");
            strSql.Append(" where id = @id ");
            SqlParameter[] parameters = {
                    new SqlParameter("@id", SqlDbType.Int),
                    new SqlParameter("@stockUpBillNo", SqlDbType.VarChar,20),
                    new SqlParameter("@saleBillNos", SqlDbType.VarChar,1000),
                    new SqlParameter("@absEntrys", SqlDbType.VarChar,1000),
                    new SqlParameter("@custNo", SqlDbType.VarChar,20),
                    new SqlParameter("@invoiceNo", SqlDbType.VarChar,20),
                    new SqlParameter("@palletSortId", SqlDbType.Int),
                    new SqlParameter("@shippingMarkNo", SqlDbType.NVarChar,20),
                    new SqlParameter("@stockUpEmpId", SqlDbType.Int),
                    new SqlParameter("@outStockDt", SqlDbType.DateTime),
                    new SqlParameter("@mark", SqlDbType.NVarChar,500),
                    new SqlParameter("@isrtEmpId", SqlDbType.Int),
                    new SqlParameter("@isrtDt", SqlDbType.DateTime),
                    new SqlParameter("@updtEmpId", SqlDbType.Int),
                    new SqlParameter("@updtDt", SqlDbType.DateTime),
                    new SqlParameter("@commitEmpId", SqlDbType.Int),
                    new SqlParameter("@commitDt", SqlDbType.DateTime),
                    new SqlParameter("@instantState", SqlDbType.VarChar,10),
                    new SqlParameter("@financeBillNos", SqlDbType.VarChar,500),
                    new SqlParameter("@lineNums", SqlDbType.VarChar,500)
                };
            parameters[0].Value = model.id;
            parameters[1].Value = model.stockUpBillNo;
            parameters[2].Value = model.saleBillNos;
            parameters[3].Value = model.absEntrys;
            parameters[4].Value = model.custNo;
            parameters[5].Value = model.invoiceNo;
            parameters[6].Value = model.palletSortId;
            parameters[7].Value = model.shippingMarkNo;
            parameters[8].Value = model.stockUpEmpId;
            parameters[9].Value = model.outStockDt == string.Empty ? null : model.outStockDt;
            parameters[10].Value = model.mark;
            parameters[11].Value = model.isrtEmpId;
            parameters[12].Value = model.isrtDt == string.Empty ? null : model.isrtDt;
            parameters[13].Value = model.updtEmpId;
            parameters[14].Value = model.updtDt == string.Empty ? null : model.updtDt;
            parameters[15].Value = model.commitEmpId;
            parameters[16].Value = model.commitDt == string.Empty ? null : model.commitDt;
            parameters[17].Value = model.instantState;
            parameters[18].Value = model.financeBillNos;
            parameters[19].Value = model.lineNums;

            try
            {
                SqlHelper.ExecuteNonQuery(this.connection, this.transaction, CommandType.Text, strSql.ToString(), parameters);
                ret = true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return ret;
        }
Пример #9
0
        /// <summary>
        /// 得到一个model
        /// </summary>
        /// <param name="id">主键值</param>
        /// <returns>model</returns>
        public CStockUpBillData GetModel(string  billNo)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append(@"select id,stockUpBillNo,saleBillNos,absEntrys,custNo,invoiceNo,palletSortId,shippingMarkNo,stockUpEmpId,outStockDt,mark,isrtEmpId,
                            isrtDt,updtEmpId,updtDt,commitEmpId,commitDt,instantState,financeBillNos,lineNums from CStockUpBill");
            strSql.Append(" where stockUpBillNo = @billNo ");
            SqlParameter[] parameters = {
                    new SqlParameter("@billNo",billNo)
                };

            CStockUpBillData model = new CStockUpBillData();
            DataSet ds = SqlHelper.ExecuteDataset(this.connection, this.transaction, CommandType.Text, strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                DataRow row = ds.Tables[0].Rows[0];
                if (row["id"] != DBNull.Value)
                {
                    model.id = Convert.ToInt32(row["id"]);
                }
                if (row["stockUpBillNo"] != DBNull.Value)
                {
                    model.stockUpBillNo = Convert.ToString(row["stockUpBillNo"]);
                }
                if (row["saleBillNos"] != DBNull.Value)
                {
                    model.saleBillNos = Convert.ToString(row["saleBillNos"]);
                }
                if (row["absEntrys"] != DBNull.Value)
                {
                    model.absEntrys = Convert.ToString(row["absEntrys"]);
                }
                if (row["custNo"] != DBNull.Value)
                {
                    model.custNo = Convert.ToString(row["custNo"]);
                }
                if (row["invoiceNo"] != DBNull.Value)
                {
                    model.invoiceNo = Convert.ToString(row["invoiceNo"]);
                }
                if (row["palletSortId"] != DBNull.Value)
                {
                    model.palletSortId = Convert.ToInt32(row["palletSortId"]);
                }
                if (row["shippingMarkNo"] != DBNull.Value)
                {
                    model.shippingMarkNo = Convert.ToString(row["shippingMarkNo"]);
                }
                if (row["stockUpEmpId"] != DBNull.Value)
                {
                    model.stockUpEmpId = Convert.ToInt32(row["stockUpEmpId"]);
                }
                if (row["outStockDt"] != DBNull.Value)
                {
                    model.outStockDt = Convert.ToString(row["outStockDt"]);
                }
                if (row["mark"] != DBNull.Value)
                {
                    model.mark = Convert.ToString(row["mark"]);
                }
                if (row["isrtEmpId"] != DBNull.Value)
                {
                    model.isrtEmpId = Convert.ToInt32(row["isrtEmpId"]);
                }
                if (row["isrtDt"] != DBNull.Value)
                {
                    model.isrtDt = Convert.ToString(row["isrtDt"]);
                }
                if (row["updtEmpId"] != DBNull.Value)
                {
                    model.updtEmpId = Convert.ToInt32(row["updtEmpId"]);
                }
                if (row["updtDt"] != DBNull.Value)
                {
                    model.updtDt = Convert.ToString(row["updtDt"]);
                }
                if (row["commitEmpId"] != DBNull.Value)
                {
                    model.commitEmpId = Convert.ToInt32(row["commitEmpId"]);
                }
                if (row["commitDt"] != DBNull.Value)
                {
                    model.commitDt = Convert.ToString(row["commitDt"]);
                }
                if (row["instantState"] != DBNull.Value)
                {
                    model.instantState = Convert.ToString(row["instantState"]);
                }
                if (row["financeBillNos"] != DBNull.Value)
                {
                    model.financeBillNos = Convert.ToString(row["financeBillNos"]);
                }
                if (row["lineNums"] != DBNull.Value)
                {
                    model.lineNums = Convert.ToString(row["lineNums"]);
                }
                return model;
            }
            else
            {
                return null;
            }
        }
Пример #10
0
    /// <summary>
    /// 删除备货单明细
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void gridStockUpDetail_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        CStockUpBillBB stockUpBillBB = new CStockUpBillBB();

        try
        {
            CStockUpBillData stockUpBillModel = new CStockUpBillData();
            string Id = this.gridStockUpDetail.DataKeys[e.RowIndex].Values["id"].ToString();//ID
            string rowid = this.gridStockUpDetail.DataKeys[e.RowIndex].Values["rowId"].ToString();//GUID
            string materialNo = this.gridStockUpDetail.DataKeys[e.RowIndex].Values["materialNo"].ToString();//物料编号
            DataRow[] myDataRowArray_Result = null;

            //根据rowid查找备货明细
            myDataRowArray_Result = this.DtResult.Select("rowid='" + rowid + "'");
            if (myDataRowArray_Result.Length > 0)
            {
                //更改删除标志
                myDataRowArray_Result[0]["isdel"] = "1";//删除
                myDataRowArray_Result[0]["num"] = 0;

                //判断备货单是否已经提交
                stockUpBillModel = stockUpBillBB.GetModel(this.IdValue);
                if (stockUpBillModel != null && stockUpBillModel.instantState != "01")
                {
                    this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('已提交数据无法删除!');", true);
                    return;
                }
            }
        }
        catch (Exception ex)
        {
            this.ClientScript.RegisterStartupScript(this.GetType(), "ShowErr", "ShowErr(\"" + Server.UrlEncode(ex.Message) + "\",3);", true);
            return;
        }
        finally
        {
            this.BindGridStockUpDetail();//绑定备货单明细列表
            this.SaveStencilDetailViewState();//保存备货信息
            this.BindGridSaleBill();//显示销售订单明细列表
            stockUpBillBB.Dispose();
        }
    }
Пример #11
0
    /// <summary>
    /// 保存或提交备货单公共方法
    /// </summary>
    /// <param name="isSubmit"></param>
    protected void SubmitArrangeBill(bool isSubmit)
    {
        CStockUpBillBC stockUpBillBC = new CStockUpBillBC();
        CStockUpBillBB stockUpBillBB = new CStockUpBillBB();

        try
        {
            this.SaveStencilDetailViewState();//保存备货信息
            this.BindGridStockUpDetail();//绑定备货单明细列表
            this.BindGridSaleBill();//显示销售订单明细列表

            if (this.ValidateArrangeDetail())
            {
                CStockUpBillData data = stockUpBillBB.GetModel(this.StockBillNo);

                if (data == null)
                {
                    #region 未生成备货单

                    data = new CStockUpBillData();

                    data.id = 0;
                    data.stockUpBillNo = this.StockBillNo;
                    data.invoiceNo = this.invoiceNo.Text;
                    data.stockUpEmpId = Convert.ToInt32(this.empId.Value == "" ? "0" : this.empId.Value);
                    data.mark = this.mark.Text;
                    data.custNo = this.CustomNo;
                    data.outStockDt = this.outStockDt.Text;
                    data.saleBillNos = this.lbSaleBillNos.Text;
                    data.lineNums = Request.QueryString["lineNums"];
                    data.absEntrys = Request.QueryString["absEntrys"];
                    data.financeBillNos = Request.QueryString["financeBillNos"];
                    data.shippingMarkNo = this.shippingMarkNo.Text;
                    data.isrtDt = DateTime.Now.ToString();
                    data.isrtEmpId = this.currentUser.empId;

                    if (isSubmit)
                    {
                        data.instantState = "02";
                        data.updtDt = DateTime.Now.ToString();
                        data.updtEmpId = this.currentUser.empId;
                        data.commitDt = DateTime.Now.ToString();
                        data.commitEmpId = this.currentUser.empId;
                    }
                    else
                    {
                        data.instantState = "01";
                        data.updtDt = DateTime.Now.ToString();
                        data.updtEmpId = this.currentUser.empId;
                    }

                    #endregion 未生成备货单
                }
                else
                {
                    #region 已生成备货单

                    if (data.instantState != "01")
                    {
                        this.ClientScript.RegisterStartupScript(this.GetType(), "alert9", "alert(\"当前备货单已经提交,不允许继续修改备货单信息!\");", true);
                        return;
                    }

                    data.invoiceNo = this.invoiceNo.Text;
                    data.stockUpEmpId = Convert.ToInt32(this.empId.Value == "" ? "0" : this.empId.Value);
                    data.mark = this.mark.Text;
                    data.custNo = this.CustomNo;
                    data.outStockDt = this.outStockDt.Text;
                    data.shippingMarkNo = this.shippingMarkNo.Text;
                    data.updtDt = DateTime.Now.ToString();
                    data.updtEmpId = this.currentUser.empId;

                    if (isSubmit)
                    {
                        data.instantState = "02";
                        data.updtDt = DateTime.Now.ToString();
                        data.updtEmpId = this.currentUser.empId;
                        data.commitDt = DateTime.Now.ToString();
                        data.commitEmpId = this.currentUser.empId;
                    }
                    else
                    {
                        data.instantState = "01";
                        data.updtDt = DateTime.Now.ToString();
                        data.updtEmpId = this.currentUser.empId;
                    }

                    #endregion 已生成备货单
                }

                if (stockUpBillBC.SaveBArrangeBill(data, this.DtResult, isSubmit))
                {
                    this.DtResult = null;
                    this.InitDtResult();//初始化备货单明细数据源
                    this.BindGridStockUpDetail();//绑定备货单明细列表
                    this.BindGridSaleBill();//绑定销售订单明细列表

                    if (isSubmit)//提交
                    {
                        this.ClientScript.RegisterStartupScript(this.GetType(), "alert12", "alert(\"备货单维护成功!\");window.location='"
                            + Request.Params["backurl"] + "';", true);
                    }
                    else//保存
                    {
                        this.BindGridStockUpDetail();//绑定备货单明细列表
                        this.BindGridSaleBill();//绑定销售订单明细列表
                        this.ClientScript.RegisterStartupScript(this.GetType(), "alert12", "alert(\"备货单维护成功!\");", true);
                    }
                }
                else
                {
                    this.ClientScript.RegisterStartupScript(this.GetType(), "alert12", "alert(\"备货单维护失败!\");", true);
                }
            }
        }
        catch (Exception ex)
        {
            this.ClientScript.RegisterStartupScript(this.GetType(), "ShowErr", "ShowErr(\"" + Server.UrlEncode(ex.Message) + "\",3);", true);
            return;
        }
        finally
        {
            stockUpBillBB.Dispose();
            stockUpBillBC.Dispose();
        }
    }