package db
|
|
|
|
import (
|
|
"errors"
|
|
"github.com/go-xorm/xorm"
|
|
"leit.com/leit_seat_aps/common"
|
|
"xorm.io/core"
|
|
)
|
|
|
|
//拣料单
|
|
type Pln_pickorder struct {
|
|
Finr int `xorm:"pk" json:"pln_pickorder.finr"`
|
|
Pickorderid string `xorm:"pk" json:"pln_pickorder.pickorderid"`
|
|
Picktemplateid string `json:"pln_pickorder.picktemplateid"`
|
|
Status int `json:"pln_pickorder.status"`
|
|
Orderinfo string `json:"pln_pickorder.orderinfo"`
|
|
Worklineid string `json:"pln_pickorder.worklineid"`
|
|
Printerid string `json:"pln_pickorder.printerid"`
|
|
Planqty int `json:"pln_pickorder.planqty"`
|
|
Fillqty int `json:"pln_pickorder.fillqty"`
|
|
Actqty int `json:"pln_pickorder.actqty"`
|
|
Picker string `json:"pln_pickorder.picker"`
|
|
Lastmodif string `json:"pln_pickorder.lastmodif"`
|
|
Lastuser string `json:"pln_pickorder.lastuser"`
|
|
Credatuz string `json:"pln_pickorder.credatuz"`
|
|
Itemlst []Pln_pickorder_itemlst `xorm:"-"`
|
|
}
|
|
|
|
func (t *Pln_pickorder) Clipped() {
|
|
common.TrimStruct(t, *t)
|
|
}
|
|
|
|
func (t *Pln_pickorder) TableName() string {
|
|
return "pln_pickorder"
|
|
}
|
|
|
|
//增
|
|
func (t *Pln_pickorder) Add() error {
|
|
e := G_DbEngine
|
|
pikotab := new(Pln_pickorder)
|
|
affw, err := e.Table("pln_pickorder").ID(core.PK{G_FINR, t.Pickorderid}).Count(pikotab)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if affw > 0 {
|
|
return errors.New("数据已经存在!")
|
|
}
|
|
_, err = e.Table("pln_pickorder").Insert(t)
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
//增
|
|
func (t *Pln_pickorder) Insert(session *xorm.Session) error {
|
|
pikotab := new(Pln_pickorder)
|
|
affw, err := session.Table("pln_pickorder").ID(core.PK{G_FINR, t.Pickorderid}).Count(pikotab)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if affw > 0 {
|
|
return errors.New("数据已经存在!")
|
|
}
|
|
_, err = session.Table("pln_pickorder").Insert(t)
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
//删
|
|
func (t *Pln_pickorder) Del() bool {
|
|
e := G_DbEngine
|
|
_, err := e.ID(core.PK{G_FINR, t.Pickorderid}).Delete(&Pln_pickorder{})
|
|
if err != nil {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
//改
|
|
func (t *Pln_pickorder) Update() bool {
|
|
e := G_DbEngine
|
|
_, err := e.ID(core.PK{G_FINR, t.Pickorderid}).Update(t)
|
|
if err != nil {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
//更新指定字段
|
|
func (t *Pln_pickorder) UpdateFields(session *xorm.Session, fields string) (err error) {
|
|
if _, err = session.ID(core.PK{G_FINR, t.Pickorderid}).Cols(fields).Update(t); err != nil {
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
//查
|
|
func (t *Pln_pickorder) SelectOne() (data Pln_pickorder, err error) {
|
|
var i int
|
|
|
|
e := G_DbEngine
|
|
_, err = e.ID(core.PK{G_FINR, t.Pickorderid}).Get(&data)
|
|
if err != nil {
|
|
return data, err
|
|
}
|
|
data.Clipped()
|
|
|
|
// 获取分配的拣料项列表
|
|
if err = e.Where("finr = ? and pickorderid = ?", G_FINR, t.Pickorderid).OrderBy("pos").Find(&data.Itemlst); err != nil {
|
|
return
|
|
}
|
|
for i, _ = range data.Itemlst {
|
|
data.Itemlst[i].Clipped()
|
|
}
|
|
|
|
return data, nil
|
|
}
|
|
|
|
//查
|
|
func (t *Pln_pickorder) SelectOneBySession(session *xorm.Session) (data Pln_pickorder, err error) {
|
|
var i int
|
|
|
|
_, err = session.ID(core.PK{G_FINR, t.Pickorderid}).Get(&data)
|
|
if err != nil {
|
|
return data, err
|
|
}
|
|
data.Clipped()
|
|
|
|
// 获取分配的拣料项列表
|
|
if err = session.Where("finr = ? and pickorderid = ?", G_FINR, t.Pickorderid).OrderBy("pos").Find(&data.Itemlst); err != nil {
|
|
return
|
|
}
|
|
for i, _ = range data.Itemlst {
|
|
data.Itemlst[i].Clipped()
|
|
}
|
|
|
|
return data, nil
|
|
}
|
|
|
|
//
|
|
func (t *Pln_pickorder) GetOpenOrdersForTemplateBySession(session *xorm.Session, picktmpid string) (exist bool, datalst []Pln_pickorder, err error) {
|
|
var (
|
|
itemtablst []Pln_pickorder_itemlst
|
|
i, j int
|
|
)
|
|
if err = session.Where("finr = ? and picktemplateid = ? and status < ? ",
|
|
G_FINR, picktmpid, common.PKO_STATUS_RELEASED).Asc("credatuz").Find(&datalst);
|
|
err != nil {
|
|
return
|
|
}
|
|
if len(datalst) <= 0 {
|
|
exist = false
|
|
return
|
|
}
|
|
|
|
// 获取拣料单子项数据
|
|
for i = 0; i < len(datalst); i++ {
|
|
datalst[i].Clipped()
|
|
// 获取分配的拣料项列表
|
|
itemtablst = []Pln_pickorder_itemlst{}
|
|
if err = session.Where("finr = ? and pickorderid = ?", G_FINR, datalst[i].Pickorderid).OrderBy("pos").Find(&itemtablst); err != nil {
|
|
return
|
|
}
|
|
for j, _ = range itemtablst {
|
|
itemtablst[j].Clipped()
|
|
}
|
|
datalst[i].Itemlst = itemtablst
|
|
}
|
|
|
|
exist = true
|
|
return
|
|
}
|