|
|
@ -230,13 +230,13 @@ namespace CK.SCP.Controller |
|
|
|
public static List<string> NOTIFY_COMPARE_PRICE(List<TB_CONTRACT_DETAIL_PRICE> p_priceList, List<V_TB_PO_DETAIL> p_polist) |
|
|
|
{ |
|
|
|
List<string> msgList = new List<string>(); |
|
|
|
var ret= from po in p_polist |
|
|
|
var ret = from po in p_polist |
|
|
|
join price in p_priceList on po.PartCode equals price.PartCode |
|
|
|
select new { VAL1 = po, VAL2 = price }; |
|
|
|
var list = ret.Where(p=> p.VAL1.BeginTime>=p.VAL2.BeginTime && p.VAL1.BeginTime<=p.VAL2.EndTime && p.VAL1.PlanQty>=p.VAL2.QtyBegin && p.VAL1.PlanQty < p.VAL2.QtyEnd && (p.VAL1.Price> p.VAL2.Price || p.VAL1.Price==0)); |
|
|
|
foreach(var itm in list) |
|
|
|
var list = ret.Where(p => p.VAL1.BeginTime >= p.VAL2.BeginTime && p.VAL1.BeginTime <= p.VAL2.EndTime && p.VAL1.PlanQty >= p.VAL2.QtyBegin && p.VAL1.PlanQty < p.VAL2.QtyEnd && (p.VAL1.Price > p.VAL2.Price || p.VAL1.Price == 0)); |
|
|
|
foreach (var itm in list) |
|
|
|
{ |
|
|
|
msgList.Add(string.Format("物料编码{0}价格{1}与合同价格{2}不一致",itm.VAL1.PartCode, itm.VAL1.Price, itm.VAL2.Price)); |
|
|
|
msgList.Add(string.Format("物料编码{0}价格{1}与合同价格{2}不一致", itm.VAL1.PartCode, itm.VAL1.Price, itm.VAL2.Price)); |
|
|
|
} |
|
|
|
return msgList; |
|
|
|
|
|
|
@ -264,7 +264,7 @@ namespace CK.SCP.Controller |
|
|
|
{ |
|
|
|
if (p_list.Count > 0) |
|
|
|
{ |
|
|
|
var ret= Get_TB_CONTRACT_DETAIL_PRICE_List(new TB_CONTRACT_DETAIL_PRICE() { VendId = p_list[0].VendId }); |
|
|
|
var ret = Get_TB_CONTRACT_DETAIL_PRICE_List(new TB_CONTRACT_DETAIL_PRICE() { VendId = p_list[0].VendId }); |
|
|
|
if (ret.State == ReturnStatus.Succeed) |
|
|
|
{ |
|
|
|
var p_priceList = ret.Result; |
|
|
@ -397,7 +397,7 @@ namespace CK.SCP.Controller |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static ResultObject<List<TB_CONTRACT_DETAIL_PRICE>> Get_TB_CONTRACT_DETAIL_PRICE_List(TB_CONTRACT_DETAIL_PRICE p_entity,int p_qty=0) |
|
|
|
public static ResultObject<List<TB_CONTRACT_DETAIL_PRICE>> Get_TB_CONTRACT_DETAIL_PRICE_List(TB_CONTRACT_DETAIL_PRICE p_entity, int p_qty = 0) |
|
|
|
{ |
|
|
|
ResultObject<List<TB_CONTRACT_DETAIL_PRICE>> _ret = new ResultObject<List<TB_CONTRACT_DETAIL_PRICE>>(); |
|
|
|
try |
|
|
@ -705,7 +705,7 @@ namespace CK.SCP.Controller |
|
|
|
} |
|
|
|
if (_buffer.Length > 0) |
|
|
|
{ |
|
|
|
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_CONTRACT_CONTROLLER), "IMPORT_CONTRACT_CHECK",_buffer.ToString()); |
|
|
|
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_CONTRACT_CONTROLLER), "IMPORT_CONTRACT_CHECK", _buffer.ToString()); |
|
|
|
return _buffer.ToString(); |
|
|
|
} |
|
|
|
return string.Empty; |
|
|
@ -731,15 +731,15 @@ namespace CK.SCP.Controller |
|
|
|
{ |
|
|
|
var _contract = p_contract_list.FirstOrDefault(); |
|
|
|
#region 删除老合同
|
|
|
|
var contract=db.TB_CONTRACT.Where(p => p.VendId == _contract.供应商代码 && p.ContractNo == _contract.合同编号); |
|
|
|
var contract = db.TB_CONTRACT.Where(p => p.VendId == _contract.供应商代码 && p.ContractNo == _contract.合同编号); |
|
|
|
if (contract.Count() > 0) |
|
|
|
{ |
|
|
|
var c = contract.FirstOrDefault(); |
|
|
|
if (!string.IsNullOrEmpty(c.BillNo)) |
|
|
|
{ |
|
|
|
var detailPrice = db.TB_CONTRACT_DETAIL_PRICE.Where(p => p.BillNo ==c.BillNo); |
|
|
|
var detailPrice = db.TB_CONTRACT_DETAIL_PRICE.Where(p => p.BillNo == c.BillNo); |
|
|
|
db.TB_CONTRACT_DETAIL_PRICE.RemoveRange(detailPrice); |
|
|
|
var detail=db.TB_CONTRACT_DETAIL.Where(p => p.BillNo ==c.BillNo); |
|
|
|
var detail = db.TB_CONTRACT_DETAIL.Where(p => p.BillNo == c.BillNo); |
|
|
|
db.TB_CONTRACT_DETAIL.RemoveRange(detail); |
|
|
|
db.TB_CONTRACT.Remove(c); |
|
|
|
} |
|
|
@ -780,7 +780,7 @@ namespace CK.SCP.Controller |
|
|
|
_detail_price.EndTime = ConvertHelper.To<DateTime>(itm.结束日期); |
|
|
|
_detail_price.ContractNo = _tbContract.ContractNo; |
|
|
|
_detail_price.QtyBegin = int.Parse(itm.最小起订量1); |
|
|
|
_detail_price.QtyEnd = !string.IsNullOrEmpty(itm.最小起订量2)? int.Parse(itm.最小起订量2):999999999; |
|
|
|
_detail_price.QtyEnd = !string.IsNullOrEmpty(itm.最小起订量2) ? int.Parse(itm.最小起订量2) : 999999999; |
|
|
|
_detail_price.BillNo = _tbContract.BillNo; |
|
|
|
_detail_price.IsDeleted = false; |
|
|
|
_detail_price.PartCode = itm.供应商物料号; |
|
|
@ -928,5 +928,77 @@ namespace CK.SCP.Controller |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static List<V_TB_ASK_DETAIL> GET_CONTRACT_PRICE_LIST_BJ(List<V_TB_ASK_DETAIL> p_list) |
|
|
|
{ |
|
|
|
|
|
|
|
if (p_list.Count > 0) |
|
|
|
{ |
|
|
|
//var ret = Get_TB_CONTRACT_DETAIL_PRICE_List(new TB_CONTRACT_DETAIL_PRICE() { VendId = p_list[0].VendId });
|
|
|
|
//if (ret.State == ReturnStatus.Succeed)
|
|
|
|
//{
|
|
|
|
ScpEntities db = EntitiesFactory.CreateScpInstance(); |
|
|
|
string vendid = p_list[0].VendId; |
|
|
|
List<TB_CONTRACT_DETAIL_PRICE> res = db.TB_CONTRACT_DETAIL_PRICE.Where(q => q.VendId == vendid && q.IsDeleted == false).ToList(); |
|
|
|
var p_priceList = res; |
|
|
|
|
|
|
|
List<string> msgList = new List<string>(); |
|
|
|
var ls = from ask in p_list |
|
|
|
join price in p_priceList on ask.PartCode equals price.PartCode |
|
|
|
select new { VAL1 = ask, VAL2 = price }; |
|
|
|
var list = ls.Where(p => p.VAL1.BeginTime >= p.VAL2.BeginTime && p.VAL1.BeginTime <= p.VAL2.EndTime && p.VAL1.AskQty >= p.VAL2.QtyBegin && p.VAL1.AskQty < p.VAL2.QtyEnd); |
|
|
|
var asklist = p_list.Select(q => q.AskBillNum).ToList(); |
|
|
|
var asndetaillist = db.V_TB_ASN_DETAIL.Where(pl => pl.IsDeleted == false && asklist.Contains(pl.AskBillNum)).ToList(); |
|
|
|
var arrlist = db.TB_ARRIVE_DETAIL.Where(pl => asklist.Contains(pl.Remark) && pl.IsDeleted == false && pl.State == (int)ArriveState.OK && pl.Qty < 0 && pl.BillType == 3).ToList(); |
|
|
|
p_list.ForEach(p => |
|
|
|
{ |
|
|
|
var _entity = list.ToList().Where(itm => itm.VAL1.PartCode == p.PartCode).FirstOrDefault(); |
|
|
|
if (_entity != null) |
|
|
|
{ |
|
|
|
p.ContractPrice = _entity.VAL2.Price; |
|
|
|
p.BlancePrice = p.ContractPrice - p.Price; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
p.ContractPrice = p.Price; |
|
|
|
p.BlancePrice = 0; |
|
|
|
} |
|
|
|
|
|
|
|
//var list11 = db.V_TB_ASN_DETAIL.Where(pl => pl.IsDeleted == false && p.AskBillNum == pl.AskBillNum).ToList();
|
|
|
|
var list_back = arrlist.Where(q => q.Remark == p.AskBillNum).GroupBy(pl => new { pl.Remark, pl.PoLine, pl.PartCode, pl.PoBillNum }).Select(pl => new { BackSum = pl.Sum(itm => itm.Qty), PoLine = pl.Key.PoLine, Remark = pl.Key.Remark, PartCode = pl.Key.PartCode, PoBillNum = pl.Key.PoBillNum }).ToList(); |
|
|
|
var groupList = asndetaillist.Where(q => q.AskBillNum == p.AskBillNum).GroupBy(pl => new { pl.PoBillNum, pl.PoLine, pl.PartCode, pl.AskBillNum }).Select( |
|
|
|
pl => new |
|
|
|
{ |
|
|
|
ShipSum = pl.Sum(itm => itm.Qty), |
|
|
|
PoLine = pl.Key.PoLine, |
|
|
|
PoBillNum = pl.Key.PoBillNum, |
|
|
|
PartCode = pl.Key.PartCode, |
|
|
|
AskBillNum = pl.Key.AskBillNum |
|
|
|
}).ToList(); |
|
|
|
groupList.ForEach(pa => |
|
|
|
{ |
|
|
|
if (pa.PoBillNum == p.PoBillNum && pa.PoLine == p.PoLine && pa.PartCode == p.PartCode && pa.AskBillNum == p.AskBillNum) |
|
|
|
{ |
|
|
|
p.ShippedQty = pa.ShipSum; |
|
|
|
} |
|
|
|
}); |
|
|
|
list_back.ForEach(pl => |
|
|
|
{ |
|
|
|
if (pl.PoBillNum == p.PoBillNum && pl.PoLine == p.PoLine && pl.PartCode == p.PartCode) |
|
|
|
{ |
|
|
|
p.RejectQty = Math.Abs(pl.BackSum);//寄售退货数
|
|
|
|
} |
|
|
|
}); |
|
|
|
decimal a = p.AskQty - (p.ShippedQty == null ? 0 : (decimal)p.ShippedQty) + p.RejectQty - (p.ReduceQty == null ? 0 : (decimal)p.ReduceQty); |
|
|
|
p.CanQty = a; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
|
//}
|
|
|
|
} |
|
|
|
return p_list; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|