From 9e3a239ec0fa13909cb3a98e2ad238b42ac63eaa Mon Sep 17 00:00:00 2001
From: lishihai <dslsh@dscom>
Date: 星期三, 19 六月 2024 20:32:24 +0800
Subject: [PATCH] 概述->新建或编辑(出库/入库)信息,产品的Cost成本单价和SalePrice销售单价的值不会更新的BUG
---
service/material.go | 4 ++--
controllers/operation.go | 33 ++++++++++++++++++++++++++++++++-
models/operation_details.go | 3 +++
3 files changed, 37 insertions(+), 3 deletions(-)
diff --git a/controllers/operation.go b/controllers/operation.go
index 3ccb6e2..f48a1e2 100644
--- a/controllers/operation.go
+++ b/controllers/operation.go
@@ -47,6 +47,7 @@
func (slf OperationController) Add(c *gin.Context) {
var reqParams request.AddOperation
var params models.Operation
+
if err := c.BindJSON(&reqParams); err != nil {
util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
return
@@ -90,8 +91,26 @@
util.ResponseFormat(c, code.RequestParamError, "鍗曞彿宸插瓨鍦�")
return
}
+ err = models.WithTransaction(func(db *gorm.DB) error {
+ if err := models.NewOperationSearch().Create(¶ms); err != nil {
+ return err
+ }
+ od := params.Details
+ for _, v := range od {
+ material, err := models.NewMaterialSearch().SetID(v.ProductId).First()
+ if err != nil {
+ return err
+ }
+ material.Cost = v.Cost
+ material.SalePrice = v.SalePrice
+ if err := models.NewMaterialSearch().SetOrm(db).Update(material); err != nil {
+ return err
+ }
+ }
+ return nil
+ })
- if err := models.NewOperationSearch().Create(¶ms); err != nil {
+ if err != nil {
logx.Errorf("Operation create err: %v", err)
util.ResponseFormat(c, code.SaveFail, "娣诲姞澶辫触锛�"+err.Error())
return
@@ -314,6 +333,18 @@
if err := models.NewOperationSearch().SetOrm(tx).SetID(params.Id).Save(¶ms); err != nil {
return err
}
+ od := params.Details
+ for _, v := range od {
+ material, err := models.NewMaterialSearch().SetID(v.ProductId).First()
+ if err != nil {
+ return err
+ }
+ material.Cost = v.Cost
+ material.SalePrice = v.SalePrice
+ if err := models.NewMaterialSearch().SetOrm(tx).Update(material); err != nil {
+ return err
+ }
+ }
return nil
}); err != nil {
util.ResponseFormat(c, code.RequestParamError, "淇敼澶辫触锛�"+err.Error())
diff --git a/models/operation_details.go b/models/operation_details.go
index 22b9de5..8f01f39 100644
--- a/models/operation_details.go
+++ b/models/operation_details.go
@@ -29,6 +29,9 @@
AuxiliaryUnit string `json:"auxiliaryUnit" gorm:"type:varchar(191);comment:杈呭姪鍗曚綅"`
Remark string `gorm:"type:varchar(1024);comment:澶囨敞" json:"remark"`
IsInternalOutput bool `json:"isInternalOutput"` //鏄惁璋冩嫧浜х敓鐨勫嚭搴�
+
+ Cost decimal.Decimal `json:"cost"` //鎴愭湰鍗曚环
+ SalePrice decimal.Decimal `json:"salePrice"` //閿�鍞崟浠�
}
OperationDetailsSearch struct {
diff --git a/service/material.go b/service/material.go
index ea42769..adabc1d 100644
--- a/service/material.go
+++ b/service/material.go
@@ -183,10 +183,10 @@
}
err = models.WithTransaction(func(db *gorm.DB) error {
- if err := models.NewMaterialSearch().CreateBatch(materialList); err != nil {
+ if err := models.NewMaterialSearch().SetOrm(db).CreateBatch(materialList); err != nil {
return err
}
- if err := models.NewAttributeValueSearch().CreateBatch(attributeValueList); err != nil {
+ if err := models.NewAttributeValueSearch().SetOrm(db).CreateBatch(attributeValueList); err != nil {
return err
}
return nil
--
Gitblit v1.8.0