|
@@ -1,10 +1,10 @@
|
|
|
package service
|
|
|
|
|
|
import (
|
|
|
- "encoding/json"
|
|
|
"fmt"
|
|
|
"strings"
|
|
|
"sync"
|
|
|
+ "time"
|
|
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
|
"kpt.xdmy/apiserver/model"
|
|
@@ -14,7 +14,7 @@ import (
|
|
|
const (
|
|
|
ContractToAspUrl = "http://192.168.61.117/SAPQ0/SRM/MM018/PurchaseInfo"
|
|
|
ContractToAspDestID = "EQMAN"
|
|
|
- ContractToAspBussTp = "MM007"
|
|
|
+ ContractToAspBussTp = "MM018"
|
|
|
ContractLimit = 10
|
|
|
)
|
|
|
|
|
@@ -28,6 +28,8 @@ var (
|
|
|
},
|
|
|
DATA: &http.ContractDataToASP{},
|
|
|
}
|
|
|
+ loc, _ = time.LoadLocation("Local")
|
|
|
+ timeLayout = "2006-01-02 15:04:05"
|
|
|
)
|
|
|
|
|
|
type ContractInfo struct {
|
|
@@ -139,31 +141,32 @@ func PushContractDataToSAP(bigContract *model.BigContract, contractInfo *Contrac
|
|
|
if contract.Enable == 0 {
|
|
|
LOEKZ = "X"
|
|
|
}
|
|
|
+ startTime, _ := time.ParseInLocation(timeLayout, bigContract.StartTime, loc)
|
|
|
+ stopTime, _ := time.ParseInLocation(timeLayout, bigContract.StopTime, loc)
|
|
|
contractDataToASP := &http.ContractDataToASP{
|
|
|
MATNR: contract.PartCode,
|
|
|
LIFNR: contractInfo.Provider.SapCode,
|
|
|
EKORG: contractInfo.Pasture.ParchaseOrganization,
|
|
|
WERKS: contractInfo.Pasture.FactoryCode,
|
|
|
- NETPR: "",
|
|
|
WAERS: "CNY",
|
|
|
- BPRME: "",
|
|
|
- PEINH: "",
|
|
|
+ PEINH: fmt.Sprintf("%f", contract.Price),
|
|
|
MWSKZ: "J0",
|
|
|
EKGRP: contractInfo.Pasture.PurchasingGroup,
|
|
|
- DATAB: bigContract.StartTime,
|
|
|
- DATBI: bigContract.StopTime,
|
|
|
+ DATAB: startTime.Format("20060102"),
|
|
|
+ DATBI: stopTime.Format("20060102"),
|
|
|
LOEKZ: LOEKZ,
|
|
|
+ ESOKZ: fmt.Sprintf("%d", contract.IsZeroStock),
|
|
|
+ MEINS: contract.Unit,
|
|
|
}
|
|
|
sapContractReq.DATA = contractDataToASP
|
|
|
- bodyByte, _ := json.Marshal(sapContractReq.DATA)
|
|
|
- rp := &http.OrderResp{}
|
|
|
- if err := s.SyncSap(sapContractReq, rp, bodyByte); err != nil {
|
|
|
- log.Errorf("AutoContractToASP SyncSap Err:%v", err)
|
|
|
|
|
|
+ rp := &http.SapContractResp{}
|
|
|
+ if err := s.SyncSap(sapContractReq, rp, sapContractReq); err != nil {
|
|
|
+ log.Errorf("AutoContractToASP SyncSap Err:%v contract:%v", err, contract)
|
|
|
+ continue
|
|
|
}
|
|
|
- log.Infof("AutoContractToASP SyncSap Success:%v", rp)
|
|
|
- if rp.Data.Status != "S" {
|
|
|
- log.Errorf("AutoContractToASP SyncSap Error Data:%v", rp.Data)
|
|
|
+ if rp.Dest.Status != "S" {
|
|
|
+ log.Errorf("AutoContractToASP SyncSap Error:%v,contract:%v", rp, contract)
|
|
|
}
|
|
|
}
|
|
|
}
|