DİA Yetkili İş Ortağı

DİA E-Fatura Tasarım Değişikliği: Kapsamlı XSLT Rehberi

DİA e-Fatura XSLT tasarımlarında firma bilgisi, logo, kaşe-imza, banka, kolon, seri-lot, iskonto, adres ve alt toplam düzenlemelerini 92 ekran görüntüsüyle inceleyin.

DİA AKADEMİE-Devlet ve E-Belge

DİA E-Fatura Tasarım Değişikliği: Kapsamlı XSLT Rehberi

DİA e-Fatura XSLT tasarımlarında firma bilgisi, logo, kaşe-imza, banka, kolon, seri-lot, iskonto, adres ve alt toplam düzenlemelerini 92 ekran görüntüsüyle inceleyin.

Tüm içeriklere dön

DİA e-Fatura ve e-Arşiv tasarımları XSLT yapısındadır. Firma bilgileri, logo, kaşe-imza, banka alanları, ürün kolonları, seri-lot, iskonto, adres ve alt toplam gibi bölümler uygun bir kod düzenleyiciyle değiştirilebilir. Bu kapsamlı rehber, kaynak dokümandaki bütün işlem başlıklarını ve 92 ekran görüntüsünü bir araya getirir.

Önemli: XSLT dosyanızın değişiklik öncesi yedeğini alın. Etiketlerin eksik kapatılması tasarımın çalışmamasına neden olabilir. Düzenleme için Atom, Visual Studio Code veya Notepad++ gibi bir kod düzenleyici kullanabilirsiniz.

1. Firma genel bilgileri

Unvan, vergi numarası, adres, telefon, internet sitesi, e-posta ve faks gibi alanlar DİA firma kartından gelir. Bu bilgiler değiştiğinde önce Firmalar ekranındaki ilgili firma kartını güncelleyin; tasarım, güncel kart bilgilerini kullanacaktır.

D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 1
Tasar?m d?zenleme ad?m? 1

MERSİS ve ticaret sicil numarası

XSLT dosyasında Ctrl+F ile “mersis” veya “sicil” ifadelerini arayın. İlgili sabit metnin yanındaki değeri şirket bilgilerinizle değiştirip dosyayı kaydedin.

D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 2
Tasar?m d?zenleme ad?m? 2
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 3
Tasar?m d?zenleme ad?m? 3
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 4
Tasar?m d?zenleme ad?m? 4
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 5
Tasar?m d?zenleme ad?m? 5

2. Firma logosunu değiştirme

Logoyu JPG veya PNG biçiminde hazırlayın; genişliğin yaklaşık 260 pikseli aşmaması önerilir. Görseli Base64 biçimine dönüştürdükten sonra XSLT içinde img araması yapın. İlk görsel DİA/e-Fatura logosu olduğundan değiştirilmemeli; firma logosuna ait ikinci img etiketindeki src değeri yeni Base64 verisiyle değiştirilmelidir.

D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 6
Tasar?m d?zenleme ad?m? 6
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 7
Tasar?m d?zenleme ad?m? 7
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 8
Tasar?m d?zenleme ad?m? 8
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 9
Tasar?m d?zenleme ad?m? 9
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 10
Tasar?m d?zenleme ad?m? 10

Kaşe ve imza görseli ekleme

Kaşe-imza görselini yaklaşık 150–200 piksel ölçüsünde hazırlayıp Base64 değerine dönüştürün. Tasarımda uygun tablo satırına bir hücre ve görsel etiketi ekleyin:

<td width="25%">
  <img style="margin-top:20px" align="middle"
       alt="Firma İmzası" src="BASE64_DEĞERİ"/>
</td>
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 11
Tasar?m d?zenleme ad?m? 11
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 12
Tasar?m d?zenleme ad?m? 12
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 13
Tasar?m d?zenleme ad?m? 13
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 14
Tasar?m d?zenleme ad?m? 14

3. Banka bilgileri

XSLT içinde “banka” ifadesini arayın. Üst bölümde banka alanlarının başlıkları, alt bölümde bunların değerleri bulunur. Kullanılmayacak bir alan <td></td> olarak boş bırakılabilir. Mevcut bilgiyi değiştirmek için değer satırını düzenleyin; yeni hesap adı, IBAN, şube kodu, şube adı veya hesap numarası için hem başlık hem karşılık hücresi ekleyin. Silme işleminde iki bölümdeki ilgili hücreleri birlikte kaldırın.

D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 15
Tasar?m d?zenleme ad?m? 15
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 16
Tasar?m d?zenleme ad?m? 16
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 17
Tasar?m d?zenleme ad?m? 17
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 18
Tasar?m d?zenleme ad?m? 18
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 19
Tasar?m d?zenleme ad?m? 19
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 20
Tasar?m d?zenleme ad?m? 20
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 21
Tasar?m d?zenleme ad?m? 21
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 22
Tasar?m d?zenleme ad?m? 22
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 23
Tasar?m d?zenleme ad?m? 23
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 24
Tasar?m d?zenleme ad?m? 24
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 25
Tasar?m d?zenleme ad?m? 25
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 26
Tasar?m d?zenleme ad?m? 26

4. Fatura satır kolonları

Kolon ekleme

Önce BAŞLIKLAR bölümüne kolon başlığını, sonra SATIR DEĞERLERİ bölümünde aynı sıraya veriyi getirecek hücreyi ekleyin. Örnek açıklama kolonu:

<td id="lineTableTd" style="width:18%" align="center">
  <span style="font-weight:bold;"><xsl:text>Açıklama</xsl:text></span>
</td>
<td id="lineTableTd">
  <xsl:value-of select="./cac:Item/cbc:BrandName"/>
</td>

efa.02.01efa.02.07 sistem parametrelerinde tanımlanan değerler de fatura kalemlerine taşınabilir.

Kolon silme, genişlik ve ondalık hassasiyet

Kolon silerken hem başlık hücresini hem satır değerini kaldırın. Kolon genişliği width yüzdesiyle ayarlanır. Birim fiyat ve miktar hane sayısı, format-number deseninde virgülden sonraki sıfırlar artırılıp azaltılarak değiştirilir.

<xsl:value-of select="format-number(./cac:Price/cbc:PriceAmount, '###.##0,0000', 'european')"/>
<xsl:value-of select="format-number(./cbc:InvoicedQuantity, '###.##0,000', 'european')"/>
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 27
Tasar?m d?zenleme ad?m? 27
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 28
Tasar?m d?zenleme ad?m? 28
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 29
Tasar?m d?zenleme ad?m? 29
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 30
Tasar?m d?zenleme ad?m? 30
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 31
Tasar?m d?zenleme ad?m? 31
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 32
Tasar?m d?zenleme ad?m? 32
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 33
Tasar?m d?zenleme ad?m? 33
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 34
Tasar?m d?zenleme ad?m? 34
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 35
Tasar?m d?zenleme ad?m? 35
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 36
Tasar?m d?zenleme ad?m? 36
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 37
Tasar?m d?zenleme ad?m? 37
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 38
Tasar?m d?zenleme ad?m? 38
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 39
Tasar?m d?zenleme ad?m? 39
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 40
Tasar?m d?zenleme ad?m? 40
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 41
Tasar?m d?zenleme ad?m? 41
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 42
Tasar?m d?zenleme ad?m? 42
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 43
Tasar?m d?zenleme ad?m? 43
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 44
Tasar?m d?zenleme ad?m? 44
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 45
Tasar?m d?zenleme ad?m? 45

5. Seri, lot, varyant ve ürün bilgileri

Seri ve lot numaraları ItemInstance içinden; varyant değeri AdditionalItemProperty içinden okunur. İlgili satır hücresine aşağıdaki yollar eklenebilir:

<xsl:for-each select="./cac:Item/cac:ItemInstance/cbc:SerialID">
  <xsl:value-of select="."/><br/>
</xsl:for-each>
<xsl:for-each select="./cac:Item/cac:ItemInstance/cac:LotIdentification/cbc:LotNumberID">
  <xsl:value-of select="."/><br/>
</xsl:for-each>
<xsl:for-each select="./cac:Item/cac:ItemInstance/cac:AdditionalItemProperty[cbc:ID='Varyant']/cbc:Value">
  <xsl:value-of select="."/>
</xsl:for-each>

GTİP, menşei ve son birim fiyat

Başlık hücresi oluşturulduktan sonra GTİP için CommodityClassification/ItemClassificationCode, menşei için OriginCountry/Name kullanılır. Son birim fiyat veya benzeri özel değerler, fatura notlarındaki belirleyici ön eklerden okunabilir.

<xsl:value-of select="./cac:Item/cac:CommodityClassification/cbc:ItemClassificationCode"/>
<xsl:value-of select="./cac:Item/cac:OriginCountry/cbc:Name"/>

İskonto kolonları

İskonto-1’den İskonto-5’e kadar her değer için başlık ve satır hücresi eklenir. Sistem parametresi/not içindeki iskor1, iskor2 gibi ön ekler starts-with ile bulunup substring ile görüntülenir.

D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 46
Tasar?m d?zenleme ad?m? 46
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 47
Tasar?m d?zenleme ad?m? 47
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 48
Tasar?m d?zenleme ad?m? 48
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 49
Tasar?m d?zenleme ad?m? 49
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 50
Tasar?m d?zenleme ad?m? 50
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 51
Tasar?m d?zenleme ad?m? 51
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 52
Tasar?m d?zenleme ad?m? 52
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 53
Tasar?m d?zenleme ad?m? 53
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 54
Tasar?m d?zenleme ad?m? 54
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 55
Tasar?m d?zenleme ad?m? 55
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 56
Tasar?m d?zenleme ad?m? 56
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 57
Tasar?m d?zenleme ad?m? 57
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 58
Tasar?m d?zenleme ad?m? 58
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 59
Tasar?m d?zenleme ad?m? 59
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 60
Tasar?m d?zenleme ad?m? 60
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 61
Tasar?m d?zenleme ad?m? 61
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 62
Tasar?m d?zenleme ad?m? 62
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 63
Tasar?m d?zenleme ad?m? 63

6. Alt toplam, kalem notları ve özel tutarlar

Dövizli tasarımda alt toplamlardaki TL değerleri

Önce efa.01.07 “Dövizli olarak e-Fatura oluşturulsun mu?” parametresini etkinleştirin. Ardından XSLT alt toplam bölümünde TL karşılıklarını oluşturan satırları bulun ve yalnızca kaldırmak istediğiniz alanları silin.

D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 64
Tasar?m d?zenleme ad?m? 64
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 65
Tasar?m d?zenleme ad?m? 65
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 66
Tasar?m d?zenleme ad?m? 66

Fatura kalemi not bilgileri

efa.02.08efa.02.13 parametrelerinden birine not1:[note] veya not2:[note2] ekleyin. Tasarımda ilgili kolonları açtıktan sonra notları ön eklerine göre okuyun:

<xsl:for-each select="./cbc:Note">
  <xsl:if test="starts-with(., 'not1:')">
    <xsl:value-of select="substring(., 6)"/>
  </xsl:if>
</xsl:for-each>
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 67
Tasar?m d?zenleme ad?m? 67
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 68
Tasar?m d?zenleme ad?m? 68
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 69
Tasar?m d?zenleme ad?m? 69

İndirimsiz mal/hizmet tutarı

Kalem iskontosu uygulandığında indirimsiz tutarı göstermek için parametreye ttr:[tutari] ekleyin. SATIR DEĞERLERİ bölümündeki mevcut LineExtensionAmount hücresi yerine ttr: notunu okuyan hücreyi kullanın.

D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 70
Tasar?m d?zenleme ad?m? 70
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 71
Tasar?m d?zenleme ad?m? 71

Sipariş fiş numarası

Parametre değerine sipfisno:[siparisfisno] ekleyin. BAŞLIKLAR bölümünde “Sipariş Fiş No” kolonu açın; satır değerinde sipfisno: ön ekli notu okuyun.

D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 72
Tasar?m d?zenleme ad?m? 72
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 73
Tasar?m d?zenleme ad?m? 73
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 74
Tasar?m d?zenleme ad?m? 74

7. Adres ve cari açıklama alanları

Cari karttaki fatura adresi ile belgedeki sevk adresini birlikte göstermek için efa.01.12 değerini “Cari Ana Adresi” olarak ayarlayın. Firma unvanı bloğunun altına AccountingCustomerParty içindeki AgentParty/PostalAddress ve PostalAddress yollarını kullanan iki adres satırı ekleyin.

D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 75
Tasar?m d?zenleme ad?m? 75
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 76
Tasar?m d?zenleme ad?m? 76

Cari kısa açıklaması

efa.01.01efa.01.06 parametrelerinden birine kisa:[carikisaaciklama] ekleyin. XSLT’de kisa: ile başlayan notu okuyarak uygun satırda gösterin.

<xsl:for-each select="./cbc:Note">
  <xsl:if test="starts-with(., 'kisa:')">
    <xsl:value-of select="substring(., 6)"/>
  </xsl:if>
</xsl:for-each>
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 77
Tasar?m d?zenleme ad?m? 77
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 78
Tasar?m d?zenleme ad?m? 78
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 79
Tasar?m d?zenleme ad?m? 79

Not alanındaki istenmeyen değerleri gizleme

Parametre notları başka bir alana taşındıysa footer/not bölümünde tekrar görünmesini engellemek için dışlanacak ön ekleri koşula ekleyin:

<xsl:for-each select="//n1:Invoice/cbc:Note">
  <xsl:if test="not(starts-with(., 'deger1') or starts-with(., 'deger2'))">
    <xsl:value-of select="."/><br/>
  </xsl:if>
</xsl:for-each>

8. Ara toplam ve konaklama vergisi

Mal/hizmet toplamından iskonto toplamını düşen bir “Ara Toplam” satırı, toplam iskonto satırının kapanışından sonra eklenebilir. Dövizli belgelerde para birimi koşulu ayrıca korunmalıdır.

D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 80
Tasar?m d?zenleme ad?m? 80
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 81
Tasar?m d?zenleme ad?m? 81
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 82
Tasar?m d?zenleme ad?m? 82

Konaklama vergisi alt toplamlarının düzenlenmesi

Mevcut tasarımı XML olarak kaydedip XSLT dosyasını açın. “Hesaplanan Toplam” bloğunu bulun, başlığı “Hesaplanan Toplam KDV” olarak değiştirin, kaynak dokümanda gösterilen eski satırları kaldırın ve vergi türü 0015 dışındaki vergileri hesaplayan yeni döngüyü ekleyin. Dosya kaydedildikten sonra tekrar DİA’ya yüklenebilir.

D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 83
Tasar?m d?zenleme ad?m? 83
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 84
Tasar?m d?zenleme ad?m? 84
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 85
Tasar?m d?zenleme ad?m? 85
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 86
Tasar?m d?zenleme ad?m? 86
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 87
Tasar?m d?zenleme ad?m? 87

9. Stokların diğer birimini ekleme

Kalemlerde stok kartının ikinci birim adı ve miktarı gösterilebilir. Önce “Miktar2” başlığını ekleyin; ardından Miktar1: ve Birim1: ön ekli notları okuyacak satır hücresini oluşturun.

<td id="lineTableTd" align="right">
  <xsl:for-each select="./cbc:Note">
    <xsl:if test="starts-with(., 'Miktar1:')">
      <xsl:value-of select="substring(., 10, string-length(.) - 12)"/>
    </xsl:if>
  </xsl:for-each>
  <xsl:text>&#160;</xsl:text>
  <xsl:for-each select="./cbc:Note">
    <xsl:if test="starts-with(., 'Birim1:')">
      <xsl:value-of select="substring(., 9)"/>
    </xsl:if>
  </xsl:for-each>
</td>
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 88
Tasar?m d?zenleme ad?m? 88
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 89
Tasar?m d?zenleme ad?m? 89
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 90
Tasar?m d?zenleme ad?m? 90
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 91
Tasar?m d?zenleme ad?m? 91
D?A e-Fatura tasar?m de?i?ikli?i ekran g?r?nt?s? 92
Tasar?m d?zenleme ad?m? 92

Kaynak ve teknik referans: DİA Akademi – E-Fatura Tasarım Değişikliği

MANAVGAT YEREL DESTEK

Sorularınız için bize ulaşın

DİA kullanımı, eğitim ve destek ihtiyaçlarınız için ekibimizle doğrudan iletişime geçebilirsiniz.