From 27be7a2c517404e4622470edf7b83b13129220ff Mon Sep 17 00:00:00 2001
From: jiangshuai <291802688@qq.com>
Date: 星期五, 08 十二月 2023 11:14:04 +0800
Subject: [PATCH] merge conflicts

---
 proto/purchase_wms/server.go |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/proto/purchase_wms/server.go b/proto/purchase_wms/server.go
index 173e7db..9cf3096 100644
--- a/proto/purchase_wms/server.go
+++ b/proto/purchase_wms/server.go
@@ -3,6 +3,7 @@
 import (
 	"context"
 	"github.com/shopspring/decimal"
+	"gorm.io/gorm"
 	"strconv"
 	"time"
 	"wms/constvar"
@@ -22,6 +23,7 @@
 	operation.Number = strconv.FormatInt(time.Now().Unix(), 10)
 	operation.Status = constvar.OperationStatus_Ready
 	operation.CompanyName = req.SupplierName
+	operation.Source = req.Source
 	warehouse, err := models.NewWarehouseSearch().First()
 	if err != nil {
 		return nil, err
@@ -49,6 +51,21 @@
 		detail.Amount = decimal.NewFromInt(product.Amount)
 		details = append(details, &detail)
 	}
-	err = models.NewOperationSearch().Create(&operation)
-	return new(PurchaseToWmsResponse), err
+	err = models.WithTransaction(func(db *gorm.DB) error {
+		err := models.NewOperationSearch().SetOrm(db).Create(&operation)
+		if err != nil {
+			return err
+		}
+		for _, detail := range details {
+			detail.OperationID = operation.Id
+		}
+		err = models.NewOperationDetailsSearch().SetOrm(db).CreateBatch(details)
+		return err
+	})
+	if err != nil {
+		return nil, err
+	}
+	resp := new(PurchaseToWmsResponse)
+	resp.Warehouse = warehouse.Name
+	return resp, nil
 }

--
Gitblit v1.8.0