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)
| Kategori | F — MANUAL REVIEW · F-EXTERNAL_PRODUCT |
| Güven | 90 |
| Gerekçe | ERPGOLD 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_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).
