Files
bssapp/ui/src/stores/downloadstpdfStore.js
2026-06-04 14:33:24 +03:00

62 lines
1.8 KiB
JavaScript

import { defineStore } from 'pinia'
import api, { download, extractApiErrorDetail } from 'src/services/api'
export const useDownloadstpdfStore = defineStore('downloadstpdf', {
actions: {
async downloadPDF(accountCode, startDate, endDate, parislemler = [], langcode = 'TR', rows = []) {
try {
let pdfBlob
if (Array.isArray(rows) && rows.length > 0) {
const response = await api.request({
method: 'POST',
url: '/export-pdf',
data: {
account_code: accountCode,
start_date: startDate,
end_date: endDate,
lang_code: langcode || 'TR',
rows
},
responseType: 'blob',
timeout: 180000
})
pdfBlob = response.data
} else {
const params = {
accountcode: accountCode,
startdate: startDate,
enddate: endDate,
langcode: langcode || 'TR'
}
if (Array.isArray(parislemler) && parislemler.length > 0) {
params.parislemler = parislemler.filter(
p => p !== undefined && p !== null && p !== ''
)
}
pdfBlob = await download('/export-pdf', params)
}
const pdfUrl = window.URL.createObjectURL(
new Blob([pdfBlob], { type: 'application/pdf' })
)
window.open(pdfUrl, '_blank')
return { ok: true, message: 'PDF hazirlandi' }
} catch (err) {
const detail = await extractApiErrorDetail(err)
const status = err?.status || err?.response?.status || '-'
console.error(`PDF acma hatasi [${status}] /export-pdf: ${detail}`)
return {
ok: false,
message: detail || 'PDF alinamadi'
}
}
}
}
})