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