Cikkek
A késedelmi kamatok kiszámítása gyakran komplex és időigényes feladat, különösen akkor, ha több száz vagy ezer ügyfél adatait kell feldolgozni. Ebben a cikkben bemutatom, hogyan automatizálhatjuk ezt a folyamatot SQL Server tárolt eljárások segítségével, úgy, hogy mindössze egy gombnyomásra szükségünk legyen.

A rendszer architektúrája

1. Alapvető komponensek

  • Jegybanki alapkamat tábla: A jelenleg érvényes kamatlábak nyilvántartása
  • Egyenleg lekérdező eljárás: Meglévő rendszer, ami az albetétek aktuális egyenlegét képes lekérdezni
  • Napi tőketartozás tábla: A napi bontású tartozásokat tárolja
  • Havi késedelmi kamat tábla: Havi összesítéseket tartalmaz

2. A kamatszámítás logikája

-- Késedelmi kamat = Jegybanki alapkamat + 8% -- Napi kamatláb = Éves kamatláb / 365 -- Napi kamat = Tartozás × Napi kamatláb / 100

A tárolt eljárás működése

1. Paraméterezés – Egyszerűen és gyorsan

EXEC [dbo].[sp_NapiToketartozasFeltoltes] @AlbetetID_Tol = 1001, -- Kezdő albetét ID @AlbetetID_Ig = 1100, -- Záró albetét ID @DatumTol = '2025-01-01', -- Kezdő dátum @DatumIg = '2025-10-31'; -- Záró dátum

2. Az egyenleg lekérdezés mechanizmusa

A rendszer a meglévő sp_AlbetetEgyenlegKimutatas eljárást használja, amely részletes egyenleg információkat szolgáltat:
Sorrend Tipus Datum Leiras Osszeg Egyenleg
1 NYITÓ 2025-01-01 Egyenleg átvitel -50000
2 ELŐÍRÁS 2025-01-01 Havi előírás -15000 -65000
3 BEFIZETÉS 2025-01-15 Készpénzes befizetés 10000 -55000
4 ZÁRÓ 2025-01-31 Záró egyenleg -55000

3. A napi tőketartozás számítási logika

A számítás különbséget tesz a hónap első és második fele között:
-- 1-15. nap: Előző hónap záróegyenlege - Havi előírás -- 16-31. nap: Aktuális nap egyenlege (befizetések figyelembe véve)
Példa:Január 1-15.: December 31-i egyenleg – Januári előírás – Január 16-31.: Valós egyenleg az adott napon

4. Kamatlábak meghatározása

A rendszer févenként változtatja a kamatlábat:
-- 1. félév (január 1. - június 30.): január 1-jei jegybanki kamat + 8% -- 2. félév (július 1. - december 31.): július 1-jei jegybanki kamat + 8%

Részletes folyamatleírás

1. Előkészítő lépések

-- Táblák létrehozása, ha nem léteznek CREATE TABLE Napi_Toketartozas (...); CREATE TABLE Havi_Keses_Kamat (...);

2. Adattisztítás

-- Korábbi adatok törlése a megadott tartományból DELETE FROM Napi_Toketartozas WHERE AlbetetID BETWEEN @AlbetetID_Tol AND @AlbetetID_Ig AND Datum BETWEEN @DatumTol AND @DatumIg;

3. Fő számítási ciklus

WHILE @AktualisAlbetetID <= @AlbetetID_Ig BEGIN -- Minden albetétre külön-külön WHILE @AktualisNap <= @DatumIg BEGIN -- Minden napra külön számítás -- 1. Egyenleg lekérdezése -- 2. Kamatláb meghatározása -- 3. Napi kamat számítása -- 4. Adatok mentése END END

4. Havi összesítések készítése

INSERT INTO Havi_Keses_Kamat SELECT AlbetetID, YEAR(Datum), MONTH(Datum), SUM(NapiKamat), COUNT(*), AVG(ABS(NapiEgyenlegElotteElso15Nap)), AVG(EvesKamatlab) FROM Napi_Toketartozas GROUP BY AlbetetID, YEAR(Datum), MONTH(Datum);

Használati esetek

1. Napi lekérdezés egy albetétre

EXEC sp_NapiToketartozasFeltoltes @AlbetetID_Tol = 1001, @DatumTol = '2025-10-31', @DatumIg = '2025-10-31';
Eredmény:
AlbetetID Datum NapiEgyenleg EvesKamatlab NapiKamatlab NapiKamat
1001 2025-10-31 -75000 14.50 0.03973 29.80

2. Havi összesítés albetét csoportra

EXEC sp_NapiToketartozasFeltoltes @AlbetetID_Tol = 1001, @AlbetetID_Ig = 1050, @DatumTol = '2025-01-01', @DatumIg = '2025-10-31';
Havi eredmény:
AlbetetID Év HaviKesesKamat KamatosNapok AtlagosEgyenleg AtlagosKamatlab
1001 2025 1 895.60 31 -68450.25 14.50
1001 2025 2 812.45 28 -65230.75 14.50
1001 2025 3 945.80 31 -71560.30 14.50

Előnyök és hatékonyság

⏱️

Időmegtakarítás

Manuális számítás: Órák/hetek Automatizált: Másodpercek
🎯

Pontosság

Eliminálja az emberi hibákat Konzisztens számítási módszer
🔄

Rugalmasság

Bármely dátum tartományra Bármely albetét csoportra Valós idejű kamatváltozások
📊

Jelentéskészítés

Napi és havi bontás Részletes nyomkövetés Auditálható eredmények

Gyakorlati tanácsok

1. Optimalizálás

-- Indexek létrehozása a gyorsabb lekérdezéshez CREATE INDEX IX_Albetet_Datum ON Napi_Toketartozas (AlbetetID, Datum); CREATE INDEX IX_Albetet_EvHo ON Havi_Keses_Kamat (AlbetetID, Ev, Ho);

2. Hibakezelés

BEGIN TRY -- Egyenleg lekérdezés EXEC sp_AlbetetEgyenlegKimutatas @AlbetetID, @Datum; END TRY BEGIN CATCH -- Hibás albetétek kezelése SET @Egyenleg = 0; END CATCH

3. Naplózás

PRINT 'Albetét feldolgozása: ' + CAST(@AlbetetID AS VARCHAR); PRINT 'Kamatláb: ' + CAST(@Kamatlab AS VARCHAR) + '%';

Következtetés

A késedelmi kamatok automatizált számítása nemcsak időt takarít meg, hanem növeli a számítások pontosságát és követhetőségét is. A bemutatott rendszer rugalmasan kezeli a különböző üzleti igényeket, miközben integrálódik a meglévő rendszerekbe. A legnagyobb előny, hogy a felhasználóknak nem kell ismerniük a mögöttes számítási logikát – mindössze meg kell adniuk a paramétereket, és a rendszer elvégzi a többit. Ez lehetővé teszi, hogy akár nem szakemberek is könnyedén generálhassanak pontos kamatszámításokat.

Egy gombnyomás, és kész is a késedelmi kamat számítás!

Próbáld ki te is és éld át a hatékonyság növekedését!