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)
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
- 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:”)
- 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’)