Tip: STORED PROCEDURE · Şema: MT4 · 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ı: MT4 / FX entegrasyonu (harici servis) — 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: MT4 entegrasyonu (harici servis 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: 76 satır
Özet
[GAP] Kaynakta açıklama yorumu yok; davranış aşağıdaki SQL tanımından ve ilişkilerden okunur.
Parametreler
| # | Parametre | Tip | Çıktı |
|---|---|---|---|
| 1 | @TerminalNo | int | |
| 2 | @TicketNo | int | |
| 3 | @TransType | int | |
| 4 | @Symbol | nvarchar | |
| 5 | @Lots | decimal | |
| 6 | @OpenTime | datetime | |
| 7 | @OpenPrice | decimal | |
| 8 | @CloseTime | datetime | |
| 9 | @ClosePrice | decimal | |
| 10 | @Swap | decimal | |
| 11 | @MagicNumber | int | |
| 12 | @Description | nvarchar |
Bağımlılıklar (bu nesne → hedef)
| İlişki | Hedef | Tip |
|---|---|---|
| CALLS | Cari.AddTicket | PROCEDURE |
| READS | Cari.Islemler | TABLE |
| CALLS | FN.Bol | FUNCTION |
| CALLS | MT4.GETOrders | VIEW |
| WRITES | MT4.Orders | TABLE |
| READS | Sistem.Vadeli | TABLE |
SQL tanımı (AS-IMPLEMENTED, örnek DB)
CREATE Proc [MT4].[AddTicket](@TerminalNo int,@TicketNo int ,@TransType int,@Symbol nvarchar(max),@Lots decimal(18,2),@OpenTime datetime,@OpenPrice decimal(18,5),@CloseTime datetime,@ClosePrice decimal(18,5),@Swap decimal(18,2),@MagicNumber int ,@Description nvarchar(max))
as
BEGIN
MERGE
MT4.Orders
WITH (SERIALIZABLE) AS T
USING (VALUES (@TerminalNo,@TicketNo,@TransType,@Symbol,@Lots,@OpenTime,@OpenPrice,@CloseTime,@ClosePrice,@Swap,@MagicNumber,@Description)) AS U (TerminalNo,TicketNo,TransType,Symbol,Lots,OpenTime,OpenPrice,CloseTime,ClosePrice,Swap,MagicNumber,[Description]) ON U.TicketNo= T.TicketNo
WHEN MATCHED THEN UPDATE SET T.Lots=U.Lots,T.CloseTime=U.CloseTime, T.OpenPrice=U.OpenPrice,T.ClosePrice= U.ClosePrice,T.Swap=U.Swap WHEN NOT MATCHED THEN Insert (TerminalNo,TicketNo,TransType,Symbol,Lots,OpenTime,OpenPrice,CloseTime,ClosePrice,Swap,MagicNumber,[Description])
Values(@TerminalNo,@TicketNo,@TransType,@Symbol,@Lots,@OpenTime,@OpenPrice,@CloseTime,@ClosePrice,@Swap,@MagicNumber,@Description) ;
Declare @HesapId int=1 --5219
Declare @IslemTuru int
Declare @Tarih as date=getdate()
Declare @StokId int
Declare @Kodu nvarchar(Max)
Declare @AnaBirimId int
Declare @Miktar Decimal(18,2)
Declare @FiyatTipi int
Declare @Fiyat Decimal(18,5)
Declare @Fiyat2 Decimal(18,5)
Declare @BirimId int
declare @Birim nvarchar(max)
Declare @Tutar Decimal(18,2)
Declare @Tutar2 Decimal(18,2)
Declare @Aciklama nvarchar(Max)
Declare @Result int=0
DECLARE CRS_Ticket CURSOR FOR
Select TicketNo,Islem ,StokId,Kodu, AnaBirimId ,X.Amount as Miktar,PriceType,Fiyat,Fiyat2,X.Birim,X.BirimId ,Tutar,Tutar2,X.Description from
(
select O.TicketNo,O.Islem,V.Id as StokId,O.Kodu,O.BakiyeId as AnaBirimId,O.Amount,PriceType,O.OpenPrice as Fiyat,O.ClosePrice as Fiyat2,O.Birim,O.BirimId,Case When PriceType=1 Then O.Amount * O.OpenPrice When PriceType=2 Then Fn.Bol(O.Amount * O.OpenPrice,31.10) End as Tutar,Case When PriceType=1 Then O.Amount * O.ClosePrice When PriceType=2 Then Fn.Bol(O.Amount * O.ClosePrice,31.10) End as Tutar2,O.[Description] from mt4.GETOrders O
Left Join Sistem.Vadeli V On V.Kodu =O.Kodu And (V.Carpan=1 or V.Carpan=0) And V.IsDeleted=0 And O.MagicNumber<>0
Where TicketNo=@TicketNo And TerminalNo=@TerminalNo And O.BakiyeId<>0 And O.BirimId<>0 And IslemId=0
) X order by TicketNo
OPEN CRS_Ticket
FETCH NEXT FROM CRS_Ticket INTO @TicketNo,@IslemTuru,@StokId,@Kodu,@AnaBirimId,@Miktar,@FiyatTipi,@Fiyat,@Fiyat2,@Birim,@BirimId,@Tutar,@Tutar2,@Aciklama
WHILE @@FETCH_STATUS =0
BEGIN
Declare @OpenTicketNo int=(@TicketNo)
Declare @CloseTicketNo int=(@TicketNo * -1)
Declare @CMD int=Case When @IslemTuru=4 Then 5 Else 4 End
Declare @CloseOrderID int=IsNull((Select Id From Cari.Islemler Where IslemKodu =6 And OzelKodId=@CloseTicketNo),0)
Declare @OpenOrderID int=IsNull((Select Id From Cari.Islemler Where IslemKodu =6 And OzelKodId=@OpenTicketNo),0)
if @OpenOrderID=0 ---YENI EMIR GELDIGINDE
BEGIN
exec Cari.AddTicket 1,1,@HesapId,@Tarih,@IslemTuru,@StokId,@Kodu,@AnaBirimId,@Miktar,@FiyatTipi ,@Fiyat,@Birim,@BirimId,@Aciklama,@OpenTicketNo ,@MagicNumber
END
--if @ClosePrice >0 and @CloseOrderID =0 ---EGER EMIR KAPATILMISSA
--BEGIN
-- exec Cari.AddTicket 1,1,@HesapId,@Tarih,@CMD,@StokId,@Kodu,@AnaBirimId,@Miktar,@Fiyat2,@Birim,@BirimId,@Aciklama,@TicketNo ,@MagicNumber
--END
FETCH NEXT FROM CRS_Ticket INTO @TicketNo,@IslemTuru,@StokId,@Kodu,@AnaBirimId,@Miktar,@FiyatTipi,@Fiyat,@Fiyat2,@Birim,@BirimId,@Tutar,@Tutar2,@Aciklama
END
CLOSE CRS_Ticket
DEALLOCATE CRS_Ticket
END
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).
