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

MT4.AddTicket

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

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)

KategoriF — MANUAL REVIEW · F-EXTERNAL_PRODUCT
Güven90
GerekçeERPGOLD 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_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).