From ce055975bf3880012871835719b2c5f7a79a3b41 Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期一, 22 四月 2024 19:21:36 +0800 Subject: [PATCH] 库存调整修改2 --- controllers/location_product_amount.go | 14 ++++++++------ 1 files changed, 8 insertions(+), 6 deletions(-) diff --git a/controllers/location_product_amount.go b/controllers/location_product_amount.go index 82e15ac..a99a6d0 100644 --- a/controllers/location_product_amount.go +++ b/controllers/location_product_amount.go @@ -105,8 +105,8 @@ } } else { if len(operation.Details) > 0 { - records[k].AdjustAmount = operation.Details[0].Amount - records[k].DifferenceAmount = v.Amount.Add(v.AdjustAmount) + records[k].DifferenceAmount = operation.Details[0].Amount + records[k].AdjustAmount = v.DifferenceAmount.Sub(v.Amount) } records[k].OperationId = operation.Id records[k].Status = operation.Status @@ -303,7 +303,8 @@ return } operationSearch := models.NewOperationSearch().SetPreload(true) - operationSearch.SetOrm(operationSearch.Orm.InnerJoins("inner join wms_operation_details on wms_operation_details.operation_id=wms_operation.id").Where("wms_operation_details.product_id=? and wms_operation.id=?", reqParams.ProductId, reqParams.OperationId)) + operationSearch.SetOrm(operationSearch.Orm.InnerJoins("inner join wms_operation_details on wms_operation_details.operation_id="+ + "wms_operation.id").Where("wms_operation_details.product_id=? and wms_operation.id=?", reqParams.ProductId, reqParams.OperationId)) operation, err := operationSearch.First() if err != nil { util.ResponseFormat(c, code.RequestParamError, "鏈壘鍒扮浉鍏充俊鎭�:"+err.Error()) @@ -318,19 +319,20 @@ util.ResponseFormat(c, code.RequestError, err.Error()) return } - locProdtAmount, err := models.NewLocationProductAmountSearch().SetID(reqParams.LocationProductAmountId).First() + locProductAmount, err := models.NewLocationProductAmountSearch().SetID(reqParams.LocationProductAmountId).First() if err != nil { util.ResponseFormat(c, code.RequestError, err.Error()) return } + adjustAmount := operation.Details[0].Amount.Sub(locProductAmount.Amount) if err := models.WithTransaction(func(tx *gorm.DB) error { if err := models.NewOperationSearch().SetOrm(tx).SetID(reqParams.OperationId).Update(&models.Operation{Status: constvar.OperationStatus_Finish}); err != nil { return err } - if err := models.NewMaterialSearch().SetOrm(tx).SetID(reqParams.ProductId).Update(&models.Material{Amount: material.Amount.Add(operation.Details[0].Amount)}); err != nil { + if err := models.NewMaterialSearch().SetOrm(tx).SetID(reqParams.ProductId).Update(&models.Material{Amount: material.Amount.Add(adjustAmount)}); err != nil { return err } - if err := models.NewLocationProductAmountSearch().SetOrm(tx).SetID(reqParams.LocationProductAmountId).Update(&models.LocationProductAmount{Amount: locProdtAmount.Amount.Add(operation.Details[0].Amount)}); err != nil { + if err := models.NewLocationProductAmountSearch().SetOrm(tx).SetID(reqParams.LocationProductAmountId).Update(&models.LocationProductAmount{Amount: operation.Details[0].Amount}); err != nil { return err } return nil -- Gitblit v1.8.0