From b7ffe7edd3ace3ae7f62cadfcf7ba7ccb762364f Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期五, 05 七月 2024 15:44:03 +0800
Subject: [PATCH] fix

---
 service/operation.go |   20 ++++++++++----------
 1 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/service/operation.go b/service/operation.go
index 0775865..c5af300 100644
--- a/service/operation.go
+++ b/service/operation.go
@@ -91,6 +91,7 @@
 			LocationID:         output.LocationID,
 			OperationSource:    constvar.OperationSourceSaleDelivery,
 			SalesDetailsNumber: output.SaleDetailsNumber,
+			WarehouseId:        output.WarehouseID,
 		}
 		operations = append(operations, operation)
 		autoCode = models.GetAutoCode(maxAutoIncr, codeStandard)
@@ -219,6 +220,7 @@
 			BaseOperationType: constvar.BaseOperationTypeInternal,
 			Details:           details,
 			CheckedBy:         userInfo.Username,
+			WarehouseId:       operation.WarehouseId,
 		}).Error; err != nil {
 			return err
 		}
@@ -332,14 +334,14 @@
 	var inputDetails []*models.OperationDetails
 	var outputDetails []*models.OperationDetails
 	for _, v := range listDetails {
-		if locAmount, aok := mapLocAmount[strconv.Itoa(v.ToLocationID)+v.ProductId]; aok {
-			if locAmount.Amount.Equal(v.Amount) {
+		if _, aok := mapLocAmount[strconv.Itoa(v.FromLocationID)+v.ProductId]; aok {
+			if v.StockAmount.Equal(v.Amount) { //鐩樼偣鏁伴噺鍜屽墿浣欐暟閲忎竴鑷�
 				continue
 			}
-			if v.Amount.GreaterThan(locAmount.Amount) {
+			if v.Amount.GreaterThan(v.StockAmount) {
 				inputDetails = append(inputDetails, &models.OperationDetails{
 					ProductId:        v.ProductId,
-					Amount:           v.Amount.Sub(locAmount.Amount),
+					Amount:           v.Amount.Sub(v.StockAmount),
 					FromLocationID:   v.FromLocationID,
 					ToLocationID:     v.ToLocationID,
 					TotalGrossWeight: v.TotalGrossWeight,
@@ -353,7 +355,7 @@
 			} else {
 				outputDetails = append(outputDetails, &models.OperationDetails{
 					ProductId:        v.ProductId,
-					Amount:           locAmount.Amount.Sub(v.Amount),
+					Amount:           v.StockAmount.Sub(v.Amount),
 					FromLocationID:   v.ToLocationID,
 					ToLocationID:     v.FromLocationID,
 					TotalGrossWeight: v.TotalGrossWeight,
@@ -390,6 +392,7 @@
 			Details:           inputDetails,
 			LocationID:        inputDetails[0].FromLocationID,
 			OperationTypeName: "搴撳瓨璋冩暣鍏ュ簱",
+			WarehouseId:       originOperation.WarehouseId,
 		}
 		if err := models.NewOperationSearch().SetOrm(tx).Create(operation); err != nil {
 			return err
@@ -410,6 +413,7 @@
 			Details:           outputDetails,
 			LocationID:        outputDetails[0].FromLocationID,
 			OperationTypeName: "搴撳瓨璋冩暣鍑哄簱",
+			WarehouseId:       originOperation.WarehouseId,
 		}
 		if err := models.NewOperationSearch().SetOrm(tx).Create(operation); err != nil {
 			return err
@@ -420,11 +424,7 @@
 }
 
 func GetTargetOperationTypeIdByOperation(operation *models.Operation, baseOT constvar.BaseOperationType) (operationTypeId int, err error) {
-	oT, err := models.NewOperationTypeSearch().SetID(uint(operation.OperationTypeId)).First()
-	if err != nil {
-		return 0, err
-	}
-	targetOT, err := models.NewOperationTypeSearch().SetBaseOperationType(baseOT).SetWarehouseId(oT.WarehouseId).First()
+	targetOT, err := models.NewOperationTypeSearch().SetBaseOperationType(baseOT).SetWarehouseId(operation.WarehouseId).First()
 	if err != nil {
 		return 0, err
 	}

--
Gitblit v1.8.0