zhangqian
2023-11-29 d1cb09e7a23e7221b6c090ad33e4481a5b79f615
proto/purchase_wms/server.go
@@ -3,6 +3,7 @@
import (
   "context"
   "github.com/shopspring/decimal"
   "gorm.io/gorm"
   "strconv"
   "time"
   "wms/constvar"
@@ -21,6 +22,7 @@
   operation.OperationDate = timex.TimeToString2(time.Now())
   operation.Number = strconv.FormatInt(time.Now().Unix(), 10)
   operation.Status = constvar.OperationStatus_Ready
   operation.CompanyName = req.SupplierName
   warehouse, err := models.NewWarehouseSearch().First()
   if err != nil {
      return nil, err
@@ -48,6 +50,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
}