e-fatura
Version:
e-Arşiv üzerinden fatura oluşturur, faturaları listeler, faturaları imzalar ve daha fazlasını yapar.
1,154 lines (1,124 loc) • 80.5 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var https = require('node:https');
var crypto = require('node:crypto');
var qs = require('node:querystring');
var path = require('node:path');
var fs = require('node:fs/promises');
var uuid = require('uuid');
var deepMerge = require('lodash.merge');
var numberToText = require('number-to-text');
require('number-to-text/converters/tr.js');
var node_child_process = require('node:child_process');
var axios = require('axios');
function _interopNamespaceDefault(e) {
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n.default = e;
return Object.freeze(n);
}
var https__namespace = /*#__PURE__*/_interopNamespaceDefault(https);
var crypto__namespace = /*#__PURE__*/_interopNamespaceDefault(crypto);
var qs__namespace = /*#__PURE__*/_interopNamespaceDefault(qs);
var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
function toArray(value) {
return [].concat(value);
}
async function tmpFileAsync() {
const { file } = await import('tmp');
return new Promise((resolve, reject) => {
file((error, name, fd, cleanup) => {
if (error) {
return reject(error);
}
resolve({
fd,
name,
cleanup
});
});
});
}
function isPlainObject(value) {
return value != null && Object.getPrototypeOf(value) === Object.prototype;
}
class EInvoiceError extends Error {
}
class EInvoiceApiError extends EInvoiceError {
response;
constructor(message, response) {
super(message);
this.response = response;
}
get name() {
return EInvoiceApiError.name;
}
get errorCode() {
return this.response.errorCode;
}
}
class EInvoiceTypeError extends EInvoiceError {
get name() {
return EInvoiceTypeError.name;
}
}
class EInvoiceMissingTokenError extends EInvoiceError {
get name() {
return EInvoiceMissingTokenError.name;
}
}
class EInvoiceMissingCredentialsError extends EInvoiceError {
credentials;
constructor(message, credentials) {
super(message);
this.credentials = credentials;
}
get name() {
return EInvoiceMissingCredentialsError.name;
}
}
const DATE_FORMAT_PATTERN = /^(\d{2}\/\d{2}\/\d{4}|\d{2}:\d{2}:\d{2})$/;
function getDateFormat(value, format = 'date') {
let date;
if (typeof value === 'string') {
if (DATE_FORMAT_PATTERN.test(value)) {
return value;
}
date = new Date(value);
}
else if (value instanceof Date) {
date = value;
}
else {
date = new Date();
}
if (date.toString() === 'Invalid Date') {
throw new EInvoiceTypeError('Geçersiz tarih formatı.');
}
if (format === 'date') {
const day = date.getDate().toString().padStart(2, '0');
const month = (date.getMonth() + 1).toString().padStart(2, '0');
const year = date.getFullYear();
return `${day}/${month}/${year}`;
}
const hours = date.getHours().toString().padStart(2, '0');
const minutes = date.getMinutes().toString().padStart(2, '0');
const seconds = date.getSeconds().toString().padStart(2, '0');
return `${hours}:${minutes}:${seconds}`;
}
async function htmlToPdf(html, options) {
const { args = ['--no-sandbox', '--disable-gpu', '--disable-setuid-sandbox'], ...pdfOptions } = options || {};
const { launch: launchBrowser } = await import('puppeteer-core');
const browser = await launchBrowser({
args,
timeout: 5_000,
headless: true,
executablePath: process.env.PUPPETEER_EXECUTABLE_PATH ||
process.env.CHROME_BIN ||
'/usr/bin/chromium-browser'
});
const page = await browser.newPage();
await page.setContent(html, {
waitUntil: 'domcontentloaded'
});
try {
const pdfBytes = await page.pdf({
format: 'A4',
...pdfOptions,
path: undefined
});
return Buffer.from(pdfBytes);
// eslint-disable-next-line no-useless-catch
}
catch (err) {
throw err;
}
finally {
await browser.close();
}
}
function stringValidator(value, field) {
if (typeof value !== 'string') {
throw new EInvoiceTypeError([
`"${field}" alanı dizi (string) türünde bir değere sahip olmalıdır.`,
`(Sağlanan değer: "${value}").`
].join(' '));
}
}
function notEmptyStringValidator(value, field) {
stringValidator(value, field);
if (value === '') {
throw new EInvoiceTypeError(`"${field}" alanı boş bir dizi (string) olamaz.`);
}
}
function greaterThanValidator(value, than, field) {
if (typeof value !== 'number' || !Number.isFinite(value) || value <= than) {
throw new EInvoiceTypeError(`"${field}" alanı ${than}'dan büyük olmalıdır.`);
}
}
function formatCase(value, caseOption) {
switch (caseOption) {
case 'upperCase':
return value.toUpperCase();
case 'lowerCase':
return value.toLowerCase();
case 'titleCase':
value = value.toLowerCase();
return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;
default:
return value.toUpperCase();
}
}
function paymentPriceToText(paymentPrice, options) {
greaterThanValidator(paymentPrice, 0, 'paymentPrice');
const [main, sub] = paymentPrice.toFixed(2).split('.');
const { spaces = false, language = 'tr', case: caseOption = 'upperCase', separator } = options || {};
const mainText = numberToText.convertToText(+main, {
case: caseOption,
language,
separator
});
const texts = [
spaces ? mainText : mainText.replace(/\s/g, ''),
formatCase('TL', caseOption)
];
if (sub !== '00') {
const subText = numberToText.convertToText(+sub, {
case: caseOption,
language,
separator
});
texts.push(spaces ? subText : subText.replace(/\s/g, ''), formatCase('KRŞ.', caseOption));
}
return texts.join(' ').trim();
}
function mappingInvoiceKeys(value) {
if (!isPlainObject(value)) {
throw new EInvoiceTypeError('Geçersiz fatura verisi.');
}
const { matrah = 0, binaAdi = '', binaNo = '', aliciAdi = '', aliciSoyadi = '', aliciUnvan = '', hesaplanankdv = 0, sehir = '', ulke = '', paraBirimi = '', dovzTLkur = 0, faturaTarihi = '', mahalleSemtIlce = '', belgeNumarasi = '', kapiNo = '', eposta = '', fax = '', bulvarcaddesokak = '', vergilerDahilToplamTutar = 0, faturaTipi = '', not = '', okcSeriNo, siparisTarihi, siparisNumarasi, odenecekTutar = 0, tel = '', postaKodu = '', malHizmetTable = [], malhizmetToplamTutari = 0, fisTarihi, fisNo, fisSaati, fisTipi, iadeTable, ozelMatrahTutari = 0, ozelMatrahOrani = 0, ozelMatrahVergiTutari = 0, vergiDairesi = '', vknTckn = '', vergiCesidi, saat = '', toplamIskonto = 0, vergilerToplami = 0, kasabaKoy = '', tip = '', faturaUuid = '', irsaliyeTarihi, irsaliyeNumarasi, websitesi = '', hangiTip, zRaporNo, ...other } = value;
return {
...other,
base: matrah,
buildingName: binaAdi,
buildingNumber: binaNo,
buyerFirstName: aliciAdi,
buyerLastName: aliciSoyadi,
buyerTitle: aliciUnvan,
calculatedVAT: hesaplanankdv,
city: sehir,
country: ulke,
currency: paraBirimi,
currencyRate: dovzTLkur,
date: faturaTarihi,
district: mahalleSemtIlce,
documentNumber: belgeNumarasi,
doorNumber: kapiNo,
email: eposta,
faxNumber: fax,
fullAddress: bulvarcaddesokak,
includedTaxesTotalPrice: vergilerDahilToplamTutar,
invoiceType: faturaTipi,
note: not,
okcSerialNumber: okcSeriNo,
orderDate: siparisTarihi,
orderNumber: siparisNumarasi,
paymentPrice: odenecekTutar,
phoneNumber: tel,
postNumber: postaKodu,
products: malHizmetTable.map((product) => {
const { iskontoArttm = '', iskontoTutari = 0, iskontoOrani = 0, iskontoNedeni = '', malHizmet = '', fiyat = 0, miktar = 0, ozelMatrahTutari = 0, vergiOrani = 0, malHizmetTutari = 0, birimFiyat = 0, birim = '', kdvTutari = 0, vergininKdvTutari = 0, kdvOrani = 0, ...other } = product;
return {
...other,
discountOrIncrement: iskontoArttm,
discountOrIncrementAmount: iskontoTutari,
discountOrIncrementRate: iskontoOrani,
discountOrIncrementReason: iskontoNedeni,
name: malHizmet,
price: fiyat,
quantity: miktar,
specialBaseAmount: ozelMatrahTutari,
taxRate: vergiOrani,
totalAmount: malHizmetTutari,
unitPrice: birimFiyat,
unitType: birim,
vatAmount: kdvTutari,
vatAmountOfTax: vergininKdvTutari,
vatRate: kdvOrani
};
}),
productsTotalPrice: malhizmetToplamTutari,
receiptDate: fisTarihi,
receiptNumber: fisNo,
receiptTime: fisSaati,
receiptType: fisTipi,
refundTable: Array.isArray(iadeTable)
? iadeTable.map((item) => {
const { faturaNo = '', duzenlenmeTarihi = '', ...other } = item;
return {
...other,
invoiceNumber: faturaNo,
date: duzenlenmeTarihi
};
})
: undefined,
specialBaseAmount: ozelMatrahTutari,
specialBasePercent: ozelMatrahOrani,
specialBaseTaxAmount: ozelMatrahVergiTutari,
taxOffice: vergiDairesi,
taxOrIdentityNumber: vknTckn,
taxType: vergiCesidi,
time: saat,
totalDiscountOrIncrement: toplamIskonto,
totalTaxes: vergilerToplami,
town: kasabaKoy,
type: tip,
uuid: faturaUuid,
waybillDate: irsaliyeTarihi,
waybillNumber: irsaliyeNumarasi,
website: websitesi,
whichType: hangiTip,
zReportNumber: zRaporNo
};
}
var InvoiceType;
(function (InvoiceType) {
InvoiceType["SATIS"] = "SATIS";
InvoiceType["IADE"] = "IADE";
InvoiceType["TEVKIFAT"] = "TEVKIFAT";
InvoiceType["ISTISNA"] = "ISTISNA";
InvoiceType["OZEL_MATRAH"] = "OZELMATRAH";
InvoiceType["IHRAC_KAYITLI"] = "IHRACKAYITLI";
InvoiceType["HAL_TIPI_FATURA_SATIS"] = "HKSSATIS";
InvoiceType["HAL_TIPI_FATURA_KOMISYONCU"] = "HKSKOMISYONCU";
})(InvoiceType || (InvoiceType = {}));
var InvoiceType$1 = InvoiceType;
var EInvoiceCountry;
(function (EInvoiceCountry) {
EInvoiceCountry["TURKIYE"] = "T\u00FCrkiye";
EInvoiceCountry["ABD_MINOR_OUTLYING_A"] = "Abd Minor Outlying A";
EInvoiceCountry["ABD_VIRJIN_ADALARI"] = "Abd Virjin Adalar\u0131";
EInvoiceCountry["AFGANISTAN"] = "Afganistan";
EInvoiceCountry["ALMANYA"] = "Almanya";
EInvoiceCountry["AMERIKA_BIRLESIK_DEV"] = "Amerika Birle\u015Fik Dev";
EInvoiceCountry["AMERIKA_SAMOASI"] = "Amerika Samoasi";
EInvoiceCountry["ANDORRA"] = "Andorra";
EInvoiceCountry["ANGOLA"] = "Angola";
EInvoiceCountry["ANGUILLA"] = "Anguilla";
EInvoiceCountry["ANTARTIKA"] = "Antartika";
EInvoiceCountry["ANTIGUA_VE_BERMUDA"] = "Antigua Ve Bermuda";
EInvoiceCountry["ARJANTIN"] = "Arjantin";
EInvoiceCountry["ARNAVUTLUK"] = "Arnavutluk";
EInvoiceCountry["ARUBA"] = "Aruba";
EInvoiceCountry["AVUSTRALYA"] = "Avustralya";
EInvoiceCountry["AVUSTRALYA_OKYANUSU"] = "Avustralya Okyanusu";
EInvoiceCountry["AVUSTURYA"] = "Avusturya";
EInvoiceCountry["AZERBEYCAN"] = "Azerbeycan-Nah\u00E7ivan";
EInvoiceCountry["BAHAMALAR"] = "Bahamalar";
EInvoiceCountry["BAHREYN"] = "Bahreyn";
EInvoiceCountry["BANGLADES"] = "Banglade\u015F";
EInvoiceCountry["BARBADOS"] = "Barbados";
EInvoiceCountry["BELCIKA"] = "Bel\u00E7ika";
EInvoiceCountry["BELIZE"] = "Belize";
EInvoiceCountry["BENIN"] = "Benin";
EInvoiceCountry["BERMUDA"] = "Bermuda";
EInvoiceCountry["BEYAZ_RUSYA"] = "Beyaz Rusya";
EInvoiceCountry["BHUTAN"] = "Bhutan";
EInvoiceCountry["BOLIVYA"] = "Bolivya";
EInvoiceCountry["BOSNA"] = "Bosna-Hersek";
EInvoiceCountry["BOSTVANA"] = "Bostvana";
EInvoiceCountry["BOUVET_ADASI"] = "Bouvet Adas\u0131";
EInvoiceCountry["BREZILYA"] = "Brezilya";
EInvoiceCountry["BRUNEI"] = "Brunei";
EInvoiceCountry["BULGARISTAN"] = "Bulgaristan";
EInvoiceCountry["BURKINA_FASO"] = "Burkina Faso";
EInvoiceCountry["BURMA"] = "Burma";
EInvoiceCountry["BURUNDI"] = "Burundi";
EInvoiceCountry["BIRLESIK_ARAP_EMIRLI"] = "Birle\u015Fik Arap Emirli";
EInvoiceCountry["BIRLESIK_DEVLETLER_M"] = "Birle\u015Fik Devletler M";
EInvoiceCountry["BIRLESIK_KRALLIK"] = "Birle\u015Fik Krallik";
EInvoiceCountry["BISMARK_ARCHIPELAGO"] = "Bismark Archipelago";
EInvoiceCountry["CAPE_VERDE"] = "Cape Verde";
EInvoiceCountry["CAYMAN_ADALARI"] = "Cayman Adalar\u0131";
EInvoiceCountry["CEBELI_TARIK"] = "Cebeli Tarik";
EInvoiceCountry["CEUTA_VE_MELILLA"] = "Ceuta Ve Melilla";
EInvoiceCountry["CEZAYIR"] = "Cezayir";
EInvoiceCountry["CHRISTMAS_ADALARI"] = "Christmas Adalar\u0131";
EInvoiceCountry["COOK_ADALARI"] = "Cook Adalar\u0131";
EInvoiceCountry["CIBUTI"] = "Cibuti";
EInvoiceCountry["CAD"] = "\u00C7ad";
EInvoiceCountry["CEK_CUMHURIYETI"] = "\u00C7ek Cumhuriyeti";
EInvoiceCountry["CECEN_CUMHURIYETI"] = "\u00C7e\u00E7en Cumhuriyeti";
EInvoiceCountry["CIN_HALK_CUMHURIYETI"] = "\u00C7in Halk Cumhuriyeti";
EInvoiceCountry["DANIMARKA"] = "Danimarka";
EInvoiceCountry["DAGISTAN_CUMHURIYETI"] = "Da\u011Fistan Cumhuriyeti";
EInvoiceCountry["DOMINIK_CUMHURIYETI"] = "Dominik Cumhuriyeti";
EInvoiceCountry["DOMINIKA"] = "Dominika";
EInvoiceCountry["DOGU_TIMOR"] = "Do\u011Fu Timor";
EInvoiceCountry["DUBAI"] = "Dubai";
EInvoiceCountry["EKVATOR"] = "Ekvator";
EInvoiceCountry["EKVATOR_GINESI"] = "Ekvator Ginesi";
EInvoiceCountry["EL_SALVADOR"] = "El Salvador";
EInvoiceCountry["ENDONEZYA"] = "Endonezya";
EInvoiceCountry["ERMENISTAN"] = "Ermenistan";
EInvoiceCountry["ERITRE"] = "Eritre";
EInvoiceCountry["ESTONYA"] = "Estonya";
EInvoiceCountry["ETIYOPYA"] = "Etiyopya";
EInvoiceCountry["FALKLAND_ADALARI"] = "Falkland Adalar\u0131";
EInvoiceCountry["FAROE_ADALARI"] = "Faroe Adalar\u0131";
EInvoiceCountry["FAS"] = "Fas";
EInvoiceCountry["FRANSA"] = "Fransa";
EInvoiceCountry["FRANSIZ_GUYANASI"] = "Fransiz Guyanasi";
EInvoiceCountry["FRANSIZ_GUNEY_TOPRAK"] = "Fransiz G\u00FCney Toprak";
EInvoiceCountry["FRANSIZ_POLINEZYASI"] = "Fransiz Polinezyasi";
EInvoiceCountry["FIJI"] = "Fiji";
EInvoiceCountry["FILDISI_SAHILI"] = "Fildi\u015Fi Sahili";
EInvoiceCountry["FILIPINLER"] = "Filipinler";
EInvoiceCountry["FILISTIN"] = "Filistin";
EInvoiceCountry["FINLANDIYA"] = "Finlandiya";
EInvoiceCountry["GABON"] = "Gabon";
EInvoiceCountry["GAMBIYA"] = "Gambiya";
EInvoiceCountry["GANA"] = "Gana";
EInvoiceCountry["GRENADA"] = "Grenada";
EInvoiceCountry["GRONLAND"] = "Gr\u00F6nland";
EInvoiceCountry["GUADELUP"] = "Guadelup";
EInvoiceCountry["GUAM"] = "Guam";
EInvoiceCountry["GUATEMALA"] = "Guatemala";
EInvoiceCountry["GUYANA"] = "Guyana";
EInvoiceCountry["GUNEY_AFRIKA_CUMHURI"] = "G\u00FCney Afrika Cumhuri";
EInvoiceCountry["GUNEY_FRANSIZ_TOPRAK"] = "G\u00FCney Fransiz Toprak";
EInvoiceCountry["GUNEY_GEORGIA_VE_GUN"] = "G\u00FCney Georgia Ve G\u00FCn";
EInvoiceCountry["GUNEY_KORE_CUMHURIYE"] = "G\u00FCney Kore Cumhuriye";
EInvoiceCountry["GUNEY_YEMEN"] = "G\u00FCney Yemen";
EInvoiceCountry["GURCISTAN"] = "G\u00FCrcistan";
EInvoiceCountry["GINE"] = "Gine";
EInvoiceCountry["GINEBISSAU"] = "Gine-Bissau";
EInvoiceCountry["HAITI"] = "Haiti";
EInvoiceCountry["HEARD_ADALARI_VE_MC"] = "Heard Adalar\u0131 Ve Mc";
EInvoiceCountry["HIRVATISTAN"] = "Hirvatistan";
EInvoiceCountry["HOLLANDA"] = "Hollanda";
EInvoiceCountry["HOLLANDA_ANTILLERI"] = "Hollanda Antilleri";
EInvoiceCountry["HONDURAS"] = "Honduras";
EInvoiceCountry["HONG_KONG"] = "Hong Kong";
EInvoiceCountry["HINDISTAN"] = "Hindistan";
EInvoiceCountry["IRAK"] = "Irak";
EInvoiceCountry["INGILIZ_HINT_OKYTOP"] = "\u0130ngiliz Hint Oky.Top";
EInvoiceCountry["INGILIZ_VIRGIN_ADALA"] = "\u0130ngiliz Virgin Adala";
EInvoiceCountry["IRAN"] = "\u0130ran";
EInvoiceCountry["IRLANDA"] = "\u0130rlanda";
EInvoiceCountry["ISPANYA"] = "\u0130spanya";
EInvoiceCountry["ISRAIL"] = "\u0130srail";
EInvoiceCountry["ISVEC"] = "\u0130sve\u00E7";
EInvoiceCountry["ISVICRE"] = "\u0130svi\u00E7re";
EInvoiceCountry["ITALYA"] = "\u0130talya";
EInvoiceCountry["IZLANDA"] = "\u0130zlanda";
EInvoiceCountry["ISGAL_ALTINDAKI_FILI"] = "\u0130\u015Fgal Altindaki Fili";
EInvoiceCountry["JAMAIKA"] = "Jamaika";
EInvoiceCountry["JAPONYA"] = "Japonya";
EInvoiceCountry["KAMBOCYA"] = "Kambo\u00E7ya";
EInvoiceCountry["KAMERUN"] = "Kamerun";
EInvoiceCountry["KANADA"] = "Kanada";
EInvoiceCountry["KARADAG"] = "Karada\u011F";
EInvoiceCountry["KATAR"] = "Katar";
EInvoiceCountry["KAZAKISTAN"] = "Kazakistan";
EInvoiceCountry["KENYA"] = "Kenya";
EInvoiceCountry["KIBRIS_RUM_KESIMI"] = "Kibris Rum Kesimi";
EInvoiceCountry["KIRGIZISTAN"] = "Kirgizistan";
EInvoiceCountry["KOKOS_ADALARI"] = "Kokos Adalar\u0131";
EInvoiceCountry["KOLOMBIYA"] = "Kolombiya";
EInvoiceCountry["KOMORO_ADALARI"] = "Komoro Adalar\u0131";
EInvoiceCountry["KONGO"] = "Kongo";
EInvoiceCountry["KOSOVA"] = "Kosova";
EInvoiceCountry["KOSTA_RIKA"] = "Kosta Rika";
EInvoiceCountry["KUTUP_BOLGELERI"] = "Kutup B\u00F6lgeleri";
EInvoiceCountry["KUVEYT"] = "Kuveyt";
EInvoiceCountry["KUZEY_KIBRIS_TURK_CU"] = "Kuzey Kibris T\u00FCrk Cu";
EInvoiceCountry["KUZEY_KORE_DEMOKRATI"] = "Kuzey Kore Demokrati";
EInvoiceCountry["KUZEY_MARIANA_ADALAR"] = "Kuzey Mariana Adalar";
EInvoiceCountry["KUZEY_YEMEN"] = "Kuzey Yemen";
EInvoiceCountry["KONGO_DEMOKRATIK_CU"] = "Kongo (Demokratik Cu)";
EInvoiceCountry["KUBA"] = "K\u00FCba";
EInvoiceCountry["KIRIBATI"] = "Kiribati";
EInvoiceCountry["LAOS"] = "Laos";
EInvoiceCountry["LESOTHO"] = "Lesotho";
EInvoiceCountry["LETONYA"] = "Letonya";
EInvoiceCountry["LIESHTENSTEIN"] = "Lieshtenstein";
EInvoiceCountry["LUBNAN"] = "L\u00FCbnan";
EInvoiceCountry["LUKSEMBURG"] = "L\u00FCksemburg";
EInvoiceCountry["LIBERYA"] = "Liberya";
EInvoiceCountry["LIBYA"] = "Libya";
EInvoiceCountry["LITVANYA"] = "Litvanya";
EInvoiceCountry["MACARISTAN"] = "Macaristan";
EInvoiceCountry["MADAGASKAR"] = "Madagaskar";
EInvoiceCountry["MAKAO"] = "Makao";
EInvoiceCountry["MAKEDONYA"] = "Makedonya";
EInvoiceCountry["MALAVI"] = "Malavi";
EInvoiceCountry["MALDIV_ADALARI"] = "Maldiv Adalar\u0131";
EInvoiceCountry["MALEZYA"] = "Malezya";
EInvoiceCountry["MALTA"] = "Malta";
EInvoiceCountry["MALI"] = "Mali";
EInvoiceCountry["MARSHALL_ADALARI"] = "Marshall Adalar\u0131";
EInvoiceCountry["MARTINIK"] = "Martinik";
EInvoiceCountry["MAURITIUS"] = "Mauritius";
EInvoiceCountry["MAYOTTE"] = "Mayotte";
EInvoiceCountry["MEKSIKA"] = "Meksika";
EInvoiceCountry["MELILLA"] = "Melilla";
EInvoiceCountry["MISIR"] = "Misir";
EInvoiceCountry["MOLDAVYA"] = "Moldavya";
EInvoiceCountry["MONACO"] = "Monaco";
EInvoiceCountry["MONTSERRAT"] = "Montserrat";
EInvoiceCountry["MORITANYA"] = "Moritanya";
EInvoiceCountry["MOZAMBIK"] = "Mozambik";
EInvoiceCountry["MOGOLISTAN"] = "Mo\u011Folistan";
EInvoiceCountry["MYANMAR"] = "Myanmar";
EInvoiceCountry["MIKRONEZYA"] = "Mikronezya";
EInvoiceCountry["NAMIBYA"] = "Namibya";
EInvoiceCountry["NAURU"] = "Nauru";
EInvoiceCountry["NEPAL"] = "Nepal";
EInvoiceCountry["NORFOLK_ADASI"] = "Norfolk Adas\u0131";
EInvoiceCountry["NORVEC"] = "Norve\u00E7";
EInvoiceCountry["NIJER"] = "Nijer";
EInvoiceCountry["NIJERYA"] = "Nijerya";
EInvoiceCountry["NIKARAGUA"] = "Nikaragua";
EInvoiceCountry["NIUE"] = "Niue";
EInvoiceCountry["ORTA_AFRIKA_CUMHURIY"] = "Orta Afrika Cumhuriy";
EInvoiceCountry["OZBEKISTAN"] = "\u00D6zbekistan";
EInvoiceCountry["PAKISTAN"] = "Pakistan";
EInvoiceCountry["PALAU"] = "Palau";
EInvoiceCountry["PANAMA"] = "Panama";
EInvoiceCountry["PAPUA_YENI_GINE"] = "Papua Yeni Gine";
EInvoiceCountry["PARAGUAY"] = "Paraguay";
EInvoiceCountry["PERU"] = "Peru";
EInvoiceCountry["POLONYA"] = "Polonya";
EInvoiceCountry["PORTEKIZ"] = "Portekiz";
EInvoiceCountry["PITCAIRN"] = "Pitcairn";
EInvoiceCountry["REUNION"] = "Reunion";
EInvoiceCountry["ROMANYA"] = "Romanya";
EInvoiceCountry["RUANDA"] = "Ruanda";
EInvoiceCountry["RUSYA_FEDERASYONU"] = "Rusya Federasyonu";
EInvoiceCountry["SAN_MARINO"] = "San Marino";
EInvoiceCountry["SAO_TOME_AND_PRINCIP"] = "Sao Tome And Princip";
EInvoiceCountry["SENEGAL"] = "Senegal";
EInvoiceCountry["SEPTECEUTA"] = "Septe(Ceuta)";
EInvoiceCountry["SEYSEL_ADALARI_VE_BA"] = "Sey\u015Fel Adalar\u0131 Ve Ba";
EInvoiceCountry["SIERRA_LEONE"] = "Sierra Leone";
EInvoiceCountry["SIRBISTAN"] = "Sirbistan";
EInvoiceCountry["SLOVAKYA"] = "Slovakya";
EInvoiceCountry["SLOVENYA"] = "Slovenya";
EInvoiceCountry["SOLOMON_ADALARI"] = "Solomon Adalar\u0131";
EInvoiceCountry["SOMALI"] = "Somali";
EInvoiceCountry["SRI_LANKA"] = "Sri Lanka";
EInvoiceCountry["ST_VINCENT_VE_GRENAD"] = "St Vincent Ve Grenad";
EInvoiceCountry["ST_HELENA_VE_BAGLAN"] = "St. Helena Ve Ba\u011Flan";
EInvoiceCountry["ST_KITTS_VE_NEVIS"] = "St. Kitts Ve Nevis";
EInvoiceCountry["ST_LUCIA"] = "St. Lucia";
EInvoiceCountry["ST_PIERRE_VE_MIQUEL"] = "St. Pierre Ve Miquel";
EInvoiceCountry["SUDAN"] = "Sudan";
EInvoiceCountry["SURINAM"] = "Surinam";
EInvoiceCountry["SURIYE"] = "Suriye";
EInvoiceCountry["SUUDI_ARABISTAN"] = "Suudi Arabistan";
EInvoiceCountry["SVAZILAND"] = "Svaziland";
EInvoiceCountry["SAMOA_BATI_SAMOA"] = "Samoa (Bat\u0131 Samoa)";
EInvoiceCountry["SERBEST_BOLGE_BA"] = "Serbest B\u00F6lge (Ba-Bs)";
EInvoiceCountry["SINGAPUR"] = "Singapur";
EInvoiceCountry["SILI"] = "\u015Eili";
EInvoiceCountry["TACIKISTAN"] = "Tacikistan";
EInvoiceCountry["TAYLAND"] = "Tayland";
EInvoiceCountry["TAYVAN"] = "Tayvan";
EInvoiceCountry["TOGO"] = "Togo";
EInvoiceCountry["TOKELAU"] = "Tokelau";
EInvoiceCountry["TONGA"] = "Tonga";
EInvoiceCountry["TRINIDAD_VE_TOBAGO"] = "Trinidad Ve Tobago";
EInvoiceCountry["TUNUS"] = "Tunus";
EInvoiceCountry["TURKS_VE_CAICOS_ADAS"] = "Turks Ve Caicos Adas";
EInvoiceCountry["TUVALU"] = "Tuvalu";
EInvoiceCountry["TANZANYA_BIRLESIK_C"] = "Tanzanya (Birle\u015Fik C)";
EInvoiceCountry["TURKMENISTAN"] = "T\u00FCrkmenistan";
EInvoiceCountry["UGANDA"] = "Uganda";
EInvoiceCountry["UKRAYNA"] = "Ukrayna";
EInvoiceCountry["UMMAN"] = "Umman";
EInvoiceCountry["URUGUAY"] = "Uruguay";
EInvoiceCountry["URDUN"] = "\u00DCrd\u00FCn";
EInvoiceCountry["VANUATU"] = "Vanuatu";
EInvoiceCountry["VATIKAN"] = "Vatikan";
EInvoiceCountry["VENEZUELLA"] = "Venezuella";
EInvoiceCountry["VIETNAM"] = "Vietnam";
EInvoiceCountry["WALLIS_VE_FUTUNA_ADA"] = "Wallis Ve Futuna Ada";
EInvoiceCountry["YAKUTISTAN"] = "Yakutistan";
EInvoiceCountry["YEMEN"] = "Yemen";
EInvoiceCountry["YENI_KALODENYA_VE_BA"] = "Yeni Kalodenya Ve Ba";
EInvoiceCountry["YENI_ZELANDA"] = "Yeni Zelanda";
EInvoiceCountry["YENI_ZELANDA_OKYANUS"] = "Yeni Zelanda Okyanus";
EInvoiceCountry["YUGOSLAVYAESKI_YUGO"] = "Yugoslavya(Eski Yugo)";
EInvoiceCountry["YUGOSLAVYASIRBISTAN"] = "Yugoslavya(Sirbistan)";
EInvoiceCountry["YUNANISTAN"] = "Yunanistan";
EInvoiceCountry["ZAMBIA"] = "Zambia";
EInvoiceCountry["ZIMBABVE"] = "Zimbabve";
})(EInvoiceCountry || (EInvoiceCountry = {}));
var EInvoiceCountry$1 = EInvoiceCountry;
var EInvoiceUnitType;
(function (EInvoiceUnitType) {
EInvoiceUnitType["GUN"] = "DAY";
EInvoiceUnitType["AY"] = "MON";
EInvoiceUnitType["YIL"] = "ANN";
EInvoiceUnitType["SAAT"] = "HUR";
EInvoiceUnitType["DAKIKA"] = "D61";
EInvoiceUnitType["SANIYE"] = "D62";
EInvoiceUnitType["ADET"] = "C62";
EInvoiceUnitType["PAKET"] = "PA";
EInvoiceUnitType["KUTU"] = "BX";
EInvoiceUnitType["MG"] = "MGM";
EInvoiceUnitType["G"] = "GRM";
EInvoiceUnitType["KG"] = "KGM";
EInvoiceUnitType["LT"] = "LTR";
EInvoiceUnitType["TON"] = "TNE";
EInvoiceUnitType["NET_TON"] = "NT";
EInvoiceUnitType["GROSS_TON"] = "GT";
EInvoiceUnitType["MM"] = "MMT";
EInvoiceUnitType["CM"] = "CMT";
EInvoiceUnitType["M"] = "MTR";
EInvoiceUnitType["KM"] = "KTM";
EInvoiceUnitType["ML"] = "MLT";
EInvoiceUnitType["MM3"] = "MMQ";
EInvoiceUnitType["CM2"] = "CMK";
EInvoiceUnitType["CM3"] = "CMQ";
EInvoiceUnitType["M2"] = "MTK";
EInvoiceUnitType["M3"] = "MTQ";
EInvoiceUnitType["KJ"] = "KJO";
EInvoiceUnitType["CL"] = "CLT";
EInvoiceUnitType["KARAT"] = "CT";
EInvoiceUnitType["KWH"] = "KWH";
EInvoiceUnitType["TON_BASINA_TASIMA_KAPASITESI"] = "CCT";
EInvoiceUnitType["BRUT_KALORI"] = "D30";
EInvoiceUnitType["BIN_LT"] = "D40";
EInvoiceUnitType["SAF_ALKOL_LT"] = "LPA";
EInvoiceUnitType["KGM2"] = "B32";
EInvoiceUnitType["HUCRE_AT"] = "NCL";
EInvoiceUnitType["CIFT"] = "PR";
EInvoiceUnitType["BIN_M3"] = "R9";
EInvoiceUnitType["SET"] = "SET";
EInvoiceUnitType["BIN_ADET"] = "T3";
EInvoiceUnitType["SCM"] = "Q37";
EInvoiceUnitType["NCM"] = "Q39";
EInvoiceUnitType["MMBTU"] = "J39";
EInvoiceUnitType["M3_GUN"] = "G52";
EInvoiceUnitType["DUZINE"] = "DZN";
EInvoiceUnitType["DMK"] = "dm2";
})(EInvoiceUnitType || (EInvoiceUnitType = {}));
var EInvoiceUnitType$1 = EInvoiceUnitType;
var HourlySearchInterval;
(function (HourlySearchInterval) {
HourlySearchInterval["NONE"] = "NONE";
HourlySearchInterval["FIRST_HALF"] = "FIRST_HALF";
HourlySearchInterval["LAST_HALF"] = "LAST_HALF";
})(HourlySearchInterval || (HourlySearchInterval = {}));
var HourlySearchInterval$1 = HourlySearchInterval;
var EInvoiceApiErrorCode;
(function (EInvoiceApiErrorCode) {
/**
* Bilinmeyen bir hata oluştu.
*/
EInvoiceApiErrorCode[EInvoiceApiErrorCode["UNKNOWN_ERROR"] = 1] = "UNKNOWN_ERROR";
/**
* Oturum zaman aşımına uğradı.
*/
EInvoiceApiErrorCode[EInvoiceApiErrorCode["SESSION_TIMEOUT"] = 2] = "SESSION_TIMEOUT";
/**
* Geçersiz API cevabı.
*/
EInvoiceApiErrorCode[EInvoiceApiErrorCode["INVALID_RESPONSE"] = 3] = "INVALID_RESPONSE";
/**
* Geçersiz erişim jetonu.
*/
EInvoiceApiErrorCode[EInvoiceApiErrorCode["INVALID_ACCESS_TOKEN"] = 4] = "INVALID_ACCESS_TOKEN";
/**
* Basit fatura oluşturulamadı.
*/
EInvoiceApiErrorCode[EInvoiceApiErrorCode["BASIC_INVOICE_NOT_CREATED"] = 5] = "BASIC_INVOICE_NOT_CREATED";
/**
* Detaylı fatura bulunamadı.
*/
EInvoiceApiErrorCode[EInvoiceApiErrorCode["INVOICE_NOT_FOUND"] = 6] = "INVOICE_NOT_FOUND";
/**
* Basit fatura bulunamadı.
*/
EInvoiceApiErrorCode[EInvoiceApiErrorCode["BASIC_INVOICE_NOT_FOUND"] = 7] = "BASIC_INVOICE_NOT_FOUND";
/**
* Geçersiz fatura HTML cevabı.
*/
EInvoiceApiErrorCode[EInvoiceApiErrorCode["INVALID_INVOICE_HTML"] = 8] = "INVALID_INVOICE_HTML";
/**
* Kullanıcı (şirket) bilgisi bulunamadı.
*/
EInvoiceApiErrorCode[EInvoiceApiErrorCode["USER_INFORMATION_NOT_FOUND"] = 9] = "USER_INFORMATION_NOT_FOUND";
/**
* Kullanıcı (şirket) bilgileri güncellenemedı.
*/
EInvoiceApiErrorCode[EInvoiceApiErrorCode["USER_INFORMATION_NOT_UPDATED"] = 10] = "USER_INFORMATION_NOT_UPDATED";
/**
* Kayıtlı telefon numarası bulunamadı.
*/
EInvoiceApiErrorCode[EInvoiceApiErrorCode["SAVED_PHONE_NUMBER_NOT_FOUND"] = 11] = "SAVED_PHONE_NUMBER_NOT_FOUND";
/**
* Geçersiz SMS işlem kimliği.
*/
EInvoiceApiErrorCode[EInvoiceApiErrorCode["INVALID_SMS_OPERATION_ID"] = 12] = "INVALID_SMS_OPERATION_ID";
/**
* Temel faturalar imzalanamadı.
*/
EInvoiceApiErrorCode[EInvoiceApiErrorCode["BASIC_INVOICES_COULD_NOT_SIGNED"] = 13] = "BASIC_INVOICES_COULD_NOT_SIGNED";
/**
* Fatura iptal talebi oluşturulamadı.
*/
EInvoiceApiErrorCode[EInvoiceApiErrorCode["INVOICE_CANCEL_REQUEST_NOT_CREATED"] = 14] = "INVOICE_CANCEL_REQUEST_NOT_CREATED";
/**
* Basit fatura silinemedi.
*/
EInvoiceApiErrorCode[EInvoiceApiErrorCode["BASIC_INVOICE_NOT_DELETED"] = 15] = "BASIC_INVOICE_NOT_DELETED";
/**
* Geçersiz anonim kullanıcı kimliği.
*/
EInvoiceApiErrorCode[EInvoiceApiErrorCode["INVALID_ANONYMOUS_USER_ID"] = 16] = "INVALID_ANONYMOUS_USER_ID";
/**
* Şirket bilgileri bulunamadı.
*/
EInvoiceApiErrorCode[EInvoiceApiErrorCode["COMPANY_INFORMATION_NOT_FOUND"] = 17] = "COMPANY_INFORMATION_NOT_FOUND";
/**
* Faturaya ait xml dosyası bulunamadı.
*/
EInvoiceApiErrorCode[EInvoiceApiErrorCode["INVOICE_XML_FILE_NOT_FOUND"] = 18] = "INVOICE_XML_FILE_NOT_FOUND";
/**
* Geçersiz fatura zip dosyası yanıtı.
*/
EInvoiceApiErrorCode[EInvoiceApiErrorCode["INVALID_INVOICE_ZIP_FILE_RESPONSE"] = 19] = "INVALID_INVOICE_ZIP_FILE_RESPONSE";
})(EInvoiceApiErrorCode || (EInvoiceApiErrorCode = {}));
var EInvoiceApiErrorCode$1 = EInvoiceApiErrorCode;
var EInvoiceCurrencyType;
(function (EInvoiceCurrencyType) {
EInvoiceCurrencyType["AFGHANI"] = "AFN";
EInvoiceCurrencyType["ALGERIAN_DINAR"] = "DZD";
EInvoiceCurrencyType["ARGENTINE_PESO"] = "ARS";
EInvoiceCurrencyType["ARUBAN_GUILDER"] = "AWG";
EInvoiceCurrencyType["AUSTRALIAN_DOLLAR"] = "AUD";
EInvoiceCurrencyType["AZERBAIJANIAN_MANAT"] = "AZM";
EInvoiceCurrencyType["BAHAMIAN_DOLLAR"] = "BSD";
EInvoiceCurrencyType["BAHRAINI_DINAR"] = "BHD";
EInvoiceCurrencyType["BAHT"] = "THB";
EInvoiceCurrencyType["BALBOA"] = "PAB";
EInvoiceCurrencyType["BARBADOS_DOLLAR"] = "BBD";
EInvoiceCurrencyType["BELARUSSIAN_RUBLE"] = "BYR";
EInvoiceCurrencyType["BELIZE_DOLLAR"] = "BZD";
EInvoiceCurrencyType["BERMUDIAN_DOLLAR"] = "BMD";
EInvoiceCurrencyType["BOLIVAR"] = "VEB";
EInvoiceCurrencyType["BOLIVIANO"] = "BOB";
EInvoiceCurrencyType["BULGARIAN_LEV"] = "BGN";
EInvoiceCurrencyType["BRAZILIAN_REAL"] = "BRL";
EInvoiceCurrencyType["BRUNEI_DOLLAR"] = "BND";
EInvoiceCurrencyType["BURUNDI_FRANC"] = "BIF";
EInvoiceCurrencyType["CANADIAN_DOLLAR"] = "CAD";
EInvoiceCurrencyType["CAPE_VERDE_ESCUDO"] = "CVE";
EInvoiceCurrencyType["CAYMAN_ISLANDS_DOLLAR"] = "KYD";
EInvoiceCurrencyType["CEDI"] = "GHC";
EInvoiceCurrencyType["CFA_FRANC_XAF"] = "XAF";
EInvoiceCurrencyType["CFA_FRANC_XOF"] = "XOF";
EInvoiceCurrencyType["CFP_FRANC_XPF"] = "XPF";
EInvoiceCurrencyType["CHILEAN_PESO"] = "CLP";
EInvoiceCurrencyType["COLOMBIAN_PESO"] = "COP";
EInvoiceCurrencyType["COMORO_FRANC"] = "KMF";
EInvoiceCurrencyType["CORDOBA_ORO"] = "NIO";
EInvoiceCurrencyType["COSTA_RICAN_COLON"] = "CRC";
EInvoiceCurrencyType["CUBAN_PESO"] = "CUP";
EInvoiceCurrencyType["CYPRUS_POUND"] = "CYP";
EInvoiceCurrencyType["CZECH_KORUNA"] = "CZK";
EInvoiceCurrencyType["DANISH_KRONE"] = "DKK";
EInvoiceCurrencyType["DALASI"] = "GMD";
EInvoiceCurrencyType["DENAR"] = "MKD";
EInvoiceCurrencyType["DIRHAM"] = "AED";
EInvoiceCurrencyType["DJIBOUTI_FRANC"] = "DJF";
EInvoiceCurrencyType["DOBRA"] = "STD";
EInvoiceCurrencyType["DOMINICAN_PESO"] = "DOP";
EInvoiceCurrencyType["DONG"] = "VND";
EInvoiceCurrencyType["DRAM"] = "AMD";
EInvoiceCurrencyType["EAST_CARRIBEAN_DOLLAR"] = "XCD";
EInvoiceCurrencyType["EGYPTIAN_POUND"] = "EGP";
EInvoiceCurrencyType["EL_SALVADOR_COLON"] = "SVC";
EInvoiceCurrencyType["ETHOPIAN_BIRR"] = "ETB";
EInvoiceCurrencyType["EURO"] = "EUR";
EInvoiceCurrencyType["FALKLAND_ISLANDS_POUND"] = "FKP";
EInvoiceCurrencyType["FIJI_DOLLAR"] = "FJD";
EInvoiceCurrencyType["FORINT"] = "HUF";
EInvoiceCurrencyType["FRANC_CONGOLAIS"] = "CDF";
EInvoiceCurrencyType["GIBRALTAR_POUND"] = "GIP";
EInvoiceCurrencyType["GOLD"] = "XAU";
EInvoiceCurrencyType["GOURDE"] = "HTG";
EInvoiceCurrencyType["GUARANI"] = "PYG";
EInvoiceCurrencyType["GUINEA_FRANC"] = "GNF";
EInvoiceCurrencyType["GUYANA_DOLLAR"] = "GYD";
EInvoiceCurrencyType["HKD"] = "HKD";
EInvoiceCurrencyType["HRYVNIA"] = "UAH";
EInvoiceCurrencyType["ICELAND_KRONA"] = "ISK";
EInvoiceCurrencyType["INDIAN_RUPEE"] = "INR";
EInvoiceCurrencyType["IRAQI_DINAR"] = "IQD";
EInvoiceCurrencyType["IRANIAN_RIAL"] = "IRR";
EInvoiceCurrencyType["JAMAICAN_DOLLAR"] = "JMD";
EInvoiceCurrencyType["JORDANIAN_DINAR"] = "JOD";
EInvoiceCurrencyType["KENYAN_SHILLING"] = "KES";
EInvoiceCurrencyType["KINA"] = "PGK";
EInvoiceCurrencyType["KIP"] = "LAK";
EInvoiceCurrencyType["KROON"] = "EEK";
EInvoiceCurrencyType["KUNA"] = "HRK";
EInvoiceCurrencyType["KUWAITI_DINAR"] = "KWD";
EInvoiceCurrencyType["KWACHA_MWK"] = "MWK";
EInvoiceCurrencyType["KWACHA_ZMK"] = "ZMK";
EInvoiceCurrencyType["KWANZA"] = "AOA";
EInvoiceCurrencyType["KYAT"] = "MMK";
EInvoiceCurrencyType["LARI"] = "GEL";
EInvoiceCurrencyType["LATVIAN_LATS"] = "LVL";
EInvoiceCurrencyType["LEBANESE_POUND"] = "LBP";
EInvoiceCurrencyType["LEK"] = "ALL";
EInvoiceCurrencyType["LEMPIRA"] = "HNL";
EInvoiceCurrencyType["LEONE"] = "SLL";
EInvoiceCurrencyType["LEU"] = "ROL";
EInvoiceCurrencyType["LIBERIAN_DOLLAR"] = "LRD";
EInvoiceCurrencyType["LIBYAN_DINAR"] = "LYD";
EInvoiceCurrencyType["LILANGENI"] = "SZL";
EInvoiceCurrencyType["LITHUANIAN_LITAS"] = "LTL";
EInvoiceCurrencyType["LOTI"] = "LSL";
EInvoiceCurrencyType["MALAGASY_FRANC"] = "MGF";
EInvoiceCurrencyType["MALAYSIAN_RINGGIT"] = "MYR";
EInvoiceCurrencyType["MALTESE_LIRA"] = "MTL";
EInvoiceCurrencyType["MANAT"] = "TMM";
EInvoiceCurrencyType["MAURITIUS_RUPEE"] = "MUR";
EInvoiceCurrencyType["METICAL"] = "MZM";
EInvoiceCurrencyType["MEXICAN_PESO"] = "MXN";
EInvoiceCurrencyType["MOLDOVAN_LEU"] = "MDL";
EInvoiceCurrencyType["MORROCAN_DIRHAM"] = "MAD";
EInvoiceCurrencyType["NAIRA"] = "NGN";
EInvoiceCurrencyType["NAKFA"] = "ERN";
EInvoiceCurrencyType["NAMIBIA_DOLLAR"] = "NAD";
EInvoiceCurrencyType["NEPALESE_RUPEE"] = "NPR";
EInvoiceCurrencyType["NETHERLANDS_ANTILLIAN_GUILDER"] = "ANG";
EInvoiceCurrencyType["NEW_DINAR"] = "YUM";
EInvoiceCurrencyType["NEW_ISRAELI_SHEQEL"] = "ILS";
EInvoiceCurrencyType["NEW_TAIWAN_DOLLAR"] = "TWD";
EInvoiceCurrencyType["NEW_ZEALAND_DOLLAR"] = "NZD";
EInvoiceCurrencyType["NORTH_KOREAN_WON"] = "KPW";
EInvoiceCurrencyType["NORWEGIAN_KRONE"] = "NOK";
EInvoiceCurrencyType["NGULTRUM"] = "BTN";
EInvoiceCurrencyType["NUEVO_SOL"] = "PEN";
EInvoiceCurrencyType["OUGUIYA"] = "MRO";
EInvoiceCurrencyType["TONGA_PAANGASI"] = "TOP";
EInvoiceCurrencyType["PAKISTAN_RUPEE"] = "PKR";
EInvoiceCurrencyType["PALLADIUM"] = "XPD";
EInvoiceCurrencyType["PATACA"] = "MOP";
EInvoiceCurrencyType["PESO_URUGUAYO"] = "UYU";
EInvoiceCurrencyType["PHILIPPINE_PESO"] = "PHP";
EInvoiceCurrencyType["PLATINUM"] = "XPT";
EInvoiceCurrencyType["POUND_STERLING"] = "GBP";
EInvoiceCurrencyType["PULA"] = "BWP";
EInvoiceCurrencyType["QATARI_RIAL"] = "QAR";
EInvoiceCurrencyType["QUETZAL"] = "GTQ";
EInvoiceCurrencyType["RAND"] = "ZAR";
EInvoiceCurrencyType["RIAL_OMANI"] = "OMR";
EInvoiceCurrencyType["RIEL"] = "KHR";
EInvoiceCurrencyType["RUFIYAA"] = "MVR";
EInvoiceCurrencyType["RUPIAH"] = "IDR";
EInvoiceCurrencyType["RUSSIAN_RUBLE"] = "RUB";
EInvoiceCurrencyType["RWANDA_FRANC"] = "RWF";
EInvoiceCurrencyType["SAUDI_RIYAL"] = "SAR";
EInvoiceCurrencyType["SDR"] = "XDR";
EInvoiceCurrencyType["SEYCHELLES_RUPEE"] = "SCR";
EInvoiceCurrencyType["SILVER"] = "XAG";
EInvoiceCurrencyType["SINGAPORE_DOLLAR"] = "SGD";
EInvoiceCurrencyType["SLOVAK_KORUNA"] = "SKK";
EInvoiceCurrencyType["SOLOMON_ISLANDS_DOLLAR"] = "SBD";
EInvoiceCurrencyType["SOMALI_SHILLING"] = "SOS";
EInvoiceCurrencyType["SRI_LANKA_RUPEE"] = "LKR";
EInvoiceCurrencyType["SOM"] = "KGS";
EInvoiceCurrencyType["SOMONI"] = "TJS";
EInvoiceCurrencyType["ST_HELENA_POUND"] = "SHP";
EInvoiceCurrencyType["SUDANESE_DINAR"] = "SDD";
EInvoiceCurrencyType["SURINAME_GUILDER"] = "SRG";
EInvoiceCurrencyType["SWEDISH_KRONA"] = "SEK";
EInvoiceCurrencyType["SWISS_FRANC"] = "CHF";
EInvoiceCurrencyType["SYRIAN_POUND"] = "SYP";
EInvoiceCurrencyType["TAKA"] = "BDT";
EInvoiceCurrencyType["TALA"] = "WST";
EInvoiceCurrencyType["TANZANIAN_SHILLING"] = "TZS";
EInvoiceCurrencyType["TENGE"] = "KZT";
EInvoiceCurrencyType["TOLAR"] = "SIT";
EInvoiceCurrencyType["TRINIDAD_AND_TOBAGO_DOLLAR"] = "TTD";
EInvoiceCurrencyType["TUGRIK"] = "MNT";
EInvoiceCurrencyType["TUNISIAN_DINAR"] = "TND";
EInvoiceCurrencyType["TURK_LIRASI"] = "TRY";
EInvoiceCurrencyType["UGANDA_SHILLING"] = "UGX";
EInvoiceCurrencyType["US_DOLLAR"] = "USD";
EInvoiceCurrencyType["UZBEKISTAN_SUM"] = "UZS";
EInvoiceCurrencyType["VATU"] = "VUV";
EInvoiceCurrencyType["WON"] = "KRW";
EInvoiceCurrencyType["YEMENI_RIAL"] = "YER";
EInvoiceCurrencyType["YEN"] = "JPY";
EInvoiceCurrencyType["YUAN_RENMINBI"] = "CNY";
EInvoiceCurrencyType["ZIMBABWE_DOLLAR"] = "ZWD";
EInvoiceCurrencyType["ZLOTY"] = "PLN";
})(EInvoiceCurrencyType || (EInvoiceCurrencyType = {}));
var EInvoiceCurrencyType$1 = EInvoiceCurrencyType;
var InvoiceApprovalStatus;
(function (InvoiceApprovalStatus) {
InvoiceApprovalStatus["APPROVED"] = "Onayland\u0131";
InvoiceApprovalStatus["UNAPPROVED"] = "Onaylanmad\u0131";
InvoiceApprovalStatus["DELETED"] = "Silinmi\u015F";
})(InvoiceApprovalStatus || (InvoiceApprovalStatus = {}));
var InvoiceApprovalStatus$1 = InvoiceApprovalStatus;
function mappingDraftInvoiceKeys(payload) {
if (!isPlainObject(payload)) {
throw new EInvoiceTypeError('Geçersiz fatura yükü.');
}
const { uuid: uuid$1 = uuid.v1(), documentNumber = '', date, time, currency = EInvoiceCurrencyType$1.TURK_LIRASI, currencyRate = 0, invoiceType = InvoiceType$1.SATIS, whichType = '5000/30000', taxOrIdentityNumber = '11111111111', buyerTitle = '', buyerFirstName = '', buyerLastName = '', buildingName = '', buildingNumber = '', doorNumber = '', town = '', taxOffice = '', country = EInvoiceCountry$1.TURKIYE, fullAddress = '', district = '', city = '', postNumber = '', phoneNumber = '', faxNumber = '', email = '', website = '', refundTable = [], specialBaseAmount = 0, specialBasePercent = 0, specialBaseTaxAmount = 0, taxType = ' ', products, type = 'İskonto', base, productsTotalPrice, totalDiscountOrIncrement = 0, calculatedVAT = 0, totalTaxes = 0, includedTaxesTotalPrice, paymentPrice, note = '', orderNumber = '', orderDate = '', waybillNumber = '', waybillDate = '', receiptNumber = '', receiptDate = '', receiptTime = '', receiptType = '', zReportNumber = '', okcSerialNumber = '', ...other } = payload;
if (!uuid.validate(uuid$1)) {
throw new EInvoiceTypeError("Geçersiz fatura UUID'i.");
}
greaterThanValidator(base, 0, 'base');
greaterThanValidator(paymentPrice, 0, 'paymentPrice');
greaterThanValidator(productsTotalPrice, 0, 'productsTotalPrice');
greaterThanValidator(includedTaxesTotalPrice, 0, 'includedTaxesTotalPrice');
return {
...other,
faturaUuid: uuid$1,
belgeNumarasi: documentNumber,
faturaTarihi: getDateFormat(date),
saat: getDateFormat(time, 'time'),
paraBirimi: currency,
dovzTLkur: currencyRate.toString(),
faturaTipi: invoiceType,
hangiTip: whichType,
vknTckn: taxOrIdentityNumber,
aliciUnvan: buyerTitle,
aliciAdi: buyerFirstName,
aliciSoyadi: buyerLastName,
binaAdi: buildingName,
binaNo: buildingNumber,
kapiNo: doorNumber,
kasabaKoy: town,
vergiDairesi: taxOffice,
ulke: country,
mahalleSemtIlce: district,
bulvarcaddesokak: fullAddress,
sehir: city,
postaKodu: postNumber,
tel: phoneNumber,
fax: faxNumber,
eposta: email,
websitesi: website,
iadeTable: refundTable.map((refund, index) => {
const { invoiceNumber, date, ...other } = refund;
notEmptyStringValidator(invoiceNumber, `refundTable[${index}].invoiceNumber`);
return {
...other,
faturaNo: invoiceNumber,
duzenlenmeTarihi: getDateFormat(date)
};
}),
ozelMatrahTutari: specialBaseAmount.toString(),
ozelMatrahOrani: specialBasePercent,
ozelMatrahVergiTutari: specialBaseTaxAmount.toString(),
vergiCesidi: taxType,
malHizmetTable: products.map((product, index) => {
const { name, quantity = 1, unitType = EInvoiceUnitType$1.ADET, unitPrice, price, vatRate = 0, taxRate = 0, totalAmount, vatAmount = 0, vatAmountOfTax = 0, specialBaseAmount = 0, discountOrIncrement = 'İskonto', discountOrIncrementRate = 0, discountOrIncrementAmount = 0, discountOrIncrementReason = '', ...other } = product;
notEmptyStringValidator(name, `products[${index}].name`);
greaterThanValidator(price, 0, `products[${index}].price`);
greaterThanValidator(quantity, 0, `products[${index}].quantity`);
greaterThanValidator(unitPrice, 0, `products[${index}].unitPrice`);
greaterThanValidator(totalAmount, 0, `products[${index}].totalAmount`);
return {
...other,
malHizmet: name,
miktar: quantity,
birim: unitType,
birimFiyat: unitPrice.toString(),
fiyat: price.toString(),
iskontoArttm: discountOrIncrement,
iskontoOrani: discountOrIncrementRate,
iskontoTutari: discountOrIncrementAmount.toString(),
iskontoNedeni: discountOrIncrementReason,
malHizmetTutari: totalAmount.toString(),
kdvOrani: vatRate.toString(),
kdvTutari: vatAmount.toString(),
vergiOrani: taxRate,
vergininKdvTutari: vatAmountOfTax.toString(),
ozelMatrahTutari: specialBaseAmount.toString()
};
}),
tip: type,
matrah: base.toString(),
malhizmetToplamTutari: productsTotalPrice.toString(),
toplamIskonto: totalDiscountOrIncrement.toString(),
hesaplanankdv: calculatedVAT.toString(),
vergilerToplami: totalTaxes.toString(),
vergilerDahilToplamTutar: includedTaxesTotalPrice.toString(),
odenecekTutar: paymentPrice.toString(),
not: note || `YALNIZ ${paymentPriceToText(paymentPrice)}`,
siparisNumarasi: orderNumber,
siparisTarihi: orderDate ? getDateFormat(orderDate) : '',
irsaliyeNumarasi: waybillNumber,
irsaliyeTarihi: waybillDate ? getDateFormat(waybillDate) : '',
fisNo: receiptNumber,
fisTarihi: receiptDate ? getDateFormat(receiptDate) : '',
fisSaati: receiptTime,
fisTipi: receiptType,
zRaporNo: zReportNumber,
okcSeriNo: okcSerialNumber
};
}
function mappingBasicInvoiceKeys(value, mappingWithTurkishKeys) {
if (!isPlainObject(value)) {
throw new EInvoiceTypeError('Geçersiz fatura verisi.');
}
if (mappingWithTurkishKeys) {
const { uuid = '', documentNumber = '', taxOrIdentityNumber = '', titleOrFullName = '', documentDate = '', documentType = '', approvalStatus = '', ...other } = value;
return {
...other,
ettn: uuid,
belgeNumarasi: documentNumber,
aliciVknTckn: taxOrIdentityNumber,
aliciUnvanAdSoyad: titleOrFullName,
belgeTarihi: documentDate,
belgeTuru: documentType,
onayDurumu: approvalStatus
};
}
const { ettn: uuid = '', belgeNumarasi: documentNumber = '', aliciVknTckn: taxOrIdentityNumber = '', aliciUnvanAdSoyad: titleOrFullName = '', belgeTarihi: documentDate = '', belgeTuru: documentType = '', onayDurumu: approvalStatus = '', ...other } = value;
return {
...other,
uuid,
documentNumber,
taxOrIdentityNumber,
titleOrFullName,
documentDate,
documentType,
approvalStatus
};
}
function mappingUserInformationKeys(value, mappingWithTurkishKeys) {
if (!isPlainObject(value)) {
throw new EInvoiceTypeError('Kullanıcı bilgisi verisi mevcut değil.');
}
if (mappingWithTurkishKeys) {
const { title = '', firstName = '', lastName = '', taxOrIdentityNumber = '', email = '', website = '', recordNumber = '', mersisNumber = '', taxOffice = '', street = '', buildingName = '', buildingNumber = '', doorNumber = '', town = '', city = '', district = '', postNumber = '', country = '', phoneNumber = '', faxNumber = '', businessCenter = '', ...other } = value;
return {
...other,
unvan: title,
ad: firstName,
soyad: lastName,
vknTckn: taxOrIdentityNumber,
ePostaAdresi: email,
webSitesiAdresi: website,
sicilNo: recordNumber,
mersisNo: mersisNumber,
vergiDairesi: taxOffice,
cadde: street,
apartmanAdi: buildingName,
apartmanNo: buildingNumber,
kapiNo: doorNumber,
kasaba: town,
il: city,
ilce: district,
postaKodu: postNumber,
ulke: country,
telNo: phoneNumber,
faksNo: faxNumber,
isMerkezi: businessCenter
};
}
const { unvan: title = '', ad: firstName = '', soyad: lastName = '', vknTckn: taxOrIdentityNumber = '', ePostaAdresi: email = '', webSitesiAdresi: website = '', sicilNo: recordNumber = '', mersisNo: mersisNumber = '', vergiDairesi: taxOffice = '', cadde: street = '', apartmanAdi: buildingName = '', apartmanNo: buildingNumber = '', kapiNo: doorNumber = '', kasaba: town = '', il: city = '', ilce: district = '', postaKodu: postNumber = '', ulke: country = '', telNo: phoneNumber = '', faksNo: faxNumber = '', isMerkezi: businessCenter = '', ...other } = value;
return {
...other,
title,
firstName,
lastName,
taxOrIdentityNumber,
email,
website,
recordNumber,
mersisNumber,
taxOffice,
street,
buildingName,
buildingNumber,
doorNumber,
town,
city,
district,
postNumber,
country,
phoneNumber,
faxNumber,
businessCenter
};
}
function mappingCompanyInformationKeys(value, mappingWithTurkishKeys) {
if (!isPlainObject(value)) {
throw new EInvoiceTypeError('Şirket bilgisi verisi mevcut değil.');
}
const { unvan: title = '', adi: firstName = '', soyadi: lastName = '', vergiDairesi: taxOffice = '', ...other } = value;
return {
...other,
title,
firstName,
lastName,
taxOffice
};
}
function mappingBasicInvoiceIssuedToMeKeys(value, mappingWithTurkishKeys) {
if (!isPlainObject(value)) {
throw new EInvoiceTypeError('Geçersiz fatura verisi.');
}
if (mappingWithTurkishKeys) {
const { uuid = '', documentNumber = '', taxOrIdentityNumber = '', titleOrFullName = '', documentDate = '', documentType = '', approvalStatus = '', ...other } = value;
return {
...other,
ettn: uuid,
belgeNumarasi: documentNumber,
saticiVknTckn: taxOrIdentityNumber,
saticiUnvanAdSoyad: titleOrFullName,
belgeTarihi: documentDate,
belgeTuru: documentType,
onayDurumu: approvalStatus
};
}
const { ettn: uuid = '', belgeNumarasi: documentNumber = '', saticiVknTckn: taxOrIdentityNumber = '', saticiUnvanAdSoyad: titleOrFullName = '', belgeTarihi: documentDate = '', belgeTuru: documentType = '', onayDurumu: approvalStatus = '', ...other } = value;
return {
...other,
uuid,
documentNumber,
taxOrIdentityNumber,
titleOrFullName,
documentDate,
documentType,
approvalStatus
};
}
function paramsToArgs(params, name) {
const args = [];
for (const key in params) {
args.push(`--${name}`, key, `${params[key]}`);
}
return args;
}
function xsltproc(args, options) {
const { params = {}, stringParams = {}, xsltprocExecutablePath = '/usr/bin/xsltproc' } = options || {};
return new Promise((resolve, reject) => {
const cmd = node_child_process.spawn(xsltprocExecutablePath, [
...paramsToArgs(params, 'param'),
...paramsToArgs(stringParams, 'stringparam