/// <summary> /// 获取出库单所有的信息 /// </summary> /// <param name="iMainId"></param> /// <param name="currentUser"></param> /// <returns></returns> public async Task <ResponseObject <TWMOtherWhSendMainQueryModel> > GetWholeMainData(int iMainId, CurrentUser currentUser) { var result = await GetMainData(iMainId); result.IsShowEdit = (result.AuditStatus != 2 && result.OperatorId == currentUser.UserID) ? true : false; for (int i = 0; i < result.ChildList.Count; i++) { var thisEntity = result.ChildList[i]; TWMStaQuery tWMStaQuery = new TWMStaQuery(); tWMStaQuery.MaterialId = thisEntity.MaterialId; tWMStaQuery.WarehouseId = thisEntity.WarehouseId; if (result.AuditStatus != 2) { tWMStaQuery.OperateType = OperateEnum.Other; tWMStaQuery.EditID = iMainId; } var tWMCountModel = _staticInventory.GeTWMCountModel(tWMStaQuery); if (result.AuditStatus == 2) { thisEntity.AvailableNum = tWMCountModel.AccountNum; } else { thisEntity.AvailableNum = tWMCountModel.AvaiableNum; } } return(ResponseUtil <TWMOtherWhSendMainQueryModel> .SuccessResult(result)); }
public ResponseObject <Decimal> Calculate(CalculateQueryModel requestObject) { CurrentUser userInfo = TokenManager.GetCurentUserbyToken(Request.Headers); TWMStaQuery tWMStaQuery = new Models.TWMStaQuery() { EditID = requestObject.ID, MaterialId = requestObject.MaterialId, WarehouseId = requestObject.houseID, OperateType = OperateEnum.Other }; var result = _staticInventory.GeTWMCountModel(tWMStaQuery); return(ResponseUtil <Decimal> .SuccessResult(result.AvaiableNum)); }
public ResponseObject <TWMCountModel> GetAmount(RequestPost <TWMStaQuery> requestPost) { return(ResponseUtil <TWMCountModel> .SuccessResult(_service.GeTWMCountModel(requestPost.PostData))); }
public async Task <ResponseObject <TWMSalesMainQueryModel> > GetWholeMainData(int iMainId, CurrentUser currentUser) { try { RequestGet requestGet = new RequestGet() { IsPaging = false, QueryConditions = new List <QueryCondition>() { new QueryCondition() { Column = "Id", Condition = ConditionEnum.Equal, Content = iMainId.ToString() } } }; var allMain = await GetMainListAsync(requestGet, currentUser); var mainModel = allMain.Data.FirstOrDefault(); var detailModelsSql = _db.Instance.Queryable <TWMSalesDetailDbModel, TBMMaterialFileDbModel, TBMDictionaryTypeDbModel, TBMDictionaryDbModel, TBMDictionaryDbModel, TBMDictionaryDbModel, TWMSalesMainDbModel, TSSMSalesOrderDetailDbModel , TBMPackageDbModel, TMMColorSolutionMainDbModel>( (t, t0, t1, t2, t3, t4, t5, t6, t7, t8) => new object[] { JoinType.Left, t.MaterialId == t0.ID, JoinType.Left, t0.MaterialTypeId == t1.ID, JoinType.Left, t0.ColorId == t2.ID, JoinType.Left, t0.BaseUnitId == t3.ID, JoinType.Left, t0.WarehouseUnitId == t4.ID, JoinType.Inner, t.MainId == t5.ID, JoinType.Inner, t.SalesOrderDetailId == t6.ID, JoinType.Left, t0.PackageID == t7.ID, JoinType.Left, t6.ColorSolutionId == t8.ID }) .Select((t, t0, t1, t2, t3, t4, t5, t6, t7, t8) => new TWMSalesDetailQueryModel { ID = t.ID, MainId = t.MainId, MaterialId = t.MaterialId, MaterialName = t0.MaterialName, MaterialCode = t0.MaterialCode, WarehouseId = t.WarehouseId, ActualNum = t.ActualNum, SalesOrderActualNum = t.SalesOrderActualNum, SalesOrderDetailId = t.SalesOrderDetailId, UnitPrice = t.UnitPrice, Amount = t.Amount, MaterialTypeId = t0.MaterialTypeId, MaterialTypeName = t1.TypeName, ColorId = t0.ColorId, ColorName = t2.DicValue, BaseUnitId = t0.BaseUnitId, BaseUnitName = t3.DicValue, WarehouseUnitId = t0.WarehouseUnitId, WarehouseUnitName = SqlFunc.IsNullOrEmpty(t4.ID) ? t3.DicValue : t4.DicValue, SalesUnitId = t0.SalesUnitId, SalesRate = t0.SalesRate, WarehouseRate = t0.WarehouseRate, Spec = t0.Spec, Remark = t.Remark, SalesNum = t6.SalesNum, ShouldSaleNum = t6.TransferNum, PackageCode = t7.DicCode, PackageName = t7.DicValue, ColorSolutionName = t8.SolutionCode }) .Where(t => t.MainId == iMainId).OrderBy(t => t.ID); var detailModels = await detailModelsSql.ToListAsync(); //物料 List <TBMMaterialFileCacheModel> mList = BasicCacheGet.GetMaterial(currentUser); detailModels.ForEach(p => { TBMMaterialFileCacheModel me = mList.Where(x => x.ID == p.MaterialId).FirstOrDefault(); if (me == null) { throw new Exception($"物料{p.MaterialId},不存在"); } TWMStaQuery tWMStaQuery = new TWMStaQuery(); tWMStaQuery.MaterialId = p.MaterialId; tWMStaQuery.WarehouseId = p.WarehouseId; if (mainModel.AuditStatus != 2) { //p.WaitNum = p.WaitNum - p.ActualNum; tWMStaQuery.EditID = mainModel.ID; tWMStaQuery.OperateType = OperateEnum.Sale; // p.ShouldNum = p.SalesOrderActualNum + p.ActualNum; p.ShouldSaleNum = p.ShouldSaleNum + p.SalesOrderActualNum; } p.SalesNumOnInventory = GetInveroryFromSaleNum(me, p.SalesNum); p.AvailableNum = _staticInventory.GeTWMCountModel(tWMStaQuery).AvaiableNum; }); mainModel.ChildList = detailModels; return(ResponseUtil <TWMSalesMainQueryModel> .SuccessResult(mainModel)); } catch (Exception ex) { return(ResponseUtil <TWMSalesMainQueryModel> .FailResult(null)); } }
public async Task <ResponseObject <TWMProductionMainQueryModel> > GetWholeMainData(int iMainId, CurrentUser currentUser) { try { RequestGet requestGet = new RequestGet() { IsPaging = false, QueryConditions = new List <QueryCondition>() { new QueryCondition() { Column = "Id", Condition = ConditionEnum.Equal, Content = iMainId.ToString() } } }; var allMain = await GetMainListAsync(requestGet, currentUser); var mainModel = allMain.Data.FirstOrDefault(); var materList = BasicCacheGet.GetMaterial(currentUser); var dicList = BasicCacheGet.GetDic(currentUser); var detailModels = await _db.Instance.Queryable <TWMProductionDetailDbModel, TWMProductionMainDbModel, TBMMaterialFileDbModel, TMMPickApplyMainDbModel, TMMPickApplyDetailDbModel>( (t, t0, t1, t2, t3) => new object[] { JoinType.Inner, t.MainId == t0.ID, JoinType.Inner, t.MaterialId == t1.ID, JoinType.Inner, t0.SourceId == t2.ID, JoinType.Inner, t.PickApplyDetailId == t3.ID } ).Select((t, t0, t1, t2, t3) => new TWMProductionDetailQueryModel { ID = t.ID, MainId = t.MainId, MaterialId = t.MaterialId, MaterialName = t1.MaterialName, MaterialCode = t1.MaterialCode, WarehouseId = t.WarehouseId, ActualNum = t.ActualNum, PickActualNum = t.PickActualNum, PickApplyDetailId = t.PickApplyDetailId, UnitPrice = t.UnitPrice, Amount = t.Amount, MaterialTypeId = t1.MaterialTypeId, //MaterialTypeName = t1.TypeName, ColorId = t1.ColorId, //ColorName = t2.DicValue, BaseUnitId = t1.BaseUnitId, //BaseUnitName = t3.DicValue, WarehouseUnitId = t1.WarehouseUnitId, //WarehouseUnitName = t4.DicValue, WarehouseRate = t1.WarehouseRate, ProduceRate = t1.ProduceRate, ProduceUnitId = t1.ProduceUnitId, //ProduceUnitName = t5.DicValue, Spec = t1.Spec, Remark = t.Remark, TransNum = t3.TransNum, }) .Where(t => t.MainId == iMainId) .ToListAsync(); detailModels.ForEach((x) => { var thisMaterial = materList.Where(p => p.ID == x.MaterialId).FirstOrDefault(); if (mainModel.AuditStatus != 2) { x.TransNum = x.TransNum + x.PickActualNum; } x.MaterialTypeName = thisMaterial.MaterialTypeName; x.ColorName = thisMaterial.ColorName; x.BaseUnitName = thisMaterial.BaseUnitName; x.WarehouseUnitName = thisMaterial.WarehouseUnitName; x.ProduceUnitName = thisMaterial.ProduceUnitName; TWMStaQuery tWMStaQuery = new TWMStaQuery(); tWMStaQuery.MaterialId = x.MaterialId; tWMStaQuery.WarehouseId = x.WarehouseId; if (mainModel.AuditStatus != 2) { tWMStaQuery.EditID = mainModel.ID; tWMStaQuery.OperateType = OperateEnum.Product; } x.AvailableNum = _staticInventory.GeTWMCountModel(tWMStaQuery).AvaiableNum; }); mainModel.ChildList = detailModels; return(ResponseUtil <TWMProductionMainQueryModel> .SuccessResult(mainModel)); } catch (Exception ex) { return(ResponseUtil <TWMProductionMainQueryModel> .FailResult(null)); } }