|
|
@@ -125,6 +125,8 @@ func (r *WrOrderQuote) buildSqlFixedPrice() string {
|
|
|
param.And("t.haswr", r.HasWr)
|
|
|
param.And("t.wrpricetype", r.WrPriceType)
|
|
|
param.AndEx("t.marketid", r.MarketId, r.MarketId > 0)
|
|
|
+ param.AndEx("t.wrfactortypeid", r.WRFACTORTYPEID, len(r.WRFACTORTYPEID) > 0)
|
|
|
+ param.AndEx("t.deliverymonth", r.DELIVERYMONTH, len(r.DELIVERYMONTH) > 0)
|
|
|
|
|
|
param2.AndLike("w.wrfactortypename", r.WRSTANDARDNAME)
|
|
|
param2.AndLike("w.wrfactortypename", r.BRANDNAME)
|
|
|
@@ -1075,7 +1077,7 @@ type WrPerformancePlan struct {
|
|
|
BUYPAIDAMOUNT float64 `json:"buypaidamount" xorm:"BUYPAIDAMOUNT" form:"buypaidamount"` // 买方已冻/已扣金额 (已付金额)
|
|
|
SELLACCOUNTID int64 `json:"sellaccountid" xorm:"SELLACCOUNTID" form:"sellaccountid"` // 卖方账号
|
|
|
SELLRECEIVEDAMOUNT float64 `json:"sellreceivedamount" xorm:"SELLRECEIVEDAMOUNT"` // 卖方已收金额
|
|
|
- CREATETIME string `json:"createtime" xorm:"CREATETIME" form:"createtime"` // 创建时间(开始时间)
|
|
|
+ CREATETIME string `json:"createtime" xorm:"CREATETIME" form:"createtime"` // 创建时间
|
|
|
CREATORID int64 `json:"creatorid" xorm:"CREATORID" form:"creatorid"` // 创建人
|
|
|
REMARK string `json:"remark" xorm:"REMARK" form:"remark"` // 备注
|
|
|
BUYERFREEZEAMOUNT float64 `json:"buyerfreezeamount" xorm:"BUYERFREEZEAMOUNT"` // 履约冻结(买履约)
|
|
|
@@ -1094,6 +1096,7 @@ type WrPerformancePlan struct {
|
|
|
EXPRESSFEE float64 `json:"expressfee" xorm:"EXPRESSFEE" form:"expressfee"` // 运费
|
|
|
CONTRACTID int64 `json:"contractid" xorm:"CONTRACTID" form:"contractid"` // 合同ID
|
|
|
CURSTEPDEADLINE string `json:"curstepdeadline" xorm:"CURSTEPDEADLINE" form:"curstepdeadline"` // 当前步骤到期时间
|
|
|
+ STARTTIME string `json:"starttime" xorm:"'STARTTIME'"` // 开始时间
|
|
|
QTY float64 `json:"qty" xorm:"QTY" form:"qty"` // 履约数量
|
|
|
Wr2FactorType `xorm:"extends"`
|
|
|
|
|
|
@@ -1132,8 +1135,7 @@ func (r *WrPerformancePlan) buildSql() string {
|
|
|
" on t.warehouseid = h.autoid" +
|
|
|
" left join enumdicitem e" +
|
|
|
" on w.unitid = e.enumitemname" +
|
|
|
- " and e.enumdiccode = 'goodsunit'" +
|
|
|
- ")" +
|
|
|
+ " and e.enumdiccode = 'goodsunit')" +
|
|
|
"select to_char(t.PERFORMANCEPLANID) PERFORMANCEPLANID," +
|
|
|
" t.PERFORMANCETYPE," +
|
|
|
" to_char(t.RELATEDORDERID) RELATEDORDERID," +
|
|
|
@@ -1173,6 +1175,7 @@ func (r *WrPerformancePlan) buildSql() string {
|
|
|
" u1.accountname buyusername," +
|
|
|
" u2.accountname sellusername," +
|
|
|
" s.steptypename CURSTEPNAME," +
|
|
|
+ " to_char(k.starttime, 'yyyy-mm-dd hh24:mi:ss') starttime," +
|
|
|
" tmp.*" +
|
|
|
" from performanceplan t" +
|
|
|
" left join taaccount a1" +
|
|
|
@@ -1183,11 +1186,12 @@ func (r *WrPerformancePlan) buildSql() string {
|
|
|
" on t.sellaccountid = a2.accountid" +
|
|
|
" left join useraccount u2" +
|
|
|
" on a2.userid = u2.userid" +
|
|
|
+ " left join performancestep k on t.curstepid= k.performancestepid" +
|
|
|
" left join performancesteptype s" +
|
|
|
- " on t.curstepid = s.steptypeid" +
|
|
|
- " left join performanceplanwr p on t.performanceplanid = p.performanceplanid" +
|
|
|
- " left join warehousereciept f on p.wrid= f.wrid" +
|
|
|
- " left join tmp on f.wrfactortypeid=tmp.wrfactortypeid" +
|
|
|
+ " on k.steptypeid = s.steptypeid" +
|
|
|
+ " left join performanceplanwr f on t.performanceplanid = f.performanceplanid" +
|
|
|
+ " left join tmp" +
|
|
|
+ " on f.wrfactortypeid = tmp.wrfactortypeid" +
|
|
|
" where 1 = 1"
|
|
|
if r.BUYORSELL == 0 {
|
|
|
sqlId.And("u1.userid", r.USERID)
|
|
|
@@ -1692,3 +1696,86 @@ func (r *WrFtDeliveryGoods) GetDataEx() (interface{}, error) {
|
|
|
|
|
|
return sData, err
|
|
|
}
|
|
|
+
|
|
|
+// WrStandardFactoryItem 现货商品要素定义项
|
|
|
+type WrStandardFactoryItem struct {
|
|
|
+ WRSTANDARDID int64 `json:"-" xorm:"'WRSTANDARDID'" form:"wrstandardid"` // 品类
|
|
|
+ DGFACTORYITEMTYPEID int64 `json:"-" xorm:"'DGFACTORYITEMTYPEID'"` // 要素项类型id(1-999:预留为特殊类型 1:仓库 2:品牌)
|
|
|
+ ITEMTYPENAME string `json:"-" xorm:"'ITEMTYPENAME'"` // 要素项类型名称
|
|
|
+ DGFACTORYITEMID int64 `json:"dgfactoryitemid" xorm:"'DGFACTORYITEMID'"` // 选择项id
|
|
|
+ DGFACTORYITEMVALUE string `json:"dgfactoryitemvalue" xorm:"'DGFACTORYITEMVALUE'"` // 要素项值
|
|
|
+}
|
|
|
+
|
|
|
+func (r *WrStandardFactoryItem) calc() {
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+func (r *WrStandardFactoryItem) buildSql() string {
|
|
|
+ var sqlId utils.SQLVal = "select t.wrstandardid," +
|
|
|
+ " dp.dgfactoryitemtypeid," +
|
|
|
+ " dp.itemtypename," +
|
|
|
+ " di.dgfactoryitemid," +
|
|
|
+ " di.dgfactoryitemvalue" +
|
|
|
+ " from wrstandardfactoryitem t" +
|
|
|
+ " inner join wrstandard w" +
|
|
|
+ " on t.wrstandardid = w.wrstandardid" +
|
|
|
+ " inner join dgfactoryitemtype dp" +
|
|
|
+ " on t.dgfactoryitemtypeid = dp.dgfactoryitemtypeid" +
|
|
|
+ " and dp.deliverygoodsid = w.deliverygoodsid" +
|
|
|
+ " inner join dgfactoryitem di" +
|
|
|
+ " on t.dgfactoryitemid = di.dgfactoryitemid" +
|
|
|
+ " and di.deliverygoodsid = w.deliverygoodsid" +
|
|
|
+ " where dp.isvalid = 1" +
|
|
|
+ " and di.isvalid = 1"
|
|
|
+ sqlId.And("t.WRSTANDARDID", r.WRSTANDARDID)
|
|
|
+ sqlId.Join(" order by t.dgfactoryitemtypeid, t.dgfactoryitemid")
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+// GetDataEx 获取现货商品要素定义项
|
|
|
+func (r *WrStandardFactoryItem) GetDataEx() (interface{}, error) {
|
|
|
+ sData := make([]WrStandardFactoryItem, 0)
|
|
|
+ err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
+ for i := range sData {
|
|
|
+ sData[i].calc()
|
|
|
+ }
|
|
|
+ return sData, err
|
|
|
+}
|
|
|
+
|
|
|
+// WrStandardFactoryItemEx 现货商品要素定义项列表
|
|
|
+type WrStandardFactoryItemEx struct {
|
|
|
+ WRSTANDARDID int64 `json:"wrstandardid" form:"wrstandardid"` // 品类
|
|
|
+ DGFACTORYITEMTYPEID int64 `json:"dgfactoryitemtypeid"` // 要素项类型id(1-999:预留为特殊类型 1:仓库 2:品牌)
|
|
|
+ ITEMTYPENAME string `json:"itemtypename"` // 要素项类型名称
|
|
|
+ ItemLst []WrStandardFactoryItem `json:"itemlst"` // 要素项列表
|
|
|
+}
|
|
|
+
|
|
|
+// GetDataEx 获取现货商品要素定义项列表
|
|
|
+func (r *WrStandardFactoryItemEx) GetDataEx() (interface{}, error) {
|
|
|
+ sData := make([]WrStandardFactoryItemEx, 0)
|
|
|
+ m := WrStandardFactoryItem{WRSTANDARDID: r.WRSTANDARDID}
|
|
|
+ if d, err := m.GetDataEx(); err == nil {
|
|
|
+ if lst, ok := d.([]WrStandardFactoryItem); ok {
|
|
|
+ mapLst := map[int64]WrStandardFactoryItemEx{}
|
|
|
+ for _, v := range lst {
|
|
|
+ if a, ok := mapLst[v.DGFACTORYITEMTYPEID]; ok {
|
|
|
+ a.ItemLst = append(a.ItemLst, v)
|
|
|
+ mapLst[v.DGFACTORYITEMTYPEID] = a
|
|
|
+ } else {
|
|
|
+ val := WrStandardFactoryItemEx{
|
|
|
+ WRSTANDARDID: v.WRSTANDARDID,
|
|
|
+ DGFACTORYITEMTYPEID: v.DGFACTORYITEMTYPEID,
|
|
|
+ ITEMTYPENAME: v.ITEMTYPENAME,
|
|
|
+ ItemLst: make([]WrStandardFactoryItem, 0),
|
|
|
+ }
|
|
|
+ val.ItemLst = append(val.ItemLst, v)
|
|
|
+ mapLst[v.DGFACTORYITEMTYPEID] = val
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for _, ex := range mapLst {
|
|
|
+ sData = append(sData, ex)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return sData, nil
|
|
|
+}
|