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

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

BASE DurumuBASE dışı — BASE Status: CANDIDATE_CANONICAL (Runtime Certification tamamlanmadı) · CTR-BASE-0057
BASE SınıfıUNKNOWN (BASE MASTER) · Wiki önerisi: OPTIONAL-MODULE (MT4 entegrasyonu) · 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.AddTicket, Cari.Islemler, FN.Bol, MT4.GETOrders, MT4.Orders, Sistem.Vadeli
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 — MT4 entegrasyonu
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ı: MT4 / FX entegrasyonu (harici servis) — ERPGOLD kodu çağırmaz ama başka uygulama kullanır
Uzlaştırma10_Manual_Review — Ayrı ürün/servis şeması (MT4 entegrasyonu): 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: 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).