10. Fonksiyonlar
Sorgularda bazı değerlere hızlı bir şekilde ulaşmayı sağlayan veritabanı fonksiyonlarıdır. Şema listesinde fonksiyonlar kısmından sürükle bırak ile sorgu üzerine ilave edilirler. Fonksiyonlar ve örnek kullanımları:
10.1. lq_safediv
İki sayıyı böler. Yalnız bölen kısmındaki rakam sıfır ise hata vermez, sıfır olarak sonucu döndürür.
Parametreler:
- deger1 (numeric): Bölünen
- deger2 (numeric): Bölen
Sonuç:
- numeric
Örnek Kullanım:
SELECT lq_safediv(5, 3)
10.2. func_malzemefiyatal
Stok kartının belirtilen maliyet türüne göre maliyet bilgisini döndürür.
Parametreler:
- prm_stokkey (bigint): Stok _key bilgisi
- prm_tur (text): fiyat1..10, sonalis, sonsatis, songiris, soncikis, ortalamagiris, ortalamacikis, sonasip, sonvsip, maliyet, fifo, lifo, eldo, ortalamagirisirs, ortalamacikisirs gibi değerler yazılabilir.
- prm_tarih (date): Fiyat bilgisi alınacak tarih
- prm_firmakodu (smallint): Firma kısa kodu
- prm_donemkodu (smallint): Dönem kısa kodu
- prm_raporlamadovizegore (boolean): Raporlama dövizine göre hesaplansın mı
- prm_depolar (bigint[]): Hangi depolar için bilgi getirilecek. Boş gönderilirse tüm depolar için.
- prm_saat (time): Fiyat bilgisi alınacak saat
- prm_istenenmiktar: İstenen miktar
Sonuç:
- fiyati (numeric)
- _key_sis_doviz (bigint)
- kdvdurumu (character)
- kdvyuzde (numeric)
- dkuru (numeric)
Örnek Kullanım:
SELECT
stokkartkodu, aciklama,
(SELECT fiyati * dkuru
FROM func_malzemefiyatal(stok._key::bigint, 'sonalis'::text, '2016-04-01'::date,
{secilifirma}::smallint,
{secilidonem}::smallint, False,
array[]::bigint[],
'23:59:59'::time,
1::numeric) ) as sonalisfiyati
FROM scf_stokkart stok
WHERE stok._level1={secilifirma}
10.3. func_stokfiilimiktaral
Belirtilen stoğa ait fiili miktar bilgisini ana birim cinsinden döndürür.
Parametreler:
- prm_stokkey (bigint): Stok _key bilgisi
- prm_firmakodu (smallint): Firma kısa kodu
- prm_donemkodu (smallint): Dönem kısa kodu
- prm_tarih (date): Miktar bilgisi alınacak tarih
- prm_depokeys (bigint[]): Hangi depolar için bilgi getirilecek. Boş gönderilirse tüm depolar için.
Sonuç:
- miktar (numeric)
Örnek Kullanım:
SELECT
stokkartkodu, aciklama,
(SELECT miktar FROM func_stokfiilimiktaral(_key::bigint, {secilifirma}::smallint,
{secilidonem}::smallint, '{tarih}'::date, {depokeys}::bigint[])) as miktar
FROM scf_stokkart stok
WHERE stok._level1={secilifirma}
10.4. func_stokgercekmiktaral
Belirtilen stoğa ait gerçek miktar bilgisini anabirim cinsinden döndürür.
Parametreler:
- prm_stokkey (bigint): Stok _key
- prm_firmakodu (smallint): Firma kısa
- prm_donemkodu (smallint): Dönem kısa
- prm_tarih (date): Miktar bilgisi alınacak
- prm_depokeys (bigint[]): Hangi depolar için bilgi getirilecek. Boş gönderilirse tüm depolar için.
Sonuç:
- miktar (numeric)
Örnek Kullanım:
SELECT
stokkartkodu, aciklama,
(SELECT miktar FROM func_stokgercekmiktaral(_key::bigint, {secilifirma}::smallint,
{secilidonem}::smallint, '{tarih}'::date, {depokeys}::bigint[])) as miktar
FROM scf_stokkart stok
WHERE stok._level1={secilifirma}
Depo keylerini örnekteki gibi verebilirsiniz:
ARRAY[1386,10330151,4901303]::bigint[]
10.5. func_cariyerelbakiyeal
Belirtilen parametrelere göre carinin yerel para cinsinden borç, alacak ve bakiyesini döndürür.
Parametreler:
- prm_carikey (bigint)
- prm_firmakodu (smallint)
- prm_donemkodu (smallint)
- prm_tarih (date)
- prm_faturalanmamisirsaliyedahil (boolean)
- prm_subekeys (bigint[])
Sonuç:
- borc (numeric)
- alacak (numeric)
- bakiye (numeric)
Örnek Kullanım:
SELECT carikartkodu, unvan,
(SELECT bakiye
FROM func_cariyerelbakiyeal(_key::bigint,
{secilifirma}::smallint, {secilidonem}::smallint,
'{tarih}'::date, False, {subekeys}::bigint[])) as bakiye
FROM scf_carikart cari
WHERE cari._level1={secilifirma}
10.6. func_caridovizbakiyeal
Belirtilen parametrelere göre carinin dövizli para cinsinden borç, alacak ve bakiyesini döndürür.
Parametreler:
- prm_carikey (bigint)
- prm_firmakodu (smallint)
- prm_donemkodu (smallint)
- prm_tarih (date)
- prm_dovizkey (bigint)
- prm_faturalanmamisirsaliyedahil (boolean)
- prm_subekeys (bigint[])
Sonuç:
- borc (numeric)
- alacak (numeric)
- bakiye (numeric)
Örnek Kullanım:
SELECT carikartkodu, unvan,
(SELECT bakiye FROM func_caridovizbakiyeal(_key::bigint, {secilifirma}::smallint,
{secilidonem}::smallint, '{tarih}'::date, _key_sis_doviz::bigint,
False, {subekeys}::bigint[]) ) as bakiye
FROM scf_carikart cari
WHERE cari._level1={secilifirma}
10.7. func_kasayerelbakiyeal
Belirtilen kasaya ait bakiye bilgisini yerel para birimi cinsinden döndürür.
Parametreler:
- prm_kasakey (bigint)
- prm_firmakodu (smallint)
- prm_donemkodu (smallint)
- prm_tarih (date)
Sonuç:
- bakiye (numeric)
Örnek Kullanım:
SELECT
kasakartkodu, adi,
(SELECT bakiye FROM func_kasayerelbakiyeal(_key::bigint,
{secilifirma}::smallint,
{secilidonem}::smallint,
'{tarih}'::date)) as yerelbakiye
FROM scf_kasakart
WHERE _level1={secilifirma}
10.8. func_kasadovizbakiyeal
Belirtilen kasaya ait döviz bakiye ve bu bakiyenin yerel para cinsinden karşılığını döndürür.
Parametreler:
- prm_kasakey (bigint)
- prm_firmakodu (smallint)
- prm_donemkodu (smallint)
- prm_tarih (date)
- prm_dovizkey (bigint)
Sonuç:
- dovizbakiye (numeric)
- yerelbakiye (numeric)
Örnek Kullanım:
SELECT
kasakartkodu, adi,
(SELECT dovizbakiye
FROM func_kasadovizbakiyeal(_key::bigint, {secilifirma}::smallint,
{secilidonem}::smallint,
'{tarih}'::date, 9146247893236057577::bigint)) as eurobakiye
FROM scf_kasakart
WHERE _level1={secilifirma}
10.9. func_bankabakiyeal
Belirtilen bankaya ait bakiye (hesabın para birim cinsine göre) döndürür.
Parametreler:
- prm_bankakey (bigint)
- prm_firmakodu (smallint)
- prm_donemkodu (smallint)
- prm_tarih (date)
Sonuç:
- borc (numeric)
- alacak (numeric)
- bakiye (numeric)
Örnek Kullanım:
SELECT hesapkodu, hesapadi,
(SELECT bakiye
FROM func_bankabakiyeal(_key::bigint,
{secilifirma}::smallint, {secilidonem}::smallint,
'{tarih}'::date)
) as bakiye
FROM bcs_bankahesabi
WHERE _level1={secilifirma}
10.10. func_cariyerelbakiyeal_ustislem
Belirtilen parametrelere göre carinin üst işleme göre yerel para cinsinden borç, alacak ve bakiyesini döndürür.
Parametreler:
- prm_carikey (bigint)
- prm_firmakodu (smallint)
- prm_donemkodu (smallint)
- prm_tarih (date)
- prm_faturalanmamisirsaliyedahil (boolean)
- prm_subekeys (bigint[]): Boş gönderilirse tüm şubeler için.
- prm_ustislemkeys (bigint[]): Boş gönderilirse tüm üst işlemler için.
Sonuç:
- borc (numeric)
- alacak (numeric)
- bakiye (numeric)
Örnek Kullanım:
SELECT carikartkodu, unvan,
(SELECT bakiye
FROM func_cariyerelbakiyeal_ustislem(_key::bigint,
{secilifirma}::smallint, {secilidonem}::smallint,
'{tarih}'::date, False, {subekeys}::bigint[], {ustislemkeys}::bigint[])) as bakiye
FROM scf_carikart cari
WHERE cari._level1={secilifirma}
10.11. func_carirdbakiyeal
Belirtilen parametrelere göre carinin raporlama dövizi cinsinden bakiyesini döndürür.
Parametreler:
- prm_carikey (bigint)
- prm_firmakodu (smallint)
- prm_donemkodu (smallint)
- prm_tarih (date)
- prm_faturalanmamisirsaliyedahil (boolean)
- prm_subekeys (bigint[]): Boş gönderilirse tüm şubeler için.
- prm_fiyatfarkifaturadahilet (boolean)
- prm_ustislemkeys (bigint[]): Boş gönderilirse tüm üst işlemler için.
Sonuç:
- bakiye (numeric)
Örnek Kullanım:
SELECT carikartkodu, unvan,
(SELECT bakiye
FROM func_carirdbakiyeal(_key::bigint,
{secilifirma}::smallint, {secilidonem}::smallint,
'{tarih}'::date, False, {subekeys}::bigint[], False, {ustislemkeys}::bigint[])) as rdbakiye
FROM scf_carikart cari
WHERE cari._level1={secilifirma}
10.12. func_bankabakiyeal_yerel
Belirtilen bankaya ait bakiye bilgisini yerel para birimi cinsinden döndürür.
Parametreler:
- prm_bankakey (bigint)
- prm_firmakodu (smallint)
- prm_donemkodu (smallint)
- prm_tarih (date)
Sonuç:
- yerel_borc (numeric)
- yerel_alacak (numeric)
- bakiye (numeric)
Örnek Kullanım:
SELECT hesapkodu, hesapadi,
(SELECT bakiye
FROM func_bankabakiyeal_yerel(_key::bigint,
{secilifirma}::smallint, {secilidonem}::smallint,
'{tarih}'::date)
) as yerelbakiye
FROM bcs_bankahesabi
WHERE _level1={secilifirma}
10.13. lq_array_to_rows
Bigint tipindeki bir diziyi satırlara çevirir.
Parametreler:
- myarray (bigint[]): Satırlara çevrilecek dizi
Sonuç:
- bigint
Örnek Kullanım:
SELECT _key_scf_stokkart FROM lq_array_to_rows(ARRAY[1386,10330151,4901303]::bigint[]) as _key_scf_stokkart
10.14. lq_ayaditr
Ay numarası verilen ay adını döndürür.
Parametreler:
- deger (integer): Ay numarası
Sonuç:
- text
Örnek Kullanım:
SELECT lq_ayaditr(4)
10.15. lq_formatdate
Tarihi istenen formata göre metin olarak döndürür.
Parametreler:
- deger (date): Formatlanacak tarih
- formattype (integer): 1=DD.MM.YYYY, 2=YYYY.MM.DD, 3=DD-MM-YYYY, 4=YYYY-MM-DD, 5=DD/MM/YYYY, 6=YYYY/MM/DD, 7=DD.MM, 8=DD-MM, 9=DD/MM, 10=DD AY YYYY, 11=DD AY, 12=MM.YYYY, 13=MM-YYYY, 14=MM/YYYY, 15=Gün, 16=Ay, 17=Yıl, 18=Hafta No, 19=HaftaNo/Yıl, 20=Gün Adı, 21=Ay Adı, 22=AyAdı-Yıl
Sonuç:
- text
Örnek Kullanım:
SELECT lq_formatdate('2016-04-01'::date, 10)
10.16. lq_is_date
Gönderilen text değer tarih formatına uygunsa `true`, değilse `false` döndürür.
Parametreler:
- mydate (text)
Sonuç:
- boolean
Örnek Kullanım:
SELECT lq_is_date('2016-04-01')
10.17. lq_onlypositiveorzero
Gönderilen değer sıfırdan küçükse `0`, büyükse gerçek değerini döndürür.
Parametreler:
- deger (bigint)
Sonuç:
- bigint
Örnek Kullanım:
SELECT lq_onlypositiveorzero(-5)