Ilaç ve Tıbbi Cihaz Faturası - Fatura Özelleştirme - DSL Kural Motoru
İlaç ve Tıbbı Cihaz Faturası
e-Fatura uygulamasına dahil olan ve ilaç ve tıbbi cihaz ticareti gerçekleştiren mükellefler bu kapsamda düzenleyecekleri e-Faturalarda “ILAC_TIBBICIHAZ” fatura senaryosunu kullanacaklardır.
e-Fatura uygulamasında “ILAC_TIBBICIHAZ” fatura senaryosu altında “SATIS”, “ISTISNA” “TEVKIFAT”, “TEVKIFATIADE”, “IADE” ve “IHRACKAYITLI” fatura tiplerinden biri seçilerek elektronik fatura düzenlenebilecektir.
Mükellefler, İlaç Takip Sistemi (İTS) ve Ürün Takip Sistemi (ÜTS) üzerinden bildirimi yapılan ürünler dışında ürün ya da hizmetleri de aynı faturada gösterebileceklerdir.
Kesilen faturaların senaryosu ILAC_TIBBICIHAZ olmalıdır.
Fatura satırları için ilaç tıbbi cihaz faturalarına özel istenilen bilgiler;
- İlaç satışında;
İlaçlarda bulunan GTIN (Küresel Ticari Ürün Numarası), Parti Numarası – (Batch Number), Sıra Numarası – SN (Serial Number), Son Kullanma Tarihi – (Expiration Date) bilgileri yazılmalıdır.
Bilgilerin okunacağı alanlar kullanımdan kullanıma değişmekte olduğu için ve son kullanım tarihi gibi alanların fatura satırında yer almamasından dolayı eşleştirme tanımı yapılarak yada event makro yazılarak ilgili alanların hesaplatılması gerekmektedir.
DSL parser kullanılarak istenilen hesaplamalar makro yazmadan yapılabilmektedir. Altta örnek bir DSL Parser yer almaktadır. (Resim 1) Firmanın ihtiyacına göre alanlar özelleştirebilir.

Resim 1
Üstteki parser incelendiğinde, GİB’in talep ettiği formatta bilgileri yazan bir parser olduğu görülmektedir. Resim 1’de gösterilen parser, ilgili alana (GTIN)1234567890(BN)123456(SN)123456(XD)260601 formatında çıktı üretmektedir.
- Tıbbi cihaz satışında;
Tıbbi cihazlarda bulunan UNO (Ürün Numarası), LNO (Lot/Batch Numarası), SNO (Seri/Sıra Numarası), URT (Üretim Tarihi) bilgileri yazılmalıdır. Sadece parti bilgisi bulunan tıbbi cihazlar için ise SNO bilgisi girilmeyecektir.
Bilgilerin okunacağı alanlar kullanımdan kullanıma değişmekte olduğu için ve son kullanım tarihi gibi alanların fatura satırında yer almamasından dolayı eşleştirme tanımı yapılarak yada event makro yazılarak ilgili alanların hesaplatılması gerekmektedir.
DSL Kural Motoru kullanılarak istenilen hesaplamalar makro yazmadan yapılabilmektedir.
Aağıda örnek bir DSL Parser yer almaktadır. Firmanızın ihtiyacına göre alanları özelleştirebilirsiniz.

Resim 2
Örnek Kural Motoru incelediğimizde GİB’in istediği formatta bilgileri yazacak bir parser görüyoruz. Örnekte gösterilen parser, ilgili alana; İlgili alana (GTIN)1234567890(BN)123456(URT)260601 formatında çıktı üretiyor.
DSL kural motorunun nasıl tanımlandığı dokümanın devamında anlatılmaktdır.
Not : İlaç Takip Sistemi (İTS) ve Ürün Takip Sistemi (ÜTS) üzerinden bildirimi yapılan ürünler dışında ürün ya da hizmetlerin aynı faturaya eklenmesi durumunda örnekteki gibi yapıda ürün ek bilgisi iletilmelidir. (Resim 3)

Resim 3
DSL Kural Motoru Nasıl Tanımı
DLS Kural Motoru. fatura satırı ve alt tablolarında kullanılabilen özelleştirme tanımıdır. Örneğin e-Fatura’da Mal Hizmet Adının stok kartı adından değil de farklı yöntemle hesaplanması gibi özelleştirmeler için kullanılabilinir. TABLEE uygulamasından tanımlanır.
TABLEE (Dış Entegrasyon İçin Çapraz Kodlama Tanımları ) uygulamasında “e-Belge Özelleştirme Tanımları” sekmesinde tanımlamalar yapılır ve tanımlamalarda kriter verilmesi mümkündür.
Stok Kodu, Stok Grup Kodu, Cari Hesap Kodu, Cari Hesap Grup Kodu kriterleri verilebilmesi mümkündür.
TABLEET3.OPERATION_1 alanından STPARSER seçilir.
TABLEET3.PARSERTEXT_1 alanından hesaplama formülü girilir. Formatı ;
TABLOADI
{ ALANADI=TE("ILAC")
ALANADI=TE("(GTIN)")+FIELD(STOK00.EANKODU)+TE("(BN)")+FIELD(STOK70T.LOTNUMBER)+ TE("(SN)")+FIELD(STOK70T.SERINO)+TE("(XD)")+FIELD(STOK70T.SF_VRI_NUM1)
}
Yukarıdaki formül kullanılabilir özellikler.
- TE = Düz metin anlamına gelir. (“”) içinde yazılmış değeri ilgili alana basar.
- FIELD = Hesaplama alanıdır. Farklı tablolardan hesaplanarak veri getirmek için kullanılabilir.
Kullanılabilir tablolar;
- STOK00 = İlgili stok kartındaki tüm özelliklere erişilebilir.
- CARI00 = Müşteri cari hesap kodundaki tüm bilgilere erişilebilir.
- STOK70E = Fatura Belge Bilgileri tüm alanlar kullanılabilir
- STOK70EF = Fatura Belge Bilgileri tüm alanlar kullanılabilir
- STOK70EF2 = Fatura Belge Bilgileri tüm alanlar kullanılabilir
- STOK70T = Fatura Satırı tüm alanları kullanılabilir.
- UBLINV1T = Hesaplanmış e-Fatura satırı kullanılabilir.
Örnek tanımlamalar;
- UBLINV1TAI{ ADDITIONAL_ITEM_SCHEMEID=TE("ILAC")
ADDITIONAL_ITEM_ID=TE("(GTIN)")+FIELD(STOK00.EANKODU)+TE("(BN)")+FIELD(STO K70T.LOTNUMBER)+TE("(SN)")+FIELD(STOK70T.SERINO)+TE("(XD)")+FIELD(STOK70T.S F_VRI_NUM1)
}
UBLINV1TAI tablosuna satır ekler. ADDITIONAL_ITEM_SCHEMEID alanına sabit olarak ILAC yazar.
ADDITIONAL_ITEM_ID alanına (GTIN)1234567890(BN)11111(SN)22222(XD)260606
- UBLINV1TAI{ ADDITIONAL_ITEM_SCHEMEID=TE("ILAC")
ADDITIONAL_ITEM_ID=TE("(GTIN)")+FIELD(STOK00.EANKODU)+TE("(BN)")+FIELD(STO K70T.LOTNUMBER)+TE("(SN)")+FIELD(STOK70T.SERINO)+TE("(XD)")+FIELD(STOK70T.S F_VRI_NUM1)
} UBLINV1TAI{
ADDITIONAL_ITEM_SCHEMEID=TE("ILAC") ADDITIONAL_ITEM_ID=TE("(GTIN)")+FIELD(STOK00.EANKODU)+TE("(BN)")+FIELD(STO K70T.LOTNUMBER)+TE("(SN)")+FIELD(STOK70T.SERINO)+TE("(XD)")+FIELD(STOK70T.S F_VRI_NUM1)
}
UBLINV1TAI tablosuna 2 satır ekler. ADDITIONAL_ITEM_SCHEMEID alanına sabit olarak ILAC yazar.
ADDITIONAL_ITEM_ID alanına (GTIN)1234567890(BN)11111(SN)22222(XD)260606
- UBLINV1TAI{ ADDITIONAL_ITEM_SCHEMEID=TE("ILAC")
ADDITIONAL_ITEM_ID=TE("(GTIN)")+FIELD(STOK00.EANKODU)+TE("(BN)")+FIELD(STO K70T.LOTNUMBER)+TE("(SN)")+FIELD(STOK70T.SERINO)+TE("(XD)")+FIELD(STOK70T.S F_VRI_NUM1)
} UBLINV1T{
ITM_NAME= FIELD(STOK70T.ACIKLAMA)
}
UBLINV1TAI tablosuna satır ekler. ADDITIONAL_ITEM_SCHEMEID alanına sabit olarak ILAC yazar.
ADDITIONAL_ITEM_ID alanına (GTIN)1234567890(BN)11111(SN)22222(XD)260606
UBLINV1T tablosunda ITM_NAME alanına fatura satırındaki açıklama değerini yazar.
Örnek görsel aşağıdaki gibidir:

NOT: DSL Kural Motoru tanımı için Danışmanınızdan ya da Destek Merkezimizden destek alabilirsiniz.