using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using WMS.Model.Stock; using WMS.DBUtility; using WMS.IData.IStock; using WMS.IData;using Oracle.ManagedDataAccess.Client; namespace WMS.SqlServerData.StockData { public class AreaRepOutData : IAreaRepOut { /// /// 获取库区间调拨单出库明细 /// /// 库区间调拨单出库明细 public DataTable GetAreaRepOutDT(AreaRepOutModel model) { StringBuilder strSql = new StringBuilder(); strSql.AppendLine("select "); strSql.AppendLine(" a.AREA_REP_ID, "); strSql.AppendLine(" a.OUT_LOC_ID, "); strSql.AppendLine(" a.PLAN_COUNT, "); strSql.AppendLine(" a.REAL_COUNT, "); strSql.AppendLine(" a.GOODS_ID, "); strSql.AppendLine(" a.TAB_OUT_ID, "); strSql.AppendLine(" a.MISTOCK_NUM, "); strSql.AppendLine(" a.UNIT, --单位 "); strSql.AppendLine(" a.SCALE_UNIT, --重量单位 "); strSql.AppendLine(" a.PRICE, --标准价格 "); strSql.AppendLine(" a.PUTIN_ID, --入库批次号 "); strSql.AppendLine(" a.DOCCTNUMBER, --单据编号(调整填写调整号,入库填写入库号) "); strSql.AppendLine(" a.SPECIFICATION, --规格 "); strSql.AppendLine(" a.PRODUCTION_DATE,--生产日期 "); strSql.AppendLine(" a.WARE_DATE, --上架时间 "); strSql.AppendLine(" a.PROVIDER_ID, --供应商编号 "); strSql.AppendLine(" a.LOC_NUM, --某商品某库位某批次号库存数 "); strSql.AppendLine(" b.goods_name "); if (model.SORT == 1)//去备份表查 { strSql.AppendLine(" FROM T_STOCK_AREA_REP_OUT_BACK a "); } else { strSql.AppendLine(" FROM T_STOCK_AREA_REP_OUT a "); } strSql.AppendLine(" left join t_base_goods b "); strSql.AppendLine(" on a.goods_id = b.goods_id "); strSql.AppendLine("where 1 = 1"); if (!string.IsNullOrEmpty(model.TAB_OUT_ID)) { strSql.AppendLine(" and a.TAB_OUT_ID like '%" + model.TAB_OUT_ID + "%' "); } if (!string.IsNullOrEmpty(model.AREA_REP_ID)) { strSql.AppendLine(" and a.AREA_REP_ID = '" + model.AREA_REP_ID + "' "); } strSql.AppendLine(" order by a.TAB_OUT_ID"); return SystemDataObject.Instance.GetDataTable(strSql.ToString()); } /// /// 插入库区间调拨单出库明细信息 /// /// 库区间调拨单出库明细Model public void InsertAreaRepOut(AreaRepOutModel model) { StringBuilder strSql = new StringBuilder(); //if (model.AREA_REP_ID == null) //{ // strSql.AppendLine("insert into T_STOCK_AREA_REP_OUT("); // strSql.AppendLine("AREA_REP_ID,OUT_LOC_ID,PLAN_COUNT,REAL_COUNT,GOODS_ID,TAB_OUT_ID,MISTOCK_NUM)"); // strSql.AppendLine(" values ("); // strSql.AppendLine("SEQ_STOCK_AREA_REP.currval,:OUT_LOC_ID,:PLAN_COUNT,:REAL_COUNT,:GOODS_ID,SEQ_STOCK_AREA_REP_OUT.nextval,:MISTOCK_NUM)"); // OracleParameter[] parameters = { // new OracleParameter(":OUT_LOC_ID",OracleDbType.Varchar2,20), // new OracleParameter(":PLAN_COUNT", OracleDbType.Decimal,4), // new OracleParameter(":REAL_COUNT", OracleDbType.Decimal,4), // new OracleParameter(":GOODS_ID",OracleDbType.Varchar2,20), // new OracleParameter(":MISTOCK_NUM", OracleDbType.Decimal,4)}; // parameters[0].Value = model.OUT_LOC_ID; // parameters[1].Value = model.PLAN_COUNT; // parameters[2].Value = model.REAL_COUNT; // parameters[3].Value = model.GOODS_ID; // parameters[4].Value = model.MISTOCK_NUM; // SystemDataObject.Instance.ExecuteSql(strSql.ToString(), parameters); //} //else //{ if (model.TAB_OUT_ID == null) { strSql.AppendLine("insert into T_STOCK_AREA_REP_OUT("); strSql.AppendLine("AREA_REP_ID,OUT_LOC_ID,PLAN_COUNT,REAL_COUNT,GOODS_ID,MISTOCK_NUM,UNIT,SCALE_UNIT,PUTIN_ID,DOCCTNUMBER,SPECIFICATION,PRODUCTION_DATE,WARE_DATE,PROVIDER_ID,LOC_NUM,PRICE)"); strSql.AppendLine(" values ("); strSql.AppendLine(":AREA_REP_ID,:OUT_LOC_ID,:PLAN_COUNT,:REAL_COUNT,:GOODS_ID,:MISTOCK_NUM,:UNIT,:SCALE_UNIT,:PUTIN_ID,:DOCCTNUMBER,:SPECIFICATION,:PRODUCTION_DATE,:WARE_DATE,:PROVIDER_ID,:LOC_NUM,:PRICE)"); OracleParameter[] parameters = { new OracleParameter(":AREA_REP_ID",OracleDbType.Varchar2), new OracleParameter(":OUT_LOC_ID",OracleDbType.Varchar2), new OracleParameter(":PLAN_COUNT", OracleDbType.Decimal), new OracleParameter(":REAL_COUNT", OracleDbType.Decimal), new OracleParameter(":GOODS_ID",OracleDbType.Varchar2), new OracleParameter(":MISTOCK_NUM", OracleDbType.Decimal), new OracleParameter(":UNIT",OracleDbType.Varchar2), new OracleParameter(":SCALE_UNIT",OracleDbType.Varchar2), new OracleParameter(":PUTIN_ID",OracleDbType.Varchar2), new OracleParameter(":DOCCTNUMBER",OracleDbType.Varchar2), new OracleParameter(":SPECIFICATION",OracleDbType.Varchar2), new OracleParameter(":PRODUCTION_DATE", OracleDbType.Date), new OracleParameter(":WARE_DATE", OracleDbType.Date), new OracleParameter(":PROVIDER_ID",OracleDbType.Varchar2), new OracleParameter(":LOC_NUM", OracleDbType.Decimal), new OracleParameter(":PRICE",OracleDbType.Varchar2)}; parameters[0].Value = model.AREA_REP_ID; parameters[1].Value = model.OUT_LOC_ID; parameters[2].Value = model.PLAN_COUNT; parameters[3].Value = model.REAL_COUNT; parameters[4].Value = model.GOODS_ID; parameters[5].Value = model.MISTOCK_NUM; parameters[6].Value = model.UNIT; parameters[7].Value = model.SCALE_UNIT; parameters[8].Value = model.PUTIN_ID; parameters[9].Value = model.DOCCTNUMBER; parameters[10].Value = model.SPECIFICATION; parameters[11].Value = model.PRODUCTION_DATE; parameters[12].Value = model.WARE_DATE; parameters[13].Value = model.PROVIDER_ID; parameters[14].Value = model.LOC_NUM; parameters[15].Value = model.PRICE; SystemDataObject.Instance.ExecuteSql(strSql.ToString(), parameters); } else { strSql.AppendLine("insert into T_STOCK_AREA_REP_OUT("); strSql.AppendLine("AREA_REP_ID,OUT_LOC_ID,PLAN_COUNT,REAL_COUNT,GOODS_ID,TAB_OUT_ID,MISTOCK_NUM,UNIT,SCALE_UNIT,PUTIN_ID,DOCCTNUMBER,SPECIFICATION,PRODUCTION_DATE,WARE_DATE,PROVIDER_ID,LOC_NUM,PRICE)"); strSql.AppendLine(" values ("); strSql.AppendLine(":AREA_REP_ID,:OUT_LOC_ID,:PLAN_COUNT,:REAL_COUNT,:GOODS_ID,:TAB_OUT_ID,:MISTOCK_NUM,:UNIT,:SCALE_UNIT,:PUTIN_ID,:DOCCTNUMBER,:SPECIFICATION,:PRODUCTION_DATE,:WARE_DATE,:PROVIDER_ID,:LOC_NUM,:PRICE)"); OracleParameter[] parameters = { new OracleParameter(":AREA_REP_ID",OracleDbType.Varchar2), new OracleParameter(":OUT_LOC_ID",OracleDbType.Varchar2), new OracleParameter(":PLAN_COUNT", OracleDbType.Decimal), new OracleParameter(":REAL_COUNT", OracleDbType.Decimal), new OracleParameter(":GOODS_ID",OracleDbType.Varchar2), new OracleParameter(":TAB_OUT_ID",OracleDbType.Varchar2), new OracleParameter(":MISTOCK_NUM", OracleDbType.Decimal), new OracleParameter(":UNIT",OracleDbType.Varchar2), new OracleParameter(":SCALE_UNIT",OracleDbType.Varchar2), new OracleParameter(":PUTIN_ID",OracleDbType.Varchar2), new OracleParameter(":DOCCTNUMBER",OracleDbType.Varchar2), new OracleParameter(":SPECIFICATION",OracleDbType.Varchar2), new OracleParameter(":PRODUCTION_DATE", OracleDbType.Date), new OracleParameter(":WARE_DATE", OracleDbType.Date), new OracleParameter(":PROVIDER_ID",OracleDbType.Varchar2), new OracleParameter(":LOC_NUM", OracleDbType.Decimal), new OracleParameter(":PRICE",OracleDbType.Varchar2)}; parameters[0].Value = model.AREA_REP_ID; parameters[1].Value = model.OUT_LOC_ID; parameters[2].Value = model.PLAN_COUNT; parameters[3].Value = model.REAL_COUNT; parameters[4].Value = model.GOODS_ID; parameters[5].Value = model.TAB_OUT_ID; parameters[6].Value = model.MISTOCK_NUM; parameters[7].Value = model.UNIT; parameters[8].Value = model.SCALE_UNIT; parameters[9].Value = model.PUTIN_ID; parameters[10].Value = model.DOCCTNUMBER; parameters[11].Value = model.SPECIFICATION; parameters[12].Value = model.PRODUCTION_DATE; parameters[13].Value = model.WARE_DATE; parameters[14].Value = model.PROVIDER_ID; parameters[15].Value = model.LOC_NUM; parameters[16].Value = model.PRICE; SystemDataObject.Instance.ExecuteSql(strSql.ToString(), parameters); } //} } /// /// 修改库区间调拨单出库明细信息 /// /// 库区间调拨单出库明细Model public void UpdateAreaRepOut(AreaRepOutModel model) { StringBuilder strSql = new StringBuilder(); strSql.AppendLine("update T_STOCK_AREA_REP_OUT set "); strSql.AppendLine("AREA_REP_ID=:AREA_REP_ID,"); strSql.AppendLine("OUT_LOC_ID=:OUT_LOC_ID,"); strSql.AppendLine("PLAN_COUNT=:PLAN_COUNT,"); strSql.AppendLine("REAL_COUNT=:REAL_COUNT,"); strSql.AppendLine("GOODS_ID=:GOODS_ID,"); strSql.AppendLine("TAB_OUT_ID=:TAB_OUT_ID,"); strSql.AppendLine("unit=:unit,"); strSql.AppendLine("SCALE_UNIT=:SCALE_UNIT,"); strSql.AppendLine("MISTOCK_NUM=:MISTOCK_NUM,"); strSql.AppendLine("PRICE=:PRICE"); strSql.AppendLine(" where TAB_OUT_ID=:TAB_OUT_ID "); OracleParameter[] parameters = { new OracleParameter(":AREA_REP_ID",OracleDbType.Varchar2), new OracleParameter(":OUT_LOC_ID",OracleDbType.Varchar2), new OracleParameter(":PLAN_COUNT", OracleDbType.Decimal), new OracleParameter(":REAL_COUNT", OracleDbType.Decimal), new OracleParameter(":GOODS_ID",OracleDbType.Varchar2), new OracleParameter(":TAB_OUT_ID",OracleDbType.Varchar2), new OracleParameter(":UNIT",OracleDbType.Varchar2), new OracleParameter(":SCALE_UNIT",OracleDbType.Varchar2), new OracleParameter(":MISTOCK_NUM", OracleDbType.Decimal), new OracleParameter(":PRICE",OracleDbType.Varchar2)}; parameters[0].Value = model.AREA_REP_ID; parameters[1].Value = model.OUT_LOC_ID; parameters[2].Value = model.PLAN_COUNT; parameters[3].Value = model.REAL_COUNT; parameters[4].Value = model.GOODS_ID; parameters[5].Value = model.TAB_OUT_ID; parameters[6].Value = model.UNIT; parameters[7].Value = model.SCALE_UNIT; parameters[8].Value = model.MISTOCK_NUM; parameters[9].Value = model.PRICE; SystemDataObject.Instance.ExecuteSql(strSql.ToString(), parameters); } /// /// 删除库区间调拨单出库明细信息 /// /// public void DeleteAreaRepOut(string ID) { StringBuilder strSql = new StringBuilder(); strSql.AppendLine("delete from T_STOCK_AREA_REP_OUT "); strSql.AppendLine(" where TAB_OUT_ID=:TAB_OUT_ID "); OracleParameter[] parameters = { new OracleParameter(":TAB_OUT_ID",OracleDbType.Varchar2) }; parameters[0].Value = ID; SystemDataObject.Instance.ExecuteSql(strSql.ToString(), parameters); } /// /// 通过库区间调拨单编号删除库区间调拨单出库明细 /// /// public void DeleteAreaRepOutByAreaRepID(string ID) { StringBuilder strSql = new StringBuilder(); strSql.AppendLine("delete from T_STOCK_AREA_REP_OUT "); strSql.AppendLine(" where AREA_REP_ID=:AREA_REP_ID "); OracleParameter[] parameters = { new OracleParameter(":AREA_REP_ID",OracleDbType.Varchar2) }; parameters[0].Value = ID; SystemDataObject.Instance.ExecuteSql(strSql.ToString(), parameters); } /// /// 向备份表中添加库区间调拨单出库明细 /// /// 库区间调拨单编号 public void InsertAreaRepOutBack(string AreaRepID) { string strSql = "insert into T_STOCK_AREA_REP_OUT_BACK select * from T_STOCK_AREA_REP_OUT where AREA_REP_ID =:AREA_REP_ID"; OracleParameter[] parameters = { new OracleParameter(":AREA_REP_ID",OracleDbType.Varchar2)}; parameters[0].Value = AreaRepID; SystemDataObject.Instance.ExecuteSql(strSql.ToString(), parameters); } } }