Kampanya kartı içerisinde olmayan alanlar yada başka bir tabloda değer getirmek için SQLINFO fonksiyonu kullanılabilir.

 

Örnek : Sipariş yada Fatura içerisinde birden fazla malzemeye aynı indirimi yapmak için SQLINFO fonksiyonu kullanılması.

 

Malzeme Kodu             Malzeme Adı   

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

PG.001                            A

PG.002                            B

PG.003                            C

PG.004                            D

PG.005                            E

 

MS Kodu                      MS Açıklaması

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

PG                                     PG

 

 

Ortak kampanya uygulanacak malzeme kartları Malzeme sınıfı açılarak bağlantı yapılmalıdır.

 

MALZEME – MALZEME SINIF BAĞLANTISINI LISTELEYEN QUERY

 

SELECT

      COUNT(*)

FROM

      LG_010_ITEMS I (NOLOCK)

LEFT OUTER JOIN

LG_010_ITMCLSAS C (NOLOCK) ON I.LOGICALREF=C.CHILDREF AND C.UPLEVEL=0

      LEFT OUTER JOIN

LG_010_ITEMS S (NOLOCK) ON C.PARENTREF=S.LOGICALREF

WHERE

      I.CODE LIKE 'PG.001'

      AND S.CODE LIKE 'PG'    

 

 QUERY’ NIN FONKSİYON HALİNE GETİRİLMESİ

 

CREATE FUNCTION [dbo].[FN_MS_KAMPANYA_010] (@MALZ VARCHAR(21), @SINIF VARCHAR(21))

RETURNS FLOAT

AS

BEGIN

   DECLARE @LG_FN_LINETOPLAM FLOAT

 

   SET @LG_FN_LINETOPLAM=(   

SELECT

      COUNT(*)

FROM

      LG_010_ITEMS I (NOLOCK)

LEFT OUTER JOIN LG_010_ITMCLSAS C (NOLOCK) ON I.LOGICALREF=C.CHILDREF AND C.UPLEVEL=0

LEFT OUTER JOIN

LG_010_ITEMS S (NOLOCK) ON C.PARENTREF=S.LOGICALREF

WHERE

      I.CODE LIKE @MALZ+'%'

      AND S.CODE LIKE @SINIF+'%'                                 

)

;

 RETURN(@LG_FN_LINETOPLAM)

END

 

Not : Fonksiyon SQL’ de bir kez çalıştırılarak sql tarafına fonksiyon olarak eklenmesi sağlanmalıdır.

 

FONKSİYON’ UN QUERY İLE ÇALIŞTIRILMASI 

SELECT DBO.FN_MS_KAMPANYA_010('PG.004','PG') FROM L_CAPIFIRM WHERE NR=10

 

 FONKSİYON’ UN SQLINFO HALİNE GETİRİLMESİ

VAL(_SQLINFO("DBO.FN_MS_KAMPANYA_010('"+P101+"','PG')","L_CAPIFIRM","NR=10"))

 

Kampanya kartı içerisinde SQLINFO fonksiyonunun kullanılması 

P101 : Malzeme Kodu bilgisidir. 

Koşul alanında IF(V5>0,1,0) fonksiyonu kullanılarak V5 değişkeninden 1 değeri döndüğü zaman kampanya uygulanması sağlanmaktadır. 

V5 değişkeni içerisinde bulunan PG  alanı yerine malzemelerin bağlı bulunduğu kampanya uygulanacak üst malzeme sınıf kodu belirtilmelidir

Fatura içerisinde kampanya uygulandığı zaman;

şeklinde listelenmektedir.