/// <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); }
/// <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); }
//***************************************************************************** //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; }