l10n_tr_nilvera_einvoice_extended_extensions
Odoo'nun resmî e-fatura + UBL katmanını GİB/Nilvera'nın gerçekte beklediği davranışa uyduran en kapsamlı modül.
account.move (action_post, button_draft, create, _need_ubl_cii_xml, senaryo/tip compute'ları) · account.edi.xml.ubl.tr (_export_invoice, _export_invoice_vals, _get_note_vals_list, döviz kuru) · account.move.send · yeni account.move.sequence · ret wizard'ı· Fatura Serisi: şirket+tip bazında ayrı ir.sequence + hesap atamaları; post anında 16 haneli GİB belge no üretir.
· İade faturası: yerine + InvoiceTypeCode=IADE üretir; BillingReference orijinal 16 haneli belge no'yu kullanır.
· Gelen iade tespiti: GET /einvoice/Purchase/{UUID}/Details → IADE ise saatlik cron faturayı out_refund'a çevirir.
· Onay/Ret: POST /einvoice/Purchase/SendAnswer.
· Senaryo/tip alanlarını gönderim sonrası silinmekten korur; narration'ı tek Note'ta birleştirir.
The most extensive module, aligning Odoo's official e-invoice + UBL layer with what GİB/Nilvera actually expect.
account.move (action_post, button_draft, create, _need_ubl_cii_xml, scenario/type computes) · account.edi.xml.ubl.tr (_export_invoice, _export_invoice_vals, _get_note_vals_list, FX rate) · account.move.send · new account.move.sequence · reject wizard· Invoice series: per company+type ir.sequence + account defaults; mints the 16-digit GİB document number on post.
· Return invoice: emits + InvoiceTypeCode=IADE instead of ; BillingReference uses the original 16-digit number.
· Inbound return detection: GET /einvoice/Purchase/{UUID}/Details → if IADE, an hourly cron flips the move to out_refund.
· Approve/Reject: POST /einvoice/Purchase/SendAnswer.
· Protects scenario/type fields from being cleared after sending; merges narration into one Note.
Bağımsız GİB belge no yönetimi yok; iade olarak üretilir (Nilvera 2017 hatasıyla reddeder); senaryo alanı gönderim sonrası silinir; gelen faturanın iade niteliği sorgulanmaz.
No independent GİB number management; returns are emitted as (Nilvera rejects with error 2017); the scenario field is wiped after sending; an inbound invoice's return status is never queried.