You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1587 lines
97 KiB
1587 lines
97 KiB
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using NFine.Code;
|
|
using NFine.Data.Extensions;
|
|
using NFine.Domain._03_Entity.SRM;
|
|
using NFine.Domain.Entity.ProductManage;
|
|
using NFine.Domain.IRepository.ProductManage;
|
|
using NFine.Repository;
|
|
using NFine.Repository.ProductManage;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Configuration;
|
|
using System.Data;
|
|
using System.Data.Common;
|
|
using System.Data.Common.CommandTrees.ExpressionBuilder;
|
|
using System.Data.Linq;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Runtime.ConstrainedExecution;
|
|
using System.Text;
|
|
|
|
namespace NFine.Application
|
|
|
|
{
|
|
public class CreateItemLotApp : RepositoryFactory<ICSPO_PoMain>
|
|
{
|
|
|
|
public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
string ParentId = "";
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string EATTRIBUTE = SqlHelper.GetEATTRIBUTE("ICSPurchaseOrder", "a").TrimEnd(',');
|
|
string sql = @"SELECT distinct a.ID, a.POCode,a.Sequence,CONVERT(NVARCHAR(15),a.CreateDateTime,23) AS PODate,
|
|
a.ExtensionID,a.VenCode,ee.VenName,a.InvCode,cc.NGQTY AS RefuseLotQty,dd.returnqty AS BackLotQty,
|
|
b.InvName,b.InvStd,b.InvUnit,a.Quantity,ISNULL(bb.LotQty,0) AS LotQty ,b.InvDesc,b.ClassCode,isnull(InQuantity,0) as InQuantity,a.WorkPoint as WorkPointCode
|
|
,CreatePerson,e.ProjectCode,a.SignBackStatus as SignBackStatus ," + EATTRIBUTE + "";
|
|
sql+= @",a.MTIME,isnull(b.EATTRIBUTE2,0) as MINQty
|
|
,b.EffectiveDays,b.EffectiveEnable
|
|
FROM dbo.ICSPurchaseOrder a
|
|
LEFT JOIN dbo.ICSExtension e ON a.ExtensionID=e.ID AND a.WorkPoint=e.WorkPoint
|
|
LEFT JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
|
|
LEFT JOIN (
|
|
SELECT mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY ,ee.WorkPoint
|
|
FROM ICSInventoryLot ee
|
|
left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo
|
|
WHERE ISNULL(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) bb
|
|
on a.POCode=bb.TransCode and a.Sequence=bb.TransSequence AND a.WorkPoint=bb.WorkPoint
|
|
left join (
|
|
select c.TransCode,c.TransSequence,SUM(ISNULL(a.Quantity,0)) NGQTY,a.WorkPoint
|
|
from ICSDeliveryNotice a
|
|
left join ICSInventoryLot b on a.EATTRIBUTE1=b.LotNo
|
|
left join ICSInventoryLotDetail c on b.LotNo=c.LotNo
|
|
group by c.TransCode,c.TransSequence,a.WorkPoint,DNType having a.DNType='3') cc
|
|
on a.POCode=cc.TransCode and a.Sequence=cc.TransSequence AND a.WorkPoint=cc.WorkPoint
|
|
left join (
|
|
select b.POCode,b.Sequence,sum(isnull(a.Quantity,0)) returnqty ,a.WorkPoint
|
|
FROM ICSDeliveryNotice a
|
|
left join ICSPurchaseOrder b on a.PODetailID=b.PODetailID
|
|
group by b.POCode,b.Sequence,a.DNType,a.WorkPoint having a.DNType='2'
|
|
|
|
UNION ALL
|
|
SELECT b.POCode,b.Sequence,sum(isnull(a.RCVQuantity,0)) returnqty ,a.WorkPoint
|
|
FROM ICSPurchaseReceive a
|
|
left join ICSDeliveryNotice aa on aa.DNCode=a.SourceCode and aa.Sequence=a.SourceSequence and a.WorkPoint=aa.WorkPoint
|
|
left join ICSPurchaseOrder b on aa.PODetailID=b.PODetailID and b.WorkPoint=aa.WorkPoint
|
|
group by a.RCVCode,b.POCode,b.Sequence,a.WorkPoint
|
|
UNION ALL
|
|
SELECT b.POCode,b.Sequence,sum(isnull(a.RCVQuantity,0)) returnqty ,a.WorkPoint
|
|
FROM ICSPurchaseReceive a
|
|
left join ICSPurchaseOrder b on a.SourceCode=b.POCode and a.SourceSequence=b.Sequence AND a.WorkPoint=b.WorkPoint
|
|
group by a.RCVCode,b.POCode,b.Sequence,a.WorkPoint ) dd
|
|
on a.POCode=dd.POCode and a.Sequence=dd.Sequence AND a.WorkPoint=dd.WorkPoint
|
|
left join ICSVendor ee on a.VenCode=ee.VenCode and a.WorkPoint=ee.WorkPoint
|
|
WHERE 1=1 AND a.ReleaseState = '1' and a.Status<>'3'";
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["ORDERNO"].ToString()))
|
|
{
|
|
sql += " and a.ExtensionID like '%" + queryParam["ORDERNO"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.POCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
|
|
{
|
|
sql += " and CONVERT(NVARCHAR(15),a.CreateDateTime,23) >='" + queryParam["BeginDate"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
|
|
{
|
|
sql += " and CONVERT(NVARCHAR(15),a.CreateDateTime,23) <='" + queryParam["EndDate"].ToString() + "'";
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BeginMTIME"].ToString()))
|
|
{
|
|
sql += " and CONVERT(NVARCHAR(15),a.MTIME,23) >='" + queryParam["BeginMTIME"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["EndMTIME"].ToString()))
|
|
{
|
|
sql += " and CONVERT(NVARCHAR(15),a.MTIME,23) <='" + queryParam["EndMTIME"].ToString() + "'";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
|
|
{
|
|
sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
|
|
{
|
|
sql += " and ee.VenName like '%" + queryParam["VenName"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["EATTRIBUTE12"].ToString()))
|
|
{
|
|
sql += " and a.EATTRIBUTE12 like '%" + queryParam["EATTRIBUTE12"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
|
|
{
|
|
string POStatus = queryParam["POStatus"].ToString();
|
|
if (POStatus == "0")
|
|
{
|
|
//sql += " and a.Quantity=ISNULL(c.LotQty,0)";
|
|
}
|
|
else if (POStatus == "1")
|
|
{
|
|
sql += " and a.Quantity=ISNULL(bb.LOTQTY,0)-isnull(cc.NGQTY,0)-isnull(dd.returnqty,0)";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity>ISNULL(bb.LOTQTY,0)-isnull(cc.NGQTY,0)-isnull(dd.returnqty,0)";
|
|
}
|
|
}
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "'";
|
|
}
|
|
ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
|
|
if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
|
|
{
|
|
return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
else
|
|
{
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
}
|
|
|
|
public DataTable GetGridJsonByBB(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
string ParentId = "";
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string EATTRIBUTE = SqlHelper.GetEATTRIBUTE("ICSPurchaseOrder", "a").TrimEnd(',');
|
|
string sql = @"SELECT a.ID, a.POCode,a.Sequence,CONVERT(NVARCHAR(15),a.CreateDateTime,23) AS PODate,mm.SHQTY,
|
|
a.ExtensionID,a.VenCode,ee.VenName,a.InvCode,cc.NGQTY AS RefuseLotQty,dd.returnqty AS BackLotQty,
|
|
b.InvName,b.InvStd,b.InvUnit,a.Quantity,ISNULL(bb.LotQty,0) AS LotQty ,b.InvDesc,b.ClassCode,isnull(InQuantity,0) as InQuantity,a.WorkPoint as WorkPointCode
|
|
,CreatePerson,e.ProjectCode,a.SignBackStatus as SignBackStatus ," + EATTRIBUTE + "";
|
|
sql += @",a.MTIME,isnull(b.EATTRIBUTE2,0) as MINQty
|
|
,b.EffectiveDays,b.EffectiveEnable,c.InQty
|
|
FROM dbo.ICSPurchaseOrder a
|
|
LEFT JOIN dbo.ICSExtension e ON a.ExtensionID=e.ID AND a.WorkPoint=e.WorkPoint
|
|
LEFT JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
|
|
left join (
|
|
select a.TransCode,a.TransSequence,sum(b.Quantity) as SHQTY from dbo.ICSInventoryLotDetail a
|
|
inner join dbo.ICSASNDetail b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
|
|
group by a.TransCode,a.TransSequence) mm on a.POCode=mm.TransCode and a.Sequence=mm.TransSequence
|
|
LEFT JOIN (
|
|
SELECT mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY ,ee.WorkPoint
|
|
FROM ICSInventoryLot ee
|
|
left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo
|
|
WHERE ISNULL(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) bb
|
|
on a.POCode=bb.TransCode and a.Sequence=bb.TransSequence AND a.WorkPoint=bb.WorkPoint
|
|
left join (
|
|
select c.TransCode,c.TransSequence,SUM(ISNULL(a.Quantity,0)) NGQTY,a.WorkPoint
|
|
from ICSDeliveryNotice a
|
|
left join ICSInventoryLot b on a.EATTRIBUTE1=b.LotNo
|
|
left join ICSInventoryLotDetail c on b.LotNo=c.LotNo
|
|
group by c.TransCode,c.TransSequence,a.WorkPoint,DNType having a.DNType='3') cc
|
|
on a.POCode=cc.TransCode and a.Sequence=cc.TransSequence AND a.WorkPoint=cc.WorkPoint
|
|
left join (
|
|
select b.POCode,b.Sequence,sum(isnull(a.Quantity,0)) returnqty ,a.WorkPoint
|
|
FROM ICSDeliveryNotice a
|
|
left join ICSPurchaseOrder b on a.PODetailID=b.PODetailID
|
|
group by b.POCode,b.Sequence,a.DNType,a.WorkPoint having a.DNType='2'
|
|
|
|
UNION ALL
|
|
SELECT b.POCode,b.Sequence,sum(isnull(a.RCVQuantity,0)) returnqty ,a.WorkPoint
|
|
FROM ICSPurchaseReceive a
|
|
left join ICSDeliveryNotice aa on aa.DNCode=a.SourceCode and aa.Sequence=a.SourceSequence and a.WorkPoint=aa.WorkPoint
|
|
left join ICSPurchaseOrder b on aa.PODetailID=b.PODetailID and b.WorkPoint=aa.WorkPoint
|
|
group by a.RCVCode,b.POCode,b.Sequence,a.WorkPoint
|
|
UNION ALL
|
|
SELECT b.POCode,b.Sequence,sum(isnull(a.RCVQuantity,0)) returnqty ,a.WorkPoint
|
|
FROM ICSPurchaseReceive a
|
|
left join ICSPurchaseOrder b on a.SourceCode=b.POCode and a.SourceSequence=b.Sequence AND a.WorkPoint=b.WorkPoint
|
|
group by a.RCVCode,b.POCode,b.Sequence,a.WorkPoint ) dd
|
|
on a.POCode=dd.POCode and a.Sequence=dd.Sequence AND a.WorkPoint=dd.WorkPoint
|
|
left join ICSVendor ee on a.VenCode=ee.VenCode and a.WorkPoint=ee.WorkPoint
|
|
LEFT JOIN (
|
|
SELECT SUM(x.Quantity) CreatedQty,z.TransCode,z.TransSequence,x.WorkPoint,
|
|
SUM(CASE WHEN y.LotNO IS NOT NULL THEN x.Quantity ELSE 0 END) AS InQty
|
|
FROM dbo.ICSInventoryLot x
|
|
LEFT JOIN dbo.ICSWareHouseLotInfo y ON x.LotNO=y.LotNO AND x.WorkPoint=y.WorkPoint
|
|
left join ICSInventoryLotDetail z on x.LotNo=z.LotNo
|
|
WHERE ISNULL(x.EATTRIBUTE1,'')=''
|
|
GROUP BY z.TransCode,z.TransSequence,x.WorkPoint
|
|
) c ON a.POCode=c.TransCode AND a.Sequence=c.TransSequence AND a.WorkPoint=c.WorkPoint
|
|
WHERE 1=1 AND a.ReleaseState = '1' and a.Status<>'3'";
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["ORDERNO"].ToString()))
|
|
{
|
|
sql += " and a.ExtensionID like '%" + queryParam["ORDERNO"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.POCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
|
|
{
|
|
sql += " and CONVERT(NVARCHAR(15),a.CreateDateTime,23) >='" + queryParam["BeginDate"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
|
|
{
|
|
sql += " and CONVERT(NVARCHAR(15),a.CreateDateTime,23) <='" + queryParam["EndDate"].ToString() + "'";
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BeginMTIME"].ToString()))
|
|
{
|
|
sql += " and CONVERT(NVARCHAR(15),a.MTIME,23) >='" + queryParam["BeginMTIME"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["EndMTIME"].ToString()))
|
|
{
|
|
sql += " and CONVERT(NVARCHAR(15),a.MTIME,23) <='" + queryParam["EndMTIME"].ToString() + "'";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
|
|
{
|
|
sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
|
|
{
|
|
sql += " and ee.VenName like '%" + queryParam["VenName"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["EATTRIBUTE12"].ToString()))
|
|
{
|
|
sql += " and a.EATTRIBUTE12 like '%" + queryParam["EATTRIBUTE12"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
|
|
{
|
|
string POStatus = queryParam["POStatus"].ToString();
|
|
if (POStatus == "0")
|
|
{
|
|
//sql += " and a.Quantity=ISNULL(c.LotQty,0)";
|
|
}
|
|
else if (POStatus == "1")
|
|
{
|
|
sql += " and a.Quantity=ISNULL(bb.LOTQTY,0)-isnull(cc.NGQTY,0)-isnull(dd.returnqty,0)";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity>ISNULL(bb.LOTQTY,0)-isnull(cc.NGQTY,0)-isnull(dd.returnqty,0)";
|
|
}
|
|
}
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "'";
|
|
}
|
|
ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
|
|
if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
|
|
{
|
|
return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
else
|
|
{
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
}
|
|
|
|
public DataTable GetGridJsonWeiWai(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
string ParentId = "";
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string EATTRIBUTE = SqlHelper.GetEATTRIBUTE("ICSPurchaseOrder","a").TrimEnd(',');
|
|
string sql = @" SELECT a.ID, a.OOCode,a.Sequence,CONVERT(NVARCHAR(15),a.CreateDateTime,23) AS PODate,a.OODetailID,
|
|
a.ExtensionID,a.VenCode,ee.VenName,a.InvCode,cc.NGQTY AS RefuseLotQty,dd.returnqty AS BackLotQty,
|
|
b.InvName,b.InvStd,b.InvUnit,a.Quantity,ISNULL(bb.LotQty,0) AS LotQty ,b.InvDesc,b.ClassCode,isnull(InQuantity,0) as InQuantity,a.WorkPoint as WorkPointCode,e.ProjectCode," + EATTRIBUTE + "";
|
|
sql+= @",a.MTIME,isnull(b.EATTRIBUTE2,0) as MINQty
|
|
,b.EffectiveDays,b.EffectiveEnable
|
|
FROM dbo.ICSOutsourcingOrder a
|
|
LEFT JOIN dbo.ICSExtension e ON a.ExtensionID=e.ID AND a.WorkPoint=e.WorkPoint
|
|
LEFT JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
|
|
LEFT JOIN (
|
|
SELECT mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY ,ee.WorkPoint
|
|
FROM ICSInventoryLot ee
|
|
left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo
|
|
WHERE ISNULL(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) bb
|
|
on a.OOCode=bb.TransCode and a.Sequence=bb.TransSequence AND a.WorkPoint=bb.WorkPoint
|
|
left join (
|
|
select c.TransCode,c.TransSequence,SUM(ISNULL(a.Quantity,0)) NGQTY,a.WorkPoint
|
|
from ICSODeliveryNotice a
|
|
left join ICSInventoryLot b on a.EATTRIBUTE1=b.LotNo
|
|
left join ICSInventoryLotDetail c on b.LotNo=c.LotNo
|
|
group by c.TransCode,c.TransSequence,a.WorkPoint,ODNType having a.ODNType='3') cc
|
|
on a.OOCode=cc.TransCode and a.Sequence=cc.TransSequence AND a.WorkPoint=cc.WorkPoint
|
|
left join (select b.OOCode,b.Sequence,sum(isnull(a.Quantity,0)) returnqty ,a.WorkPoint
|
|
FROM ICSODeliveryNotice a
|
|
left join ICSOutsourcingOrder b on a.OODetailID=b.OODetailID
|
|
group by b.OOCode,b.Sequence,a.ODNType,a.WorkPoint having a.ODNType='2'
|
|
UNION ALL
|
|
SELECT b.OOCode,b.Sequence,sum(isnull(a.RCVQuantity,0)) returnqty ,a.WorkPoint
|
|
FROM ICSPurchaseReceive a
|
|
left join ICSDeliveryNotice aa on aa.DNCode=a.SourceCode and aa.Sequence=a.SourceSequence and a.WorkPoint=aa.WorkPoint
|
|
left join ICSOutsourcingOrder b on aa.PODetailID=b.OODetailID and b.WorkPoint=aa.WorkPoint
|
|
group by a.RCVCode,b.OOCode,b.Sequence,a.WorkPoint
|
|
UNION ALL
|
|
SELECT b.OOCode,b.Sequence,sum(isnull(a.RCVQuantity,0)) returnqty ,a.WorkPoint
|
|
FROM ICSPurchaseReceive a
|
|
left join ICSOutsourcingOrder b on a.SourceCode=b.OOCode and a.SourceSequence=b.Sequence AND a.WorkPoint=b.WorkPoint
|
|
group by a.RCVCode,b.OOCode,b.Sequence,a.WorkPoint ) dd
|
|
on a.OOCode=dd.OOCode and a.Sequence=dd.Sequence AND a.WorkPoint=dd.WorkPoint
|
|
left join ICSVendor ee on a.VenCode=ee.VenCode and a.WorkPoint=ee.WorkPoint
|
|
WHERE 1=1 AND a.ReleaseState = '1' and a.Status<>'3'";
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["ORDERNO"].ToString()))
|
|
{
|
|
sql += " and a.ExtensionID like '%" + queryParam["ORDERNO"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.OOCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
|
|
{
|
|
sql += " and a.ReleaseDate >='" + queryParam["BeginDate"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
|
|
{
|
|
sql += " and a.ReleaseDate <='" + queryParam["EndDate"].ToString() + "'";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BeginMTIME"].ToString()))
|
|
{
|
|
sql += " and CONVERT(NVARCHAR(15),a.MTIME,23) >='" + queryParam["BeginMTIME"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["EndMTIME"].ToString()))
|
|
{
|
|
sql += " and CONVERT(NVARCHAR(15),a.MTIME,23) <='" + queryParam["EndMTIME"].ToString() + "'";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
|
|
{
|
|
sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
|
|
{
|
|
sql += " and ee.VenName like '%" + queryParam["VenName"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
|
|
{
|
|
string POStatus = queryParam["POStatus"].ToString();
|
|
if (POStatus == "0")
|
|
{
|
|
//sql += " and a.Quantity=ISNULL(c.LotQty,0)";
|
|
}
|
|
else if (POStatus == "1")
|
|
{
|
|
sql += " and a.Quantity=ISNULL(bb.LOTQTY,0)-isnull(cc.NGQTY,0)-isnull(dd.returnqty,0)";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity>ISNULL(bb.LOTQTY,0)-isnull(cc.NGQTY,0)-isnull(dd.returnqty,0)";
|
|
}
|
|
}
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "'";
|
|
}
|
|
ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
|
|
if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
|
|
{
|
|
return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
else
|
|
{
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public DataTable GetGridJsonWeiWaiByBB(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
string ParentId = "";
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string EATTRIBUTE = SqlHelper.GetEATTRIBUTE("ICSPurchaseOrder", "a").TrimEnd(',');
|
|
string sql = @" SELECT a.ID, a.OOCode,a.Sequence,CONVERT(NVARCHAR(15),a.CreateDateTime,23) AS PODate,a.OODetailID,mm.SHQTY,
|
|
a.ExtensionID,a.VenCode,ee.VenName,a.InvCode,cc.NGQTY AS RefuseLotQty,dd.returnqty AS BackLotQty,
|
|
b.InvName,b.InvStd,b.InvUnit,a.Quantity,ISNULL(bb.LotQty,0) AS LotQty ,b.InvDesc,b.ClassCode,isnull(InQuantity,0) as InQuantity,a.WorkPoint as WorkPointCode,e.ProjectCode," + EATTRIBUTE + "";
|
|
sql += @",a.MTIME,isnull(b.EATTRIBUTE2,0) as MINQty
|
|
,b.EffectiveDays,b.EffectiveEnable,c.InQty
|
|
FROM dbo.ICSOutsourcingOrder a
|
|
LEFT JOIN dbo.ICSExtension e ON a.ExtensionID=e.ID AND a.WorkPoint=e.WorkPoint
|
|
LEFT JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
|
|
left join (
|
|
select a.TransCode,a.TransSequence,sum(b.Quantity) as SHQTY from dbo.ICSInventoryLotDetail a
|
|
inner join dbo.ICSOASNDetail b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
|
|
group by a.TransCode,a.TransSequence) mm on a.OOCode=mm.TransCode and a.Sequence=mm.TransSequence
|
|
LEFT JOIN (
|
|
SELECT mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY ,ee.WorkPoint
|
|
FROM ICSInventoryLot ee
|
|
left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo
|
|
WHERE ISNULL(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) bb
|
|
on a.OOCode=bb.TransCode and a.Sequence=bb.TransSequence AND a.WorkPoint=bb.WorkPoint
|
|
left join (
|
|
select c.TransCode,c.TransSequence,SUM(ISNULL(a.Quantity,0)) NGQTY,a.WorkPoint
|
|
from ICSODeliveryNotice a
|
|
left join ICSInventoryLot b on a.EATTRIBUTE1=b.LotNo
|
|
left join ICSInventoryLotDetail c on b.LotNo=c.LotNo
|
|
group by c.TransCode,c.TransSequence,a.WorkPoint,ODNType having a.ODNType='3') cc
|
|
on a.OOCode=cc.TransCode and a.Sequence=cc.TransSequence AND a.WorkPoint=cc.WorkPoint
|
|
left join (select b.OOCode,b.Sequence,sum(isnull(a.Quantity,0)) returnqty ,a.WorkPoint
|
|
FROM ICSODeliveryNotice a
|
|
left join ICSOutsourcingOrder b on a.OODetailID=b.OODetailID
|
|
group by b.OOCode,b.Sequence,a.ODNType,a.WorkPoint having a.ODNType='2'
|
|
UNION ALL
|
|
SELECT b.OOCode,b.Sequence,sum(isnull(a.RCVQuantity,0)) returnqty ,a.WorkPoint
|
|
FROM ICSPurchaseReceive a
|
|
left join ICSDeliveryNotice aa on aa.DNCode=a.SourceCode and aa.Sequence=a.SourceSequence and a.WorkPoint=aa.WorkPoint
|
|
left join ICSOutsourcingOrder b on aa.PODetailID=b.OODetailID and b.WorkPoint=aa.WorkPoint
|
|
group by a.RCVCode,b.OOCode,b.Sequence,a.WorkPoint
|
|
UNION ALL
|
|
SELECT b.OOCode,b.Sequence,sum(isnull(a.RCVQuantity,0)) returnqty ,a.WorkPoint
|
|
FROM ICSPurchaseReceive a
|
|
left join ICSOutsourcingOrder b on a.SourceCode=b.OOCode and a.SourceSequence=b.Sequence AND a.WorkPoint=b.WorkPoint
|
|
group by a.RCVCode,b.OOCode,b.Sequence,a.WorkPoint ) dd
|
|
on a.OOCode=dd.OOCode and a.Sequence=dd.Sequence AND a.WorkPoint=dd.WorkPoint
|
|
left join ICSVendor ee on a.VenCode=ee.VenCode and a.WorkPoint=ee.WorkPoint
|
|
LEFT JOIN (
|
|
SELECT SUM(x.Quantity) CreatedQty,z.TransCode,z.TransSequence,x.WorkPoint,
|
|
SUM(CASE WHEN y.LotNO IS NOT NULL THEN x.Quantity ELSE 0 END) AS InQty
|
|
FROM dbo.ICSInventoryLot x
|
|
LEFT JOIN dbo.ICSWareHouseLotInfo y ON x.LotNO=y.LotNO AND x.WorkPoint=y.WorkPoint
|
|
left join ICSInventoryLotDetail z on x.LotNo=z.LotNo
|
|
WHERE ISNULL(x.EATTRIBUTE1,'')=''
|
|
GROUP BY z.TransCode,z.TransSequence,x.WorkPoint
|
|
) c ON a.OOCode=c.TransCode AND a.Sequence=c.TransSequence AND a.WorkPoint=c.WorkPoint
|
|
WHERE 1=1 AND a.ReleaseState = '1' and a.Status<>'3'";
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["ORDERNO"].ToString()))
|
|
{
|
|
sql += " and a.ExtensionID like '%" + queryParam["ORDERNO"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.OOCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BeginDate"].ToString()))
|
|
{
|
|
sql += " and a.ReleaseDate >='" + queryParam["BeginDate"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["EndDate"].ToString()))
|
|
{
|
|
sql += " and a.ReleaseDate <='" + queryParam["EndDate"].ToString() + "'";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BeginMTIME"].ToString()))
|
|
{
|
|
sql += " and CONVERT(NVARCHAR(15),a.MTIME,23) >='" + queryParam["BeginMTIME"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["EndMTIME"].ToString()))
|
|
{
|
|
sql += " and CONVERT(NVARCHAR(15),a.MTIME,23) <='" + queryParam["EndMTIME"].ToString() + "'";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
|
|
{
|
|
sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
|
|
{
|
|
sql += " and ee.VenName like '%" + queryParam["VenName"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%'";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POStatus"].ToString()))
|
|
{
|
|
string POStatus = queryParam["POStatus"].ToString();
|
|
if (POStatus == "0")
|
|
{
|
|
//sql += " and a.Quantity=ISNULL(c.LotQty,0)";
|
|
}
|
|
else if (POStatus == "1")
|
|
{
|
|
sql += " and a.Quantity=ISNULL(bb.LOTQTY,0)-isnull(cc.NGQTY,0)-isnull(dd.returnqty,0)";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity>ISNULL(bb.LOTQTY,0)-isnull(cc.NGQTY,0)-isnull(dd.returnqty,0)";
|
|
}
|
|
}
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint in (" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',') + ")";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode.Contains("Vendor"))
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().VenCode + "'";
|
|
}
|
|
ParentId = SqlHelper.Organize_F_ParentId(NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode);
|
|
if (!string.IsNullOrWhiteSpace(ParentId) && ParentId != "0" && NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "Vendor")
|
|
{
|
|
return SqlHelper.FindTablePageBySql_OtherTemp(sql.ToString(), sql, ParentId, parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
else
|
|
{
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 子表查询
|
|
/// </summary>
|
|
/// <param name="queryJson"></param>
|
|
/// <param name="jqgridparam"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetSubGridJson(string POCode, string PORow, string WorkPoint,ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
//var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
string sql = @"SELECT c.TransCode,c.TransSequence,a.ID,a.LotNO,a.Quantity,a.PrintTimes,a.ProductDate,
|
|
CASE WHEN b.LotNoCount>0 THEN b.Quantity ELSE 0 END AS ruku,a.LastPrintTime,a.WorkPoint
|
|
,x.ContainerCode as XH,
|
|
y.ContainerCode as ZB,z.ASNCode
|
|
FROM dbo.ICSInventoryLot a
|
|
LEFT JOIN (SELECT COUNT(LotNO) LotNoCount,LotNO,WorkPoint,
|
|
Quantity from dbo.ICSWareHouseLotInfolog
|
|
where BusinessCode='1'
|
|
group BY LotNO,WorkPoint,Quantity) b ON a.LotNO=b.LotNO AND a.WorkPoint=b.WorkPoint
|
|
inner join ICSInventoryLotDetail c on a.LotNo=c.LotNo
|
|
LEFT JOIN dbo.ICSContainerLot d ON c.LotNo=d.LotNo AND a.WorkPoint=d.WorkPoint
|
|
LEFT JOIN ICSContainer X ON d.ContainerID=X.ID AND c.WorkPoint=x.WorkPoint and X.ContainerType='ContainerType01'
|
|
left join ICSContainer y on X.ContainerID=y.ID and X.WorkPoint=y.WorkPoint and y.ContainerType='ContainerType04'
|
|
LEFT JOIN dbo.ICSASNDetail z ON c.LotNo=z.LotNo AND c.WorkPoint=z.WorkPoint
|
|
WHERE c.TransCode='" + POCode + "' and c.TransSequence='" + PORow + "' and a.WorkPoint in ('" + WorkPoint + "') and ISNULL(a.EATTRIBUTE1,'') =''";
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 委外子表查询
|
|
/// </summary>
|
|
/// <param name="queryJson"></param>
|
|
/// <param name="jqgridparam"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetSubGridJsonByWeiWai(string POCode, string PORow, string WorkPoint, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
//var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
string sql = @"SELECT c.TransCode,c.TransSequence,a.ID,a.LotNO,a.Quantity,a.PrintTimes,a.ProductDate,
|
|
CASE WHEN b.LotNoCount>0 THEN b.Quantity ELSE 0 END AS ruku,a.LastPrintTime,a.WorkPoint
|
|
,x.ContainerCode as XH,
|
|
y.ContainerCode as ZB,z.ASNCode
|
|
FROM dbo.ICSInventoryLot a
|
|
LEFT JOIN (SELECT COUNT(LotNO) LotNoCount,LotNO,WorkPoint,
|
|
Quantity from dbo.ICSWareHouseLotInfolog
|
|
where BusinessCode='9'
|
|
group BY LotNO,WorkPoint,Quantity) b ON a.LotNO=b.LotNO AND a.WorkPoint=b.WorkPoint
|
|
left join ICSInventoryLotDetail c on a.LotNo=c.LotNo
|
|
LEFT JOIN dbo.ICSContainerLot d ON a.LotNo=d.LotNo AND a.WorkPoint=d.WorkPoint
|
|
LEFT JOIN ICSContainer X ON d.ContainerID=X.ID AND c.WorkPoint=x.WorkPoint and X.ContainerType='ContainerType01'
|
|
left join ICSContainer y on X.ContainerID=y.ID and X.WorkPoint=y.WorkPoint and y.ContainerType='ContainerType04'
|
|
LEFT JOIN dbo.ICSASNDetail z ON c.LotNo=z.LotNo AND c.WorkPoint=z.WorkPoint
|
|
WHERE c.TransCode='" + POCode + "' and c.TransSequence='" + PORow + "' and a.WorkPoint in ('" + WorkPoint + "') and ISNULL(a.EATTRIBUTE1,'') =''";
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 点击生成条码
|
|
/// </summary>
|
|
/// <param name="POCode">采购订单</param>
|
|
/// <param name="PORow">采购订单行</param>
|
|
/// <param name="WorkPoint">多站点</param>
|
|
/// 已改
|
|
/// <returns></returns>
|
|
public DataTable GetSubGridJsonByCreate(string POCode, string PORow, string WorkPoint)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
//var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = @" SELECT a.ID, a.POCode,a.Sequence, CONVERT(NVARCHAR(50),a.CreateDateTime,23) as PODate,a.ExtensionID,a.VenCode,mm.VenName,a.InvCode,
|
|
(a.Quantity-ISNULL(bb.LOTQTY,0)+isnull(cc.NGQTY,0)+isnull(dd.returnqty,0)) as thisCreateQty,
|
|
b.InvName,b.InvStd,b.InvDesc,b.InvUnit,a.Quantity,isnull(c.InQty,0) as InQty,a.WorkPoint,ISNULL(bb.LOTQTY,0) AS CreatedQty,
|
|
isnull(cc.NGQTY,0) AS RefuseLotQty,isnull(dd.returnqty,0) AS BackLotQty,ISNULL(ee.repairqty,0) AS RepairQty,
|
|
isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,2)) as EffectiveDays ,
|
|
CAST( a.Amount as DECIMAL(18,2)) as Amount
|
|
FROM dbo.ICSPurchaseOrder a
|
|
LEFT JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
|
|
left join (
|
|
SELECT b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY
|
|
FROM ICSInventoryLot a
|
|
left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
|
|
WHERE ISNULL(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) bb on a.POCode=bb.TransCode and a.Sequence=bb.TransSequence
|
|
left join (
|
|
select c.TransCode,c.TransSequence,SUM(ISNULL(a.Quantity,0)) NGQTY,a.WorkPoint
|
|
from ICSDeliveryNotice a
|
|
left join ICSInventoryLot b on a.EATTRIBUTE1=b.LotNo
|
|
left join ICSInventoryLotDetail c on b.LotNo=c.LotNo
|
|
group by c.TransCode,c.TransSequence,a.WorkPoint,DNType having a.DNType='3'
|
|
) cc on a.POCode=cc.TransCode and a.Sequence=cc.TransSequence
|
|
left join (
|
|
select b.POCode,b.Sequence,sum(isnull(a.Quantity,0)) returnqty ,a.WorkPoint
|
|
FROM ICSDeliveryNotice a
|
|
left join ICSPurchaseOrder b on a.PODetailID=b.PODetailID
|
|
group by b.POCode,b.Sequence,a.DNType,a.WorkPoint having a.DNType='2'
|
|
|
|
UNION ALL
|
|
SELECT b.POCode,b.Sequence,sum(isnull(a.RCVQuantity,0)) returnqty ,a.WorkPoint
|
|
FROM ICSPurchaseReceive a
|
|
left join ICSDeliveryNotice aa on aa.DNCode=a.SourceCode and aa.Sequence=a.SourceSequence and a.WorkPoint=aa.WorkPoint
|
|
left join ICSPurchaseOrder b on aa.PODetailID=b.PODetailID and b.WorkPoint=aa.WorkPoint
|
|
group by a.RCVCode,b.POCode,b.Sequence,a.WorkPoint
|
|
UNION ALL
|
|
SELECT b.POCode,b.Sequence,sum(isnull(a.RCVQuantity,0)) returnqty ,a.WorkPoint
|
|
FROM ICSPurchaseReceive a
|
|
left join ICSPurchaseOrder b on a.SourceCode=b.POCode and a.SourceSequence=b.Sequence AND a.WorkPoint=b.WorkPoint
|
|
group by a.RCVCode,b.POCode,b.Sequence,a.WorkPoint) dd
|
|
on a.POCode=dd.POCode and a.Sequence=dd.Sequence
|
|
LEFT JOIN (
|
|
SELECT SUM(x.Quantity) CreatedQty,z.TransCode,z.TransSequence,x.WorkPoint,
|
|
SUM(CASE WHEN y.LotNO IS NOT NULL THEN x.Quantity ELSE 0 END) AS InQty
|
|
FROM dbo.ICSInventoryLot x
|
|
LEFT JOIN dbo.ICSWareHouseLotInfo y ON x.LotNO=y.LotNO AND x.WorkPoint=y.WorkPoint
|
|
left join ICSInventoryLotDetail z on x.LotNo=z.LotNo
|
|
WHERE ISNULL(x.EATTRIBUTE1,'')=''
|
|
GROUP BY z.TransCode,z.TransSequence,x.WorkPoint
|
|
) c ON a.POCode=c.TransCode AND a.Sequence=c.TransSequence AND a.WorkPoint=c.WorkPoint
|
|
LEFT JOIN (SELECT c.TransCode,c.TransSequence,
|
|
0 AS repairqty,a.WorkPoint
|
|
FROM ICSASNDetail a
|
|
LEFT JOIN ICSInventoryLot b ON a.LotNO = b.LotNO AND a.WorkPoint = b.WorkPoint
|
|
left join ICSInventoryLotDetail c on b.LotNo=c.LotNo and b.WorkPoint=c.WorkPoint
|
|
GROUP BY c.TransCode,c.TransSequence,a.WorkPoint
|
|
) ee ON a.POCode = ee.TransCode AND a.Sequence = ee.TransSequence AND a.WorkPoint = ee.WorkPoint
|
|
left join ICSVendor mm on a.VenCode=mm.VenCode and a.WorkPoint=mm.WorkPoint
|
|
WHERE 1 =1
|
|
and a.POCode='" + POCode + "' and a.Sequence='" + PORow + "'";
|
|
sql += " and a.WorkPoint='" +WorkPoint+ "'";
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
/// <summary>
|
|
/// 点击生成条码
|
|
/// </summary>
|
|
/// <param name="POCode">采购订单</param>
|
|
/// <param name="PORow">采购订单行</param>
|
|
/// <param name="WorkPoint">多站点</param>
|
|
/// 已改
|
|
/// <returns></returns>
|
|
public DataTable GetSubGridJsonByCreateWeiWai(string OOCode, string Sequence, string WorkPoint)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
//var queryParam = queryJson.ToJObject();
|
|
//string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = @"
|
|
SELECT a.ID, pp.Enable,a.OOCode,a.Sequence,CAST( a.Amount as DECIMAL(18,2)) as Amount, CONVERT(NVARCHAR(50),a.CreateDateTime,23) as PODate,a.ExtensionID,a.VenCode,mm.VenName,a.InvCode,
|
|
(a.Quantity-ISNULL(bb.LOTQTY,0)+isnull(cc.NGQTY,0)+isnull(dd.returnqty,0)) as thisCreateQty,
|
|
b.InvName,b.InvStd,b.InvDesc,b.InvUnit,a.Quantity,isnull(c.InQty,0) as InQty,a.WorkPoint,ISNULL(bb.LOTQTY,0) AS CreatedQty,
|
|
isnull(cc.NGQTY,0) AS RefuseLotQty,isnull(dd.returnqty,0) AS BackLotQty,ISNULL(ee.repairqty,0) AS RepairQty,
|
|
isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,2)) as EffectiveDays
|
|
FROM dbo.ICSOutsourcingOrder a
|
|
LEFT JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
|
|
left join (
|
|
SELECT b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY
|
|
FROM ICSInventoryLot a
|
|
left join ICSInventoryLotDetail b on a.LotNo=b.LotNo
|
|
WHERE ISNULL(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) bb on a.OOCode=bb.TransCode and a.Sequence=bb.TransSequence
|
|
left join (
|
|
select c.TransCode,c.TransSequence,SUM(ISNULL(a.Quantity,0)) NGQTY,a.WorkPoint
|
|
from ICSODeliveryNotice a
|
|
left join ICSInventoryLot b on a.EATTRIBUTE1=b.LotNo
|
|
left join ICSInventoryLotDetail c on b.LotNo=c.LotNo
|
|
group by c.TransCode,c.TransSequence,a.WorkPoint,ODNType having a.ODNType='3'
|
|
) cc on a.OOCode=cc.TransCode and a.Sequence=cc.TransSequence
|
|
left join (
|
|
select b.OOCode,b.Sequence,sum(isnull(a.Quantity,0)) returnqty ,a.WorkPoint
|
|
from ICSODeliveryNotice a
|
|
left join ICSOutsourcingOrder b on a.OODetailID=b.OODetailID
|
|
group by b.OOCode,b.Sequence,a.ODNType,a.WorkPoint
|
|
having a.ODNType='2'
|
|
UNION ALL
|
|
SELECT b.OOCode,b.Sequence,sum(isnull(a.RCVQuantity,0)) returnqty ,a.WorkPoint
|
|
FROM ICSPurchaseReceive a
|
|
left join ICSDeliveryNotice aa on aa.DNCode=a.SourceCode and aa.Sequence=a.SourceSequence and a.WorkPoint=aa.WorkPoint
|
|
left join ICSOutsourcingOrder b on aa.PODetailID=b.OODetailID and b.WorkPoint=aa.WorkPoint
|
|
group by a.RCVCode,b.OOCode,b.Sequence,a.WorkPoint
|
|
UNION ALL
|
|
SELECT b.OOCode,b.Sequence,sum(isnull(a.RCVQuantity,0)) returnqty ,a.WorkPoint
|
|
FROM ICSPurchaseReceive a
|
|
left join ICSOutsourcingOrder b on a.SourceCode=b.OOCode and a.SourceSequence=b.Sequence AND a.WorkPoint=b.WorkPoint
|
|
group by a.RCVCode,b.OOCode,b.Sequence,a.WorkPoint ) dd
|
|
on a.OOCode=dd.OOCode and a.Sequence=dd.Sequence
|
|
LEFT JOIN (
|
|
SELECT SUM(x.Quantity) CreatedQty,z.TransCode,z.TransSequence,x.WorkPoint,
|
|
SUM(CASE WHEN y.LotNO IS NOT NULL THEN x.Quantity ELSE 0 END) AS InQty
|
|
FROM dbo.ICSInventoryLot x
|
|
LEFT JOIN dbo.ICSWareHouseLotInfo y ON x.LotNO=y.LotNO AND x.WorkPoint=y.WorkPoint
|
|
left join ICSInventoryLotDetail z on x.LotNo=z.LotNo
|
|
WHERE ISNULL(x.EATTRIBUTE1,'')=''
|
|
GROUP BY z.TransCode,z.TransSequence,x.WorkPoint
|
|
) c ON a.OOCode=c.TransCode AND a.Sequence=c.TransSequence AND a.WorkPoint=c.WorkPoint
|
|
LEFT JOIN (SELECT c.TransCode,c.TransSequence,
|
|
0 AS repairqty,a.WorkPoint
|
|
FROM ICSOASNDetail a
|
|
LEFT JOIN ICSInventoryLot b ON a.LotNO = b.LotNO AND a.WorkPoint = b.WorkPoint
|
|
left join ICSInventoryLotDetail c on b.LotNo=c.LotNo and b.WorkPoint=c.WorkPoint
|
|
GROUP BY c.TransCode,c.TransSequence,a.WorkPoint
|
|
) ee ON a.OOCode = ee.TransCode AND a.Sequence = ee.TransSequence AND a.WorkPoint = ee.WorkPoint
|
|
left join ICSVendor mm on a.VenCode=mm.VenCode
|
|
left join ICSConfiguration pp on pp.Code='CompleteVerification'
|
|
WHERE 1 =1
|
|
|
|
and a.OOCode='" + OOCode + "' and a.Sequence='" + Sequence + "'";
|
|
sql += " and a.WorkPoint='" + WorkPoint + "'";
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
/// <summary>
|
|
/// 自动生成批次信息
|
|
/// </summary>
|
|
/// <param name="InvCode"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetVendorLotNo(string InvCode, string WorkPoint)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
string sqlClass = "SELECT EATTRIBUTE1 FROM ICSInventory WHERE InvCode='{0}'and WorkPoint='{1}'";
|
|
sqlClass = string.Format(sqlClass, InvCode, WorkPoint);
|
|
DataTable dtClass = SqlHelper.GetDataTableBySql(sqlClass);
|
|
string pre = dtClass.Rows[0]["EATTRIBUTE1"].ToString() + DateTime.Now.ToString("yyyyMMdd");
|
|
//var queryParam = queryJson.ToJObject();
|
|
//List<DbParameter> parameter = new List<DbParameter>();
|
|
//string dtPre = DateTime.Now.ToString("yyyyMMdd");
|
|
string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSInventoryLot','BatchCode','" + pre + "',4";
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
public string GetPoStatus(string POCode, string PORow)
|
|
{
|
|
string sqlU9 = "SELECT DBIpAddress,DBName FROM dbo.Sys_DataBase WHERE DBSourceName='ERP'";
|
|
DataTable dtU9 = SqlHelper.GetDataTableBySql(sqlU9);
|
|
string U9IP = dtU9.Rows[0]["DBIpAddress"].ToString();
|
|
string DBName = dtU9.Rows[0]["DBName"].ToString();
|
|
string msg = "";
|
|
string U9ConnStr = ConfigurationManager.ConnectionStrings["U9connstr"].ConnectionString;
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string sql = string.Format(@"select a.docno,b.DocLineNo,b.status,d.code 组织
|
|
from [{0}].{1}.dbo.PM_PurchaseOrder A
|
|
LEFT JOIN [{0}].{1}.dbo.PM_POLine B ON A.ID=B.PurchaseOrder and a.Org=b.CurrentOrg
|
|
LEFT JOIN [{0}].{1}.dbo.pm_poshipline C ON B.ID=C.poline and a.Org=c.CurrentOrg
|
|
left join [{0}].{1}.dbo.Base_Organization d with (nolock) on a.org=d.id
|
|
left join [{0}].{1}.dbo.Base_Organization_trl e with (nolock) on d.id=e.ID
|
|
WHERE d.code='" + WorkPoint + "'and a.docno='" + POCode + "' and b.doclineno='" + PORow + "'", U9IP, DBName);
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
{
|
|
string poStatus = dt.Rows[0]["status"].ToString();
|
|
if (poStatus != "2")
|
|
{
|
|
msg = "该订单行不是审核状态,无法生成条码!";
|
|
}
|
|
}
|
|
return msg;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 生成条码
|
|
/// </summary>
|
|
/// <param name="POCode"></param>
|
|
/// <param name="PORow"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// 已改
|
|
/// <returns></returns>
|
|
public int CreateItemLotNo(string POCode, string PORow, string keyValue, string WorkPoint,string IsEable)
|
|
{
|
|
|
|
|
|
int RowNumber=Convert.ToInt32(SqlHelper.GetItemsDetails("PORowZero"));
|
|
var queryParam = keyValue.ToJObject();
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
|
|
decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
|
|
decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
|
|
DataTable dts = GetSubGridJsonByCreate(POCode, PORow, WorkPoint);
|
|
if(thisCreateQty> Convert.ToDecimal( dts.Rows[0]["thisCreateQty"]))
|
|
{
|
|
throw new Exception("超订单生成数量!!");
|
|
}
|
|
decimal PageNUM = Convert.ToDecimal(queryParam["PageNUM"].ToString());
|
|
decimal Quantity = Convert.ToDecimal(queryParam["Quantity"].ToString());
|
|
|
|
decimal LOTQTY = minPackQty;
|
|
string VenCode = GetVendorCode(POCode, PORow, WorkPoint);
|
|
string Pre = POCode + PORow.PadLeft(RowNumber, '0');
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");
|
|
string sql = string.Empty;
|
|
//string VendorLot = queryParam["VendorLot"].ToString();
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
|
|
string sqls= string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
|
|
sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan,WorkPoint);
|
|
object ExtensionID = SqlHelper.ExecuteScalar(sqls);
|
|
if (ExtensionID == null)
|
|
{
|
|
str1 = Guid.NewGuid().ToString();
|
|
sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
|
|
Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
|
|
str1, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(),
|
|
queryParam["Version"].ToString(), queryParam["Brand"].ToString(),
|
|
queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(),
|
|
queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(),
|
|
queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(),
|
|
queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(),
|
|
queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
|
|
MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
if (IsEable == "" || IsEable == "0")
|
|
{
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
//string Pre = VenCode + "_" + queryParam["BatchCode"].ToString() + "_" + queryParam["InvCode"].ToString() + "_" + DateTime.Now.ToString("yyyyMMdd") + "_" + queryParam["EATTRIBUTE3"].ToString() + "_" + (int)LOTQTY + "_";
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSITEMLot", "LotNO", Pre, 4);
|
|
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
|
|
LotNo, POCode, PORow, MUSER, MUSERNAME, WorkPoint);
|
|
|
|
sql += string.Format(@" insert into ICSInventoryLot
|
|
(ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
|
|
,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
|
|
select
|
|
newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','200','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSPurchaseOrder where POCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, POCode, PORow, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString()
|
|
, queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
|
|
queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
|
|
sql += "\r\n";
|
|
|
|
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var CartonCount = Math.Ceiling(createPageCount / PageNUM);
|
|
decimal Count = 0;
|
|
for (int j = 0; j < PageNUM; j++)
|
|
{
|
|
object CARID = Guid.NewGuid();
|
|
string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
|
|
sql += @"INSERT INTO dbo.ICSContainer
|
|
( ID,ContainerCode ,
|
|
MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
|
|
VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','SRM','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
for (int i = 0; i < CartonCount; i++)
|
|
{
|
|
if (Count >= Quantity)
|
|
{
|
|
break;
|
|
}
|
|
|
|
if (j + 1 == PageNUM)
|
|
{
|
|
if (minPackQty * CartonCount * CartonCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - Count;
|
|
}
|
|
}
|
|
//string Pre = VenCode + "_" + queryParam["BatchCode"].ToString() + "_" + queryParam["InvCode"].ToString() + "_" + DateTime.Now.ToString("yyyyMMdd") + "_" + queryParam["EATTRIBUTE3"].ToString() + "_" + (int)LOTQTY + "_";
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSITEMLot", "LotNO", Pre, 4);
|
|
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
|
|
LotNo, POCode, PORow, MUSER, MUSERNAME, WorkPoint);
|
|
|
|
sql += string.Format(@" insert into ICSInventoryLot
|
|
(ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
|
|
,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
|
|
select
|
|
newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','200','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSPurchaseOrder where POCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, POCode, PORow, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString(), queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
|
|
queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
|
|
sql += "\r\n";
|
|
sql += string.Format(@"INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo ,
|
|
MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' )", CARID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
Count = Count + LOTQTY;
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
sql += string.Format(@"UPDATE ICSPurchaseOrder set MTIME=GETDATE() where POCode='{0}' and Sequence='{1}' and WorkPoint='{2}' ", POCode, PORow, WorkPoint);
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 批量生成
|
|
/// </summary>
|
|
/// <param name="POCode"></param>
|
|
/// <param name="PORow"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// 已改
|
|
/// <returns></returns>
|
|
public int BatchSubmitForm(string keyValue)
|
|
{
|
|
int RowNumber = Convert.ToInt32(SqlHelper.GetItemsDetails("PORowZero"));
|
|
//var queryParam = keyValue.ToJObject();
|
|
int count = 0;
|
|
|
|
JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
|
|
foreach (var item in res)
|
|
{
|
|
JObject jo = (JObject)item;
|
|
|
|
string VenCode = GetVendorCode(jo["POCode"].ToString(), jo["PORow"].ToString(), jo["WorkPoint"].ToString());
|
|
string Pre = jo["POCode"].ToString() + jo["PORow"].ToString().PadLeft(RowNumber, '0');
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");
|
|
string sql = string.Empty;
|
|
//string VendorLot = queryParam["VendorLot"].ToString();
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
Colspan = jo["ProjectCode"].ToString() + "~" + jo["BatchCode"].ToString() + "~" + jo["Version"].ToString() + "~" + jo["Brand"].ToString() + "~" + jo["cFree1"].ToString() + "~" + jo["cFree2"].ToString() + "~" + jo["cFree3"].ToString() + "~" + jo["cFree4"].ToString() + "~" + jo["cFree5"].ToString() + "~" + jo["cFree6"].ToString() + "~" + jo["cFree7"].ToString() + "~" + jo["cFree8"].ToString() + "~" + jo["cFree9"].ToString() + "~" + jo["cFree10"].ToString();
|
|
sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, jo["WorkPoint"].ToString());
|
|
object ExtensionID = SqlHelper.ExecuteScalar(sqls);
|
|
if (ExtensionID == null)
|
|
{
|
|
str1 = Guid.NewGuid().ToString();
|
|
sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
|
|
Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
|
|
str1, Colspan, jo["ProjectCode"].ToString(), jo["BatchCode"].ToString(),
|
|
jo["Version"].ToString(), jo["Brand"].ToString(),
|
|
jo["cFree1"].ToString(), jo["cFree2"].ToString(),
|
|
jo["cFree3"].ToString(), jo["cFree4"].ToString(),
|
|
jo["cFree5"].ToString(), jo["cFree6"].ToString(),
|
|
jo["cFree7"].ToString(), jo["cFree8"].ToString(),
|
|
jo["cFree9"].ToString(), jo["cFree10"].ToString(),
|
|
MUSER, MUSERNAME, jo["WorkPoint"].ToString());
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
|
|
//如果没有维护最小包装量只生成一个条码 条码数量等于单子数量
|
|
if (jo["minPackQty"].ToString() == "0"|| Convert.ToDecimal( jo["minPackQty"].ToString())> Convert.ToDecimal(jo["thisCreateQty"].ToString()))
|
|
{
|
|
string LotNo = GetSerialCode(jo["WorkPoint"].ToString(), "ICSITEMLot", "LotNO", Pre, 4);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
|
|
LotNo, jo["POCode"].ToString(), jo["PORow"].ToString(), MUSER, MUSERNAME, jo["WorkPoint"].ToString());
|
|
|
|
sql += string.Format(@" insert into ICSInventoryLot
|
|
(ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
|
|
)
|
|
select
|
|
newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','200','{3}','{4}', getdate(),'{5}','{9}'
|
|
from ICSPurchaseOrder where POCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, jo["thisCreateQty"].ToString(), MUSER, MUSERNAME, jo["WorkPoint"].ToString(), jo["POCode"].ToString(), jo["PORow"].ToString(), str1, jo["Amount"].ToString(), jo["ExpirationDate"].ToString()
|
|
);
|
|
sql += "\r\n";
|
|
|
|
}
|
|
else
|
|
{
|
|
//根据最小包装量自动生成条码数量
|
|
int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
|
|
decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
|
|
decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
|
|
|
|
decimal LOTQTY = minPackQty;
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
//string Pre = VenCode + "_" + queryParam["BatchCode"].ToString() + "_" + queryParam["InvCode"].ToString() + "_" + DateTime.Now.ToString("yyyyMMdd") + "_" + queryParam["EATTRIBUTE3"].ToString() + "_" + (int)LOTQTY + "_";
|
|
string LotNo = GetSerialCode(jo["WorkPoint"].ToString(), "ICSITEMLot", "LotNO", Pre, 4);
|
|
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
|
|
LotNo, jo["POCode"].ToString(), jo["PORow"].ToString(), MUSER, MUSERNAME, jo["WorkPoint"].ToString());
|
|
|
|
sql += string.Format(@" insert into ICSInventoryLot
|
|
(ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
|
|
)
|
|
select
|
|
newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','200','{3}','{4}', getdate(),'{5}','{9}'
|
|
from ICSPurchaseOrder where POCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, jo["WorkPoint"].ToString(), jo["POCode"].ToString(), jo["PORow"].ToString(), str1, jo["Amount"].ToString(), jo["ExpirationDate"].ToString());
|
|
sql += "\r\n";
|
|
|
|
|
|
}
|
|
}
|
|
//变更操作时间显示在列表中
|
|
sql += string.Format(@"UPDATE ICSPurchaseOrder set MTIME=GETDATE() where POCode='{0}' and Sequence='{1}' and WorkPoint='{2}' ", jo["POCode"].ToString(), jo["PORow"].ToString(), jo["WorkPoint"].ToString());
|
|
count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
|
|
}
|
|
|
|
return count;
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 生成条码
|
|
/// </summary>
|
|
/// <param name="POCode"></param>
|
|
/// <param name="PORow"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// 已改
|
|
/// <returns></returns>
|
|
public int SubmitFormWeiWai(string OOCode, string Sequence, string keyValue, string WorkPoint,string IsEable)
|
|
{
|
|
int RowNumber = Convert.ToInt32(SqlHelper.GetItemsDetails("PORowZero"));
|
|
var queryParam = keyValue.ToJObject();
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
int createPageCount = Convert.ToInt32(queryParam["createPageCount"].ToString());
|
|
decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
|
|
decimal PageNUM = Convert.ToDecimal(queryParam["PageNUM"].ToString());
|
|
decimal Quantity = Convert.ToDecimal(queryParam["Quantity"].ToString());
|
|
decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
|
|
decimal LOTQTY = minPackQty;
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string VenCode = GetVendorCode(OOCode, Sequence, WorkPoint);
|
|
string Pre = OOCode + Sequence.PadLeft(RowNumber, '0');
|
|
string sql = string.Empty;
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");
|
|
//string VendorLot = queryParam["VendorLot"].ToString();
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
Colspan = queryParam["ProjectCode"].ToString() + "~" + queryParam["BatchCode"].ToString() + "~" + queryParam["Version"].ToString() + "~" + queryParam["Brand"].ToString() + "~" + queryParam["cFree1"].ToString() + "~" + queryParam["cFree2"].ToString() + "~" + queryParam["cFree3"].ToString() + "~" + queryParam["cFree4"].ToString() + "~" + queryParam["cFree5"].ToString() + "~" + queryParam["cFree6"].ToString() + "~" + queryParam["cFree7"].ToString() + "~" + queryParam["cFree8"].ToString() + "~" + queryParam["cFree9"].ToString() + "~" + queryParam["cFree10"].ToString();
|
|
sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan,WorkPoint);
|
|
object ExtensionID = SqlHelper.ExecuteScalar(sqls);
|
|
if (ExtensionID == null)
|
|
{
|
|
str1 = Guid.NewGuid().ToString();
|
|
sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
|
|
Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
|
|
str1, Colspan, queryParam["ProjectCode"].ToString(), queryParam["BatchCode"].ToString(), queryParam["Version"].ToString(), queryParam["Brand"].ToString(), queryParam["cFree1"].ToString(), queryParam["cFree2"].ToString(), queryParam["cFree3"].ToString(), queryParam["cFree4"].ToString(), queryParam["cFree5"].ToString(), queryParam["cFree6"].ToString(), queryParam["cFree7"].ToString(), queryParam["cFree8"].ToString(), queryParam["cFree9"].ToString(), queryParam["cFree10"].ToString(),
|
|
MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
if (IsEable == "" || IsEable == "0")
|
|
{
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSITEMLot", "LotNO", Pre, 5);
|
|
// sqls= string.Format(@"select * from ICSInventoryLotDetail where TransCode='{0}' and TransSequence='{1}' )",
|
|
// POCode, PORow);
|
|
//DataTable dtASN = SqlHelper.GetDataTableBySql(sqls);
|
|
//if (dtASN == null && dtASN.Rows.Count <= 0)
|
|
//{
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
|
|
LotNo, OOCode, Sequence, MUSER, MUSERNAME, WorkPoint);
|
|
//}
|
|
//if (SqlHelper.ExecuteNonQuery(sqls)>0)
|
|
//{
|
|
sql += string.Format(@" insert into ICSInventoryLot
|
|
(ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
|
|
,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
|
|
select
|
|
newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','201','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSOutsourcingOrder where OOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, OOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString(), queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
|
|
queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
|
|
sql += "\r\n";
|
|
//}
|
|
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var CartonCount = Math.Ceiling(createPageCount / PageNUM);
|
|
decimal Count = 0;
|
|
for (int j = 0; j < PageNUM; j++)
|
|
{
|
|
object CARID = Guid.NewGuid();
|
|
string Carton = GetSerialCode(WorkPoint, "ICSContainer", "ContainerCode", car, 5);
|
|
sql += @"INSERT INTO dbo.ICSContainer
|
|
( ID,ContainerCode ,
|
|
MUSER ,MUSERName ,MTIME,WorkPoint,EATTRIBUTE8,EATTRIBUTE3,ContainerID,ContainerName,InventoryMixed,ProjectMixed,BatchMixed,Multiplex)
|
|
VALUES ( NEWID(),'" + Carton + "','" + MUSER + "','" + MUSERNAME + "',GETDATE(),'" + WorkPoint + "','" + VenCode + "','SRM','" + CARID + "','" + Pre + "',1,1,1,1)";
|
|
for (int i = 0; i < CartonCount; i++)
|
|
{
|
|
if (Count >= Quantity)
|
|
{
|
|
break;
|
|
}
|
|
|
|
if (j + 1 == PageNUM)
|
|
{
|
|
if (minPackQty * CartonCount * CartonCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - Count;
|
|
}
|
|
}
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSITEMLot", "LotNO", Pre, 4);
|
|
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' )",
|
|
LotNo, OOCode, Sequence, MUSER, MUSERNAME, WorkPoint);
|
|
|
|
sql += string.Format(@" insert into ICSInventoryLot
|
|
(ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount
|
|
,EATTRIBUTE1,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE8,EATTRIBUTE9,EATTRIBUTE10)
|
|
select
|
|
newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','201','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSOutsourcingOrder where OOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, OOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY, queryParam["ExpirationDate"].ToString(), queryParam["EATTRIBUTE1"].ToString(), queryParam["EATTRIBUTE2"].ToString(), queryParam["EATTRIBUTE3"].ToString(), queryParam["EATTRIBUTE4"].ToString(), queryParam["EATTRIBUTE5"].ToString(),
|
|
queryParam["EATTRIBUTE6"].ToString(), queryParam["EATTRIBUTE7"].ToString(), queryParam["EATTRIBUTE8"].ToString(), queryParam["EATTRIBUTE9"].ToString(), queryParam["EATTRIBUTE10"].ToString());
|
|
sql += "\r\n";
|
|
sql += string.Format(@"INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo ,
|
|
MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' )", CARID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
Count = Count + LOTQTY;
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
sql += string.Format(@"UPDATE ICSOutsourcingOrder set MTIME=GETDATE() where OOCode='{0}' and Sequence='{1}' and WorkPoint='{2}' ", OOCode, Sequence, WorkPoint);
|
|
int count = SqlHelper.ExecuteNonQuery(sql);
|
|
return count;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
|
|
{
|
|
string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
|
|
sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
|
|
return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
|
|
}
|
|
|
|
public string GetVendorCode(string POCode, string PORow, string WorkPoint)
|
|
{
|
|
string sql = string.Format(@"SELECT VenCode FROM dbo.ICSPurchaseOrder
|
|
WHERE POCode='{0}' AND Sequence='{1}' AND WorkPoint='{2}'", POCode, PORow, WorkPoint);
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
string VenCode = string.Empty;
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
{
|
|
VenCode = dt.Rows[0][0].ToString();
|
|
}
|
|
return VenCode;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除条码
|
|
/// </summary>
|
|
/// <param name="keyValue"></param>
|
|
/// <returns></returns>
|
|
public string DeleteItemLot(string keyValue, string WorkPoint)
|
|
{
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string msg = string.Empty;
|
|
string sql = string.Format(@"SELECT * FROM dbo.ICSASNDetail
|
|
WHERE LotNo IN (SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
|
|
DataTable dtASN = SqlHelper.GetDataTableBySql(sql);
|
|
if (dtASN != null && dtASN.Rows.Count > 0)
|
|
{
|
|
msg = "所选条码已有加入送货单中,请先在送货单中删除!";
|
|
}
|
|
sql = string.Format(@"SELECT * FROM dbo.ICSContainerLot WHERE LotNO IN
|
|
(SELECT LotNO FROM dbo.ICSInventoryLot WHERE ID IN ({0})) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
|
|
DataTable dtCarton = SqlHelper.GetDataTableBySql(sql);
|
|
if (dtCarton != null && dtCarton.Rows.Count > 0)
|
|
{
|
|
msg += "所选条码已有加入箱号中,请先在箱号中删除!";
|
|
}
|
|
if (string.IsNullOrEmpty(msg))
|
|
{
|
|
sql = string.Format("DELETE FROM dbo.ICSInventoryLot WHERE ID IN ({0}) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
|
|
sql += string.Format(@"delete b from
|
|
ICSInventoryLot a
|
|
inner join dbo.ICSInventoryLotDetail b on a.LotNo = b.LotNo WHERE a.ID IN({0}) and a.WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
|
|
SqlHelper.ExecuteNonQuery(sql);
|
|
}
|
|
|
|
|
|
return msg;
|
|
|
|
//keyValue = keyValue.Substring(1, keyValue.Length - 2);
|
|
//string sql = @"DELETE FROM dbo.ICSITEMLot WHERE ID IN (" + keyValue.TrimEnd(',') + ")";
|
|
//int i = DbHelper.ExecuteNonQuery(CommandType.Text, sql);
|
|
//return i;
|
|
}
|
|
|
|
|
|
|
|
|
|
public DataTable SelectICSExtensionEnable(string BeginTime, string EndTime)
|
|
{
|
|
string sql = @"select ColCode from ICSExtensionEnable
|
|
where Enable=0
|
|
order by cast(EATTRIBUTE1 as int)";
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
public DataTable SelectICSInventoryEnable(string InvCode)
|
|
{
|
|
string sql = @"SELECT case when AmountEnable=1 then '是' else '否' end as AmountEnable
|
|
FROM dbo.ICSInventory WHERE InvCode='"+InvCode+"'";
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
|
|
public DataTable SelectICSColumnEnableForLotEnable(string WorkPoint)
|
|
{
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
string sql = @" select ColumnCode from ICSColumnEnable
|
|
where Enable='0' and TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoint + "' order by cast(Code as int)";
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
/// <summary>
|
|
/// 齐套
|
|
/// </summary>
|
|
/// <param name="keyValue"></param>
|
|
/// <returns></returns>
|
|
public object GetQiSetNum(string keyValue)
|
|
{
|
|
int Num = 0;
|
|
string msg = "";
|
|
string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "POCheck";
|
|
string result = HttpPost(APIURL, keyValue);
|
|
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;
|
|
}
|
|
|
|
if (msg == "")
|
|
{
|
|
string jsonStr = JsonConvert.DeserializeObject(Obj["Data"].ToString()).ToString();
|
|
|
|
var data = JsonConvert.DeserializeObject<dynamic>(jsonStr);
|
|
|
|
// 获取 "Data" 的值
|
|
Num = data.Data;
|
|
}
|
|
var Header = new
|
|
{
|
|
msg = msg,
|
|
Num = Num,
|
|
};
|
|
return Header;
|
|
}
|
|
public DataTable GetWWComplete(string BeginTime, string EndTime)
|
|
{
|
|
string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification004'";
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
public DataTable GetLoadShowForColumn(string WorkPoint)
|
|
{
|
|
//string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
|
|
string sql = @"
|
|
select * from ICSColumnEnable where TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoint + "' order by cast(code as int) ";
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
|
|
}
|
|
|
|
|
|
//接口api解析
|
|
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);
|
|
}
|
|
}
|
|
public DataTable GetInventoryIsEnable(string InvCode, string WorkPoint)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
//var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
//string dtPre = DateTime.Now.ToString("yyyyMMdd");
|
|
string sql = @"SELECT CAST(ContainerEnable as nvarchar(20)) ContainerEnable FROM ICSInventory WHERE invcode='" + InvCode + "'";
|
|
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
public DataTable GetInvBatchEnable(string InvCode)
|
|
{
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
string sql = @"select distinct BatchEnable from ICSInventory where InvCode='{0}' and WorkPoint in({1})";
|
|
sql = string.Format(sql, InvCode, WorkPoints);
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
public bool GetInvBatchCardControl(string InvCode,string BatchCode,string PRODUCTDATE)
|
|
{
|
|
bool Flag = false;
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
string SqlSeach = @"select * from dbo.Sys_SRM_ItemsDetail where F_ItemCode='CreateLotCardControl001' and F_EnabledMark='1'";
|
|
DataTable dt = SqlHelper.GetDataTableBySql(SqlSeach);
|
|
if (dt.Rows.Count>0)
|
|
{
|
|
string SeachTime = @" select top 1 a.ProductDate from dbo.ICSInventoryLot a
|
|
inner join dbo.ICSExtension b on a.ExtensionID=b.ID and a.WorkPoint=b.WorkPoint
|
|
where a.InvCode='" + InvCode + "' and b.BatchCode='"+ BatchCode + "' and a.ProductDate>='"+ PRODUCTDATE + "'";
|
|
object ProductDate = SqlHelper.ExecuteScalar(SeachTime);
|
|
if (ProductDate.ToString()!=""|| ProductDate!=null)
|
|
{
|
|
Flag = true;
|
|
}
|
|
}
|
|
|
|
return Flag;
|
|
}
|
|
|
|
|
|
|
|
public string ISPOBack()
|
|
{
|
|
string msg = "";
|
|
msg = SqlHelper.GetSHDZDSHItemsDetails("POBack", "");
|
|
return msg;
|
|
}
|
|
public bool IsDDSX(string VenCode, string InvCode, string WorkPoint, string PODate, string POCode, string Sequence,string DDSX)
|
|
{
|
|
string sqlSeach = @"select "+ DDSX + " from ICSPurchaseOrder where POCode='"+ POCode + "' and Sequence='"+ Sequence + "'";
|
|
object Date = SqlHelper.ExecuteScalar(sqlSeach);
|
|
bool ISTrue = false;
|
|
string sql = @" SELECT a.ID, a.POCode,a.Sequence,CONVERT(NVARCHAR(15),a.CreateDateTime,23) AS PODate,
|
|
a.ExtensionID,a.VenCode,ee.VenName,a.InvCode,cc.NGQTY AS RefuseLotQty,dd.returnqty AS BackLotQty,
|
|
b.InvName,b.InvStd,b.InvUnit,a.Quantity,ISNULL(bb.LotQty,0) AS LotQty ,b.InvDesc,b.ClassCode,isnull(InQuantity,0) as InQuantity,a.WorkPoint as WorkPointCode
|
|
,CreatePerson,e.ProjectCode,a.SignBackStatus as SignBackStatus,a.MTIME,isnull(b.EATTRIBUTE2,0) as MINQty
|
|
,b.EffectiveDays,b.EffectiveEnable
|
|
FROM dbo.ICSPurchaseOrder a
|
|
LEFT JOIN dbo.ICSExtension e ON a.ExtensionID=e.ID AND a.WorkPoint=e.WorkPoint
|
|
LEFT JOIN dbo.ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
|
|
LEFT JOIN (
|
|
SELECT mm.TransCode,mm.TransSequence,sum(isnull(ee.Quantity,0)) LOTQTY ,ee.WorkPoint
|
|
FROM ICSInventoryLot ee
|
|
left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo
|
|
WHERE ISNULL(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint ) bb
|
|
on a.POCode=bb.TransCode and a.Sequence=bb.TransSequence AND a.WorkPoint=bb.WorkPoint
|
|
left join (
|
|
select c.TransCode,c.TransSequence,SUM(ISNULL(a.Quantity,0)) NGQTY,a.WorkPoint
|
|
from ICSDeliveryNotice a
|
|
left join ICSInventoryLot b on a.EATTRIBUTE1=b.LotNo
|
|
left join ICSInventoryLotDetail c on b.LotNo=c.LotNo
|
|
group by c.TransCode,c.TransSequence,a.WorkPoint,DNType having a.DNType='3') cc
|
|
on a.POCode=cc.TransCode and a.Sequence=cc.TransSequence AND a.WorkPoint=cc.WorkPoint
|
|
left join (select b.POCode,b.Sequence,sum(isnull(a.Quantity,0)) returnqty ,a.WorkPoint
|
|
FROM ICSDeliveryNotice a
|
|
left join ICSPurchaseOrder b on a.PODetailID=b.PODetailID
|
|
group by b.POCode,b.Sequence,a.DNType,a.WorkPoint having a.DNType='2' ) dd
|
|
on a.POCode=dd.POCode and a.Sequence=dd.Sequence AND a.WorkPoint=dd.WorkPoint
|
|
left join ICSVendor ee on a.VenCode=ee.VenCode and a.WorkPoint=ee.WorkPoint
|
|
WHERE 1=1 AND a.ReleaseState = '1' and a.Status<>'3' AND a.VenCode = '{0}' and a.InvCode='{1}' and a.WorkPoint='{2}' and a.Quantity>ISNULL(bb.LOTQTY,0)-isnull(cc.NGQTY,0)-isnull(dd.returnqty,0)
|
|
and format(a." + DDSX + " , 'yyyy-MM-dd') < '{3}'";
|
|
sql = string.Format(sql, VenCode, InvCode, WorkPoint, Date.ToDate().ToString("yyyy-MM-dd"));
|
|
DataTable dtcount = SqlHelper.GetDataTableBySql(sql);
|
|
if (dtcount.Rows.Count > 0)
|
|
{
|
|
ISTrue = true;
|
|
}
|
|
return ISTrue;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public string ISEableDDSX(string VenCode, string InvCode, string WorkPoint, string PODate,string POCode,string Sequence)
|
|
{
|
|
string msg = string.Empty;
|
|
try
|
|
{
|
|
string DDSX = string.Empty;
|
|
string sqldetail = @"SELECT a.F_Define1 FROM Sys_SRM_ItemsDetail a
|
|
LEFT JOIN Sys_SRM_Items b ON a.F_ItemId = b.F_Id
|
|
WHERE b.F_EnCode = 'DDSX' and a.F_EnabledMark='1'";
|
|
DataTable dts = SqlHelper.GetDataTableBySql(sqldetail);
|
|
if (dts.Rows.Count > 0)
|
|
{
|
|
DDSX = dts.Rows[0]["F_Define1"].ToString();
|
|
}
|
|
|
|
// DDSX = SqlHelper.GetSHDZDSHItemsDetails("DDSX", WorkPoint);
|
|
if (!string.IsNullOrWhiteSpace(DDSX))
|
|
{
|
|
if (IsDDSX(VenCode, InvCode, WorkPoint, PODate, POCode, Sequence, DDSX))
|
|
{
|
|
msg="请先生成日期前的数据";
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
msg=ex.Message;
|
|
}
|
|
return msg;
|
|
}
|
|
|
|
|
|
|
|
public DataTable SeachCreateLotOrderByPO()
|
|
{
|
|
// string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
|
|
string sql = @"select F_ItemCode,F_ItemName,F_Define1,F_Define2 from [Sys_SRM_ItemsDetail] where F_ItemCode ='CreateLotOrderBy001' and F_EnabledMark='1'
|
|
";
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
|
|
|
|
|
|
|
|
public DataTable SeachCreateLotOrderByOO()
|
|
{
|
|
// string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
|
|
string sql = @"select F_ItemCode,F_ItemName,F_Define1,F_Define2 from [Sys_SRM_ItemsDetail] where F_ItemCode ='CreateLotOrderBy002' and F_EnabledMark='1'
|
|
";
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public bool SeachPoArriveDate(string Code, string Row, string Type)
|
|
{
|
|
bool Flag = false;
|
|
string sql = string.Empty;
|
|
if (Type=="1")
|
|
{
|
|
sql = @"select ArriveDate,DeliveryDate,EATTRIBUTE29 from dbo.ICSPurchaseOrder where POCode='" + Code + "' and Sequence='" + Row + "'";
|
|
}
|
|
else
|
|
{
|
|
sql = @"select ArriveDate,DeliveryDate,EATTRIBUTE29 from dbo.ICSOutsourcingOrder where OOCode='" + Code + "' and Sequence='" + Row + "'";
|
|
}
|
|
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
if (dt.Rows[0]["ArriveDate"].ToString() != "" || dt.Rows[0]["DeliveryDate"].ToString() != "" || dt.Rows[0]["EATTRIBUTE29"].ToString() != "")
|
|
{
|
|
Flag = true;
|
|
}
|
|
|
|
return Flag;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|