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 }