2021-11-04 11:10:51 +08:00
|
|
|
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
|
|
|
|
}
|
|
|
|
)
|
|
|
|
|
2021-11-18 18:28:34 +08:00
|
|
|
// List 列表信息
|
2021-11-04 11:10:51 +08:00
|
|
|
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 采购发起
|
2021-11-18 18:28:34 +08:00
|
|
|
func (c *MaterialPurchase) Launch(materialID, supplierID uint64, price, number float64, remark string) error {
|
2021-11-04 11:10:51 +08:00
|
|
|
mManageMaterialPurchase := model.NewManageMaterialPurchase()
|
|
|
|
mManageMaterialPurchase.UID = c.UID
|
|
|
|
mManageMaterialPurchase.OrderNo = lib.OrderNo()
|
2021-11-18 18:28:34 +08:00
|
|
|
mManageMaterialPurchase.MaterialID = materialID
|
|
|
|
mManageMaterialPurchase.SupplierID = supplierID
|
2021-11-04 11:10:51 +08:00
|
|
|
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}
|
|
|
|
}
|
|
|
|
}
|