Forum
Yukarıdaki gibi bir Müşteri tablom var
Sistem şu şekilde işliyor Müşteri sisteme girebilmek için bir Sponsora bağlı olması gerekiyor..Ve kişi kayıtlarını (alt müşterilerini sağ sol olmak üzere iki ye ayrılıyor )Mesela tabloda 12378 ID li kayıt 12377 nolu kayıta bağlı ve 12377 nin sol tarafında imiş (LeftlegID si 12378) aynı şekilde 12379 nolu kayıtta böyle ..
Şimdi benim yapmak istediğim ise müşteri mesela 12379 nolu Ahmet bir sipariş verdiğinde (Siparişten puan alıyor) aldığı puanı önce kandine yazacağız sonra sponsorun un eğer sol tafaında ise soltaraf puan toplamını aldığı puan kadar arttıracağız ve en üste kadar devam edecek
bunun için nasıl bir yol izlemeliyim veya wihile ile nasıl bir döngü yazabilirim
Sipariş verildiğinde bu siparişin bilgisinin eklendiği tabloya bir on insert trigger'ı oluşturacaksınız. inserted tablosundaki değerleri inceleyip sizin belirlediğiniz kriterlere göre diğer tablolara ilgili veriler yazılacak.
Mert Bey benim sorunum Sipariş eklendiğinde değil sipariş tablosuna kayıt eklen,yor ve onay durumu default olarak onaylanmamış oluyor..Sipariş onaylandandıktan sonra ben sipraiştten kazanılan puanın müşteriye ve üst sponsorlarına yazdırmak istiyorumm
Sipariş onaylandığında tabloda bir alanın değeri mutlaka değişiyordur. Dediğim gibi bir trigger oluşturarak (tabii eğer kayıdın yazılma anında sipariş onaylanmıyorsa bu durumda on insert,update trigger'ı oluşturmalıyız) müşteriye ve üst sponsorlarına puanı yazdırın. Trigger'da onayın olup olmadığı kontrol edilecek. Eğer onaylanmışsa bahsettiğiniz puanlar yazılacak.
Tamda dediğiniz gibi Onaylandıktan sonra Müşteriyi eğer onaylanmamışsa onaylıyorum(sipairş vermeyen müşteri default olarak onaylanmıyor)
Şİmdi burada nasıl bir kod yazayımki sponsorlara bu puanı yazdırayım
ALTER trigger [dbo].[MusteriOnay] on [dbo].[Orders] For Update
as
begin
declare @OldApprove int, @Approve int, @CustomerID int,@ApproveDate datetime,@CusApprove int
select @Approve=Approve, @CustomerID=CustomerID from deleted
select @OldApprove=Approve , @CustomerID=CustomerID ,@ApproveDate=ApproveDate from inserted
if(@OldApprove > @Approve)
begin
select @CusApprove=(Select @Approve from Customer where ID=@CustomerID)
if(@CusApprove < 0)
update Customer set Approve=1,ApproveDate=@ApproveDate where ID=@CustomerID
end
end