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