package db
|
|
|
|
import (
|
|
"errors"
|
|
"github.com/go-xorm/xorm"
|
|
"leit.com/leit_seat_aps/common"
|
|
"xorm.io/core"
|
|
)
|
|
|
|
//客户订单车型规格表
|
|
type Pln_custorder_carmodelver struct {
|
|
Finr int `xorm:"pk"`
|
|
Oemordernr string `xorm:"pk"`
|
|
Projnr string `xorm:"pk"`
|
|
Carmodelid string `xorm:"pk"`
|
|
Version int `xorm:"pk"`
|
|
Lastmodif string
|
|
Lastuser string
|
|
Credatuz string
|
|
}
|
|
|
|
// 客户订单版本规格和版本头
|
|
type VCustorderSpec struct {
|
|
Me_carmodel_ver `xorm:"extends"`
|
|
Pln_custorder_carmodelver `xorm:"extends"`
|
|
}
|
|
|
|
type VOemorderSpecPf struct {
|
|
Pln_custorder_carmodelver `xorm:"extends"`
|
|
Me_carmodel `xorm:"extends"`
|
|
Me_carmodel_partfamilylst `xorm:"extends"`
|
|
}
|
|
|
|
func (t *Pln_custorder_carmodelver) Clipped() {
|
|
common.TrimStruct(t, *t)
|
|
}
|
|
|
|
func (t *Pln_custorder_carmodelver) TableName() string {
|
|
return "pln_custorder_carmodelver"
|
|
}
|
|
|
|
//增
|
|
func (t *Pln_custorder_carmodelver) Add() error {
|
|
e := G_DbEngine
|
|
cocmvtab := new(Pln_custorder_carmodelver)
|
|
affw, err := e.Table("pln_custorder_carmodelver").ID(core.PK{G_FINR, t.Oemordernr, t.Projnr, t.Carmodelid, t.Version}).Count(cocmvtab)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if affw > 0 {
|
|
return errors.New("数据已经存在!")
|
|
}
|
|
_, err = e.Table("pln_custorder_carmodelver").Insert(t)
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
//增
|
|
func (t *Pln_custorder_carmodelver) Insert(session *xorm.Session) error {
|
|
cocmvtab := new(Pln_custorder_carmodelver)
|
|
affw, err := session.Table("pln_custorder_carmodelver").ID(core.PK{G_FINR, t.Oemordernr, t.Projnr, t.Carmodelid, t.Version}).Count(cocmvtab)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if affw > 0 {
|
|
return nil
|
|
}
|
|
_, err = session.Table("pln_custorder_carmodelver").Insert(t)
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
//删
|
|
func (t *Pln_custorder_carmodelver) DelSession(session *xorm.Session) bool {
|
|
|
|
_, err := session.Where("finr = ? and oemordernr = ? and projnr = ?",G_FINR, t.Oemordernr, t.Projnr).Delete(&Pln_custorder_carmodelver{})
|
|
if err != nil {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
//删
|
|
func (t *Pln_custorder_carmodelver) Del() bool {
|
|
e := G_DbEngine
|
|
_, err := e.ID(core.PK{G_FINR, t.Oemordernr, t.Projnr, t.Carmodelid, t.Version}).Delete(&Pln_custorder_carmodelver{})
|
|
if err != nil {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
//改
|
|
func (t *Pln_custorder_carmodelver) Update() bool {
|
|
e := G_DbEngine
|
|
_, err := e.ID(core.PK{G_FINR, t.Oemordernr, t.Projnr, t.Carmodelid, t.Version}).Update(t)
|
|
if err != nil {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
//查
|
|
func (t *Pln_custorder_carmodelver) SelectOne() (data Pln_custorder_partlst, err error) {
|
|
e := G_DbEngine
|
|
_, err = e.ID(core.PK{G_FINR, t.Oemordernr, t.Projnr, t.Carmodelid, t.Version}).Get(&data)
|
|
if err != nil {
|
|
return data, err
|
|
}
|
|
return data, nil
|
|
}
|
|
|
|
// 基于项目 OEMORDER 查询并返回车型
|
|
func (t *Pln_custorder_carmodelver) GetModelForOemorder(projnr, oemorder string) (vdatalst []VOemorderSpecPf, err error) {
|
|
|
|
e := G_DbEngine
|
|
query := e.Table("pln_custorder_carmodelver")
|
|
query = query.Join("INNER", "me_carmodel", "me_carmodel.finr = pln_custorder_carmodelver.finr and me_carmodel.carmodelid = pln_custorder_carmodelver.carmodelid")
|
|
query = query.Join("INNER", "me_carmodel_partfamilylst", "me_carmodel_partfamilylst.finr = me_carmodel.finr and me_carmodel_partfamilylst.carmodelid = me_carmodel.carmodelid")
|
|
query = query.Where("pln_custorder_carmodelver.finr = ? and pln_custorder_carmodelver.projnr = ? and pln_custorder_carmodelver.oemordernr = ?", G_FINR, projnr, oemorder)
|
|
if err = query.Find(&vdatalst); err != nil {
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
// 基于项目 OEMORDER 查询并返回车型
|
|
func (t *Pln_custorder_carmodelver) GetCarModelForOemorder(projnr, oemorder string) (carmodelid string, err error) {
|
|
var datalst []Pln_custorder_carmodelver
|
|
|
|
e := G_DbEngine
|
|
carmodelid = ""
|
|
if err = e.Where("finr = ? and projnr = ? and oemordernr = ?",
|
|
G_FINR, projnr, oemorder).Desc("credatuz").Limit(1, 0).Find(&datalst); err != nil {
|
|
return
|
|
}
|
|
if len(datalst) > 0 {
|
|
carmodelid = datalst[0].Carmodelid
|
|
}
|
|
|
|
return
|
|
}
|