|
|
@ -5008,24 +5008,13 @@ namespace CounsellorBL.ORD |
|
|
|
} |
|
|
|
|
|
|
|
Int32.TryParse(qdsOrderMstTotal.DATA.Tables[0].Rows[0]?[0]?.ToString(), out int TotalCount); |
|
|
|
|
|
|
|
//先取得有幾個type=2的資料的uid集合
|
|
|
|
List<tb_ord_order_detail> lstOrderDetail = new List<tb_ord_order_detail>(); |
|
|
|
var lstStockMatUid= qdsOrderMst.Where(x => x.type == (int)Enums.ArticleType.Stock).Select(x => x.uid).ToList(); |
|
|
|
if (lstStockMatUid.Count() > 0) { |
|
|
|
string sMsg = GetlstOrderDetail(lstStockMatUid, out lstOrderDetail); |
|
|
|
if (sMsg != null) |
|
|
|
{ |
|
|
|
throw new Exception(sMsg); |
|
|
|
} |
|
|
|
} |
|
|
|
int sn = nPageIdx * nPageNum + 1;// 0 => 1
|
|
|
|
int received = 0; |
|
|
|
int receivable = 0; |
|
|
|
foreach (var detail in qdsOrderMst) |
|
|
|
{ |
|
|
|
received = detail.type == (int)Enums.ArticleType.Stock ? lstOrderDetail.Where(x => x.order_uid == detail.uid).Sum(x => x.take_qty*(x.price/ x.order_qty)) : detail.received; |
|
|
|
receivable = detail.type == (int)Enums.ArticleType.Stock ? lstOrderDetail.Where(x => x.order_uid == detail.uid).Sum(x => x.price) : detail.receivable; |
|
|
|
received = detail.received; |
|
|
|
receivable = detail.receivable; |
|
|
|
records.Add(new OrderMaster() |
|
|
|
{ |
|
|
|
uid = detail.uid, |
|
|
@ -5049,59 +5038,5 @@ namespace CounsellorBL.ORD |
|
|
|
|
|
|
|
return (records, TotalCount); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 取得OrderDetailList列表(現貨訂單的)
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="lstStockMatUid"></param>
|
|
|
|
/// <param name="qdGroup"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
private string GetlstOrderDetail(List<string> lstStockMatUid, out List<tb_ord_order_detail> lstOrderDetail) |
|
|
|
{ |
|
|
|
// 送出資料
|
|
|
|
lstOrderDetail = new List<tb_ord_order_detail>(); |
|
|
|
|
|
|
|
string sMsg; |
|
|
|
QueryJsonElementCollection lBlocks = new QueryJsonElementCollection(); |
|
|
|
|
|
|
|
QueryJsonElement qjeOrderDatail = lBlocks.GetInst(); |
|
|
|
qjeOrderDatail.table = tb_ord_order_detail.TABLENAME; |
|
|
|
qjeOrderDatail.displaycols = new List<string>() |
|
|
|
{ |
|
|
|
tb_ord_order_detail.CN_PRICE, |
|
|
|
tb_ord_order_detail.CN_ORDER_QTY, |
|
|
|
tb_ord_order_detail.CN_TAKE_QTY |
|
|
|
}; |
|
|
|
lBlocks.Add(qjeOrderDatail); |
|
|
|
|
|
|
|
QueryJsonElement qjeIncomingReturnRecord = lBlocks.GetInst(); |
|
|
|
qjeIncomingReturnRecord.table = tb_ord_incoming_return_record.TABLENAME; |
|
|
|
qjeIncomingReturnRecord.jointable = qjeOrderDatail; |
|
|
|
qjeIncomingReturnRecord.jointype = QueryJsonElement.INNER_JOIN; |
|
|
|
qjeIncomingReturnRecord.joincols = new Dictionary<string, string> { { tb_ord_order_detail.CN_ARTICLE2PRODUCT_UID, tb_ord_incoming_return_record.CN_ARTICLE2PRODUCT_UID } }; |
|
|
|
qjeIncomingReturnRecord.displaycols = new List<string>() |
|
|
|
{ |
|
|
|
tb_ord_incoming_return_record.CN_ORDER_UID |
|
|
|
}; |
|
|
|
qjeIncomingReturnRecord.wherecols = new WhereNode(tb_ord_incoming_return_record.CN_ORDER_UID, WhereNode.EColumnOperation.EOT_IN, typeof(tb_ord_incoming_return_record), lstStockMatUid.ToArray()); |
|
|
|
lBlocks.Add(qjeIncomingReturnRecord); |
|
|
|
|
|
|
|
sMsg = MakeSelectJoinByBlocks(lBlocks, out Command cRes); |
|
|
|
|
|
|
|
if (sMsg != null) |
|
|
|
{ |
|
|
|
lstOrderDetail = null; |
|
|
|
return sMsg; |
|
|
|
} |
|
|
|
ArsenalInterface ai = ArsenalDBMgr.GetInst(cRes); |
|
|
|
lstOrderDetail = ai.RunQueryList<tb_ord_order_detail>(cRes); |
|
|
|
sMsg = GetLastErrorCode(cRes); |
|
|
|
if (sMsg != null) |
|
|
|
{ |
|
|
|
return sMsg; |
|
|
|
} |
|
|
|
return sMsg; |
|
|
|
} |
|
|
|
} |
|
|
|
} |