Web Uygulamasını Tamamlamak

Top  Previous  Next

Her Kullanıcıya Bir Sipariş Sepeti

Bu aşamada uygulamamız çalışır vaziyette denilebilir. Fakat bir kaç mantık hatası söz konusu. Örneğin giriş yapan kullanıcı sadece kendisinin sepete eklediği ürünleri "Güncel Sipariş" sayfasında görmesi gerekirken; uygulamanın bu haliyle diğer kullanıcıların sepete eklediği ürünleri de görebilir. İncelemek için "Güncel Sipariş" sayfasını farklı kullanıcı girişleri ile test edebilirsiniz. Şimdi sepeti kullanıcıya özel yapalım.

Adımlar:

1."Urunler" sayfasını açın.
2."SepeteEkle" isimli RelDBQueryDataSource elemanı seçerek, üzerinde çift tıklayın.
3.Açılan SQL penceresinde, sorgunuzda aşağıdaki değişiklikleri yapın.

selecT COUNT(*) AS v:CNT FROM cart WHERE PRODUCT_ID = @vof(ID) AND USER_ID = @vof(/mor_security_userinfo_main.id);  

@doif(v:CNT > 0)

  UPDATE cart SET  
       QUANTITY = QUANTITY + 1
  WHERE PRODUCT_ID = @vof(ID);

@doelse()

  INSERT INTO cart 

     (PRODUCT_ID, QUANTITY, USER_ID) 
  VALUES (@vof(ID), 1, @vof(/mor_security_userinfo_main.id)) ;

@doend()

 

4."GüncelSiparis" sayfasını açın.
5."sepet" isimli RelDBQueryDataSource elemanı seçerek, üzerinde çift tıklayın.
6.Açılan SQL penceresinde, sorgunuzda aşağıdaki değişiklikleri yapın.

SELECT
  c.ID, c.PRODUCT_ID, c.QUANTITY,
  p.NAME, p.PRICE,
  p.PRICE * c.QUANTITY as LINETOT
FROM
  cart c, products p
WHERE
  c.PRODUCT_ID = p.ID  AND c.USER_ID = @vof(/mor_security_userinfo_main.id)

 

Böylelikle sepet tablosunda tuttuğumuz "USER_ID" alanının değerlerini, giriş yapan kullanıcının ID' si ile eşleştirmiş olduk. Giriş yapan kullanıcının kimliğini "@vof(/mor_security_userinfo_main.id)" tanımı ile elde ediliyor.