Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

MIN(,)

(Takes the minimum parameter/constant into the parenthesis)

MAX(,)

(Takes the maximum parameter/constant into the parenthesis)

MOD(,)

(Divides the higher valued parameter/constant into the lower valued one and takes the remainder)

DIV(,)

(Divides the first parameter/constant to the second and writes the result)

ABS()

(Takes the absolute value of the parameter/constant)

VAL( )

(Converts the string within the parenthesis into a numeric value)

DATE(,,)

(Converts date format according to day, month and year info)

AFTER(,)

(Gives the attained date after given number of days)

DAYS(,)

(Gives number of days between two dates)

DAYOF()

(Gives date of the day)

MONTHOF()

(Gives the current month)

YEAROF()

(Gives the current year)

WDAYOF()

(Gives the date that shows which day of the week is the given date)

ROUND( )

(Rounds the parameter/constant upwards if its decimal point is bigger than 0,5 and downwards if not)

TRUNC( )

(Eliminates the decimal characters if the parameter/constant within parenthesis is decimal)

ERATE(,)

((Brings the f. currency exchange rate for a specific date. ex: ERATE(DATE(05,05,2002),20)

CRATE(,,,)

(Multiplies the amount in f. currency with cross rate)

STRPOS(,)

(Returns the position of the first occurrence of a string inside another string)

FLOOR( )

(Rounds the decimal parameter/constant downwards)

CEIL( )

(Rounds the decimal parameter/constant upwards)

FRAC( )

(Takes the decimal value of the parameter/constant)

EXP()

(Returns the value of e (the base of natural logarithms) raised to the power of X The inverse of this function is LOG using a single argument only) or LN())

LN()

(It is logarithm function. According to "e" base it transforms logarithm function result to the nearest integer)

POWER(,)

(Gives specified power of a number. For example POWER(9,2)=81 (92) )

SQR()

Gives the square of a number)

SQRT()

(Gives the square root of a number. For example; SQRT(81)=9)

COS()

(Gives the cosine of a number (given as radiant))

SIN()

(Gives sine of a number(given as radiant))

TAN()

(Gives tangent of a number (given as radiant))

STRLEN()

(Gives the total number of characters of selected text; its type is number)

WEEKNUM(,,)

(Gives the week number of the related year)

ROUNDF(,)

(Used to round the decimal amount. (number,frdijits))

STR()

(Writes field defined as numbers in text format. For Example STR(1234)=1234)

DATESTR(,)

(Transforms the given date and writes it in demanded format)

MONTHSTR(,)

(Writes the month of the given number as text)

WDAYSTR()

(Writes the day of the given number as text)

NUMSTR(,,)

(Transforms the given number to text and writes in demanded form)

TIMESTR(,)

(Transforms the given hour to text and writes in demanded form)

RESXSTR(,)

(Brings the string corresponding to the related tag and list source at the LRF extended files of resource)

RESSTR()

(Brings the texts in LRF extended files of resource folder)

CRESSTR(,)

SUBSTR(,,)

(Used to write the selected text in a definite length by starting from a definite character)

UPCASE()

(Writes the text with capital letters)

LOWCASE()

(Writes the text with lower cases)

TRIMSPC(,)

(Deletes the spaces at the beginning and/or at the end of the selected text)

JUSTIFY(,,,)

(Writes the selected text in demanded length. Fills the spaces with demanded characters in text)

WRNUM(,,)

(Transforms a number's integer or decimal digits to writing form in specified language)

WIN2DOS(,)

DATEDIFF(,,)

Returns the count (signed integer) of the specified date part boundaries crossed between the specified start date and end date.

IF(,,)

(Specifies values by defining conditions. When "If (p1>1000, 10,5)" is typed, if p1 is bigger than 1000 the value is used as 10; otherwise as 5)

CPAR()

(Checkparent: Used to filter the parent material classes)

FPCLC(,)

(FicheParentCalc: Used to find out the Slip Amount and quantity according to the parent material class)

FICLC(,)

(FicheItemCalc: Used to find out the slip amount and quantity according to materials)

FISCCLC(,,)

(Used to take slip total value according to material aux. code)

EQLC(,)

(EqualCalc: Used to define the code fields as equalities)

BTWNDATE(,,)

(Used to define condition with date range)

FPDISC(,,,)

("Parent Material Class Code)", Order Type, Quantity, Return Type)

FGDISC(,,,)

("Material Group Code", Order Type, Quantity, Return Type)

FIDISC(,,,)

("Material (Class) Code", Order Type, Quantity, Return Type)

FUINFOCLC(,,)

_SQLINFO(,,)

(Used to define condition by SQLINFO)

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 uygulamaarda 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.