From 4af540bc284454a6889ded0e8c99c40ae9516e0a Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 30 七月 2024 14:45:53 +0800
Subject: [PATCH] 修正保存物料总库存的多单位
---
controllers/product_controller.go | 1 +
models/material.go | 18 +++++++++++++++++-
service/operation.go | 3 ++-
3 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/controllers/product_controller.go b/controllers/product_controller.go
index eb8890c..fa48b5f 100644
--- a/controllers/product_controller.go
+++ b/controllers/product_controller.go
@@ -803,6 +803,7 @@
return errors.New(fmt.Sprintf("浜у搧锛�%v,搴撳瓨锛�%v,鎶ュ簾锛�%v,鏁伴噺涓嶅锛屾棤娉曞畬鎴愭姤搴熸搷浣�", v.Product.Name, v.Product.Amount.String(), v.Amount.String()))
}
listDetails[k].Product.Amount = listDetails[k].Product.Amount.Sub(v.Amount)
+ listDetails[k].Product.StockMoreUnitList = service.SubMoreUnit(listDetails[k].Product.StockMoreUnitList, v.MoreUnitList)
if err := tx.Save(&listDetails[k].Product).Error; err != nil {
return err
}
diff --git a/models/material.go b/models/material.go
index 75e15d3..f28215e 100644
--- a/models/material.go
+++ b/models/material.go
@@ -80,7 +80,9 @@
ReorderRuleNum int64 `json:"reorderRuleNum"`
MoreUnit *bool `json:"moreUnit" gorm:"type:tinyint(1);default:false;comment:鍚姩澶氬崟浣�"`
MoreUnitList []UnitItems `json:"moreUnitList" gorm:"-"`
- MoreUnitValue string `json:"-" gorm:"type:varchar(255);comment:澶氬崟浣嶅��"`
+ MoreUnitValue string `json:"-" gorm:"type:varchar(255);comment:澶氬崟浣嶅��"` //澶氬崟浣嶆崲绠楁瘮渚�
+ StockMoreUnitList []UnitItems `json:"-" gorm:"-"` //澶氬崟浣嶅瓨鍌ㄧ殑鍊�
+ StockMoreUnitValue string `json:"-" gorm:"type:varchar(512);comment:澶氬崟浣嶅��"` //澶氬崟浣嶅瓨鍌ㄧ殑鍊�
GrossWeight decimal.Decimal `json:"grossWeight" gorm:"type:decimal(20,3);comment:姣涢噸"`
NetWeight decimal.Decimal `json:"netWeight" gorm:"type:decimal(20,3);comment:鍑�閲�"`
GrossUnit string `json:"grossUnit" gorm:"type:varchar(255);comment:姣涢噸鍗曚綅"`
@@ -177,6 +179,20 @@
}
slf.MoreUnitValue = string(str)
}
+ if len(slf.StockMoreUnitList) != 0 {
+ items := make([]UnitItems, 0)
+ for k, item := range slf.StockMoreUnitList {
+ if item.Unit != "" && !item.Amount.IsZero() {
+ items = append(items, slf.StockMoreUnitList[k])
+ }
+ }
+
+ str, err := json.Marshal(items)
+ if err != nil {
+ return err
+ }
+ slf.StockMoreUnitValue = string(str)
+ }
return
}
diff --git a/service/operation.go b/service/operation.go
index 514bdc8..a86aabe 100644
--- a/service/operation.go
+++ b/service/operation.go
@@ -125,7 +125,7 @@
var details []*models.OperationDetails
for k, v := range listDetails {
listDetails[k].Product.Amount = listDetails[k].Product.Amount.Add(v.Amount)
- listDetails[k].Product.MoreUnitList = AddMoreUnit(listDetails[k].Product.MoreUnitList, v.MoreUnitList)
+ listDetails[k].Product.StockMoreUnitList = AddMoreUnit(listDetails[k].Product.StockMoreUnitList, v.MoreUnitList)
if err := tx.Save(&listDetails[k].Product).Error; err != nil {
return err
}
@@ -249,6 +249,7 @@
return errors.New(fmt.Sprintf("浜у搧锛�%v, 澶氬崟浣嶆暟閲忎笉澶燂紝鏃犳硶瀹屾垚鍑哄簱鎿嶄綔", v.Product.Name))
}
listDetails[k].Product.Amount = listDetails[k].Product.Amount.Sub(v.Amount)
+ listDetails[k].Product.StockMoreUnitList = SubMoreUnit(listDetails[k].Product.StockMoreUnitList, v.MoreUnitList)
if err := models.NewMaterialSearch().SetOrm(tx).Save(&listDetails[k].Product); err != nil {
return err
}
--
Gitblit v1.8.0