From a8914a16b23e93f6bfd12bcfd5cbe8b24cf7eb84 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期日, 07 四月 2024 21:49:01 +0800
Subject: [PATCH] 发货支持仓库传参

---
 proto/product_inventory/server.go |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/proto/product_inventory/server.go b/proto/product_inventory/server.go
index 41a6b6e..4bf5368 100644
--- a/proto/product_inventory/server.go
+++ b/proto/product_inventory/server.go
@@ -234,7 +234,7 @@
 			"wms_operation.number,wms_operation.waybill_number, logistic_company.name, wms_operation.base_operation_type, wms_operation.status, wms_operation.created_at").
 		Joins("left join wms_operation on wms_operation.id = wms_operation_details.operation_id").
 		Joins("left join logistic_company on logistic_company.id = wms_operation.logistic_company_id").
-		Where("wms_operation.source_number = ?", req.Number).
+		Where("wms_operation.sales_details_number = ?", req.Number).
 		Where("wms_operation.base_operation_type in ?", []constvar.BaseOperationType{
 			constvar.BaseOperationTypeIncoming, constvar.BaseOperationTypeOutgoing}).
 		Where("wms_operation.status in ?", []constvar.OperationStatus{constvar.OperationStatus_Ready, constvar.OperationStatus_Finish})
@@ -351,6 +351,9 @@
 	inputLocationAmountMap := make(map[int64]map[string]decimal.Decimal)
 	outputLocationAmountMap := make(map[int64]map[string]decimal.Decimal)
 	for _, v := range outputList {
+		if req.WarehouseId != 0 && v.WareHouseID != req.WarehouseId {
+			continue
+		}
 		if outputProductMap[v.Number] == nil {
 			simpleInfo := &OutputSimpleInfo{
 				Number: v.Number,
@@ -364,6 +367,9 @@
 		}
 	}
 	for _, v := range inputList {
+		if req.WarehouseId != 0 && v.WareHouseID != req.WarehouseId {
+			continue
+		}
 		if inputProductMap[v.Number] == nil {
 			storeInfo := &StoreInfo{
 				Number: v.Number,
@@ -402,6 +408,9 @@
 
 	LocationIDWarehouseIDMap := make(map[int64]int64)
 	for _, output := range outputList {
+		if req.WarehouseId != 0 && output.WareHouseID != req.WarehouseId {
+			continue
+		}
 		if outputLocationAmountMap[output.LocationID] == nil {
 			outputLocationAmountMap[output.LocationID] = make(map[string]decimal.Decimal)
 		}
@@ -409,6 +418,9 @@
 		outputLocationAmountMap[output.LocationID][output.Number] = outputAmount
 	}
 	for _, input := range inputList {
+		if req.WarehouseId != 0 && input.WareHouseID != req.WarehouseId {
+			continue
+		}
 		LocationIDWarehouseIDMap[input.LocationID] = input.WareHouseID
 
 		if inputLocationAmountMap[input.LocationID] == nil {
@@ -473,7 +485,7 @@
 		return nil, errors.New("鍙傛暟涓嶈兘涓虹┖")
 	}
 	result := new(GetOutputOperationInfoResponse)
-	first, err := models.NewOperationSearch().SetSourceNumber(req.Number).SetStatus(constvar.OperationStatus_Finish).First()
+	first, err := models.NewOperationSearch().SetSourceNumber(req.Number).SetBaseOperationType(constvar.BaseOperationTypeOutgoing).SetStatus(constvar.OperationStatus_Finish).First()
 	if err != nil {
 		if err == gorm.ErrRecordNotFound {
 			return result, nil

--
Gitblit v1.8.0