Ejemplo n.º 1
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="connection">数据连接</param>
 public BArriveDetailBC(SqlConnection connection)
 {
     this.connection = connection;
     this.arriveDetailBB = new BArriveDetailBB(this.connection);
     this.errorDiaryBB = new SErrorDiaryBB(this.connection);
     this.operatDiaryBB = new SOperatDiaryBB(this.connection);
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 构造函数
 /// </summary>
 public BArriveDetailBC()
 {
     this.selfConn = true;
     this.connection = new SqlConnection(HS.Config.SqlDataObject.GetSqlConnectionString);
     this.connection.Open();
     this.arriveDetailBB = new BArriveDetailBB(this.connection);
     this.errorDiaryBB = new SErrorDiaryBB(this.connection);
     this.operatDiaryBB = new SOperatDiaryBB(this.connection);
 }
Ejemplo n.º 3
0
        //*****************************************************************************
        //do it later      do it later      do it later
        //*****************************************************************************
        /// <summary>
        /// 保存称重理货明细信息,同时更改箱子称重数据
        /// </summary>
        /// <param name="mainId">称重理货单ID</param>
        /// <param name="regionId">区域ID</param>
        /// <param name="strNewPalletNo">新托盘条码号</param>
        /// <param name="strOldPalletNo">原托盘号</param>
        /// <param name="strBoxNo">箱号</param>
        /// <param name="weight">称重重量</param>
        /// <param name="factNum">实际数量</param>
        /// <param name="arriveDetailId">到货单明细ID</param>
        /// <param name="firstBoxSingleWeight">首箱单重</param>
        /// <param name="tallyNoPassReasonId">理货不合格原因</param>
        /// <returns></returns>
        public bool SaveRecord(int mainId, int regionId, string strNewPalletNo, string strOldPalletNo, string strBoxNo,
            float weight, int factNum, int arriveDetailId, double firstBoxSingleWeight, int tallyNoPassReasonId)
        {
            bool ret = false;
            SqlTransaction trans = null;
            SCommBB commBB = new SCommBB(this.connection);
            BArriveDetailBB arriveDetailBB = new BArriveDetailBB(this.connection);
            BArrangeBillBoxBB arrangeBillBoxBB = new BArrangeBillBoxBB(this.connection);

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

                DataSet ds = new DataSet();
                DataTable dtArrangeBillBox = new DataTable();
                BTallyBillDetailData tallyBillDetailModel = new BTallyBillDetailData();
                StringBuilder strSql = new StringBuilder();
                DataTable dtWareLocator = new DataTable();

                //保存称重理货明细数据
                if (mainId != 0)
                {
                    tallyBillDetailModel.mainId = mainId.ToString();//称重理货单ID
                    tallyBillDetailModel.region = regionId.ToString();//区域ID
                    tallyBillDetailModel.oldPalletNo = strOldPalletNo;//原托盘号
                    tallyBillDetailModel.boxNo = strBoxNo;//箱号
                    tallyBillDetailModel.isrtDt = System.DateTime.Now.ToString();//添加时间
                    tallyBillDetailModel.isrtEmpId = this.empId;//添加人

                    tallyBillDetailBB.AddRecord(tallyBillDetailModel);

                    //获取排托区下线库位信息
                    strSql.Append(@"select wareLocator.wareNo,wareLocator.downWareLocatorNo as wareLocatorNo ");
                    strSql.Append(@"from dbo.BArrangeBillBox as arrangeBillBoxBox ");
                    strSql.Append(@"left join dbo.LWareLocator as wareLocator on wareLocator.wareLocatorNo=arrangeBillBoxBox.wareLocatorNo ");
                    strSql.Append(@"where arrangeBillBoxBox.boxNo='" + strBoxNo + "'");

                    dtWareLocator = commBB.Query(strSql.ToString()).Tables[0];
                    if (dtWareLocator.Rows.Count > 0
                        && dtWareLocator.Rows[0]["wareLocatorNo"] != DBNull.Value
                        && dtWareLocator.Rows[0]["wareLocatorNo"].ToString() != "")
                    {
                        dtArrangeBillBox = arrangeBillBoxBB.GetVList("boxNo='" + strBoxNo + "'").Tables[0];
                        //首先将语句完整后 再将数据传递到后台当中

                        string command = "update dbo.BArrangeBillBox set preWareLocatorNo=wareLocatorNo,wareLocatorNo='" + dtWareLocator.Rows[0]["wareLocatorNo"].ToString() + "',weight='" + weight.ToString()
                            + "',factNum=factNum-" + Convert.ToString(Convert.ToInt32(dtArrangeBillBox.Rows[0]["leavingNum"]) + Convert.ToInt32(dtArrangeBillBox.Rows[0]["DEPickOutNum"]) - factNum)
                            + ",oldPalletNo=palletNo,oldRegion=region,palletNo='" + strNewPalletNo
                            + "',region='" + regionId.ToString() + "',noPassReasonId='" + tallyNoPassReasonId.ToString() + "' where boxNo='" + strBoxNo + "'";

                        if(command.Contains("--"))
                        {
                            command =command.Replace("--", "+");
                        }
                        //更改箱子称重重量和实际数量
                        //commBB.ExecuteSql(command);
                        string conn = "Data Source=172.16.0.160;Initial Catalog=GMWJ;User=wms;Password=sasa";
                        try
                        {
                            SQLHelperDM.ExecuteNonQuery(conn, command);
                        }
                        catch (Exception ee)
                        {
                            string errorRecord = "Insert into SqlText values ('" + ee.Message + "','Hello World','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "')";
                            SQLHelperDM.ExecuteNonQuery(conn, errorRecord);//在数据库表当中增加相应的判断错误处理,因为在程序运行当中经常出现将数据全部更改的错误
                            ret = false;

                            //在此处将所有的插入数据存储到一个表当中 用来进行记录
                        }

                        string record = "Insert into SqlText values ('" +command.Replace('\'',' ') + "','你好','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "')";
                        SQLHelperDM.ExecuteNonQuery(conn, record);//在数据库表当中增加相应的判断错误处理,因为在程序运行当中经常出现将数据全部更改的错误
                    }

                    //更改到货单明细的首箱单重
                    if (firstBoxSingleWeight == 0)
                    {
                        BArriveDetailData arriveDetailModel = new BArriveDetailData();

                        arriveDetailModel = arriveDetailBB.GetModel(arriveDetailId);

                        if (arriveDetailModel != null)
                        {
                            arriveDetailModel.firstBoxSingleWeight = Math.Round(weight / factNum, 4);

                            arriveDetailBB.ModifyRecord(arriveDetailModel);
                        }
                    }
                }
                else
                {
                    ret = false;
                    throw new Exception("保存错误,不存在理货单!");
                }

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

            return ret;
        }