public List <Info_store_in_item> GetInItems(long linkBill_Id) { //之前出库的数量 Dictionary <string, decimal> dicOutItems = FindDoneOutItems(linkBill_Id); //已经入库数量 Dictionary <string, decimal> dicInItems = FindDoneInItems(linkBill_Id); //预入库的数量 Dictionary <string, Info_store_in_item> dicPreItems = new Dictionary <string, Info_store_in_item>(); foreach (string mtlCode in dicOutItems.Keys) { if (!dicPreItems.ContainsKey(mtlCode)) { Info_mtl_item mtl = Cache.LogicCache.DicMtlItem[mtlCode]; Info_store_in_item item = Miles.Coro.Common.Utils.CopyToOther <Info_mtl_item, Info_store_in_item>(mtl); item.Already_OutQty = dicOutItems[mtlCode]; item.Already_InQty = 0; dicPreItems.Add(mtlCode, item); } else { dicPreItems[mtlCode].Already_OutQty += dicOutItems[mtlCode]; } } foreach (string mtlCode in dicInItems.Keys) { if (!dicPreItems.ContainsKey(mtlCode)) { Info_mtl_item mtl = Cache.LogicCache.DicMtlItem[mtlCode]; Info_store_in_item item = Miles.Coro.Common.Utils.CopyToOther <Info_mtl_item, Info_store_in_item>(mtl); item.Already_OutQty = 0; item.Already_InQty = dicInItems[mtlCode]; dicPreItems.Add(mtlCode, item); } else { dicPreItems[mtlCode].Already_InQty += dicInItems[mtlCode]; } } return(dicPreItems.Values.ToList <Info_store_in_item>()); }
public List <Info_store_in> FindNotDoneBackOrder() { List <Info_store_in> list = this.Repository.Query().From <Tb_store_in>() .ToSelect().EndSelect() .ToWhere() .And(Tb_store_in.Table.StoreIn_State, (int)Enum.InStoreState.New) .And(Tb_store_in.Table.StoreIn_Type, (int)Enum.InStoreType.OrderBackIn) .EndWhere() .ToQuery() .LeftJoin <Tb_store_in_item>() .On(Tb_store_in.Table.StoreIn_Id, Tb_store_in_item.Table.StoreIn_Id) .JoinTable() .ToSelect() .Select(Tb_store_in_item.Table.StoreIn_Id, true) .EndSelect() .ToQuery() .QueryOneMany <Info_store_in, Info_store_in_item, Info_store_in>( (m, i) => { if (i.StoreIn_Id != 0) { m.Items.Add(i); } return(m); } , Tb_store_in.Table.StoreIn_Id ); foreach (Info_store_in info in list) { for (int i = 0; i < info.Items.Count; i++) { Info_store_in_item item = info.Items[i]; Info_mtl_item mtl = Cache.LogicCache.DicMtlItem[item.Mtl_Code]; item = Miles.Coro.Common.Utils.CopyToOther <Info_mtl_item, Info_store_in_item>(mtl, item); } } return(list); }