Merge remote-tracking branch 'origin/master'

This commit is contained in:
M_Kececi
2026-03-06 10:56:53 +03:00
parent 9097b5af2d
commit 9e534e9a34
18 changed files with 2204 additions and 2015 deletions

View File

@@ -180,7 +180,7 @@ export const useAccountAgingBalanceStore = defineStore('accountAgingBalance', {
try {
this.filters.selectedDate = new Date().toISOString().slice(0, 10)
const { data } = await api.get('/finance/account-aging-statement', {
const { data } = await api.get('/finance/aged-customer-balance-list', {
params: {
cari_search: String(this.filters.cariSearch || '').trim(),
cari_ilk_grup: (this.filters.cariIlkGrup || []).join(','),

View File

@@ -50,32 +50,25 @@ export const useStatementAgingStore = defineStore('statementAging', {
const currencyKey = `${cari8}|${curr}`
const tutar = Number(row?.eslesen_tutar) || 0
const usd = Number(row?.usd_tutar) || 0
const trY = Number(row?.try_tutar) || 0
const absTry = Math.abs(trY)
const absUsd = Math.abs(usd)
const gun = Number(row?.gun_sayisi) || 0
const gunDoc = Number(row?.gun_sayisi_docdate) || 0
const aciklama = String(row?.aciklama || '').toUpperCase()
const isAcik = aciklama === 'ACIKKALEM'
if (!masterMap[masterKey]) {
masterMap[masterKey] = {
group_key: masterKey,
cari8: masterKey,
cari_detay: String(row?.cari_detay || '').trim(),
acik_kalem_tutari_usd: 0,
acik_kalem_tutari_try: 0,
acik_kalem_ort_vade_gun: 0,
acik_kalem_ort_belge_gun: 0,
normal_usd_tutar: 0,
normal_try_tutar: 0,
ortalama_vade_gun: 0,
ortalama_belge_gun: 0,
weighted_all_base: 0,
weighted_all_gun_sum: 0,
weighted_all_doc_sum: 0,
weighted_open_base: 0,
weighted_open_gun_sum: 0,
weighted_open_doc_sum: 0,
satir_sayisi: 0,
toplam_usd: 0,
normal_usd: 0,
acik_kalem_usd: 0,
weighted_gun_sum: 0,
weighted_gun_doc_sum: 0,
weighted_base: 0,
ortalama_gun: 0,
ortalama_gun_docdate: 0
}
}
@@ -85,46 +78,48 @@ export const useStatementAgingStore = defineStore('statementAging', {
master_key: masterKey,
cari8,
cari_detay: String(row?.cari_detay || '').trim(),
doviz_cinsi: curr,
acik_kalem_tutari: 0,
acik_kalem_usd: 0,
acik_kalem_try: 0,
ort_gun: 0,
ort_belge_gun: 0,
weighted_open_base: 0,
weighted_open_gun_sum: 0,
weighted_open_doc_sum: 0
doc_currency_code: curr,
satir_sayisi: 0,
toplam_tutar: 0,
toplam_usd: 0,
normal_tutar: 0,
acik_kalem_tutar: 0,
weighted_gun_sum: 0,
weighted_gun_doc_sum: 0,
weighted_base: 0,
ortalama_gun: 0,
ortalama_gun_docdate: 0
}
}
const m = masterMap[masterKey]
const c = currencyMap[currencyKey]
if (isAcik) {
m.acik_kalem_tutari_usd += usd
m.acik_kalem_tutari_try += trY
c.acik_kalem_tutari += tutar
c.acik_kalem_usd += usd
c.acik_kalem_try += trY
m.satir_sayisi += 1
m.toplam_usd += usd
if (aciklama === 'ACIKKALEM') {
m.acik_kalem_usd += usd
} else {
m.normal_usd_tutar += usd
m.normal_try_tutar += trY
m.normal_usd += usd
}
if (absTry > 0) {
m.weighted_all_base += absTry
m.weighted_all_gun_sum += absTry * gun
m.weighted_all_doc_sum += absTry * gunDoc
c.satir_sayisi += 1
c.toplam_tutar += tutar
c.toplam_usd += usd
if (aciklama === 'ACIKKALEM') {
c.acik_kalem_tutar += tutar
} else {
c.normal_tutar += tutar
}
if (isAcik) {
m.weighted_open_base += absTry
m.weighted_open_gun_sum += absTry * gun
m.weighted_open_doc_sum += absTry * gunDoc
if (absUsd > 0) {
m.weighted_base += absUsd
m.weighted_gun_sum += absUsd * gun
m.weighted_gun_doc_sum += absUsd * gunDoc
c.weighted_open_base += absTry
c.weighted_open_gun_sum += absTry * gun
c.weighted_open_doc_sum += absTry * gunDoc
}
c.weighted_base += absUsd
c.weighted_gun_sum += absUsd * gun
c.weighted_gun_doc_sum += absUsd * gunDoc
}
if (!detailMap[currencyKey]) detailMap[currencyKey] = []
@@ -134,10 +129,8 @@ export const useStatementAgingStore = defineStore('statementAging', {
this.masterRows = Object.values(masterMap)
.map((m) => ({
...m,
acik_kalem_ort_vade_gun: m.weighted_open_base > 0 ? ceilDay(m.weighted_open_gun_sum / m.weighted_open_base) : 0,
acik_kalem_ort_belge_gun: m.weighted_open_base > 0 ? ceilDay(m.weighted_open_doc_sum / m.weighted_open_base) : 0,
ortalama_vade_gun: m.weighted_all_base > 0 ? ceilDay(m.weighted_all_gun_sum / m.weighted_all_base) : 0,
ortalama_belge_gun: m.weighted_all_base > 0 ? ceilDay(m.weighted_all_doc_sum / m.weighted_all_base) : 0
ortalama_gun: m.weighted_base > 0 ? (m.weighted_gun_sum / m.weighted_base) : 0,
ortalama_gun_docdate: m.weighted_base > 0 ? (m.weighted_gun_doc_sum / m.weighted_base) : 0
}))
.sort((a, b) => String(a.cari8).localeCompare(String(b.cari8), 'tr', { sensitivity: 'base' }))
@@ -145,32 +138,18 @@ export const useStatementAgingStore = defineStore('statementAging', {
for (const c of Object.values(currencyMap)) {
const row = {
...c,
ort_gun: c.weighted_open_base > 0 ? ceilDay(c.weighted_open_gun_sum / c.weighted_open_base) : 0,
ort_belge_gun: c.weighted_open_base > 0 ? ceilDay(c.weighted_open_doc_sum / c.weighted_open_base) : 0
ortalama_gun: c.weighted_base > 0 ? (c.weighted_gun_sum / c.weighted_base) : 0,
ortalama_gun_docdate: c.weighted_base > 0 ? (c.weighted_gun_doc_sum / c.weighted_base) : 0
}
if (!currencyByMaster[row.master_key]) currencyByMaster[row.master_key] = []
currencyByMaster[row.master_key].push(row)
}
for (const key of Object.keys(currencyByMaster)) {
currencyByMaster[key].sort((a, b) => String(a.doviz_cinsi).localeCompare(String(b.doviz_cinsi), 'en', { sensitivity: 'base' }))
currencyByMaster[key].sort((a, b) => String(a.doc_currency_code).localeCompare(String(b.doc_currency_code), 'en', { sensitivity: 'base' }))
}
this.currencyRowsByMaster = currencyByMaster
for (const key of Object.keys(detailMap)) {
detailMap[key].sort((a, b) => {
const aEmpty = !a?.odeme_tarihi
const bEmpty = !b?.odeme_tarihi
if (aEmpty && !bEmpty) return -1
if (!aEmpty && bEmpty) return 1
if (aEmpty && bEmpty) return 0
const aTs = Date.parse(a.odeme_tarihi)
const bTs = Date.parse(b.odeme_tarihi)
const aNum = Number.isFinite(aTs) ? aTs : -Infinity
const bNum = Number.isFinite(bTs) ? bTs : -Infinity
return bNum - aNum
})
}
this.detailByCurrency = detailMap
},
@@ -206,17 +185,9 @@ function normalizeRowKeys(row) {
odeme_doc_date: row.OdemeDocDate ?? row.odeme_doc_date ?? null,
eslesen_tutar: Number(row.EslesenTutar ?? row.eslesen_tutar ?? 0),
usd_tutar: Number(row.UsdTutar ?? row.usd_tutar ?? 0),
try_tutar: Number(row.TryTutar ?? row.try_tutar ?? 0),
gun_sayisi: Number(row.GunSayisi ?? row.gun_sayisi ?? 0),
gun_sayisi_docdate: Number(row.GunSayisi_DocDate ?? row.gun_sayisi_docdate ?? 0),
gun_kur: Number(row.GunKur ?? row.gun_kur ?? 0),
aciklama: row.Aciklama ?? row.aciklama ?? null,
doc_currency_code: row.DocCurrencyCode ?? row.doc_currency_code ?? null
}
}
function ceilDay(value) {
const n = Number(value)
if (!Number.isFinite(n)) return 0
return Math.ceil(n)
}