Merge remote-tracking branch 'origin/master'

This commit is contained in:
M_Kececi
2026-02-21 12:44:52 +03:00
parent ac55f5a96c
commit f9a6457fca
5 changed files with 75 additions and 15 deletions

View File

@@ -27,7 +27,8 @@ MSSQL_CONN=sqlserver://sa:Gil_0150@100.127.186.137:1433?database=BAGGI_V3&encryp
# ===============================
# 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_PORT=8080

View File

@@ -745,6 +745,16 @@ VALUES (
`
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)
headerParams := []any{
@@ -785,7 +795,7 @@ VALUES (
nullableInt32ToInt16(header.CompanyCode, 1),
nullableString(header.OfficeCode, "101"),
nullableInt16(header.StoreTypeCode, 5),
nullableString(header.StoreCode, ""),
nullableString(models.NullString{}, ""),
nullableInt16(header.POSTerminalID, 0),
nullableString(header.WarehouseCode, "1-0-12"),
@@ -793,7 +803,7 @@ VALUES (
nullableInt32ToInt16(header.OrdererCompanyCode, 1),
nullableString(header.OrdererOfficeCode, "101"),
nullableString(header.OrdererStoreCode, ""),
nullableString(models.NullString{}, ""),
nullableString(header.GLTypeCode, ""),
nullableString(header.DocCurrencyCode, "TRY"),

View File

@@ -105,7 +105,7 @@ func CreateOrderHandler(pg *sql.DB, mssql *sql.DB) http.HandlerFunc {
w.Header().Set("Content-Type", "application/json; charset=utf-8")
// --------------------------------------------------
// JWT CLAIMS
// JWT CLAIMS (TEK KAYNAK)
// --------------------------------------------------
claims, ok := auth.GetClaimsFromContext(r.Context())
if !ok || claims == nil {
@@ -114,27 +114,43 @@ func CreateOrderHandler(pg *sql.DB, mssql *sql.DB) http.HandlerFunc {
}
user := utils.UserFromClaims(claims)
if !ok || claims == nil {
http.Error(w, "Yetkisiz", http.StatusUnauthorized)
return
}
user = utils.UserFromClaims(claims)
if user == nil {
http.Error(w, "Yetkisiz", http.StatusUnauthorized)
http.Error(w, "Kullanici dogrulanamadi", http.StatusUnauthorized)
return
}
fmt.Printf("[CREATE] hit user=%s role=%s\n", user.Username, user.RoleCode)
var payload struct {
Header models.OrderHeader `json:"header"`
Lines []models.OrderDetail `json:"lines"`
}
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
}
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
@@ -142,7 +158,7 @@ func CreateOrderHandler(pg *sql.DB, mssql *sql.DB) http.HandlerFunc {
newID, lineResults, err := queries.InsertOrder(
payload.Header,
payload.Lines,
user, // *models.User
user, // *models.User
)
if err != nil {
@@ -155,7 +171,14 @@ func CreateOrderHandler(pg *sql.DB, mssql *sql.DB) http.HandlerFunc {
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
}

View File

@@ -2611,7 +2611,33 @@ export const useOrderEntryStore = defineStore('orderentry', {
'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 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) => {
console.log(`LINE[${i}]`, {