AIFA AKADEMI · Kurumsal Wiki
4.310 makale
Ana sayfa Kurumsal Wiki › Veritabanı › Triggers › TRG-CARI.ACCEPTTRANSACTION

Cari.AcceptTransaction

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

Tip: TRIGGER · Şema: Cari · Modül: MOD-CARI · Temizlik sınıfı: INDIRECTLY_USED (kategori C, güven 0) · Kapsam: ERPGOLD_CORE / ALL

Kullanım haritası (13.09.2026)

KategoriB — INDIRECT DEPENDENCY · B-TRIGGER
Güven95
Derinlik / kök1 · Cari.Islemler
DependencyPathERPGOLD → Cari.Hesap → Cari.Islemler → Cari.AcceptTransaction
Bağlı tabloCari.Islemler

Bkz. Database Usage Map · Core Database Objects. 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 YES
db_out YES
trigger YES
fk NO
computed NO
crossdb NO
runtime UNKNOWN
external NO

Gerekçe: Cari.Islemler → Cari.AcceptTransaction (trigger (tablo→tetikleyici))

KB-v1 gövdesi (2026-09-10 · kısmi kod kapsamı — kaynağı kadar güvenilir)

Tür: TRIGGER (TR) · Modül: MOD-CARI · Uzunluk: 569 satır

Tablo: Cari.Islemler · Olay: INSERT,UPDATE,DELETE

Özet

Cari.Islemler üzerinde INSERT/UPDATE/DELETE sonrası çalışan ana tetikleyici. Bakiye defterini (Cari.BakiyeIslem) ve stok defterini (Stok.StokHaraketleri) IslemId bazında sil-yeniden-yaz mantığıyla üreten tek nesnedir.

Ayrıntı

ÇEŞNİ (14) HAS ve GUM bakiyesi yazar; NAKİT EMANET (3+tip10) miktar yazar; TAKOZ (0) altın/gümüş/platin/paladyum milyem durumlarına göre çok satırlı bakiye üretir; raporsuz takoz XRF milyemiyle (XRF=0 ise 0,600) hesaplanır.

Bağımlılıklar (bu nesne → hedef)

İlişki Hedef Tip
WRITES Cari.BakiyeIslem TABLE
CALLS Cari.GetGerekliEvraklar FUNCTION
WRITES Cari.Hesaplar TABLE
READS Cari.IslemDetaylari TABLE
CALLS FN.Bol FUNCTION
CALLS FN.GetKur FUNCTION
WRITES Sistem.Activity TABLE
READS Sistem.Birimler TABLE
READS Sistem.Settings TABLE
READS Sistem.Subeler TABLE
CALLS Stok.GetTakozAdet FUNCTION
READS Stok.Model TABLE
WRITES Stok.StokHaraketleri TABLE
WRITES Stok.Takoz TABLE

Ürettiği hata mesajları

  • "ISLEMLERI DIREK SILEMEZSINIZ ?."
  • "SUBE PASIF HALDE. ISLEM YAPAMAZSINIZ..."
  • "E-DOVIZ FATURASI GONDERILMIS ISLEMLER DUZELTILEMEZ ..."
  • "BU HESABIN ZORUNLU EVRAKLARI EKSIKTIR. ISLEM YAPAMAZSINIZ."
  • "HESABA AİT ADRES VE TELEFON BİLGİLERİ GİRİLMEDEN İŞLEM YAPILAMAZ."
  • "SUBE,KASA VEYA HESAP SECILMEDI. ISLEM YAPAMAZSINIZ?."
  • "BU TAKOZA AIT ISLEMLER VAR. IPTAL EDEMEZSINIZ ?."
  • "BU TAKOZ STOGUNUZDA YOK.ISLEM YAPAMAZSINIZ."
  • "BU TAKOZA AIT ISLEMLER VAR. IPTAL EDEMEZSINIZ ?."
  • "BU TAKOZ STOGUNUZDA YOK.ISLEM YAPAMAZSINIZ."

İlgili iş kuralları

  • IslemId bazında önce eski türetilmiş satırları siler (Delete Cari.BakiyeIslem WHERE IslemId=@x; Delete Stok.StokHaraketleri WHERE IslemId=@x AND Bolum=0), sonra IslemKodu'na göre dallanıp yeniden yazar (Cari.AcceptTransaction.md satır 318-320)
  • Sırasıyla kontrol: (1) yalnız DELETE ise 'ISLEMLERI DIREK SILEMEZSINIZ'; (2) Şube pasifse ROLLBACK+RETURN; (3) ETTN dolu ve mutabakat/silme değilse 'E-DOVIZ FATURASI...' ROLLBACK+RETURN; (4) eksik evrak varsa ROLLBACK (RETURN YOK); (5) Sube/Kasa/Hesap 0 ise ROLLBACK (satır 119-245)
  • IslemTipi 11/12 ise defter üretmeden çıkar (@IsDeleted=False AND @IsError=0 AND IslemTipi<>11 AND <>12) (satır 323)
  • GİRİŞ/ALACAK/ALIŞ (0/2/4) satırında has/tutar alacaklı (negatif) yazılır, ÇIKIŞ/SATIŞ/BORÇ (1/3/5) borçlu (pozitif) — MADEN/HURDA/MODEL dalı (satır 392-417)
  • PEŞİN (IslemTipi=1) hariç BakiyeId>0 ve Miktar<>0 ise mal bakiyesi; IslemTipi<>1 ve Tutar<>0 ise para bakiyesi yazılır (satır 406-416)
  • Global IslemCursor kullanır; hata dallarında CLOSE/DEALLOCATE yok — bağlantı havuzunda 'cursor already exists' riski (kitapcik 2.7)
  • Eksik evrak dalında ROLLBACK sonrası RETURN olmadığından kalan ifadeler transaction dışında koşar (kitapcik 2.7)

SQL tanımı (AS-IMPLEMENTED, örnek DB)

CREATE Trigger [Cari].[AcceptTransaction] ON [Cari].[Islemler] AFTER INSERT,UPDATE,DELETE
 AS 
 BEGIN
 Declare @IslemId int
 Declare @Tarih Date
 Declare @SubeId int
 Declare @KasaId int
 Declare @RefNo Nvarchar(36)
 Declare @IslemKodu int
 Declare @IslemTuru int
 Declare @IslemTipi int
 Declare @HesapType int
 Declare @HesapId int
 Declare @BakiyeId int
 Declare @AyarEviId int
 Declare @RaporNo Nvarchar(50)
 Declare @StokId int
 Declare @VaryantId int
 Declare @Adet int
 Declare @Miktar Decimal(18,2)
 Declare @CesniMiktar Decimal(18,2)
 Declare @AuMilyem Decimal(18,5)
 Declare @Has as Decimal(18,5)
 Declare @AgMilyem Decimal(18,5)
 Declare @PltMilyem Decimal(18,5)
 Declare @PldMilyem decimal(18,5)
 Declare @HasIsc Decimal(18,5)
 Declare @HasIscBirimId int
 Declare @GumIsc Decimal(18,5)
 Declare @GumIscBirimId int
 Declare @IscilikDurumu int
 Declare @GumusDurumu int 
 Declare @PlatinDurumu int 
 Declare @PalladiumDurumu int
 Declare @IsRapor bit
 Declare @IsExtra bit
 Declare @HasKur Decimal(18,5)
 Declare @GumKur Decimal(18,5)
 Declare @PltKur Decimal(18,5)
 Declare @PldKur Decimal(18,5)
 Declare @IscKur Decimal(18,5)
 Declare @HasIscBirimKur Decimal(18,5)
 Declare @GumIscBirimKur Decimal(18,5)
 Declare @Tutar Decimal(18,5)
 Declare @Birim Nvarchar(Max)
 Declare @BirimId int
 Declare @FiyatTipi int
 Declare @StokIsc Decimal(18,2)
 Declare @StokIscKur Decimal(18,5)
 Declare @StokIscBirimId int
 Declare @SubeIsActive bit
 Declare @IsDeleted bit
 Declare @InsertDate date
 Declare @IsError int =0
 Declare @Satis as decimal(18,2)
 Declare @Adres nvarchar(Max)=''
 Declare @ETTN nvarchar(Max)=''

 if (Select count(*) From Inserted) = 0 and (Select count(*) From deleted) > 0 
 BEGIN
 RAISERROR('ISLEMLERI DIREK SILEMEZSINIZ ?. ',16,1)
 ROLLBACK
 END
 Declare @HasBirimId int = (Select Id From Sistem.Birimler Where IsDeleted='False' And Kodu = (Select HasSymbol From Sistem.Settings))
 Declare @GumBirimId int = (Select Id From Sistem.Birimler Where IsDeleted='False' And Kodu = (Select GumSymbol From Sistem.Settings))
 Declare @PltBirimId int = (Select Id From Sistem.Birimler Where IsDeleted='False' And Kodu = (Select PltSymbol From Sistem.Settings))
 Declare @PldBirimId int = (Select Id From Sistem.Birimler Where IsDeleted='False' And Kodu = (Select PldSymbol From Sistem.Settings))

 --<Takoz Stoklarındaki Milyemleri Kullanarak hesaplamak için>
 --DECLARE IslemCursor CURSOR FOR Select I.Id,I.KasaId,I.RefNo,I.HesapType,I.IslemKodu,I.IslemTuru,I.IslemTipi,I.HesapId,I.BakiyeId,I.AyarEviId,I.RaporNo,I.StokId,I.Adet,I.Miktar,I.AuMilyem,I.Miktar * Case When I.AuMilyem=0 Then 1 else I.AuMilyem end as Has,T.AgMilyem,T.PltMilyem,T.PldMilyem,I.HasIsc,I.HasIscBirimId,I.GumIsc,I.GumIscBirimId,I.IscilikDurumu,I.GumusDurumu,I.PlatinDurumu,I.PalladiumDurumu,T.IsRapor,T.IsExtra,I.Tutar,I.Birim,I.BirimId,I.IsDeleted,I.HasKur,I.GumKur,I.PltKur,I.PldKur,I.IscilikBirimKur,I.HasIscBirimKur,I.GumIscBirimKur,I.InsertDate From Inserted I Left Join Stok.Takoz T on I.IslemKodu=0 And T.Id=I.StokId
 --***********************************************************
 DECLARE IslemCursor CURSOR FOR Select I.FiyatTipi, I.Id,I.Tarih,I.SubeId,I.KasaId,I.RefNo,I.HesapType,I.IslemKodu,I.IslemTuru,I.IslemTipi,I.HesapId,I.BakiyeId,I.AyarEviId,I.RaporNo,
 I.StokId,I.VaryantId,I.Adet,I.Miktar,I.CesniMiktar,I.AuMilyem,I.Miktar * Case When AuMilyem=0 Then 1 else AuMilyem end as Has,I.AgMilyem,I.PltMilyem,I.PldMilyem,I.HasIsc,I.HasIscBirimId,I.GumIsc,
 I.GumIscBirimId,I.IscilikDurumu,I.GumusDurumu,I.PlatinDurumu,I.PalladiumDurumu,I.IsRapor,I.IsExtra,I.Tutar,I.Birim,I.BirimId,I.IsDeleted,I.HasKur,I.GumKur,I.PltKur,I.PldKur,I.IscilikBirimKur,
 I.HasIscBirimKur,I.GumIscBirimKur,I.Iscilik,I.IscilikBirimId,I.IscilikBirimKur ,I.Tarih,S.IsActive,I.Satis,D.ETTN 
 From Inserted I 
 Left Join Sistem.Subeler S on S.Id=I.SubeId
 Left Join Cari.IslemDetaylari D on D.IslemId=I.Id 
 OPEN IslemCursor 
 FETCH NEXT FROM IslemCursor INTO @FiyatTipi,@IslemId,@Tarih,@SubeId,@KasaId,@RefNo,@HesapType,@IslemKodu,@IslemTuru,@IslemTipi,@HesapId,@BakiyeId,@AyarEviId,@RaporNo,@StokId,@VaryantId,@Adet,@Miktar,@CesniMiktar,@AuMilyem,@Has,@AgMilyem,@PltMilyem,@PldMilyem,@HasIsc,@HasIscBirimId,@GumIsc,@GumIscBirimId,@IscilikDurumu,@GumusDurumu,@PlatinDurumu,@PalladiumDurumu,@IsRapor,@IsExtra,@Tutar,@Birim,@BirimId,@IsDeleted,@HasKur,@GumKur,@PltKur,@PldKur,@IscKur ,@HasIscBirimKur,@GumIscBirimKur,@StokIsc,@StokIscBirimId,@StokIscKur ,@InsertDate,@SubeIsActive,@Satis,@ETTN
 WHILE @@FETCH_STATUS =0
 BEGIN 
 -- _____ _______ _____ _______ __ __ _ _____ _____ _______ _____ ____ _ _ 
 -- / ____|__ __|/\ | __ \__ __| \ \ / /\ | | |_ _| __ \ /\|__ __|_ _/ __ \| \ | |
 --| (___ | | / \ | |__) | | | \ \ / / \ | | | | | | | | / \ | | | || | | | \| |
 -- \___ \ | | / /\ \ | _ / | | \ \/ / /\ \ | | | | | | | |/ /\ \ | | | || | | | . ` |
 -- ____) | | |/ ____ \| | \ \ | | \ / ____ \| |____ _| |_| |__| / ____ \| | _| || |__| | |\ |
 --|_____/ |_/_/ \_\_| \_\ |_| \/_/ \_\______|_____|_____/_/ \_\_| |_____\____/|_| \_|

 Set @IsError=0

 if @SubeIsActive='False'
 BEGIN
 RAISERROR('SUBE PASIF HALDE. ISLEM YAPAMAZSINIZ... ',16,1)
 Set @IsError=1
 ROLLBACK
 RETURN
 END

 if @ETTN<>'' and not UPDATE (Mutabakat) and not UPDATE (IsDeleted)
 BEGIN
 RAISERROR('E-DOVIZ FATURASI GONDERILMIS ISLEMLER DUZELTILEMEZ ... ',16,1)
 Set @IsError=1
 ROLLBACK
 RETURN
 END


 --////////////////////////////////////////////EKSİK EVRAK KONTROLÜ////////////////////////////////////////////
 if (SELECT COUNT(*) FROM Cari.GetGerekliEvraklar(@SubeId,@HesapId, 'True') WHERE (Gun IS NULL OR Gun < 0))>0 
 BEGIN
 Declare @EksikEvraklar AS Nvarchar(MAX) -- It must not be MAX if you have few numbers
 SELECT @EksikEvraklar = COALESCE(@EksikEvraklar + ',', '') + DocumentName From
 (
 SELECT DISTINCT DocumentName
 FROM Cari.GetGerekliEvraklar(@SubeId,@HesapId, 'True') WHERE Gun IS NULL OR Gun < 0
 ) X

 RAISERROR('BU HESABIN ZORUNLU EVRAKLARI EKSIKTIR. ISLEM YAPAMAZSINIZ.',16,1)
 RAISERROR(@EksikEvraklar,16,2)
 Set @IsError=1
 ROLLBACK
 END
 --/////////////////////////////////////////////////////////////////////////////////////////////////////////////








 -------------------------------------------------------------------
 --if @Adres is null 
 --Begin
 -- RAISERROR ('HESABA AİT ADRES VE TELEFON BİLGİLERİ GİRİLMEDEN İŞLEM YAPILAMAZ.',16,1)
 -- SET @IsError=1
 -- ROLLBACK
 -- RETURN
 --End

 --Declare @MusteriTemsilcisi nvarchar(max)=(Select Temsilci1 from Cari.Hesaplar Where Id=@HesapId)
 --if @MusteriTemsilcisi in (Select combovalue from Sistem.DbCombo where Id in (478,479,480,481,482)) and (Select BSMV from Cari.Islemler Where HesapId=@HesapId and Id=@IslemId and @IslemTuru%2=1 and @IslemTipi=11)>0 and @IsDeleted=0
 --BEGIN
 -- RAISERROR ('BSMV''DEN MUAF BİR HESAP SEÇTİNİZ. LÜTFEN İŞLEMİNİZİ KONTROL EDİNİZ.',16,1)
 -- SET @IsError=1
 -- ROLLBACK
 -- RETURN
 --END
 --if @MusteriTemsilcisi is null and (Select BSMV from Cari.Islemler Where HesapId=@HesapId and Id=@IslemId and (@IslemTuru%2=1 and @IslemTipi=11))=0 and @IsDeleted=0
 --Begin
 --RAISERROR ('BSMV''DEN MUAF OLMAYAN BİR HESAP SEÇTİNİZ. LÜTFEN İŞLEMİNİZİ KONTROL EDİNİZ.',16,1)
 -- SET @IsError=1
 -- ROLLBACK
 -- RETURN
 --END


 -------------------------------------------------------------------




 ----limit kontrolü MADEN/HURDA/NAKİT ÇIKIŞ PEŞİN OLMAYAN İŞLEMLERDE ANKARA MARAŞ DOĞUDOVIZ ŞUBELERİNDE
 --if (@IslemKodu=1 or @IslemKodu=2 or @IslemKodu=3) AND @IslemTuru=1 And @IslemTipi<>1 AND (@SubeId in (2,3,10,12,13,15)) and @IsDeleted='False'
 --BEGIN

 -- Declare @Balance decimal(18,2) = Fn.Bol(@Satis,@HasKur)
 -- Declare @AvaibleLimit Decimal(18,2)=[FN].[GetCariLimit](@HesapId)
 -- Declare @message as nvarchar(max)='Hesap Limiti Aşılıyor. İşlemi Kayıt Edemezsiniz..! Kalan Müşteri Limiti ' + Convert(nvarchar(max),@AvaibleLimit) + ' HAS'
 -- if @Balance > @AvaibleLimit
 -- BEGIN
 -- RAISERROR(@message ,16,1)
 -- Set @IsError=1
 -- ROLLBACK
 -- END
 --END


 if @SubeId=0 or @KasaId=0 or @HesapId=0 
 BEGIN
 RAISERROR('SUBE,KASA VEYA HESAP SECILMEDI. ISLEM YAPAMAZSINIZ?. ',16,1)
 Set @IsError=1
 ROLLBACK
 END



 ------YAPILAN ISLEMLERDE ACTIVITY DATE YAZILIYOR

 MERGE INTO [Sistem].[Activity] AS Target USING (SELECT @subeId AS ActivitySubeId, GETDATE AS LastDate) AS Source
 ON Target.ActivitySubeId = Source.ActivitySubeId
 WHEN MATCHED THEN UPDATE SET Target.LastDate = Source.LastDate
 WHEN NOT MATCHED BY TARGET THEN INSERT (ActivitySubeId, LastDate)
 VALUES (Source.ActivitySubeId, Source.LastDate);
 ---------------------------------------------------------------


 ---/////// TAKOZ KONTROLU DEĞİŞTİ
 --if @IslemKodu=0 And @IslemTuru=0 and @IsDeleted='True' --TAKOZ CIKIS ISLEMINDE TAKOZUN STOGUNU KONTROL ET
 --BEGIN
 -- if (Select Sum(SAdet) as Adet From Cari.Islemler Where IsDeleted='False' AND IslemKodu=0 And StokId=@StokId And Id<>@IslemId)<>0 
 -- BEGIN
 -- RAISERROR('BU TAKOZA AIT ISLEMLER VAR. IPTAL EDEMEZSINIZ ?. ',16,1)
 -- Set @IsError=1
 -- ROLLBACK
 -- END
 -- ELSE
 -- BEGIN
 -- Update Stok.Takoz Set IsDeleted='True' Where Id=@StokId
 -- END
 --END

 --if (@IslemKodu=0 And @IslemTuru=1 And @IsDeleted='False')
 -- BEGIN
 -- if (Select Sum(SAdet) as Adet From Cari.Islemler Where IsDeleted='False' And KasaId=@KasaId And IslemKodu=0 And StokId=@StokId And Id<>@IslemId)=0 
 -- BEGIN
 -- RAISERROR('BU TAKOZ STOGUNUZDA YOK.ISLEM YAPAMAZSINIZ. ',16,1)
 -- Set @IsError=1
 -- ROLLBACK
 -- END
 -- END
 ---///////////////////////////////////////////////////////////////

 if @IslemKodu=0 And @IslemTuru=0 and @IsDeleted='True' --TAKOZ CIKIS ISLEMINDE TAKOZUN STOGUNU KONTROL ET
 BEGIN
 if (Select Stok.GetTakozAdet(@StokId,@IslemId)) <>0 
 BEGIN
 RAISERROR('BU TAKOZA AIT ISLEMLER VAR. IPTAL EDEMEZSINIZ ?. ',16,1)
 Set @IsError=1
 ROLLBACK
 END
 ELSE
 BEGIN
 Update Stok.Takoz Set IsDeleted='True' Where Id=@StokId
 END
 END

 if (@IslemKodu=0 And @IslemTuru=1 And @IsDeleted='False')
 BEGIN
 if (Select Stok.GetTakozAdet(@StokId,@IslemId)) =0 
 BEGIN
 RAISERROR('BU TAKOZ STOGUNUZDA YOK.ISLEM YAPAMAZSINIZ. ',16,1)
 Set @IsError=1
 ROLLBACK
 END
 END


 -- ______ _ _ _____ __ __ _ _____ _____ _______ _____ ____ _ _ 
 --| ____| \ | | __ \ \ \ / /\ | | |_ _| __ \ /\|__ __|_ _/ __ \| \ | |
 --| |__ | \| | | | | \ \ / / \ | | | | | | | | / \ | | | || | | | \| |
 --| __| | . ` | | | | \ \/ / /\ \ | | | | | | | |/ /\ \ | | | || | | | . ` |
 --| |____| |\ | |__| | \ / ____ \| |____ _| |_| |__| / ____ \| | _| || |__| | |\ |
 --|______|_| \_|_____/ \/_/ \_\______|_____|_____/_/ \_\_| |_____\____/|_| \_|
 if @IsError=0 
 BEGIN 
 Delete From Cari.BakiyeIslem Where IslemId =@IslemId 
 Delete From Stok.StokHaraketleri Where IslemId =@IslemId and Bolum =0
 END 


 if @IsDeleted='False' And @IsError=0 AND (@IslemTipi <>11 AND @IslemTipi<>12)
 BEGIN 
 Update Cari.Hesaplar Set LastDate=Getdate Where Id=@HesapId


 /*****************************STOK HARAKET DOSYASINA KAYIT ET************************************************************************/
 ---STOKTİPİ (1)-Maden (2)-Nakit (3)-Takoz (4)-Pırlanta

 if @IslemKodu=1 or @IslemKodu=2 --- MADEN İŞLEMİ İSE/
 BEGIN
 Insert Into Stok.StokHaraketleri(Bolum,IslemId,IslemTuru,Tarih,SubeId,KasaId,StokTipi,StokId,VaryantId,Adet,Miktar,Milyem,Has,Maliyet)
 Values(0,@IslemId,@IslemTuru,@Tarih,@SubeId,@KasaId,1,@StokId,IsNull(@VaryantId,0),Case When @IslemTuru=0 Then @Adet When @IslemTuru=1 Then 0-@Adet End,Case When @IslemTuru=0 Then @Miktar When @IslemTuru=1 Then 0-@Miktar End,@AuMilyem,Case When @IslemTuru=0 Then (@AuMilyem * @Miktar) When @IslemTuru=1 Then 0-(@AuMilyem * @Miktar) End ,Case When @IslemTuru=0 Then Convert(Decimal(18,2), @StokIsc * @StokIscKur ) Else 0 End)
 END
 if @IslemKodu=0 ---TAKOZ ISLEMI ISE 
 BEGIN
 Insert Into Stok.StokHaraketleri(Bolum,IslemId,IslemTuru,Tarih,SubeId,KasaId,StokTipi,StokId,Adet,Miktar,Milyem,Has,Maliyet)
 Values(0,@IslemId,@IslemTuru,@Tarih,@SubeId,@KasaId,3,@StokId,Case When @IslemTuru=0 Then 1 When @IslemTuru=1 Then -1 End,0,0,0,0)
 END
 if @IslemKodu=3 And @IslemTipi <>4 ---NAKİT İŞLEMİ İSE
 BEGIN
 Insert Into Stok.StokHaraketleri(Bolum,IslemId,IslemTuru,Tarih,SubeId,KasaId,StokTipi,StokId,Adet,Miktar,Milyem,Has,Maliyet)
 Values(0,@IslemId,@IslemTuru,@Tarih,@SubeId,@KasaId,2,@StokId,0,Case When @IslemTuru=0 Then @Miktar When @IslemTuru=1 Then 0-@Miktar End,0,0,0)
 END
 if @IslemTipi=1 ---PEŞİN İŞLEM İSE
 BEGIN
 Insert Into Stok.StokHaraketleri(Bolum,IslemId,IslemTuru,Tarih,SubeId,KasaId,StokTipi,StokId,Adet,Miktar,Milyem,Has,Maliyet)
 Values(0,@IslemId,@IslemTuru,@Tarih,@SubeId,@KasaId,2,@BirimId,0,Case When @IslemTuru=0 Then 0-@Tutar When @IslemTuru=1 Then @Tutar End,0,0,0)
 END
 if @IslemKodu=8 ---PIRLANTA İŞLEMİ İSE
 BEGIN
 Declare @Maliyet decimal(18,2) =@Tutar * Fn.GetKur(@BirimId)
 Insert Into Stok.StokHaraketleri(Bolum,IslemId,IslemTuru,Tarih,SubeId,KasaId,StokTipi,StokId,Adet,Miktar,Milyem,Has,Maliyet)
 Values(0,@IslemId,@IslemTuru,@Tarih,@SubeId,@KasaId,4,@StokId,Case When @IslemTuru=0 Then @Adet When @IslemTuru=1 Then 0-@Adet End,0,0,0,@Maliyet)
 END
 if @IslemKodu=9 ----MODEL ISE
 BEGIN
 Declare @AyarId int =(Select Top 1 StokId From Stok.Model Where Id=@StokId)
 Insert Into Stok.StokHaraketleri(Bolum,IslemId,IslemTuru,Tarih,SubeId,KasaId,StokTipi,StokId,VaryantId,Adet,Miktar,Milyem,Has,Maliyet)
 Values(0,@IslemId,@IslemTuru,@Tarih,@SubeId,@KasaId,1,@AyarId,IsNull(@VaryantId,0),Case When @IslemTuru=0 Then @Adet When @IslemTuru=1 Then 0-@Adet End,Case When @IslemTuru=0 Then @Miktar When @IslemTuru=1 Then 0-@Miktar End,@AuMilyem,Case When @IslemTuru=0 Then (@AuMilyem * @Miktar) When @IslemTuru=1 Then 0-(@AuMilyem * @Miktar) End ,Case When @IslemTuru=0 Then Convert(Decimal(18,2), @StokIsc * @StokIscKur ) Else 0 End)
 END
 ---////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


 --************************************************************************************************************************************
 --************************************************************************************************************************************
 --*****************************EGER ISLEM MADEN ISLEMI ISE (MADEN/HURDA)**************************************************************
 --************************************************************************************************************************************
 --************************************************************************************************************************************
 IF @IslemKodu=14 ---ÇEŞNİ İSE
 BEGIN
 Insert Into Cari.BakiyeIslem(Tarih,HesapType,HesapId,KasaId,IslemId,BirimId,Bakiye)
 Values(@InsertDate,@HesapType,@HesapId,@KasaId,@IslemId,@HasBirimId,@Miktar * @AuMilyem )
 Insert Into Cari.BakiyeIslem(Tarih,HesapType,HesapId,KasaId,IslemId,BirimId,Bakiye)
 Values(@InsertDate,@HesapType,@HesapId,@KasaId,@IslemId,@GumBirimId,@Miktar * @AgMilyem )
 END
 IF @IslemKodu =3 And @IslemTipi =10 ---NAKIT EMANET ISLEMI ISE MIKTARI YAZ (#SONRADAN EKLENDI)
 BEGIN
 if @IslemTuru =0 
 BEGIN
 Insert Into Cari.BakiyeIslem(Tarih,HesapType,HesapId,KasaId,IslemId,BirimId,Bakiye)
 Values(@InsertDate,@HesapType,@HesapId,@KasaId,@IslemId,@BakiyeId,@Miktar *-1)
 END
 ELSE
 BEGIN
 Insert Into Cari.BakiyeIslem(Tarih,HesapType,HesapId,KasaId,IslemId,BirimId,Bakiye)
 Values(@InsertDate,@HesapType,@HesapId,@KasaId,@IslemId,@BakiyeId,@Miktar )
 END
 END

 if @IslemKodu=1 or @IslemKodu=2 or @IslemKodu =9
 BEGIN
 if @IslemTuru=0 OR @IslemTuru =2 or @IslemTuru=4 ---ISLEM EGER GIRIS/ALIS/ALACAK ISE BAKIYE ALACAKLI OLUR
 BEGIN
 Set @Has=0-abs(@Has)
 Set @Tutar=0-abs(@Tutar)
 END

 if @IslemTuru=1 OR @IslemTuru=3 or @IslemTuru=5 ---ISLEM EGER CIKIS/SATIS/BORC ISE BAKIYE BORCLU OLUR
 BEGIN
 Set @Has=abs(@Has)
 Set @Tutar=abs(@Tutar)
 END

 if @BakiyeId>0 and @Miktar<>0 And @IslemTipi <>1 ---EGER ISLEM BEDELLI VEYA PESIN DEGIL ISE VE ISLEM MADEN VEYA HURDA ISE BAKIYEID <>0 DEGIL ISE 
 BEGIN 
 Insert Into Cari.BakiyeIslem(Tarih,HesapType,HesapId,KasaId,IslemId,BirimId,Bakiye)
 Values(@InsertDate,@HesapType,@HesapId,@KasaId,@IslemId,@BakiyeId,@Has)
 END

 if @IslemTipi<>1 and @Tutar<>0 
 BEGIN 
 Insert Into Cari.BakiyeIslem(Tarih,HesapType,HesapId,KasaId,IslemId,BirimId,Bakiye)
 Values(@InsertDate,@HesapType,@HesapId,@KasaId,@IslemId,@BirimId,@Tutar)
 END
 END 
 ---////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 ---////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 ---////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 ---////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 ---////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 ELSE if @IslemKodu=4 or @IslemKodu=6 or @IslemKodu =5
 --************************************************************************************************************************************
 --************************************************************************************************************************************
 --***************************** EGER ISLEM CEVIR VEYA VADELI ISLEMI ISE **************************************************************
 --************************************************************************************************************************************
 --************************************************************************************************************************************
 BEGIN

 if @IslemTuru=0 OR @IslemTuru =2 or @IslemTuru=4 ---ISLEM EGER GIRIS/ALIS/ALACAK ISE BAKIYE ALACAKLI OLUR
 BEGIN
 Set @Has=abs(@Has)
 Set @Tutar=0-abs(@Tutar)
 END 

 if @IslemTuru=1 OR @IslemTuru=3 or @IslemTuru=5 ---ISLEM EGER CIKIS/SATIS/BORC ISE BAKIYE BORCLU OLUR
 BEGIN
 Set @Has=0-abs(@Has)
 Set @Tutar=abs(@Tutar)
 END

 if @BakiyeId>0 and @Miktar<>0 ---EGER ISLEM BEDELLI VEYA PESIN DEGIL ISE VE ISLEM MADEN VEYA HURDA ISE BAKIYEID <>0 DEGIL ISE 
 BEGIN 
 Insert Into Cari.BakiyeIslem(Tarih,HesapType,HesapId,KasaId,IslemId,BirimId,Bakiye)
 Values(@InsertDate,@HesapType,@HesapId,@KasaId,@IslemId,@BakiyeId,@Has)
 END

 if (@IslemTipi<>1 and @Tutar<>0) ---EGER ISLEM PESIN DEGIL ISE TUTAR BAKIYESINI YAZ
 BEGIN 
 Insert Into Cari.BakiyeIslem(Tarih,HesapType,HesapId,KasaId,IslemId,BirimId,Bakiye)
 Values(@InsertDate,@HesapType,@HesapId,@KasaId,@IslemId,@BirimId,@Tutar)
 END
 END
 ---////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 ---////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 ---////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 ---////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 ---////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 ELSE IF @IslemKodu<>0 and @IslemKodu<>1 AND @IslemKodu<>2 
 --************************************************************************************************************************************
 --************************************************************************************************************************************
 --****************************************** EGER ISLEM STOK ISLEMI ISE **************************************************************
 --************************************************************************************************************************************
 --************************************************************************************************************************************

 BEGIN
 if @IslemTuru=0 OR @IslemTuru =2 or @IslemTuru=4 ---ISLEM EGER GIRIS/ALIS/ALACAK ISE BAKIYE ALACAKLI OLUR
 BEGIN
 Set @Tutar=0-abs(@Tutar)
 END

 if @IslemTuru=1 OR @IslemTuru=3 or @IslemTuru=5 ---ISLEM EGER CIKIS/SATIS/BORC ISE BAKIYE BORCLU OLUR
 BEGIN
 Set @Tutar=abs(@Tutar)
 END

 if @IslemTipi<>1 and @Tutar<>0 ---EGER ISLEM PESIN DEGIL ISE TUTAR BAKIYESINI YAZ
 BEGIN 
 if @IslemKodu =3 and @IslemTipi =10 ----NAKIT PARITE ISLEMI ICIN SONRADAN EKLENDI ORJINAL SATIR ELSE SATIRI
 BEGIN 
 Insert Into Cari.BakiyeIslem(Tarih,HesapType,HesapId,KasaId,IslemId,BirimId,Bakiye)
 Values(@InsertDate,@HesapType,@HesapId,@KasaId,@IslemId,@BirimId,@Tutar *-1)
 END
 ELSE
 BEGIN
 Insert Into Cari.BakiyeIslem(Tarih,HesapType,HesapId,KasaId,IslemId,BirimId,Bakiye)
 Values(@InsertDate,@HesapType,@HesapId,@KasaId,@IslemId,@BirimId,@Tutar)
 END
 END
 END

 ---////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 ---////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 ---////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 ---////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 ---////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 ELSE IF @IslemKodu=0 
 BEGIN
 --************************************************************************************************************************************
 --************************************************************************************************************************************
 --****************************************** EGER ISLEM TAKOZ ISLEMI ISE **************************************************************
 --************************************************************************************************************************************
 --************************************************************************************************************************************
 -- [MADEN DURUM] [ISCLIK DURUM]
 -- (0) Madeni Ver (0) Altından Düş
 -- (1) Altına Cevir (1) Para İle
 -- (2) Işçilikten Düş
 -- (3) Madeni Bırak

 if @IsRapor =0 ------------ EGER TAKOZ RAPORSUZ ISE XRF MILYEMLERINI OKU
 BEGIN
 Select @AuMilyem =XRFAuMilyem,@AgMilyem =XRFAgMilyem from stok.Takoz where Id=@StokId 
 END

 if @IslemTuru=0 SET @Miktar +=@CesniMiktar --EĞER TAKOZ GİRİŞ İŞLEMİ İSE BAKİYEYE ÇEŞNİ MİKTARINI DA EKLE.
 Declare @HasBakiye Decimal(18,5) = (@Miktar * @AuMilyem)
 Declare @GumBakiye Decimal(18,5) = 0
 Declare @PltBakiye Decimal(18,5) = 0
 Declare @PldBakiye Decimal(18,5) = 0
 Declare @IscilikBakiye Decimal(18,5) =0
 Declare @HasIscilik Decimal(18,5) = (@HasIsc * (@Miktar * @AuMilyem)) 
 Declare @GumIscilik Decimal(18,5) = (@GumIsc * (@Miktar * @AgMilyem))

 Declare @Iscilik Decimal(18,2) = Fn.Bol((@HasIscilik * @HasIscBirimKur),@IscKur) + Fn.Bol((@GumIscilik * @GumIscBirimKur) ,@IscKur)

 if @GumusDurumu=0 --Madeni Ver
 BEGIN
 Set @GumBakiye += @Miktar * @AgMilyem
 END
 ELSE IF @GumusDurumu=1 --Altına Çevir
 BEGIN
 Set @HasBakiye += Fn.Bol(((@Miktar * @AgMilyem) * @GumKur),@HasKur)
 END
 ELSE IF @GumusDurumu=2 --İşçiliktenDüş
 BEGIN
 Set @IscilikBakiye +=Fn.Bol(((@Miktar * @AgMilyem) * @GumKur),@IscKur)
 END


 if @PlatinDurumu=0 --Madeni Ver
 BEGIN
 Set @PltBakiye += @Miktar * @PltMilyem
 END
 ELSE IF @PlatinDurumu=1 --Altına Çevir
 BEGIN
 Set @HasBakiye += Fn.Bol(((@Miktar * @PltMilyem) * @PltKur),@HasKur)
 END
 ELSE IF @PlatinDurumu=2 --İşçiliktenDüş
 BEGIN
 Set @IscilikBakiye +=Fn.Bol(((@Miktar * @PltMilyem) * @PltKur),@IscKur)
 END


 if @PalladiumDurumu=0 --Madeni Ver
 BEGIN
 Set @PldBakiye += @Miktar * @PldMilyem
 END
 ELSE IF @PalladiumDurumu=1 --Altına Çevir
 BEGIN
 Set @HasBakiye += Fn.Bol(((@Miktar * @PldMilyem) * @PldKur),@HasKur)
 END
 ELSE IF @PalladiumDurumu=2 --İşçiliktenDüş
 BEGIN
 Set @IscilikBakiye +=Fn.Bol(((@Miktar * @PldMilyem) * @PldKur),@IscKur)
 END


 --if @BirimId=@HasBirimId 
 -- BEGIN
 -- Set @HasBakiye +=@IscilikBakiye
 -- set @IscilikBakiye=0
 -- END

 if @IsRapor=1 OR (@IsRapor =0 And (@AuMilyem<>0 or @AgMilyem <>0 ))
 BEGIN
 if IsNull(@Iscilik,0)<>0 ----İşçiliği Yaz
 BEGIN
 Insert Into Cari.BakiyeIslem(Tarih,HesapType,HesapId,KasaId,IslemId,BirimId,Bakiye)
 Values(@InsertDate,@HesapType,@HesapId,@KasaId,@IslemId,@BirimId,Case When @IslemTuru=0 Then @Iscilik Else 0-@Iscilik End)
 END

 if IsNull(@HasBakiye,0)<>0
 BEGIN
 Insert Into Cari.BakiyeIslem(Tarih,HesapType,HesapId,KasaId,IslemId,BirimId,Bakiye)
 Values(@InsertDate,@HesapType,@HesapId,@KasaId,@IslemId,@HasBirimId,Case When @IslemTuru=0 Then 0-@HasBakiye Else @HasBakiye End)
 END

 if IsNull(@GumBakiye,0)<>0
 BEGIN
 Insert Into Cari.BakiyeIslem(Tarih,HesapType,HesapId,KasaId,IslemId,BirimId,Bakiye)
 Values(@InsertDate,@HesapType,@HesapId,@KasaId,@IslemId,@GumBirimId, Case When @IslemTuru=0 Then 0-@GumBakiye Else @GumBakiye End)
 END

 if IsNull(@PltBakiye,0)<>0
 BEGIN
 Insert Into Cari.BakiyeIslem(Tarih,HesapType,HesapId,KasaId,IslemId,BirimId,Bakiye)
 Values(@InsertDate,@HesapType,@HesapId,@KasaId,@IslemId,@PltBirimId,Case When @IslemTuru=0 Then 0-@PltBakiye Else @PltBakiye End)
 END

 if IsNull(@PldBakiye,0)<>0
 BEGIN
 Insert Into Cari.BakiyeIslem(Tarih,HesapType,HesapId,KasaId,IslemId,BirimId,Bakiye)
 Values(@InsertDate,@HesapType,@HesapId,@KasaId,@IslemId,@PldBirimId,Case When @IslemTuru=0 Then 0-@PldBakiye Else @PldBakiye End)
 END

 if IsNull(@IscilikBakiye,0)<>0
 BEGIN
 Insert Into Cari.BakiyeIslem(Tarih,HesapType,HesapId,KasaId,IslemId,BirimId,Bakiye)
 Values(@InsertDate,@HesapType,@HesapId,@KasaId,@IslemId,@BirimId,Case When @IslemTuru=0 Then 0-@IscilikBakiye Else @IscilikBakiye End)
 END
 END
 ELSE
 BEGIN
 Insert Into Cari.BakiyeIslem(Tarih,HesapType,HesapId,KasaId,IslemId,BirimId,Bakiye)
 Values(@InsertDate,@HesapType,@HesapId,@KasaId,@IslemId,-1,Case When @IslemTuru=0 Then 0-@Miktar Else @Miktar End)
 END


 END

 END 
 FETCH NEXT FROM IslemCursor INTO @FiyatTipi, @IslemId,@Tarih,@SubeId,@KasaId,@RefNo,@HesapType,@IslemKodu,@IslemTuru,@IslemTipi,@HesapId,@BakiyeId,@AyarEviId,@RaporNo,@StokId,@VaryantId,@Adet,@Miktar,@CesniMiktar,@AuMilyem,@Has,@AgMilyem,@PltMilyem,@PldMilyem,@HasIsc,@HasIscBirimId,@GumIsc,@GumIscBirimId,@IscilikDurumu,@GumusDurumu,@PlatinDurumu,@PalladiumDurumu,@IsRapor,@IsExtra,@Tutar,@Birim,@BirimId,@IsDeleted,@HasKur,@GumKur,@PltKur,@PldKur,@IscKur ,@HasIscBirimKur,@GumIscBirimKur,@StokIsc,@StokIscBirimId,@StokIscKur ,@InsertDate,@SubeIsActive,@Satis,@ETTN
 END
 CLOSE IslemCursor 
 DEALLOCATE IslemCursor 
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).