Merge remote-tracking branch 'origin/master'

This commit is contained in:
M_Kececi
2026-03-03 10:16:05 +03:00
parent ecf3a8bd07
commit b208aa32e2
26 changed files with 2013 additions and 965 deletions

View File

@@ -82,23 +82,30 @@ func ExportStatementAgingPDFHandler(_ *sql.DB) http.HandlerFunc {
return
}
params := models.StatementAgingParams{
AccountCode: strings.TrimSpace(r.URL.Query().Get("accountcode")),
EndDate: strings.TrimSpace(r.URL.Query().Get("enddate")),
Parislemler: r.URL.Query()["parislemler"],
}
if params.AccountCode == "" || params.EndDate == "" {
http.Error(w, "accountcode and enddate are required", http.StatusBadRequest)
return
selectedDate := time.Now().Format("2006-01-02")
listParams := models.CustomerBalanceListParams{
SelectedDate: selectedDate,
CariSearch: strings.TrimSpace(r.URL.Query().Get("cari_search")),
CariIlkGrup: strings.TrimSpace(r.URL.Query().Get("cari_ilk_grup")),
Piyasa: strings.TrimSpace(r.URL.Query().Get("piyasa")),
Temsilci: strings.TrimSpace(r.URL.Query().Get("temsilci")),
RiskDurumu: strings.TrimSpace(r.URL.Query().Get("risk_durumu")),
IslemTipi: strings.TrimSpace(r.URL.Query().Get("islem_tipi")),
Ulke: strings.TrimSpace(r.URL.Query().Get("ulke")),
Il: strings.TrimSpace(r.URL.Query().Get("il")),
Ilce: strings.TrimSpace(r.URL.Query().Get("ilce")),
}
detailed := parseBoolQuery(r.URL.Query().Get("detailed"))
excludeZero12 := parseBoolQuery(r.URL.Query().Get("exclude_zero_12"))
excludeZero13 := parseBoolQuery(r.URL.Query().Get("exclude_zero_13"))
rows, err := queries.GetStatementAging(params)
rows, err := queries.GetStatementAgingBalanceList(r.Context(), listParams)
if err != nil {
http.Error(w, "db error: "+err.Error(), http.StatusInternalServerError)
return
}
masters := buildAgingPDFData(rows)
rows = filterCustomerBalanceRowsForPDF(rows, excludeZero12, excludeZero13)
summaries, detailsByMaster := buildCustomerBalancePDFData(rows)
pdf := gofpdf.New("L", "mm", "A4", "")
pdf.SetMargins(8, 8, 8)
@@ -108,7 +115,14 @@ func ExportStatementAgingPDFHandler(_ *sql.DB) http.HandlerFunc {
return
}
drawStatementAgingPDF(pdf, params, masters)
drawCustomerBalancePDF(
pdf,
selectedDate,
listParams.CariSearch,
detailed,
summaries,
detailsByMaster,
)
if err := pdf.Error(); err != nil {
http.Error(w, "pdf render error: "+err.Error(), http.StatusInternalServerError)
@@ -122,7 +136,11 @@ func ExportStatementAgingPDFHandler(_ *sql.DB) http.HandlerFunc {
}
w.Header().Set("Content-Type", "application/pdf")
w.Header().Set("Content-Disposition", `inline; filename="account-aging-detailed.pdf"`)
filename := "account-aging-summary.pdf"
if detailed {
filename = "account-aging-detailed.pdf"
}
w.Header().Set("Content-Disposition", fmt.Sprintf("inline; filename=%q", filename))
_, _ = w.Write(buf.Bytes())
}
}