XL080 – Przykłady zaawansowanych filtrów wykorzystywanych w module Księgowość

Wstęp

Niniejszy biuletyn ma na celu przedstawienie przykładowych zaawansowanych filtrów stosowanych w module Księgowość w obszarze schematów księgowych oraz na listach: rejestrów VAT i zapisów księgowych. Korzystanie z filtrów w warunkach schematów księgowych daje użytkownikowi szerokie możliwości tworzenia uniwersalnych schematów księgowych, obsługujących różne typy transakcji. W biuletynie zaprezentowano filtry bardziej zaawansowane, a więc tych których nie można uzyskać „wprost”, tzn. posługując się tylko bezpośrednio wybranymi polami dostępnymi z Konstruktora filtra. W biuletynie zaprezentowano również zaawansowane filtry stosowane na listach rejestru VAT i zapisów księgowych. Filtry budowane na tych listach dają użytkownikowi możliwość uzyskania konkretnych dokumentów, zgodnych z wymaganiami użytkowników.

Przykładowe filtry budowane w warunkach pozycji schematów księgowych

Pozycje schematów księgowych tworzone w oparciu o tabelę Oblicz dla: Płatności

  • Księgowanie w przypadku, gdy płatnik na dokumencie jest kontrahentem powiązanym i krajowym:

trp_kntnumer in (select knt_gidnumer from cdn.kntkarty where knt_powiazany = 1 and knt_expokraj = 1)

  • Księgowanie w przypadku, gdy dokument dotyczy umowy numer: UM125. Do dokumentu można przypiąć atrybut z numerem umowy:

exists (Select * from Cdn.Atrybuty where Atr_Obityp=trn_gidTyp and Atr_ObiNumer=trn_gidNumer and (Atr_AtkID=2 and Atr_Wartosc=’UM125′))

Atr_AtkID – unikalne ID klasy atrybutu zapisane w tabeli  cdn.atrybutyklasy (AtK_ID=Atr_AtkId)

Numer umowy
Warunek w schemacie księgowym

Pozycje schematów księgowych tworzone w oparciu o tabelę Oblicz dla: Nagłówka

  • Księgowanie w przypadku, gdy trzy znaki serii dokumentu licząc od trzeciego to KWR:

substring(trn_trnseria,3,3) like ‘KWR’

Pozycje schematów księgowych tworzone w oparciu o tabelę Oblicz dla: Elementów

  • Księgowanie w przypadku, gdy opis na dokumencie zawiera znaki: KRA:

trn_gidnumer in (select tno_trnnumer from cdn.trnopisy join cdn.tranag on TRN_GIDTyp=TNO_TrNTyp and TRN_GIDNumer=TNO_TrNNumer where TnO_Opis LIKE ‘%’ + ‘KRA’ + ‘%’ )

  • Księgowanie w przypadku, gdy na dokumencie występują określone magazyny, tj. 5 i 14 oraz kiedy dokument wprowadzony jest na kontrahenta powiązanego

trs_magnumer in (5, 14) and tre_gidnumer in (select trn_gidnumer from cdn.tranag join cdn.kntkarty on trn_kntnumer = knt_gidnumer and trn_knttyp = knt_gidtyp where knt_powiazany = 1)

Pozycje schematów księgowych tworzone w oparciu o tabelę Oblicz dla: Tabeli VAT

  • Księgowanie w przypadku, gdy miesiąc ujęcia dokumentu na deklaracji VAT7 jest równy miesiącowi wystawienia dokumentu:

TRV_DeklMiesiac=month(dateadd(day,Trn_data2,convert(datetime,’1800-12-28′,120)))

Pozycje schematów księgowych tworzone w oparciu o tabelę Oblicz dla: Opisu analitycznego

  • Księgowanie w przypadku, gdy elementy wymiaru struktury kosztowej to konta zespołu 505 lub konta zespołu 506:

ows_wmrid in (select frs_id from cdn.frmstruktura where (frs_konto like ‘505%’ or frs_konto like ‘506%’)) and ows_typwymiaru=1

  • Księgowanie w przypadku, gdy pierwszy znak kodu projektu będącego elementem wymiaru analitycznego to P:

(select left(prj_kod,1) from cdn.prjstruktura where prj_id=ows_wmrid)=’P’ and ows_typwymiaru=5

  • Księgowanie w przypadku, gdy na dokumencie występuje towar typu avista:

exists (select 1 from cdn.traelem where TrN_GIDTyp=TrE_GIDTyp and TrN_GIDFirma=TrE_GIDFirma and TrN_GIDNumer=TrE_GIDNumer and Tre_TypTwr=6)

Przykładowe filtry budowane na listach rejestru VAT, zapisów księgowych

Przykładowe filtry tworzone na liście rejestru VAT

  • Wyszukanie dokumentów wprowadzonych na kontrahenta wybranego za pośrednictwem wywoływanej listy kontrahentów. Należy skorzystać z opcji „Wstaw/edytuj deklarację parametru dynamicznego”:

@PAR ?@LS20(CDN_KNT.DLL|CALLLOOKUPKNTLISTAGRUP())|Kontrahent|&Kontrahent:REG= @? PAR@
kna.KnA_KntNumer=??Kontrahent

Filtr na liście rejestru VAT
  • Wyszukanie dokumentów zaksięgowanych według wybranego schematu księgowego. Należy skorzystać z opcji „Wstaw/edytuj deklarację parametru dynamicznego”:

@PAR ?@R(SELECT sch_gidnumer, sch_nazwa from cdn.schematy)|Schemat|&Schemat:REG= @? PAR@
trn_gidnumer in (select trn_gidnumer from cdn.tranag
join cdn.schematy on TrN_SchTyp=Sch_GidTyp and TrN_SchNumer=Sch_GidNumer
and Sch_GiDNumer=??Schemat)

  • Wyszukanie dokumentów o wybranej serii, których data wystawienia mieści się w zadanym zakresie czasowym oraz zadanym terminie płatności. Należy skorzystać z opcji „Wstaw/edytuj deklarację parametru dynamicznego”:

@PAR ?@D17|Data_wystawienia_od|&Data_wystawienia_od:REG={DateClwFirstDay(‘m’)} @? PAR@
@PAR ?@D17|Data_wystawienia_do|&Data_wystawienia_do:REG={DateClwLastDay(‘m’)} @? PAR@
@PAR ?@D17|Termin_płatności_od|&Termin_płatności_od:REG={DateClwFirstDay(‘m’)} @? PAR@
@PAR ?@D17|Termin_płatności_do|&Termin_płatności_do:REG={DateClwLastDay(‘m’)} @? PAR@

TrN_TrNSeria=?@S100|seria:” AND TrN_Data2>=??Data_wystawienia_od AND TrN_Data2<=??Data_wystawienia_do and trn_gidnumer in (select trp_gidnumer from cdn.traplat join cdn.tranag on TrN_GIDTyp=TRP_GIDTyp AND TrN_GIDNumer=TRP_GIDNumer where trp_termin>=??Termin_płatności_od and trp_termin<=??Termin_płatności_do)

  • Wyszukanie dokumentów według wybranego numeru systemowego dokumentu. Zastosowanie funkcji: ltrim i rtrim:

(ltrim(trn_trnnumer) + ‘/’ + rtrim(trn_trnseria)) like ‘%’ + ?@S100|Numer syst. faktury:” + ‘%’

  • Wyszukanie dokumentów wystawionych, zmodyfikowanych lub zatwierdzonych przez wybranego operatora:

trn_gidnumer in
(select trn_gidnumer from cdn.tranag inner join cdn.opekarty on trn_openumerw=ope_gidnumer
where Ope_Ident=?@S100|KTO (podaj swój login):”
)
or trn_gidnumer in
(select trn_gidnumer from cdn.tranag inner join cdn.opekarty on trn_openumerm=ope_gidnumer
where Ope_Ident=?@S100|KTO (podaj swój login):”
)
or trn_gidnumer in
(select trn_gidnumer from cdn.tranag inner join cdn.opekarty on trn_openumerz=ope_gidnumer
where Ope_Ident=?@S100|KTO (podaj swój login):”
)

  • Wyszukanie dokumentów wprowadzonych na kontrahenta krajowego:

trn_gidnumer in (select trn_gidnumer from cdn.tranag
inner join cdn.kntkarty on Knt_GIDNumer=TrN_KntNumer
where
Knt_ExpoKraj=1)

  • Wyszukanie dokumentów z wybranym towarem:

@PAR ?@LS20(CDN_TWR.DLL|CALLLOOKUPTWRLISTAGRUP())|Towar|&Towar:REG= @? PAR@

TrN_GIDNumer in (select tre_gidnumer from cdn.traelem where tre_twrnumer=??Towar)

  • Wyszukiwanie dokumentów zaksięgowanych na wybrane konto:

@PAR ?@LS30(CDN_KKS.DLL|CALLLOOKUPKKSLISTA())|kontoksiegowe|Konto:REG= @? PAR@

exists(select 1 from cdn.zrodla join cdn.dekrety on zro_dtnumer=dt_gidnumer and zro_dttyp=dt_gidtyp where trv_gidnumer=zro_trnNumer and trv_gidTyp=zro_trnTyp
and DT_KKSNumer=??kontoksiegowe)

Przykładowe filtry tworzone na liście zapisów księgowych

  • Wyszukanie zapisów księgowych pochodzących z księgowania dokumentów znajdujących się w wybranym rejestrze VAT:

dzk_gidnumer in
(select dt_gidnumer from cdn.dekrety
join cdn.zrodla on zro_dttyp = dt_gidtyp and zro_dtnumer = dt_gidnumer and zro_dtlp = dt_gidlp
join cdn.tranag on trn_gidnumer = zro_trnnumer and zro_trntyp = trn_gidtyp
where TrN_VatRejestr=?@S100|VAT Rejestr:”)

Filtr na liście zapisów księgowych
Filtr na liście zapisów księgowych
  • Wyszukanie zapisów księgowych pochodzących z księgowania dokumentów PZ:

dzk_gidnumer in
(select dt_gidnumer from cdn.dekrety
join cdn.zrodla on zro_dttyp = dt_gidtyp and zro_dtnumer = dt_gidnumer and zro_dtlp = dt_gidlp
join cdn.tranag on trn_gidnumer = zro_trnnumer and zro_trntyp = trn_gidtyp
where TrN_gidtyp = 1489)

  • Wyszukanie zapisów księgowych, które nie pochodzą z księgowania dokumentów handlowych (filtr zwraca np. zapisy PK, zapisy z not memoriałowych, itd.):

dzk_gidnumer not in
(select dt_gidnumer from cdn.dekrety
join cdn.zrodla on zro_dttyp = dt_gidtyp and zro_dtnumer = dt_gidnumer and zro_dtlp = dt_gidlp
join cdn.tranag on trn_gidnumer = zro_trnnumer and zro_trntyp = trn_gidtyp)

  • Wyszukanie zapisów księgowych wprowadzonych przez operatora Admin:

DZK_OPEWNumer in (select DZK_OPEWNumer from cdn.opekarty
join cdn.dziennik on
DZK_OPEWNumer=Ope_GIDNumer
where Ope_Ident=’Admin’)

Czy ten artykuł był pomocny?