|
|
@@ -27388,340 +27388,340 @@ updateuserid=:updateuserid where barcode=:barcode";
|
|
|
{
|
|
|
int returnRows = 1;
|
|
|
message = "";
|
|
|
- try
|
|
|
- {
|
|
|
- string sql = "";
|
|
|
- sql = @"
|
|
|
- SELECT GDD.MATERIALCODE AS MATNR,
|
|
|
- DECODE(GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-') AS ZSCMS,
|
|
|
- CASE
|
|
|
- WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
|
|
|
- AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN
|
|
|
- 1
|
|
|
- WHEN (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
|
|
|
- AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN
|
|
|
- 2
|
|
|
- WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN
|
|
|
- 3
|
|
|
- ELSE
|
|
|
- 9
|
|
|
- END AS WORKSHOP
|
|
|
- FROM TP_PM_GROUTINGDAILYDETAIL GDD
|
|
|
- INNER JOIN TP_MST_GOODS G
|
|
|
- ON G.GOODSID = GDD.GOODSID
|
|
|
- INNER JOIN TP_MST_GOODSTYPE GT
|
|
|
- ON GT.GOODSTYPEID = G.GOODSTYPEID
|
|
|
- WHERE GDD.BARCODE = :BARCODE ";
|
|
|
-
|
|
|
- DataTable dtMatnr = oracleTrConn.GetSqlResultToDt(sql, new OracleParameter[]
|
|
|
- {
|
|
|
- new OracleParameter(":barcode", OracleDbType.Varchar2, barcode, ParameterDirection.Input)
|
|
|
- });
|
|
|
-
|
|
|
- // 如果物料编码不一致
|
|
|
- if (!oldMatnr.Equals(dtMatnr.Rows[0]["MATNR"]))
|
|
|
- {
|
|
|
- sql = @"
|
|
|
- SELECT IDNRK,
|
|
|
- MEINS,
|
|
|
- MENGE,
|
|
|
- IDNRKNAME,
|
|
|
- IDNRKONLYCODE,
|
|
|
- CHARG,
|
|
|
- LGORT
|
|
|
- FROM TP_PM_BARCODEIDNRKREL
|
|
|
- WHERE VALUEFLAG = '1'
|
|
|
- AND BARCODE = :BARCODE ";
|
|
|
- DataTable dtIdnrks = oracleTrConn.GetSqlResultToDt(sql, new OracleParameter[]
|
|
|
- {
|
|
|
- new OracleParameter(":BARCODE", OracleDbType.Varchar2, barcode, ParameterDirection.Input)
|
|
|
- });
|
|
|
+ //try
|
|
|
+ //{
|
|
|
+ // string sql = "";
|
|
|
+ // sql = @"
|
|
|
+ // SELECT GDD.MATERIALCODE AS MATNR,
|
|
|
+ // DECODE(GDD.TESTMOULDFLAG, 0, 'C', 1, 'Y', '-') AS ZSCMS,
|
|
|
+ // CASE
|
|
|
+ // WHEN (INSTR(GDD.GROUTINGLINECODE, 'A') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
|
|
|
+ // AND INSTR(GT.GOODSTYPECODE, '001002') = 1 THEN
|
|
|
+ // 1
|
|
|
+ // WHEN (INSTR(GDD.GROUTINGLINECODE, 'B') = 1 OR INSTR(GDD.GROUTINGLINECODE, 'D') = 1)
|
|
|
+ // AND INSTR(GT.GOODSTYPECODE, '001001') = 1 THEN
|
|
|
+ // 2
|
|
|
+ // WHEN INSTR(GDD.GROUTINGLINECODE, 'C') = 1 THEN
|
|
|
+ // 3
|
|
|
+ // ELSE
|
|
|
+ // 9
|
|
|
+ // END AS WORKSHOP
|
|
|
+ // FROM TP_PM_GROUTINGDAILYDETAIL GDD
|
|
|
+ // INNER JOIN TP_MST_GOODS G
|
|
|
+ // ON G.GOODSID = GDD.GOODSID
|
|
|
+ // INNER JOIN TP_MST_GOODSTYPE GT
|
|
|
+ // ON GT.GOODSTYPEID = G.GOODSTYPEID
|
|
|
+ // WHERE GDD.BARCODE = :BARCODE ";
|
|
|
+
|
|
|
+ // DataTable dtMatnr = oracleTrConn.GetSqlResultToDt(sql, new OracleParameter[]
|
|
|
+ // {
|
|
|
+ // new OracleParameter(":barcode", OracleDbType.Varchar2, barcode, ParameterDirection.Input)
|
|
|
+ // });
|
|
|
|
|
|
- // 如果装了配件了
|
|
|
- if (dtIdnrks.Rows.Count > 0)
|
|
|
- {
|
|
|
- string datuv = System.DateTime.Now.Date.ToString("yyyyMMdd");
|
|
|
+ // // 如果物料编码不一致
|
|
|
+ // if (!oldMatnr.Equals(dtMatnr.Rows[0]["MATNR"]))
|
|
|
+ // {
|
|
|
+ // sql = @"
|
|
|
+ // SELECT IDNRK,
|
|
|
+ // MEINS,
|
|
|
+ // MENGE,
|
|
|
+ // IDNRKNAME,
|
|
|
+ // IDNRKONLYCODE,
|
|
|
+ // CHARG,
|
|
|
+ // LGORT
|
|
|
+ // FROM TP_PM_BARCODEIDNRKREL
|
|
|
+ // WHERE VALUEFLAG = '1'
|
|
|
+ // AND BARCODE = :BARCODE ";
|
|
|
+ // DataTable dtIdnrks = oracleTrConn.GetSqlResultToDt(sql, new OracleParameter[]
|
|
|
+ // {
|
|
|
+ // new OracleParameter(":BARCODE", OracleDbType.Varchar2, barcode, ParameterDirection.Input)
|
|
|
+ // });
|
|
|
|
|
|
- Hashtable pars = new Hashtable();
|
|
|
- pars.Add("MATNR", dtMatnr.Rows[0]["MATNR"]); // 物料
|
|
|
- pars.Add("WERKS", "5000"); // 工厂
|
|
|
- pars.Add("ZSCS", "T"); // 生产工艺
|
|
|
- pars.Add("ZSCCJ", dtMatnr.Rows[0]["WORKSHOP"]); // 生产车间
|
|
|
- pars.Add("ZSCMS", dtMatnr.Rows[0]["ZSCMS"]); // 生产模式
|
|
|
- pars.Add("ZJDNU", "60"); // 节点
|
|
|
- pars.Add("DATUV", datuv); // 查询日期
|
|
|
- pars.Add("EMENG", 1); // 需求数量
|
|
|
+ // // 如果装了配件了
|
|
|
+ // if (dtIdnrks.Rows.Count > 0)
|
|
|
+ // {
|
|
|
+ // string datuv = System.DateTime.Now.Date.ToString("yyyyMMdd");
|
|
|
|
|
|
- Hashtable item = new Hashtable();
|
|
|
- item.Add("item", pars);
|
|
|
+ // Hashtable pars = new Hashtable();
|
|
|
+ // pars.Add("MATNR", dtMatnr.Rows[0]["MATNR"]); // 物料
|
|
|
+ // pars.Add("WERKS", "5000"); // 工厂
|
|
|
+ // pars.Add("ZSCS", "T"); // 生产工艺
|
|
|
+ // pars.Add("ZSCCJ", dtMatnr.Rows[0]["WORKSHOP"]); // 生产车间
|
|
|
+ // pars.Add("ZSCMS", dtMatnr.Rows[0]["ZSCMS"]); // 生产模式
|
|
|
+ // pars.Add("ZJDNU", "60"); // 节点
|
|
|
+ // pars.Add("DATUV", datuv); // 查询日期
|
|
|
+ // pars.Add("EMENG", 1); // 需求数量
|
|
|
|
|
|
- Hashtable body = new Hashtable();
|
|
|
- body.Add("T_INPUT", item);
|
|
|
+ // Hashtable item = new Hashtable();
|
|
|
+ // item.Add("item", pars);
|
|
|
|
|
|
- string postString = JsonConvert.SerializeObject(body);
|
|
|
+ // Hashtable body = new Hashtable();
|
|
|
+ // body.Add("T_INPUT", item);
|
|
|
|
|
|
- INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
|
|
|
- string url039 = ini.ReadIniData("SAP_NEW_INFO", "Url039");
|
|
|
- //string url039 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM039";
|
|
|
+ // string postString = JsonConvert.SerializeObject(body);
|
|
|
|
|
|
- string result = string.Empty;
|
|
|
- try
|
|
|
- {
|
|
|
- result = SAPDataLogic.PostData(url039, postString, "POST");
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- message = "获取SAP库存接口异常:\n" + ex.Message;
|
|
|
- return -4;
|
|
|
- }
|
|
|
+ // INIUtility ini = INIUtility.Instance(INIUtility.IniFile.SAP_HEGII);
|
|
|
+ // string url039 = ini.ReadIniData("SAP_NEW_INFO", "Url039");
|
|
|
+ // //string url039 = "http://hgs4podev.hegii.com:50200/RESTAdapter/DKMES/ZPPFM039";
|
|
|
|
|
|
+ // string result = string.Empty;
|
|
|
+ // try
|
|
|
+ // {
|
|
|
+ // result = SAPDataLogic.PostData(url039, postString, "POST");
|
|
|
+ // }
|
|
|
+ // catch (Exception ex)
|
|
|
+ // {
|
|
|
+ // message = "获取SAP库存接口异常:\n" + ex.Message;
|
|
|
+ // return -4;
|
|
|
+ // }
|
|
|
|
|
|
- JObject returnObj = JsonConvert.DeserializeObject<JObject>(result);
|
|
|
- JObject output = returnObj["T_OUTPUT"] as JObject;
|
|
|
- JArray array = output["item"] as JArray;
|
|
|
- DataTable dtIdnrk = Utility.ConvertToDataTable(array);
|
|
|
|
|
|
- if ("E".Equals(dtIdnrk.Rows[0]["ZTYPE"] + ""))
|
|
|
- {
|
|
|
- message = "获取SAP库存失败";
|
|
|
- return -5;
|
|
|
- }
|
|
|
+ // JObject returnObj = JsonConvert.DeserializeObject<JObject>(result);
|
|
|
+ // JObject output = returnObj["T_OUTPUT"] as JObject;
|
|
|
+ // JArray array = output["item"] as JArray;
|
|
|
+ // DataTable dtIdnrk = Utility.ConvertToDataTable(array);
|
|
|
|
|
|
- dtIdnrk.DefaultView.RowFilter = "MAKTX NOT LIKE '%半成品%'";
|
|
|
- dtIdnrk = dtIdnrk.DefaultView.ToTable();
|
|
|
-
|
|
|
- // 获取已走过的装配工序
|
|
|
- string procedureidlist = oracleTrConn.GetSqlResultToStr(@"
|
|
|
- SELECT LISTAGG(PROCEDUREID, ',') WITHIN GROUP(ORDER BY PROCEDUREID) AS PROCEDUREIDLIST
|
|
|
- FROM TP_PM_PRODUCTIONDATA
|
|
|
- WHERE VALUEFLAG = '1'
|
|
|
- AND MODELTYPE = '-5'
|
|
|
- AND BARCODE = :BARCODE ",
|
|
|
- new OracleParameter[] { new OracleParameter("BARCODE", barcode) }
|
|
|
- );
|
|
|
- procedureidlist = "," + procedureidlist + ",";
|
|
|
-
|
|
|
-
|
|
|
- // 过滤当前工序需要的组件
|
|
|
- DataTable dtIdnrkType = oracleTrConn.GetSqlResultToDt(@"
|
|
|
- SELECT IDNRKTYPE
|
|
|
- FROM TP_PC_PROCEDUREIDNRKTYPE
|
|
|
- WHERE INSTR(:PROCEDUREIDLIST , ',' || PROCEDUREID || ',') > 0",
|
|
|
- new OracleParameter[] { new OracleParameter("PROCEDUREIDLIST", procedureidlist) }
|
|
|
- );
|
|
|
-
|
|
|
- dtIdnrk.DefaultView.RowFilter = "MAKTX NOT LIKE '%半成品%'";
|
|
|
- dtIdnrk = dtIdnrk.DefaultView.ToTable();
|
|
|
-
|
|
|
- // 如果包含其它,就不判断了
|
|
|
- if (dtIdnrkType.Select("IDNRKTYPE = '其它'").Length == 0)
|
|
|
- {
|
|
|
- string fifter = "";
|
|
|
- foreach (DataRow row in dtIdnrkType.Rows)
|
|
|
- {
|
|
|
- fifter += " MAKTX LIKE '%" + row["IDNRKTYPE"] + "%' OR";
|
|
|
- }
|
|
|
+ // if ("E".Equals(dtIdnrk.Rows[0]["ZTYPE"] + ""))
|
|
|
+ // {
|
|
|
+ // message = "获取SAP库存失败";
|
|
|
+ // return -5;
|
|
|
+ // }
|
|
|
|
|
|
- // 如果没有条件,也不判断了
|
|
|
- if (fifter.Length > 0)
|
|
|
- {
|
|
|
- fifter = fifter.Substring(0, fifter.Length - 2);
|
|
|
- dtIdnrk.DefaultView.RowFilter = fifter;
|
|
|
- dtIdnrk = dtIdnrk.DefaultView.ToTable();
|
|
|
- }
|
|
|
- }
|
|
|
+ // dtIdnrk.DefaultView.RowFilter = "MAKTX NOT LIKE '%半成品%'";
|
|
|
+ // dtIdnrk = dtIdnrk.DefaultView.ToTable();
|
|
|
+
|
|
|
+ // // 获取已走过的装配工序
|
|
|
+ // string procedureidlist = oracleTrConn.GetSqlResultToStr(@"
|
|
|
+ // SELECT LISTAGG(PROCEDUREID, ',') WITHIN GROUP(ORDER BY PROCEDUREID) AS PROCEDUREIDLIST
|
|
|
+ // FROM TP_PM_PRODUCTIONDATA
|
|
|
+ // WHERE VALUEFLAG = '1'
|
|
|
+ // AND MODELTYPE = '-5'
|
|
|
+ // AND BARCODE = :BARCODE ",
|
|
|
+ // new OracleParameter[] { new OracleParameter("BARCODE", barcode) }
|
|
|
+ // );
|
|
|
+ // procedureidlist = "," + procedureidlist + ",";
|
|
|
+
|
|
|
+
|
|
|
+ // // 过滤当前工序需要的组件
|
|
|
+ // DataTable dtIdnrkType = oracleTrConn.GetSqlResultToDt(@"
|
|
|
+ // SELECT IDNRKTYPE
|
|
|
+ // FROM TP_PC_PROCEDUREIDNRKTYPE
|
|
|
+ // WHERE INSTR(:PROCEDUREIDLIST , ',' || PROCEDUREID || ',') > 0",
|
|
|
+ // new OracleParameter[] { new OracleParameter("PROCEDUREIDLIST", procedureidlist) }
|
|
|
+ // );
|
|
|
+
|
|
|
+ // dtIdnrk.DefaultView.RowFilter = "MAKTX NOT LIKE '%半成品%'";
|
|
|
+ // dtIdnrk = dtIdnrk.DefaultView.ToTable();
|
|
|
+
|
|
|
+ // // 如果包含其它,就不判断了
|
|
|
+ // if (dtIdnrkType.Select("IDNRKTYPE = '其它'").Length == 0)
|
|
|
+ // {
|
|
|
+ // string fifter = "";
|
|
|
+ // foreach (DataRow row in dtIdnrkType.Rows)
|
|
|
+ // {
|
|
|
+ // fifter += " MAKTX LIKE '%" + row["IDNRKTYPE"] + "%' OR";
|
|
|
+ // }
|
|
|
|
|
|
- // 过滤掉已安装的组件
|
|
|
- object idnrklist = oracleTrConn.GetSqlResultToStr(@"
|
|
|
- SELECT LISTAGG(IDNRK, ''',''') WITHIN GROUP(ORDER BY IDNRK) AS IDNRKLIST
|
|
|
- FROM TP_PM_BARCODEIDNRKREL
|
|
|
- WHERE VALUEFLAG = '1'
|
|
|
- AND BARCODE = :BARCODE ",
|
|
|
- new OracleParameter[] { new OracleParameter("BARCODE", barcode) }
|
|
|
- );
|
|
|
-
|
|
|
- // 可以保留的组件
|
|
|
- DataTable dtCanSaveIdnrk = dtIdnrk.Copy();
|
|
|
- dtCanSaveIdnrk.DefaultView.RowFilter = "IDNRK IN ('" + idnrklist + "')";
|
|
|
- dtCanSaveIdnrk = dtCanSaveIdnrk.DefaultView.ToTable();
|
|
|
-
|
|
|
- if (idnrklist != null)
|
|
|
- {
|
|
|
- dtIdnrk.DefaultView.RowFilter = "IDNRK NOT IN ('" + idnrklist + "')";
|
|
|
- dtIdnrk = dtIdnrk.DefaultView.ToTable();
|
|
|
- }
|
|
|
+ // // 如果没有条件,也不判断了
|
|
|
+ // if (fifter.Length > 0)
|
|
|
+ // {
|
|
|
+ // fifter = fifter.Substring(0, fifter.Length - 2);
|
|
|
+ // dtIdnrk.DefaultView.RowFilter = fifter;
|
|
|
+ // dtIdnrk = dtIdnrk.DefaultView.ToTable();
|
|
|
+ // }
|
|
|
+ // }
|
|
|
|
|
|
- if (dtIdnrk.Rows.Count == 0)
|
|
|
- {
|
|
|
- }
|
|
|
+ // // 过滤掉已安装的组件
|
|
|
+ // object idnrklist = oracleTrConn.GetSqlResultToStr(@"
|
|
|
+ // SELECT LISTAGG(IDNRK, ''',''') WITHIN GROUP(ORDER BY IDNRK) AS IDNRKLIST
|
|
|
+ // FROM TP_PM_BARCODEIDNRKREL
|
|
|
+ // WHERE VALUEFLAG = '1'
|
|
|
+ // AND BARCODE = :BARCODE ",
|
|
|
+ // new OracleParameter[] { new OracleParameter("BARCODE", barcode) }
|
|
|
+ // );
|
|
|
+
|
|
|
+ // // 可以保留的组件
|
|
|
+ // DataTable dtCanSaveIdnrk = dtIdnrk.Copy();
|
|
|
+ // dtCanSaveIdnrk.DefaultView.RowFilter = "IDNRK IN ('" + idnrklist + "')";
|
|
|
+ // dtCanSaveIdnrk = dtCanSaveIdnrk.DefaultView.ToTable();
|
|
|
+
|
|
|
+ // if (idnrklist != null)
|
|
|
+ // {
|
|
|
+ // dtIdnrk.DefaultView.RowFilter = "IDNRK NOT IN ('" + idnrklist + "')";
|
|
|
+ // dtIdnrk = dtIdnrk.DefaultView.ToTable();
|
|
|
+ // }
|
|
|
|
|
|
- // 加上需要的列
|
|
|
- dtIdnrk.Columns.Add("LGORT", typeof(string));
|
|
|
- dtIdnrk.Columns.Add("CHARG", typeof(string));
|
|
|
- dtIdnrk.Columns.Add("IDNRKONLYCODE", typeof(string));
|
|
|
+ // if (dtIdnrk.Rows.Count == 0)
|
|
|
+ // {
|
|
|
+ // }
|
|
|
|
|
|
- // 提取包材物料编码
|
|
|
- List<string> matnrs = new List<string>();
|
|
|
- foreach (DataRow row in dtIdnrk.Rows)
|
|
|
- {
|
|
|
- if (!matnrs.Contains(row["IDNRK"] + ""))
|
|
|
- {
|
|
|
- matnrs.Add(row["IDNRK"] + "");
|
|
|
- }
|
|
|
- }
|
|
|
+ // // 加上需要的列
|
|
|
+ // dtIdnrk.Columns.Add("LGORT", typeof(string));
|
|
|
+ // dtIdnrk.Columns.Add("CHARG", typeof(string));
|
|
|
+ // dtIdnrk.Columns.Add("IDNRKONLYCODE", typeof(string));
|
|
|
|
|
|
- string ZMSG = string.Empty;
|
|
|
+ // // 提取包材物料编码
|
|
|
+ // List<string> matnrs = new List<string>();
|
|
|
+ // foreach (DataRow row in dtIdnrk.Rows)
|
|
|
+ // {
|
|
|
+ // if (!matnrs.Contains(row["IDNRK"] + ""))
|
|
|
+ // {
|
|
|
+ // matnrs.Add(row["IDNRK"] + "");
|
|
|
+ // }
|
|
|
+ // }
|
|
|
|
|
|
- // 查线边仓库存
|
|
|
- DataTable dtSapInventory = SapApi.ZMM_WMS016("5000", matnrs, "", out ZMSG);
|
|
|
- dtSapInventory.DefaultView.RowFilter = "LGORT IN('2420','2430','2440','2450','2460','2470','2480','2490')";
|
|
|
- dtSapInventory = dtSapInventory.DefaultView.ToTable();
|
|
|
+ // string ZMSG = string.Empty;
|
|
|
|
|
|
- DataRow[] rows = null;
|
|
|
- if (dtSapInventory != null && dtSapInventory.Rows.Count > 0)
|
|
|
- {
|
|
|
- // 改名
|
|
|
- dtSapInventory.Columns["MATNR"].ColumnName = "IDNRK";
|
|
|
+ // // 查线边仓库存
|
|
|
+ // DataTable dtSapInventory = SapApi.ZMM_WMS016("5000", matnrs, "", out ZMSG);
|
|
|
+ // dtSapInventory.DefaultView.RowFilter = "LGORT IN('2420','2430','2440','2450','2460','2470','2480','2490')";
|
|
|
+ // dtSapInventory = dtSapInventory.DefaultView.ToTable();
|
|
|
|
|
|
- // 判断是否缺库存
|
|
|
- List<string> notEnoughIdnrks = new List<string>();
|
|
|
- foreach (string idnrk in matnrs)
|
|
|
- {
|
|
|
- rows = dtSapInventory.Select("IDNRK = '" + idnrk + "'"); ;
|
|
|
- if (rows.Length == 0)
|
|
|
- {
|
|
|
- notEnoughIdnrks.Add(idnrk);
|
|
|
- }
|
|
|
- }
|
|
|
+ // DataRow[] rows = null;
|
|
|
+ // if (dtSapInventory != null && dtSapInventory.Rows.Count > 0)
|
|
|
+ // {
|
|
|
+ // // 改名
|
|
|
+ // dtSapInventory.Columns["MATNR"].ColumnName = "IDNRK";
|
|
|
|
|
|
- if (notEnoughIdnrks.Count > 0)
|
|
|
- {
|
|
|
- message = "以下组件在SAP系统中库存不足:\n" + string.Join(",", notEnoughIdnrks.ToArray());
|
|
|
- return -6;
|
|
|
- }
|
|
|
+ // // 判断是否缺库存
|
|
|
+ // List<string> notEnoughIdnrks = new List<string>();
|
|
|
+ // foreach (string idnrk in matnrs)
|
|
|
+ // {
|
|
|
+ // rows = dtSapInventory.Select("IDNRK = '" + idnrk + "'"); ;
|
|
|
+ // if (rows.Length == 0)
|
|
|
+ // {
|
|
|
+ // notEnoughIdnrks.Add(idnrk);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
|
|
|
- // 库存数量要改为数字类型
|
|
|
- dtSapInventory.Columns.Add("BALANCE", typeof(decimal));
|
|
|
- decimal balance = 0;
|
|
|
+ // if (notEnoughIdnrks.Count > 0)
|
|
|
+ // {
|
|
|
+ // message = "以下组件在SAP系统中库存不足:\n" + string.Join(",", notEnoughIdnrks.ToArray());
|
|
|
+ // return -6;
|
|
|
+ // }
|
|
|
|
|
|
- foreach (DataRow row in dtSapInventory.Rows)
|
|
|
- {
|
|
|
- decimal.TryParse(row["KYKC"] + "", out balance);
|
|
|
- row["BALANCE"] = balance;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- message = "以下组件在SAP系统中库存不足:\n" + string.Join(",", matnrs.ToArray());
|
|
|
- return -6;
|
|
|
- }
|
|
|
+ // // 库存数量要改为数字类型
|
|
|
+ // dtSapInventory.Columns.Add("BALANCE", typeof(decimal));
|
|
|
+ // decimal balance = 0;
|
|
|
|
|
|
- dtSapInventory.DefaultView.RowFilter = "BALANCE <> 0";
|
|
|
- dtSapInventory = dtSapInventory.DefaultView.ToTable();
|
|
|
+ // foreach (DataRow row in dtSapInventory.Rows)
|
|
|
+ // {
|
|
|
+ // decimal.TryParse(row["KYKC"] + "", out balance);
|
|
|
+ // row["BALANCE"] = balance;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // else
|
|
|
+ // {
|
|
|
+ // message = "以下组件在SAP系统中库存不足:\n" + string.Join(",", matnrs.ToArray());
|
|
|
+ // return -6;
|
|
|
+ // }
|
|
|
|
|
|
- dtSapInventory.DefaultView.Sort = "LGORT, CHARG";
|
|
|
- dtSapInventory = dtSapInventory.DefaultView.ToTable();
|
|
|
+ // dtSapInventory.DefaultView.RowFilter = "BALANCE <> 0";
|
|
|
+ // dtSapInventory = dtSapInventory.DefaultView.ToTable();
|
|
|
|
|
|
- DateTime now = DateTime.Now;
|
|
|
- foreach (DataRow row in dtIdnrk.Rows)
|
|
|
- {
|
|
|
- rows = dtSapInventory.Select("IDNRK = '" + row["IDNRK"] + "' AND BALANCE >= " + row["MENGE"]);
|
|
|
- if (rows.Length > 0)
|
|
|
- {
|
|
|
- row["LGORT"] = rows[0]["LGORT"];
|
|
|
- row["CHARG"] = rows[0]["CHARG"];
|
|
|
- row["IDNRKONLYCODE"] = "";
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- message = row["IDNRK"] + ":库存不足";
|
|
|
- return -6;
|
|
|
- }
|
|
|
- }
|
|
|
+ // dtSapInventory.DefaultView.Sort = "LGORT, CHARG";
|
|
|
+ // dtSapInventory = dtSapInventory.DefaultView.ToTable();
|
|
|
|
|
|
- dtIdnrk.TableName = "Idnrk";
|
|
|
- dtCanSaveIdnrk.TableName = "CanSaveIdnrk";
|
|
|
+ // DateTime now = DateTime.Now;
|
|
|
+ // foreach (DataRow row in dtIdnrk.Rows)
|
|
|
+ // {
|
|
|
+ // rows = dtSapInventory.Select("IDNRK = '" + row["IDNRK"] + "' AND BALANCE >= " + row["MENGE"]);
|
|
|
+ // if (rows.Length > 0)
|
|
|
+ // {
|
|
|
+ // row["LGORT"] = rows[0]["LGORT"];
|
|
|
+ // row["CHARG"] = rows[0]["CHARG"];
|
|
|
+ // row["IDNRKONLYCODE"] = "";
|
|
|
+ // }
|
|
|
+ // else
|
|
|
+ // {
|
|
|
+ // message = row["IDNRK"] + ":库存不足";
|
|
|
+ // return -6;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
|
|
|
- string canSaveIdnrks = ",";
|
|
|
- if (dtCanSaveIdnrk != null && dtCanSaveIdnrk.Rows.Count > 0)
|
|
|
- {
|
|
|
- foreach (DataRow row in dtCanSaveIdnrk.Rows)
|
|
|
- {
|
|
|
- canSaveIdnrks += row["IDNRK"] + ",";
|
|
|
- }
|
|
|
- }
|
|
|
+ // dtIdnrk.TableName = "Idnrk";
|
|
|
+ // dtCanSaveIdnrk.TableName = "CanSaveIdnrk";
|
|
|
|
|
|
- string delSql = @"
|
|
|
- DELETE FROM TP_PM_BARCODEIDNRKREL
|
|
|
- WHERE BARCODE = :BARCODE
|
|
|
- AND INSTR(:CANSAVEIDNRKS, ','|| IDNRK ||',') = 0 ";
|
|
|
+ // string canSaveIdnrks = ",";
|
|
|
+ // if (dtCanSaveIdnrk != null && dtCanSaveIdnrk.Rows.Count > 0)
|
|
|
+ // {
|
|
|
+ // foreach (DataRow row in dtCanSaveIdnrk.Rows)
|
|
|
+ // {
|
|
|
+ // canSaveIdnrks += row["IDNRK"] + ",";
|
|
|
+ // }
|
|
|
+ // }
|
|
|
|
|
|
- returnRows += oracleTrConn.ExecuteNonQuery(delSql, new OracleParameter[]
|
|
|
- {
|
|
|
- new OracleParameter(":BARCODE", barcode),
|
|
|
- new OracleParameter(":CANSAVEIDNRKS", canSaveIdnrks)
|
|
|
- });
|
|
|
+ // string delSql = @"
|
|
|
+ // DELETE FROM TP_PM_BARCODEIDNRKREL
|
|
|
+ // WHERE BARCODE = :BARCODE
|
|
|
+ // AND INSTR(:CANSAVEIDNRKS, ','|| IDNRK ||',') = 0 ";
|
|
|
|
|
|
- if (dtIdnrk != null && dtIdnrk.Rows.Count > 0)
|
|
|
- {
|
|
|
- string barcodeidnrkrel = @"
|
|
|
- INSERT INTO TP_PM_BARCODEIDNRKREL
|
|
|
- (PROCEDUREID,
|
|
|
- BARCODE,
|
|
|
- MATNR,
|
|
|
- IDNRK,
|
|
|
- MEINS,
|
|
|
- MENGE,
|
|
|
- IDNRKNAME,
|
|
|
- IDNRKONLYCODE,
|
|
|
- CHARG,
|
|
|
- LGORT,
|
|
|
- ACCOUNTID,
|
|
|
- CREATEUSERID,
|
|
|
- UPDATEUSERID)
|
|
|
- VALUES
|
|
|
- (:PROCEDUREID,
|
|
|
- :BARCODE,
|
|
|
- :MATNR,
|
|
|
- :IDNRK,
|
|
|
- :MEINS,
|
|
|
- :MENGE,
|
|
|
- :IDNRKNAME,
|
|
|
- :IDNRKONLYCODE,
|
|
|
- :CHARG,
|
|
|
- :LGORT,
|
|
|
- :ACCOUNTID,
|
|
|
- :USERID,
|
|
|
- :USERID) ";
|
|
|
-
|
|
|
- foreach (DataRow row in dtIdnrk.Rows)
|
|
|
- {
|
|
|
- returnRows += oracleTrConn.ExecuteNonQuery(barcodeidnrkrel,
|
|
|
- new OracleParameter[]
|
|
|
- {
|
|
|
- new OracleParameter(":PROCEDUREID", -1),
|
|
|
- new OracleParameter(":BARCODE", barcode),
|
|
|
- new OracleParameter(":MATNR", row["MATNR"]),
|
|
|
- new OracleParameter(":IDNRK", row["IDNRK"]),
|
|
|
- new OracleParameter(":MEINS", row["MEINS"]),
|
|
|
- new OracleParameter(":MENGE", Convert.ToDecimal( row["MENGE"])),
|
|
|
- new OracleParameter(":IDNRKNAME", row["MAKTX"]),
|
|
|
- new OracleParameter(":IDNRKONLYCODE", row["IDNRKONLYCODE"]),
|
|
|
- new OracleParameter(":CHARG", row["CHARG"]),
|
|
|
- new OracleParameter(":LGORT", row["LGORT"]),
|
|
|
- new OracleParameter(":ACCOUNTID", sUserInfo.AccountID),
|
|
|
- new OracleParameter(":USERID", sUserInfo.UserID)
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- message = "接口异常:\n" + ex.Message;
|
|
|
- return -4;
|
|
|
- }
|
|
|
+ // returnRows += oracleTrConn.ExecuteNonQuery(delSql, new OracleParameter[]
|
|
|
+ // {
|
|
|
+ // new OracleParameter(":BARCODE", barcode),
|
|
|
+ // new OracleParameter(":CANSAVEIDNRKS", canSaveIdnrks)
|
|
|
+ // });
|
|
|
+
|
|
|
+ // if (dtIdnrk != null && dtIdnrk.Rows.Count > 0)
|
|
|
+ // {
|
|
|
+ // string barcodeidnrkrel = @"
|
|
|
+ // INSERT INTO TP_PM_BARCODEIDNRKREL
|
|
|
+ // (PROCEDUREID,
|
|
|
+ // BARCODE,
|
|
|
+ // MATNR,
|
|
|
+ // IDNRK,
|
|
|
+ // MEINS,
|
|
|
+ // MENGE,
|
|
|
+ // IDNRKNAME,
|
|
|
+ // IDNRKONLYCODE,
|
|
|
+ // CHARG,
|
|
|
+ // LGORT,
|
|
|
+ // ACCOUNTID,
|
|
|
+ // CREATEUSERID,
|
|
|
+ // UPDATEUSERID)
|
|
|
+ // VALUES
|
|
|
+ // (:PROCEDUREID,
|
|
|
+ // :BARCODE,
|
|
|
+ // :MATNR,
|
|
|
+ // :IDNRK,
|
|
|
+ // :MEINS,
|
|
|
+ // :MENGE,
|
|
|
+ // :IDNRKNAME,
|
|
|
+ // :IDNRKONLYCODE,
|
|
|
+ // :CHARG,
|
|
|
+ // :LGORT,
|
|
|
+ // :ACCOUNTID,
|
|
|
+ // :USERID,
|
|
|
+ // :USERID) ";
|
|
|
+
|
|
|
+ // foreach (DataRow row in dtIdnrk.Rows)
|
|
|
+ // {
|
|
|
+ // returnRows += oracleTrConn.ExecuteNonQuery(barcodeidnrkrel,
|
|
|
+ // new OracleParameter[]
|
|
|
+ // {
|
|
|
+ // new OracleParameter(":PROCEDUREID", -1),
|
|
|
+ // new OracleParameter(":BARCODE", barcode),
|
|
|
+ // new OracleParameter(":MATNR", row["MATNR"]),
|
|
|
+ // new OracleParameter(":IDNRK", row["IDNRK"]),
|
|
|
+ // new OracleParameter(":MEINS", row["MEINS"]),
|
|
|
+ // new OracleParameter(":MENGE", Convert.ToDecimal( row["MENGE"])),
|
|
|
+ // new OracleParameter(":IDNRKNAME", row["MAKTX"]),
|
|
|
+ // new OracleParameter(":IDNRKONLYCODE", row["IDNRKONLYCODE"]),
|
|
|
+ // new OracleParameter(":CHARG", row["CHARG"]),
|
|
|
+ // new OracleParameter(":LGORT", row["LGORT"]),
|
|
|
+ // new OracleParameter(":ACCOUNTID", sUserInfo.AccountID),
|
|
|
+ // new OracleParameter(":USERID", sUserInfo.UserID)
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ //catch (Exception ex)
|
|
|
+ //{
|
|
|
+ // message = "接口异常:\n" + ex.Message;
|
|
|
+ // return -4;
|
|
|
+ //}
|
|
|
return returnRows;
|
|
|
}
|
|
|
}
|