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ç)

P82Satı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ı

P87Satır İndirim Tutarı
P88Satı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)

P84Satır Brüt Ağırlığı (Satırdaki Birim) 
P85Satır Brüt Ağırlığı (Ana Birim)

P75

Birim Fiyat (Satırdaki Birim)

P76

Birim Fiyat (Ana Birim)

P90Fiş İş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)

P86Satı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

P136Fiş 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

P133Varyant Kodu
P134Satış Elemanı Kodu
P135Satır Satış Elemanı Kodu
P89Temin / 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.