Files
ArmedPolice/app/controller/manage/material_purchase.go
2021-11-04 11:10:51 +08:00

78 lines
2.3 KiB
Go

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}
}
}