|
|
using NFine.Data.Extensions; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using NFine.Code; using NFine.Repository; using System.Data.Common; using NFine.Domain._03_Entity.SRM; using ICS.Application.Entity; using Newtonsoft.Json; using System.Configuration; using System.Data.SqlClient; using ICS.Data; using Newtonsoft.Json.Linq; using NFine.Domain._03_Entity.WMS; using System.Net; using System.IO;
namespace NFine.Application.WMS { public class ICSRCVIQCsApp:RepositoryFactory<ICSVendor> { /// <summary>
/// 采购
/// </summary>
/// <param name="jqgridparam"></param>
/// <returns></returns>
public DataTable GetICSInspection(ref Pagination jqgridparam, string queryJson) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List<DbParameter> parameter = new List<DbParameter>(); string sql = @" select
a.ID as DHID, d.ID , h.ID as JYID, a.DNCode , a.Sequence , a.ASNCode , l.POCode, c.InvCode , c.InvName , c.INVSTD , c.ClassName, f.BatchCode , CAST(b.DNQuantity as decimal(18,4)) as AllNumber, CAST(ISNULL(h.QualifiedQuantity, b.DNQuantity)as decimal(18,4))as YLOTQTY , CAST(ISNULL(h.UnqualifiedQuantity, 0) as decimal(18,4)) as NLOTQTY, CAST(ISNULL(h.WaiveQuantity, 0) as decimal(18,4)) as SpecialQTY, c.InvUnit , b.LotNo , g.BadReasonDesc as BadReasonDesc , g.BadReasonCode as BRCodeValue, j.BadCode as BCCodeValue, j.BadDesc as BadDesc, k.ContainerID, isnull(h.MUSERName,'开发者') MUSERName, CONVERT(VARCHAR(100),d.ProductDate,23) as ProductTime, CONVERT(VARCHAR(100),a.CreateDateTime,23) as CreateDateTime, CONVERT(VARCHAR(100),h.MTIME,23) as MTIME, CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END AS TestState, a.VenCode, m.VenName, isnull(h.MUSER,'') as Surveyor, h.MUSERName as ProvingTime FROM ICSDeliveryNotice a inner JOIN ICSASNDetail b ON a.ASNCode=b.ASNCode AND a.WorkPoint=b.WorkPoint LEFT JOIN ICSInventory c ON a.InvCode=c.InvCode and a.WorkPoint=c.WorkPoint inner JOIN ICSInventoryLot d ON b.LotNo=d.LotNo AND a.InvCode=d.InvCode AND b.WorkPoint=d.WorkPoint left join ICSInventoryLotDetail e on d.LotNo=e.LotNo and d.WorkPoint=e.WorkPoint LEFT JOIN dbo.ICSInspection h ON h.LotNo=b.LotNo AND h.WorkPoint=b.WorkPoint left join ICSBadReason g on h.BRCode =g.BadReasonCode and h.WorkPoint=g.WorkPoint left join ICSBadCode j on h.BCCode =j.BadCode and h.WorkPoint=j.WorkPoint LEFT JOIN ICSContainerLot k ON b.LotNo=k.LotNo AND b.WorkPoint=k.WorkPoint inner JOIN ICSPurchaseOrder l ON e.TransCode =l.POCode AND e.TransSequence=l.Sequence AND a.PODetailID=l.PODetailID AND d.WorkPoint=l.WorkPoint left join ICSExtension f on l.ExtensionID=f.ID and l.WorkPoint=f.WorkPoint left join dbo.ICSVendor m on a.VenCode=m.VenCode and a.WorkPoint=m.WorkPoint where b.LotNo is not null and a.DNType='1' {0}
";
#region 无srm逻辑
// sql = @"UNION all
//select
// a.ID as DHID,
// d.ID ,
// h.ID as JYID,
// a.DNCode ,
// a.Sequence ,
// a.ASNCode ,
// c.InvCode ,
// c.InvName ,
// c.INVSTD ,
// c.ClassName,
// f.BatchCode ,
// CAST(d.Quantity as decimal(18,4)) as AllNumber,
// CAST(ISNULL(h.QualifiedQuantity, d.Quantity)as decimal(18,4))as YLOTQTY ,
// CAST(ISNULL(h.UnqualifiedQuantity, 0) as decimal(18,4)) as NLOTQTY,
// CAST(ISNULL(h.WaiveQuantity, 0) as decimal(18,4)) as SpecialQTY,
// c.InvUnit ,
// d.LotNo ,
// g.BadReasonDesc as BadReasonDesc ,
// g.BadReasonCode as BRCodeValue,
// j.BadCode as BCCodeValue,
// j.BadDesc as BadDesc,
// k.ContainerID,
// isnull(h.MUSERName,'开发者') MUSERName,
// CONVERT(VARCHAR(100),d.ProductDate,23) as ProductTime,
// CONVERT(VARCHAR(100),h.MTIME,23) as MTIME,
// CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END AS TestState
// FROM ICSDeliveryNotice a
// inner join ICSInventoryLotDetail e on e.TransCode =a.DNCode AND e.TransSequence=a.Sequence AND e.WorkPoint=a.WorkPoint
// inner JOIN ICSInventoryLot d ON d.LotNo=e.LotNo and d.WorkPoint=e.WorkPoint
// LEFT JOIN ICSInventory c ON a.InvCode=c.InvCode and a.WorkPoint=c.WorkPoint
// LEFT JOIN dbo.ICSInspection h ON h.LotNo=d.LotNo AND h.WorkPoint=d.WorkPoint
// left join ICSBadReason g on h.BRCode =g.BadReasonCode and h.WorkPoint=g.WorkPoint
// left join ICSBadCode j on h.BCCode =j.BadCode and h.WorkPoint=j.WorkPoint
// LEFT JOIN ICSContainerLot k ON d.LotNo=k.LotNo AND d.WorkPoint=k.WorkPoint
// left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
// where a.DNType='1' {0}";
#endregion
string wheresql = ""; if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { wheresql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["ASNCode"].ToString())) { wheresql += " and a.ASNCode like '%" + queryParam["ASNCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["CaiGouCode"].ToString())) { wheresql += " and l.POCode like '%" + queryParam["CaiGouCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString())) { wheresql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString())) { wheresql += " and m.VenName like '%" + queryParam["VenName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { wheresql += " and c.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { wheresql += " and c.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { wheresql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; }
if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString())) { string ReleaseState = queryParam["ReleaseState"].ToString(); if (ReleaseState == "1") wheresql += " and CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END='已检验'"; else if (ReleaseState == "0") wheresql += " and CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END='未检验'"; } } sql = string.Format(sql, wheresql);
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); }
//委外
public DataTable GetICSInspection2(ref Pagination jqgridparam, string queryJson) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List<DbParameter> parameter = new List<DbParameter>(); string sql = @" select
a.ID as DHID, d.ID , h.ID as JYID, a.ODNCode as DNCode , a.Sequence , a.OASNCode , l.OOCode, c.InvCode , c.InvName , c.INVSTD , c.ClassName, f.BatchCode , CAST(b.ODNQuantity as NUMERIC(10,4)) as AllNumber, CAST(ISNULL(h.QualifiedQuantity, b.ODNQuantity)as NUMERIC(10,4))as YLOTQTY , CAST(ISNULL(h.UnqualifiedQuantity, 0) as NUMERIC(10,4)) as NLOTQTY, CAST(ISNULL(h.WaiveQuantity, 0) as NUMERIC(10,4)) as SpecialQTY, c.InvUnit , b.LotNo , g.BadReasonDesc as BadReasonDesc , g.BadReasonCode as BRCodeValue, j.BadCode as BCCodeValue, j.BadDesc as BadDesc, k.ContainerID, isnull(h.MUSERName,'开发者') MUSERName, CONVERT(VARCHAR(100),d.ProductDate,23) as ProductTime, CONVERT(VARCHAR(100),a.CreateDateTime,23) as CreateDateTime, CONVERT(VARCHAR(100),h.MTIME,23) as MTIME, CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END AS TestState, a.VenCode, m.VenName, isnull(h.MUSER,'') as Surveyor, h.MUSERName as ProvingTime FROM ICSODeliveryNotice a LEFT JOIN ICSOASNDetail b ON a.OASNCode=b.OASNCode AND a.WorkPoint=b.WorkPoint LEFT JOIN ICSInventory c ON a.InvCode=c.InvCode and a.WorkPoint=c.WorkPoint inner JOIN ICSInventoryLot d ON b.LotNo=d.LotNo AND a.InvCode=d.InvCode AND b.WorkPoint=d.WorkPoint left join ICSInventoryLotDetail e on d.LotNo=e.LotNo and d.WorkPoint=e.WorkPoint LEFT JOIN dbo.ICSInspection h ON h.LotNo=b.LotNo AND h.WorkPoint=b.WorkPoint left join ICSBadReason g on h.BRCode =g.BadReasonCode and h.WorkPoint=g.WorkPoint left join ICSBadCode j on h.BCCode =j.BadCode and h.WorkPoint=j.WorkPoint LEFT JOIN ICSContainerLot k ON b.LotNo=k.LotNo AND b.WorkPoint=k.WorkPoint inner JOIN ICSOutsourcingOrder l ON e.TransCode =l.OOCode AND e.TransSequence=l.Sequence AND a.OODetailID=l.OODetailID AND d.WorkPoint=l.WorkPoint left join ICSExtension f on l.ExtensionID=f.ID and l.WorkPoint=f.WorkPoint left join dbo.ICSVendor m on a.VenCode=m.VenCode and a.WorkPoint=m.WorkPoint where b.LotNo is not null and ISNULL(CAST(b.ODNQuantity as VARCHAR), '')! ='' AND ISNULL(b.ODNQuantity, 0)<>0 {0}
";
#region 无SRM逻辑
// sql = @"UNION all
//select
// a.ID as DHID,
// d.ID ,
// h.ID as JYID,
// a.ODNCode as DNCode ,
// a.Sequence ,
// a.OASNCode ,
// c.InvCode ,
// c.InvName ,
// c.INVSTD ,
// c.ClassName,
// f.BatchCode ,
// CAST(d.Quantity as NUMERIC(10,4)) as AllNumber,
// CAST(ISNULL(h.QualifiedQuantity, d.Quantity)as NUMERIC(10,4))as YLOTQTY ,
// CAST(ISNULL(h.UnqualifiedQuantity, 0) as NUMERIC(10,4)) as NLOTQTY,
// CAST(ISNULL(h.WaiveQuantity, 0) as NUMERIC(10,4)) as SpecialQTY,
// c.InvUnit ,
// d.LotNo ,
// g.BadReasonDesc as BadReasonDesc ,
// g.BadReasonCode as BRCodeValue,
// j.BadCode as BCCodeValue,
// j.BadDesc as BadDesc,
// k.ContainerID,
// isnull(h.MUSERName,'开发者') MUSERName,
// CONVERT(VARCHAR(100),d.ProductDate,23) as ProductTime,
// CONVERT(VARCHAR(100),h.MTIME,23) as MTIME,
// CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END AS TestState
// FROM ICSODeliveryNotice a
// inner join ICSInventoryLotDetail e on e.TransCode =a.ODNCode AND e.TransSequence=a.Sequence AND e.WorkPoint=a.WorkPoint
// inner JOIN ICSInventoryLot d ON d.LotNo=e.LotNo and d.WorkPoint=e.WorkPoint
// LEFT JOIN ICSInventory c ON a.InvCode=c.InvCode and a.WorkPoint=c.WorkPoint
// LEFT JOIN dbo.ICSInspection h ON h.LotNo=d.LotNo AND h.WorkPoint=d.WorkPoint
// left join ICSBadReason g on h.BRCode =g.BadReasonCode and h.WorkPoint=g.WorkPoint
// left join ICSBadCode j on h.BCCode =j.BadCode and h.WorkPoint=j.WorkPoint
// LEFT JOIN ICSContainerLot k ON d.LotNo=k.LotNo AND d.WorkPoint=k.WorkPoint
// left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
// where 1=1 {0}";
#endregion
string wheresql = ""; if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { wheresql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["ASNCode"].ToString())) { wheresql += " and a.OASNCode like '%" + queryParam["ASNCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["CaiGouCode"].ToString())) { wheresql += " and l.OOCode like '%" + queryParam["CaiGouCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString())) { wheresql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString())) { wheresql += " and m.VenName like '%" + queryParam["VenName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { wheresql += " and c.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { wheresql += " and c.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { wheresql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; }
if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString())) { string ReleaseState = queryParam["ReleaseState"].ToString(); if (ReleaseState == "1") wheresql += " and CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END='已检验'"; else if (ReleaseState == "0") wheresql += " and CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END='未检验'"; } } sql = string.Format(sql, wheresql); return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); }
//工单
public DataTable GetICSInspection3(ref Pagination jqgridparam, string queryJson) { DataTable dt = new DataTable(); var queryParam = queryJson.ToJObject(); List<DbParameter> parameter = new List<DbParameter>(); string sql = @"select
a.ID as GDID, e.ID , a.MOCode as DNCode, a.Sequence , h.ID as JYID, c.InvCode , c.InvName , c.INVSTD , c.ClassName, f.BatchCode , e.Quantity as AllNumber, CAST(ISNULL(h.QualifiedQuantity,e.Quantity)as NUMERIC(10,4))as YLOTQTY , CAST(ISNULL(h.UnqualifiedQuantity, 0) as NUMERIC(10,4)) as NLOTQTY, CAST(ISNULL(h.WaiveQuantity, 0) as NUMERIC(10,4)) as SpecialQTY, c.InvUnit , e.LotNo , g.BadReasonDesc as BadReasonDesc , g.BadReasonCode as BRCodeValue, j.BadCode as BCCodeValue, j.BadDesc as BadDesc, i.ContainerID, isnull(h.MUSERName,'开发者') MUSERName, CONVERT(VARCHAR(100),e.ProductDate,23) as ProductTime, CONVERT(VARCHAR(100),h.MTIME,23) as MTIME, CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END AS TestState, isnull(h.MUSER,'') as Surveyor, h.MUSERName as ProvingTime from ICSMO a left JOIN dbo.ICSInventory c ON a.InvCode = c.InvCode AND a.WorkPoint=c.WorkPoint left join ICSInventoryLotDetail b on a.MOCode=b.TransCode and a.Sequence=b.TransSequence and a.WorkPoint=b.WorkPoint left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint LEFT JOIN dbo.ICSInventoryLot e ON e.LotNo=b.LotNo AND e.WorkPoint=b.WorkPoint LEFT JOIN dbo.ICSInspection h ON h.LotNO=e.LotNO and h.InvCode=e.InvCode and h.WorkPoint=e.WorkPoint left join ICSBadReason g on h.BRCode =g.BadReasonCode and h.WorkPoint=g.WorkPoint left join ICSBadCode j on h.BCCode =j.BadCode and h.WorkPoint=j.WorkPoint LEFT JOIN dbo.ICSContainerLot i ON e.LotNO=i.LotNO AND e.WorkPoint=i.WorkPoint where e.LotNO is not null {0} ";
string wheresql = ""; if (!string.IsNullOrWhiteSpace(queryJson)) { if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString())) { wheresql += " and a.MOCode like '%" + queryParam["POCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString())) { wheresql += " and c.InvCode like '%" + queryParam["InvCode"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString())) { wheresql += " and c.InvName like '%" + queryParam["InvName"].ToString() + "%' "; } if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString())) { wheresql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' "; }
if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString())) { string ReleaseState = queryParam["ReleaseState"].ToString(); if (ReleaseState == "1") wheresql += " and CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END='已检验'"; else if (ReleaseState == "0") wheresql += " and CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END='未检验'"; } } sql = string.Format(sql, wheresql); return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam); }
//获取不良原因
public DataTable Select_ICSBadReason(string InvCode) { string sql = string.Empty;
DataTable dt = null; sql = @"select '' as BadReasonCode,'' as BadReasonDesc from ICSBadReason a left join
ICSInventoryBadGroup b on a.BRGroupID=b.BRGroupID union select a.BadReasonCode,a.BadReasonDesc from ICSBadReason a left join ICSInventoryBadGroup b on a.BRGroupID=b.BRGroupID where b.InvCode='{0}'";
sql = string.Format(sql, InvCode); dt = SqlHelper.GetDataTableBySql(sql); return dt; }
//获取不良代码
public DataTable GetSelectICSBadCode(string InvCode) { string sql = string.Empty;
DataTable dt = null;
sql = @"
select '' as BadCode ,'' as BadDesc from dbo.ICSBadCode a left join ICSInventoryBadGroup b on a.BCGroupID=b.BCGroupID union select BadCode,BadDesc from dbo.ICSBadCode a left join ICSInventoryBadGroup b on a.BCGroupID=b.BCGroupID where b.InvCode='{0}'";
// sql = @"select BadCode,BadDesc from dbo.ICSBadCode a left join
//ICSInventoryBadGroup b on a.BCGroupID=b.BCGroupID
//where b.InvCode='{0}'";
sql = string.Format(sql, InvCode); dt = SqlHelper.GetDataTableBySql(sql); return dt; }
/// <summary>
/// 新增检验
/// </summary>
/// <param name="queryJson"></param>
/// <returns></returns>
public string CreateICSInspection(string keyValue, string ICSInspections) { string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string msg = ""; string sql = string.Empty; JArray res = (JArray)JsonConvert.DeserializeObject(ICSInspections); foreach (var item in res) { JObject jo = (JObject)item; if (jo["TestState"].ToString()=="已检验") { sql += @"UPDATE dbo.ICSInspection set QualifiedQuantity='{0}',UnqualifiedQuantity='{1}',WaiveQuantity='{2}',BCCode='{3}',BRCode='{4}',MTIME=GETDATE(),MUSER='{5}',MUSERName='{6}',WorkPoint='{7}' WHERE ID='{8}'"; sql = string.Format(sql, jo["YLOTQTY"].ToString(), jo["NLOTQTY"].ToString(), jo["SpecialQTY"].ToString(), jo["BCCode"].ToString(), jo["BRCode"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["JYID"].ToString()); } else { sql += @"INSERT INTO dbo.ICSInspection
( ID ,LotNo,InvCode ,Quantity,QualifiedQuantity ,UnqualifiedQuantity,WaiveQuantity,BCCode,BRCode,Type,MTIME,MUSER ,MUSERName ,WorkPoint ) Values(NEWID(),'{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}',getdate(),'{9}','{10}','{11}') ";
sql = string.Format(sql, jo["LotNo"].ToString(), jo["InvCode"].ToString(), jo["AllNumber"].ToString(), jo["YLOTQTY"].ToString(), jo["NLOTQTY"].ToString(), jo["SpecialQTY"].ToString(), jo["BCCode"].ToString(), jo["BRCode"].ToString(), jo["Type"].ToString(), MUSER, MUSERNAME, WorkPoint); } }
try { if (SqlHelper.ExecuteNonQuery(sql) > 0) {
} else { msg = "新增失败"; } } catch (Exception ex) { throw new Exception(ex.Message); }
return msg; }
//生成采购拒收单
public string CreateRejection(string keyValue) { string msg = ""; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string sqlAsn = @"select distinct a.VenCode,a.DNID,a.DepCode,a.DNCode from ICSDeliveryNotice a
inner join ICSASNDetail b on a.ASNCode=b.ASNCode and a.WorkPoint=b.WorkPoint left join dbo.ICSInventoryLot c on b.LotNo=c.LotNo and a.InvCode=c.InvCode and b.WorkPoint=c.WorkPoint left join ICSInventoryLotDetail e on c.LotNo=e.LotNo and c.WorkPoint=e.WorkPoint inner JOIN ICSPurchaseOrder l ON e.TransCode =l.POCode AND e.TransSequence=l.Sequence AND a.PODetailID=l.PODetailID AND c.WorkPoint=l.WorkPoint WHERE b.LotNo IN (" + keyValue.TrimEnd(',') + ")";
DataTable dt = Repository().FindTableBySql(sqlAsn.ToString());
string sqlAsnD = @"select distinct c.InvCode,d.UnqualifiedQuantity-d.WaiveQuantity as Quantity,isnull(c.AmountRate,0) as AmountRate,a.Currency,isnull(a.UnitPrice,0) as UnitPrice,DNDetailID,DNID,b.LotNo
from ICSDeliveryNotice a left join ICSASNDetail b on a.ASNCode=b.ASNCode and a.WorkPoint=b.WorkPoint left join ICSInventoryLot c on b.LotNo=c.LotNo and a.InvCode=c.InvCode and b.WorkPoint=c.WorkPoint left join ICSInventoryLotDetail e on c.LotNo=e.LotNo and c.WorkPoint=e.WorkPoint inner JOIN ICSPurchaseOrder l ON e.TransCode =l.POCode AND e.TransSequence=l.Sequence AND a.PODetailID=l.PODetailID AND c.WorkPoint=l.WorkPoint left join ICSInspection d on b.LotNo=d.LotNo and b.WorkPoint=d.WorkPoint WHERE b.LotNo in (" + keyValue.TrimEnd(',') + ") ";
DataTable dtD = Repository().FindTableBySql(sqlAsnD.ToString());
List<RejectionHead> asn = new List<RejectionHead>(); for (int i = 0; i < dt.Rows.Count; i++) { RejectionHead ass = new RejectionHead(); ass.VenCode = dt.Rows[i]["VenCode"].ToString(); ass.ID = dt.Rows[i]["DNID"].ToString(); ass.DepCode = dt.Rows[i]["DepCode"].ToString(); ass.DNCode = dt.Rows[i]["DNCode"].ToString(); ass.User = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; ass.MTIME = System.DateTime.Now.ToString("s"); ass.WorkPoint = WorkPoint; DataRow[] drs = dtD.Select("DNID='" + dt.Rows[i]["DNID"].ToString() + "'");
for (int j = 0; j < drs.Length; j++) { RejectionBody DetailList = new RejectionBody(); DetailList.Sequence = (j+1).ToString(); DetailList.InvCode = drs[j]["InvCode"].ToString(); DetailList.Quantity = drs[j]["Quantity"].ToString(); DetailList.Amount = drs[j]["AmountRate"].ToString(); DetailList.Currency = drs[j]["Currency"].ToString(); DetailList.UnitPrice = drs[j]["UnitPrice"].ToString(); DetailList.DNDetailID = drs[j]["DNDetailID"].ToString(); DetailList.LotNo = drs[j]["LotNo"].ToString(); ass.detail.Add(DetailList); } asn.Add(ass); } string input = JsonConvert.SerializeObject(asn); string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString+ "PurchaseRejectDoc/Create"; string result = HttpPost(APIURL, input); JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
string MessAge = Obj["Message"].ToString(); string Success = Obj["Success"].ToString(); if (Success.ToUpper() == "FALSE") { msg = MessAge; } return msg; }
//生成委外拒收单
public string CreateWWRejection(string keyValue) { string msg = ""; string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string sqlAsn = @"select distinct a.VenCode,a.ODNID,a.DepCode,a.ODNCode from ICSODeliveryNotice a
left join ICSOASNDetail b on a.OASNCode=b.OASNCode and a.WorkPoint=b.WorkPoint LEFT JOIN ICSInventory c ON a.InvCode=c.InvCode and a.WorkPoint=c.WorkPoint inner JOIN ICSInventoryLot d ON b.LotNo=d.LotNo AND a.InvCode=d.InvCode AND b.WorkPoint=d.WorkPoint left join ICSInventoryLotDetail e on d.LotNo=e.LotNo and d.WorkPoint=e.WorkPoint inner JOIN ICSOutsourcingOrder l ON e.TransCode =l.OOCode AND e.TransSequence=l.Sequence AND a.OODetailID=l.OODetailID AND d.WorkPoint=l.WorkPoint WHERE b.LotNo in (" + keyValue.TrimEnd(',') + ")";
DataTable dt = Repository().FindTableBySql(sqlAsn.ToString());
string sqlAsnD = @"select distinct c.InvCode,d.UnqualifiedQuantity-d.WaiveQuantity as Quantity,isnull(c.AmountRate,0) as AmountRate,a.Currency,isnull(a.UnitPrice,0) as UnitPrice,ODNDetailID,ODNID,b.LotNo
from ICSODeliveryNotice a inner join ICSOASNDetail b on a.OASNCode=b.OASNCode and a.WorkPoint=b.WorkPoint inner join ICSInventoryLot c on b.LotNo=c.LotNo and a.InvCode=c.InvCode and b.WorkPoint=c.WorkPoint left join ICSInventoryLotDetail e on c.LotNo=e.LotNo and c.WorkPoint=e.WorkPoint inner JOIN ICSOutsourcingOrder l ON e.TransCode =l.OOCode AND e.TransSequence=l.Sequence AND a.OODetailID=l.OODetailID AND c.WorkPoint=l.WorkPoint inner join ICSInspection d on b.LotNo=d.LotNo and b.WorkPoint=d.WorkPoint WHERE b.LotNo IN (" + keyValue.TrimEnd(',') + ") ";
DataTable dtD = Repository().FindTableBySql(sqlAsnD.ToString());
List<WWRejectionHead> asn = new List<WWRejectionHead>();
for (int i = 0; i < dt.Rows.Count; i++) { WWRejectionHead ass = new WWRejectionHead(); ass.VenCode = dt.Rows[i]["VenCode"].ToString(); ass.ID = dt.Rows[i]["ODNID"].ToString(); ass.DepCode = dt.Rows[i]["DepCode"].ToString(); ass.ODNCode = dt.Rows[i]["ODNCode"].ToString(); ass.User = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode; ass.MTIME = System.DateTime.Now.ToString("s"); ass.WorkPoint = WorkPoint;
DataRow[] drs = dtD.Select("ODNID='" + dt.Rows[i]["ODNID"].ToString() + "'");
for (int j = 0; j < drs.Length; j++) { WWRejectionBody DetailList = new WWRejectionBody(); DetailList.Sequence = (j + 1).ToString(); DetailList.InvCode = drs[j]["InvCode"].ToString(); DetailList.Quantity = drs[j]["Quantity"].ToString(); DetailList.Amount = drs[j]["AmountRate"].ToString(); DetailList.Currency = drs[j]["Currency"].ToString(); DetailList.UnitPrice = drs[j]["UnitPrice"].ToString(); DetailList.ODNDetailID = drs[j]["ODNDetailID"].ToString(); DetailList.LotNo = drs[j]["LotNo"].ToString(); ass.detail.Add(DetailList); } asn.Add(ass); } string input = JsonConvert.SerializeObject(asn); string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "OutsourcingRejectDoc/Create"; string result = HttpPost(APIURL, input); JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
string MessAge = Obj["Message"].ToString(); string Success = Obj["Success"].ToString(); if (Success.ToUpper() == "FALSE") { msg = MessAge; } return msg; }
public static string HttpPost(string url, string body) { try { Encoding encoding = Encoding.UTF8; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
request.ContentType = "application/json; charset=utf-8";
byte[] buffer = encoding.GetBytes(body); request.ContentLength = buffer.Length; request.GetRequestStream().Write(buffer, 0, buffer.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding)) { return reader.ReadToEnd(); } } catch (WebException ex) { throw new Exception(ex.Message); } }
/// <summary>
/// 删除拒收单
/// </summary>
/// <param name="keyValue">传入ID</param>
/// <returns></returns>
public string DelectRejection(string keyValue) { //站点信息
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string msg = ""; keyValue = keyValue.Substring(1, keyValue.Length - 2); string sql = string.Empty; sql = string.Format(@"DELETE FROM dbo.ICSDeliveryNotice WHERE ID IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint); try { SqlHelper.ExecuteNonQuery(sql); } catch (Exception ex) { throw new Exception(ex.Message); } return msg; } /// <summary>
/// 删除委外拒收单
/// </summary>
/// <param name="keyValue">传入ID</param>
/// <returns></returns>
public string DelectWWRejection(string keyValue) { //站点信息
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location; string msg = ""; keyValue = keyValue.Substring(1, keyValue.Length - 2); string sql = string.Empty; sql = string.Format(@"DELETE FROM dbo.ICSODeliveryNotice WHERE ID IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint); try { SqlHelper.ExecuteNonQuery(sql); } catch (Exception ex) { throw new Exception(ex.Message); } return msg; }
} }
|