AIFA AKADEMI · Kurumsal Wiki
4.310 makale
Ana sayfa Kurumsal Wiki › Veritabanı › StoredProcedures › SP-POZISYON.WRITE

Pozisyon.Write

PROCEDUREMOD-RAPORERPGOLD_COREMANUAL_REVIEWVERY_HIGH[SOURCE_IMPLEMENTED]
Kanonik kaynak: markdown · bu sayfa üretilmiş görünümdür

Tip: STORED PROCEDURE · Şema: Pozisyon · Modül: MOD-RAPOR · Temizlik sınıfı: MANUAL_REVIEW (kategori D, güven 80) · Kapsam: ERPGOLD_CORE / ALL

Kullanım haritası (13.09.2026)

KategoriA — ERPGOLD CORE · A-APP_CODE
Güven85
Derinlik / kök0 · bu nesne (Seviye-0)
DependencyPathERPGOLD → FrmPozisyon → Pozisyon.Write
Uygulama kullanımıAPP_CODE · FrmPozisyon

Bkz. Database Usage Map · Direct Application Objects. Hiçbir DB değişikliği yapılmadı; SAFETY > CLEANUP.

Temizlik kanıtı

Kontrol Sonuç
app WEAK
report NO
config NO
dynamic NO
db_in NO
db_out YES
trigger NO
fk NO
computed NO
crossdb NO
runtime UNKNOWN
external NO

Gerekçe: Kaynak kodda yalnızca zayıf ad eşleşmesi var (sınıf/özellik adı olabilir); ikinci turda incelendi

KB-v1 gövdesi (2026-09-10 · kısmi kod kapsamı — kaynağı kadar güvenilir)

Tür: PROCEDURE (P) · Modül: MOD-RAPOR · Uzunluk: 63 satır

Özet

[GAP] Kaynakta açıklama yorumu yok; davranış aşağıdaki SQL tanımından ve ilişkilerden okunur.

Bağımlılıklar (bu nesne → hedef)

İlişki Hedef Tip
READS Cari.BakiyeIslem TABLE
CALLS Cari.BakiyeKodlari VIEW
CALLS FN.Bol FUNCTION
WRITES Pozisyon.Pozisyonlar TABLE
READS Sistem.Activity TABLE
READS Sistem.Birimler TABLE
CALLS Sistem.GetKurListesi FUNCTION
READS Sistem.Kasalar TABLE
READS Sistem.Subeler TABLE
CALLS Stok.GetMadenStoklari FUNCTION
CALLS Stok.GetNakitStoklari FUNCTION
CALLS Stok.GetTakozSirketStoklari FUNCTION

SQL tanımı (AS-IMPLEMENTED, örnek DB)

CREATE Proc  [Pozisyon].[Write]
as

if (Select count(*) from Sistem.Activity Where LastDate >(Select IsNull(Max(InsertDate),'2020-01-01') FRom Pozisyon.Pozisyonlar ))=0 RETURN

-----ONCE TEMP DOSYA YOKSA OLUSTUR VARSA ICINI TEMIZLE
    IF OBJECT_ID(N'tempdb..#TBLPozisyonlar') IS  NULL
        BEGIN
            CREATE TABLE [#TBLPozisyonlar]([SubeId] [int] NULL, [Birim] [nvarchar](max) NULL,   [Bakiye] [decimal](18, 2) NULL, [Kur1] [decimal](18, 5) NULL,   [Kur2] [decimal](18, 5) NULL,   [Pozisyon] [decimal](18, 2) NULL,   [BBirim] [nvarchar](max) NULL) ON [PRIMARY]
        END
    ELSE
        BEGIN
            TRUNCATE TABLE #TBLPozisyonlar
        END
--------------------------------------------------------------

-----GECICI POZISYON TABLOSUNA TUM SUBELERIN POZISYONLARINI HESAPLAYARAK YAZIYORUZ

    INSERT INTO #TBLPozisyonlar  
    Select H.SubeId,H.Birim,H.Bakiye,BK.Alis as Kur1,PK.Alis as Kur2,CONVERT(Decimal(18,2), Fn.Bol( (H.Bakiye * Bk.Alis),Pk.Alis)) as Pozisyon,  B.Kodu as BBirim from 
        (
                Select SubeId,Birim,Sum(Bakiye) as Bakiye From
                    (
                        Select K.SubeId, BK.Kodu  as Birim,B.Bakiye as Bakiye
                        from 
                        (
                            Select KasaId,BirimId,Sum(Bakiye) as Bakiye  from Cari.BakiyeIslem Where BirimId <>-1 group by KasaId,BirimId
                        ) B
                        Left Join Sistem.Kasalar K on K.Id =B.KasaId
                        Left Join Cari.BakiyeKodlari Bk on Bk.Id =B.BirimId 

                UNION ALL
                        ---NAKIT STOKLARI
                        Select  SubeId, AnaBirim ,Sum(Miktar)  From Stok.GetNakitStoklari (0,0,null)  group by SubeId, AnaBirim 
                UNION ALL
                        ---MADEN STOKLARI
                        Select SubeId,AnaBirim,Sum(Miktar * StabilMilyem) as Has From Stok.GetMadenStoklari (0,0,null,'False')  group by SubeId,AnaBirim
                UNION ALL
                        ---TAKOZ STOKLARI
                        SELECT T.SubeId,T.Birim,SUM(T.Has) FROM Stok.GetTakozSirketStoklari (0,0,null)
                        CROSS APPLY (VALUES(SubeId,'HAS',Case When R='False' Then Miktar * 0 Else AuHas end), (SubeId, 'GUM', AgHas ), (SubeId, 'PLT', PltHas ), (SubeId, 'PLD', PldHas  )) t(SubeId,Birim, Has) Where Adet <>0 and Has<>0
                        group by T.SubeId,Birim 
                    ) a
                Group by SubeId,Birim   having Sum(Bakiye)<>0
            ) H
            Left Join Sistem.Subeler S on S.Id =H.SubeId
            Left Join Sistem.Birimler B on B.Id =S.BilancoBirimId 
            Left Join Sistem.GetKurListesi(GETDATE()) PK on PK.Birim=B.Kodu 
            Left Join Sistem.GetKurListesi(GETDATE()) BK on BK.Birim=H.Birim

---------------------------------------------------------------------------------------------   


----POZISYON.POZISYONLAR TABLOSUNU SIFIRLAYARAK GECICI TABLODAKI BILGILERI BURAYA YAZIYORUZ.

    TRUNCATE TABLE Pozisyon.Pozisyonlar 
    INSERT INTO Pozisyon.Pozisyonlar([SubeId],[Birim],[Bakiye],[Kur1],[Kur2],[Pozisyon],[BBirim]) SELECT P.* FROM #TBLPozisyonlar P Left Join Sistem.Birimler B on B.Kodu  COLLATE Turkish_CI_AS =P.Birim Order by B.SiraNo 
---------------------------------------------------------------------------------------------

Kaynaklar

  • SRC-DB-MODULES — sys.sql_modules tanımı (salt okunur); gizli sabitler [REDACTED_SECRET] ile değiştirildi.

Bilinmeyenler

  • Hangi sürümde eklendiği: created DB tarihi bir kurulumun tarihidir, ürün sürümü değil (GAP-VERSION-02).