SJA APS后端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

127 lines
2.7 KiB

package db
import (
"errors"
"github.com/go-xorm/xorm"
"leit.com/leit_seat_aps/common"
"xorm.io/core"
)
//打印记录明细表
type Printdetailtab struct {
Finr int `xorm:"pk"`
Printheadid string `xorm:"pk"`
Pos int `xorm:"pk"`
Varname string
Varvalue string
Varpos string
Lastmodif string
Lastuser string
Credatuz string
}
func (t *Printdetailtab) Clipped() {
common.TrimStruct(t, *t)
}
func (t *Printdetailtab) TableName() string {
return "printdetailtab"
}
//增
func (t *Printdetailtab) Add() error {
e := G_DbEngine
printdetailtab := new(Printdetailtab)
affw, err := e.Table("printdetailtab").ID(core.PK{G_FINR, t.Printheadid, t.Pos}).Count(printdetailtab)
if err != nil {
return err
}
if affw > 0 {
return errors.New("数据已经存在!")
}
_, err = e.Table("printdetailtab").Insert(t)
if err != nil {
return err
}
return nil
}
//增
func (t *Printdetailtab) Insert(session *xorm.Session) error {
printdetailtab := new(Printdetailtab)
affw, err := session.Table("printdetailtab").ID(core.PK{G_FINR, t.Printheadid, t.Pos}).Count(printdetailtab)
if err != nil {
return err
}
if affw > 0 {
return errors.New("数据已经存在!")
}
_, err = session.Table("printdetailtab").Insert(t)
if err != nil {
return err
}
return nil
}
//删
func (t *Printdetailtab) Del() bool {
e := G_DbEngine
_, err := e.ID(core.PK{G_FINR, t.Printheadid, t.Pos}).Delete(&Printdetailtab{})
if err != nil {
return false
}
return true
}
//改
func (t *Printdetailtab) Update() bool {
e := G_DbEngine
_, err := e.ID(core.PK{G_FINR, t.Printheadid, t.Pos}).Update(t)
if err != nil {
return false
}
return true
}
//更新指定字段
func (t *Printdetailtab) UpdateFields(session *xorm.Session, fields string) (err error) {
if _, err = session.Table("printdetailtab").ID(core.PK{G_FINR, t.Printheadid, t.Pos}).Cols(fields).Update(t); err != nil {
return
}
return
}
//查
func (t *Printdetailtab) SelectOne() (data Printdetailtab, err error) {
e := G_DbEngine
_, err = e.ID(core.PK{G_FINR, t.Printheadid, t.Pos}).Get(&data)
if err != nil {
return data, err
}
data.Clipped()
return data, nil
}
//查询明细
func (t *Printdetailtab) SelectAll() (data []Printdetailtab, err error) {
e := G_DbEngine
err = e.ID(core.PK{G_FINR, t.Printheadid}).Find(&data)
if err != nil {
return data, err
}
for k, _ := range data {
data[k].Clipped()
}
return data, nil
}
//统计
func (t *Printdetailtab) Sum(session *xorm.Session, pos []string) (int64, error) {
printdetailtab := new(Printdetailtab)
total, err := session.Table("printdetailtab").In("pos",pos).Where("finr = ? and printheadid = ?",G_FINR, t.Printheadid).SumInt(printdetailtab, "varvalue")
if err != nil {
return 0, err
}
return total, nil
}