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.
11436 lines
674 KiB
11436 lines
674 KiB
using NFine.Data.Extensions;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using NFine.Code;
|
|
using NFine.Repository;
|
|
using System.Data.Common;
|
|
using NFine.Domain._03_Entity.SRM;
|
|
using System.Configuration;
|
|
using System.Text;
|
|
using System.Net;
|
|
using Newtonsoft.Json.Linq;
|
|
using Newtonsoft.Json;
|
|
using System.IO;
|
|
using System.Data.SqlClient;
|
|
using System.Linq;
|
|
using NFine.Application.Models;
|
|
|
|
namespace NFine.Application.RTWMS
|
|
{
|
|
|
|
public class PackModel
|
|
{
|
|
public string ID { get; set; }
|
|
public string PackCode { get; set; }
|
|
public int FristBarIndex { get; set; }
|
|
public int LastBarIndex { get; set; }
|
|
}
|
|
public class WMSCreateItemLotApp : RepositoryFactory<ICSVendor>
|
|
{
|
|
|
|
|
|
public DataTable GetGridJson(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @"select a.ID,y.MOCode,a.ApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
|
|
,CAST(a.Amount AS DECIMAL(38,{0})) as Amount , CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,
|
|
CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
|
|
,b.EffectiveEnable,b.EffectiveDays
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSMOApplyNegDetail a
|
|
left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
|
|
left join 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 and ee.type='1'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
inner JOIN ICSMOPick x ON a.SourceDetailID=x.PickID AND a.WorkPoint=x.WorkPoint
|
|
left JOIN ICSMO y ON x.MODetailID=y.MODetailID AND x.WorkPoint=y.WorkPoint
|
|
where d.Type='1' and d.Status='2' ";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
|
|
{
|
|
sql += " and a.MTIME >= '" + queryParam["FromTime"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
|
|
{
|
|
sql += " and a.MTIME <= '" + queryParam["ToTime"].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(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 领料子件信息
|
|
/// </summary>
|
|
/// <param name="MODetailID"></param>
|
|
/// <param name="workpoint"></param>
|
|
/// <param name="jqgridparam"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetICSMOPick(string MODetailID, string workpoint, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @" SELECT b.InvCode,c.InvName,c.InvStd,InvUnit,b.ID,b.Quantity,b.IssueQuantity,d.WarehouseCode,d.WarehouseName FROM dbo.ICSMO a
|
|
LEFT JOIN dbo.ICSMOPick b ON a.MODetailID=b.MODetailID AND a.WorkPoint=b.WorkPoint
|
|
LEFT JOIN dbo.ICSInventory c ON b.InvCode=c.InvCode AND b.WorkPoint=c.WorkPoint
|
|
left join dbo.ICSWarehouse d on b.WHCode=d.WarehouseCode and b.WorkPoint=d.WorkPoint
|
|
WHERE a.MODetailID='{0}'
|
|
";
|
|
sql = string.Format(sql, MODetailID);
|
|
|
|
#endregion
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
public DataTable GetSubGridJson(string ApplyNegCode, string Sequence, string Type, string isPrint, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
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, CAST( a.Quantity AS DECIMAL(38,{0})) as Quantity ,a.MUSERName,a.MTIME
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
|
|
case when isnull(d.ID,'')='' then '未入库' else '已入库' end as isStorage,
|
|
case when g.InvIQC='1'and isnull(e.ID,'')='' then '未检验' else '已检验' end as isInspection,
|
|
case when isnull(a.LastPrintUser,'')='' then '未打印' else '已打印' end as isPrint,
|
|
case when Isnull(g.InvIQC,'0')='1' then '否' else '是' end as isExemption,a.Amount,
|
|
convert(varchar(20),a.ProductDate,23) as ProductDate,convert(varchar(20),a.ExpirationDate,23) as ExpirationDate ,g.EffectiveDays,a.EATTRIBUTE4,a.EATTRIBUTE5
|
|
from ICSInventoryLot a
|
|
left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
|
|
group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
|
|
left join ICSInventoryLotDetail c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
left join dbo.ICSWareHouseLotInfo d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
|
|
left join ICSInspection e on a.LotNo=e.LotNo and e.Enable='1' and a.WorkPoint=e.WorkPoint
|
|
left join ICSInventory g on a.InvCode=g.InvCode and a.WorkPoint=g.WorkPoint
|
|
WHERE isnull(a.EATTRIBUTE1,'')='' and a.Type='" + Type + "' and c.TransCode='" + ApplyNegCode + "' and c.TransSequence='" + Sequence + "' and a.WorkPoint in ('" + WorkPoint + "')";
|
|
if (!string.IsNullOrWhiteSpace(isPrint))
|
|
{
|
|
if (isPrint == "0")
|
|
{
|
|
}
|
|
else if (isPrint == "1")
|
|
{
|
|
sql += " and isnull(LastPrintUser,'')<>''";
|
|
}
|
|
else
|
|
{
|
|
sql += " and isnull(LastPrintUser,'')=''";
|
|
}
|
|
}
|
|
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 点击生成条码
|
|
/// </summary>
|
|
public DataTable GetSubGridJsonByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn017', " + Quantity + ",1,2,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
|
|
string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
|
|
CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty ,
|
|
CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
|
|
CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays, case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ,
|
|
d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
from ICSMOApplyNegDetail a
|
|
left join 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 and a.Type='1'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
|
|
left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
|
|
WHERE 1 =1
|
|
and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
|
|
sql += " and a.WorkPoint='" + WorkPoint + "'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
|
|
public DataTable GetVendorLotNo(string VenCode, string WorkPoint)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
//var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string dtPre = DateTime.Now.ToString("yyyyMMdd");
|
|
string sql = @"EXEC Addins_GetSerialCode '" + WorkPoint + "','ICSITEMLotNo','VendorLotNo','" + VenCode + dtPre + "',2";
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
/// <summary>
|
|
/// 生产退料生成条码
|
|
/// </summary>
|
|
/// <param name="POCode"></param>
|
|
/// <param name="PORow"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// 已改
|
|
/// <returns></returns>
|
|
public int CreateItemLotNo(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
|
|
{
|
|
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());
|
|
|
|
decimal LOTQTY = minPackQty;
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
//string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
|
|
string Pre = "MDN" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
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 InvCode = queryParam["ClassCode"].ToString();
|
|
string Colspan = "";
|
|
string sqls = string.Empty;
|
|
string LotNo = string.Empty;
|
|
string str1 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
//传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
|
|
if (AMEnable == "true")
|
|
{
|
|
|
|
LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
|
|
}
|
|
else
|
|
{
|
|
LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
}
|
|
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
//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}','1','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(Convert.ToDecimal(queryParam["Amount"].ToString()) / minPackQty * LOTQTY) / 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";
|
|
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo ,
|
|
MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
//}
|
|
|
|
}
|
|
|
|
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(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 Repository().FindTableBySql(sql.ToString());
|
|
return SqlHelper.ExecuteScalar(sql).ToString();
|
|
//return DbHelper.ExecuteScalar(CommandType.Text, sql).ToString();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除条码
|
|
/// </summary>
|
|
/// <param name="keyValue"></param>
|
|
/// <returns></returns>
|
|
public string DeleteItemLot(string keyValue)
|
|
{
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string msg = string.Empty;
|
|
string sql = string.Format(@"SELECT * FROM dbo.ICSInspection
|
|
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.ICSWareHouseLotInfo 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))
|
|
{
|
|
|
|
string sqls = string.Format("DELETE FROM ICSInventoryLotDetail WHERE LotNO IN (select LotNO from ICSInventoryLot where ID in ({0}) ) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
|
|
sqls += string.Format("DELETE FROM dbo.ICSContainerLot WHERE LotNO IN (select LotNO from ICSInventoryLot where ID in ({0}) ) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);//删除箱子 条码对应关系
|
|
sqls += string.Format("DELETE FROM dbo.ICSInventoryLot WHERE ID IN ({0}) and WorkPoint in ('{1}')", keyValue.TrimEnd(','), WorkPoint);
|
|
SqlHelper.CmdExecuteNonQueryLi(sqls);
|
|
}
|
|
return msg;
|
|
|
|
|
|
}
|
|
|
|
|
|
public DataTable GetGridJsonWeiWai(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
|
|
,CAST(a.Amount AS DECIMAL(38,{0})) as Amount , CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity,a.ExtensionID,a.MUSERName,a.MTIME ,
|
|
CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSOApplyNegDetail a
|
|
left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
|
|
left join 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 and ee.type='2'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
WHERE d.Type='1' ";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
|
|
{
|
|
sql += " and d.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
|
|
{
|
|
sql += " and d.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
|
|
{
|
|
sql += " and d.WHCode like '%" + queryParam["WHCode"].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(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
|
|
public DataTable GetSubGridJsonWeiWai(string OApplyNegCode, string Sequence, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
//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,CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity from ICSInventoryLot a
|
|
left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
|
|
group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
|
|
left join ICSInventoryLotDetail c on a.LotNo=c.LotNo
|
|
WHERE c.TransCode='" + OApplyNegCode + "' and c.TransSequence='" + Sequence + "' and a.WorkPoint in (" + WorkPoint + ")";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 点击委外退料生成条码
|
|
/// </summary>
|
|
public DataTable GetSubGridJsonWeiWaiByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn008', " + Quantity + ",1,2,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
|
|
|
|
string sql = @" select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
|
|
CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
|
|
CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
|
|
CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
|
|
,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
|
|
from ICSOApplyNegDetail a
|
|
left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
|
|
left join 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 and a.Type='2'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
|
|
left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
|
|
WHERE d.Type='1'
|
|
and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
|
|
sql += " and a.WorkPoint='" + WorkPoint + "'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
/// <summary>
|
|
/// 委外退料生成条码
|
|
/// </summary>
|
|
/// <param name="POCode"></param>
|
|
/// <param name="PORow"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// 已改
|
|
/// <returns></returns>
|
|
public int SubmitFormWeiWai(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "OI" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
string str1 = "";
|
|
|
|
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
|
|
LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
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}','2','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, 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";
|
|
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo ,
|
|
MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, 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 SubmitFormWeiWaiNew(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
var queryParam = keyValue.ToJObject();
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
// decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
|
|
decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
|
|
|
|
JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
|
|
List<decimal> lotQtys = new List<decimal>();
|
|
foreach (var jLotno in jLotnos)
|
|
{
|
|
decimal qty = Convert.ToDecimal(jLotno["qty"]);
|
|
lotQtys.Add(qty);
|
|
|
|
}
|
|
int createPageCount = lotQtys.Count();
|
|
|
|
string Pre = "OI" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
string str1 = "";
|
|
|
|
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
decimal LOTQTY = lotQtys[i];
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
|
|
LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
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}','2','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * 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";
|
|
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo ,
|
|
MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
|
|
public DataTable GetGridJsonChengPing(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
|
|
#region [SQL]
|
|
string sql = @" select distinct a.ID, a.MODetailID,a.MOCode,a.Sequence,
|
|
CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity ,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
|
|
CAST( a.Quantity AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount,a.StartDate,a.WHCode,warehouse.WarehouseName as WHName
|
|
,a.DueDate,a.MOStatus,a.ExtensionID,a.MUSERName,a.MTIME ,
|
|
CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,
|
|
CAST( a.Quantity AS DECIMAL(38,{0})) -CAST(a.RCVQuantity AS DECIMAL(38,{0})) as ERPNum,CAST((a.Quantity-ISnull(a.RCVQuantity,0)) AS DECIMAL(38,{0})) as NRCVQuantity,a.MOMemo
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10,a.EATTRIBUTE11,a.EATTRIBUTE12,b.MTIME as TMTime,dep.DepName,a.CreateDateTime
|
|
from ICSMO a
|
|
left join 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 and ee.type='3'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
left join ICSDepartment dep ON dep.DepCode=a.DepCode and a.WorkPoint=dep.WorkPoint
|
|
left join ICSWarehouse warehouse on a.WHCode=warehouse.WarehouseCode and a.WorkPoint=warehouse.WorkPoint ";
|
|
sql += " WHERE 1=1 and a.MOStatus<>'3' ";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["SelGDLX"].ToString()))
|
|
{
|
|
sql += " and a.MOType like '%" + queryParam["SelGDLX"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
|
|
{
|
|
sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
|
|
{
|
|
sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
|
|
{
|
|
sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
|
|
{
|
|
sql += " and a.WHCode like '%" + queryParam["WHCode"].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(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(c.LOTQTY,0)>0";
|
|
}
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
|
|
{
|
|
string WHStatus = queryParam["WHStatus"].ToString();
|
|
if (WHStatus == "0")
|
|
{
|
|
//sql += " and a.Quantity=ISNULL(c.LotQty,0)";
|
|
}
|
|
else if (WHStatus == "1")
|
|
{
|
|
sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0 ";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0 ";
|
|
}
|
|
}
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 点击成品生成条码(成品)
|
|
/// </summary>
|
|
public DataTable GetSubGridJsonChengPingByCreate(string MOCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
// string sql = @"select d.Enable, a.InvCode,b.ClassCode,b.InvName,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
|
|
//CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
|
|
// ,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10,''as EATTRIBUTE2,''as EATTRIBUTE3,''as EATTRIBUTE4,''as EATTRIBUTE5
|
|
// from ICSMO a
|
|
// left join 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 and a.Type='3'
|
|
// where isnull(a.EATTRIBUTE1,'')=''
|
|
// group by b.TransCode,b.TransSequence
|
|
// ) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
|
|
// left join ICSConfiguration d on d.Code='CompleteVerification001' and a.WorkPoint =d.WorkPoint
|
|
// left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
|
|
// WHERE 1 =1 and a.MOStatus<>'3'
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn011', " + Quantity + ",1,2,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
|
|
|
|
string sql = @" select d.Enable, a.InvCode,b.ClassCode,b.InvName,b.InvStd,b.InvUnit,
|
|
CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
|
|
CAST( a.Amount as DECIMAL(38,{0})) as Amount,
|
|
CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
|
|
CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
|
|
CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
|
|
,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
from ICSMO a
|
|
left join 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 and a.Type='3'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
|
|
left join ICSConfiguration d on d.Code='CompleteVerification001' and a.WorkPoint =d.WorkPoint
|
|
left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
|
|
WHERE 1 =1 and a.MOStatus<>'3'
|
|
and a.MOCode='" + MOCode + "' and a.Sequence='" + Sequence + "'";
|
|
sql += " and a.WorkPoint='" + WorkPoint + "'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
/// <summary>
|
|
/// 成品生成条码
|
|
/// </summary>
|
|
/// <param name="POCode"></param>
|
|
/// <param name="PORow"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// 已改
|
|
/// <returns></returns>
|
|
///传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
|
|
public int SubmitFormChengPing(string MOCode, string Sequence, string keyValue, string WorkPoint, float Quantity,string CodeAssociated)
|
|
{
|
|
|
|
DataTable dt1 = JsonConvert.DeserializeObject<DataTable>(CodeAssociated);
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
string InvCode = queryParam["ClassCode"].ToString();
|
|
string InvCodeLP = queryParam["InvCode"].ToString();
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
//string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
|
|
//string Pre = InvCodeLP + "|" + MOCode + "|" + (int)Quantity + "|" + DateTime.Now.ToString("yyyyMMdd") + "|";
|
|
string Pre = "CP" + MOCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
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 = "";
|
|
string LotNo = string.Empty;
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
//传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
|
|
//if (AMEnable == "true")
|
|
//{
|
|
|
|
// LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
|
|
//}vvv
|
|
//else
|
|
//{
|
|
LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 4);
|
|
//}
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
//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,EATTRIBUTE11)
|
|
select
|
|
newid(),'{0}',InvCode,'{1}','{10}','{2}','{8}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','{21}'
|
|
from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, 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(), queryParam["VenInvCode"].ToString());
|
|
sql += "\r\n";
|
|
//foreach (var item in res)
|
|
//{
|
|
// JObject jo = (JObject)item;
|
|
// var DistributionNum = jo["RemainingQTY"].ToDecimal();
|
|
|
|
//}
|
|
var LotNum = LOTQTY;
|
|
//foreach (DataRow dr in dt1.Rows)
|
|
//{
|
|
// if (LotNum==0)
|
|
// {
|
|
// break;
|
|
// }
|
|
// var Num= dr["RemainingQTY"].ToDecimal();
|
|
// if (Num==0)
|
|
// {
|
|
// dr.Delete();
|
|
// continue;
|
|
// }
|
|
// if (LotNum > Num)
|
|
// {
|
|
// LotNum = LotNum - Num;
|
|
// sql += string.Format(@" Insert into ICSInventoryLotDetailRT( ID,LotNo,Code,Quantity,MUSER,MUSERName,MTIME)
|
|
// Values(newid(),'{0}','{1}','{2}','{3}','{4}',getdate() )",
|
|
// LotNo, dr["Code"].ToString(), Num, MUSER, MUSERNAME);
|
|
// dr.Delete();
|
|
// }
|
|
// else
|
|
// {
|
|
// sql += string.Format(@" Insert into ICSInventoryLotDetailRT( ID,LotNo,Code,Quantity,MUSER,MUSERName,MTIME)
|
|
// Values(newid(),'{0}','{1}','{2}','{3}','{4}',getdate() )",
|
|
// LotNo, dr["Code"].ToString(), LotNum, MUSER, MUSERNAME);
|
|
// dr["RemainingQTY"] = (dr["RemainingQTY"].ToDecimal()-LotNum).ToString();
|
|
// LotNum = LotNum - LotNum;
|
|
|
|
// }
|
|
//}
|
|
|
|
for (int A = dt1.Rows.Count-1;A >= 0; A--)
|
|
{
|
|
DataRow dr = dt1.Rows[A] ;
|
|
if (LotNum == 0)
|
|
{
|
|
break;
|
|
}
|
|
var Num = dr["RemainingQTY"].ToDecimal();
|
|
if (Num == 0)
|
|
{
|
|
dt1.Rows.Remove(dr);
|
|
// dr.Delete();
|
|
continue;
|
|
}
|
|
if (LotNum > Num)
|
|
{
|
|
LotNum = LotNum - Num;
|
|
sql += string.Format(@" Insert into ICSInventoryLotDetailRT( ID,LotNo,Code,Quantity,MUSER,MUSERName,MTIME)
|
|
Values(newid(),'{0}','{1}','{2}','{3}','{4}',getdate() )",
|
|
LotNo, dr["Code"].ToString(), Num, MUSER, MUSERNAME);
|
|
dt1.Rows.Remove(dr);
|
|
//dr.Delete();
|
|
}
|
|
else
|
|
{
|
|
sql += string.Format(@" Insert into ICSInventoryLotDetailRT( ID,LotNo,Code,Quantity,MUSER,MUSERName,MTIME)
|
|
Values(newid(),'{0}','{1}','{2}','{3}','{4}',getdate() )",
|
|
LotNo, dr["Code"].ToString(), LotNum, MUSER, MUSERNAME);
|
|
dr["RemainingQTY"] = (dr["RemainingQTY"].ToDecimal() - LotNum).ToString();
|
|
LotNum = LotNum - LotNum;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
#region//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo ,
|
|
MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
//}
|
|
#endregion
|
|
}
|
|
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 SubmitFormChengPingNew(string MOCode, string Sequence, string keyValue, string WorkPoint, float Quantity)
|
|
{
|
|
var queryParam = keyValue.ToJObject();
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
|
|
decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
|
|
decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
|
|
JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
|
|
List<decimal> lotQtys = new List<decimal>();
|
|
foreach (var jLotno in jLotnos)
|
|
{
|
|
decimal qty = Convert.ToDecimal(jLotno["qty"]);
|
|
lotQtys.Add(qty);
|
|
|
|
}
|
|
int createPageCount = lotQtys.Count();
|
|
|
|
string InvCode = queryParam["ClassCode"].ToString();
|
|
string InvCodeLP = queryParam["InvCode"].ToString();
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
//string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
|
|
//string Pre = InvCodeLP + "|" + MOCode + "|" + (int)Quantity + "|" + DateTime.Now.ToString("yyyyMMdd") + "|";
|
|
string Pre = "CP" + MOCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
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 = "";
|
|
string LotNo = string.Empty;
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
var LOTQTY = lotQtys[i];
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
//传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
|
|
//if (AMEnable == "true")
|
|
//{
|
|
|
|
// LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
|
|
//}vvv
|
|
//else
|
|
//{
|
|
LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 4);
|
|
//}
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, MOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
//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}','3','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSMO where MOCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, MOCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * 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";
|
|
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo ,
|
|
MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
//}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
|
|
public DataTable GetGridJsonXiaoShou(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @" select a.ID,a.SDNCode,a.Sequence,a.SOCode,a.SOSequence,a.CusCode,a.CusName,a.Type,a.ArriveDate,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
|
|
,cast(a.Amount as decimal(38,{0})) as Amount, CAST(a.SDNQuantity AS DECIMAL(38,{0})) as SDNQuantity ,a.Status,a.ExtensionID,a.CreatePerson,a.CreateDateTime ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSSDN a
|
|
left join 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 and ee.type='4'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
--left join ICSDepartment dep ON dep.DepCode=a.[Detp]
|
|
where a.Type='2'";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.SDNCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].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(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 点击销售退货生成条码(销售退货)
|
|
/// </summary>
|
|
public DataTable GetSubGridJsonXiaoShouByCreate(string SDNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn020', " + Quantity + ",1,3,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
|
|
string sql = @" select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
|
|
CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,
|
|
isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays, case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
|
|
,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
from ICSSDN a
|
|
left join 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 and a.Type='4'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) c on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence
|
|
left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
|
|
WHERE 1 =1
|
|
and a.Type='2' and a.SDNCode='" + SDNCode + "' and a.Sequence='" + Sequence + "'";
|
|
sql += " and a.WorkPoint='" + WorkPoint + "'";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
/// <summary>
|
|
/// 销售退货生成条码
|
|
/// </summary>
|
|
/// <param name="POCode"></param>
|
|
/// <param name="PORow"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// 已改
|
|
/// <returns></returns>
|
|
public int SubmitFormXiaoShou(string SDNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
//string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
|
|
string Pre = "SR" + SDNCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
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 InvCode = queryParam["ClassCode"].ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
string LotNo = string.Empty;
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
//传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
|
|
if (AMEnable == "true")
|
|
{
|
|
|
|
LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
|
|
}
|
|
else
|
|
{
|
|
LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
}
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}')",
|
|
LotNo, SDNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
//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}','4','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SDNCode, 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";
|
|
//}
|
|
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, 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 SubmitFormXiaoShouNew(string SDNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
|
|
{
|
|
var queryParam = keyValue.ToJObject();
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
|
|
decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
|
|
decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
|
|
JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
|
|
List<decimal> lotQtys = new List<decimal>();
|
|
foreach (var jLotno in jLotnos)
|
|
{
|
|
decimal qty = Convert.ToDecimal(jLotno["qty"]);
|
|
lotQtys.Add(qty);
|
|
|
|
}
|
|
int createPageCount = lotQtys.Count();
|
|
|
|
string Pre = "SR" + SDNCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
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 InvCode = queryParam["ClassCode"].ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
string LotNo = string.Empty;
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
var LOTQTY = lotQtys[i];
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
//传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
|
|
if (AMEnable == "true")
|
|
{
|
|
|
|
LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
|
|
}
|
|
else
|
|
{
|
|
LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
}
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}')",
|
|
LotNo, SDNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
//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}','4','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SDNCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * 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";
|
|
//}
|
|
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
|
|
public DataTable GetGridJsonQiTa(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @" select a.ID,a.InCode,a.Sequence,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity,CAST(a.Amount AS DECIMAL(38,{0})) as Amount, CAST(a.InQuantity AS DECIMAL(38,{0})) as InQuantity,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSOtherIn a
|
|
left join 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 and ee.type='5'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.Status='1' and ISNULL(a.Type,'1')='1' ";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.InCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
|
|
{
|
|
sql += " and b.InvStd like '%" + queryParam["InvStd"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
|
|
{
|
|
sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
|
|
{
|
|
sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
|
|
{
|
|
sql += " and a.WHCode like '%" + queryParam["WHCode"].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(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 点击销售退货生成条码(其他入库)
|
|
/// </summary>
|
|
public DataTable GetSubGridJsonQiTaByCreate(string InCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn021', " + Quantity + ",1,4,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
|
|
string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
|
|
CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,
|
|
isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
|
|
,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
from ICSOtherIn a
|
|
left join 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 and a.Type='5'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) c on a.InCode=c.TransCode and a.Sequence=c.TransSequence
|
|
left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
|
|
WHERE 1 =1
|
|
and a.InCode='" + InCode + "' and a.Sequence='" + Sequence + "' and ISNULL(a.EATTRIBUTE2,'1')='1'";
|
|
sql += " and a.WorkPoint='" + WorkPoint + "'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 其他入库生成条码
|
|
/// </summary>
|
|
/// <param name="POCode"></param>
|
|
/// <param name="PORow"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// 已改
|
|
/// <returns></returns>
|
|
public int SubmitFormQiTa(string InCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
//string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
|
|
string Pre = "QT" + InCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
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 InvCode = queryParam["ClassCode"].ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
string LotNo = string.Empty;
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
//传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
|
|
if (AMEnable == "true")
|
|
{
|
|
|
|
LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
|
|
}
|
|
else
|
|
{
|
|
LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
}
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, InCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
//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}','5','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSOtherIn where InCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and ISNULL(EATTRIBUTE2,'1')='1'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, InCode, 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
//}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
|
|
|
|
public int SubmitFormQiTaNew(string InCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
|
|
{
|
|
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());
|
|
JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
|
|
List<decimal> lotQtys = new List<decimal>();
|
|
foreach (var jLotno in jLotnos)
|
|
{
|
|
decimal qty = Convert.ToDecimal(jLotno["qty"]);
|
|
lotQtys.Add(qty);
|
|
|
|
}
|
|
int createPageCount = lotQtys.Count();
|
|
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
//string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
|
|
string Pre = "QT" + InCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
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 InvCode = queryParam["ClassCode"].ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
string LotNo = string.Empty;
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
var LOTQTY = lotQtys[i];
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
//传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
|
|
if (AMEnable == "true")
|
|
{
|
|
|
|
LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
|
|
}
|
|
else
|
|
{
|
|
LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
}
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, InCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
//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}','5','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSOtherIn where InCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and ISNULL(EATTRIBUTE2,'1')='1'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, InCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
//}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
//归还
|
|
public DataTable GetGridJsonGuiHuan(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @"select a.ID,a.ReturnCode,a.Sequence,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
|
|
CAST(a.ReturnQuantity AS DECIMAL(38,{0})) as ReturnQuantity,a.CreatePerson,a.CreateDateTime,
|
|
CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSReturn a
|
|
left join 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 and ee.type='6'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.Status='2'";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.ReturnCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].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(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
//审核到货单(采购订单需与审核到货单一起同步)
|
|
public DataTable GetGridJsonSHDH(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @"select distinct a.ID, d.POCode,d.Sequence as POSequence,a.DNCode,a.Sequence,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
|
|
CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity,CAST((a.Quantity-ISnull(a.RCVQuantity,0)) AS DECIMAL(38,{0})) as NRCVQuantity,
|
|
CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,
|
|
Case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable
|
|
--,isnull(b.EffectiveEnable,0) as EffectiveEnable
|
|
, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSDeliveryNotice a
|
|
left join 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 and ee.type='7'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
|
|
left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.DNType='1' and a.Status='2' and a.ASNCode is null
|
|
";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
|
|
{
|
|
sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
|
|
{
|
|
sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
|
|
{
|
|
sql += " and b.InvStd like '%" + queryParam["InvStd"].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(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
|
|
{
|
|
string WHStatus = queryParam["WHStatus"].ToString();
|
|
if (WHStatus == "0")
|
|
{
|
|
//sql += " and a.Quantity=ISNULL(c.LotQty,0)";
|
|
}
|
|
else if (WHStatus == "1")
|
|
{
|
|
sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0";
|
|
}
|
|
}
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
//审核委外到货单
|
|
|
|
public DataTable GetGridJsonWWSHDH(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @"select distinct a.ID, d.OOCode,d.Sequence as OOSequence,a.ODNCode,a.Sequence,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
|
|
CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
|
|
CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity,
|
|
CAST((a.Quantity-ISnull(a.RCVQuantity,0)) AS DECIMAL(38,{0})) as NRCVQuantity,
|
|
CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,
|
|
CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY ,d.OODetailID ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable
|
|
, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 ,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSODeliveryNotice a
|
|
left join 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 and ee.type='8'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
|
|
left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.ODNType='1' and a.Status='2' and a.OASNCode is null";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
|
|
{
|
|
sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
|
|
{
|
|
sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvStd"].ToString()))
|
|
{
|
|
sql += " and b.InvStd like '%" + queryParam["InvStd"].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(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
|
|
{
|
|
string WHStatus = queryParam["WHStatus"].ToString();
|
|
if (WHStatus == "0")
|
|
{
|
|
//sql += " and a.Quantity=ISNULL(c.LotQty,0)";
|
|
}
|
|
else if (WHStatus == "1")
|
|
{
|
|
sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)>0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(a.RCVQuantity,0)=0";
|
|
}
|
|
}
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
|
|
//开立得成品入库单
|
|
|
|
public DataTable GetGridJsonKLCPRK(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @"
|
|
select a.ID,a.RCVCode,a.Sequence,a.SourceCode as MOCode,a.WHCode,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
|
|
CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
|
|
CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity ,a.CreatePerson,a.CreateDateTime,
|
|
CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
|
|
,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable,b.EffectiveDays
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSManufactureReceive a
|
|
left join 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 and ee.type='9'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
--left join icsmo g on a.SourceCode=g.MOCode and a.WorkPoint=g.WorkPoint
|
|
where a.Status='1' and a.Type='1'";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["SCode"].ToString()))
|
|
{
|
|
sql += " and a.SourceCode like '%" + queryParam["SCode"].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(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 点击审核委外到货单生成条码(审核委外到货单)
|
|
/// </summary>
|
|
public DataTable GetSubGridJsonWWSHDHByCreate(string ODNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
|
|
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn005', " + Quantity + ",1,1,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
|
|
//锐腾添加退补逻辑
|
|
string sql = @"select e.Enable, a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
|
|
CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount,
|
|
CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
|
|
CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)+ISNULL(f.Quantity,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
|
|
CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
|
|
,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
from ICSODeliveryNotice a
|
|
left join 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 and a.Type='8'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
|
|
left join ICSConfiguration e on e.Code='CompleteVerification002' and a.WorkPoint =e.WorkPoint
|
|
left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
|
|
left join (select a.ODNCode,a.Sequence,a.WorkPoint, ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity
|
|
from ICSODeliveryNotice a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
|
|
left join ICSODeliveryNotice f ON a.ODNDetailID=Isnull(f.EATTRIBUTE4,'') and a.WorkPoint=f.WorkPoint and f.ODNType='2' and f.EATTRIBUTE3='退补'
|
|
left join (SELECT OODetailID,WorkPoint,sum(Quantity) Quantity FROM ICSODeliveryNotice WHERE ODNType='3' GROUP BY OODetailID,WorkPoint )j ON a.ODNDetailID=j.OODetailID and a.WorkPoint=j.WorkPoint) f ON a.ODNCode=f.ODNCode and a.WorkPoint=f.WorkPoint
|
|
WHERE 1 =1
|
|
and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
|
|
sql += " and a.WorkPoint='" + WorkPoint + "'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 点击开立成品入库生成条码(开立成品入库单)
|
|
/// </summary>
|
|
/// //--
|
|
public DataTable GetSubGridJsonKLCPRKByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn013', " + Quantity + ",1,2,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
|
|
string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
|
|
CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
|
|
CAST( a.Amount as DECIMAL(38,{0})) as Amount,
|
|
CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
|
|
CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
|
|
CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
|
|
,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
|
|
'' as EATTRIBUTE2,'' as EATTRIBUTE3,'' as EATTRIBUTE4,'' as EATTRIBUTE5,'' as EATTRIBUTE6,'' as EATTRIBUTE7,'' as EATTRIBUTE8,'' as EATTRIBUTE9,'' as EATTRIBUTE10
|
|
from ICSManufactureReceive a
|
|
left join 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 and a.Type='9'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence
|
|
left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
|
|
|
|
WHERE 1 =1
|
|
and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "'";
|
|
sql += " and a.WorkPoint='" + WorkPoint + "'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 点击审核到货单生成条码(审核到货单)
|
|
/// </summary>
|
|
public DataTable GetSubGridJsonSHDHByCreate(string DNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
|
|
|
|
|
|
|
|
/***
|
|
* 锐腾新加退补逻辑,当退货申请单类型为退补时,可生成条码数量加上退补的数量
|
|
* 查询退货申请单的单据类型,判断是否为退补单
|
|
***/
|
|
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn002', " + Quantity + ",1,1,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
|
|
|
|
string checksql = $@"select a.ID from ICSDeliveryNotice a
|
|
inner join ICSDeliveryNotice b ON a.DNDetailID=Isnull(b.EATTRIBUTE8,'') and a.WorkPoint=b.WorkPoint and b.DNType='2' and b.EATTRIBUTE7='退补'
|
|
where a.DNType='1' and a.DNCode='{DNCode}' and a.Sequence='{Sequence}' and a.WorkPoint='{WorkPoint}' ";
|
|
var checkdt = SqlHelper.CmdExecuteDataTable(checksql);
|
|
string sql = string.Empty;
|
|
if (checkdt.Rows.Count > 0)
|
|
{
|
|
sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
|
|
CAST( " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) AS DECIMAL(38,{0})) as Quantity,
|
|
CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
|
|
CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0)) as DECIMAL(38,6)) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
|
|
CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
|
|
,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
from ICSDeliveryNotice a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
|
|
left join(select a.DNCode,a.Sequence,a.WorkPoint,
|
|
case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
|
|
from ICSDeliveryNotice a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) e on e.DNCode=a.DNCode and e.Sequence=a.Sequence
|
|
left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
|
|
left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='7'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
|
|
left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
|
|
left join ICSDeliveryNotice f ON a.DNDetailID=Isnull(f.EATTRIBUTE8,'') and a.WorkPoint=f.WorkPoint and f.DNType='2' and f.EATTRIBUTE7='退补'
|
|
left join (SELECT PODetailID,WorkPoint,sum(Quantity) as Quantity FROM ICSDeliveryNotice WHERE DNType='3' GROUP BY PODetailID,WorkPoint) j ON a.DNDetailID=j.PODetailID and a.WorkPoint=j.WorkPoint
|
|
WHERE 1 =1
|
|
and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
|
|
|
|
}
|
|
else
|
|
{
|
|
sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
|
|
CAST( " + Num + @"+ISNULL(j.Quantity,0) AS DECIMAL(38,{0})) as Quantity,
|
|
CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
|
|
CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)+ISNULL(j.Quantity,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
|
|
CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
|
|
,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
from ICSDeliveryNotice a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
|
|
left join(select a.DNCode,a.Sequence,a.WorkPoint,
|
|
case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
|
|
from ICSDeliveryNotice a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) e on e.DNCode=a.DNCode and e.Sequence=a.Sequence
|
|
left join (select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
|
|
left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='7'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
|
|
left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
|
|
left join (SELECT PODetailID,WorkPoint,sum(Quantity) as Quantity FROM ICSDeliveryNotice WHERE DNType='3' GROUP BY PODetailID,WorkPoint) j ON a.DNDetailID=j.PODetailID and a.WorkPoint=j.WorkPoint
|
|
WHERE 1 =1
|
|
and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
|
|
|
|
}
|
|
|
|
|
|
sql += " and a.WorkPoint='" + WorkPoint + "'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 点击归还生成条码(归还)
|
|
/// </summary>
|
|
public DataTable GetSubGridJsonGuiHuanByCreate(string ReturnCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn023', " + Quantity + ",1,4,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
|
|
string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
|
|
CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
|
|
CAST( a.Amount as DECIMAL(38,{0})) as Amount,
|
|
CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
|
|
CAST( ( " + Num + @" -ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
|
|
CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
|
|
,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
from ICSReturn a
|
|
left join 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 and a.Type='6'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence
|
|
left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
|
|
|
|
WHERE 1 =1
|
|
and a.ReturnCode='" + ReturnCode + "' and a.Sequence='" + Sequence + "'";
|
|
sql += " and a.WorkPoint='" + WorkPoint + "'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
/// <summary>
|
|
/// 归还单生成条码
|
|
/// </summary>
|
|
/// <param name="POCode"></param>
|
|
/// <param name="PORow"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// 已改
|
|
/// <returns></returns>
|
|
public int SubmitFormGuiHuan(string ReturnCode, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "GH" + ReturnCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
|
|
LotNo, ReturnCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
//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}','6','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSReturn where ReturnCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ReturnCode, 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
//}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 审核到货单生成条码
|
|
/// </summary>
|
|
/// <param name="POCode"></param>
|
|
/// <param name="PORow"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// 2023 1117 传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 lacy.xu
|
|
/// <returns></returns>
|
|
public int SubmitFormSHDH(string DNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "DN" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
|
|
string InvCode = queryParam["ClassCode"].ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
string LotNo = string.Empty;
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
//传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
|
|
if (AMEnable == "true")
|
|
{
|
|
|
|
LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
|
|
}
|
|
else
|
|
{
|
|
LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
}
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
|
|
LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
|
|
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}','7','{3}','{4}', getdate(),'{5}','{9}'
|
|
,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, 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";
|
|
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
/// <summary>
|
|
/// 审核委外到货单生成条码
|
|
/// </summary>
|
|
/// <param name="POCode"></param>
|
|
/// <param name="PORow"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// 已改
|
|
/// <returns></returns>
|
|
/// 2023 1117 传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则 lacy.xu
|
|
public int SubmitFormWWSHDH(string ODNCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "ODN" + ODNCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
|
|
string InvCode = queryParam["ClassCode"].ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
string LotNo = string.Empty;
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
|
|
//传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
|
|
if (AMEnable == "true")
|
|
{
|
|
|
|
LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
|
|
}
|
|
else
|
|
{
|
|
LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
}
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
|
|
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}','8','{3}','{4}', getdate(),'{5}','{9}'
|
|
,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, 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 SubmitFormKLCPRK(string RCVCode, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
|
|
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);
|
|
bool flag = true;
|
|
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
|
|
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}','9','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
|
|
//委外拒收单
|
|
public DataTable GetGridJsonWWJSD(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @"select a.ID, a.ODNCode OOCode,a.Sequence OOSequence,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity,
|
|
CAST(a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 ,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSODeliveryNotice a
|
|
left join 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 and ee.type='11'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
--inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
|
|
left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
|
|
";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
|
|
{
|
|
sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
|
|
{
|
|
sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].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(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
|
|
//拒收单
|
|
public DataTable GetGridJsonJSD(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @"select a.ID,a.DNCode ,a.Sequence ,a.VenCode,e.VenName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity,
|
|
CAST( a.UnitPrice AS DECIMAL(38,{0})) as UnitPrice,a.Currency,a.CreatePerson,a.CreateDateTime,
|
|
CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSDeliveryNotice a
|
|
left join 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 and ee.type='10'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
--inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
|
|
left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
|
|
";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
|
|
{
|
|
sql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
|
|
{
|
|
sql += " and e.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].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(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
//领料申请退料
|
|
|
|
|
|
public DataTable GetGridJsonLLSQTL(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @"select a.ID,a.ApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,bb.SourceCode,bb.SourceSequence,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,
|
|
CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSMOApplyNegDetail a
|
|
left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
|
|
left JOIN ICSMOApply bb ON a.SourceDetailID=bb.ApplyDetailID AND a.WorkPoint=bb.WorkPoint
|
|
left join 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 and ee.type='12'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
WHERE d.Type='2' and d.Status='2' ";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
|
|
{
|
|
sql += " and a.MTIME >= '" + queryParam["FromTime"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
|
|
{
|
|
sql += " and a.MTIME <= '" + queryParam["ToTime"].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(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 拒收生成条码
|
|
/// </summary>
|
|
/// <param name="POCode"></param>
|
|
/// <param name="PORow"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// <returns></returns>
|
|
public int SubmitFormJSD(string DNCode, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "JS" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, DNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
//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}','10','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, DNCode, 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, 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 SubmitFormWWJSD(string ODNCode, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "OJS" + ODNCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, ODNCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
//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}','11','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ODNCode, 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
//}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 点击审核到货单生成条码(审核到货单)
|
|
/// </summary>
|
|
public DataTable GetSubGridJsonJSDByCreate(string DNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn003', " + Quantity + ",1,1,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
|
|
CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
|
|
CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
|
|
CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
|
|
,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
from ICSDeliveryNotice a
|
|
left join 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 and a.Type='10'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence
|
|
left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
|
|
WHERE a.DNType='3'
|
|
and a.DNCode='" + DNCode + "' and a.Sequence='" + Sequence + "'";
|
|
sql += " and a.WorkPoint='" + WorkPoint + "'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
/// <summary>
|
|
/// 点击审核委外到货单生成条码(审核委外到货单)
|
|
/// </summary>
|
|
public DataTable GetSubGridJsonWWJSDByCreate(string ODNCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn006', " + Quantity + ",1,1,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
|
|
string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
|
|
CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
|
|
CAST( a.Amount as DECIMAL(38,{0})) as Amount,
|
|
CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
|
|
CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
|
|
CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
|
|
,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
from ICSODeliveryNotice a
|
|
left join 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 and a.Type='11'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence
|
|
left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
|
|
WHERE a.ODNType='3'
|
|
and a.ODNCode='" + ODNCode + "' and a.Sequence='" + Sequence + "'";
|
|
sql += " and a.WorkPoint='" + WorkPoint + "'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
//获取委外退料源头条码
|
|
public DataTable GetWeiWaiTLSrcLot(string OApplyNegCode, string Sequence, string WorkPoint)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = @"select C.LotNo from ICSOApplyNegDetail A
|
|
INNER JOIN ICSOIssue B ON B.PickID=A.SourceDetailID AND B.InvCode=A.InvCode
|
|
INNER JOIN ICSWareHouseLotInfoLog C
|
|
ON C.TransCode=B.SourceCode AND SUBSTRING(C.TransSequence,0,CharIndex('~',C.TransSequence))=B.SourceSequence
|
|
AND C.WorkPoint=B.WorkPoint
|
|
AND C.TransType=3 AND C.BusinessCode=5
|
|
where A.OApplyNegCode='" + OApplyNegCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + @"'
|
|
order by C.MTIME desc";
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
//获取领料申请源头条码
|
|
public DataTable GetLLSQSrcLot(string ApplyNegCode, string Sequence, string WorkPoint)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = @"select C.LotNo from ICSMOApplyNegDetail A
|
|
INNER JOIN ICSMOApply B ON B.EATTRIBUTE30=A.SourceDetailID AND B.InvCode=A.InvCode
|
|
INNER JOIN ICSWareHouseLotInfoLog C ON C.TransCode=B.ApplyCode AND C.TransSequence=B.Sequence
|
|
AND C.TransType=3 AND C.BusinessCode=14
|
|
where A.ApplyNegCode='" + ApplyNegCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + @"'
|
|
order by C.MTIME desc";
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
//获取条码备用字段568(派纳特殊需求---销售退货直接取单据备用字段信息)
|
|
public DataTable GetSSDDocEATTRIBUTEInfo(string SSDCode, string Sequence, string WorkPoint)
|
|
{
|
|
string sql = @"select A.CreateDateTime AS ProductDate,B.BatchCode AS BatchCode,A.EATTRIBUTE3,A.EATTRIBUTE5,A.EATTRIBUTE6,A.EATTRIBUTE8 from ICSSSD A
|
|
LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID
|
|
where A.SSDCode='" + SSDCode + "' and A.Sequence='" + Sequence + "' and A.WorkPoint='" + WorkPoint + "'";
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
//获取业务源头条码备用字段456(派纳特殊需求)
|
|
public DataTable GetSrcLotNoInfoPN(string LotNo, string WorkPoint)
|
|
{
|
|
try
|
|
{
|
|
string sql = "SELECT '' AS EATTRIBUTE3,'' AS EATTRIBUTE5,'' AS EATTRIBUTE6,'' AS EATTRIBUTE8 ";
|
|
DataTable dt = new DataTable();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string lotsql = @" select A.Type,B.TransCode,B.TransSequence from ICSInventoryLot A
|
|
INNER JOIN ICSInventoryLotDetail B ON B.LotNo=A.LotNo AND B.WorkPoint=A.WorkPoint
|
|
WHERE A.LotNo='" + LotNo + "' AND A.WorkPoint='" + WorkPoint + "'";
|
|
dt = SqlHelper.GetDataTableBySql(lotsql);
|
|
if (dt.Rows.Count > 0)
|
|
{
|
|
if (dt.Rows[0]["Type"].ToString() == "101" || dt.Rows[0]["Type"].ToString() == "102")//分批合批或形态转换后条码 需要找到最初的原条码确认单据后再取备用字段
|
|
{
|
|
string OriginalLot = LotNo.Split('-')[0];
|
|
lotsql = @" select A.Type,B.TransCode,B.TransSequence from ICSInventoryLot A
|
|
INNER JOIN ICSInventoryLotDetail B ON B.LotNo=A.LotNo AND B.WorkPoint=A.WorkPoint
|
|
WHERE A.LotNo='" + OriginalLot + "' AND A.WorkPoint='" + WorkPoint + "'";
|
|
dt = SqlHelper.GetDataTableBySql(lotsql);
|
|
if (dt.Rows.Count == 0)
|
|
{
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
else
|
|
{
|
|
LotNo = OriginalLot;
|
|
}
|
|
}
|
|
if (dt.Rows[0]["Type"].ToString() == "0" || dt.Rows[0]["Type"].ToString() == "2"
|
|
|| dt.Rows[0]["Type"].ToString() == "12" || dt.Rows[0]["Type"].ToString() == "24")//期初条码 成品条码 生产退料条码 销售退货条码 取条码备用字段
|
|
{
|
|
sql = @"SELECT B.BatchCode AS BatchCode,A.ProductDate AS ProductDate,A.EATTRIBUTE3 as EATTRIBUTE3,A.EATTRIBUTE5 AS EATTRIBUTE5
|
|
,A.EATTRIBUTE6 AS EATTRIBUTE6,A.EATTRIBUTE8 AS EATTRIBUTE8
|
|
from ICSInventoryLot A
|
|
LEFT JOIN ICSExtension B ON B.ID=A.ExtensionID
|
|
where A.LotNo = '" + LotNo + "' and A.WorkPoint = '" + WorkPoint + "'";
|
|
}
|
|
else if (dt.Rows[0]["Type"].ToString() == "22")//采购入库(标准收货单)条码 取单据备用字段
|
|
{
|
|
sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8 from ICSInventoryLotDetail A
|
|
LEFT JOIN ICSPurchaseReceive B ON B.RCVCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
|
|
LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
|
|
LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
|
|
WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
|
|
}
|
|
else if (dt.Rows[0]["Type"].ToString() == "23")//委外入库(委外收货单)条码 取单据备用字段
|
|
{
|
|
sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8 from ICSInventoryLotDetail A
|
|
LEFT JOIN ICSOutsourcingReceive B ON B.RCVCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
|
|
LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
|
|
LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
|
|
WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
|
|
}
|
|
else if (dt.Rows[0]["Type"].ToString() == "3")//成品入库(完工申报单)条码 取单据备用字段
|
|
{
|
|
sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8 from ICSInventoryLotDetail A
|
|
LEFT JOIN ICSMO B ON B.MOCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
|
|
LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
|
|
LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
|
|
WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
|
|
}
|
|
else if (dt.Rows[0]["Type"].ToString() == "5")//杂收条码 取单据备用字段
|
|
{
|
|
sql = @"select C.ProductDate AS ProductDate,D.BatchCode AS BatchCode,B.EATTRIBUTE3,B.EATTRIBUTE5,B.EATTRIBUTE6,B.EATTRIBUTE8 from ICSInventoryLotDetail A
|
|
LEFT JOIN ICSOtherIn B ON B.InCode=A.TransCode AND B.Sequence=A.TransSequence AND B.WorkPoint=A.WorkPoint
|
|
LEFT JOIN ICSInventoryLot C ON C.LotNo=A.LotNo AND C.WorkPoint=A.WorkPoint
|
|
LEFT JOIN ICSExtension D ON D.ID=C.ExtensionID
|
|
WHERE A.LotNo='" + LotNo + "' AND B.WorkPoint='" + WorkPoint + "'";
|
|
}
|
|
}
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
}
|
|
public DataTable GetSubGridJsonLLSQDByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn018', " + Quantity + ",1,2,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
|
|
string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit,
|
|
CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
|
|
CAST( a.Amount as DECIMAL(38,{0})) as Amount,
|
|
CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
|
|
CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
|
|
CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
|
|
,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
from ICSMOApplyNegDetail a
|
|
left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
|
|
left join 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 and a.Type='12'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
|
|
left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
|
|
WHERE d.Type='2' and d.Status='2'
|
|
and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
|
|
sql += " and a.WorkPoint='" + WorkPoint + "'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
//领料申请退料生成条码
|
|
public int SubmitFormLLSQTL(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
//string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
|
|
string Pre = "MA" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
|
|
LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
//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}','12','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
//}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
|
|
public int SubmitFormLLSQTLNew(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
var queryParam = keyValue.ToJObject();
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
|
|
decimal minPackQty = 1;
|
|
decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
|
|
|
|
JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
|
|
List<decimal> lotQtys = new List<decimal>();
|
|
foreach (var jLotno in jLotnos)
|
|
{
|
|
decimal qty = Convert.ToDecimal(jLotno["qty"]);
|
|
lotQtys.Add(qty);
|
|
|
|
}
|
|
int createPageCount = lotQtys.Count();
|
|
|
|
|
|
string Pre = "MA" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
|
|
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
for (int i = 0; i < lotQtys.Count(); i++)
|
|
{
|
|
|
|
decimal LOTQTY = lotQtys[i];
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
|
|
LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
//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}','12','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
//}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
//材料出库退料
|
|
public DataTable GetGridJsonCLCK(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @"
|
|
select a.ID,a.ApplyNegCode,a.Sequence,g.IssueCode as SCode,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
|
|
CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,
|
|
CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
|
|
from ICSMOApplyNegDetail a
|
|
left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
|
|
left join 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 and ee.type='13'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
left join ICSMOIssue g on a.SourceDetailID=g.IssueDetailID and a.WorkPoint=g.WorkPoint
|
|
WHERE d.Type='3' and d.Status='2' ";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.ApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["SCode"].ToString()))
|
|
{
|
|
sql += " and g.IssueCode like '%" + queryParam["SCode"].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(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
//材料出库退料
|
|
public DataTable GetSubGridJsonCLCKByCreate(string ApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn019', " + Quantity + ",1,2,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
string sql = @"select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,
|
|
CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
|
|
CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
|
|
CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
|
|
,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
from ICSMOApplyNegDetail a
|
|
left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
|
|
left join 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 and a.Type='13'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) c on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
WHERE d.Type='3' and d.Status='2'
|
|
and a.ApplyNegCode='" + ApplyNegCode + "' and a.Sequence='" + Sequence + "'";
|
|
sql += " and a.WorkPoint='" + WorkPoint + "'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
|
|
//材料出库退料生成条码
|
|
public int SubmitFormCLCKT(string ApplyNegCode, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "MD" + ApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
|
|
LotNo, ApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
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}','13','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, ApplyNegCode, 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
public DataTable GetGridJsonWWLLTL(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,
|
|
a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSOApplyNegDetail a
|
|
left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
|
|
left join 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 and ee.type='14'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
WHERE d.Type='2'";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].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(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 点击委外领料退料生成条码
|
|
/// </summary>
|
|
public DataTable GetSubGridJsonWWLLByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn009', " + Quantity + ",1,1,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
|
|
string sql = @"
|
|
select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount,
|
|
CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
|
|
CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
|
|
CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
|
|
,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
|
|
from ICSOApplyNegDetail a
|
|
left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
|
|
left join 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 and a.Type='14'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
|
|
left join ICSExtension e on a.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
|
|
WHERE d.Type='2'
|
|
and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
|
|
sql += " and a.WorkPoint='" + WorkPoint + "'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
//委外领料申请退料
|
|
public int SubmitFormWWLL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "OMA" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
|
|
LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
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}','14','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
//委外材料出库
|
|
public DataTable GetGridJsonWWCLCK(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @"select a.ID,a.OApplyNegCode,a.Sequence,a.SourceDetailID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as IssueNegQuantity ,
|
|
a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSOApplyNegDetail a
|
|
left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
|
|
left join 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 and ee.type='15'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
WHERE d.Type='3'";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.OApplyNegCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].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(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
//委外材料出库
|
|
public DataTable GetSubGridJsonWWCLByCreate(string OApplyNegCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn010', " + Quantity + ",1,1,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
string sql = @"
|
|
select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount,
|
|
CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
|
|
CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
|
|
CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
|
|
,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
from ICSOApplyNegDetail a
|
|
left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
|
|
left join 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 and a.Type='15'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) c on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
WHERE d.Type='3'
|
|
and a.OApplyNegCode='" + OApplyNegCode + "' and a.Sequence='" + Sequence + "'";
|
|
sql += " and a.WorkPoint='" + WorkPoint + "'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
//委外材料出库
|
|
public int SubmitFormWWCL(string OApplyNegCode, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
//string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
|
|
string Pre = "OMD" + OApplyNegCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
|
|
LotNo, OApplyNegCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
//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}','15','{3}','{4}', getdate(),'{5}','{9}'
|
|
,'{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSOApplyNegDetail where OApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, OApplyNegCode, 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
//}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
|
|
public DataTable SelectICSExtensionEnable()
|
|
{
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
string sql = @"select ColCode from ICSExtensionEnable
|
|
where Enable=0 and WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int)";
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
|
|
public DataTable GetComplete()
|
|
{
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification001' and WorkPoint='" + WorkPoints + "'";
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
|
|
public DataTable GetWWComplete()
|
|
{
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
string sql = @"select Enable from ICSConfiguration where Code='CompleteVerification004' and WorkPoint='" + WorkPoints + "'";
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
|
|
//返工工单
|
|
public DataTable GetGridJsonFGGD(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @"select a.ID,d.MOCode,d.Sequence+'~'+ a.Sequence as Sequence,a.PickID,a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
|
|
CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.IssueQuantity AS DECIMAL(38,{0})) as IssueQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,
|
|
CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSMOPick a
|
|
left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
|
|
left join 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 and ee.type='16'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].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(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
public DataTable GetSubGridJsonFGGDCreate(string FGGDMOCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
// string sql = @"
|
|
//select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( a.Quantity AS DECIMAL(18,{0})) as Quantity,CAST( a.Amount as DECIMAL(18,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(18,{0})) as CreatedQty,
|
|
//CAST( (a.Quantity-ISNULL(c.LOTQTY,0)) as DECIMAL(18,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(18,{0})) as EffectiveDays
|
|
//,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10
|
|
// from ICSMOPick a
|
|
// left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
|
|
|
|
// left join 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 and a.Type='16'
|
|
//where isnull(a.EATTRIBUTE1,'')=''
|
|
// group by b.TransCode,b.TransSequence
|
|
|
|
// ) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
|
|
// left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
|
|
|
|
// WHERE 1=1
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn015', " + Quantity + ",1,2,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
string sql = @"
|
|
select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount,
|
|
CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
|
|
CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,isnull(b.EffectiveEnable,0) as EffectiveEnable,
|
|
CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays , case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
|
|
,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
from ICSMOPick a
|
|
left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
|
|
|
|
left join 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 and a.Type='16'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
|
|
) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
|
|
left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
|
|
|
|
WHERE 1=1
|
|
and d.MOCode='" + FGGDMOCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'";
|
|
sql += " and a.WorkPoint='" + WorkPoint + "'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
//返工工单
|
|
public int SubmitFormFGGD(string FGGDMOCode, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
Sequence = Sequence.Replace("~", "");
|
|
string Pre = "FG" + FGGDMOCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, FGGDMOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
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}',a.InvCode,'{1}','{10}','{2}','{8}','16','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSMOPick a left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint where d.MOCode='{6}' and d.Sequence+'~'+a.Sequence='{7}' and a.WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FGGDMOCode, 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 锐腾获取单据信息
|
|
/// </summary>
|
|
/// <param name="FGGDMOCode"></param>
|
|
/// <param name="Sequence"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetSubGridJsonTransferByCreate(string TransferNO, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn025', " + Quantity + ",1,2,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
|
|
string sql = $@"SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit, CAST ( " + Num + @" AS DECIMAL ( 38,6 )) AS Amount, CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty, CAST ( ( " + Num + $@"- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty, isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable, CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays, e.ProjectCode, e.BatchCode, e.Version, e.Brand, e.cFree1, e.cFree2, e.cFree3, e.cFree4, e.cFree5, e.cFree6, e.cFree7, e.cFree8, e.cFree9, e.cFree10 ,
|
|
case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,8)) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,8)) end as MPQ
|
|
,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
FROM
|
|
ICSTransfer a
|
|
LEFT JOIN 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
|
|
AND a.Type= '19'
|
|
WHERE
|
|
isnull( a.EATTRIBUTE1, '' ) = ''
|
|
GROUP BY
|
|
b.TransCode,
|
|
b.TransSequence
|
|
) c ON a.TransferNO= c.TransCode
|
|
AND a.Sequence= c.TransSequence
|
|
LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID
|
|
AND a.WorkPoint= e.WorkPoint
|
|
WHERE
|
|
1 = 1
|
|
and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
|
|
and a.WorkPoint='{WorkPoint}'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
/// <summary>
|
|
/// 锐腾两步调入单生成条码
|
|
/// </summary>
|
|
/// <param name="TransferNO"></param>
|
|
/// <param name="Sequence"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public int SubmitFormTransfer(string TransferNO, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
Sequence = Sequence.Replace("~", "");
|
|
string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
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}',a.InvCode,'{1}','{10}','{2}','{8}','20','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSTransfer a where a.TransferNO='{6}' and a.Sequence='{7}' and a.WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
public object GetDecimalDigits()
|
|
{
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
try
|
|
{
|
|
string sql = string.Empty;
|
|
sql = @"select Figure from ICSConfiguration where Code='Figure001' and Enable='1' and WorkPoint='" + WorkPoint + "'";
|
|
object Figure = SqlHelper.ExecuteScalar(sql);
|
|
return Figure;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message.ToString());
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 生成条码导出
|
|
/// </summary>
|
|
/// <param name="ProductBrand"></param>
|
|
/// <param name="cCusName"></param>
|
|
/// <param name="DesignAddRate"></param>
|
|
/// <returns></returns>
|
|
public DataTable StatementExportAll(string Type, string ID)
|
|
{
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
string sql = string.Empty;
|
|
object Figure = GetDecimalDigits();
|
|
string TableCode = string.Empty;
|
|
#region sql语句
|
|
if (Type == "1") //生产退料
|
|
{
|
|
sql = @"select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvStd as 规格型号,b.InvUnit as 单位, CAST(a.Quantity AS DECIMAL(38,{0})) as 数量
|
|
,CAST(a.Amount AS DECIMAL(38,{0})) as 辅计量数量 , CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as 已退数量 ,a.MUSERName as 操作人,a.MTIME as 日期, CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量
|
|
,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSMOApplyNegDetail a
|
|
left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
|
|
left join 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 and ee.type='1'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where d.Type='1' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
|
|
TableCode = "ICSMOApplyNegDetail";
|
|
}
|
|
|
|
if (Type == "2") //委外退料
|
|
{
|
|
sql = @"select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvStd as 规格型号,b.InvUnit as 单位, CAST(a.Quantity AS DECIMAL(38,{0})) as 数量
|
|
,CAST(a.Amount AS DECIMAL(38,{0})) as 辅计量数量 , CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as 已退数量 ,a.MUSERName as 操作人,a.MTIME as 日期, CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量
|
|
,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSOApplyNegDetail a
|
|
left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
|
|
left join 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 and ee.type='2'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
WHERE d.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")";
|
|
TableCode = "ICSOApplyNegDetail";
|
|
}
|
|
|
|
if (Type == "3")//工单成品生成条码
|
|
{
|
|
sql = @"select a.MOCode as 工单号,a.Sequence as 工单行号 ,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvStd as 规格型号,b.InvUnit as 单位
|
|
,CAST( a.Quantity AS DECIMAL(38,{0})) as 数量,CAST( a.Amount as DECIMAL(38,{0})) as 辅计量数量
|
|
,a.MUSERName as 操作人 ,a.MTIME as 日期 ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量
|
|
,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
|
|
a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSMO a
|
|
left join 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 and ee.type='3'
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
WHERE 1=1 and a.MOStatus<>'3' and a.Quantity-ISNULL(c.LOTQTY,0)<>0 and a.ID in (" + ID.TrimEnd(',') + ")";
|
|
TableCode = "ICSMO";
|
|
}
|
|
|
|
if (Type == "4")//销售退货
|
|
{
|
|
sql = @"select a.SDNCode as 单据号,a.Sequence as 行号,a.SOCode as 销售订单号,a.SOSequence as 销售订单行号,a.CusCode as 客户代码 ,a.CusName as 客户名称 ,a.ArriveDate as 发货日期,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvStd as 规格型号,b.InvUnit as 单位,CAST(a.Quantity AS DECIMAL(38,{0})) as 数量
|
|
,cast(a.Amount as decimal(38,{0})) as 辅计量数量, CAST(a.SDNQuantity AS DECIMAL(38,{0})) as 已发数量 ,a.CreatePerson as 创建人,a.CreateDateTime as 创建时间,CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量
|
|
,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSSDN a
|
|
left join 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 and ee.type='4'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.Type='2'and a.ID in (" + ID.TrimEnd(',') + ")";
|
|
TableCode = "ICSSDN";
|
|
}
|
|
if (Type == "5")//其它入库生成条码
|
|
{
|
|
sql = @"select a.InCode as 单据号,a.Sequence as 行号,a.WHCode as 仓库编码,a.InvCode as 料品编码, b.InvName as 料品名称,b.InvStd as 料品型号 ,b.InvDesc as 料品描述,b.InvUnit as 料品单位,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as 数量,CAST(a.Amount AS DECIMAL(38,{0})) as 辅计量数量, CAST(a.InQuantity AS DECIMAL(38,{0})) as 已入数量,a.CreatePerson as 创建人,a.CreateDateTime as 创建时间,CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量
|
|
,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSOtherIn a
|
|
left join 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 and ee.type='5'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.Status='1' and ISNULL(a.EATTRIBUTE2,'1')='1' and a.ID in (" + ID.TrimEnd(',') + ")";
|
|
TableCode = "ICSOtherIn";
|
|
}
|
|
if (Type == "6")//归还单生成条码
|
|
{
|
|
sql = @" select a.ReturnCode as 单据号,a.Sequence as 行号,a.WHCode as 仓库编码,a.InvCode as 料品编码, b.InvName as 料品名称,b.InvStd as 料品型号,b.InvDesc as 料品描述,b.InvUnit as 料品单位
|
|
,CAST(a.Quantity AS DECIMAL(38,{0})) as 数量 ,CAST(a.Amount AS DECIMAL(38,{0})) as 辅计量数量, CAST(a.ReturnQuantity AS DECIMAL(38,{0})) as 已归还数量,a.CreatePerson as 创建人,a.CreateDateTime as 创建时间,CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量
|
|
,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSReturn a
|
|
left join 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 and ee.type='6'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
|
|
TableCode = "ICSReturn";
|
|
}
|
|
if (Type == "7")//*审核到货单生成条码
|
|
{
|
|
sql = @"select d.POCode as 采购订单号,d.Sequence as 采购订单行号,a.DNCode as 单据号,a.Sequence as 行号,a.VenCode as 供应商代码,e.VenName as 供应商名称,a.InvCode as 料品编码, b.InvName as 料品名称,b.InvStd as 料品型号,b.InvDesc as 料品描述,b.InvUnit as 料品单位,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as 数量 ,CAST(a.Amount AS DECIMAL(38,{0})) as 辅计量数量,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as 入库数量,a.Currency as 币种,a.CreatePerson as 创建人,a.CreateDateTime as 创建时间,CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量
|
|
,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSDeliveryNotice a
|
|
left join 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 and ee.type='7'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
|
|
left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.DNType='1' and a.Status='2' and a.ASNCode is null and a.ID in (" + ID.TrimEnd(',') + ")";
|
|
TableCode = "ICSDeliveryNotice";
|
|
}
|
|
if (Type == "8")//审核委外到货单生成条码
|
|
{
|
|
sql = @"select d.OOCode as 委外采购订单号,d.Sequence as 委外采购订单行号,a.ODNCode as 单据号,a.Sequence as 行号,a.VenCode as 供应商代码,e.VenName as 供应商名称,a.InvCode as 料品编码, b.InvName as ,b.InvStd as 料品型号,b.InvDesc as 料品描述,b.InvUnit as 料品单位,CAST(a.Quantity AS DECIMAL(38,{0})) as 数量 ,CAST(a.Amount AS DECIMAL(38,{0})) as 辅计量数量,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as 入库数量,a.Currency as 币种,a.CreatePerson as 创建人,a.CreateDateTime as 创建时间,
|
|
CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量
|
|
,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 ,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSODeliveryNotice a
|
|
left join 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 and ee.type='8'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
|
|
left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.ODNType='1' and a.Status='2' and a.OASNCode is null and a.ID in (" + ID.TrimEnd(',') + ")";
|
|
TableCode = "ICSODeliveryNotice";
|
|
}
|
|
if (Type == "9")//开立得成品入库单 生成条码
|
|
{
|
|
sql = @"select a.RCVCode as 单据号,a.Sequence as 行号,a.WHCode as 仓库号,a.InvCode as 料品编码, b.InvName as 料品名称,b.InvStd as 料品型号,b.InvDesc as 料品描述,b.InvUnit as 料品单位,CAST(a.Quantity AS DECIMAL(38,{0})) as 数量 ,
|
|
CAST(a.Amount AS DECIMAL(38,{0})) as 辅计量数量,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as 入库数量 ,a.CreatePerson as 创建人,a.CreateDateTime as 创建时间,CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量
|
|
,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSManufactureReceive a
|
|
left join 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 and ee.type='9'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.Status='1' and a.Type='1' and a.ID in (" + ID.TrimEnd(',') + ")";
|
|
TableCode = "ICSManufactureReceive";
|
|
}
|
|
if (Type == "10")//采购拒收单
|
|
{
|
|
sql = @"select a.DNCode as 拒收单号 ,a.Sequence as 拒收单行号 ,a.VenCode as 供应商代码,e.VenName as 供应商名称,a.InvCode as 料品编码, b.InvName as 料品名称,b.InvStd as 料品型号,b.InvDesc as 料品描述,b.InvUnit as 料品单位,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as 数量 ,CAST(a.Amount AS DECIMAL(38,{0})) as 辅计量数量,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as 入库数量,a.Currency as 币种,a.CreatePerson as 创建人,a.CreateDateTime as 创建时间,
|
|
CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量
|
|
,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSDeliveryNotice a
|
|
left join 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 and ee.type='10'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
--inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
|
|
left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.ID in (" + ID.TrimEnd(',') + ")";
|
|
TableCode = "ICSDeliveryNotice";
|
|
}
|
|
if (Type == "11") //委外拒收单生成条码
|
|
{
|
|
sql = @"select a.ODNCode as 委外拒收单号,a.Sequence as 委外拒收单行号,a.VenCode as 供应商代码,e.VenName as 供应商名称,a.InvCode as 料品编码, b.InvName as 料品名称,b.InvStd as 料品型号,b.InvDesc as 料品描述,b.InvUnit as 料品单位,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as 数量 ,CAST(a.Amount AS DECIMAL(38,{0})) as 辅计量数量,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as 入库数量,a.Currency as 币种,a.CreatePerson as 创建人,a.CreateDateTime as 创建时间,CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量
|
|
,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 ,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSODeliveryNotice a
|
|
left join 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 and ee.type='11'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
--inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
|
|
left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null and a.ID in (" + ID.TrimEnd(',') + ")";
|
|
TableCode = "ICSODeliveryNotice";
|
|
}
|
|
if (Type == "12")//领料申请退料生成条码
|
|
{
|
|
sql = @"select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品编码,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as 数量 ,CAST(a.Amount AS DECIMAL(38,{0})) as 辅计量数量,CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as 已退数量 ,a.MUSERName as 操作人,a.MTIME as 日期 ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量
|
|
,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSMOApplyNegDetail a
|
|
left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
|
|
left join 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 and ee.type='12'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
WHERE d.Type='2' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
|
|
TableCode = "ICSMOApplyNegDetail";
|
|
}
|
|
if (Type == "13")//材料出库退料
|
|
{
|
|
sql = @" select a.ApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as 数量 ,
|
|
CAST(a.Amount AS DECIMAL(38,{0})) as 辅计量数量,CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as 已退数量 ,a.MUSERName as 操作人,a.MTIME as 日期 ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量
|
|
,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
|
|
from ICSMOApplyNegDetail a
|
|
left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
|
|
left join 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 and ee.type='13'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
WHERE d.Type='3' and d.Status='2' and a.ID in (" + ID.TrimEnd(',') + ")";
|
|
TableCode = "ICSMOApplyNegDetail";
|
|
}
|
|
if (Type == "14")//委外领料申请退料
|
|
{
|
|
sql = @" select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as 数量 ,CAST(a.Amount AS DECIMAL(38,{0})) as 辅计量数量,CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as 已退数量 ,a.MUSERName as 操作人,a.MTIME as 日期 ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量
|
|
,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSOApplyNegDetail a
|
|
left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
|
|
left join 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 and ee.type='14'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
WHERE d.Type='2' and a.ID in (" + ID.TrimEnd(',') + ")";
|
|
TableCode = "ICSOApplyNegDetail";
|
|
}
|
|
if (Type == "15")//委外材料出库退料
|
|
{
|
|
sql = @" select a.OApplyNegCode as 退料单号,a.Sequence as 退料单行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as 数量 ,CAST(a.Amount AS DECIMAL(38,{0})) as 辅计量数量,CAST(a.IssueNegQuantity AS DECIMAL(38,{0})) as 已退数量 ,a.MUSERName as 操作人,a.MTIME as 日期 ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量
|
|
,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSOApplyNegDetail a
|
|
left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
|
|
left join 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 and ee.type='15'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
WHERE d.Type='3' and a.ID in (" + ID.TrimEnd(',') + ")";
|
|
TableCode = "ICSOApplyNegDetail";
|
|
}
|
|
if (Type == "16") //返工工单
|
|
{
|
|
sql = @"select d.MOCode as 工单号,d.Sequence+'~'+ a.Sequence as 工单子件行号,a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as 数量 ,
|
|
CAST(a.Amount AS DECIMAL(38,{0})) as 辅计量数量,CAST(a.IssueQuantity AS DECIMAL(38,{0})) as 已发数量 ,a.MUSERName as 操作人,a.MTIME as 日期 ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量
|
|
,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSMOPick a
|
|
left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
|
|
left join 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 and ee.type='16'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1' and a.ID in (" + ID.TrimEnd(',') + ")";
|
|
TableCode = "ICSMOPick";
|
|
}
|
|
if (Type == "17")//检验不合格条码重新生成
|
|
{
|
|
sql = @"select a.LotNo as 不合格条码, a.InvCode as 料品编码,b.InvName as 料品名称,b.InvDesc as 料品描述,b.InvStd as 规格型号,b.InvUnit as 单位,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as 数量 ,
|
|
CAST(c.Amount AS DECIMAL(38,{0})) as 辅计量数量,a.MUSERName,a.MUSERName as 操作人,a.MTIME as 日期 ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as 已生成数量
|
|
,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
|
|
a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSInspection a
|
|
left join dbo.ICSInventoryLot d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
|
|
left join (
|
|
select ee.LotNo,ee.EATTRIBUTE1,ee.Amount,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
|
|
left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='17'
|
|
group by ee.LotNo,ee.EATTRIBUTE1,ee.Amount,ee.WorkPoint
|
|
)c
|
|
on c.EATTRIBUTE1=d.LotNo and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on d.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.UnqualifiedQuantity>0 and a.Enable='1' and a.ID in (" + ID.TrimEnd(',') + ")";
|
|
TableCode = "ICSInspection";
|
|
}
|
|
#endregion
|
|
|
|
sql = sql + " and a.WorkPoint='{1}'";
|
|
sql = string.Format(sql, Figure, WorkPoint);
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
|
|
string sqls = @"SELECT ColCode,ColName,Enable
|
|
from ICSExtensionEnable where WorkPoint='" + WorkPoint + "'";
|
|
DataTable dtExtension = SqlHelper.GetDataTableBySql(sqls);
|
|
foreach (DataRow drE in dtExtension.Rows)
|
|
{
|
|
if (dt.Columns.Contains(drE["ColCode"].ToString()))
|
|
{
|
|
if (!Convert.ToBoolean(drE["Enable"]))
|
|
{
|
|
dt.Columns.Remove(drE["ColCode"].ToString());
|
|
}
|
|
else if (Convert.ToBoolean(drE["Enable"]))
|
|
{
|
|
dt.Columns[drE["ColCode"].ToString()].ColumnName = drE["ColName"].ToString();
|
|
}
|
|
|
|
}
|
|
}
|
|
DataTable dtColumn = ColumnEnable(TableCode);
|
|
foreach (DataRow drC in dtColumn.Rows)
|
|
{
|
|
if (dt.Columns.Contains(drC["ColumnCode"].ToString()))
|
|
{
|
|
if (!Convert.ToBoolean(drC["Enable"]))
|
|
{
|
|
dt.Columns.Remove(drC["ColumnCode"].ToString());
|
|
}
|
|
else if (Convert.ToBoolean(drC["Enable"]))
|
|
{
|
|
dt.Columns[drC["ColumnCode"].ToString()].ColumnName = drC["Name"].ToString();
|
|
}
|
|
}
|
|
}
|
|
return dt;
|
|
}
|
|
|
|
public DataTable ColumnEnable(string TableCode)
|
|
{
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
string sql = string.Empty;
|
|
sql = @"select ColumnCode,Name,Enable from ICSColumnEnable where TableCode='{0}' and WorkPoint='{1}'";
|
|
sql = string.Format(sql, TableCode, WorkPoint);
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public object GetQiSetNum(string keyValue)
|
|
{
|
|
decimal Num = 0;
|
|
string msg = "";
|
|
string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "Complete/Approve";
|
|
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;
|
|
}
|
|
else
|
|
{
|
|
if (MessAge == "U9")
|
|
{
|
|
decimal Date = Convert.ToDecimal(Obj["Data"].ToString());
|
|
int date = Convert.ToInt32(Date);
|
|
Num = date;
|
|
}
|
|
else
|
|
{
|
|
if (msg == "")
|
|
{
|
|
JArray res = (JArray)JsonConvert.DeserializeObject(Obj["Data"].ToString());
|
|
foreach (var item in res)
|
|
{
|
|
JObject jo = (JObject)item;
|
|
//var aa= jo["min_lotqty"].ToString();
|
|
Num = Convert.ToDecimal(jo["min_lotqty"].ToString());
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
var Header = new
|
|
{
|
|
msg = msg,
|
|
Num = Num,
|
|
};
|
|
return Header;
|
|
}
|
|
|
|
|
|
//接口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 GetLoadShow()
|
|
{
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
|
|
string sql = @"
|
|
select * from ICSExtensionEnable where WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int) ";
|
|
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
|
|
|
|
//不合格条码重新生成入库
|
|
public DataTable GetGridJsonBHGTM(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @"select a.ID,a.LotNo, a.InvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
|
|
CAST(a.UnqualifiedQuantity AS DECIMAL(38,{0})) as Quantity ,
|
|
CAST(c.Amount AS DECIMAL(38,{0})) as Amount,a.MUSERName,a.MTIME,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY,d.ExtensionID
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSInspection a
|
|
left join dbo.ICSInventoryLot d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
|
|
left join (
|
|
select ee.LotNo,ee.EATTRIBUTE1,ee.Amount,sum(isnull(ee.Quantity,0)) LOTQTY,ee.WorkPoint from ICSInventoryLot ee
|
|
left join ICSInventoryLotDetail mm on ee.LotNo=mm.LotNo and ee.type='17'
|
|
group by ee.LotNo,ee.EATTRIBUTE1,ee.Amount,ee.WorkPoint
|
|
)c
|
|
on c.EATTRIBUTE1=d.LotNo and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on d.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.UnqualifiedQuantity>0 and a.Enable='1'";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.LotNo like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].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.UnqualifiedQuantity-ISNULL(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.UnqualifiedQuantity-ISNULL(c.LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
public DataTable GetSubGridJsonBHGTM(string LotNo, string Type, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
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, CAST( a.Quantity AS DECIMAL(38,{0})) as Quantity ,a.MUSERName,a.MTIME
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,
|
|
case when isnull(d.ID,'')='' then '未入库' else '已入库' end as isStorage,
|
|
case when isnull(e.ID,'')='' then '未检验' else '已检验' end as isInspection,
|
|
case when g.InvIQC='1' then '是' else '否' end as isExemption
|
|
from ICSInventoryLot a
|
|
left join (select count(LotNo) LotNoCount,LotNo,WorkPoint from ICSWareHouseLotInfo
|
|
group by LotNo,WorkPoint)b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint
|
|
left join ICSInventoryLotDetail c on a.LotNo=c.LotNo and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
left join dbo.ICSWareHouseLotInfo d on a.LotNo=d.LotNo and a.WorkPoint=d.WorkPoint
|
|
left join ICSInspection e on a.LotNo=e.LotNo and e.Enable='1' and a.WorkPoint=e.WorkPoint
|
|
left join ICSInventory g on a.InvCode=g.InvCode and a.WorkPoint=g.WorkPoint
|
|
WHERE isnull(a.EATTRIBUTE1,'')='" + LotNo + "' and a.Type='" + Type + "' and a.WorkPoint in ('" + WorkPoint + "')";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public int SubmitFormBHGTM(string OldLotNo, string keyValue, string WorkPoint)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
// string Pre = "DN" + DNCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
string LotNo = GetNewLotNo(OldLotNo);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
select '{0}',TransCode,TransSequence,'{1}','{2}',getdate(),'{3}',TransID from ICSInventoryLotDetail where LotNo='{4}'",
|
|
LotNo, MUSER, MUSERNAME, WorkPoints, OldLotNo);
|
|
|
|
sql += string.Format(@"
|
|
insert into ICSInventoryLot
|
|
(ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint,Amount,EATTRIBUTE1)
|
|
select
|
|
newid(),'{0}',a.InvCode,a.ProductDate,a.ExpirationDate,b.UnqualifiedQuantity,a.ExtensionID,'17','{1}','{2}',getdate(),'{3}',a.Amount,'{4}'
|
|
from ICSInventoryLot a
|
|
inner join ICSInspection b on a.LotNo=b.LotNo and a.WorkPoint=b.WorkPoint and b.Enable='1'
|
|
where a.LotNo='{4}' and a.WorkPoint='{3}'",
|
|
LotNo, MUSER, MUSERNAME, WorkPoints, OldLotNo);
|
|
sql += "\r\n";
|
|
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
|
|
|
|
|
|
public string GetNewLotNo(string LotNO)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
//string sql = @"select max(LotNo) as NewLotNo from ICSInventoryLot where EATTRIBUTE1='{0}' ";
|
|
string sql = @"SELECT TOP 1 LotNO as NewLotNo FROM ICSInventoryLot WHERE EATTRIBUTE1='{0}'
|
|
ORDER BY CAST(SUBSTRING(LotNO, (LEN(LotNO)-CHARINDEX('-',REVERSE(LotNO))+1)+1,CHARINDEX('-',REVERSE(LotNO))-1) AS INT) DESC";
|
|
sql = string.Format(sql, LotNO);
|
|
dt = Repository().FindTableBySql(sql.ToString());
|
|
if (dt == null || dt.Rows.Count == 0 || dt.Rows[0]["NewLotNo"].ToString() == "")
|
|
{
|
|
return LotNO + "-1";
|
|
}
|
|
else
|
|
{
|
|
string newLotNO = dt.Rows[0]["NewLotNo"].ToString();
|
|
int COUNT = Convert.ToInt32(newLotNO.Substring(newLotNO.LastIndexOf('-') + 1)) + 1;
|
|
return LotNO + "-" + COUNT.ToString();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public DataTable SelGDLX()
|
|
{
|
|
string sql = string.Empty;
|
|
DataTable dt = null;
|
|
sql = string.Format(@"select distinct isnull(MOType,'') as Code ,isnull(MOType,'') as Name from dbo.ICSMO where isnull(MOType,'')<>''");
|
|
dt = SqlHelper.GetDataTableBySql(sql);
|
|
|
|
|
|
return dt;
|
|
}
|
|
|
|
|
|
|
|
|
|
public DataTable GetFreeEnble()
|
|
{
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
|
|
string sql = @"
|
|
select * from ICSExtensionEnable where WorkPoint='" + WorkPoints + "' order by cast(EATTRIBUTE1 as int) ";
|
|
|
|
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='{1}'";
|
|
sql = string.Format(sql, InvCode, WorkPoints);
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
|
|
|
|
//副产品
|
|
public DataTable GetGridJsonFCP(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @"select a.ID,d.MOCode,d.Sequence+'~'+ a.Sequence as Sequence,a.PickID,a.InvCode as ZInvCode,d.InvCode as MInvCode,b.InvName,b.InvDesc,b.InvStd,b.InvUnit,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity ,
|
|
CAST(a.Amount AS DECIMAL(38,{0})) as Amount,CAST(a.IssueQuantity AS DECIMAL(38,{0})) as IssueQuantity ,a.ExtensionID,a.MUSERName,a.MTIME ,CAST(c.LOTQTY AS DECIMAL(38,{0})) as LOTQTY
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSMOPick a
|
|
left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
|
|
left join 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 and ee.type='18'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.EATTRIBUTE1='1' ";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and d.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].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(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 锐腾调入单生成条码
|
|
/// </summary>
|
|
/// <param name="queryJson"></param>
|
|
/// <param name="jqgridparam"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetGridJsonTransfer(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @" select * from (SELECT a.ID,a.TransferNO,a.Sequence,a.InvCode,A.Quantity,A.Amount,Isnull(a.TransferQuantity,0) TransferQuantity,b.InvName,b.InvStd,b.InvUnit,sum(Isnull(c.Quantity,0)) as LOTQTY,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4 ,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
FROM ICSTransfer a
|
|
LEFT JOIN ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
|
|
LEFT JOIN (SELECT c.TransCode,c.WorkPoint,c.TransSequence,sum(d.Quantity) Quantity FROM ICSInventoryLotDetail c
|
|
LEFT JOIN ICSInventoryLot d ON c.LotNo=d.LotNo AND d.WorkPoint=c.WorkPoint
|
|
WHERE ISNULL(d.EATTRIBUTE1, '')=''
|
|
GROUP BY c.TransCode,c.WorkPoint,c.TransSequence ) c ON a.TransferNO=c.TransCode AND c.WorkPoint=a.WorkPoint AND a.Sequence=c.TransSequence
|
|
left JOIN ICSExtension f ON f.Id=a.ExtensionID AND f.WorkPoint=a.WorkPoint
|
|
WHERE a.Type='2'
|
|
AND Isnull(a.Status,'')<>3
|
|
";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
|
|
}
|
|
|
|
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
sql += @" GROUP BY a.Id,a.TransferNO,a.Sequence,a.InvCode,A.Quantity,A.Amount,a.TransferQuantity,b.InvName,b.InvStd,b.InvUnit,f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,a.EATTRIBUTE9,a.EATTRIBUTE10 ) t
|
|
where 1=1 ";
|
|
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 Quantity-ISNULL(LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 采购入库生成条码
|
|
/// </summary>
|
|
/// <param name="queryJson"></param>
|
|
/// <param name="jqgridparam"></param>
|
|
/// <returns></returns>
|
|
///
|
|
public DataTable GetGridJsonPurchaseReceive(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @"select distinct a.ID,a.RCVCode,a.Sequence,a.WHCode,e.WarehouseName as WHName,a.InvCode, b.InvName,b.InvStd,b.InvUnit,d.POCode,d.Sequence as POSequence,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
|
|
,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
|
|
,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity
|
|
,c.LOTQTY
|
|
,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10,
|
|
isnull(b.EATTRIBUTE2,'') as MPQ
|
|
from ICSPurchaseReceive a
|
|
left join 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 and ee.type='22'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSPurchaseOrder d on a.SourceCode = d.POCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint
|
|
left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.Type='1' ";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
|
|
{
|
|
sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
|
|
{
|
|
sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
|
|
{
|
|
sql += " and a.WHCode like '%" + queryParam["WHCode"].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(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
|
|
// public DataTable GetGridJsonPurchaseReceive(string queryJson, ref Pagination jqgridparam)
|
|
// {
|
|
// DataTable dt = new DataTable();
|
|
// var queryParam = queryJson.ToJObject();
|
|
// List<DbParameter> parameter = new List<DbParameter>();
|
|
// object Figure = GetDecimalDigits();
|
|
// #region [SQL]
|
|
// string sql = @" select * from (select distinct a.ID,a.RCVCode,a.Sequence,a.WHCode,e.WarehouseName as WHName,a.InvCode, b.InvName,b.InvStd,b.InvUnit,d.POCode,d.Sequence as POSequence,
|
|
// CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
|
|
// ,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
|
|
// ,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity
|
|
// ,c.LOTQTY
|
|
// ,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
|
|
// ,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
// ,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
// a.EATTRIBUTE9,a.EATTRIBUTE10,
|
|
// isnull(b.EATTRIBUTE2,'') as MPQ
|
|
// from ICSPurchaseReceive a
|
|
// left join 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 and ee.type='22'
|
|
// where isnull(ee.EATTRIBUTE1,'')=''
|
|
// group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
// ) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
// left join ICSPurchaseOrder d on a.SourceCode = d.POCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint
|
|
// left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
|
|
// left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
// where a.Type='1' ";
|
|
// sql = string.Format(sql, Figure);
|
|
|
|
// #endregion
|
|
|
|
// if (!string.IsNullOrWhiteSpace(queryJson))
|
|
// {
|
|
// if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
// {
|
|
// sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
// }
|
|
// if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
// {
|
|
// sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
// }
|
|
// if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
// {
|
|
// sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
// }
|
|
// if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
// {
|
|
// sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
|
|
// }
|
|
|
|
|
|
// }
|
|
// if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
// {
|
|
// sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
// }
|
|
// if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
// {
|
|
// sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
// }
|
|
// sql += @" GROUP BY a.Id,a.RCVCode,a.Sequence,a.InvCode,A.Quantity,A.Amount,a.RCVQuantity,b.InvName,e.WarehouseName,a.WHCode,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,d.POCode,d.Sequence,c.LOTQTY,
|
|
//f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,a.EATTRIBUTE,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,a.EATTRIBUTE9,a.EATTRIBUTE10 ) t
|
|
// where 1=1 ";
|
|
// 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 Quantity-ISNULL(LOTQTY,0)=0";
|
|
// }
|
|
// else
|
|
// {
|
|
// sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
|
|
// }
|
|
// }
|
|
// return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
// }
|
|
/// <summary>
|
|
/// 采购入库获取单据信息
|
|
/// </summary>
|
|
/// <param name="FGGDMOCode"></param>
|
|
/// <param name="Sequence"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetSubGridJsonPurchaseReceiveByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn001', " + Quantity + ",1,1,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
string sql = $@"SELECT a.InvCode, " + Num + @" as Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
|
|
, CAST ( a.Amount AS DECIMAL ( 38,6 )) AS Amount
|
|
, CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
|
|
, CAST ( ( " + Num + @"- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
|
|
, isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
|
|
, CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays
|
|
, case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,6)) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,6)) end as MPQ
|
|
, e.ProjectCode, e.BatchCode, e.Version, e.Brand, e.cFree1, e.cFree2, e.cFree3, e.cFree4, e.cFree5, e.cFree6, e.cFree7, e.cFree8, e.cFree9, e.cFree10 ,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
FROM ICSPurchaseReceive a
|
|
LEFT JOIN 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 AND a.Type= '22'
|
|
WHERE isnull( a.EATTRIBUTE1, '' ) = ''
|
|
GROUP BY
|
|
b.TransCode,
|
|
b.TransSequence
|
|
) c ON a.RCVCode = c.TransCode AND a.Sequence = c.TransSequence
|
|
LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
|
|
WHERE 1 = 1
|
|
and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoint + "'";
|
|
// sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
/// <summary>
|
|
/// 采购入库单生成条码 保存
|
|
/// </summary>
|
|
/// <param name="RCVCode"></param>
|
|
/// <param name="Sequence"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public int SubmitFormCGRKDSC(string RCVCode, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
|
|
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);
|
|
bool flag = true;
|
|
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
|
|
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}','22','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 采购入库单生成条码 保存(新)
|
|
/// </summary>
|
|
/// <param name="RCVCode"></param>
|
|
/// <param name="Sequence"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public int SubmitFormCGRKDSCNew(string RCVCode, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
var queryParam = keyValue.ToJObject();
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
|
|
decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
|
|
decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
|
|
|
|
JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
|
|
List<decimal> lotQtys = new List<decimal>();
|
|
foreach (var jLotno in jLotnos)
|
|
{
|
|
decimal qty = Convert.ToDecimal(jLotno["qty"]);
|
|
lotQtys.Add(qty);
|
|
|
|
}
|
|
int createPageCount = lotQtys.Count();
|
|
|
|
|
|
string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
//if (i + 1 == createPageCount)
|
|
//{
|
|
// if (minPackQty * createPageCount > thisCreateQty)
|
|
// {
|
|
// LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
// }
|
|
//}
|
|
decimal LOTQTY = lotQtys[i];
|
|
|
|
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);
|
|
bool flag = true;
|
|
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
|
|
try
|
|
{
|
|
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}','22','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * 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";
|
|
|
|
}
|
|
catch (Exception EX)
|
|
{
|
|
throw EX;
|
|
}
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 委外采购入库生成条码
|
|
/// </summary>
|
|
/// <param name="queryJson"></param>
|
|
/// <param name="jqgridparam"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetGridJsonOutPurchaseReceive(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @" select * from (select distinct a.ID,a.RCVCode,a.Sequence,a.WHCode,e.WarehouseName as WHName,a.InvCode, b.InvName,b.InvStd,b.InvUnit,d.POCode,d.Sequence as POSequence,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
|
|
,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
|
|
,CAST(a.RCVQuantity AS DECIMAL(38,{0})) as RCVQuantity
|
|
,c.LOTQTY
|
|
,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSOutsourcingReceive a
|
|
left join 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 and ee.type='23'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSPurchaseOrder d on a.SourceCode = d.POCode and a.SourceSequence = d.Sequence and a.WorkPoint=d.WorkPoint
|
|
left join ICSWarehouse e on a.WHCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.Type='1' ";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.RCVCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
|
|
{
|
|
sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
|
|
{
|
|
sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
|
|
{
|
|
sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
|
|
}
|
|
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
sql += @" GROUP BY a.Id,a.RCVCode,a.Sequence,a.InvCode,A.Quantity,A.Amount,a.RCVQuantity,b.InvName,e.WarehouseName,a.WHCode,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,d.POCode,d.Sequence,c.LOTQTY,
|
|
f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,a.EATTRIBUTE,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,a.EATTRIBUTE9,a.EATTRIBUTE10 ) t
|
|
where 1=1 ";
|
|
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 Quantity-ISNULL(LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
/// <summary>
|
|
/// 委外采购入库获取单据信息
|
|
/// </summary>
|
|
/// <param name="FGGDMOCode"></param>
|
|
/// <param name="Sequence"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetSubGridJsonOutPurchaseReceiveByCreate(string RCVCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn001', " + Quantity + ",1,1,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
string sql = $@"SELECT a.InvCode, " + Num + @" as Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
|
|
, CAST ( a.Amount AS DECIMAL ( 38,6 )) AS Amount
|
|
, CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
|
|
, CAST ( ( " + Num + @"- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
|
|
, isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
|
|
, CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays, case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
|
|
, e.ProjectCode, e.BatchCode, e.Version, e.Brand, e.cFree1, e.cFree2, e.cFree3, e.cFree4, e.cFree5, e.cFree6, e.cFree7, e.cFree8, e.cFree9, e.cFree10 ,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
FROM ICSOutsourcingReceive a
|
|
LEFT JOIN 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 AND a.Type= '23'
|
|
WHERE isnull( a.EATTRIBUTE1, '' ) = ''
|
|
GROUP BY
|
|
b.TransCode,
|
|
b.TransSequence
|
|
) c ON a.RCVCode = c.TransCode AND a.Sequence = c.TransSequence
|
|
LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
|
|
WHERE 1 = 1
|
|
and a.RCVCode='" + RCVCode + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoint + "'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
/// <summary>
|
|
/// 委外采购入库单生成条码 保存
|
|
/// </summary>
|
|
/// <param name="RCVCode"></param>
|
|
/// <param name="Sequence"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public int SubmitFormWWCGRKDSC(string RCVCode, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
|
|
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);
|
|
bool flag = true;
|
|
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
|
|
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}','23','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSOutsourcingReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
/// <summary>
|
|
/// 委外采购入库单生成条码 保存(新)
|
|
/// </summary>
|
|
/// <param name="RCVCode"></param>
|
|
/// <param name="Sequence"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public int SubmitFormWWCGRKDSCNew(string RCVCode, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
var queryParam = keyValue.ToJObject();
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
|
|
decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
|
|
decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
|
|
|
|
JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
|
|
List<decimal> lotQtys = new List<decimal>();
|
|
foreach (var jLotno in jLotnos)
|
|
{
|
|
decimal qty = Convert.ToDecimal(jLotno["qty"]);
|
|
lotQtys.Add(qty);
|
|
|
|
}
|
|
int createPageCount = lotQtys.Count();
|
|
|
|
|
|
string Pre = "KCP" + RCVCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
//if (i + 1 == createPageCount)
|
|
//{
|
|
// if (minPackQty * createPageCount > thisCreateQty)
|
|
// {
|
|
// LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
// }
|
|
//}
|
|
decimal LOTQTY = lotQtys[i];
|
|
|
|
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);
|
|
bool flag = true;
|
|
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, RCVCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
|
|
try
|
|
{
|
|
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}','23','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSOutsourcingReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, RCVCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) / 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";
|
|
|
|
}
|
|
catch (Exception EX)
|
|
{
|
|
throw EX;
|
|
}
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
/// <summary>
|
|
/// 铭锋 退货调拨申请单生成条码
|
|
/// </summary>
|
|
/// <param name="queryJson"></param>
|
|
/// <param name="jqgridparam"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetGridJsonTransferApplication(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence
|
|
,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName,
|
|
a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName,
|
|
a.InvCode, b.InvName,b.InvStd,b.InvUnit,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
|
|
,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
|
|
,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity
|
|
,c.LOTQTY
|
|
,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSTransferApplication a
|
|
left join 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 and ee.type='202'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint
|
|
left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint
|
|
left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint
|
|
where 1 = 1";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
|
|
}
|
|
|
|
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
//if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
//{
|
|
// sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
//}
|
|
sql += @"GROUP BY a.Id,a.TransferNO,a.Sequence,a.InvCode,A.Quantity,A.Amount,a.TransferQuantity,b.InvName,e.WarehouseName,a.FromWarehouseCode,e.WarehouseName,a.FromLocationCode,h.LocationName,
|
|
a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.LOTQTY,
|
|
f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,a.EATTRIBUTE9,a.EATTRIBUTE10 ) t
|
|
where 1=1 ";
|
|
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 Quantity-ISNULL(LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
/// <summary>
|
|
/// 铭锋 退货调拨申请单获取单据信息
|
|
/// </summary>
|
|
/// <param name="TransferNO"></param>
|
|
/// <param name="Sequence"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetSubGridJsonTransferApplicationByCreate(string TransferNO, string Sequence, string WorkPoint)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
|
|
string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
|
|
, CAST ( xx.Quantity AS DECIMAL ( 38,6 )) AS Amount
|
|
, CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
|
|
, CAST ( ( xx.Quantity- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
|
|
, isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
|
|
, CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
|
|
, e.ProjectCode, e.BatchCode, e.Version, e.Brand, e.cFree1, e.cFree2, e.cFree3, e.cFree4, e.cFree5, e.cFree6, e.cFree7, e.cFree8, e.cFree9, e.cFree10 ,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
FROM ICSTransferApplication a
|
|
LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
|
|
LEFT JOIN ( SELECT a.Id, a.InvCode, a.Sequence, a.WorkPoint,CASE WHEN b.OverInType= '1' THEN a.Quantity* ( 1+b.OverInValue ) WHEN b.OverInType= '2' THEN a.Quantity+ b.OverInValue WHEN b.OverInType= '3' THEN 999999 ELSE a.Quantity
|
|
END AS Quantity
|
|
FROM ICSTransferApplication a
|
|
LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode
|
|
AND a.WorkPoint= b.WorkPoint
|
|
) xx ON xx.Id= a.Id
|
|
LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
|
|
FROM ICSInventoryLot a
|
|
LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '202'
|
|
WHERE isnull( a.EATTRIBUTE1, '' ) = ''
|
|
GROUP BY
|
|
b.TransCode,
|
|
b.TransSequence
|
|
) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence
|
|
LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
|
|
WHERE 1 = 1
|
|
and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
|
|
and a.WorkPoint='{WorkPoint}'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
/// <summary>
|
|
/// 铭锋 退货调拨申请单生成条码 保存
|
|
/// </summary>
|
|
/// <param name="TransferNO"></param>
|
|
/// <param name="Sequence"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public int SubmitFormTransferApplicatioSave(string TransferNO, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "KCP" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
|
|
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);
|
|
bool flag = true;
|
|
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
|
|
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}','202','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
|
|
public int SubmitFormTransferApplicatioSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
var queryParam = keyValue.ToJObject();
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
//decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
|
|
decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
|
|
JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
|
|
List<decimal> lotQtys = new List<decimal>();
|
|
foreach (var jLotno in jLotnos)
|
|
{
|
|
decimal qty = Convert.ToDecimal(jLotno["qty"]);
|
|
lotQtys.Add(qty);
|
|
|
|
}
|
|
int createPageCount = lotQtys.Count();
|
|
string Pre = "KCP" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
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 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
var LOTQTY = lotQtys[i];
|
|
|
|
|
|
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);
|
|
bool flag = true;
|
|
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
|
|
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}','202','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
public DataTable GetSubGridJsonFCPCreate(string FCPMOCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
|
|
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn014', " + Quantity + ",1,2,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
string sql = @"
|
|
select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,{0})) as Quantity,CAST( a.Amount as DECIMAL(38,{0})) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,{0})) as CreatedQty,
|
|
CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) as thisCreateQty,
|
|
isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays, case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
|
|
,e.ProjectCode,e.BatchCode,e.Version,e.Brand,e.cFree1,e.cFree2,e.cFree3,e.cFree4,e.cFree5,e.cFree6,e.cFree7,e.cFree8,e.cFree9,e.cFree10,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
from ICSMOPick a
|
|
left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
|
|
|
|
left join 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 and a.Type='18'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) c on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence
|
|
left join ICSExtension e on d.ExtensionID=e.ID and a.WorkPoint=e.WorkPoint
|
|
|
|
WHERE 1=1
|
|
and d.MOCode='" + FCPMOCode + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "'";
|
|
sql += " and a.WorkPoint='" + WorkPoint + "'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
//副产品
|
|
public int SubmitFormFCP(string FCPMOCode, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
string Sequences = Sequence.Replace("~", "");
|
|
string Pre = "FCP" + FCPMOCode + (Convert.ToInt32(Sequences)).ToString("D4");
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string sql = string.Empty;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
|
|
LotNo, FCPMOCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
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}',a.InvCode,'{1}','{10}','{2}','{8}','18','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSMOPick a left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3' where d.MOCode='{6}' and d.Sequence+'~'+a.Sequence='{7}' and a.WorkPoint='{5}' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, FCPMOCode, 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
|
|
|
|
public bool GetGeneratedNum(string Code, string Sequence, string Type, string thisCreateQty, string InvCode, string Quantitys)
|
|
{
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
DataTable dt = new DataTable();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = string.Empty;
|
|
bool flag = true;
|
|
if (Type == "1")
|
|
{
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn017', " + Quantitys + ",1,2,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
|
|
from ICSMOApplyNegDetail a
|
|
left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
|
|
left join 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 and ee.type='1'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where d.Type='1' and d.Status='2'
|
|
and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
}
|
|
if (Type == "2")
|
|
{
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn008', " + Quantitys + ",1,2,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
from ICSOApplyNegDetail a
|
|
left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
|
|
left join 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 and ee.type='2'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
WHERE d.Type='1' and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
}
|
|
if (Type == "3")
|
|
{
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn011', " + Quantitys + ",1,2,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
from ICSMO a
|
|
left join 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 and ee.type='3'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.MOCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
WHERE 1=1 and a.MOStatus<>'3' and a.MOCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
}
|
|
if (Type == "4")
|
|
{
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn020', " + Quantitys + ",1,3,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
|
|
sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
from ICSSDN a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
|
|
left join(select a.SDNCode,a.Sequence,a.WorkPoint,
|
|
case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
|
|
from ICSSDN a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.SDNCode=a.SDNCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.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 and ee.type='4'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.Type='2'
|
|
and a.SDNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
|
|
}
|
|
if (Type == "5")
|
|
{
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn021', " + Quantitys + ",1,4,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
from ICSOtherIn a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
|
|
left join(select a.InCode,a.Sequence,a.WorkPoint,
|
|
case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
|
|
from ICSOtherIn a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.InCode=a.InCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.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 and ee.type='5'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.InCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.Status='1' and ISNULL(a.EATTRIBUTE2,'1')='1'
|
|
and a.InCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
|
|
}
|
|
if (Type == "6")
|
|
{
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn023', " + Quantitys + ",1,4,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
from ICSReturn a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
|
|
left join(select a.ReturnCode,a.Sequence,a.WorkPoint,
|
|
case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
|
|
from ICSReturn a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.ReturnCode=a.ReturnCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.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 and ee.type='6'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.ReturnCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.Status='2'
|
|
and a.ReturnCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
|
|
}
|
|
if (Type == "7")
|
|
{
|
|
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn002', " + Quantitys + ",1,1,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
//锐腾添加退补逻辑
|
|
sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
from ICSDeliveryNotice a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
|
|
left join(select a.DNCode,a.Sequence,a.WorkPoint,
|
|
" + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity
|
|
from ICSDeliveryNotice a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
|
|
left join ICSDeliveryNotice f ON a.DNDetailID=Isnull(f.EATTRIBUTE8,'') and a.WorkPoint=f.WorkPoint and f.DNType='2' and f.EATTRIBUTE7='退补'
|
|
left join (SELECT PODetailID,WorkPoint,sum(Quantity) Quantity FROM ICSDeliveryNotice WHERE DNType='3' GROUP BY PODetailID,WorkPoint )j ON a.DNDetailID=j.PODetailID and a.WorkPoint=j.WorkPoint) xx on xx.DNCode=a.DNCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.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 and ee.type='7'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
|
|
left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.DNType='1' and a.Status='2' and a.ASNCode is null
|
|
and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
|
|
}
|
|
if (Type == "8")
|
|
{
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn005', " + Quantitys + ",1,1,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
//锐腾添加退补逻辑
|
|
sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
from ICSODeliveryNotice a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
|
|
left join(select a.ODNCode,a.Sequence,a.WorkPoint, " + Num + @"+ISNULL(f.Quantity,0)+ISNULL(j.Quantity,0) as Quantity
|
|
from ICSODeliveryNotice a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
|
|
left join ICSODeliveryNotice f ON a.ODNDetailID=Isnull(f.EATTRIBUTE4,'') and a.WorkPoint=f.WorkPoint and f.ODNType='2' and f.EATTRIBUTE3='退补'
|
|
left join (SELECT OODetailID,WorkPoint,sum(Quantity) Quantity FROM ICSODeliveryNotice WHERE ODNType='3' GROUP BY OODetailID,WorkPoint )j ON a.ODNDetailID=j.OODetailID and a.WorkPoint=j.WorkPoint) xx on xx.ODNCode=a.ODNCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.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 and ee.type='8'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
|
|
left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.ODNType='1' and a.Status='2' and a.OASNCode is null
|
|
and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
|
|
}
|
|
if (Type == "9")
|
|
{
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn013', " + Quantitys + ",1,2,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
from ICSManufactureReceive a
|
|
left join 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 and ee.type='9'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.Status='1' and a.Type='1'
|
|
and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
|
|
}
|
|
if (Type == "10")
|
|
{
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn003', " + Quantitys + ",1,1,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
|
|
from ICSDeliveryNotice a
|
|
left join 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 and ee.type='10'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.DNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
--inner join ICSPurchaseOrder d on a.POID=d.POID and a.PODetailID=d.PODetailID and a.WorkPoint=d.WorkPoint
|
|
left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.DNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
|
|
and a.DNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
|
|
}
|
|
if (Type == "11")
|
|
{
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn006', " + Quantitys + ",1,1,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
|
|
sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
from ICSODeliveryNotice a
|
|
left join 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 and ee.type='11'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.ODNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
--inner join ICSOutsourcingOrder d on a.OOID=d.OOID and a.OODetailID=d.OODetailID and a.WorkPoint=d.WorkPoint
|
|
left join ICSVendor e on a.VenCode=e.VenCode and a.WorkPoint=e.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.ODNType='3' and a.Status='2' and a.EATTRIBUTE1 is NOT null
|
|
and a.ODNCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
|
|
}
|
|
if (Type == "12")
|
|
{
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn018', " + Quantitys + ",1,2,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
from ICSMOApplyNegDetail a
|
|
left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
|
|
left join 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 and ee.type='12'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
WHERE d.Type='2' and d.Status='2'
|
|
and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
|
|
}
|
|
if (Type == "13")
|
|
{
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn019', " + Quantitys + ",1,2,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
from ICSMOApplyNegDetail a
|
|
left join ICSMOApplyNeg d on a.ApplyNegCode=d.ApplyNegCode and a.WorkPoint=d.WorkPoint
|
|
left join 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 and ee.type='13'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.ApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
WHERE d.Type='3' and d.Status='2'
|
|
and a.ApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
|
|
}
|
|
if (Type == "14")
|
|
{
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn009', " + Quantitys + ",1,1,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
from ICSOApplyNegDetail a
|
|
left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
|
|
left join 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 and ee.type='14'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
WHERE d.Type='2'
|
|
and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
|
|
}
|
|
if (Type == "15")
|
|
{
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn010', " + Quantitys + ",1,1,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
from ICSOApplyNegDetail a
|
|
left join ICSOApplyNeg d on a.OApplyNegCode=d.OApplyNegCode AND a.WorkPoint=d.WorkPoint
|
|
left join 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 and ee.type='15'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.OApplyNegCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
WHERE d.Type='3'
|
|
and a.OApplyNegCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
|
|
}
|
|
if (Type == "16")
|
|
{
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn015', " + Quantitys + ",1,2,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
from ICSMOPick a
|
|
left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
|
|
left join 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 and ee.type='16'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.EATTRIBUTE1='1' and d.EATTRIBUTE1='1'
|
|
and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
|
|
}
|
|
if (Type == "18")
|
|
{
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn014', " + Quantitys + ",1,2,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
from ICSMOPick a
|
|
left join ICSMO d on a.MODetailID=d.MODetailID and a.WorkPoint=d.WorkPoint and d.MOStatus<>'3'
|
|
left join 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 and ee.type='18'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on d.MOCode=c.TransCode and d.Sequence+'~'+a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.EATTRIBUTE1='1'
|
|
and d.MOCode='" + Code + "' and d.Sequence+'~'+a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
|
|
}
|
|
if (Type == "22")
|
|
{
|
|
sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
from ICSPurchaseReceive a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
|
|
left join(select a.RCVCode,a.Sequence,a.WorkPoint,
|
|
case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
|
|
from ICSPurchaseReceive a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.RCVCode=a.RCVCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.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 and ee.type='22'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.Status='1'
|
|
and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
|
|
}
|
|
if (Type == "23")
|
|
{
|
|
sql = @" select distinct CAST(isnull(xx.Quantity,0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
from ICSOutsourcingReceive a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
|
|
left join(select a.RCVCode,a.Sequence,a.WorkPoint,
|
|
case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
|
|
from ICSOutsourcingReceive a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint) xx on xx.RCVCode=a.RCVCode and xx.Sequence=a.Sequence and xx.WorkPoint=a.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 and ee.type='23'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.RCVCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.Status='1'
|
|
and a.RCVCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
|
|
}
|
|
if (Type == "24")
|
|
{
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoints + "','OverIn026', " + Quantitys + ",1,3,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
sql = @" select distinct CAST(isnull( " + Num + @",0) AS DECIMAL(38,8)) as Quantity ,
|
|
CAST(isnull(c.LOTQTY,0) AS DECIMAL(38,8)) as LOTQTY
|
|
from ICSSSD a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
|
|
left join(select a.SDNCode,a.SDNSequence Sequence,a.WorkPoint,
|
|
case when b.OverInType='1' then a.Quantity*(1+b.OverInValue) when b.OverInType='2' then a.Quantity+b.OverInValue when b.OverInType='3' then 999999 else a.Quantity end as Quantity
|
|
from ICSSSD a
|
|
left join ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint WHERE a.Type='2') xx on xx.SDNCode=a.SDNCode and xx.Sequence=a.SDNSequence and xx.WorkPoint=a.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 and ee.type='5'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
)c
|
|
on a.SDNCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.Status='1' and a.Type='2'
|
|
and a.SSDCode='" + Code + "' and a.Sequence='" + Sequence + "' and a.WorkPoint='" + WorkPoints + "'";
|
|
|
|
}
|
|
dt = SqlHelper.GetDataTableBySql(sql);
|
|
decimal Quantity = Convert.ToDecimal(dt.Rows[0]["Quantity"].ToString());
|
|
decimal LOTQTY = Convert.ToDecimal(dt.Rows[0]["LOTQTY"].ToString());
|
|
decimal thisQty = Convert.ToDecimal(thisCreateQty);
|
|
if (LOTQTY + thisQty > Quantity)
|
|
{
|
|
flag = false;
|
|
}
|
|
|
|
return flag;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 开立成品入库单(一键生成)
|
|
/// </summary>
|
|
public int SubmitFormKLCPRKALL(string keyValue)
|
|
{
|
|
string sql = string.Empty;
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
|
|
foreach (var item in res)
|
|
{
|
|
JObject jo = (JObject)item;
|
|
int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
|
|
decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
|
|
decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "KCP" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
|
|
string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
|
|
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, WorkPoint);
|
|
object ExtensionID = SqlHelper.ExecuteScalar(sqls);
|
|
bool flag = true;
|
|
|
|
foreach (var items in ExtensionIDList)
|
|
{
|
|
if (items == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoint);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].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}','9','{3}','{4}', getdate(),'{5}','{9}'
|
|
from ICSManufactureReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
|
|
sql += "\r\n";
|
|
|
|
}
|
|
}
|
|
|
|
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 SubmitFormSHDHALL(string keyValue)
|
|
{
|
|
string sql = string.Empty;
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
|
|
|
|
foreach (var resItem in res)
|
|
{
|
|
JObject jo = (JObject)resItem;
|
|
|
|
int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
|
|
decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
|
|
decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "DN" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
|
|
string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
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, WorkPoint);
|
|
object ExtensionID = SqlHelper.ExecuteScalar(sqls);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoint);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
|
|
LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].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}','7','{3}','{4}', getdate(),'{5}','{9}'
|
|
from ICSDeliveryNotice where DNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
|
|
sql += "\r\n";
|
|
|
|
|
|
}
|
|
}
|
|
|
|
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 SubmitFormWWSHDHALL(string keyValue)
|
|
{
|
|
string sql = string.Empty;
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
|
|
|
|
foreach (var resItem in res)
|
|
{
|
|
JObject jo = (JObject)resItem;
|
|
|
|
int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
|
|
decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
|
|
decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "ODN" + jo["Code"] + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
|
|
string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
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, WorkPoint);
|
|
object ExtensionID = SqlHelper.ExecuteScalar(sqls);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoint);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, jo["Code"], jo["Sequence"], MUSER, MUSERNAME, WorkPoint, jo["ID"]);
|
|
|
|
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}','8','{3}','{4}', getdate(),'{5}','{9}'
|
|
from ICSODeliveryNotice where ODNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"], jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
|
|
sql += "\r\n";
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
|
|
|
|
public DataTable SelectICSColumnEnableForLotEnable()
|
|
{
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
string sql = @" select ColumnCode from ICSColumnEnable
|
|
where Enable='0' and TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoints + "' order by cast(Code as int)";
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
|
|
|
|
public DataTable GetLoadShowForColumn()
|
|
{
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
|
|
string sql = @"
|
|
select * from ICSColumnEnable where TableCode='ICSInventoryLot' and WorkPoint='" + WorkPoints + "' order by cast(code as int) ";
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
|
|
}
|
|
public string GetAMEnable()
|
|
{
|
|
string Code = SqlHelper.GetItemsDetailEnabledMark("LotNoMaintenance");
|
|
return Code;
|
|
}
|
|
|
|
|
|
public DataTable SeachMeasure()
|
|
{
|
|
|
|
DataTable dt = new DataTable();
|
|
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = @" SELECT Top 1 a.F_ItemCode as Code
|
|
FROM [dbo].[Sys_SRM_ItemsDetail] a
|
|
LEFT JOIN [dbo].[Sys_SRM_Items] b ON a.F_ItemId=b.F_Id
|
|
WHERE b.F_EnCode='CrtLot001' AND a.F_EnabledMark='1' ORDER BY a.F_ItemCode";
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
|
|
|
|
public DataTable SeachLableofDisable()
|
|
{
|
|
|
|
DataTable dt = new DataTable();
|
|
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = @"
|
|
SELECT a.F_ItemCode as Code,a.F_EnabledMark as Enable
|
|
FROM [dbo].[Sys_SRM_ItemsDetail] a
|
|
LEFT JOIN [dbo].[Sys_SRM_Items] b ON a.F_ItemId=b.F_Id
|
|
WHERE b.F_EnCode='Lot0001' ORDER BY a.F_SortCode";
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
public DataTable SeachAmountEnablebyInvCode(string InvCode)
|
|
{
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
DataTable dt = new DataTable();
|
|
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = @"
|
|
select isnull(AmountEnable,0) as AmountEnable from dbo.ICSInventory where InvCode='" + InvCode + "' and WorkPoint='" + WorkPoint + "'";
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
|
|
public DataTable SeachDatabyInvCode(string InvCode)
|
|
{
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
DataTable dt = new DataTable();
|
|
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string sql = @"
|
|
select isnull(AmountEnable,0) as AmountEnable,
|
|
isnull(ContainerEnable,0) ContainerEnable
|
|
from dbo.ICSInventory where InvCode='" + InvCode + "' and WorkPoint='" + WorkPoint + "'";
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
|
|
|
|
public string LotBindCode(String savePath, string Code, string Sequence)
|
|
{
|
|
//数据获取
|
|
try
|
|
{
|
|
int index = 1;
|
|
string msg = "";
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
SqlConnection conn = SqlHelper.GetDataCenterConn();
|
|
string sql = "";
|
|
int count = 0;
|
|
DataTable data = FileToExcel.ExcelToTable(savePath);
|
|
int totalNum = data.AsEnumerable().Sum(row => int.Parse(row.Field<string>("条码数量")));
|
|
string sqlCode = @" select a.MOCode,a.Sequence, a.Quantity,a.Amount,a.InvCode,isnull(c.LOTQTY,0) as LOTQTY,
|
|
case when b.EffectiveEnable='1' then getdate()+b.EffectiveDays else '2999-12-31 00:00:00.000' end as ExpirationDate,
|
|
a.ExtensionID
|
|
from ICSMO a
|
|
left join (
|
|
select b.TransCode,b.TransSequence,sum(isnull(Quantity,0)) LOTQTY from ICSInventoryLot a
|
|
left join ICSInventoryLotDetail b on a.LotNo=b.LotNo and a.Type='3'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) c on a.MOCode=c.TransCode and a.Sequence=c.TransSequence
|
|
inner join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint where a.MOCode='{0}' and a.Sequence='{1}' and a.WorkPoint='{2}'";
|
|
sqlCode = string.Format(sqlCode, Code, Sequence, WorkPoint);
|
|
DataTable dd = SqlHelper.CmdExecuteDataTable(sqlCode);
|
|
string ExtensionID = dd.Rows[0]["ExtensionID"].ToString();
|
|
string ExpirationDate = dd.Rows[0]["ExpirationDate"].ToString();
|
|
string InvCode = dd.Rows[0]["InvCode"].ToString();
|
|
decimal CQuantity = Convert.ToDecimal(dd.Rows[0]["Quantity"].ToString());
|
|
decimal CAmount = Convert.ToDecimal(dd.Rows[0]["Amount"].ToString());
|
|
decimal CLOTQTY = Convert.ToDecimal(dd.Rows[0]["LOTQTY"].ToString());
|
|
decimal SQTY = CQuantity - CLOTQTY;
|
|
if (totalNum > SQTY)
|
|
{
|
|
throw new Exception("单号: " + Code + "行号" + Sequence + " 所导入条码数量超出该单据可生成数量,该单据剩余可生成数量为" + SQTY + "!");
|
|
}
|
|
// string CodeSequence = "";
|
|
foreach (DataRow dr in data.Rows)
|
|
{
|
|
index++;
|
|
//string GUID = Guid.NewGuid().ToString();
|
|
// string Code = dr["单据号"].ToString().Trim().ToUpper();
|
|
// string Sequence = dr["单据行号"].ToString().Trim().ToUpper();
|
|
string LotNo = dr["条码"].ToString().Trim().ToUpper();
|
|
string Quantity = dr["条码数量"].ToString().Trim().ToUpper();
|
|
//if (CodeSequence != "" && CodeSequence != Code + Sequence)
|
|
//{
|
|
// throw new Exception("一次只能导入同一单据数据!");
|
|
//}
|
|
//else
|
|
//{
|
|
// CodeSequence = Code + Sequence;
|
|
|
|
//}
|
|
if (Code == "" || Code == null)
|
|
{
|
|
throw new Exception("第 " + index + " 行单据号不能为空!");
|
|
}
|
|
if (Sequence == "" || Sequence == null)
|
|
{
|
|
throw new Exception("第 " + index + " 行单据行号不能为空!");
|
|
}
|
|
if (LotNo == "" || LotNo == null)
|
|
{
|
|
throw new Exception("第 " + index + " 行条码不能为空!");
|
|
}
|
|
if (Quantity == "" || Quantity == null)
|
|
{
|
|
throw new Exception("第 " + index + " 行条码数量不能为空!");
|
|
}
|
|
|
|
//if (Convert.ToDecimal(Quantity) > (CQuantity - CLOTQTY))
|
|
//{
|
|
// decimal SQTY = CQuantity - CLOTQTY;
|
|
// throw new Exception("第 " + index + "行单号: " + Code + "行号" + Sequence + " 所输入条码数量超出该单据可生成数量,该单据剩余可生成数量为"+ SQTY + "!");
|
|
//}
|
|
|
|
var Amount = CAmount / CQuantity * Convert.ToDecimal(Quantity);
|
|
|
|
|
|
|
|
sql += @"Insert INto ICSInventoryLot
|
|
( ID,LotNo,InvCode,ProductDate,ExpirationDate,Quantity,Amount,ExtensionID,Type,MUSER,MUSERName,MTIME,WorkPoint)
|
|
Values (newid(),'{0}','{1}',getdate(),'{2}','{3}','{4}','{5}','3','{6}','{7}',getdate(),'{8}')
|
|
";
|
|
sql += @" Insert INto ICSInventoryLotDetail
|
|
( LotNo,TransID,TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint)
|
|
Values ('{0}','','{9}','{10}','{6}','{7}',getdate(),'{8}')";
|
|
sql = string.Format(sql, LotNo, InvCode, ExpirationDate, Quantity, Amount, ExtensionID, MUSER, MUSERNAME, WorkPoint, Code, Sequence);
|
|
|
|
}
|
|
count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
if (count > 0)
|
|
{
|
|
msg = "导入成功";
|
|
}
|
|
else
|
|
{
|
|
return "无有效的导入数据。";
|
|
|
|
}
|
|
return msg;
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 生产退料(一键生成)
|
|
/// </summary>
|
|
public int SubmitFormGDTLALL(string keyValue)
|
|
{
|
|
string sql = string.Empty;
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
|
|
foreach (var item in res)
|
|
{
|
|
JObject jo = (JObject)item;
|
|
int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
|
|
decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
|
|
decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "MDN" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
|
|
string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
|
|
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, WorkPoint);
|
|
object ExtensionID = SqlHelper.ExecuteScalar(sqls);
|
|
bool flag = true;
|
|
|
|
foreach (var items in ExtensionIDList)
|
|
{
|
|
if (items == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoint);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].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}','1','{3}','{4}', getdate(),'{5}','{9}'
|
|
from ICSMOApplyNegDetail where ApplyNegCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
|
|
sql += "\r\n";
|
|
|
|
}
|
|
}
|
|
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
/// <summary>
|
|
/// 自动生成批次信息
|
|
/// </summary>
|
|
/// <param name="InvCode"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetVendorBatch()
|
|
{
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
string pre = "C" + 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 DataTable GetVendorBatchBYInvCode(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 DataTable GetReworkMo(string invcode, string Code, string SourceCode, ref Pagination jqgridparam)
|
|
{
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
DataTable table = new DataTable();
|
|
string wherestr = "";
|
|
if (!string.IsNullOrEmpty(invcode))
|
|
{
|
|
wherestr += " and a.InvCode like '%" + invcode + "%'";
|
|
}
|
|
if (!string.IsNullOrEmpty(Code))
|
|
{
|
|
wherestr += " and a.MOCode like '%" + Code + "%'";
|
|
}
|
|
|
|
string sql = @"SELECT
|
|
a.ID,
|
|
a.MOCode,
|
|
a.Sequence,
|
|
a.InvCode,
|
|
a.Quantity,
|
|
a.Amount,
|
|
a.RCVQuantity,
|
|
a.DepCode,
|
|
a.WHCode,
|
|
a.StartDate,
|
|
a.DueDate,
|
|
a.MOType,
|
|
a.MOStatus,
|
|
a.MOMemo,
|
|
a.CreatePerson,
|
|
a.CreateDateTime,
|
|
a.ERPStatus,
|
|
a.MOID,
|
|
a.MODetailID,
|
|
a.ExtensionID,
|
|
a.MUSER,
|
|
a.MUSERName,
|
|
a.MTIME,
|
|
a.WorkPoint,
|
|
a.EATTRIBUTE1,
|
|
a.EATTRIBUTE2,
|
|
a.EATTRIBUTE3,
|
|
a.EATTRIBUTE4,
|
|
a.EATTRIBUTE5,
|
|
a.EATTRIBUTE6,
|
|
a.EATTRIBUTE7,
|
|
a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,
|
|
a.EATTRIBUTE10,
|
|
b.InvName,
|
|
b.InvStd,
|
|
b.InvUnit
|
|
from
|
|
dbo.ICSMO a
|
|
left join dbo.ICSInventory b on a.InvCode=b.InvCode and a.WorkPoint=b.WorkPoint
|
|
where a.EATTRIBUTE1='1' and a.MOStatus<>'3' and a.WorkPoint = '" + WorkPoint + "'" + wherestr;
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
|
|
}
|
|
|
|
|
|
//修改形态转换
|
|
public string LotReworkBind(string LotNo, string Code, string Sequence, string ExtensionID)
|
|
{
|
|
string Colspan = "";
|
|
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 MTDOCCode = "";
|
|
DateTime TimeNow = DateTime.Now;
|
|
string sql = string.Empty;
|
|
|
|
//修改条码绑定关系
|
|
sql += @"update dbo.ICSInventoryLotDetail set TransCode='{0}' ,TransSequence='{1}' where LotNo in({2}) and WorkPoint='{3}'";
|
|
//修改条码批次
|
|
sql += @"update dbo.ICSInventoryLot set ExtensionID='{4}' where LotNo in({2}) and WorkPoint='{3}'";
|
|
//删除条码库存
|
|
sql += @"delete dbo.ICSWareHouseLotInfo where LotNo in({2}) and WorkPoint='{3}' ";
|
|
|
|
sql = string.Format(sql, Code, Sequence, LotNo, WorkPoint, ExtensionID);
|
|
|
|
if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
|
|
{
|
|
msg = "";
|
|
}
|
|
else
|
|
{
|
|
msg = "条码重新绑定失败!";
|
|
}
|
|
|
|
return msg;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 一键退库(咖博士新增需求:根据生产退料单,B2、C类物料可以实现一键退库操作),调用PDA上架接口
|
|
/// </summary>
|
|
/// <param name="IDs"></param>
|
|
/// <returns></returns>
|
|
public string PostInWareHouse(string IDs)
|
|
{
|
|
string Colspan = "";
|
|
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 = "";
|
|
DateTime TimeNow = DateTime.Now;
|
|
string sql = string.Empty;
|
|
try
|
|
{
|
|
IDs = IDs.Substring(1, IDs.Length - 2);
|
|
//1.获取退料单中的B2和C类物料,检验是否全部生成条码,没有生成条码的单据需要先生成条码后一键退库
|
|
string whereSql1 = @"SELECT ' '+F_Define1+' '+F_Define2+' '+F_Define3+' '+F_Define4+' ' as Conditions FROM Sys_SRM_ItemsDetail WHERE F_ItemId=(SELECT F_Id FROM Sys_SRM_Items WHERE F_EnCode='Trans_btnInWareHouse' AND F_ParentId='abee1b7d-160b-4aa0-948c-440e48cf0649') AND F_ItemCode='01' ;
|
|
SELECT F_Define1,F_Define2 FROM Sys_SRM_ItemsDetail WHERE F_ItemId=(SELECT F_Id FROM Sys_SRM_Items WHERE F_EnCode='LocationCode' ) AND F_ItemCode='MaterialReturned' ";
|
|
string whereSql2 = @"
|
|
SELECT F_Define1,F_Define2 FROM Sys_SRM_ItemsDetail WHERE F_ItemId=(SELECT F_Id FROM Sys_SRM_Items WHERE F_EnCode='LocationCode' ) AND F_ItemCode='MaterialReturned' ";
|
|
DataTable dataTable1 = SqlHelper.CmdExecuteDataTable(whereSql1);
|
|
DataTable dataTable2 = SqlHelper.CmdExecuteDataTable(whereSql2);
|
|
if (dataTable1.Rows.Count <= 0)
|
|
{
|
|
throw new Exception("请先再自定义档案配置需要一键退库的物料信息!");
|
|
}
|
|
if (dataTable2.Rows.Count <= 0)
|
|
{
|
|
throw new Exception("请先再自定义档案配置需要一键退库的仓库库位信息!");
|
|
}
|
|
//判断是否全部生成条码
|
|
string isCreate = $@" SELECT a.ApplyNegCode,a.Sequence,a.Quantity,sum(isnull(c.Quantity,0)) as LotQuantity
|
|
FROM ICSMOApplyNegDetail a
|
|
left JOIN ICSInventoryLotDetail b ON a.ApplyNegCode=b.TransCode AND a.Sequence=b.TransSequence AND a.WorkPoint=b.WorkPoint
|
|
left JOIN ICSInventoryLot c ON c.LotNo=b.LotNo AND c.WorkPoint=b.WorkPoint AND a.InvCode=c.InvCode
|
|
INNER JOIN ICSInventory e ON a.InvCode=e.InvCode AND a.WorkPoint=e.WorkPoint
|
|
WHERE a.ID IN ({IDs}) {dataTable1.Rows[0]["Conditions"]}
|
|
GROUP BY a.Quantity,a.Id,a.ApplyNegCode,a.Sequence ";
|
|
DataTable isCreatedt = SqlHelper.CmdExecuteDataTable(isCreate);
|
|
if (isCreatedt.Rows.Count <= 0)
|
|
{
|
|
throw new Exception("请先确认退料单物料类别信息,然后确认自定义档案配置可以自动出库的物料信息!");
|
|
}
|
|
else
|
|
{
|
|
for (int i = 0; i < isCreatedt.Rows.Count; i++)
|
|
{
|
|
if (isCreatedt.Rows[i]["Quantity"].ToDecimal() != isCreatedt.Rows[i]["LotQuantity"].ToDecimal())
|
|
{
|
|
throw new Exception($"请先将单据:{isCreatedt.Rows[i]["ApplyNegCode"]},行号:{isCreatedt.Rows[i]["Sequence"]} ,全部生成条码!");
|
|
}
|
|
}
|
|
}
|
|
|
|
//查询需要入库的条码信息
|
|
|
|
sql = $@" SELECT a.ApplyNegCode,a.Sequence,c.LotNo,c.Quantity,c.InvCode FROM ICSMOApplyNegDetail a
|
|
INNER JOIN ICSInventoryLotDetail b ON a.ApplyNegCode=b.TransCode AND a.Sequence=b.TransSequence AND a.WorkPoint=b.WorkPoint
|
|
INNER JOIN ICSInventoryLot c ON c.LotNo=b.LotNo AND c.WorkPoint=b.WorkPoint AND a.InvCode=c.InvCode
|
|
LEFT JOIN ICSWareHouseLotInfo d ON d.LotNo=c.LotNo AND d.WorkPoint=c.WorkPoint
|
|
INNER JOIN ICSInventory e ON a.InvCode=e.InvCode AND a.WorkPoint=e.WorkPoint
|
|
WHERE
|
|
a.ID IN ({IDs}) {dataTable1.Rows[0]["Conditions"]} AND
|
|
d.ID is null ";
|
|
//2.查询退料的条码和退料的条码数量,拼接参数,调用PDA接口
|
|
var getSql = SqlHelper.CmdExecuteDataTable(sql);
|
|
if (getSql.Rows.Count > 0)
|
|
{
|
|
List<LOTStockUpCreateIModel> models = new List<LOTStockUpCreateIModel>();
|
|
LOTStockUpCreateIModel model = new LOTStockUpCreateIModel
|
|
{
|
|
User = MUSER,
|
|
MTime = TimeNow.ToString("yyyy-MM-dd HH:mm:ss"),
|
|
WorkPoint = WorkPoint,
|
|
TransType = "生产退料-生产退料单"
|
|
};
|
|
model.detail = new List<LOTStockUpCreateIModelList>();
|
|
for (int i = 0; i < getSql.Rows.Count; i++)
|
|
{
|
|
LOTStockUpCreateIModelList detail = new LOTStockUpCreateIModelList
|
|
{
|
|
LotNo = getSql.Rows[i]["LotNo"].ToString(),
|
|
WarehouseCode = dataTable2.Rows[0]["F_Define1"].ToString(),
|
|
LocationCode = dataTable2.Rows[0]["F_Define2"].ToString(),
|
|
TransCode = getSql.Rows[i]["ApplyNegCode"].ToString(),
|
|
TransSequence = getSql.Rows[i]["Sequence"].ToString(),
|
|
Quantity = getSql.Rows[i]["Quantity"].ToString(),
|
|
InvCode = getSql.Rows[i]["InvCode"].ToString()
|
|
};
|
|
model.detail.Add(detail);
|
|
}
|
|
models.Add(model);
|
|
var input = models.ToJson();
|
|
string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "LOTStockUp/Create";
|
|
string result = HttpPost(APIURL, input);
|
|
Result res = result.ToObject<Result>();
|
|
if (!res.Success)
|
|
{
|
|
throw new Exception(res.Message);
|
|
}
|
|
msg = "";
|
|
}
|
|
return msg;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 红字销售出库单生成条码列表数据
|
|
/// </summary>
|
|
/// <param name="queryJson"></param>
|
|
/// <param name="jqgridparam"></param>
|
|
/// <returns></returns>
|
|
|
|
public DataTable GetGridJsonWMSSSD(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @"select distinct a.ID,a.SSDCode,a.Sequence,a.CusCode,a.CusName,a.InvCode, b.InvName,b.InvStd,b.InvDesc,b.InvUnit,CAST(a.Quantity AS DECIMAL(38,6)) as Quantity ,CAST(a.Amount AS DECIMAL(38,6)) as Amount,CAST(a.SSDQuantity AS DECIMAL(38,6)) as SSDQuantity,CAST((a.Quantity-ISnull(a.SSDQuantity,0)) AS DECIMAL(38,6)) as NSSDQuantity,a.CreatePerson,a.CreateDateTime,
|
|
CAST(c.LOTQTY AS DECIMAL(38,6)) as LOTQTY ,case when isnull(b.EffectiveEnable,0)='1' then '是' else '否' end as EffectiveEnable
|
|
, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,6)) as EffectiveDays ,Case when isnull(b.BatchEnable,0)='1' then '是' else '否' end as BatchEnable
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10 ,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSSSD a
|
|
left join 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 and ee.type='24'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.SSDCode=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
where a.Type='2' and a.Status='1' ";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.SSDCode like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
|
|
{
|
|
sql += " and a.CusCode like '%" + queryParam["VenCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
|
|
{
|
|
sql += " and a.CusName like '%" + queryParam["VenName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
|
|
{
|
|
sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
|
|
{
|
|
sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
|
|
{
|
|
sql += " and a.WHCode like '%" + queryParam["WHCode"].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(c.LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(c.LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["WHStatus"].ToString()))
|
|
{
|
|
string WHStatus = queryParam["WHStatus"].ToString();
|
|
if (WHStatus == "0")
|
|
{
|
|
//sql += " and a.Quantity=ISNULL(c.LotQty,0)";
|
|
}
|
|
else if (WHStatus == "1")
|
|
{
|
|
sql += " and a.Quantity-ISNULL(a.SSDQuantity,0)>0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and a.Quantity-ISNULL(a.SSDQuantity,0)=0";
|
|
}
|
|
}
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
{
|
|
sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 红字销售出库单生成条码
|
|
/// </summary>
|
|
/// <param name="SDNCode"></param>
|
|
/// <param name="Sequence"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <param name="AMEnable"></param>
|
|
/// <returns></returns>
|
|
public int SubmitFormSSD(string SSDCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
//string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
|
|
string Pre = "SSD" + SSDCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
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 InvCode = queryParam["ClassCode"].ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
string LotNo = string.Empty;
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
//传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
|
|
if (AMEnable == "true")
|
|
{
|
|
|
|
LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
|
|
}
|
|
else
|
|
{
|
|
LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
}
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, SSDCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
//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}','24','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSSSD where SSDCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and Type='2' and Status='1' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SSDCode, 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
//}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 红字销售出库单生成条码
|
|
/// </summary>
|
|
/// <param name="SDNCode"></param>
|
|
/// <param name="Sequence"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <param name="AMEnable"></param>
|
|
/// <returns></returns>
|
|
public int SubmitFormSSDNew(string SSDCode, string Sequence, string keyValue, string WorkPoint, string AMEnable)
|
|
{
|
|
var queryParam = keyValue.ToJObject();
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
|
|
|
|
|
|
decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
|
|
decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
|
|
|
|
JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
|
|
List<decimal> lotQtys = new List<decimal>();
|
|
foreach (var jLotno in jLotnos)
|
|
{
|
|
decimal qty = Convert.ToDecimal(jLotno["qty"]);
|
|
lotQtys.Add(qty);
|
|
|
|
}
|
|
int createPageCount = lotQtys.Count();
|
|
|
|
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
//string VenCode = GetVendorCode(ApplyNegCode, Sequence, WorkPoint);
|
|
string Pre = "SSD" + SSDCode + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
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 InvCode = queryParam["ClassCode"].ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
string LotNo = string.Empty;
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
var LOTQTY = lotQtys[i];
|
|
|
|
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);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
//传过来的参数判断是否是奥美的项目奥美项目执行独有生成条码规则
|
|
if (AMEnable == "true")
|
|
{
|
|
|
|
LotNo = SqlHelper.GetLOTNumber(InvCode, WorkPoint);
|
|
}
|
|
else
|
|
{
|
|
LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
}
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, SSDCode, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
//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}','24','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSSSD where SSDCode='{6}' and Sequence='{7}' and WorkPoint='{5}' and Type='2' and Status='1' ",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, SSDCode, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * 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";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo ,MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
//}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 红字销售出库单查询
|
|
/// </summary>
|
|
/// <param name="SSDCode"></param>
|
|
/// <param name="Sequence"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetSubGridJsonSSDByCreate(string SSDCode, string Sequence, string WorkPoint, string Quantity, string InvCode)
|
|
{
|
|
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
string SeachNum = @"SELECT dbo.GetExcessINQty('" + InvCode + "', '" + WorkPoint + "','OverIn026', " + Quantity + ",1,3,'')";
|
|
object Num = SqlHelper.ExecuteScalar(SeachNum);
|
|
string sql = @" select a.InvCode,b.InvName,b.ClassCode,b.InvStd,b.InvUnit, CAST( " + Num + @" AS DECIMAL(38,6)) as Quantity,CAST( a.Amount as DECIMAL(38,6)) as Amount, CAST( isnull(c.LOTQTY,0) as DECIMAL(38,6)) as CreatedQty,
|
|
CAST( ( " + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,6)) as thisCreateQty,
|
|
isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,6)) as EffectiveDays, case when CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) >=(CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' END) then (CASE WHEN b.EATTRIBUTE2='' OR b.EATTRIBUTE2 IS NULL THEN '0' else b.EATTRIBUTE2 END) else CAST( (" + Num + @"-ISNULL(c.LOTQTY,0)) as DECIMAL(38,{0})) end as MPQ
|
|
,d.ProjectCode,d.BatchCode,d.Version,d.Brand,d.cFree1,d.cFree2,d.cFree3,d.cFree4,d.cFree5,d.cFree6,d.cFree7,d.cFree8,d.cFree9,d.cFree10,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
from ICSSSD a
|
|
left join 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 and a.Type='24'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.TransCode,b.TransSequence
|
|
) c on a.SSDCode=c.TransCode and a.Sequence=c.TransSequence
|
|
left join ICSExtension d on a.ExtensionID=d.ID and a.WorkPoint=d.WorkPoint
|
|
WHERE a.Status='1'
|
|
and a.Type='2' and a.SSDCode='" + SSDCode + "' and a.Sequence='" + Sequence + "'";
|
|
sql += " and a.WorkPoint='" + WorkPoint + "'";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
/// <summary>
|
|
/// 派纳 线边仓调拨申请单生成条码
|
|
/// </summary>
|
|
/// <param name="queryJson"></param>
|
|
/// <param name="jqgridparam"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetGridJsonTransferApplicationPN(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence
|
|
,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName,
|
|
a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName,
|
|
a.InvCode, b.InvName,b.InvStd,b.InvUnit,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
|
|
,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
|
|
,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity
|
|
,c.LOTQTY
|
|
,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSTransferApplication a
|
|
left join 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 and ee.type='202'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint
|
|
left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint
|
|
left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint
|
|
where 1 = 1 and a.FromWarehouseCode in (select B.F_ItemCode from Sys_SRM_Items A
|
|
LEFT JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId=A.F_Id
|
|
where A.F_EnCode='WorkLineWHConfig')";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
|
|
}
|
|
|
|
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
//if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
//{
|
|
// sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
//}
|
|
sql += @"GROUP BY a.Id,a.TransferNO,a.Sequence,a.InvCode,A.Quantity,A.Amount,a.TransferQuantity,b.InvName,e.WarehouseName,a.FromWarehouseCode,e.WarehouseName,a.FromLocationCode,h.LocationName,
|
|
a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.LOTQTY,
|
|
f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,a.EATTRIBUTE9,a.EATTRIBUTE10 ) t
|
|
where 1=1 ";
|
|
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 Quantity-ISNULL(LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 派纳 线边仓一步调入单生成条码
|
|
/// </summary>
|
|
/// <param name="queryJson"></param>
|
|
/// <param name="jqgridparam"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetGridJsonOneSetpTransPN(string queryJson, ref Pagination jqgridparam)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
var queryParam = queryJson.ToJObject();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
object Figure = GetDecimalDigits();
|
|
#region [SQL]
|
|
string sql = @" select * from (select distinct a.ID,a.TransferNO,a.Sequence
|
|
,a.FromWarehouseCode as FromWHCode,e.WarehouseName as FromWHName,a.FromLocationCode as FromLotCode,h.LocationName as FromLotName,
|
|
a.ToWarehouseCode as ToWHCode,g.WarehouseName as ToWHName,a.ToLocationCode as ToLotCode,i.LocationName as ToLotName,
|
|
a.InvCode, b.InvName,b.InvStd,b.InvUnit,
|
|
CAST(a.Quantity AS DECIMAL(38,{0})) as Quantity
|
|
,CAST(a.Amount AS DECIMAL(38,{0})) as Amount
|
|
,CAST(a.TransferQuantity AS DECIMAL(38,{0})) as TransferQuantity
|
|
,c.LOTQTY
|
|
,isnull(b.EffectiveEnable,0) as EffectiveEnable, CAST( isnull(b.EffectiveDays,0) as DECIMAL(38,{0})) as EffectiveDays
|
|
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
|
|
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,
|
|
a.EATTRIBUTE9,a.EATTRIBUTE10
|
|
from ICSTransfer a
|
|
left join 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 and ee.type='203'
|
|
where isnull(ee.EATTRIBUTE1,'')=''
|
|
group by mm.TransCode,mm.TransSequence,ee.WorkPoint
|
|
) c on a.TransferNO=c.TransCode and a.Sequence=c.TransSequence and a.WorkPoint=c.WorkPoint
|
|
left join ICSWarehouse e on a.FromWarehouseCode=e.WarehouseCode and a.WorkPoint=e.WorkPoint
|
|
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
|
|
left join ICSWarehouse g on a.ToWarehouseCode=g.WarehouseCode and a.WorkPoint=g.WorkPoint
|
|
left join ICSLocation h on a.FromLocationCode=h.LocationCode and a.WorkPoint=h.WorkPoint
|
|
left join ICSLocation i on a.ToLocationCode=i.LocationCode and a.WorkPoint=i.WorkPoint
|
|
where 1 = 1 and a.Type=1 and a.FromWarehouseCode in (select B.F_ItemCode from Sys_SRM_Items A
|
|
LEFT JOIN Sys_SRM_ItemsDetail B ON B.F_ItemId=A.F_Id
|
|
where A.F_EnCode='WorkLineWHConfig')";
|
|
sql = string.Format(sql, Figure);
|
|
|
|
#endregion
|
|
|
|
if (!string.IsNullOrWhiteSpace(queryJson))
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
|
|
{
|
|
sql += " and a.TransferNO like '%" + queryParam["POCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
|
|
{
|
|
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
|
|
{
|
|
sql += " and b.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
|
|
{
|
|
sql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["FromTime"].ToString()))
|
|
{
|
|
sql += " and a.CreateDateTime >= '" + queryParam["FromTime"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["ToTime"].ToString()))
|
|
{
|
|
sql += " and a.CreateDateTime <= '" + queryParam["ToTime"].ToString() + "' ";
|
|
}
|
|
if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
|
|
{
|
|
sql += " and a.FromWarehouseCode like '%" + queryParam["WHCode"].ToString() + "%' ";
|
|
}
|
|
}
|
|
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
|
|
{
|
|
sql += " and a.WorkPoint='" + NFine.Code.OperatorProvider.Provider.GetCurrent().Location + "'";
|
|
}
|
|
//if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode == "Vendor")
|
|
//{
|
|
// sql += " and a.VenCode='" + NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode + "'";
|
|
//}
|
|
sql += @"GROUP BY a.Id,a.TransferNO,a.Sequence,a.InvCode,A.Quantity,A.Amount,a.TransferQuantity,b.InvName,e.WarehouseName,a.FromWarehouseCode,e.WarehouseName,a.FromLocationCode,h.LocationName,
|
|
a.ToWarehouseCode,g.WarehouseName,a.ToLocationCode,i.LocationName,b.InvStd,b.InvUnit,b.EffectiveEnable,b.EffectiveDays,c.LOTQTY,
|
|
f.Colspan,f.ProjectCode,f.BatchCode,f.Version,f.Brand,f.cFree1,f.cFree2,f.cFree3,f.cFree4,f.cFree5,f.cFree6,f.cFree7,f.cFree8,f.cFree9,f.cFree10,a.EATTRIBUTE1,a.EATTRIBUTE2,a.EATTRIBUTE3,a.EATTRIBUTE4,a.EATTRIBUTE5,a.EATTRIBUTE6,a.EATTRIBUTE7,a.EATTRIBUTE8,a.EATTRIBUTE9,a.EATTRIBUTE10 ) t
|
|
where 1=1 ";
|
|
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 Quantity-ISNULL(LOTQTY,0)=0";
|
|
}
|
|
else
|
|
{
|
|
sql += " and Quantity-ISNULL(LOTQTY,0)<>0";
|
|
}
|
|
}
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 派纳 线边仓调拨申请单生成条码 保存(生成条码的同时入库)
|
|
/// </summary>
|
|
/// <param name="TransferNO"></param>
|
|
/// <param name="Sequence"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public int SubmitFormTransferApplicatioPNSave(string TransferNO, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
|
|
string Identification = Guid.NewGuid().ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
|
|
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);
|
|
bool flag = true;
|
|
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
|
|
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 ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, 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 += string.Format(@"
|
|
INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
|
|
SELECT NEWID(),a.LotNo
|
|
,(SELECT FromWarehouseCode FROM ICSTransferApplication WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
|
|
,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
|
|
INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
|
|
INNER JOIN ICSTransferApplication C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
|
|
WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
|
|
,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
|
|
FROM ICSInventoryLot a
|
|
INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
|
|
WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
|
|
LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
|
|
|
|
sql += string.Format(@"
|
|
INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
|
|
FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
|
|
Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
|
|
ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
|
|
MTIME,WorkPoint)
|
|
SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
|
|
'','',c.WarehouseCode,c.LocationCode,c.Quantity,
|
|
'','0','6','75','1',D.TransferID,
|
|
D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
|
|
SYSDATETIME() ,a.WorkPoint
|
|
FROM ICSInventoryLot a
|
|
INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
|
|
INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
|
|
INNER JOIN ICSTransferApplication D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
|
|
WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
|
|
LotNo, WorkPoint, Identification);
|
|
sql += "\r\n";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 派纳 线边仓一步调入单生成条码 保存(生成条码的同时入库)
|
|
/// </summary>
|
|
/// <param name="TransferNO"></param>
|
|
/// <param name="Sequence"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public int SubmitFormOneStepTransPNSave(string TransferNO, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
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());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
|
|
string Identification = Guid.NewGuid().ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
|
|
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);
|
|
bool flag = true;
|
|
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
|
|
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}','203','{3}','{4}', getdate(),'{5}','{9}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}'
|
|
from ICSTransfer where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, 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 += string.Format(@"
|
|
INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
|
|
SELECT NEWID(),a.LotNo
|
|
,(SELECT FromWarehouseCode FROM ICSTransfer WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
|
|
,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
|
|
INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
|
|
INNER JOIN ICSTransfer C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
|
|
WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
|
|
,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
|
|
FROM ICSInventoryLot a
|
|
INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
|
|
WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
|
|
LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
|
|
|
|
sql += string.Format(@"
|
|
INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
|
|
FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
|
|
Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
|
|
ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
|
|
MTIME,WorkPoint)
|
|
SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
|
|
'','',c.WarehouseCode,c.LocationCode,c.Quantity,
|
|
'','0','6','75','1',D.TransferID,
|
|
D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
|
|
SYSDATETIME() ,a.WorkPoint
|
|
FROM ICSInventoryLot a
|
|
INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
|
|
INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
|
|
INNER JOIN ICSTransfer D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
|
|
WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
|
|
LotNo, WorkPoint, Identification);
|
|
sql += "\r\n";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 派纳 线边仓调拨申请单生成条码 保存(生成条码的同时入库)
|
|
/// </summary>
|
|
/// <param name="TransferNO"></param>
|
|
/// <param name="Sequence"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public int SubmitFormTransferApplicatioPNSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
var queryParam = keyValue.ToJObject();
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
|
|
|
|
|
|
decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
|
|
decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
|
|
|
|
JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
|
|
List<decimal> lotQtys = new List<decimal>();
|
|
foreach (var jLotno in jLotnos)
|
|
{
|
|
decimal qty = Convert.ToDecimal(jLotno["qty"]);
|
|
lotQtys.Add(qty);
|
|
|
|
}
|
|
int createPageCount = lotQtys.Count();
|
|
string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
|
|
string Identification = Guid.NewGuid().ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
|
|
var LOTQTY = lotQtys[i];
|
|
|
|
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);
|
|
bool flag = true;
|
|
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
|
|
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 ICSTransferApplication where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * 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 += string.Format(@"
|
|
INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
|
|
SELECT NEWID(),a.LotNo
|
|
,(SELECT FromWarehouseCode FROM ICSTransferApplication WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
|
|
,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
|
|
INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
|
|
INNER JOIN ICSTransferApplication C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
|
|
WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
|
|
,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
|
|
FROM ICSInventoryLot a
|
|
INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
|
|
WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
|
|
LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
|
|
|
|
sql += string.Format(@"
|
|
INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
|
|
FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
|
|
Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
|
|
ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
|
|
MTIME,WorkPoint)
|
|
SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
|
|
'','',c.WarehouseCode,c.LocationCode,c.Quantity,
|
|
'','0','6','75','1',D.TransferID,
|
|
D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
|
|
SYSDATETIME() ,a.WorkPoint
|
|
FROM ICSInventoryLot a
|
|
INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
|
|
INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
|
|
INNER JOIN ICSTransferApplication D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
|
|
WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
|
|
LotNo, WorkPoint, Identification);
|
|
sql += "\r\n";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 派纳 线边仓一步调入单生成条码 保存(生成条码的同时入库---非规则生成条码)
|
|
/// </summary>
|
|
/// <param name="TransferNO"></param>
|
|
/// <param name="Sequence"></param>
|
|
/// <param name="keyValue"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public int SubmitFormOneStepTransferPNSaveNew(string TransferNO, string Sequence, string keyValue, string WorkPoint)
|
|
{
|
|
var queryParam = keyValue.ToJObject();
|
|
string WorkPoints = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
|
|
|
|
|
|
decimal minPackQty = Convert.ToDecimal(queryParam["minPackQty"].ToString());
|
|
decimal thisCreateQty = Convert.ToDecimal(queryParam["thisCreateQty"].ToString());
|
|
|
|
JArray jLotnos = (JArray)queryParam["lotNoArrary"];//添加的条码对象
|
|
List<decimal> lotQtys = new List<decimal>();
|
|
foreach (var jLotno in jLotnos)
|
|
{
|
|
decimal qty = Convert.ToDecimal(jLotno["qty"]);
|
|
lotQtys.Add(qty);
|
|
|
|
}
|
|
int createPageCount = lotQtys.Count();
|
|
string Pre = "Tra" + TransferNO + (Convert.ToInt32(Sequence)).ToString("D4");
|
|
string sql = string.Empty;
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
string PRODUCTDATE = queryParam["PRODUCTDATE"].ToString();
|
|
string Identification = Guid.NewGuid().ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
|
|
#region 装箱的功能
|
|
int createPackCount = Convert.ToInt32(queryParam["createPackCount"].ToString());//包装箱数 为0 则不生成
|
|
string VenCode = queryParam["VenCode"].ToString();
|
|
|
|
|
|
int PackCount = 0;//每箱放的数量
|
|
int Pack_YuShu = 0;//需要平摊的数量
|
|
string car = "CR" + DateTime.Now.ToString("yyyy") + DateTime.Now.ToString("MM");//箱号代码的前缀
|
|
|
|
List<PackModel> List_Pack = new List<PackModel>();
|
|
int ZQty = 0;
|
|
if (createPackCount > 0)
|
|
{
|
|
Pack_YuShu = (int)(createPageCount % createPackCount); ;//最后一箱放的数量
|
|
if (Pack_YuShu == 0)
|
|
{
|
|
PackCount = (createPageCount / createPackCount);
|
|
}
|
|
else
|
|
{
|
|
PackCount = ((createPageCount - Pack_YuShu) / (createPackCount));
|
|
}
|
|
|
|
for (int jj = 0; jj < createPackCount; jj++)
|
|
{
|
|
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 + "','WMS','" + CARID + "','" + Carton + "',1,1,1,1)";
|
|
PackModel PP = new PackModel();
|
|
PP.ID = CARID.ToString();
|
|
PP.PackCode = Carton;
|
|
if (jj < Pack_YuShu)
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount));
|
|
|
|
}
|
|
else
|
|
{
|
|
PP.FristBarIndex = ZQty;
|
|
PP.LastBarIndex = ZQty + Convert.ToInt32(Convert.ToDouble(PackCount)) - 1;
|
|
}
|
|
ZQty += (PP.LastBarIndex - PP.FristBarIndex) + 1;
|
|
List_Pack.Add(PP);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
|
|
var LOTQTY = lotQtys[i];
|
|
|
|
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);
|
|
bool flag = true;
|
|
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoints);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, TransferNO, Sequence, MUSER, MUSERNAME, WorkPoints, queryParam["ID"].ToString());
|
|
|
|
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 ICSTransfer where TransferNO='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoints, TransferNO, Sequence, str1, Convert.ToDecimal(queryParam["Amount"].ToString()) * 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 += string.Format(@"
|
|
INSERT INTO ICSWareHouseLotInfo(ID,LotNO,WarehouseCode,LocationCode,InvCode,Quantity,InDate,LockQuantity,MUSER,MUSERName,MTIME,WorkPoint)
|
|
SELECT NEWID(),a.LotNo
|
|
,(SELECT FromWarehouseCode FROM ICSTransfer WHERE TransferNO='{2}' AND Sequence='{3}' AND WorkPoint='{1}')
|
|
,(SELECT TOP 1 A.LocationCode FROM ICSLocation A
|
|
INNER JOIN ICSWarehouse B ON B.ID=A.WHID AND B.WorkPoint=A.WorkPoint
|
|
INNER JOIN ICSTransfer C ON C.FromWarehouseCode=B.WarehouseCode AND C.WorkPoint=B.WorkPoint
|
|
WHERE C.TransferNO='{2}' AND C.Sequence='{3}' AND C.WorkPoint='{1}')
|
|
,a.InvCode ,a.Quantity,SYSDATETIME(),'0','{4}' ,'{5}' ,SYSDATETIME() ,a.WorkPoint
|
|
FROM ICSInventoryLot a
|
|
INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
|
|
WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
|
|
LotNo, WorkPoint, TransferNO, Sequence, MUSER, MUSERNAME);
|
|
|
|
sql += string.Format(@"
|
|
INSERT INTO ICSWareHouseLotInfoLog(ID,Identification,TransCode,TransSequence,LotNo,InvCode,
|
|
FromWarehouseCode,FromLocationCode,ToWarehouseCode,ToLocationCode,Quantity,
|
|
Memo,Lock,TransType,BusinessCode,ERPUpload,ERPID,
|
|
ERPDetailID,ERPCode,ERPSequence,MUSER,MUSERName,
|
|
MTIME,WorkPoint)
|
|
SELECT NEWID(),'{2}',b.TransCode,b.TransSequence,a.LotNo ,a.InvCode ,
|
|
'','',c.WarehouseCode,c.LocationCode,c.Quantity,
|
|
'','0','6','75','1',D.TransferID,
|
|
D.TransferDetailID,D.TransferNO,D.Sequence,'MUSER' ,'MUSERNAME' ,
|
|
SYSDATETIME() ,a.WorkPoint
|
|
FROM ICSInventoryLot a
|
|
INNER JOIN ICSInventoryLotDetail b ON a.LotNo=b.LotNo AND a.WorkPoint=b.WorkPoint
|
|
INNER JOIN ICSWareHouseLotInfo c ON a.LotNo=c.LotNo AND a.WorkPoint=c.WorkPoint
|
|
INNER JOIN ICSTransfer D ON D.TransferNO=B.TransCode AND D.Sequence=B.TransSequence AND D.WorkPoint=B.WorkPoint
|
|
WHERE a.LotNo='{0}' AND a.WorkPoint='{1}'",
|
|
LotNo, WorkPoint, Identification);
|
|
sql += "\r\n";
|
|
|
|
//装箱的功能
|
|
if (List_Pack.Count > 0)
|
|
{
|
|
PackModel mm = new PackModel();
|
|
mm = List_Pack.Where(a => a.FristBarIndex <= i && a.LastBarIndex >= i).First();
|
|
sql += string.Format(@" INSERT INTO dbo.ICSContainerLot
|
|
( ID ,ContainerID ,LotNo , MUSER ,MUSERName ,MTIME ,WorkPoint )
|
|
Values( newid(),'{0}','{1}','{2}','{3}',getdate(),'{4}' ) ", mm.ID, LotNo, MUSER, MUSERNAME, WorkPoint);
|
|
}
|
|
|
|
}
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 派纳 线边仓调拨申请单获取单据信息
|
|
/// </summary>
|
|
/// <param name="TransferNO"></param>
|
|
/// <param name="Sequence"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetSubGridJsonTransferApplicationByCreatePN(string TransferNO, string Sequence, string WorkPoint)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
|
|
string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
|
|
, CAST ( xx.Quantity AS DECIMAL ( 38,6 )) AS Amount
|
|
, CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
|
|
, CAST ( ( xx.Quantity- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
|
|
, isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
|
|
, CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
|
|
, e.ProjectCode, e.BatchCode, e.Version, e.Brand, e.cFree1, e.cFree2, e.cFree3, e.cFree4, e.cFree5, e.cFree6, e.cFree7, e.cFree8, e.cFree9, e.cFree10 ,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
FROM ICSTransferApplication a
|
|
LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
|
|
LEFT JOIN ( SELECT a.Id, a.InvCode, a.Sequence, a.WorkPoint,CASE WHEN b.OverInType= '1' THEN a.Quantity* ( 1+b.OverInValue ) WHEN b.OverInType= '2' THEN a.Quantity+ b.OverInValue WHEN b.OverInType= '3' THEN 999999 ELSE a.Quantity
|
|
END AS Quantity
|
|
FROM ICSTransferApplication a
|
|
LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode
|
|
AND a.WorkPoint= b.WorkPoint
|
|
) xx ON xx.Id= a.Id
|
|
LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
|
|
FROM ICSInventoryLot a
|
|
LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '202'
|
|
WHERE isnull( a.EATTRIBUTE1, '' ) = ''
|
|
GROUP BY
|
|
b.TransCode,
|
|
b.TransSequence
|
|
) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence
|
|
LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
|
|
WHERE 1 = 1
|
|
and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
|
|
and a.WorkPoint='{WorkPoint}'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
/// <summary>
|
|
/// 派纳 线边仓一步调入单获取单据信息
|
|
/// </summary>
|
|
/// <param name="TransferNO"></param>
|
|
/// <param name="Sequence"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetSubGridJsonOneSetpTransByCreatePN(string TransferNO, string Sequence, string WorkPoint)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
object Figure = GetDecimalDigits();
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
|
|
string sql = $@" SELECT a.InvCode,a.Quantity, b.InvName, b.ClassCode, b.InvStd, b.InvUnit
|
|
, CAST ( xx.Quantity AS DECIMAL ( 38,6 )) AS Amount
|
|
, CAST ( isnull( c.LOTQTY, 0 ) AS DECIMAL ( 38,6 ) ) AS CreatedQty
|
|
, CAST ( ( xx.Quantity- ISNULL( c.LOTQTY, 0 ) ) AS DECIMAL ( 38,6 ) ) AS thisCreateQty
|
|
, isnull( b.EffectiveEnable, 0 ) AS EffectiveEnable
|
|
, CAST ( isnull( b.EffectiveDays, 0 ) AS DECIMAL ( 38,6 ) ) AS EffectiveDays,isnull(b.EATTRIBUTE2,'') as MPQ
|
|
, e.ProjectCode, e.BatchCode, e.Version, e.Brand, e.cFree1, e.cFree2, e.cFree3, e.cFree4, e.cFree5, e.cFree6, e.cFree7, e.cFree8, e.cFree9, e.cFree10 ,
|
|
'' EATTRIBUTE2 ,'' EATTRIBUTE3 ,'' EATTRIBUTE4 ,'' EATTRIBUTE5,'' EATTRIBUTE6 ,'' EATTRIBUTE7 ,'' EATTRIBUTE8 ,'' EATTRIBUTE9 ,'' EATTRIBUTE10
|
|
FROM ICSTransfer a
|
|
LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode AND a.WorkPoint= b.WorkPoint
|
|
LEFT JOIN ( SELECT a.Id, a.InvCode, a.Sequence, a.WorkPoint,CASE WHEN b.OverInType= '1' THEN a.Quantity* ( 1+b.OverInValue ) WHEN b.OverInType= '2' THEN a.Quantity+ b.OverInValue WHEN b.OverInType= '3' THEN 999999 ELSE a.Quantity
|
|
END AS Quantity
|
|
FROM ICSTransfer a
|
|
LEFT JOIN ICSInventory b ON a.InvCode= b.InvCode
|
|
AND a.WorkPoint= b.WorkPoint
|
|
) xx ON xx.Id= a.Id
|
|
LEFT JOIN ( SELECT b.TransCode,b.TransSequence, SUM ( isnull( Quantity, 0 ) ) LOTQTY
|
|
FROM ICSInventoryLot a
|
|
LEFT JOIN ICSInventoryLotDetail b ON a.LotNo= b.LotNo AND a.Type= '203'
|
|
WHERE isnull( a.EATTRIBUTE1, '' ) = '' AND a.Type=1
|
|
GROUP BY
|
|
b.TransCode,
|
|
b.TransSequence
|
|
) c ON a.TransferNO = c.TransCode AND a.Sequence = c.TransSequence
|
|
LEFT JOIN ICSExtension e ON a.ExtensionID= e.ID AND a.WorkPoint= e.WorkPoint
|
|
WHERE 1 = 1
|
|
and a.TransferNO='{TransferNO}' and a.Sequence='{Sequence}'
|
|
and a.WorkPoint='{WorkPoint}'";
|
|
sql = string.Format(sql, Figure);
|
|
return Repository().FindTableBySql(sql.ToString());
|
|
}
|
|
|
|
public int SubmitFormCGRKALL(string keyValue)
|
|
{
|
|
string sql = string.Empty;
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
|
|
foreach (var item in res)
|
|
{
|
|
JObject jo = (JObject)item;
|
|
int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
|
|
decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
|
|
decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "KCP" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"].ToString())).ToString("D4");
|
|
string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
|
|
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, WorkPoint);
|
|
object ExtensionID = SqlHelper.ExecuteScalar(sqls);
|
|
bool flag = true;
|
|
|
|
foreach (var items in ExtensionIDList)
|
|
{
|
|
if (items == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoint);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','{6}' )",
|
|
LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].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}','22','{3}','{4}', getdate(),'{5}','{9}'
|
|
from ICSPurchaseReceive where RCVCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"].ToString(), str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
|
|
sql += "\r\n";
|
|
|
|
}
|
|
}
|
|
|
|
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 SubmitFormXSTHALL(string keyValue)
|
|
{
|
|
string sql = string.Empty;
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
|
|
|
|
foreach (var resItem in res)
|
|
{
|
|
JObject jo = (JObject)resItem;
|
|
|
|
int createPageCount = Convert.ToInt32(jo["createPageCount"].ToString());
|
|
decimal minPackQty = Convert.ToDecimal(jo["minPackQty"].ToString());
|
|
decimal thisCreateQty = Convert.ToDecimal(jo["thisCreateQty"].ToString());
|
|
decimal LOTQTY = minPackQty;
|
|
string Pre = "SR" + jo["Code"].ToString() + (Convert.ToInt32(jo["Sequence"])).ToString("D4");
|
|
string PRODUCTDATE = jo["PRODUCTDATE"].ToString();
|
|
string sqls = string.Empty;
|
|
string Colspan = "";
|
|
string str1 = "";
|
|
List<string> ExtensionIDList = new List<string>();
|
|
for (int i = 0; i < createPageCount; i++)
|
|
{
|
|
if (i + 1 == createPageCount)
|
|
{
|
|
if (minPackQty * createPageCount > thisCreateQty)
|
|
{
|
|
LOTQTY = thisCreateQty - (minPackQty * (createPageCount - 1));
|
|
}
|
|
}
|
|
|
|
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, WorkPoint);
|
|
object ExtensionID = SqlHelper.ExecuteScalar(sqls);
|
|
bool flag = true;
|
|
foreach (var item in ExtensionIDList)
|
|
{
|
|
if (item == Colspan + WorkPoint)
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
if (ExtensionID == null && flag == true)
|
|
{
|
|
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, WorkPoint);
|
|
}
|
|
else if (ExtensionID != null)
|
|
{
|
|
str1 = ExtensionID.ToString();
|
|
}
|
|
ExtensionIDList.Add(Colspan + WorkPoint);
|
|
|
|
string LotNo = GetSerialCode(WorkPoint, "ICSInventoryLot", "LotNO", Pre, 5);
|
|
sql += string.Format(@"Insert into ICSInventoryLotDetail(LotNo, TransCode,TransSequence,MUSER,MUSERName,MTIME,WorkPoint,TransID)
|
|
Values('{0}','{1}','{2}','{3}','{4}',getdate(),'{5}' ,'{6}')",
|
|
LotNo, jo["Code"].ToString(), jo["Sequence"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["ID"].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}','7','{3}','{4}', getdate(),'{5}','{9}'
|
|
from ICSSDN where Type='2' and SDNCode='{6}' and Sequence='{7}' and WorkPoint='{5}'",
|
|
LotNo, PRODUCTDATE, LOTQTY, MUSER, MUSERNAME, WorkPoint, jo["Code"].ToString(), jo["Sequence"], str1, Convert.ToDecimal(jo["Amount"].ToString()) / minPackQty * LOTQTY, jo["ExpirationDate"].ToString());
|
|
sql += "\r\n";
|
|
|
|
|
|
}
|
|
}
|
|
|
|
int count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
return count;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public DataTable GetCode(string MOCode, string Sequence, ref Pagination jqgridparam)
|
|
{
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
List<DbParameter> parameter = new List<DbParameter>();
|
|
DataTable table = new DataTable();
|
|
// string wherestr = "";
|
|
//if (!string.IsNullOrEmpty(invcode) || !string.IsNullOrEmpty(Code) || !string.IsNullOrEmpty(Invstd) || !string.IsNullOrEmpty(EATTRIBUTE2))
|
|
//{
|
|
//if (!string.IsNullOrEmpty(invcode))
|
|
//{
|
|
// wherestr += " and a.InvCode like '%" + invcode + "%'";
|
|
//}
|
|
//if (!string.IsNullOrEmpty(Code))
|
|
//{
|
|
// wherestr += " and c.MOCode like '%" + Code + "%'";
|
|
//}
|
|
//if (!string.IsNullOrEmpty(Invstd))
|
|
//{
|
|
// wherestr += " and b.InvStd like '%" + Invstd + "%'";
|
|
//}
|
|
//if (!string.IsNullOrEmpty(EATTRIBUTE2))
|
|
//{
|
|
// wherestr += " and a.EATTRIBUTE2 like '%" + EATTRIBUTE2 + "%'";
|
|
//}
|
|
//}
|
|
//else
|
|
//{
|
|
// wherestr += " and a.MTIME >= '" + TimeFrom + "'";
|
|
// wherestr += " and a.MTIME <= '" + TimeArrive + "'";
|
|
//}
|
|
string sql = @"select a.Code as ID, a.Code,a.MoCode,a.MoSeq,a.ItemCode,d.InvName,a.BatchCode,a.Qty ,
|
|
a.Qty-CAST(ISNULL(c.LOTQTY,0) as DECIMAL(38,6)) as RemainingQTY,
|
|
a.Qty-CAST(ISNULL(c.LOTQTY,0) as DECIMAL(38,6)) as RemainingQTY2
|
|
from MES_MO a
|
|
inner join ICSMO b on a.MoCode=b.MOCode and a.MoSeq=b.Sequence
|
|
inner join dbo.ICSInventory d on a.ItemCode=d.InvCode
|
|
left join (select b.Code, sum(isnull(b.Quantity,0)) LOTQTY from ICSInventoryLot a
|
|
left join ICSInventoryLotDetailRT b on a.LotNo=b.LotNo and a.Type='3'
|
|
where isnull(a.EATTRIBUTE1,'')=''
|
|
group by b.Code
|
|
) c on a.Code=c.Code
|
|
where 1=1 and a.MOCode='" + MOCode + "' and a.MoSeq='"+ Sequence + "'";
|
|
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public DataTable GetVendor()
|
|
{
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string sql = @"select '' as Code,'' as Name
|
|
union all
|
|
SELECT DISTINCT a.Code,a.Name FROM dbo.ICSCustomerItem a ";
|
|
//string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
|
|
//if (role != "admin")
|
|
//{
|
|
// sql += " and b.WorkPoint in(" + WorkPoint.TrimEnd(',') + ")";
|
|
//}
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
|
|
|
|
|
|
public string GetERPInvCode(string VenCode, string InvCode)
|
|
{
|
|
string sql = string.Empty;
|
|
sql = @"select CustomerItemCode from ICSCustomerItem
|
|
where Code='"+ VenCode + "' and ItemCode ='"+ InvCode + "'";
|
|
|
|
object ERPInvCode = SqlHelper.ExecuteScalar(sql);
|
|
return Convert.ToString(ERPInvCode);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|