From c7e82fd1d76b9fb25497d5aba4372bbfe13a8468 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期四, 28 三月 2024 20:00:21 +0800
Subject: [PATCH] 采购入库增加来源

---
 proto/purchase_wms/server.go |   34 +++++++++++++++++++++++++++++++---
 1 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/proto/purchase_wms/server.go b/proto/purchase_wms/server.go
index 29037a8..f419f3c 100644
--- a/proto/purchase_wms/server.go
+++ b/proto/purchase_wms/server.go
@@ -20,8 +20,12 @@
 	if req.Number == "" {
 		return nil, errors.New("閲囪喘缂栧彿涓嶈兘涓虹┖")
 	}
-	err := global.GVA_DB.Model(&purchase.Purchase{}).Where("number = ?", req.Number).
-		Updates(map[string]interface{}{"status": purchase.OrderStatusStored}).Error
+	m := make(map[string]interface{})
+	m["status"] = purchase.OrderStatusStored
+	if req.Status > 0 {
+		m["status"] = req.Status
+	}
+	err := global.GVA_DB.Model(&purchase.Purchase{}).Where("number = ?", req.Number).Updates(m).Error
 	return new(UpdatePurchaseStatusResponse), err
 }
 
@@ -139,6 +143,18 @@
 	if err != nil {
 		return nil, err
 	}
+	purchaseIds := make([]uint, 0)
+	for _, p := range ps {
+		purchaseIds = append(purchaseIds, p.ID)
+	}
+	if len(purchaseIds) == 0 {
+		return nil, errors.New("娌℃湁鏌ュ埌閲囪喘鍗�")
+	}
+	pps := make([]*purchase.PurchaseProducts, 0)
+	err = global.GVA_DB.Model(&purchase.PurchaseProducts{}).Where("purchase_id in (?)", purchaseIds).Preload("Product").Find(&pps).Error
+	if err != nil {
+		return nil, err
+	}
 	infos := make([]*PurchaseInfo, 0)
 	for _, p := range ps {
 		var info PurchaseInfo
@@ -147,7 +163,19 @@
 		info.SupplierName = p.Supplier.Name
 		info.Amount = p.Quantity.IntPart()
 		info.Status = int64(p.Status)
-		infos = append(infos, &info)
+		if p.Status == purchase.OrderStatusStored || p.Status == purchase.OrderStatusCompleted {
+			info.FinishAmount = info.Amount
+		}
+		for _, pp := range pps {
+			if int(p.ID) == pp.PurchaseId {
+				ni := info
+				ni.ProductId = pp.Product.Number
+				ni.ProductName = pp.Product.Name
+				ni.Specs = pp.Product.Specifications
+				ni.Unit = pp.Product.Unit
+				infos = append(infos, &ni)
+			}
+		}
 	}
 	resp := new(GetPurchaseInfoResponse)
 	resp.Infos = infos

--
Gitblit v1.8.0