Stok kalemlerinin belirli alanlara göre kümüle edilip kümüle edilmiş şekilde e-Belgeler üzerinde görüntülenmesi ve basılabilmesi için XSLT editör üzerinde gruplama özelliği kullanılır.
Belgedeki stok kalemlerinin; stok kodlarına, stok isimlerine, stokların grup kodlarına, diğer kod 1/2/3/4/5 kodlarına, stokların GTIP' lerine (Gümrük Tarife Kodu), belgede kalem bazında girilen ekalanlara veya farklı alanlara göre kümüle edilerek e-Belge üzerinde görüntülenmesi ve basılabilmesi sağlanır.
!! XSLT editör üzerinde yapılan kümülasyon sonrasında e-Belge görüntüsünde yapılan kümülasyon görüntülenirken, XML içerisine yapılan kümülasyon yansımaz. Belge kalemleri kümüle edilmeden XML içinde gösterilir.
tanımlamalar nelerdir?
eşleştirilmesi
Dizayn içerisinde kümülasyon yapılacak alan, dizayn alan numarası seçilerek veya sql desteği kullanılarak tanımlanır.
Tanımlanan bu dizayn satırı, e-Devlet XML Tag alanında XSLT dosyasında stok kalemleri kısmında kullanılmamış ve boşta olan InvoiceLine taglerinden biri ile eşleştirilir.
Gruplamada kullanılabilecek e-Devlet XML tagleri, InvoiceLine-Brandname, InvoiceLine- BuyersItemIdentification, InvoiceLine-SellersItemIdentification, InvoiceLine-Description, InvoiceLine-ModelName,InvoiceLine-Name,InvoiceLine-Note, InvoiceLine- ManufacturersItemIdentification, InvoiceLine-ItemClassificationCode tagleridir.
Örnekte Yer olarak "Kalem", Tip olarak "Program", stok grup kodu için alan numarası "4003" ve E-Devlet XML Tag olarak "InvoiceLine-ModelName" seçilir.
XSLT dosyasında kolon başlığı eklemek için aşağıdaki kod bloğu eklenir. Örneğe göre eklenen kolonun başlığı, "Grup Kodu" 'dur.
<td width="100">
<strong>
<xsl:text>Grup Kodu</xsl:text>
</strong>
</td>
XSLT dosyasında eklenen kolonun değerini getirmek için dizaynda tanımlanan satırın eşlendiği e- Devlet XML Tag' inin yer aldığı aşağıdaki kod bloğu eklenir. Örneğe göre "ModelName" e-Devlet tagi kullanılır.
<td align="left" style="white-space: nowrap">
<xsl:text> </xsl:text>
<xsl:value-of select="cac:Item/cbc:ModelName" />
</td>
XSLT dosyasında gruplama yapıldıktan sonra, gruplama ile ilgili bazı XSLT kodları dosyaya eklenir.
ve dosya kaydedilir.
<xsl:key name="kNetsisKeys" match="//n1:Invoice/cac:InvoiceLine" use="concat(generate-id(..), ./cac:Item/cbc:ModelName,'+',
./cac:Price/cbc:PriceAmount)" />
XSLT de sütun değerlerinin olduğu bölümün başına da aşağıdaki kod bloğu eklenir.
<xsl:for-each select=
"//n1:Invoice/cac:InvoiceLine\[generate-id()=generate- |
id(key('kNetsisKeys',concat(generate-id(..), ./cac:Item/cbc:ModelName,'+',
./cac:Price/cbc:PriceAmount))\[1\])\]"> |
<xsl:variable name="vNetsisIncVar">
<xsl:value-of select="position()" /> </xsl:variable>
<xsl:variable name="vNetsiskeyGroup" select="key('kNetsisKeys', concat(generate-id(..),
./cac:Item/cbc:ModelName,'+',./cac:Price/cbc:PriceAmount))" />
oluşturulur.
Girilen belgede 2 ürün bulunmaktadır. Her 2 ürünün Stok Kartı Kayıtları ekranında Grup Kodu "12- Meyva" 'dır. Taslak oluşturma sonrasında e-Belge Görüntüsünde 2 stok kaleminin kümüle edildiği görülür.