Elektronik faturalar modern muhasebenin bir parçasıdır
Muhasebenin dijitalleşmesi ilerlemeye devam ediyor. Elektronik fatura biçimleri artık e-postayla gönderilen basit bir PDF dosyasından çok daha fazlasıdır.
Gerçek bir elektronik fatura, muhasebe ve ERP sistemleri tarafından otomatik olarak işlenebilen yapılandırılmış veriler içerir.
Odoo 19 Community için geliştirdiğimiz yeni açık kaynak projemizle tam olarak bu noktadan yola çıkmak istiyoruz.
Odoo Community'ye ücretsiz olarak sunduğumuz birkaç eklenti geliştirdik.
Proje GitHub'da herkese açık olarak erişilebilir durumda:
GitHub'da Odoo 19 Invoice E-Files
Odak noktamız özellikle Avusturya'dır; ancak çözümün bir kısmı Avusturya dışındaki şirketler için de ilgi çekicidir.
Elektronik faturalar için üç modül
Proje şu anda üç temel bileşenden oluşuyor:
- Avusturya için ebInterface 6.1
- Elektronik faturalar için ZUGFeRD
- e-Rechnung.gv.at'a otomatik iletim
Böylece elektronik faturalarla ilgili farklı gereksinimleri, Odoo 19 Community için tek bir açık kaynak projede bir araya getiriyoruz.
ebInterface 6.1 – Avusturya fatura biçimi
Geliştirmemizin ağırlık noktalarından biri ebInterface 6.1'dir.
ebInterface, yapılandırılmış elektronik faturalar için Avusturya'nın standart biçimidir.
Modülümüz
l10n_at_ebinterface
Odoo'daki bir müşteri faturasından veya alacak dekontundan ilgili ebInterface 6.1 XML dosyasını oluşturur.
Bu sırada, diğer unsurların yanı sıra Odoo faturasındaki ilgili bilgiler XML yapısına aktarılır:
- Fatura düzenleyen
- Fatura alıcısı
- Fatura kalemleri
- Vergiler
- Ödeme bilgileri
- Banka bilgileri
- Fatura verileri
Oluşturulan XML dosyası doğrudan faturayla ilişkilendirilir.
Neden bunun için kendi modülümüzü geliştirdik?
Geliştirme sırasında, Odoo 19 Community için Avusturya'nın yerel ebInterface standardını destekleyen bir Odoo çekirdek modülünün ya da OCA modülünün şu anda bulunmadığını fark ettik.
İşte tam bu noktadan yola çıkmak istedik.
Avusturya'ya yönelik bir çözümü yalnızca kendi kurulumumuz için geliştirmek yerine, bağımsız bir açık kaynak modül olarak hayata geçirdik.
Böylece Odoo topluluğunun geri kalanı da bundan yararlanabilir.
Her faturayla otomatik ZUGFeRD
Projemizin ikinci ağırlık noktası ZUGFeRD'dir.
ZUGFeRD, bir PDF faturayı yapılandırılmış bir XML faturayla birleştirir.
Sonuç, hibrit fatura olarak adlandırılan bir belgedir: Fatura, insanlar için PDF olarak okunabilir kalırken, yazılımlar içindeki yapılandırılmış fatura verilerini otomatik olarak işleyebilir.
Odoo 19, ZUGFeRD ve CII desteğini temel olarak zaten beraberinde getirir.
Ancak uygulamada bazı kısıtlamalar vardır.
Modülümüz
account_invoice_zugferd_ebinterface_auto
bu nedenle tam da bu noktadan devreye girer.
ZUGFeRD artık yalnızca bir seçenek değil
Mümkün olduğunca otomatik bir akış istedik.
Bu nedenle gönderilen bir müşteri faturasında, ilgili müşterinin ZUGFeRD için ayrıca yapılandırılıp yapılandırılmadığı önce kontrol edilmez.
Bunun yerine ZUGFeRD, müşteri faturaları ve alacak dekontları için otomatik olarak kullanılır.
Ayrıca oluşturulan ebInterface XML dosyası, faturanın bir bileşeni olarak birlikte gönderilir.
Böylece uçtan uca kesintisiz bir süreç ortaya çıkar:
Odoo faturası → PDF → yapılandırılmış e-fatura → gönderim
kullanıcının her fatura için ek adımlar atmasına gerek kalmadan.
Odoo 19 Community'deki boşlukları da kapatıyoruz
Uygulama sırasında Odoo 19 gerçekleştirimindeki bazı özelliklerle karşılaştık.
Bunlar arasında CII dışa aktarıcısındaki (exporter) bağımlılıklar da var; bunlar belirli ülke kurulumlarının dışında sorunlara yol açabiliyor.
Modülümüz bu pratik kısıtlamaların birçoğunu gideriyor.
Bunlar arasında şunlar yer alır:
- Ertelenmiş gelir (deferred revenue) dönemleri için eksik alanlar
- PDF/A-3 dönüştürmesinin ülkeye özgü kısıtlanması
- mevcut faturalarda eksik veya tanımlanmamış banka bilgileri
Böylece ZUGFeRD, başlangıçta öngörülen ülke yapılandırmalarının dışındaki şirketler tarafından da güvenilir biçimde kullanılabilmelidir.
e-Rechnung.gv.at – Avusturya devletine doğrudan iletim
Üçüncü bileşen, özellikle kamu kurumlarına fatura kesen şirketler için ilgi çekicidir.
Şu modül sayesinde:
l10n_at_erechnung_gv_at
bir ebInterface faturası doğrudan Avusturya'nın e-Rechnung.gv.at web servisine iletilebilir.
Böylece salt fatura oluşturma işlemi, otomatik bir elektronik fatura sürecine dönüşür.
Akış örneğin şöyle görünebilir:
Odoo'da fatura oluşturma
↓
ebInterface XML oluşturma
↓
Faturayı gönderme
↓
ebInterface'i e-Rechnung.gv.at'a otomatik iletme
Böylece aksi halde elle yürütülen bir süreç doğrudan Odoo'ya entegre edilir.
Otomatik iletim yalnızca gerekli müşteriler için
e-Rechnung.gv.at'a iletim, her müşteri için toptan etkinleştirilmez.
Bunun yerine ilgili Avusturyalı müşteri için etkinleştirilebilir.
Bunun için gerekli bilgiler, örneğin
- Tedarikçi numarası
- Satın alma grubu / şube numarası
- Sipariş referansı
müşteri kaydında tutulur.
Modül bu sırada etkinleştirme için ön koşulların karşılanıp karşılanmadığını da kontrol eder.
Test ve canlı işletim
e-Rechnung.gv.at için bir test ve canlı ortam arasında seçim yapılabilir.
USP web servisinin erişim bilgileri Odoo ayarlarında tanımlanır.
Böylece entegrasyon, canlı fatura gönderiminde kullanılmadan önce önce bir test ortamında hazırlanabilir.
Ek iş yerine otomasyon
Geliştirirken amacımız muhasebeciye daha fazla düğme vermek değildi.
Tam tersine.
Fikir şu:
Mümkün olduğunca az elle iş.
Odoo'da bir fatura oluşturulur.
Gerekli yapılandırılmış biçimler otomatik olarak üretilir.
Gönderim sırasında ilgili dosyalar otomatik olarak eklenir.
Uygun şekilde yapılandırılmış Avusturyalı müşterilerde ise fatura ayrıca otomatik olarak e-Rechnung.gv.at'a iletilebilir.
Basit bir dosya dışa aktarımı ile gerçekten entegre bir e-fatura çözümü arasındaki farkı yaratan, tam da bu otomasyondur.
Veri kalitesi öylece gizlenmez
Uygulamamızın önemli bir noktası da şudur:
Bir elektronik fatura, üretildiği veriler kadar iyi olabilir.
Bu nedenle eksik zorunlu bilgileri sessizce herhangi bir değerle değiştirmeye çalışmıyoruz.
Örneğin ZUGFeRD veya ebInterface için zorunlu bilgiler eksikse, Odoo kullanıcıyı bu konuda uyarmalıdır.
Bunlar arasında örneğin şunlar yer alır:
- müşteride eksik ülke bilgisi
- fatura kalemlerinde eksik vergi bilgileri
- eksik banka bilgileri
Bize göre bu, biçimsel olarak oluşturulmuş ancak içeriği yanlış bir elektronik fatura göndermekten daha iyidir.
Odoo Community için açık kaynak
Bu projeyi de ücretsiz açık kaynak olarak sunuyoruz.
Neden mi?
Çünkü biz de açık kaynak yazılımdan yararlanıyoruz.
Odoo Community; ERP, muhasebe ve şirket süreçleri için mükemmel bir temel sunar. Günlük işimizde bir işlev eksik kaldığında, onu kendimiz geliştiririz.
Çözüm başka şirketler için de ilgi çekici olabilecekse, onu topluluğun kullanımına sunarız.
Bizim için açık kaynağı yaşamak budur.
Avusturya odaklı – ama yalnızca Avusturya için değil
Projenin açık bir Avusturya ağırlığı var.
ebInterface ve e-Rechnung.gv.at özellikle Avusturyalı şirketler için ilgi çekicidir.
ZUGFeRD desteği ise Avusturya dışındaki şirketler için de geçerlidir.
Dolayısıyla proje yalnızca Avusturya'ya özgü bir çözüm değildir.
Özellikle yapılandırılmış fatura verileri ile otomatik olarak oluşturulan bir PDF/A-3 belgesinin birleşimi, diğer Odoo kurulumları için de ilgi çekici olabilir.
Odoo 19 Community için
Modüller Odoo 19 Community için geliştirildi.
Depo şu anda şunları içeriyor:
- l10n_at_ebinterface
- account_invoice_zugferd_ebinterface_auto
- l10n_at_erechnung_gv_at
Modüller birbirine bağımlıdır; bu nedenle kullanım senaryosuna göre yalnızca gereken bileşenlerin kurulması yeterlidir.
Topluluğa katkımız
Bu projeyi hazır bir ticari yazılım olarak değil, Odoo topluluğunun gelişimine bir katkı olarak görüyoruz.
Belki birinin yalnızca ebInterface'e ihtiyacı vardır.
Belki başka bir şirketin ZUGFeRD'e ihtiyacı vardır.
Belki bir şirketin kamu kurumlarına düzenli olarak e-Rechnung.gv.at üzerinden fatura göndermesi gerekir.
Bu üç durumun hepsinde projemiz bir temel sunabilir.
Kaynak kodu açık olduğu için de her kullanıcı çözümü inceleyebilir, uyarlayabilir ve geliştirmeyi sürdürebilir.
Açık kaynak şu demek: birlikte daha iyi olmak
Açık kaynağın özellikle ERP sistemlerinde büyük bir avantaj sağladığına inanıyoruz.
Şirketlerin gereksinimleri farklıdır.
Bir şirket için mükemmel çalışan bir çözümün, bir başkası için belki uyarlanması gerekir.
Açık kaynak kodla bu mümkündür.
Bu nedenle şunlara memnuniyetle açığız:
- Geri bildirim
- Hata bildirimleri (Bug Reports)
- İyileştirme önerileri
- Pull Request'ler
- desteklenen ek kullanım senaryoları
İyi bir topluluk çözümü illa ilk commit'te ortaya çıkmaz.
Çok sayıda kullanıcı ve geliştiricinin katkısıyla sürekli geliştirilerek ortaya çıkar.
Projeyi ücretsiz kullanın
Kaynak kodunun tamamı GitHub'da herkese açık olarak erişilebilir:
GitHub – Odoo 19 Invoice E-Files
Orada kurulum bilgileri ve tek tek modüllerin belgeleri de bulunur.
Avusturya e-Rechnung.gv.at web servisinin entegrasyonu için ayrıca Zeep Python kütüphanesi gerekir.
Açık bir Odoo dünyasına katkımız
Bu projeyle, küçük çaplı kendi geliştirmelerin bile bütün bir topluluk için değer yaratabileceğini göstermek istiyoruz.
Modülleri başlangıçta somut gereksinimleri çözmek için geliştirdik.
Şimdi bu çözümleri tüm Odoo 19 Community kullanıcılarına ücretsiz olarak sunuyoruz.
Böylece bireysel bir geliştirme, bir topluluk çözümüne dönüşebilir.
Odoo 19. Açık kaynak. Elektronik faturalar. Avusturya. Ve topluluk için ücretsiz.
Bu projeyi tam da bunun için yayımladık.