/// <summary> /// 获得实体 /// </summary> /// <returns></returns> private StorgeLock GetEntity() { StorgeLock entity = new StorgeLock(); entity.ID = saveLockID; entity.SelectByID(); entity.WHID = saveItemWHID; entity.ItemCode = saveItemCode; entity.ItemName = saveItemName; entity.ItemStd = saveItemStd; entity.LockSO = txtLockSO.Text.Trim(); entity.LockQty = SysConvert.ToDecimal(txtLockQty.Text.Trim()); entity.LockTime = DateTime.Now.Date; //ParamSetRule rule = new ParamSetRule(); //if (this.FormListAID == (int)WHType.色纱) //{ // entity.NeedDate = DateTime.Now.AddDays(rule.RShowInt((int)ParamSet.色纱锁定期限)); //} //else if (this.FormListAID == (int)WHType.坯纱) //{ // entity.NeedDate = DateTime.Now.AddDays(rule.RShowInt((int)ParamSet.坯纱锁定期限)); //} entity.LockOPID = SysConvert.ToString(drpOPID.EditValue); entity.LockDesc = txtRemark.Text.Trim(); entity.Remark = txtRemark.Text.Trim(); //entity.StorgeID = saveStorgeID; entity.Batch = saveBatch; entity.VendorBatch = saveVendorBatch; entity.ColorNum = saveColorNum; entity.ColorName = saveColorName; entity.JarNum = saveJarNum; //entity.DSN = saveDSN; //entity.SSN = saveSSN; return(entity); }
/// <summary> /// 删除 /// </summary> /// <param name="p_Entity">实体类</param> /// <returns>操作影响的记录行数</returns> public override int Delete(BaseEntity p_Entity) { try { StorgeLock MasterEntity = (StorgeLock)p_Entity; if (MasterEntity.ID == 0) { return(0); } //删除主表数据 string Sql = ""; Sql = "DELETE FROM WH_StorgeLock WHERE " + "ID=" + SysString.ToDBString(MasterEntity.ID); //执行 int AffectedRows = 0; if (!this.sqlTransFlag) { AffectedRows = this.ExecuteNonQuery(Sql); } else { AffectedRows = sqlTrans.ExecuteNonQuery(Sql); } return(AffectedRows); } catch (BaseException E) { throw new BaseException(E.Message, E); } catch (Exception E) { throw new BaseException(FrameWorkMessage.GetAlertMessage((int)Message.CommonDBDelete), E); } }
/// <summary> /// 锁定库存 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnLockStorge_Click(object sender, EventArgs e) { try { if (!FCommon.RightCheck(this.FormID, this.FormListAID, this.FormListBID, RightSub.新增)) { this.ShowMessage("你没有此操作权限"); return; } if (saveStorgeID == 0) { this.ShowMessage("请先查询要操作的记录"); return; } if (SysConvert.ToFloat(txtLockQty.Text.Trim()) > SysConvert.ToFloat(txtLeftQty.Text.Trim())) { this.ShowMessage("锁定数量大于当前可使用数量,不能实现库存锁定"); return; } if (!NewCheckCorrect()) { return; } //if (!CheckCorrectLock()) //{ // return; //} StorgeLockRule rule = new StorgeLockRule(); StorgeLock entity = this.GetEntity(); rule.RLock(entity, true); string tempwhid = saveItemWHID; string tempitemcode = saveItemCode; string tempStorgeID = saveStorgeID.ToString(); BindGrid(); ProcessGrid.GridViewFocus(gridView1, new string[1] { "ID" }, new string[1] { tempStorgeID }); } catch (Exception E) { this.ShowMessage(E.Message); } }
/// <summary> /// 删除 /// </summary> /// <param name="p_BE">要删除的实体</param> /// <param name="sqlTrans">事务类</param> public void RDelete(BaseEntity p_BE, IDBTransAccess sqlTrans) { try { this.CheckCorrect(p_BE); StorgeLock entity = (StorgeLock)p_BE; StorgeLockCtl control = new StorgeLockCtl(sqlTrans); control.Delete(entity); } catch (BaseException) { throw; } catch (Exception E) { throw new BaseException(E.Message); } }
/// <summary> /// 新增(传入事务处理) /// </summary> /// <param name="p_BE">要新增的实体</param> /// <param name="sqlTrans">事务类</param> public void RAdd(BaseEntity p_BE, IDBTransAccess sqlTrans) { try { this.CheckCorrect(p_BE); StorgeLock entity = (StorgeLock)p_BE; StorgeLockCtl control = new StorgeLockCtl(sqlTrans); entity.ID = (int)EntityIDTable.GetID((long)SysEntity.WH_StorgeLock, sqlTrans); control.AddNew(entity); } catch (BaseException) { throw; } catch (Exception E) { throw new BaseException(E.Message); } }
/// <summary> /// 新增 /// </summary> /// <param name="p_Entity">实体类</param> /// <returns>操作影响的记录行数</returns> public override int AddNew(BaseEntity p_Entity) { try { StorgeLock MasterEntity = (StorgeLock)p_Entity; if (MasterEntity.ID == 0) { return(0); } //新增主表数据 StringBuilder MasterField = new StringBuilder(); StringBuilder MasterValue = new StringBuilder(); MasterField.Append("INSERT INTO WH_StorgeLock("); MasterValue.Append(" VALUES("); MasterField.Append("ID" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.ID) + ","); MasterField.Append("WHID" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.WHID) + ","); MasterField.Append("ItemCode" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.ItemCode) + ","); MasterField.Append("ItemName" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.ItemName) + ","); MasterField.Append("ItemStd" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.ItemStd) + ","); MasterField.Append("Batch" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.Batch) + ","); MasterField.Append("VendorBatch" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.VendorBatch) + ","); MasterField.Append("JarNum" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.JarNum) + ","); MasterField.Append("ColorNum" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.ColorNum) + ","); MasterField.Append("ColorName" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.ColorName) + ","); MasterField.Append("LockQty" + ","); if (MasterEntity.LockQty != 0) { MasterValue.Append(SysString.ToDBString(MasterEntity.LockQty) + ","); } else { MasterValue.Append("null,"); } MasterField.Append("LockSO" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.LockSO) + ","); MasterField.Append("LockDesc" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.LockDesc) + ","); MasterField.Append("LockOPID" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.LockOPID) + ","); MasterField.Append("NeedDate" + ","); if (MasterEntity.NeedDate != SystemConfiguration.DateTimeDefaultValue) { MasterValue.Append(SysString.ToDBString(MasterEntity.NeedDate.ToString("yyyy-MM-dd HH:mm:ss")) + ","); } else { MasterValue.Append("null,"); } MasterField.Append("LockTime" + ","); if (MasterEntity.LockTime != SystemConfiguration.DateTimeDefaultValue) { MasterValue.Append(SysString.ToDBString(MasterEntity.LockTime.ToString("yyyy-MM-dd HH:mm:ss")) + ","); } else { MasterValue.Append("null,"); } MasterField.Append("LastUpdTime" + ","); if (MasterEntity.LastUpdTime != SystemConfiguration.DateTimeDefaultValue) { MasterValue.Append(SysString.ToDBString(MasterEntity.LastUpdTime.ToString("yyyy-MM-dd HH:mm:ss")) + ","); } else { MasterValue.Append("null,"); } MasterField.Append("LastUpdOP" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.LastUpdOP) + ","); MasterField.Append("Remark" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.Remark) + ","); MasterField.Append("GoodsCode" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.GoodsCode) + ","); MasterField.Append("GoodsLevel" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.GoodsLevel) + ","); MasterField.Append("MWidth" + ","); if (MasterEntity.MWidth != 0) { MasterValue.Append(SysString.ToDBString(MasterEntity.MWidth) + ","); } else { MasterValue.Append("null,"); } MasterField.Append("MWeight" + ","); if (MasterEntity.MWeight != 0) { MasterValue.Append(SysString.ToDBString(MasterEntity.MWeight) + ","); } else { MasterValue.Append("null,"); } MasterField.Append("WeightUnit" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.WeightUnit) + ","); MasterField.Append("VColorNum" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.VColorNum) + ","); MasterField.Append("VColorName" + ","); MasterValue.Append(SysString.ToDBString(MasterEntity.VColorName) + ","); MasterField.Append("VItemCode" + ")"); MasterValue.Append(SysString.ToDBString(MasterEntity.VItemCode) + ")"); //执行 int AffectedRows = 0; if (!this.sqlTransFlag) { AffectedRows = this.ExecuteNonQuery(MasterField.Append(MasterValue.ToString()).ToString()); } else { AffectedRows = sqlTrans.ExecuteNonQuery(MasterField.Append(MasterValue.ToString()).ToString()); } return(AffectedRows); } catch (BaseException E) { throw new BaseException(E.Message, E); } catch (Exception E) { throw new BaseException(FrameWorkMessage.GetAlertMessage((int)Message.CommonDBInsert), E); } }
/// <summary> /// 修改 /// </summary> /// <param name="p_Entity">实体类</param> /// <returns>操作影响的记录行数</returns> public override int Update(BaseEntity p_Entity) { try { StorgeLock MasterEntity = (StorgeLock)p_Entity; if (MasterEntity.ID == 0) { return(0); } //更新主表数据 StringBuilder UpdateBuilder = new StringBuilder(); UpdateBuilder.Append("UPDATE WH_StorgeLock SET "); UpdateBuilder.Append(" ID=" + SysString.ToDBString(MasterEntity.ID) + ","); UpdateBuilder.Append(" WHID=" + SysString.ToDBString(MasterEntity.WHID) + ","); UpdateBuilder.Append(" ItemCode=" + SysString.ToDBString(MasterEntity.ItemCode) + ","); UpdateBuilder.Append(" ItemName=" + SysString.ToDBString(MasterEntity.ItemName) + ","); UpdateBuilder.Append(" ItemStd=" + SysString.ToDBString(MasterEntity.ItemStd) + ","); UpdateBuilder.Append(" Batch=" + SysString.ToDBString(MasterEntity.Batch) + ","); UpdateBuilder.Append(" VendorBatch=" + SysString.ToDBString(MasterEntity.VendorBatch) + ","); UpdateBuilder.Append(" JarNum=" + SysString.ToDBString(MasterEntity.JarNum) + ","); UpdateBuilder.Append(" ColorNum=" + SysString.ToDBString(MasterEntity.ColorNum) + ","); UpdateBuilder.Append(" ColorName=" + SysString.ToDBString(MasterEntity.ColorName) + ","); if (MasterEntity.LockQty != 0) { UpdateBuilder.Append(" LockQty=" + SysString.ToDBString(MasterEntity.LockQty) + ","); } else { UpdateBuilder.Append(" LockQty=null,"); } UpdateBuilder.Append(" LockSO=" + SysString.ToDBString(MasterEntity.LockSO) + ","); UpdateBuilder.Append(" LockDesc=" + SysString.ToDBString(MasterEntity.LockDesc) + ","); UpdateBuilder.Append(" LockOPID=" + SysString.ToDBString(MasterEntity.LockOPID) + ","); if (MasterEntity.NeedDate != SystemConfiguration.DateTimeDefaultValue) { UpdateBuilder.Append(" NeedDate=" + SysString.ToDBString(MasterEntity.NeedDate.ToString("yyyy-MM-dd HH:mm:ss")) + ","); } else { UpdateBuilder.Append(" NeedDate=null,"); } if (MasterEntity.LockTime != SystemConfiguration.DateTimeDefaultValue) { UpdateBuilder.Append(" LockTime=" + SysString.ToDBString(MasterEntity.LockTime.ToString("yyyy-MM-dd HH:mm:ss")) + ","); } else { UpdateBuilder.Append(" LockTime=null,"); } if (MasterEntity.LastUpdTime != SystemConfiguration.DateTimeDefaultValue) { UpdateBuilder.Append(" LastUpdTime=" + SysString.ToDBString(MasterEntity.LastUpdTime.ToString("yyyy-MM-dd HH:mm:ss")) + ","); } else { UpdateBuilder.Append(" LastUpdTime=null,"); } UpdateBuilder.Append(" LastUpdOP=" + SysString.ToDBString(MasterEntity.LastUpdOP) + ","); UpdateBuilder.Append(" Remark=" + SysString.ToDBString(MasterEntity.Remark) + ","); UpdateBuilder.Append(" GoodsCode=" + SysString.ToDBString(MasterEntity.GoodsCode) + ","); UpdateBuilder.Append(" GoodsLevel=" + SysString.ToDBString(MasterEntity.GoodsLevel) + ","); if (MasterEntity.MWidth != 0) { UpdateBuilder.Append(" MWidth=" + SysString.ToDBString(MasterEntity.MWidth) + ","); } else { UpdateBuilder.Append(" MWidth=null,"); } if (MasterEntity.MWeight != 0) { UpdateBuilder.Append(" MWeight=" + SysString.ToDBString(MasterEntity.MWeight) + ","); } else { UpdateBuilder.Append(" MWeight=null,"); } UpdateBuilder.Append(" WeightUnit=" + SysString.ToDBString(MasterEntity.WeightUnit) + ","); UpdateBuilder.Append(" VColorNum=" + SysString.ToDBString(MasterEntity.VColorNum) + ","); UpdateBuilder.Append(" VColorName=" + SysString.ToDBString(MasterEntity.VColorName) + ","); UpdateBuilder.Append(" VItemCode=" + SysString.ToDBString(MasterEntity.VItemCode)); UpdateBuilder.Append(" WHERE " + "ID=" + SysString.ToDBString(MasterEntity.ID)); //执行 int AffectedRows = 0; if (!this.sqlTransFlag) { AffectedRows = this.ExecuteNonQuery(UpdateBuilder.ToString()); } else { AffectedRows = sqlTrans.ExecuteNonQuery(UpdateBuilder.ToString()); } return(AffectedRows); } catch (BaseException E) { throw new BaseException(E.Message, E); } catch (Exception E) { throw new BaseException(FrameWorkMessage.GetAlertMessage((int)Message.CommonDBUpdate), E); } }
/// <summary> /// 解锁 /// </summary> /// <param name="p_StorgeLockID">锁定记录ID</param> /// <param name="sqlTrans">事务类</param> public void RUnLock(int p_StorgeLockID, decimal p_UnLockQty, string p_Remark, bool p_AboveFlag, IDBTransAccess sqlTrans) { try { StorgeLock entity = new StorgeLock(sqlTrans); entity.ID = p_StorgeLockID; entity.SelectByID(); StorgeLockHisRule rule = new StorgeLockHisRule(); StorgeLockHis entityhis = new StorgeLockHis(sqlTrans); //entityhis.StorgeID = p_StorgeLockID; //entityhis.LockStorgeID = p_StorgeLockID; entityhis.ID = entity.ID; entityhis.WHID = entity.WHID; // entityhis.StorgeID = entity.StorgeID; entityhis.ItemCode = entity.ItemCode; entityhis.ItemName = entity.ItemName; entityhis.ItemStd = entity.ItemStd; entityhis.LockOPID = entity.LockOPID; //entityhis.LockQty = entity.LockQty; entityhis.LockSO = entity.LockSO; entityhis.Batch = entity.Batch; entityhis.VendorBatch = entity.VendorBatch; entityhis.ColorName = entity.ColorName; entityhis.ColorNum = entity.ColorNum; entityhis.JarNum = entity.JarNum; entityhis.VendorBatch = entity.VendorBatch; entityhis.LockTime = entity.LockTime; entityhis.NeedDate = entity.NeedDate; entityhis.LockDesc = entity.Remark; //entityhis.LockTypeID = (int)LockType.解除锁定; //entityhis.LockQty = p_UnLockQty; //entityhis.UnLockQty = p_UnLockQty; //entityhis.UnlockOPID = ParamConfig.LoginID; //entityhis.UnlockTime = DateTime.Now; //entityhis.UnlockDesc = p_Remark; entityhis.Remark = p_Remark; entityhis.LastUpdOP = ParamConfig.LoginName; entityhis.LastUpdTime = DateTime.Now; if (p_UnLockQty >= entity.LockQty)//已经全部解锁 { if (p_AboveFlag && (p_UnLockQty > entity.LockQty)) { throw new Exception("解锁数量:" + p_UnLockQty.ToString() + " 大于当前锁定数量:" + entity.LockQty.ToString() + ",解锁失败"); } this.RDelete(entity, sqlTrans); StorgeRule rules = new StorgeRule(); // rules.UpdateStorge(entity.StorgeID, SysConvert.ToFloat(entity.LockQty), false, sqlTrans); } else//未全部解锁 { entity.LockQty = entity.LockQty - p_UnLockQty; entity.LastUpdOP = ParamConfig.LoginName; entity.LastUpdTime = DateTime.Now.Date; this.RUpdate(entity, sqlTrans); StorgeRule rules = new StorgeRule(); //rules.UpdateStorge(entity.StorgeID, SysConvert.ToFloat(p_UnLockQty), false, sqlTrans); } rule.RAdd(entityhis, sqlTrans);//新增解锁历史记录 } catch (BaseException) { throw; } catch (Exception E) { throw new BaseException(E.Message); } }
/// <summary> /// 检查将要操作的数据是否符合业务规则 /// </summary> /// <param name="p_BE"></param> private void CheckCorrect(BaseEntity p_BE) { StorgeLock entity = (StorgeLock)p_BE; }
/// <summary> /// 锁定库存(传入事务处理) /// </summary> /// <param name="p_BE">要新增的实体</param> /// <param name="sqlTrans">事务类</param> public void RLock(BaseEntity p_BE, bool p_CheckLockNum, IDBTransAccess sqlTrans) { try { this.CheckCorrect(p_BE); StorgeLock entity = (StorgeLock)p_BE; string sql = string.Empty; //DataTable dt; //if (p_CheckLockNum)//校验是否超过最大锁定次数 //{ // ParamSetRule ruleparam = new ParamSetRule(); // sql = "SELECT COUNT(*) FROM WH_StorgeLockHis WHERE ItemCode=" + SysString.ToDBString(entity.ItemCode); // sql += " AND LockOPID=" + SysString.ToDBString(entity.LockOPID); // sql += " AND LockTime BETWEEN " + SysString.ToDBString(DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "-1"); // sql += " AND " + SysString.ToDBString(DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month).ToString()); // dt = sqlTrans.Fill(sql); // if (SysConvert.ToInt32(dt.Rows[0][0]) >= ruleparam.RShowInt((int)ParamSet.锁定次数)) // { // throw new Exception("纱种:" + entity.ItemName + " 本月已达到最大锁定次数" + dt.Rows[0][0].ToString() + ",锁定失败"); // } //} StorgeLockHisRule rule = new StorgeLockHisRule(); StorgeLockHis entityhis = new StorgeLockHis(sqlTrans); entityhis.ID = entity.ID; entityhis.WHID = entity.WHID; //entityhis.StorgeID = entity.StorgeID; entityhis.ItemCode = entity.ItemCode; entityhis.ItemName = entity.ItemName; entityhis.ItemStd = entity.ItemStd; entityhis.LockDesc = entity.Remark; entityhis.LockOPID = entity.LockOPID; //entityhis.LockQty = entity.LockQty; entityhis.LockSO = entity.LockSO; entityhis.LockTime = entity.LockTime; entityhis.NeedDate = entity.NeedDate; entityhis.Batch = entity.Batch; entityhis.VendorBatch = entity.VendorBatch; entityhis.ColorName = entity.ColorName; entityhis.ColorNum = entity.ColorNum; entityhis.JarNum = entity.JarNum; //entityhis.WHTypeID = entity.WHTypeID; //entityhis.LockTypeID = (int)LockType.锁定; entity.LastUpdOP = ParamConfig.LoginName; entity.LastUpdTime = DateTime.Now; this.RAdd(entity, sqlTrans); //更新库存 StorgeRule rules = new StorgeRule(); // rules.UpdateStorge(entity.StorgeID, SysConvert.ToFloat(entity.LockQty), true, sqlTrans); //新增锁定历史数据 rule.RAdd(entityhis, sqlTrans); } catch (BaseException) { throw; } catch (Exception E) { throw new BaseException(E.Message); } }