AIFA AKADEMI · Kurumsal Wiki
4.310 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

Kullanım haritası (13.09.2026)

KategoriF — MANUAL REVIEW · F-EXTERNAL_PRODUCT
Güven90
GerekçeERPGOLD dışı ürün/servis şeması: FX senkron servisi — ERPGOLD kodu çağırmaz ama başka uygulama kullanır

Bkz. Database Usage Map · Manual Review. 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).