Satıra Uygulanan Parametreler
Kampanya satırlarında koşul ve formül alanlarında kullanılabilecek parametre ve değişkenler şunlardır:
Alan | Açıklama |
---|---|
P1 | Satır Tutarı (KDV Hariç) |
P82 | Satır Tutarı (KDV Dahil) |
P2 | Kalan Tutar (Masraf Hariç) |
P3 | Son Satır Tutarı |
P4 | Satır Miktarı (Satırdaki Birim) |
P5 | Satır Miktarı (Ana Birim) |
P6 | Satır Ek Vergi Tutarı |
P87 | Satır İndirim Tutarı |
P88 | Satır Masraf Tutarı |
P7 | Kalan Tutar (Dağıtılan İndirim ve Promosyonlar) |
P8 | Cari Hesaptan Alınan Toplam Mal Miktarı (Ana Birim) |
P11 | Cari Hesaba Satılan Toplam Mal Miktarı (Ana Birim) |
P14 | Cari Hesaptan Alınan Malın Toplam Net Tutarı |
P15 | Cari Hesaba Satılan Malın Toplam Net Tutarı |
P49 | Satır Eni (Satırdaki Birim) |
P50 | Satır Eni (Ana Birim) |
P51 | Satır Boyu (Satırdaki Birim) |
P52 | Satır Boyu (Ana Birim) |
P53 | Satır Yüksekliği (Satırdaki Birim) |
P54 | Satır Yüksekliği (Ana Birim) |
P55 | Satır Alanı (Satırdaki Birim) |
P56 | Satır Alanı (Ana Birim) |
P57 | Satır Hacmi (Satırdaki Birim) |
P58 | Satır Hacmi (Ana Birim) |
P59 | Satır Ağırlığı (Satırdaki Birim) |
P60 | Satır Ağırlığı (Ana Birim) |
P84 | Satır Brüt Ağırlığı (Satırdaki Birim) |
P85 | Satır Brüt Ağırlığı (Ana Birim) |
P75 | Birim Fiyat (Satırdaki Birim) |
P76 | Birim Fiyat (Ana Birim) |
P90 | Fiş İşlem Döviz Kuru |
P101 | Malzeme Kodu |
P114 | Malzeme Özel Kodu |
P118 | Malzeme Özel Kodu2 |
P119 | Malzeme Özel Kodu3 |
P120 | Malzeme Özel Kodu4 |
P121 | Malzeme Özel Kodu5 |
P115 | Malzeme Yetki Kodu |
P77 | Malzeme Alış KDV Oranı (%) |
P78 | Malzeme Satış KDV Oranı (%) |
P79 | Malzeme İade KDV Oranı (%) |
P80 | Malzeme Perakende Satış KDV Oranı (%) |
P81 | Malzeme Perakende İade KDV Oranı (%) |
P102 | Hareket Özel Kodu |
P103 | Teslimat Kodu |
P104 | Satır Ödeme Plan Kodu |
P20 | Brüt Toplamı |
P21 | Kalan Tutar (Masraf hariç) |
P22 | İndirimli Satırlar Toplamı |
P23 | Satır İndirimleri Toplamı |
P24 | Satır Masrafları Toplamı |
P25 | Miktar Toplamı (Satırdaki Birim) |
P26 | Miktar Toplamı (Ana Birim) |
P29 | Satır Ek Vergi Tutarları Toplamı (Promosyon Hariç) |
P30 | Satır Ek Vergi Tutarları Toplamı (Promosyon Dahil) |
P40 | Miktar Toplamı (Promosyon hariç Satırdaki Birim) |
P41 | Miktar Toplamı (Promosyon hariç Ana Birim) |
P42 | Cari Hesap Borcu |
P43 | Cari Hesap Alacağı |
P44 | Cari Hesap Borç Bakiyesi |
P45 | Cari Hesap Alacak Bakiyesi |
P46 | Cari Hesap Bakiyesi |
P47 | Cari Hesap Alım Faturaları Toplam Tutarı |
P48 | Cari hesap Satış Faturaları Toplam Tutarı |
P61 | Satırların Toplam Eni (Ana Birim) |
P62 | Satırların Toplam Boyu (Ana Birim) |
P63 | Satırların Toplam Yüksekliği (Ana Birim) |
P64 | Satırların Toplam Alanı (Ana Birim) |
P65 | Satırların Toplam Hacmi (Ana Birim) |
P66 | Satırların Toplam Ağırlığı (Ana Birim) |
P86 | Satırların Toplam Brüt Ağırlığı (Ana Birim) |
P105 | C/H Kodu |
P122 | Cari Hesap Özel Kodu |
P123 | Cari Hesap Özel Kodu2 |
P124 | Cari Hesap Özel Kodu3 |
P125 | Cari Hesap Özel Kodu4 |
P126 | Cari Hesap Özel Kodu5 |
P130 | Cari Hesap Yetki Kodu |
P106 | Ticari İşlem Grubu |
P107 | Ödeme Planı |
P108 | Ödeme Planı Grup Kodu |
P109 | İl |
P110 | İlçe |
P111 | Semt |
P112 | Fiş özel kodu |
P113 | Fiş yetki kodu |
P136 | Fiş Belge No |
P116 | Sevkiyat Hesap Kodu |
P117 | Sevkiyat Adres Kodu |
P127 | İşyeri |
P128 | Bölüm |
P129 | Ambar |
P131 | Satırdaki Birim |
P132 | Ana Birim |
P133 | Varyant Kodu |
P134 | Satış Elemanı Kodu |
P135 | Satır Satış Elemanı Kodu |
P89 | Temin / Teslim Tarihi |
Fonksiyonlar
Kampanya satırlarında koşul ve formül alanlarında kullanılabilecek fonksiyonlar şunlardır:
Alan | Açıklama |
---|---|
MIN(,) | (parantez içine seçilen parametrelerden/sabitlerden minimum olanını alır) |
MAX(,) | (parantez içine seçilen parametrelerden/sabitlerden maksimum olanını alır) |
MOD(,) | (parantez içinde verilen parametre/sabitlerden büyüğünü küçüğüne bölerek kalanı alır) |
DIV(,) | (parantez içindeki ilk parametreyi/sabiti ikincisine böler, bölümü yazar) |
ABS() | (parantez içindeki parametrenin/sabitin mutlak değerini alır) |
VAL( ) | (parantez içindeki stringi numeriğe dönüştürür) |
DATE(,,) | (gün, ay ve yıl bilgisine göre tarih formatına çevirir) |
AFTER(,) | (Bir tarihten verilen gün sayısı kadar sonraki tarihi verir) |
DAYS(,) | (iki tarih arasındaki gün sayısını verir) |
DAYOF() | (günün tarihini verir) |
MONTHOF() | (içinde bulunulan ayı verir) |
YEAROF() | (içinde bulunulan yılı verir) |
WDAYOF() | (verilen tarihin haftanın kaçıncı günü olduğunu verir) |
ROUND( ) | (parantez içindeki parametreyi/sabitin küsuratı 0,5 den küçükse sayıyı aşağıya, büyükse yukarıya yuvarlar) |
TRUNC( ) | (parantez içindeki parametrenin/sabitin küsuratlı olması durumunda küsuratı atar) |
ERATE(,) | (İstenilen döviz cinsinin, otomatik kullanımda olan türünün, belli tarihteki kurunu getirir. Örneğin, ERATE(DATE(05,05,2002),20) |
CRATE(,,,) | (istenilen dövizli tutarın çapraz kurla çevrilen değerini getirir) |
STRPOS(,) | (metin içersinde aranacak olan karakterin metnin kaçıncı karakteri olduğu bilgisini verir) |
FLOOR( ) | (parantez içindeki parametreyi/sabiti küsuratlı olması durumunda bir aşağıya yuvarlar) |
CEIL( ) | (parantez içindeki parametreyi/sabiti küsuratlı olması durumunda bir yukarıya yuvarlar) |
FRAC( ) | (parantez içindeki parametrenin/sabitin küsuratını alır) |
EXP() | (doğal logaritma(ln) fonksiyonunun tersidir. Doğal logaritma fonksiyonunun tabanının (e) verilen sayı kadar kendisi ile çarpımının en yakın olduğu tamsayıyı verir) |
LN() | (doğal logaritma fonksiyonudur. "e" tabanına göre logaritma fonksiyonunu sonucunu en yakın tamsayıya çevirir) |
POWER(,) | (bir sayının belirtilen kuvvetini verir. Örneğin POWER(9,2)=81 (92) ) |
SQR() | (bir sayının karesini (kendisi ile çarpımını) verir) |
SQRT() | (bir sayının karekökünü verir. Örneğin; SQRT(81)=9) |
COS() | (bir sayının (radyan cinsinden verilen açının) cosinüsünü verir) |
SIN() | (bir sayının (radyan cinsinden verilen açının) sinüsünü verir) |
TAN() | (bir sayının (radyan cinsinden verilen açının) tanjantını verir) |
STRLEN() | (seçilen metnin kaç karakterden oluştuğu bilgisini verir; türü sayıdır) |
WEEKNUM(,,) | (ilgili tarihin yılın kaçıncı haftası olduğuna dair bilgi getirir) |
ROUNDF(,) | (ondalıklı tutarları yuvarlamak için kullanılır. Virgülden sonra kaç haneye kadar yuvarlama yapılacağını belirtir. (number,frdijits) ) |
STR() | (sayı olarak tanımlanmış alanı metin formatında yazar. Örneğin STR(1234)=1234) |
DATESTR(,) | (verilen tarihi metne çevirerek istenen formatta yazar) |
MONTHSTR(,) | (verilen sayıya karşılık gelen ayı metin olarak yazar) |
WDAYSTR() | (verilen sayıya karşılık gelen günü metin olarak yazar) |
NUMSTR(,,) | (verilen sayıyı metne çevirerek istenen formatta yazar) |
TIMESTR(,) | (verilen saat bilgisini metne çevirerek istenen formatta yazar) |
RESXSTR(,) | Resource klasörü altında bulunan LRF uzantılı dosyalardaki liste numarası (list source) ve bu numaralı listedeki eleman numarasına (tag) karşılık gelen metni getirir. |
RESSTR() | (resource klasörü altında bulunan LRF uzantılı dosyalardaki metinleri getirir) |
CRESSTR(,) | |
SUBSTR(,,) | (seçilen metin alanı istenilen karakterden başlayarak istenilen uzunlukta yazmak için kullanılır) |
UPCASE() | (verilen metni büyük harflerle yazar) |
LOWCASE() | (verilen metni küçük harflerle yazar) |
TRIMSPC(,) | (seçilen metnin başındaki ve/veya sonundaki boşlukları atar) |
JUSTIFY(,,,) | (seçilen metni istenilen uzunlukta yazar. Metinde oluşan boşlukları istenen karakterle doldurur) |
WRNUM(,,) | (bir sayının tamsayı ya da ondalık kısmının belirtilen dilde yazı haline getirir) |
WIN2DOS(,) | |
DATEDIFF(,,) | İki tarih arasındaki saat, gün, ay, yıl gibi zaman farkını verir. |
IF(,,) | (koşul belirterek değer atar. If (p1>1000, 10,5) Yani p1 1000 den büyükse 10, küçükse 5 değerini kullanır) |
CPAR() | (Checkparent üst malzeme sınıflarını filtrelemek için kullanılır) |
FPCLC(,) | (FicheParentCalc üst malzeme sınıflarına göre fiş tutar ve miktarını bulmak için kullanılır) |
FICLC(,) | (FicheItemCalc malzemelere göre fiş tutar, miktar ve satır sayısını bulmak için kullanılır) |
FISCCLC(,,) | (Malzeme özel koduna göre fiş toplam değerini almak için kullanılır.) |
EQLC(,) | (EqualCalc : Kod alanlarının eşitlik olarak tanımlanmasına yarar) |
BTWNDATE(,,) | (Tarih aralığı ile koşul belirlemek için kullanılır) |
FPDISC(,,,) | ("Üst Malzeme Sınıfı Kodu", Order Type, Miktar, Return Type) |
FGDISC(,,,) | ( "Malzeme Grup Kodu", Order Type, Miktar, Return Type) |
FIDISC(,,,) | ("Malzeme (Sınıfı) Kodu", Order Type, Miktar, Return Type) |
FUINFOCLC(,,) | Satırdaki malzemelerin miktar, tutar ve ağırlık gibi seçeneklere göre fiş genel toplamı baz alınarak satırlara kampanya uygular |
_SQLINFO(,,) | (SQLINFO ile koşul belirlemekte kullanılır) |
Promosyon Tipi Kampanyalarda Detay Koşul Belirleme
Mağaza ve satış noktalarının satışlarını artırmak ya da sezon sonu satışları sırasında uyguladıkları kampanyalarda müşterilerine ürüne ya da toplam alışveriş tutarına göre farklı seçenekler sunmaktadır.
Örneğin 3 al 2 öde, farklı fiyatlardaki ürünler için en düşük fiyatlı ürünün bedelsiz verilmesi, alınan ürünün ikincisinin yarı fiyatına verilmesi, iki farklı ürün grubundan yapılan alışverişlerde bir ürünün ücretsiz verilmesi, gibi uygulamalar sıklıkla olmaktadır. Bu tür kampanya koşullarını tanımlamak ve fiş ve faturalarda uygulamak için yeni parametreler eklenmiştir ve perakendecilik sektöründe yaygın olarak kullanılan kampanyaların desteklenmesini sağlanmıştır.
İndirim ve masraf tipi kampanya satırlarında malzeme sınıfı ya da malzeme grubuna bu parametreleri kullanarak istenen koşulların belirlenmesi ve işlemlerde kullanılması uygulama sırasında olabilecek hataların en aza indirgenmesi ve kullanım kolaylığı sağlaması açısından önemlidir.
Kampanyalarda; 3 al 2 öde kampanyası (3 tane ürün alana fiyatı en düşük olan ürünün bedava verilmesi), 2 tane ürün alana 2 nci ürün %50 indirimli – 2 tane aynı üründen alındığı zaman 2 nci ürünü %50 indirimli ödenmesi, 1 tane ürün alan 2 ncisi bedava (Hangi üründen alınırsa alınsın bir tane ürün alana 2 nci ürünün bedava verilmesi) ve benzeri uygulamalarda detay koşul belirlemek için, koşul ve formül alanlarından ulaşılan formül pencerelerinde fonksiyonlar listesinde yer alan FPDISC ("Üst Malzeme Sınıfı Kodu", Order Type, Miktar , Return Type), FGDISC ( "Malzeme Grup Kodu", Order Type, Miktar , Return Type), FIDISC ( "Malzeme (Sınıfı) Kodu", Order Type, Miktar , Return Type) fonksiyonları kullanılır. Kullanım şekli şöyledir:
- FicheParentDisc (FPDISC), fonksiyonda belirtilen malzeme sınıflarına bağlı malzemelerin fiş toplam bilgilerine göre genele indirim veya masraf getirmek için kullanılır.
- FicheGrupDisc (FGDISC), fonksiyonda belirtilen malzeme gruplarının bulunduğu malzemelerin fiş toplam bilgilerine göre genele indirim veya masraf getirmek için kullanılır.
- FicheItemDisc (FIDISC), fonksiyonda belirtilen malzemelerin fiş toplam bilgilerine göre genele indirim veya masraf getirmek için kullanılır. (Malzeme kodu alanında tüm malzemelerin geçerli olması için * karakteri kullanılabilir.)
Order Type:
1: En Düşük
2: En Yüksek
3: Giriş Sırası (Düz)
4: Giriş Sırası (Ters)
Miktar: Fiş içerisindeki uygulanacak miktar bilgisi belirtilmektedir.
P25 - Miktar Toplamı (Satırdaki Birim)
P26 - Miktar Toplamı (Ana Birim)
P40 - Miktar Toplamı (Promosyon Hariç, Satırdaki Birim)
P41- Miktar Toplamı (Promosyon Hariç, Ana Birim)
Return Type:
1: KDV Hariç (Ana Birim)
2: KDV Dahil (Ana Birim)
3: Satır Net tutarı (Ana Birim)
4: KDV Hariç (Satırdaki Birim)
5: KDV Dahil (Satırdaki Birim)
6: Satır Net Tutarı (Satırdaki Birim)
Kampanya Kartında SQLINFO Kullanımı
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 Adı
A
B
C
D
E
Malzeme Sınıfı Kodu
PG
Malzeme Sınıfı Açıklaması
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"))
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.