Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -27,7 +27,8 @@ MSSQL_CONN=sqlserver://sa:Gil_0150@100.127.186.137:1433?database=BAGGI_V3&encryp
|
|||||||
# ===============================
|
# ===============================
|
||||||
# PDF
|
# PDF
|
||||||
# ===============================
|
# ===============================
|
||||||
PDF_FONT_DIR=/opt/bssapp/svc/fonts
|
PDF_FONT_DIR=D:\\baggitekstilas\\software projects\\bssapp\\bssapp\\svc\\fonts
|
||||||
API_HOST=0.0.0.0
|
API_HOST=0.0.0.0
|
||||||
API_PORT=8080
|
API_PORT=8080
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -745,6 +745,16 @@ VALUES (
|
|||||||
`
|
`
|
||||||
|
|
||||||
fmt.Println("🟪 HEADER INSERT ÇALIŞIYOR...")
|
fmt.Println("🟪 HEADER INSERT ÇALIŞIYOR...")
|
||||||
|
fmt.Printf(
|
||||||
|
"🧾 HEADER DEBUG | CurrAccType=%v CurrAcc=%q Office=%q StoreType=%v Store=%q OrdererOffice=%q OrdererStore=%q\n",
|
||||||
|
nullableInt16(header.CurrAccTypeCode, 0).Int16,
|
||||||
|
safeNS(header.CurrAccCode),
|
||||||
|
safeNS(header.OfficeCode),
|
||||||
|
nullableInt16(header.StoreTypeCode, 0).Int16,
|
||||||
|
safeNS(header.StoreCode),
|
||||||
|
safeNS(header.OrdererOfficeCode),
|
||||||
|
safeNS(header.OrdererStoreCode),
|
||||||
|
)
|
||||||
|
|
||||||
// ✅ exRate burada gerçekten kullanılıyor (ExchangeRate parametresi)
|
// ✅ exRate burada gerçekten kullanılıyor (ExchangeRate parametresi)
|
||||||
headerParams := []any{
|
headerParams := []any{
|
||||||
@@ -785,7 +795,7 @@ VALUES (
|
|||||||
nullableInt32ToInt16(header.CompanyCode, 1),
|
nullableInt32ToInt16(header.CompanyCode, 1),
|
||||||
nullableString(header.OfficeCode, "101"),
|
nullableString(header.OfficeCode, "101"),
|
||||||
nullableInt16(header.StoreTypeCode, 5),
|
nullableInt16(header.StoreTypeCode, 5),
|
||||||
nullableString(header.StoreCode, ""),
|
nullableString(models.NullString{}, ""),
|
||||||
|
|
||||||
nullableInt16(header.POSTerminalID, 0),
|
nullableInt16(header.POSTerminalID, 0),
|
||||||
nullableString(header.WarehouseCode, "1-0-12"),
|
nullableString(header.WarehouseCode, "1-0-12"),
|
||||||
@@ -793,7 +803,7 @@ VALUES (
|
|||||||
|
|
||||||
nullableInt32ToInt16(header.OrdererCompanyCode, 1),
|
nullableInt32ToInt16(header.OrdererCompanyCode, 1),
|
||||||
nullableString(header.OrdererOfficeCode, "101"),
|
nullableString(header.OrdererOfficeCode, "101"),
|
||||||
nullableString(header.OrdererStoreCode, ""),
|
nullableString(models.NullString{}, ""),
|
||||||
|
|
||||||
nullableString(header.GLTypeCode, ""),
|
nullableString(header.GLTypeCode, ""),
|
||||||
nullableString(header.DocCurrencyCode, "TRY"),
|
nullableString(header.DocCurrencyCode, "TRY"),
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ func CreateOrderHandler(pg *sql.DB, mssql *sql.DB) http.HandlerFunc {
|
|||||||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||||
|
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
// JWT CLAIMS
|
// JWT CLAIMS (TEK KAYNAK)
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
claims, ok := auth.GetClaimsFromContext(r.Context())
|
claims, ok := auth.GetClaimsFromContext(r.Context())
|
||||||
if !ok || claims == nil {
|
if !ok || claims == nil {
|
||||||
@@ -114,27 +114,43 @@ func CreateOrderHandler(pg *sql.DB, mssql *sql.DB) http.HandlerFunc {
|
|||||||
}
|
}
|
||||||
|
|
||||||
user := utils.UserFromClaims(claims)
|
user := utils.UserFromClaims(claims)
|
||||||
|
|
||||||
if !ok || claims == nil {
|
|
||||||
http.Error(w, "Yetkisiz", http.StatusUnauthorized)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
user = utils.UserFromClaims(claims)
|
|
||||||
if user == nil {
|
if user == nil {
|
||||||
http.Error(w, "Yetkisiz", http.StatusUnauthorized)
|
http.Error(w, "Kullanici dogrulanamadi", http.StatusUnauthorized)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fmt.Printf("[CREATE] hit user=%s role=%s\n", user.Username, user.RoleCode)
|
||||||
|
|
||||||
var payload struct {
|
var payload struct {
|
||||||
Header models.OrderHeader `json:"header"`
|
Header models.OrderHeader `json:"header"`
|
||||||
Lines []models.OrderDetail `json:"lines"`
|
Lines []models.OrderDetail `json:"lines"`
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := json.NewDecoder(r.Body).Decode(&payload); err != nil {
|
if err := json.NewDecoder(r.Body).Decode(&payload); err != nil {
|
||||||
http.Error(w, "Geçersiz JSON", http.StatusBadRequest)
|
fmt.Printf("[CREATE] decode error: %v\n", err)
|
||||||
|
http.Error(w, "Gecersiz JSON", http.StatusBadRequest)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
fmt.Printf(
|
||||||
|
"[CREATE] payload header_id=%s curr_acc=%s office=%s store=%s orderer_office=%s orderer_store=%s lines=%d\n",
|
||||||
|
payload.Header.OrderHeaderID,
|
||||||
|
payload.Header.CurrAccCode.String,
|
||||||
|
payload.Header.OfficeCode.String,
|
||||||
|
payload.Header.StoreCode.String,
|
||||||
|
payload.Header.OrdererOfficeCode.String,
|
||||||
|
payload.Header.OrdererStoreCode.String,
|
||||||
|
len(payload.Lines),
|
||||||
|
)
|
||||||
|
fmt.Printf(
|
||||||
|
"🧾 CREATE PAYLOAD | header_id=%s curr_acc=%s office=%s store=%s orderer_office=%s orderer_store=%s lines=%d\n",
|
||||||
|
payload.Header.OrderHeaderID,
|
||||||
|
payload.Header.CurrAccCode.String,
|
||||||
|
payload.Header.OfficeCode.String,
|
||||||
|
payload.Header.StoreCode.String,
|
||||||
|
payload.Header.OrdererOfficeCode.String,
|
||||||
|
payload.Header.OrdererStoreCode.String,
|
||||||
|
len(payload.Lines),
|
||||||
|
)
|
||||||
|
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
// INSERT
|
// INSERT
|
||||||
@@ -142,7 +158,7 @@ func CreateOrderHandler(pg *sql.DB, mssql *sql.DB) http.HandlerFunc {
|
|||||||
newID, lineResults, err := queries.InsertOrder(
|
newID, lineResults, err := queries.InsertOrder(
|
||||||
payload.Header,
|
payload.Header,
|
||||||
payload.Lines,
|
payload.Lines,
|
||||||
user, // ✅ *models.User
|
user, // *models.User
|
||||||
)
|
)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -155,7 +171,14 @@ func CreateOrderHandler(pg *sql.DB, mssql *sql.DB) http.HandlerFunc {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
// SYSTEM ERROR
|
||||||
|
utils.LogError("ORDER_CREATE", err)
|
||||||
|
w.WriteHeader(http.StatusInternalServerError)
|
||||||
|
_ = json.NewEncoder(w).Encode(map[string]any{
|
||||||
|
"code": "ORDER_CREATE_FAILED",
|
||||||
|
"message": "Siparis kaydedilirken beklenmeyen bir hata olustu.",
|
||||||
|
"detail": err.Error(),
|
||||||
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2611,7 +2611,33 @@ export const useOrderEntryStore = defineStore('orderentry', {
|
|||||||
'color:#c9a873;font-weight:bold'
|
'color:#c9a873;font-weight:bold'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Ensure backend string fields are sent as strings.
|
||||||
|
if (header) {
|
||||||
|
header.OfficeCode = header.OfficeCode != null ? String(header.OfficeCode) : header.OfficeCode
|
||||||
|
header.StoreCode = header.StoreCode != null ? String(header.StoreCode) : header.StoreCode
|
||||||
|
header.OrdererOfficeCode = header.OrdererOfficeCode != null ? String(header.OrdererOfficeCode) : header.OrdererOfficeCode
|
||||||
|
header.OrdererStoreCode = header.OrdererStoreCode != null ? String(header.OrdererStoreCode) : header.OrdererStoreCode
|
||||||
|
// PaymentTerm must be numeric (int16) or null for backend.
|
||||||
|
if (header.PaymentTerm === '' || header.PaymentTerm == null) {
|
||||||
|
header.PaymentTerm = null
|
||||||
|
} else if (typeof header.PaymentTerm === 'string') {
|
||||||
|
const n = Number(header.PaymentTerm)
|
||||||
|
header.PaymentTerm = Number.isNaN(n) ? null : n
|
||||||
|
}
|
||||||
|
}
|
||||||
console.log('HEADER:', JSON.parse(JSON.stringify(header)))
|
console.log('HEADER:', JSON.parse(JSON.stringify(header)))
|
||||||
|
console.log('HEADER KEYS:', {
|
||||||
|
OrderHeaderID: header?.OrderHeaderID,
|
||||||
|
CurrAccTypeCode: header?.CurrAccTypeCode,
|
||||||
|
CurrAccCode: header?.CurrAccCode,
|
||||||
|
OfficeCode: header?.OfficeCode,
|
||||||
|
StoreTypeCode: header?.StoreTypeCode,
|
||||||
|
StoreCode: header?.StoreCode,
|
||||||
|
OrdererOfficeCode: header?.OrdererOfficeCode,
|
||||||
|
OrdererStoreCode: header?.OrdererStoreCode,
|
||||||
|
PaymentTerm: header?.PaymentTerm,
|
||||||
|
DocCurrencyCode: header?.DocCurrencyCode
|
||||||
|
})
|
||||||
|
|
||||||
lines.forEach((l, i) => {
|
lines.forEach((l, i) => {
|
||||||
console.log(`LINE[${i}]`, {
|
console.log(`LINE[${i}]`, {
|
||||||
|
|||||||
Reference in New Issue
Block a user