E-belge (e-fatura, e-arşiv, e-irsaliye)
E-belge işlemleri EBelge nesnesiyle yapılır. Akış iki adımdır:
- Taslak: Netsis'teki fatura/irsaliyeden e-belge taslağı (UBL) oluşturulur. GİB numarası atanır.
- Gönderim / görüntüleme: Taslak entegratöre gönderilir ya da HTML olarak görüntülenir.
Gönderim (GİB'e iletim) geri alınamaz. Geliştirme sırasında yalnızca taslak ve görüntüleme adımlarını deneyin.
Tipler
TEBelgeTip |
Belge | Görüntüleme kutusu (TEBelgeBoxType) |
|---|---|---|
ebtEFatura |
E-fatura | ebAll |
ebtArsiv |
E-arşiv fatura | ebAll |
ebtEIrs |
E-irsaliye | ebOutbox |
Hangisinin kullanılacağı carinin durumuna bağlıdır: FatUst.EfaturaCarisiMi true ise e-fatura, değilse e-arşiv.
Faturadan e-fatura / e-arşiv taslağı
Fatura fatura = kernel.yeniFatura(sirket, TFaturaTip.ftSFat);
fatura.OkuUst(faturaNo, cariKod);
bool efaturaCarisi = fatura.Ust().EfaturaCarisiMi;
EBelge eb = kernel.yeniEBelge(sirket, efaturaCarisi ? TEBelgeTip.ebtEFatura : TEBelgeTip.ebtArsiv);
eb.BelgeNo = faturaNo; // Netsis fatura numarası
eb.DizaynNo = efaturaCarisi ? eFaturaDizaynNo : eArsivDizaynNo;
if (!efaturaCarisi) eb.FiyatBilgileriBasilsin = true;
eb.kayitYeni(); // taslağı oluştur
İrsaliyeden e-irsaliye taslağı
EBelge eb = kernel.yeniEBelge(sirket, TEBelgeTip.ebtEIrs);
eb.KaynakTip = TEBelgeKaynakTipi.eitIrs;
eb.BelgeNo = irsaliyeNo;
eb.DizaynNo = eIrsaliyeDizaynNo;
eb.FiyatBilgileriBasilsin = fiyatliMi; // fiyatlı / fiyatsız irsaliye
eb.kayitYeni();
Dizayn numaraları
Dizaynlar TBLDIZAYNSABIT tablosundadır:
SELECT DIZAYNNO, dbo.TRK(DZNADI + ' [' + DZNACIK + ']') AS ADI
FROM TBLDIZAYNSABIT
WHERE DIZAYNTIPI = @tip AND ISLETME_KODU = 1 AND SUBE_KODU = 0;
-- @tip: 99 e-fatura, 100 e-arşiv, 104 e-irsaliye
GİB numarasını bulmak
Taslak oluştuktan sonra GİB numarası faturaya yazılır:
SELECT GIB_FATIRS_NO FROM TBLFATUIRS WHERE FATIRS_NO = @no AND CARI_KODU = @cari;
eb.BelgeNo'nun döndürdüğü değer ile bu sorgunun sonucunu karşılaştırmak, taslağın doğru belgeye bağlandığını doğrulamanın pratik yoludur.
HTML görüntüleme
EBelge eb = kernel.yeniEBelge(sirket, TEBelgeTip.ebtEFatura);
string htmlYolu = eb.EBelgeGoruntuleme(
gibNo, // GİB numarası (GIB_FATIRS_NO)
@"C:\Temp\efatura", // çıktı klasörü
TEBelgeBoxType.ebAll, // kutu
""); // zarf (envelope) id, boş geçilebilir
Dönen değer oluşturulan HTML dosyasının yoludur. PDF gerekiyorsa HTML'i bir HTML→PDF aracıyla dönüştürün (NetsisQuick bunu kendi cPdf sınıfıyla yapar).
Seri bilgileri
SELECT BIRIMKOD FROM TBLEFATPRM WHERE SUBE_KODU = 0; -- e-fatura serisi
SELECT BIRIMKOD FROM TBLEARSIVPRM WHERE SUBE_KODU = 0; -- e-arşiv serisi
SELECT SERI FROM TBLEIRSSERI WHERE C_YEDEK1 IS NULL AND SUBE_KODU = 0; -- e-irsaliye serileri
REST karşılıkları: POST api/v2/EDocument (taslak), POST api/v2/EDocument/SendEDocument, POST api/v2/EDocument/ShowEDocument (JSON örnekleri).