using NFine.Data.Extensions; using System; using System.Collections.Generic; using System.Data; using System.Text; using NFine.Repository; using System.Data.Common; using NFine.Domain._03_Entity.SRM; using Newtonsoft.Json; using System.Configuration; using Newtonsoft.Json.Linq; using System.Net; using System.IO; using NFine.Domain._03_Entity.WMS; namespace NFine.Application.WMS { public class DeleteArrivalDocApp : RepositoryFactory { //删除采购到货单 public string DeleteICSDeliveryNotice(string keyValue) { //站点信息 string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string msg = ""; keyValue = keyValue.Substring(1, keyValue.Length - 2); string sql = string.Empty; string sqlSeach = string.Format(@"SELECT h.* FROM ICSDeliveryNotice a inner JOIN ICSASNDetail b ON a.ASNCode=b.ASNCode AND a.WorkPoint=b.WorkPoint inner JOIN ICSInspection h ON h.LotNo=b.LotNo AND h.WorkPoint=b.WorkPoint WHERE a.DNCode IN ({0}) and a.WorkPoint in ('{1}') ", keyValue.TrimEnd(','), WorkPoint); DataTable dtASN = SqlHelper.GetDataTableBySql(sqlSeach); if (dtASN != null && dtASN.Rows.Count > 0) { msg = "所选单据已生成检验单,无法删除!"; } sqlSeach = string.Format(@"SELECT h.* FROM ICSDeliveryNotice a inner JOIN ICSASNDetail b ON a.ASNCode=b.ASNCode AND a.WorkPoint=b.WorkPoint inner JOIN ICSWareHouseLotInfo h ON h.LotNo=b.LotNo AND h.WorkPoint=b.WorkPoint WHERE a.DNCode IN ({0}) and a.WorkPoint in ('{1}') ", keyValue.TrimEnd(','), WorkPoint); DataTable dtCarton = SqlHelper.GetDataTableBySql(sqlSeach); if (dtCarton != null && dtCarton.Rows.Count > 0) { msg += "所选单据已入库,无法删除!"; } sql += string.Format(@" update b set b.DNQuantity=0,b.DNAmount=0 from ICSDeliveryNotice a inner join ICSASNDetail b on a.ASNCode=b.ASNCode and a.WorkPoint=b.WorkPoint where a.DNCode IN ({0}) and a.WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint); sql += string.Format(@"DELETE FROM dbo.ICSDeliveryNotice WHERE DNCode IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint); try { SqlHelper.ExecuteNonQuery(sql); } catch (Exception ex) { throw new Exception(ex.Message); } return msg; } //删除委外采购到货单 public string DeleteICSODeliveryNotice(string keyValue) { //站点信息 string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string msg = ""; keyValue = keyValue.Substring(1, keyValue.Length - 2); string sql = string.Empty; string sqlSeach = string.Format(@"SELECT h.* FROM ICSODeliveryNotice a inner JOIN ICSOASNDetail b ON a.OASNCode=b.OASNCode AND a.WorkPoint=b.WorkPoint inner JOIN ICSInspection h ON h.LotNo=b.LotNo AND h.WorkPoint=b.WorkPoint WHERE a.ODNCode IN ({0}) and a.WorkPoint in ('{1}') ", keyValue.TrimEnd(','), WorkPoint); DataTable dtASN = SqlHelper.GetDataTableBySql(sqlSeach); if (dtASN != null && dtASN.Rows.Count > 0) { msg = "所选单据已生成检验单,无法删除!"; } sqlSeach = string.Format(@"SELECT h.* FROM ICSODeliveryNotice a inner JOIN ICSOASNDetail b ON a.OASNCode=b.OASNCode AND a.WorkPoint=b.WorkPoint inner JOIN ICSWareHouseLotInfo h ON h.LotNo=b.LotNo AND h.WorkPoint=b.WorkPoint WHERE a.ODNCode IN ({0}) and a.WorkPoint in ('{1}') ", keyValue.TrimEnd(','), WorkPoint); DataTable dtCarton = SqlHelper.GetDataTableBySql(sqlSeach); if (dtCarton != null && dtCarton.Rows.Count > 0) { msg = "所选单据已入库,无法删除!"; } sql += string.Format(@" update b set b.ODNQuantity=0,b.ODNAmount=0 from ICSODeliveryNotice a inner join ICSOASNDetail b on a.OASNCode=b.OASNCode and a.WorkPoint=b.WorkPoint where a.ODNCode IN ({0}) and a.WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint); sql += string.Format(@"DELETE FROM dbo.ICSODeliveryNotice WHERE ODNCode IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint); try { SqlHelper.ExecuteNonQuery(sql); } catch (Exception ex) { throw new Exception(ex.Message); } return msg; } } }