From d3a78e4c791821b298075b700e9fc14030d12ec2 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 29 八月 2023 15:28:43 +0800
Subject: [PATCH] 采购数量,经办人,制单人

---
 api/v1/purchase/purchase.go  |    4 ++++
 model/purchase/purchase.go   |   28 ++++++++++++++++------------
 service/purchase/purchase.go |   11 +++++++++++
 3 files changed, 31 insertions(+), 12 deletions(-)

diff --git a/api/v1/purchase/purchase.go b/api/v1/purchase/purchase.go
index 68f16d9..c82be66 100644
--- a/api/v1/purchase/purchase.go
+++ b/api/v1/purchase/purchase.go
@@ -48,6 +48,8 @@
 
 	purchaseRecord.ID = 0
 	purchaseRecord.Status = purchase.OrderStatusConfirmed
+	purchaseRecord.HandledBy = "admin"
+	purchaseRecord.Creator = "admin"
 	err = service.NewPurchaseService().CreatePurchase(&purchaseRecord, params.ProductList)
 
 	if err != nil {
@@ -109,6 +111,8 @@
 		return
 	}
 
+	purchaseRecord.HandledBy = "admin"
+	purchaseRecord.Creator = "admin"
 	err = service.NewPurchaseService().UpdatePurchase(&purchaseRecord, params.ProductList)
 	if err != nil {
 		global.GVA_LOG.Error("鏇存柊澶辫触!", zap.Error(err))
diff --git a/model/purchase/purchase.go b/model/purchase/purchase.go
index 0163640..4627f87 100644
--- a/model/purchase/purchase.go
+++ b/model/purchase/purchase.go
@@ -1,24 +1,28 @@
 package purchase
 
 import (
+	"github.com/shopspring/decimal"
 	"srm/global"
 	"srm/model/test"
 )
 
 type Purchase struct {
 	global.GVA_MODEL
-	PurchaseTypeId int           `json:"purchaseTypeId" form:"purchaseType" gorm:"type:int(11);not null;default 0;comment:閲囪喘绫诲瀷id"` // 閲囪喘绫诲瀷id
-	PurchaseType   PurchaseType  `json:"purchaseType" gorm:"foreignKey:PurchaseTypeId"`
-	SupplierId     int           `json:"supplierId" form:"supplierId" gorm:"type:int(11);not null;default 0;comment:渚涘簲鍟唅d"` // 渚涘簲鍟唅d
-	Supplier       test.Supplier `json:"supplier" gorm:"foreignKey:SupplierId"`
-	Number         string        `json:"number" form:"number" gorm:"unique;type:varchar(255);not null;default '';comment:閲囪喘缂栧彿"`      // 閲囪喘缂栧彿
-	Name           string        `json:"name" form:"name" gorm:"type:varchar(255);not null;default '';comment:閲囪喘鍚嶇О"`                 // 閲囪喘鍚嶇О
-	Contact        string        `json:"contact" form:"contact" gorm:"type:varchar(255);not null;default '';comment:鑱旂郴浜�"`            // 鑱旂郴浜�
-	Phone          string        `json:"phone" form:"phone" gorm:"type:varchar(255);not null;default '';comment:鑱旂郴浜虹數璇�"`              // 鑱旂郴浜虹數璇�
-	SigningDate    string        `json:"signingDate" form:"signingDate" gorm:"type:varchar(255);not null;default '';comment:绛剧害鏃ユ湡"`   // 绛剧害鏃ユ湡
-	DeliveryDate   string        `json:"deliveryDate" form:"deliveryDate" gorm:"type:varchar(255);not null;default '';comment:浜や粯鏃ユ湡"` //浜や粯鏃ユ湡
-	Remark         string        `json:"remark" form:"remark" gorm:"type:varchar(1000);not null;default '';comment:澶囨敞"`              //澶囨敞
-	Status         OrderStatus   `json:"status" form:"status" gorm:"type:tinyint(1);not null;default 0;comment:鐘舵��"`                  //鐘舵��
+	PurchaseTypeId int             `json:"purchaseTypeId" form:"purchaseType" gorm:"type:int(11);not null;default 0;comment:閲囪喘绫诲瀷id"` // 閲囪喘绫诲瀷id
+	PurchaseType   PurchaseType    `json:"purchaseType" gorm:"foreignKey:PurchaseTypeId"`
+	SupplierId     int             `json:"supplierId" form:"supplierId" gorm:"type:int(11);not null;default 0;comment:渚涘簲鍟唅d"` // 渚涘簲鍟唅d
+	Supplier       test.Supplier   `json:"supplier" gorm:"foreignKey:SupplierId"`
+	Number         string          `json:"number" form:"number" gorm:"unique;type:varchar(255);not null;default '';comment:閲囪喘缂栧彿"`      // 閲囪喘缂栧彿
+	Name           string          `json:"name" form:"name" gorm:"type:varchar(255);not null;default '';comment:閲囪喘鍚嶇О"`                 // 閲囪喘鍚嶇О
+	Quantity       decimal.Decimal `json:"quantity" form:"quantity" gorm:"type:decimal(12,4);not null;comment:閲囪喘鏁伴噺"`                   // 閲囪喘鏁伴噺
+	Contact        string          `json:"contact" form:"contact" gorm:"type:varchar(255);not null;default '';comment:鑱旂郴浜�"`            // 鑱旂郴浜�
+	Phone          string          `json:"phone" form:"phone" gorm:"type:varchar(255);not null;default '';comment:鑱旂郴浜虹數璇�"`              // 鑱旂郴浜虹數璇�
+	SigningDate    string          `json:"signingDate" form:"signingDate" gorm:"type:varchar(255);not null;default '';comment:绛剧害鏃ユ湡"`   // 绛剧害鏃ユ湡
+	DeliveryDate   string          `json:"deliveryDate" form:"deliveryDate" gorm:"type:varchar(255);not null;default '';comment:浜や粯鏃ユ湡"` //浜や粯鏃ユ湡
+	Remark         string          `json:"remark" form:"remark" gorm:"type:varchar(1000);not null;default '';comment:澶囨敞"`              //澶囨敞
+	Status         OrderStatus     `json:"status" form:"status" gorm:"type:tinyint(1);not null;default 0;comment:鐘舵��"`                  //鐘舵��
+	HandledBy      string          `json:"handledBy" form:"handledBy" gorm:"type:varchar(255);not null;default '';comment:缁忓姙浜�"`        //缁忓姙浜�
+	Creator        string          `json:"creator" form:"creator" gorm:"type:varchar(255);not null;default '';comment:鍒跺崟浜�"`            //鍒跺崟浜�
 }
 
 type OrderStatus int
diff --git a/service/purchase/purchase.go b/service/purchase/purchase.go
index 0df0c5c..bbef0f1 100644
--- a/service/purchase/purchase.go
+++ b/service/purchase/purchase.go
@@ -2,6 +2,7 @@
 
 import (
 	"context"
+	"github.com/shopspring/decimal"
 	"github.com/spf13/cast"
 	"gorm.io/gorm"
 	"srm/global"
@@ -24,6 +25,11 @@
 
 func (slf *PurchaseService) CreatePurchase(params *purchase.Purchase, productList []*purchase.PurchaseProducts) (err error) {
 	err = global.GVA_DB.Transaction(func(tx *gorm.DB) error {
+		var quantity decimal.Decimal
+		for _, product := range productList {
+			quantity = quantity.Add(product.Amount)
+		}
+		params.Quantity = quantity
 		err = tx.Create(&params).Error
 		if err != nil {
 			return err
@@ -60,6 +66,11 @@
 
 func (slf *PurchaseService) UpdatePurchase(params *purchase.Purchase, productList []*purchase.PurchaseProducts) (err error) {
 	err = global.GVA_DB.Transaction(func(tx *gorm.DB) error {
+		var quantity decimal.Decimal
+		for _, product := range productList {
+			quantity = quantity.Add(product.Amount)
+		}
+		params.Quantity = quantity
 		err = tx.Where("id = ?", params.ID).Updates(params).Error
 		if err != nil {
 			return err

--
Gitblit v1.8.0