From 69f0410081da54e6cea8a04a07fd0119a8edc623 Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期六, 30 三月 2024 11:38:42 +0800 Subject: [PATCH] 采购单修改 --- service/purchase/purchase.go | 31 ++++++++++++++++++------------- 1 files changed, 18 insertions(+), 13 deletions(-) diff --git a/service/purchase/purchase.go b/service/purchase/purchase.go index e6b6cb9..aeba8f3 100644 --- a/service/purchase/purchase.go +++ b/service/purchase/purchase.go @@ -137,12 +137,13 @@ var ids []uint var purchaseList = make([]*purchase.Purchase, 0) if info.Keyword != "" { + kw := "%" + info.Keyword + "%" db.Distinct("srm_purchase.id").Joins("left join srm_purchase_products on srm_purchase_products.purchase_id = srm_purchase.id"). Joins("left join srm_supplier_material on srm_supplier_material.supplier_id = srm_purchase.id"). Joins("left join srm_supplier on srm_supplier.Id = srm_purchase.supplier_id"). - Where("srm_purchase.name like ?", "%"+info.Keyword+"%"). - Or("srm_supplier_material.name like ?", "%"+info.Keyword+"%"). - Or("srm_supplier.name like ?", "%"+info.Keyword+"%") + Where("srm_purchase.name like ? or srm_purchase.source_order like ? or srm_purchase.number like ?", kw, kw, kw). + Or("srm_supplier_material.name like ?", kw). + Or("srm_supplier.name like ?", kw) err = db.Limit(limit).Offset(offset).Find(&ids).Error if err != nil { return purchaseList, total, err @@ -311,10 +312,8 @@ } m := make(map[string]interface{}) - newList := make([]*purchase.PurchaseProductConfirm, 0) if first { m["status"] = purchase.OrderStatusWaitReceive - newList = list } else { yu := int64(0) for _, confirm := range list { @@ -322,10 +321,6 @@ confirm.NotReceiveAmount = confirm.Amount.Sub(confirm.OverReceiveAmount) if !confirm.SurplusReceiveAmount.IsZero() { yu = confirm.SurplusReceiveAmount.IntPart() - } - //杩囨护鏈鏀惰揣鏁伴噺涓�0鐨勬暟鎹� - if !confirm.NowReceiveAmount.IsZero() { - newList = append(newList, confirm) } } if yu > 0 { @@ -342,7 +337,7 @@ return err } - err = tx.Create(newList).Error + err = tx.Create(list).Error if err != nil { return err } @@ -369,6 +364,9 @@ purchaseNumber := list[0].PurchaseNumber qualityList := make([]*purchase.PurchaseQualityInspection, 0) for _, confirm := range list { + if confirm.NowReceiveAmount.IsZero() { + continue + } var pqi purchase.PurchaseQualityInspection pqi.PurchaseNumber = purchaseNumber pqi.Principal = confirm.Principal @@ -412,15 +410,22 @@ func (slf *PurchaseService) UpdatePurchaseStatus(number string, status int) error { var total int64 - err := global.GVA_DB.Model(&purchase.PurchaseQualityInspection{}).Where("purchase_number = ?", number).Where("status = ?", status).Count(&total).Error + err := global.GVA_DB.Model(&purchase.Purchase{}).Where("number = ?", number).Where("status = ?", purchase.OrderStatusWaitQuality).Count(&total).Error if err != nil { return err } - if total == 0 { - err = global.GVA_DB.Model(&purchase.Purchase{}).Where("number = ?", number).Updates(map[string]interface{}{"status": purchase.OrderStatusReceived}).Error + if total > 0 { + err = global.GVA_DB.Model(&purchase.PurchaseQualityInspection{}).Where("purchase_number = ?", number).Where("status = ?", status).Count(&total).Error if err != nil { return err } + + if total == 0 { + err = global.GVA_DB.Model(&purchase.Purchase{}).Where("number = ?", number).Updates(map[string]interface{}{"status": purchase.OrderStatusReceived}).Error + if err != nil { + return err + } + } } return nil } -- Gitblit v1.8.0