Merge remote-tracking branch 'origin/master'

This commit is contained in:
2026-02-14 16:44:28 +03:00
parent fd5b8a2954
commit 6105be3eb3
2 changed files with 99 additions and 26 deletions

View File

@@ -3,6 +3,7 @@ package routes
import (
"bytes"
"database/sql"
"errors"
"fmt"
"github.com/gorilla/mux"
"github.com/jung-kurt/gofpdf"
@@ -331,14 +332,14 @@ func contains(list []string, v string) bool {
2) PDF OLUŞTURUCU (A4 YATAY + FOOTER)
=========================================================== */
func newOrderPdf() *gofpdf.Fpdf {
func newOrderPdf() (*gofpdf.Fpdf, error) {
pdf := gofpdf.New("L", "mm", "A4", "")
pdf.SetMargins(10, 10, 10)
pdf.SetAutoPageBreak(false, 12)
// UTF8 fontlar
pdf.AddUTF8Font("dejavu", "", "fonts/DejaVuSans.ttf")
pdf.AddUTF8Font("dejavu-b", "", "fonts/DejaVuSans-Bold.ttf")
if err := registerDejavuFonts(pdf, "dejavu", "dejavu-b"); err != nil {
return nil, err
}
// Footer: sayfa numarası
pdf.AliasNbPages("")
@@ -349,7 +350,7 @@ func newOrderPdf() *gofpdf.Fpdf {
pdf.CellFormat(0, 10, txt, "", 0, "R", false, 0, "")
})
return pdf
return pdf, nil
}
/* ===========================================================
@@ -1340,6 +1341,10 @@ func OrderPDFHandler(db *sql.DB) http.Handler {
header, err := getOrderHeaderFromDB(db, orderID)
if err != nil {
log.Println("header error:", err)
if errors.Is(err, sql.ErrNoRows) {
http.Error(w, "order not found", http.StatusNotFound)
return
}
http.Error(w, "header not found", http.StatusInternalServerError)
return
}
@@ -1367,7 +1372,12 @@ func OrderPDFHandler(db *sql.DB) http.Handler {
rows := normalizeOrderLinesForPdf(lines)
// PDF
pdf := newOrderPdf()
pdf, err := newOrderPdf()
if err != nil {
log.Println("pdf init error:", err)
http.Error(w, "pdf init error: "+err.Error(), http.StatusInternalServerError)
return
}
renderOrderGrid(pdf, header, rows, hasVat, vatRate)
var buf bytes.Buffer