Előleg kamatszámítás

Navigation:  Tartalom > Pénzügyi modul > Számlaállomány nyilvántartás >

Előleg kamatszámítás

Previous pageReturn to chapter overviewNext page

 

A kamatra adott szállítói előleg számlák kamatainak kiszámítását végző funkció.

 

Jogosultságkód:                24220400                Help context:        24220400

Forrás:                        EloKamSzam

 

clip2261

 

 

Az input adatokat az előtétszűrés előtt meg kell adni, mert a kamatszámítás záró dátuma szerepel a fix szűrési feltételek között.

 

X1.        p_ZarDat        datetime        Kamatszámítás záró dátuma

X2.        p_FizHat        datetime        Fizetési határidő

X3.        p_SzmDat        datetime        Számla kelte

X4.        p_BtoKod        varchar (3)        Bizonylattömb                                fk: KBToTor.BtoKod

X5.        p_ErtHat        float                Értékhatár

A kamatszámítás funkcióban a kamatszámlák elkészítése előtt megadhatunk egy értékhatárt. Amennyiben az adott partner számára számlázandó kamat értéke (áfa nélkül) nem éri el a megadott összeget, akkor a program a partner számára nem készít vevői kamat számlát.

 

Azon előleg számlák leválogatását elvégző funkció, amelyekre kamatot kívánunk számolni.

 

A. Fix szűrési feltételek

 

PSzaAla – Számla alap adatok

(TipusK=’1’)        Szállító                                                                        AND

((Jelleg=’2’)        OR        (Jelleg=’3’))                                                        AND

Rész-számla                Előleg számla

(Status<=’1’)        Elfogadott státusz                                                        AND

(Stokod=’0’)        Nem stornó, vagy stornózott számla                                        AND

((HitKam=’I’)        OR        (HitKam=’E’)        OR        (HitKam=’V’))

Fix kamat                Egyedi kamat                Változó kamat

Hitelkamat számítás szükséges                                                                AND

(KamElo=’I’)        Kamatszámítási szempontból élő                                        AND

isnull(szl.KaZaDat,szl.teldat) < @p_ZarDat

A számla kamatszámítási záró dátuma korábbi az aktuális záró dátumnál

 

B. Rugalmas szűrési feltételek

 

1.        @p_ParKodK                varchar (6),        -- Számla partner

@p_ParKodZ                varchar (6),        -- AParTor

2.        @p_AlaKodK                varchar (1),        -- Partner áfa alany

@p_AlaKodZ                varchar (1),        -- AAlaTor

3.        @p_DevKodK                varchar (3),        -- Devizanem

@p_DevKodZ                varchar (3),        -- ADevTor

4.        @p_SzAlIdK                varchar (20),        -- Számla azonosító

@p_SzalIdZ                varchar (20),

5.        @p_RelaciK                varchar (1),        -- Reláció

@p_RelaciZ                varchar (1),        -- PRE

6.        @p_JellegK                varchar (1),        -- Jelleg

@p_JellegZ                varchar (1),        -- PJL

7.        @p_FimKodK                varchar (2),        -- Fizetési mód

@p_FimKodZ                varchar (2),        -- AFimTor

8.        @p_TelDatK                datetime,        -- Teljesítés dátuma

@p_TelDatZ                datetime,

9.        @p_HitKamK                varchar (1),        -- Kamatszámítási mód

@p_HitKamZ                varchar (1),        -- HKM

10.        @p_BtoKodK                varchar (3),        -- Bizonylattömb

@p_BtoKodZ                varchar (3),        -- KBtoTor

A szűrés végrehajtása és az input adatok megadása után a [Kamatszámlák generálása] gomb megnyomásával a program egy tárolt eljárás segítéségével elkészíti a kamatszámlákat.

 

A kamatszámlák elkészítéséhez kétszer kell meghívnunk a tárolt eljárást. Első menetben (@p_Tipus = ’L’ – Lista) kiszámoljuk, hogy az egyes előleg számlák után mennyi a kamat. Az egyes partnerek számára számlázott összesített kamat értéket összehasonlítjuk a megadott értékhatárral, és bejegyezzük a partner törzsbe, hogy az adott partner számára kell-e kamat számlát készíteni. Amennyiben az összesített kamat érték meghaladja az értékhatárt, akkor a második menetben (@p_Tipus = ’S’ – Számla) a partner számára elkészítjük a kamat számlát. Az értékhatár alatti kamat esetén a partner számára nem készül kamat számla.

 

CREATE PROC TcSp_EloKamSzam

--Input paraméterek

@p_Tipus                varchar (1),                        -- L - Lista, S - Számla

@p_ZarDat                datetime,                        -- Záró dátum

@p_FizHat                datetime,                        -- Fizetési határidő

@p_SzmDat                datetime,                        -- Számla kelte

@p_BtoKod                varchar (3),                        -- Bizonylattömb

@p_ErtHat                float,                                -- Értékhatár

@p_Opekod                varchar (20),                        -- Operátor

@p_Terkod                varchar (20),                        -- Terminál

 

--Szűrés paraméterek

@p_ParKodK                varchar (6),                        -- Számla partner

@p_ParKodZ                varchar (6),                        -- AParTor

@p_AlaKodK                varchar (1),                        -- Partner áfa alany

@p_AlaKodZ                varchar (1),                        -- AAlaTor

@p_DevKodK                varchar (3),                        -- Devizanem

@p_DevKodZ                varchar (3),                        -- ADevTor

@p_SzAlIdK                varchar (20),                        -- Számla azonosító

@p_SzalIdZ                varchar (20),

@p_RelaciK                varchar (1),                        -- Reláció

@p_RelaciZ                varchar (1),                        -- PRE

@p_JellegK                varchar (1),                        -- Jelleg

@p_JellegZ                varchar (1),                        -- PJL

@p_FimKodK                varchar (2),                        -- Fizetési mód

@p_FimKodZ                varchar (2),                        -- AFimTor

@p_TelDatK                datetime,                        -- Teljesítés dátuma

@p_TelDatZ                datetime,

@p_HitKamK                varchar (1),                        -- Kamatszámítási mód

@p_HitKamZ                varchar (1),                        -- HKM

@p_BtoKodK                varchar (3),                        -- Bizonylattömb

@p_BtoKodZ                varchar (3),                        -- KBtoTor

 

--Output paraméterek

@p_KamSzAlIdK        varchar (20)        OUTPUT,        -- Elkészült kamatszámlák kezdő sorszáma

@p_KamSzAlIdZ        varchar (20)        OUTPUT,        -- Elkészült kamatszámlák záró sorszáma

@p_LisId                float                OUTPUT,        -- Lista azonosító

@p_Hiba                varchar (400)        OUTPUT        -- Hibaüzenet

 

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

 

1. cur_Szamla – Külső kurzor

A kamat számítás alap (előleg) számlái.

 

@KezdoKamat – Kezdő kamat meghatározása

 

2. cur_Tetel – Belső kurzor

Az egyes kamat számlák kamatszámítási intervallumai

 

@HitKamA ='I' – Fix kamat

PSzaElo – Az előleg befűzés tábla adatai alapján

 

@HitKamA ='V' – Változó kamat

AAktHit – Az áru katalógus csatolt kamat tábla és a

PSzaElo – Az előleg befűzés tábla adatai alapján

 

@HitKamA ='E' – Egyedi kamat

PSzaHik – Számla csatolt kamat tábla és a

PSzaElo – Az előleg befűzés tábla adatai alapján

 

If @KamTet = 1 – Első kamat tétel az alap számlán belül

Begin

Kamat elszámolás fej adatok

 

If (@p_Tipus = 'S') and (@KamSzla = 'I') – Számlázás

 

If @ParKodA <> @ParKodE or @DevKodA <> @DevKodE

A számla első kamattételénél, ha partnerkód vagy devizanem váltás következett be az előző alap számlához képest, akkor új kamatszámla fejet hozunk létre

insert into PSzaAla – Számla alap adatok

 

insert into PSzaAru

insert into pszakamf

Alap (előleg) számlánként készül egy számla áru tétel és egy kamat elszámolási fej.

Az érték adatok még nincsenek kitöltve

End

 

insert into pszakamt

Minden kamatszámítási intervallumhoz készül egy kamat elszámolási tétel.

 

Belső kurzor záró tevékenységek:

update PSzaAru – A számla áru adatok aktualizálása

update pszakamf – Kamat elszámolási fej adatok aktualizálása

 

Külső kurzor lezárása

 

If @p_Tipus = 'L'

update apartor set kamszla = kmx.kamszlax

Partner törzs – Kamatszámla szükséges mező aktualizálása

A tárolt eljárást listázási paraméterrel (@p_Tipus = ’L’ – Lista) hívjuk meg. A tárolt eljárás az adatokat temporary táblába gyűjt, melyet a rugalmas lista (TPSZAKAM) megjelenít.