Browse Source

要货看板明细优化

master
qian 7 months ago
parent
commit
4054645063
  1. 14
      北京北汽/Controller/SCP_ASK_CONTROLLER.cs
  2. 166
      北京北汽/Controller/SCP_CONTRACT_CONTROLLER.cs
  3. 10
      北京北汽/SCP/Views/PlanData/SCP_ASK_DETAIL.aspx
  4. 42
      北京北汽/SCP/Views/PlanData/SCP_ASK_DETAIL.aspx.cs
  5. 10
      北京北汽/SCP/Views/SupplierData/SCP_ASN_CREATE.aspx
  6. 2
      北京北汽/SCP/Views/SupplierData/SCP_ASN_CREATE.aspx.cs

14
北京北汽/Controller/SCP_ASK_CONTROLLER.cs

@ -1541,19 +1541,19 @@ namespace CK.SCP.Controller
// { // {
// list.AddRange(list1); // list.AddRange(list1);
// } // }
//} //}
//list = db.V_TB_ASN_DETAIL.Where(p => p.IsDeleted == false && detail.AskBillNum == p.AskBillNum).ToList(); //list = db.V_TB_ASN_DETAIL.Where(p => p.IsDeleted == false && detail.AskBillNum == p.AskBillNum).ToList();
var asklist = p_list.Select(q => q.AskBillNum).ToList();
var asnlist = db.V_TB_ASN_DETAIL.Where(p => p.IsDeleted == false && asklist.Contains( p.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(itm => p_list.ForEach(itm =>
{ {
var list = db.V_TB_ASN_DETAIL.Where(p => p.IsDeleted == false && itm.AskBillNum == p.AskBillNum).ToList(); //var list = db.V_TB_ASN_DETAIL.Where(p => p.IsDeleted == false && itm.AskBillNum == p.AskBillNum).ToList();
var groupList = list.GroupBy(p => new { p.PoBillNum, p.PoLine, p.PartCode, p.AskBillNum }).Select( var groupList = asnlist.Where(q=>q.AskBillNum == itm.AskBillNum).GroupBy(p => new { p.PoBillNum, p.PoLine, p.PartCode, p.AskBillNum }).Select(
p => new p => new
{ {
ShipSum = p.Sum(itm2 => itm2.Qty), ShipSum = p.Sum(itm2 => itm2.Qty),
@ -1569,7 +1569,7 @@ namespace CK.SCP.Controller
itm.ShippedQty = p.ShipSum; itm.ShippedQty = p.ShipSum;
} }
}); });
var list_back = db.TB_ARRIVE_DETAIL.Where(p => p.Remark == itm.AskBillNum && p.IsDeleted == false && p.State == (int)ArriveState.OK && p.Qty < 0 && p.BillType == 3).GroupBy(p => new { p.Remark, p.PoLine, p.PartCode, p.PoBillNum }).Select(p => new { BackSum = p.Sum(itm1 => itm1.Qty), PoLine = p.Key.PoLine, Remark = p.Key.Remark, PartCode = p.Key.PartCode, PoBillNum = p.Key.PoBillNum }).ToList(); var list_back = arrlist.Where(q=>q.Remark == itm.AskBillNum).GroupBy(p => new { p.Remark, p.PoLine, p.PartCode, p.PoBillNum }).Select(p => new { BackSum = p.Sum(itm1 => itm1.Qty), PoLine = p.Key.PoLine, Remark = p.Key.Remark, PartCode = p.Key.PartCode, PoBillNum = p.Key.PoBillNum }).ToList();
list_back.ForEach(p => list_back.ForEach(p =>
{ {

166
北京北汽/Controller/SCP_CONTRACT_CONTROLLER.cs

@ -18,8 +18,8 @@ namespace CK.SCP.Controller
public class SCP_CONTRACT_CONTROLLER public class SCP_CONTRACT_CONTROLLER
{ {
public static void Get_TB_CONTRACT_List(TB_CONTRACT p_entity, Action<ResultObject<IQueryable<TB_CONTRACT>>> p_action) public static void Get_TB_CONTRACT_List(TB_CONTRACT p_entity, Action<ResultObject<IQueryable<TB_CONTRACT>>> p_action)
{ {
ResultObject<IQueryable<TB_CONTRACT>> _ret = new ResultObject<IQueryable<TB_CONTRACT>>(); ResultObject<IQueryable<TB_CONTRACT>> _ret = new ResultObject<IQueryable<TB_CONTRACT>>();
try try
@ -63,11 +63,11 @@ namespace CK.SCP.Controller
{ {
q = q.Where(p => p.BillNo.Contains(p_entity.BillNo)); q = q.Where(p => p.BillNo.Contains(p_entity.BillNo));
} }
_ret.State = ReturnStatus.Succeed; _ret.State = ReturnStatus.Succeed;
_ret.Result = q; _ret.Result = q;
p_action(_ret); p_action(_ret);
} }
} }
catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常 catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)//捕获实体验证异常
@ -87,7 +87,7 @@ namespace CK.SCP.Controller
} }
catch (OptimisticConcurrencyException ex)//并发冲突异常 catch (OptimisticConcurrencyException ex)//并发冲突异常
{ {
_ret.State = ReturnStatus.Failed; _ret.State = ReturnStatus.Failed;
_ret.ErrorList.Add(ex); _ret.ErrorList.Add(ex);
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_CONTRACT_CONTROLLER), "Get_TB_CONTRACT_List", ex.ToString()); LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_CONTRACT_CONTROLLER), "Get_TB_CONTRACT_List", ex.ToString());
@ -95,7 +95,7 @@ namespace CK.SCP.Controller
} }
catch (ScpException ex) catch (ScpException ex)
{ {
_ret.State = ReturnStatus.Failed; _ret.State = ReturnStatus.Failed;
_ret.ErrorList.Add(ex); _ret.ErrorList.Add(ex);
@ -103,7 +103,7 @@ namespace CK.SCP.Controller
if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException)) if (ex.InnerException != null && ex.InnerException.GetType() == typeof(UpdateException))
{ {
var inner = (UpdateException)ex.InnerException; var inner = (UpdateException)ex.InnerException;
throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); throw new ScpException(ResultCode.Exception, "0000", ex.ToString());
} }
else else
@ -118,7 +118,7 @@ namespace CK.SCP.Controller
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_CONTRACT_CONTROLLER), "Get_TB_CONTRACT_List", e.Message); LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_CONTRACT_CONTROLLER), "Get_TB_CONTRACT_List", e.Message);
throw e; throw e;
} }
} }
public static ResultObject<List<TB_CONTRACT_DETAIL>> Get_TB_CONTRACT_DETAIL_List(TB_CONTRACT_DETAIL p_entity) public static ResultObject<List<TB_CONTRACT_DETAIL>> Get_TB_CONTRACT_DETAIL_List(TB_CONTRACT_DETAIL p_entity)
{ {
@ -164,10 +164,10 @@ namespace CK.SCP.Controller
{ {
q = q.Where(p => p.UpdateInfo.Contains(p_entity.UpdateInfo)); q = q.Where(p => p.UpdateInfo.Contains(p_entity.UpdateInfo));
} }
q = q.Where(p => p.IsDeleted == p_entity.IsDeleted); q = q.Where(p => p.IsDeleted == p_entity.IsDeleted);
_ret.State = ReturnStatus.Succeed; _ret.State = ReturnStatus.Succeed;
_ret.Result = q.ToList(); _ret.Result = q.ToList();
} }
@ -191,7 +191,7 @@ namespace CK.SCP.Controller
} }
catch (OptimisticConcurrencyException ex)//并发冲突异常 catch (OptimisticConcurrencyException ex)//并发冲突异常
{ {
_ret.State = ReturnStatus.Failed; _ret.State = ReturnStatus.Failed;
_ret.ErrorList.Add(ex); _ret.ErrorList.Add(ex);
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_CONTRACT_CONTROLLER), "Get_TB_CONTRACT_DETAIL_List", ex.ToString()); LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_CONTRACT_CONTROLLER), "Get_TB_CONTRACT_DETAIL_List", ex.ToString());
@ -199,7 +199,7 @@ namespace CK.SCP.Controller
} }
catch (ScpException ex) catch (ScpException ex)
{ {
_ret.State = ReturnStatus.Failed; _ret.State = ReturnStatus.Failed;
_ret.ErrorList.Add(ex); _ret.ErrorList.Add(ex);
@ -209,7 +209,7 @@ namespace CK.SCP.Controller
{ {
var inner = (UpdateException)ex.InnerException; var inner = (UpdateException)ex.InnerException;
throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); throw new ScpException(ResultCode.Exception, "0000", ex.ToString());
} }
else else
@ -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) 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>(); 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 join price in p_priceList on po.PartCode equals price.PartCode
select new { VAL1 = po, VAL2 = price }; 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)); 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) 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; return msgList;
@ -250,7 +250,7 @@ namespace CK.SCP.Controller
// { // {
// using (ScpEntities db = EntitiesFactory.CreateScpInstance()) // using (ScpEntities db = EntitiesFactory.CreateScpInstance())
// { // {
// } // }
// } // }
@ -264,14 +264,14 @@ namespace CK.SCP.Controller
{ {
if (p_list.Count > 0) 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) if (ret.State == ReturnStatus.Succeed)
{ {
var p_priceList = ret.Result; var p_priceList = ret.Result;
List<string> msgList = new List<string>(); List<string> msgList = new List<string>();
var ls = from po in p_list var ls = from po in p_list
join price in p_priceList on po.PartCode equals price.PartCode join price in p_priceList on po.PartCode equals price.PartCode
select new { VAL1 = po, VAL2 = price }; select new { VAL1 = po, VAL2 = price };
var list = ls.Where(p => p.VAL1.BeginTime >= p.VAL2.BeginTime && p.VAL1.BeginTime <= p.VAL2.EndTime && p.VAL1.Qty >= p.VAL2.QtyBegin && p.VAL1.Qty < p.VAL2.QtyEnd); var list = ls.Where(p => p.VAL1.BeginTime >= p.VAL2.BeginTime && p.VAL1.BeginTime <= p.VAL2.EndTime && p.VAL1.Qty >= p.VAL2.QtyBegin && p.VAL1.Qty < p.VAL2.QtyEnd);
p_list.ForEach(p => p_list.ForEach(p =>
{ {
@ -361,7 +361,7 @@ namespace CK.SCP.Controller
} }
return p_list; return p_list;
} }
public static List<V_TB_ASK_DETAIL> GET_CONTRACT_PRICE_LIST(List<V_TB_ASK_DETAIL> p_list) public static List<V_TB_ASK_DETAIL> GET_CONTRACT_PRICE_LIST(List<V_TB_ASK_DETAIL> p_list)
{ {
@ -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>>(); ResultObject<List<TB_CONTRACT_DETAIL_PRICE>> _ret = new ResultObject<List<TB_CONTRACT_DETAIL_PRICE>>();
try try
@ -405,7 +405,7 @@ namespace CK.SCP.Controller
using (ScpEntities db = EntitiesFactory.CreateScpInstance()) using (ScpEntities db = EntitiesFactory.CreateScpInstance())
{ {
IQueryable<TB_CONTRACT_DETAIL_PRICE> q = db.TB_CONTRACT_DETAIL_PRICE; IQueryable<TB_CONTRACT_DETAIL_PRICE> q = db.TB_CONTRACT_DETAIL_PRICE;
if (p_entity.UID != 0) if (p_entity.UID != 0)
{ {
@ -439,10 +439,10 @@ namespace CK.SCP.Controller
{ {
q = q.Where(p => p.VendId.Contains(p_entity.VendId)); q = q.Where(p => p.VendId.Contains(p_entity.VendId));
} }
q = q.Where(p => p.IsDeleted == p_entity.IsDeleted); q = q.Where(p => p.IsDeleted == p_entity.IsDeleted);
_ret.State = ReturnStatus.Succeed; _ret.State = ReturnStatus.Succeed;
_ret.Result = q.ToList(); _ret.Result = q.ToList();
} }
@ -466,7 +466,7 @@ namespace CK.SCP.Controller
} }
catch (OptimisticConcurrencyException ex)//并发冲突异常 catch (OptimisticConcurrencyException ex)//并发冲突异常
{ {
_ret.State = ReturnStatus.Failed; _ret.State = ReturnStatus.Failed;
_ret.ErrorList.Add(ex); _ret.ErrorList.Add(ex);
LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_CONTRACT_CONTROLLER), "Get_TB_CONTRACT_DETAIL_PRICE_List", ex.ToString()); LogHelper.Writlog(LogHelper.LogType.Error, typeof(SCP_CONTRACT_CONTROLLER), "Get_TB_CONTRACT_DETAIL_PRICE_List", ex.ToString());
@ -474,7 +474,7 @@ namespace CK.SCP.Controller
} }
catch (ScpException ex) catch (ScpException ex)
{ {
_ret.State = ReturnStatus.Failed; _ret.State = ReturnStatus.Failed;
_ret.ErrorList.Add(ex); _ret.ErrorList.Add(ex);
@ -484,7 +484,7 @@ namespace CK.SCP.Controller
{ {
var inner = (UpdateException)ex.InnerException; var inner = (UpdateException)ex.InnerException;
throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); throw new ScpException(ResultCode.Exception, "0000", ex.ToString());
} }
else else
@ -615,11 +615,11 @@ namespace CK.SCP.Controller
if (string.IsNullOrEmpty(itm.)) if (string.IsNullOrEmpty(itm.))
{ {
_buffer.AppendFormat(string.Format("导入错误合同编号未填写!")); _buffer.AppendFormat(string.Format("导入错误合同编号未填写!"));
} }
if (string.IsNullOrEmpty(itm.) || string.IsNullOrEmpty(itm.)) if (string.IsNullOrEmpty(itm.) || string.IsNullOrEmpty(itm.))
{ {
_buffer.AppendFormat(string.Format("导入错误供应商编号或供应商名称未填写!")); _buffer.AppendFormat(string.Format("导入错误供应商编号或供应商名称未填写!"));
} }
if (string.IsNullOrEmpty(itm.) || string.IsNullOrEmpty(itm.)) if (string.IsNullOrEmpty(itm.) || string.IsNullOrEmpty(itm.))
{ {
@ -705,7 +705,7 @@ namespace CK.SCP.Controller
} }
if (_buffer.Length > 0) 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 _buffer.ToString();
} }
return string.Empty; return string.Empty;
@ -714,7 +714,7 @@ namespace CK.SCP.Controller
{ {
ResultObject<bool> _ret = new ResultObject<bool>(); ResultObject<bool> _ret = new ResultObject<bool>();
int line = 1; int line = 1;
foreach (var itm in p_contract_list) foreach (var itm in p_contract_list)
{ {
if (!string.IsNullOrEmpty(IMPORT_CONTRACT_CHECK(itm))) if (!string.IsNullOrEmpty(IMPORT_CONTRACT_CHECK(itm)))
@ -731,15 +731,15 @@ namespace CK.SCP.Controller
{ {
var _contract = p_contract_list.FirstOrDefault(); var _contract = p_contract_list.FirstOrDefault();
#region 删除老合同 #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) if (contract.Count() > 0)
{ {
var c = contract.FirstOrDefault(); var c = contract.FirstOrDefault();
if (!string.IsNullOrEmpty(c.BillNo)) 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); 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_DETAIL.RemoveRange(detail);
db.TB_CONTRACT.Remove(c); db.TB_CONTRACT.Remove(c);
} }
@ -752,11 +752,11 @@ namespace CK.SCP.Controller
_tbContract.CreateUser = p_creator; _tbContract.CreateUser = p_creator;
_tbContract.ContractNo = _contract.; _tbContract.ContractNo = _contract.;
_tbContract.IsDeleted = false; _tbContract.IsDeleted = false;
db.TB_CONTRACT.Add(_tbContract); db.TB_CONTRACT.Add(_tbContract);
var list = p_contract_list.Distinct(new SCP_CONTRACT_EXCEL_COMPARE()).ToList(); var list = p_contract_list.Distinct(new SCP_CONTRACT_EXCEL_COMPARE()).ToList();
foreach (var itm in list) foreach (var itm in list)
{ {
var _tbContract_detail = new TB_CONTRACT_DETAIL(); var _tbContract_detail = new TB_CONTRACT_DETAIL();
@ -780,7 +780,7 @@ namespace CK.SCP.Controller
_detail_price.EndTime = ConvertHelper.To<DateTime>(itm.); _detail_price.EndTime = ConvertHelper.To<DateTime>(itm.);
_detail_price.ContractNo = _tbContract.ContractNo; _detail_price.ContractNo = _tbContract.ContractNo;
_detail_price.QtyBegin = int.Parse(itm.1); _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.BillNo = _tbContract.BillNo;
_detail_price.IsDeleted = false; _detail_price.IsDeleted = false;
_detail_price.PartCode = itm.; _detail_price.PartCode = itm.;
@ -863,7 +863,7 @@ namespace CK.SCP.Controller
{ {
_ret.State = ReturnStatus.Failed; _ret.State = ReturnStatus.Failed;
_ret.Result = false; _ret.Result = false;
} }
} }
@ -887,7 +887,7 @@ namespace CK.SCP.Controller
} }
catch (OptimisticConcurrencyException ex)//并发冲突异常 catch (OptimisticConcurrencyException ex)//并发冲突异常
{ {
_ret.State = ReturnStatus.Failed; _ret.State = ReturnStatus.Failed;
_ret.Result = false; _ret.Result = false;
_ret.ErrorList.Add(ex); _ret.ErrorList.Add(ex);
@ -896,7 +896,7 @@ namespace CK.SCP.Controller
} }
catch (ScpException ex) catch (ScpException ex)
{ {
_ret.State = ReturnStatus.Failed; _ret.State = ReturnStatus.Failed;
_ret.Result = false; _ret.Result = false;
@ -907,7 +907,7 @@ namespace CK.SCP.Controller
{ {
var inner = (UpdateException)ex.InnerException; var inner = (UpdateException)ex.InnerException;
throw new ScpException(ResultCode.Exception, "0000", ex.ToString()); throw new ScpException(ResultCode.Exception, "0000", ex.ToString());
} }
else else
@ -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;
}
} }
} }

10
北京北汽/SCP/Views/PlanData/SCP_ASK_DETAIL.aspx

@ -58,7 +58,7 @@
<f:Grid runat="server" ID="Grid_V_TB_ASK_DETAIL" <f:Grid runat="server" ID="Grid_V_TB_ASK_DETAIL"
DataKeyNames ="UID,PoBillNum,PoLine,PartCode,PartDesc1,PartDesc2,AskBillNum,AskQty,ReduceQty,ShippedQty,CanQty" DataKeyNames ="UID,PoBillNum,PoLine,PartCode,PartDesc1,PartDesc2,AskBillNum,AskQty,ReduceQty,ShippedQty,CanQty"
IsDatabasePaging="True" AllowPaging="True" PageSize="2000" OnPageIndexChange="Grid_V_TB_ASK_DETAIL_PageIndexChange" EnableCheckBoxSelect="true" IsDatabasePaging="True" AllowPaging="True" PageSize="20" OnPageIndexChange="Grid_V_TB_ASK_DETAIL_PageIndexChange" EnableCheckBoxSelect="true"
AutoScroll="True" SortField="PoLine" SortDirection="DESC" OnRowDataBound="Grid_V_TB_ASK_DETAIL_RowDataBound" EnableTextSelection="true" > AutoScroll="True" SortField="PoLine" SortDirection="DESC" OnRowDataBound="Grid_V_TB_ASK_DETAIL_RowDataBound" EnableTextSelection="true" >
<PageItems> <PageItems>
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server"> <f:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
@ -67,11 +67,11 @@
</f:ToolbarText> </f:ToolbarText>
<f:DropDownList ID="ddlGridPageSize" Width="80px" AutoPostBack="true" OnSelectedIndexChanged="ddlGridPageSize_SelectedIndexChanged" <f:DropDownList ID="ddlGridPageSize" Width="80px" AutoPostBack="true" OnSelectedIndexChanged="ddlGridPageSize_SelectedIndexChanged"
runat="server"> runat="server">
<f:ListItem Text="10" Value="10" /> <f:ListItem Text="20" Value="20" />
<f:ListItem Text="40" Value="40" /> <f:ListItem Text="50" Value="50" />
<f:ListItem Text="80" Value="80" /> <%--<f:ListItem Text="80" Value="80" />
<f:ListItem Text="100" Value="100" /> <f:ListItem Text="100" Value="100" />
<f:ListItem Text="200" Value="200" /> <f:ListItem Text="200" Value="200" />--%>
</f:DropDownList> </f:DropDownList>
</PageItems> </PageItems>
<Columns> <Columns>

42
北京北汽/SCP/Views/PlanData/SCP_ASK_DETAIL.aspx.cs

@ -18,6 +18,7 @@ namespace SCP.PlanData
{ {
public partial class SCP_ASK_DETAIL : PageBase public partial class SCP_ASK_DETAIL : PageBase
{ {
private List<V_TB_ASK_DETAIL> listnorequ = new List<V_TB_ASK_DETAIL>();
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
if (!IsPostBack) if (!IsPostBack)
@ -35,9 +36,10 @@ namespace SCP.PlanData
SearchV_TB_ASK_DETAIL_VIEW((ret) => SearchV_TB_ASK_DETAIL_VIEW((ret) =>
{ {
Grid_V_TB_ASK_DETAIL.RecordCount = ret.Count(); Grid_V_TB_ASK_DETAIL.RecordCount = ret.Count();
listnorequ = ret.ToList();
var list = SortAndPage<V_TB_ASK_DETAIL>(ret, Grid_V_TB_ASK_DETAIL); var list = SortAndPage<V_TB_ASK_DETAIL>(ret, Grid_V_TB_ASK_DETAIL);
var _ls = SCP_CONTRACT_CONTROLLER.GET_CONTRACT_PRICE_LIST(list.ToList()); var _ls = SCP_CONTRACT_CONTROLLER.GET_CONTRACT_PRICE_LIST_BJ(list.ToList());
Grid_V_TB_ASK_DETAIL.DataSource = SCP_ASK_CONTROLLER.Get_CAN_SHIPQTY(_ls); ; Grid_V_TB_ASK_DETAIL.DataSource = _ls; //SCP_ASK_CONTROLLER.Get_CAN_SHIPQTY(_ls);
Grid_V_TB_ASK_DETAIL.DataBind(); Grid_V_TB_ASK_DETAIL.DataBind();
}); });
} }
@ -187,17 +189,33 @@ namespace SCP.PlanData
} }
public void BindDetail() public void BindDetail()
{ {
SearchV_TB_ASK_DETAILData((ret) => var _str = Request["AskBillNum"];
if (!string.IsNullOrEmpty(_str))
{ {
var _str= Request["AskBillNum"]; SearchV_TB_ASK_DETAILData((ret) =>
var _list=_str.Split(',').ToList(); {
ret = ret.Where(p => _list.Contains(p.AskBillNum)); var _list = _str.Split(',').ToList();
Grid_V_TB_ASK_DETAIL.RecordCount = ret.Count(); ret = ret.Where(p => _list.Contains(p.AskBillNum));
var list = SortAndPage<V_TB_ASK_DETAIL>(ret, Grid_V_TB_ASK_DETAIL); Grid_V_TB_ASK_DETAIL.RecordCount = ret.Count();
var _ls = SCP_CONTRACT_CONTROLLER.GET_CONTRACT_PRICE_LIST(list.ToList()); var list = SortAndPage<V_TB_ASK_DETAIL>(ret, Grid_V_TB_ASK_DETAIL);
Grid_V_TB_ASK_DETAIL.DataSource = SCP_ASK_CONTROLLER.Get_CAN_SHIPQTY(_ls); var _ls = SCP_CONTRACT_CONTROLLER.GET_CONTRACT_PRICE_LIST_BJ(list.ToList());
Grid_V_TB_ASK_DETAIL.DataBind(); Grid_V_TB_ASK_DETAIL.DataSource = _ls/* SCP_ASK_CONTROLLER.Get_CAN_SHIPQTY(_ls)*/;
}); Grid_V_TB_ASK_DETAIL.DataBind();
});
}
else
{
SearchV_TB_ASK_DETAIL_VIEW((ret) =>
{
Grid_V_TB_ASK_DETAIL.RecordCount = ret.Count();
listnorequ = ret.ToList();
var list = SortAndPage<V_TB_ASK_DETAIL>(ret, Grid_V_TB_ASK_DETAIL);
var _ls = SCP_CONTRACT_CONTROLLER.GET_CONTRACT_PRICE_LIST_BJ(list.ToList());
Grid_V_TB_ASK_DETAIL.DataSource = _ls; //SCP_ASK_CONTROLLER.Get_CAN_SHIPQTY(_ls);
Grid_V_TB_ASK_DETAIL.DataBind();
});
}
} }
protected void btnOutput_Click(object sender, EventArgs e) protected void btnOutput_Click(object sender, EventArgs e)

10
北京北汽/SCP/Views/SupplierData/SCP_ASN_CREATE.aspx

@ -64,7 +64,7 @@
<f:Grid runat="server" ID="Grid_V_TB_ASK_DETAIL" <f:Grid runat="server" ID="Grid_V_TB_ASK_DETAIL"
DataKeyNames ="UID,PoBillNum,PoLine,PartCode,ShippedQty,ReceivedQty,BeginTime,EndTime,PoUnit,LocUnit,Price,Currency,PackQty,UnConv,DockCode,State,Remark,CreateTime,CreateUser,UpdateTime,UpdateUser,UpdateInfo,IsDeleted,PartDesc1,CurrencyDesc,Site,VendName,PartDesc2,AskBillNum,AskQty,TempQty,ReceivedPort,ProduceDate,ReduceQty,ValidityDays,Batch,SubSite" DataKeyNames ="UID,PoBillNum,PoLine,PartCode,ShippedQty,ReceivedQty,BeginTime,EndTime,PoUnit,LocUnit,Price,Currency,PackQty,UnConv,DockCode,State,Remark,CreateTime,CreateUser,UpdateTime,UpdateUser,UpdateInfo,IsDeleted,PartDesc1,CurrencyDesc,Site,VendName,PartDesc2,AskBillNum,AskQty,TempQty,ReceivedPort,ProduceDate,ReduceQty,ValidityDays,Batch,SubSite"
IsDatabasePaging="True" AllowPaging="True" OnPageIndexChange="Grid_V_TB_ASK_DETAIL_PageIndexChange" OnRowDataBound="Grid_V_TB_ASK_DETAIL_RowDataBound" IsDatabasePaging="True" AllowPaging="True" OnPageIndexChange="Grid_V_TB_ASK_DETAIL_PageIndexChange" OnRowDataBound="Grid_V_TB_ASK_DETAIL_RowDataBound"
EnableRowSelectEvent="True" PageSize="500" AutoScroll="True" SortField="PoLine" SortDirection="DESC" AllowCellEditing="true" ClicksToEdit="1"> EnableRowSelectEvent="True" PageSize="50" AutoScroll="True" SortField="PoLine" SortDirection="DESC" AllowCellEditing="true" ClicksToEdit="1">
<PageItems> <PageItems>
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server"> <f:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
</f:ToolbarSeparator> </f:ToolbarSeparator>
@ -72,9 +72,11 @@
</f:ToolbarText> </f:ToolbarText>
<f:DropDownList ID="ddlGridPageSize" Width="80px" AutoPostBack="true" OnSelectedIndexChanged="ddlGridPageSize_SelectedIndexChanged" <f:DropDownList ID="ddlGridPageSize" Width="80px" AutoPostBack="true" OnSelectedIndexChanged="ddlGridPageSize_SelectedIndexChanged"
runat="server"> runat="server">
<f:ListItem Text="50" Value="50" />
<f:ListItem Text="100" Value="500" /> <f:ListItem Text="100" Value="100" />
<f:ListItem Text="200" Value="1000" /> <f:ListItem Text="200" Value="200" />
<f:ListItem Text="500" Value="500" />
<f:ListItem Text="1000" Value="1000" />
</f:DropDownList> </f:DropDownList>
</PageItems> </PageItems>

2
北京北汽/SCP/Views/SupplierData/SCP_ASN_CREATE.aspx.cs

@ -99,7 +99,7 @@ namespace SCP.SupplierData
{ {
Grid_V_TB_ASK_DETAIL.RecordCount = ret.Count(); Grid_V_TB_ASK_DETAIL.RecordCount = ret.Count();
var list = SortAndPage<V_TB_ASK_DETAIL>(ret, Grid_V_TB_ASK_DETAIL); var list = SortAndPage<V_TB_ASK_DETAIL>(ret, Grid_V_TB_ASK_DETAIL);
var _ls = SCP_ASK_CONTROLLER.Get_CAN_SHIPQTY(ret.ToList()); var _ls = SCP_ASK_CONTROLLER.Get_CAN_SHIPQTY(list.ToList());
var _notifyList = new List<string>(); var _notifyList = new List<string>();
_ls.ForEach(p => _ls.ForEach(p =>
{ {

Loading…
Cancel
Save