package manage import ( model2 "ArmedPolice/app/common/model" "ArmedPolice/app/controller/basic" "ArmedPolice/app/model" "ArmedPolice/app/service" "ArmedPolice/lib" ) type MaterialPurchase struct{ *service.Session } type MaterialPurchaseHandle func(session *service.Session) *MaterialPurchase type ( // MaterialPurchaseInfo 采购信息 MaterialPurchaseInfo struct { basic.CommonIDString *model.ManageMaterialPurchaseInfo } ) func (c *MaterialPurchase) List(orderNo, supplierName, materialTitle string, page, pageSize int) (*basic.PageDataResponse, error) { mManageMaterialPurchase := model.NewManageMaterialPurchase() where := make([]*model2.ModelWhere, 0) if orderNo != "" { where = append(where, model2.NewWhereLike("p.order_no", orderNo)) } if supplierName != "" { where = append(where, model2.NewWhereLike("s.name", supplierName)) } if materialTitle != "" { where = append(where, model2.NewWhereLike("m.title", materialTitle)) } var count int64 out, err := mManageMaterialPurchase.Purchases(page, pageSize, &count, where...) if err != nil { return nil, err } list := make([]*MaterialPurchaseInfo, 0) for _, v := range out { list = append(list, &MaterialPurchaseInfo{ CommonIDString: basic.CommonIDString{ID: v.GetEncodeID()}, ManageMaterialPurchaseInfo: v, }) } return &basic.PageDataResponse{Data: list, Count: count}, nil } // Launch 采购发起 func (c *MaterialPurchase) Launch(materialSupplierID uint64, price float64, number int, remark string) error { mManageMaterialPurchase := model.NewManageMaterialPurchase() mManageMaterialPurchase.UID = c.UID mManageMaterialPurchase.OrderNo = lib.OrderNo() mManageMaterialPurchase.MaterialSupplierID = materialSupplierID mManageMaterialPurchase.Price = price mManageMaterialPurchase.Number = number mManageMaterialPurchase.Remark = remark return model2.Create(mManageMaterialPurchase.ManageMaterialPurchase) } func (c *MaterialPurchase) Delete(id uint64) error { mManageMaterialPurchase := model.NewManageMaterialPurchase() mManageMaterialPurchase.ID = id return model2.Delete(mManageMaterialPurchase.ManageMaterialPurchase) } func NewMaterialPurchase() MaterialPurchaseHandle { return func(session *service.Session) *MaterialPurchase { return &MaterialPurchase{session} } }