Files
ArmedPolice/app/controller/manage/material_suppler.go
2021-11-19 09:24:15 +08:00

84 lines
2.3 KiB
Go

package manage
import (
model2 "ArmedPolice/app/common/model"
"ArmedPolice/app/controller/basic"
"ArmedPolice/app/model"
"ArmedPolice/app/service"
)
type MaterialSuppler struct{ *service.Session }
type MaterialSupplerHandle func(session *service.Session) *MaterialSuppler
type (
// MaterialSupplerBasic 基本信息
MaterialSupplerBasic struct {
basic.CommonIDString
*model.ManageMaterialSupplierBasic
SupplierID string `json:"supplier_id"`
Stock float64 `json:"stock"`
}
)
func (c *MaterialSuppler) List() (*basic.PageDataResponse, error) {
return &basic.PageDataResponse{Data: nil, Count: 0}, nil
}
// Select 筛选信息
func (c *MaterialSuppler) Select(materialID uint64) ([]*MaterialSupplerBasic, error) {
mManageMaterSupplier := model.NewManageMaterialSupplier()
out, err := mManageMaterSupplier.Basic(model2.NewWhere("m_s.material_id", materialID))
if err != nil {
return nil, err
}
list := make([]*MaterialSupplerBasic, 0)
for _, v := range out {
mManageMaterSupplier.SetID(v.ID)
stock := v.Stock - v.FrozenStock
if stock < 0 {
stock = 0
}
list = append(list, &MaterialSupplerBasic{
CommonIDString: basic.CommonIDString{ID: mManageMaterSupplier.GetEncodeID()},
ManageMaterialSupplierBasic: v,
SupplierID: (&model2.Model{ID: v.SupplierID}).GetEncodeID(),
Stock: stock,
})
}
return list, nil
}
// Form 数据操作
func (c *MaterialSuppler) Form(materialID, supplierID uint64, stock float64) error {
mManageMaterSupplier := model.NewManageMaterialSupplier()
var count int64
if err := model2.Count(mManageMaterSupplier.ManageMaterialSupplier, &count, model2.NewWhere("material_id", materialID),
model2.NewWhere("supplier_id", supplierID)); err != nil {
return err
}
mManageMaterSupplier.MaterialID = materialID
mManageMaterSupplier.SupplierID = supplierID
mManageMaterSupplier.Stock = stock
return model2.Create(mManageMaterSupplier.ManageMaterialSupplier)
}
// Delete 删除操作
func (c *MaterialSuppler) Delete(id uint64) error {
mManageMaterSupplier := model.NewManageMaterialSupplier()
mManageMaterSupplier.SetID(id)
return model2.Delete(mManageMaterSupplier.ManageMaterialSupplier)
}
func NewMaterialSuppler() MaterialSupplerHandle {
return func(session *service.Session) *MaterialSuppler {
return &MaterialSuppler{session}
}
}