From b243875e653a35649dc7090203d640cba9b814fd Mon Sep 17 00:00:00 2001 From: yinbentan <yinbentan@live.com> Date: 星期六, 06 七月 2024 16:50:39 +0800 Subject: [PATCH] 未选仓库的时候统计产品数量错误bug修复 --- service/operation.go | 29 ++++++++++++++++++++++------- 1 files changed, 22 insertions(+), 7 deletions(-) diff --git a/service/operation.go b/service/operation.go index c5af300..4895c34 100644 --- a/service/operation.go +++ b/service/operation.go @@ -261,7 +261,7 @@ } } if len(internalInputDetails) > 0 { - opTypeId, err := GetTargetOperationTypeIdByOperation(originOperation, constvar.BaseOperationTypeIncoming) + opTypeId, err := GetTargetOperationTypeIdByWarehouseId(originOperation.ToLocation.WarehouseId, constvar.BaseOperationTypeIncoming) if err != nil { return err } @@ -273,8 +273,10 @@ Comment: "搴撳瓨璋冩嫧鍏ュ簱", BaseOperationType: constvar.BaseOperationTypeIncoming, Details: internalInputDetails, - LocationID: internalInputDetails[0].ToLocationID, + LocationID: originOperation.LocationID, + ToLocationID: originOperation.ToLocationID, OperationTypeName: "搴撳瓨璋冩嫧鍏ュ簱", + WarehouseId: originOperation.ToLocation.WarehouseId, } if err := models.NewOperationSearch().SetOrm(tx).Create(operation); err != nil { return err @@ -316,9 +318,11 @@ Comment: "搴撳瓨璋冩嫧鍑哄簱", BaseOperationType: constvar.BaseOperationTypeOutgoing, Details: outputDetails, - LocationID: outputDetails[0].FromLocationID, + LocationID: originOperation.LocationID, + ToLocationID: originOperation.ToLocationID, OperationTypeName: "搴撳瓨璋冩嫧鍑哄簱", IsInternalOutput: true, + WarehouseId: originOperation.WarehouseId, } if err := models.NewOperationSearch().SetOrm(tx).Create(operation); err != nil { return err @@ -342,8 +346,8 @@ inputDetails = append(inputDetails, &models.OperationDetails{ ProductId: v.ProductId, Amount: v.Amount.Sub(v.StockAmount), - FromLocationID: v.FromLocationID, - ToLocationID: v.ToLocationID, + FromLocationID: 0, + ToLocationID: v.FromLocationID, TotalGrossWeight: v.TotalGrossWeight, TotalNetWeight: v.TotalNetWeight, AuxiliaryAmount: v.AuxiliaryAmount, @@ -356,8 +360,8 @@ outputDetails = append(outputDetails, &models.OperationDetails{ ProductId: v.ProductId, Amount: v.StockAmount.Sub(v.Amount), - FromLocationID: v.ToLocationID, - ToLocationID: v.FromLocationID, + FromLocationID: v.FromLocationID, + ToLocationID: 0, TotalGrossWeight: v.TotalGrossWeight, TotalNetWeight: v.TotalNetWeight, AuxiliaryAmount: v.AuxiliaryAmount, @@ -430,3 +434,14 @@ } return targetOT.Id, nil } + +func GetTargetOperationTypeIdByWarehouseId(warehouseId int, baseOT constvar.BaseOperationType) (operationTypeId int, err error) { + if warehouseId == 0 { + return 0, errors.New("warehouseId miss") + } + targetOT, err := models.NewOperationTypeSearch().SetBaseOperationType(baseOT).SetWarehouseId(warehouseId).First() + if err != nil { + return 0, err + } + return targetOT.Id, nil +} -- Gitblit v1.8.0