AIFA AKADEMI · Kurumsal Wiki
4.330 makale
Ana sayfa Kurumsal Wiki › Veritabanı › StoredProcedures › SP-FX.STARTSYNC

FX.StartSync

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

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

BASE künyesi ve kullanım haritası (v1.5 · 13.09.2026)

BASE DurumuBASE dışı — BASE Status: CANDIDATE_CANONICAL (Runtime Certification tamamlanmadı) · CTR-BASE-0023
BASE SınıfıUNKNOWN (BASE MASTER) · Wiki önerisi: OPTIONAL-MODULE (FX senkron) · Action: MANUAL_REVIEW · Güven: LOW
Runtime CertificationN/A — BASE üyesi değil
Kodda Kullanılıyor mu?HAYIR — doğrudan/dolaylı kod referansı bulunamadı
Kod Referans SayısıBASE taraması: 0 (uygulama kodunda string literal referansı yok) · Kullanım Haritası kanıtı: 0 kayıt
Kullanan Ekranlar
Kullanan Class/Method
Incoming Dependency (bunu kullanan nesneler)
Outgoing Dependency (bunun kullandığı nesneler)Cari.Hesaplar, Cari.Islemler, FN.GetKur, FX.Syncornization, Sistem.GetBirimToId, Sistem.Kasalar, Sistem.Vadeli, UserForm.FXAccounts
Trigger İlişkisiyok
Ticket Problem Aileleri
Bilinen Hatalar
Bilinen SQL Riskleri
Health Check Kuralı
Müşteri Özel mi?HAYIR (opsiyonel modül)
Opsiyonel Modül mü?EVET — FX senkron
Legacy mi?HAYIR
Son Doğrulama Tarihi13.09.2026 — statik analiz (katalog 2026-09-10 + kaynak kod taraması). Çalışma zamanı doğrulaması: PENDING

Kullanım haritası

Kullanım Haritası kategorisiF — MANUAL REVIEW · F-EXTERNAL_PRODUCT · güven 90
GerekçeERPGOLD dışı ürün/servis şeması: FX senkron servisi — ERPGOLD kodu çağırmaz ama başka uygulama kullanır
Uzlaştırma10_Manual_Review — Ayrı ürün/servis şeması (FX senkron): Kullanım Haritası EXTERNAL_PRODUCT, BASE UNKNOWN. Adlandırma farkı; ikisi de ERPGOLD çekirdeği saymıyor

Bkz. ERPGOLD BASE · Uzlaştırma · Database Usage Map · Kullanım Haritası Manual · Hata Bilgi Bankası. BASE Status: CANDIDATE_CANONICAL · Runtime Certification: PENDING · Hiçbir DB değişikliği yapılmadı; SAFETY > CLEANUP.

Temizlik kanıtı

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

Gerekçe: EXTERNAL USE RISK: FX senkronizasyon servisi olasılığı

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

Tür: PROCEDURE (P) · Modül: MOD-FX · Uzunluk: 92 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.Hesaplar TABLE
WRITES Cari.Islemler TABLE
CALLS FN.GetKur FUNCTION
WRITES FX.Syncornization TABLE
CALLS Sistem.GetBirimToId FUNCTION
READS Sistem.Kasalar TABLE
READS Sistem.Vadeli TABLE
READS UserForm.FXAccounts TABLE

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

CREATE Proc  [FX].[StartSync]
        as
        Declare @Id int
        Declare @RemoteId int
        Declare @HesapId int
        Declare @SubeId int
        Declare @TicketNo int
        Declare @TradeDate Datetime
        Declare @Valor Date
        Declare @Account nvarchar(max)
        Declare @Terminal nvarchar(max)
        Declare @OrderType int
        Declare @Code Nvarchar(Max)
        Declare @Amount decimal(18,2)
        Declare @Factor Decimal(18,2)
        Declare @Price Decimal(18,5)
        Declare @Total Decimal(18,2)
        Declare @Currency Nvarchar(Max)
        Declare @Description Nvarchar(Max)

        Declare @Count int=0

        Declare @FisNo int=(Select ISNULL( MAX(FisNo),0) from Cari.Islemler)
        Declare @HasKur Decimal(18,5)=fn.GetKur(Sistem.GetBirimToId ('HAS')) 
        Declare @GumKur Decimal(18,5)=fn.GetKur(Sistem.GetBirimToId ('GUM'))
        Declare @UsdKur Decimal(18,5)=fn.GetKur(Sistem.GetBirimToId ('USD'))
        Declare @EurKur Decimal(18,5)=fn.GetKur(Sistem.GetBirimToId ('EUR'))
        Declare @PltKur Decimal(18,5)=fn.GetKur(Sistem.GetBirimToId ('PLT'))
        Declare @PldKur Decimal(18,5)=fn.GetKur(Sistem.GetBirimToId ('PLD'))



        DECLARE TradeSYNCCursor CURSOR FOR 
                                Select S.Id,S.RemoteId,S.TicketNo,S.TradeDate,S.Valor,H.Id as HesapId,H.SubeId,S.Account,S.Terminal,Case When S.OrderType =0 Then 5 Else 4 End  as OrderType,S.Code,S.Amount,S.Factor,S.Price,S.Total,S.Currency,S.[Description]  
                                from fx.Syncornization S 
                                LEFT Join UserForm.FXAccounts FX on FX.FXTerminal=S.Account And S.IsDeleted='False'
                                LEFT Join Cari.Hesaplar H on H.Id =FX.HesapId And H.IsDeleted='False'
                                Where IsComplated =0 

        OPEN TradeSYNCCursor
            FETCH NEXT FROM TradeSYNCCursor  INTO  @Id,@RemoteId,@TicketNo,@TradeDate,@Valor,@HesapId,@SubeId,@Account,@Terminal,@OrderType,@Code,@Amount,@Factor,@Price,@Total,@Currency,@Description
            WHILE @@FETCH_STATUS =0
            BEGIN


            ------------------------------------VALIDATIONS------------------------------------------------------------------
            Declare @HasError bit=0
            Declare @StokId int=IsNull((select Top 1 V.Id from Sistem.Vadeli V Where V.Kodu =@Code and V.IsDeleted ='False') ,0)
            Declare @BakiyeId int=IsNull( Sistem.GetBirimToId (@Code),0)  
            Declare @BirimId int=IsNull(Sistem.GetBirimToId (@Currency),0)
            Declare @BirimKur decimal(18,5)=IsNull(fn.GetKur(Sistem.GetBirimToId (@Currency)),0)
            Declare @KasaId int=(Select top 1 Id from Sistem.Kasalar Where IsDeleted ='False' And SubeId = @SubeId)

            if @StokId =0 
            BEGIN
            set @HasError =1
            Update  Fx.Syncornization Set IsComplated =2 Where Id=@Id  --STOK KODU BULUNAMADI
            END

            if @BakiyeId =0 
            BEGIN
            set @HasError =1
            Update  Fx.Syncornization Set IsComplated =3 Where Id=@Id  --STOK KODU / BAKIYESI BULUNAMADI
            END

            if @BirimId  =0 
            BEGIN
            set @HasError =1
            Update  Fx.Syncornization Set IsComplated =4 Where Id=@Id  --BİRİM BULUNAMADI
            END

            if IsNull(@HesapId,0) =0 
            BEGIN
            set @HasError =1
            Update  Fx.Syncornization Set IsComplated =5 Where Id=@Id  --HESAP BULUNAMADI
            END

            -------------------------------END-VALIDATIONS-------------------------------------------------------------------
            if @HasError =0
            BEGIN
                Insert Into Cari.Islemler([ProjeId], [HesapType], [OwnerRefNo], [RefNo], [SubeId], [KasaId], [HesapId], [FisNo], [Tarih], [IslemKodu], [IslemTuru], [IslemTipi], [Vade], [StokId], [AyarEviId], [RaporNo], [IsRapor], [IsExtra], [Kodu], [BakiyeId], [Adet], [Miktar], [CesniMiktar], [AuMilyem], [AgMilyem], [PldMilyem], [PltMilyem], [HasIsc], [HasIscBirimId], [HasIscBirimKur], [GumIsc], [GumIscBirimId], [GumIscBirimKur], [IscilikDurumu], [GumusDurumu], [PlatinDurumu], [PalladiumDurumu], [Fiyat], [FiyatTipi], [Tutar], [BirimId], [Birim], [BirimKur], [Aciklama], [Kategori], [Kategori2], [Maliyet], [Satis], [Iscilik], [IscilikBirim], [IscilikBirimKur], [IscilikBirimId], [HasKur], [GumKur], [PltKur], [PldKur], [UsdKur], [EurKur], [Tag], [Locked], [UserId], [InsertDate], [IsDeleted], [Status], [LoginId], [MUser], [MTarih], [Mutabakat], [VaryantId], [OzelKodId], [LastModify]) 
                Select  0 as ProjeId,0 as HesapType,null as OwnerRefNo,REPLACE( NEWID (),'-','') as RefNo,@SubeId as SubeId,@KasaId as KasaId,@HesapId  as HesapId, @FisNo  as FisNo,Convert(date,@TradeDate) as Tarih, 6 as IslemKodu, @OrderType as IslemTuru,-1 as IslemTipi,@Valor, @StokId,0 as AyarEviId, @TicketNo as RaporNo,0 as IsRapor,0 as IsExtra,@Code as Kodu,@BakiyeId, 0 as Adet,  @Amount as Miktar,  0 as CesniMiktar,@Factor as Milyem, 0.000 as AGMilyem,0.000 as PLDMilyem,0.000 as PLTMilyem,0.00 as HasIsc, 0 as HasIscBirimId, 0.000 as HasIscBirimKur,0.000 as GumIsc,0 as GumIscBirimId, 0.00 as GumIscBirimKur, 0 as IscilikDurumu, 0 as GumusDurumu,   0 as PlatinDurumu,  0 as PalladiumDurumu,   @Price as Fiyat,1 as FiyatTipi,@Total as Tutar,@BirimId,@Currency as Birim,@BirimKur, CONVERT(nvarchar(max),@TicketNo)  as Aciklama,'TRADER' AS Kategori,'' as Kategori2,@Total * @BirimKur  AS Maliyet,@Total * @BirimKur  AS Satis,0.00 as Iscilik,null as IscilikBirim,0.00 as IscilikBirimKur,0 as IscilikBirimId,@HasKur ,@GumKur,@PltKur,@PldKur,@UsdKur,@EurKur,'' as Tag,0 as Locked,13 as UserId,@TradeDate as InsertDate,0 as IsDeleted,0 as [Status],9999 as LoginId,null as MUser,null as MTarih,0 as Mutabakat,0 as VaryantId,@TicketNo  as OzelKodId,null as LastModify           
                Update  Fx.Syncornization Set IsComplated =1 Where Id=@Id  
                set @Count +=1
            END
            FETCH NEXT FROM TradeSYNCCursor INTO  @Id,@RemoteId,@TicketNo,@TradeDate,@Valor,@HesapId,@SubeId,@Account,@Terminal,@OrderType,@Code,@Amount,@Factor,@Price,@Total,@Currency,@Description
            END
        CLOSE TradeSYNCCursor
        DEALLOCATE TradeSYNCCursor

        select @Count

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).