From ebf654c57e65b074ce4cc3b7016cf157a85fb3ad Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期一, 11 三月 2024 15:18:24 +0800
Subject: [PATCH] wms采购范围

---
 models/material.go |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/models/material.go b/models/material.go
index 721368f..3db5575 100644
--- a/models/material.go
+++ b/models/material.go
@@ -3,7 +3,9 @@
 import (
 	"fmt"
 	"github.com/shopspring/decimal"
+	"github.com/spf13/cast"
 	"gorm.io/gorm"
+	"strings"
 	"wms/constvar"
 	"wms/pkg/mysqlx"
 )
@@ -34,6 +36,8 @@
 		//ProduceAheadDay   int                     `gorm:"type:int(11);comment:鍒堕�犳彁鍓嶆湡(澶�)" json:"produceAheadDay"`
 		MinPurchaseAmount decimal.Decimal       `gorm:"type:decimal(35,18);comment:鏈�灏忛噰璐噺" json:"minPurchaseAmount"` //鏈�灏忛噰璐噺
 		PurchaseType      constvar.PurchaseType `gorm:"type:int(11);comment:閲囪喘绫诲瀷" json:"purchaseType"`
+		PurchaseTypes     string                `gorm:"type:varchar(255);comment:閲囪喘绫诲瀷鑼冨洿" json:"-"`
+		PurchaseTypeList  []int                 `gorm:"-" json:"purchaseTypeList"`
 		IsSale            bool                  `gorm:"type:tinyint(1);comment:鏄惁閿�鍞�" json:"isSale"`        //鏄惁閿�鍞�
 		SalePrice         decimal.Decimal       `gorm:"type:decimal(35,18);comment:閿�鍞崟浠�" json:"salePrice"` //閿�鍞崟浠�
 		AutoIncr          uint                  `gorm:"type:int(11);comment:鑷ID;default:0;" json:"autoIncr"`
@@ -109,6 +113,38 @@
 	return "material"
 }
 
+func (slf *Material) AfterFind(tx *gorm.DB) (err error) {
+	if slf.PurchaseTypes != "" && strings.Contains(slf.PurchaseTypes, ",") {
+		list := strings.Split(slf.PurchaseTypes, ",")
+		for _, v := range list {
+			slf.PurchaseTypeList = append(slf.PurchaseTypeList, cast.ToInt(v))
+		}
+	} else if slf.PurchaseType != 0 { //鍏煎鏃ф暟鎹�
+		slf.PurchaseTypeList = append(slf.PurchaseTypeList, int(slf.PurchaseType))
+	}
+	return
+}
+
+func (slf *Material) BeforeCreate(tx *gorm.DB) (err error) {
+	if len(slf.PurchaseTypeList) > 0 {
+		var typeList []string
+		for _, v := range slf.PurchaseTypeList {
+			if v != 0 {
+				typeList = append(typeList, cast.ToString(v))
+			}
+		}
+		slf.PurchaseTypes = strings.Join(typeList, ",")
+		if len(slf.PurchaseTypeList) == 1 {
+			slf.PurchaseType = constvar.PurchaseType(slf.PurchaseTypeList[0])
+		}
+	}
+	return
+}
+
+func (slf *Material) BeforeUpdate(tx *gorm.DB) (err error) {
+	return slf.BeforeCreate(tx)
+}
+
 func NewMaterialSearch() *MaterialSearch {
 	return &MaterialSearch{Orm: mysqlx.GetDB().Where("is_storage = ?", 1)} //鍙煡璇㈡湁搴撳瓨鐨�
 }

--
Gitblit v1.8.0