Tip: INLINE TABLE FUNCTION · Şema: Reports · Modül: MOD-RAPOR · Temizlik sınıfı: ACTIVE (kategori A, güven 0) · Kapsam: ERPGOLD_CORE / ALL
Kullanım haritası (13.09.2026)
| Kategori | A — ERPGOLD CORE · A-APP_CODE |
| Güven | 100 |
| Derinlik / kök | 0 · bu nesne (Seviye-0) |
| DependencyPath | ERPGOLD → FrmPozisyonDurumRaporu → Reports.GetPozisyonDetay |
| Uygulama kullanımı | APP_CODE+REPORT_SQL · FrmPozisyonDurumRaporu |
Bkz. Database Usage Map · Direct Application Objects. Hiçbir DB değişikliği yapılmadı; SAFETY > CLEANUP.
Temizlik kanıtı
| Kontrol | Sonuç |
|---|---|
| app | YES |
| report | YES |
| config | NO |
| dynamic | NO |
| db_in | NO |
| db_out | YES |
| trigger | NO |
| fk | NO |
| computed | NO |
| crossdb | NO |
| runtime | UNKNOWN |
| external | NO |
Gerekçe: APP
KB-v1 gövdesi (2026-09-10 · kısmi kod kapsamı — kaynağı kadar güvenilir)
Tür: FUNCTION (IF) · Modül: MOD-RAPOR · Uzunluk: 42 satır
Özet
Döviz açık pozisyon detayı — şube/tarih aralığında her birim için alış/satış miktarı, ortalama fiyatları, kâr-zarar ve pozisyon (alış-satış) hesaplar.
Parametreler
| # | Parametre | Tip | Çıktı |
|---|---|---|---|
| 1 | @SubeId | int | |
| 2 | @BasTarih | date | |
| 3 | @SonTarih | date |
Bağımlılıklar (bu nesne → hedef)
| İlişki | Hedef | Tip |
|---|---|---|
| READS | Cari.Hesaplar | TABLE |
| READS | Cari.Islemler | TABLE |
| CALLS | FN.Bol | FUNCTION |
| READS | Sistem.Birimler | TABLE |
| CALLS | Sistem.GetKurListesi | FUNCTION |
İlgili iş kuralları
- Cari.Islemler IslemKodu in (1,2,3,6), IslemTipi<>11'i birim bazında alış/satış toplar, KZ ve POZISYON hesaplar (Reports.GetPozisyonDetay.md)
SQL tanımı (AS-IMPLEMENTED, örnek DB)
CREATE Function [Reports].[GetPozisyonDetay](@SubeId int ,@BasTarih as Date,@SonTarih as Date)
returns table
as
return
Select top
1000000 KODU,
ALIS,AFIYAT,ALISTUTAR ,
SATIS,SFIYAT ,SATISTUTAR,
case when SATIS<>ALIS then ( case when SATIS>ALIS then ((ALIS*(SFIYAT-AFIYAT)) + ((SATIS-ALIS)*(SFIYAT-G.Alis) )) else ((SATIS*(SFIYAT-AFIYAT)) + ((ALIS-SATIS)*(G.Alis-AFIYAT) )) end) else SATISTUTAR - (SATIS * AFIYAT) end AS KZ,
--SATISTUTAR - (SATIS * AFIYAT) AS KZ,
ALIS -SATIS AS POZISYON,
CASE WHEN (ALIS -SATIS)<0 THEN SFIYAT WHEN ALIS -SATIS >0 THEN AFIYAT END AS PMALIYET
from
(
sELECT Br.SiraNo , B.Kodu AS KODU ,
SUM(ALIS) AS ALIS,fn.Bol (SUM(ALISMALIYET),SUM(ALIS)) AS AFIYAT,SUM(ALISMALIYET) AS ALISTUTAR,
SUM(USDALIS) AS USDALIS,SUM(SATIS) AS SATIS,fn.Bol (SUM(SATISMALIYET),SUM(SATIS)) AS SFIYAT,SUM(SATISMALIYET)AS SATISTUTAR,SUM(USDSATIS) AS USDSATIS FROM
(
Select TARIH ,HESAPADI ,KODU ,Sum(ALIS) as ALIS,SUM(ALISMALIYET ) AS ALISMALIYET,SUM(USDALIS) as USDALIS ,ABS( Sum(SATIS)) as SATIS ,SUM(SATISMALIYET) AS SATISMALIYET,SUM(USDSATIS) AS USDSATIS
from
(
Select Tarih AS TARIH,HesapAdi AS HESAPADI,Kodu as KODU,Case When Miktar>0 Then Miktar else 0 End as ALIS,Case When Miktar>0 Then Tutar else 0 End as ALISMALIYET,Case When Miktar > 0 Then USDTUTAR else 0 End as USDALIS,Case When Miktar <0 Then Miktar else 0 End as SATIS,Case When Miktar <0 Then Tutar else 0 End as SATISMALIYET,Case When Miktar <0 Then USDTUTAR else 0 End as USDSATIS From
(
select Tarih,H.HesapAdi ,Kodu ,Case When IslemYonu ='ALIS' Then Miktar Else Miktar *-1 End as Miktar,Fiyat, Tutar * BirimKur as Tutar,Fn.Bol( Tutar * BirimKur, UsdKur) as USDTUTAR from Cari.Islemler I Left Join Cari.Hesaplar H on H.Id =I.HesapId
Where I.SubeId=@SubeId and I.Fiyat <>0 And I.Kodu<>I.Birim
And I.IslemKodu in (1,2,3,6) And I.IslemTipi <>11 And I.IsDeleted ='False' And (I.Tarih>=@BasTarih And I.Tarih <=@SonTarih)
) Islemler
) Hacim WHERE KODU <>'TL'
GROUP BY TARIH,HESAPADI,KODU
)
B Left Join Sistem.Birimler Br on B.Kodu=br.Kodu
GROUP BY B.KODU ,br.SiraNo
) x
left join sistem.GetKurListesi(@SonTarih) G on G.Birim=x.KODU
ORDER BY SiraNo
Kaynaklar
- SRC-DB-MODULES —
sys.sql_modulestanımı (salt okunur); gizli sabitler[REDACTED_SECRET]ile değiştirildi.
Bilinmeyenler
- Hangi sürümde eklendiği:
createdDB tarihi bir kurulumun tarihidir, ürün sürümü değil (GAP-VERSION-02).
