84 lines
2.3 KiB
Go
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}
|
|
}
|
|
}
|