E-FATURA ,E-ARŞİV ,E-İRSALİYE, E-MUHTAHSİL , E-SMM KAREKOD STANDARDI KILAVUZU

E-Belge lerde yer alması gereken qr-code ların için de bulunması gereken veriler

E-FATURA

Qr-Code Okutulunca Çıkacak Bilgiler Aşağıdaki Gibi Olmalıdır

{"vkntckn":"1111111111",
"avkntckn":"1111111111",
"senaryo":"TEMELFATURA",
"tip":"SATIS",
"tarih":"2022-08-17",
"no":"GIB2022000000001",
"ettn":"04e26a62-7c00-46d0-878c-6f7c60834525",
"parabirimi":"TRY",
"malhizmettoplam":"1000.00",
"kdvmatrah(8)":"1000.00",
"hesaplanankdv(8)":"80.00",
"vergidahil":"1080.00",
"odenecek":"1080.00"}

E-ARŞİV FATURA

{"vkntckn":"1111111111",
"avkntckn":"1111111111",
"senaryo":"EARSIVFATURA",
"tip":"SATIS",
"tarih":"2022-08-17",
"no":"GIB2022000000011",
"ettn":"04e26a62-7c00-45d0-968c-6f7c60834525",
"parabirimi":"TRY",
"malhizmettoplam":"500.00",
"kdvmatrah(8)":"500.00",
"hesaplanankdv (8)":"40.00",
"vergidahil":"540.00",
"odenecek":"540.00"}

E-İRSALİYE

{"vkntckn":"1111111111",
"avkntckn":"1111111111",
"senaryo":"TEMELIRSALIYE",
"tip":"SEVK",
"tarih":"2022-08-17",
"no":"IRS2022000000001",
"ettn":"04e35a51-7c00-45d0-968c-6f7c60834525",
"sevktarihi":"2022-08-17",
"sevkzamani":"09:32:13",
"tasiyicivkn":"1111111111",
"plaka":"06AA0606"}

E-SMM

{"vkntckn":"1111111111",
"avkntckn":"1111111111",
"tarih":"2022-08-17",
"no":"GIB2022000000001",
"ettn":"05e37a73-8c10-46d0-878c-6f7c60834525",
"parabirimi":"TRY",
"brutucret":"1000.00",
"tahsilkdv":"90.00",
"kdvtevkifat":"90.00",
"gvstopaj":"200.00",
"kdvtutari":"180.00",
"netucret":"800.00",
"tahsilat":"890.00"}

E-MM MUHTAHSİL

{"vkntckn":"1111111111",
"avkntckn":"1111111111",
"senaryo":"EARSIVBELGE",
"tip":"MUHTAHSILMAKBUZU",
"tarih":"2022-08-17",
"no":"GIB2022000000001",
"ettn":"04e35a62-7c00-45d0-968c-6f7c60834525",
"parabirimi":"TRY",
"malhizmettoplam":"5000.00",
"gvstopaj":"200.00",
"merafonu":"100.00",
"borsatescilucreti":92.00",
"sgkprimkesintisi":"100.00",
"odenecek":"4508.00"}

e-Sigorta Komisyon Gider Belgesi

{"vkntckn": "1234567890",
"avkntckn": "1234567890",
"senaryo": "EARSIVBELGE",
"tip": "SIGORTAKOMISYONGIDERBELGESI",
"tarih": "2022-03-17",
"no": "GIB2022000000001",
"ettn": "7ef629d7-5fea-4102-86d4-6620c963b071",
"parabirimi": "TRY",
"istihsalkomisyon": "50",
"iptalkomisyon": "40",
"toplamkomisyon": "10" }

e-Döviz ve Kıymetli Maden Alım Satım Belgesi

EDOVIZBELGE Senaryosunda;

{"vkntckn":"1111111111",
"avkntckn":"1111111111",
"senaryo":"EDOVIZBELGE",
"tip":"ALIM",
"tarih":"2022-08-17",
"no":"GIB2022000000001",
"ettn":"04e26a62-7c00-46d0-878c-6f7c60834525",
"miktari(EUR)":"100.00",
"uygulanankur":"18.6543",
"dovizkarsiligi":"98.00",
"tlkarsiligi":"1865.43",
"ödenecek(TRY)":"1865.43"}

EKIYMETLIMADENBELGE Senaryosunda;

{"vkntckn":"1111111111",
"avkntckn":"1111111111",
"senaryo":" EKIYMETLIMADENBELGE",
"tip":"ALIM",
"tarih":"2022-08-17",
"no":"GIB2022000000001",
"ettn":"04e26a62-7c00-46d0-878c-6f7c60834525",
"miktari(22C_XAU)":"5",
"birimfiyat":" 1754.38596",
"ödenecek(TRY)":"8775.00"}

e-Adisyon Belgesi

{"vkntckn":"1111111111",
"avkntckn":"1111111111",
"senaryo":"EARSIVBELGE",
"tip":"ADISYON",
"tarih":"2022-08-17",
"no":"GIB2022000000001",
"ettn":"04e26a62-7c00-46d0-878c-6f7c60834525",
"ödenecek(TRY)":"1080.00"}

üsteki bağlantıdan bakanlığın yayınladığı klavuzu indirebilirsiniz

E-Fatura Xslt Belirli bir yere kadar yazıyı alma Substring

Xslt bazen gelen verinin bir bölümünü almanız gerekir bu tarz durumlarda substring function ununu kullanırız biz irsaliyeden gelen notlar alanın belirli alanları alacağımız örnek aşağıdadır

<xsl:for-each select="//n1:DespatchAdvice/cbc:Note[3]">									 
	<xsl:value-of select="substring-before(substring(.,0,21),'#')"/>	
</xsl:for-each>	</td>

Burada Not3 alanında gelen verilerin # işaretinden önce ilk karaterden başlayıp 21 inci karaktere kadar almasını sağladım

<xsl:for-each select="//n1:DespatchAdvice/cbc:Note[3]">									 
				<xsl:value-of select="substring-before(substring(.,43,21),'#')"/>	
</xsl:for-each>	</td>

Burada Not3 alanında gelen verilerin # işaretinden önce 43 üncü karakterden başlayıp sonra 21 karaktere kadar almasını sağladım

E-Fatura QR Code Ekleme

E-Fatura xlst template dosyamıza qr code ekleyebiliriz. Bunun için bir web api yada base64 e çevrilmiş bir qrcode resmi kullanmamız gerekir

Gösteceğim örnek dinamik gelen bir qrcode verisini web api kullanarak qrcode u base64 olarak alıp e-fatura dosyasında göstereceğiz .

	<img>
		  <xsl:attribute name="src"> https://api.qrserver.com/v1/create-qr-code/?data=https://www.ahmetaydinlik.com&amp;size=150x150</xsl:attribute>
		  <xsl:attribute name="height">150</xsl:attribute>
		  <xsl:attribute name="width">150</xsl:attribute>
	</img>

xsl:attribute komutu ile image nesnemin özelliklerini atıyorum.

eğer burada dinamik bir veri dönüştürmek isteseydik src verimizin içeriğini değiştirirek api serverdaki data parametresine dinamik verimizi eklersek istediğimiz veriyi bize 150px boyutunda bir qrcode oluşturur

ekran görüntüsü

aşağıdaki komut ile örneğe bakabilirsiniz


<img>
     <xsl:attribute name="src"> https://api.qrserver.com/v1/create-qr-code/?data=<xsl:for-each select="//n1:DespatchAdvice/cbc:Note[2]"><xsl:value-of select="."/></xsl:for-each>&amp;size=150x150</xsl:attribute>
	 <xsl:attribute name="height">150</xsl:attribute>
	 <xsl:attribute name="width">150</xsl:attribute>
</img>


Burada e-fatura xml dosyasında gelen not 2 deki veriyi qrcode a yerleştirdik

E-Fatura Not Alanından Veri Alma

E-Fatura xslt template dosyasında not alanlarına yazılmış olan notlardan belirli karakterler arasında veri almak için aşağıdaki komutu kullanabiliriz

     <xsl:for-each select="//n1:DespatchAdvice/cbc:Note[3]">									 
	      <xsl:value-of select="substring-before(substring(.,0,21),'#')"/>	
	 </xsl:for-each>


Yukarıda yazılı olan substring-before komutu ile not alanında gelen kelimin 0 ıncı karakterinden başyalıp 21 inci karaktere kadar yazmasını istedik

E-Fatura Banka Bilgileri Ekleme

E-fatura xml template bölümünde id=”notesTable” alanının altına eklediğiniz de notlar alanında gözükecektir

<br>
<table width="770" align="left" height="80">
	<tbody>
		<tr align="left">
			<td id="notesTableTd" style="width:3%">
				<span style="font-weight:bold;">
					<xsl:text>BANKA -1</xsl:text><br>
					<xsl:text>BANKA -2</xsl:text><br>					 
				</span>
			</td>
			
			<td id="notesTableTd" style="width:3%">
				<span style="font-weight:bold; ">
					<xsl:text>BANKA1-ŞUBE</xsl:text><br>
					<xsl:text>BANKA2-ŞUBE</xsl:text><br>				 
				</span>
			</td>
			
			<td id="notesTableTd" style="width:1%">
				<span>			 
					<xsl:text>TL Hesabı</xsl:text><br>
					<xsl:text>TL Hesabı</xsl:text><br>														
				</span>
			</td>
			
			<td id="notesTableTd" style="width:7%">
				<span style="font-weight:bold;">
					<xsl:text>BANKA-1 IBAN</xsl:text><br>
					<xsl:text>BANKA-2 IBAN</xsl:text><br>						 
				</span>
			</td>
		</tr>
	</tbody>
</table>

BANKA -1
BANKA -2
BANKA1-ŞUBE
BANKA2-ŞUBE
TL Hesabı
TL Hesabı
BANKA-1 IBAN
BANKA-2 IBAN

E-Fatura Teslim Alan Teslim Eden Ekleme

E-fatura xml template bölümünde id=”notesTable” alanının altına eklediğiniz de notlar alanında gözükecektir

 
	<table border="1"  width="100%"  height="150">
		<tbody>
			<tr>
				<td width="50%" align="center" height="20" >
					<b>Teslim Alan</b>
				</td>
				
				<td width="50%" align="center" height="20">
					<b>Teslim Eden</b>
				</td>
			</tr>
			<tr>
				<td width="50%" align="center" ></td>
				<td width="50%" align="center"></td>
			</tr>
		</tbody>
 </table>
Teslim Alan Teslim Eden