diff --git a/Test/tum_testler.py b/Test/tum_testler.py index f5a3a17..a374765 100644 --- a/Test/tum_testler.py +++ b/Test/tum_testler.py @@ -16,6 +16,7 @@ def test_fatura_olustur(): fatura = portal.fatura_olustur( tarih = "29/05/2023", saat = "14:28:37", + para_birimi = "USD", vkn_veya_tckn = "11111111111", ad = "Ömer Faruk", soyad = "Sancak", diff --git a/eArsivPortal/Core/__init__.py b/eArsivPortal/Core/__init__.py index ca1f99f..0abb30a 100644 --- a/eArsivPortal/Core/__init__.py +++ b/eArsivPortal/Core/__init__.py @@ -135,6 +135,7 @@ def fatura_olustur( self, tarih:str = "07/10/1995", saat:str = "14:28:37", + para_birimi:str = "TRY", vkn_veya_tckn:str = "11111111111", ad:str = "Ömer Faruk", soyad:str = "Sancak", @@ -149,6 +150,7 @@ def fatura_olustur( fatura = fatura_ver( tarih = tarih or datetime.now(timezone("Turkey")).strftime("%d/%m/%Y"), saat = saat, + para_birimi = para_birimi, vkn_veya_tckn = vkn_veya_tckn, ad = kisi_bilgi.adi or ad, soyad = kisi_bilgi.soyadi or soyad, diff --git a/eArsivPortal/Libs/FaturaVer.py b/eArsivPortal/Libs/FaturaVer.py index 7b502e9..c7a5836 100644 --- a/eArsivPortal/Libs/FaturaVer.py +++ b/eArsivPortal/Libs/FaturaVer.py @@ -1,10 +1,12 @@ # Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır. from uuid import uuid4 +from KurGetir import kurGetir def fatura_ver( tarih:str = "07/10/1995", saat:str = "14:28:37", + para_birimi:str = "TRY", vkn_veya_tckn:str = "11111111111", ad:str = "Ömer Faruk", soyad:str = "Sancak", @@ -17,13 +19,14 @@ def fatura_ver( # matrah = fiyat / 1.18 # ! %18 matrah = fiyat / 1.20 # ! %20 kdv = fiyat - matrah + doviz = "0" if para_birimi == "TRY" else kurGetir(para_birimi) return { "faturaUuid" : f"{uuid4()}", "belgeNumarasi" : "", "faturaTarihi" : tarih, "saat" : saat, - "paraBirimi" : "TRY", - "dovzTLkur" : "0", + "paraBirimi" : para_birimi, + "dovzTLkur" : doviz, "faturaTipi" : "SATIS", "hangiTip" : "5000/30000", "vknTckn" : vkn_veya_tckn, diff --git a/eArsivPortal/Libs/KurGetir.py b/eArsivPortal/Libs/KurGetir.py new file mode 100644 index 0000000..f56d388 --- /dev/null +++ b/eArsivPortal/Libs/KurGetir.py @@ -0,0 +1,34 @@ +from Oturum import legacy_session +import xmltodict + +def kurGetir(kur_kodu:str = "USD"): + """ + TCMB'nin günlük döviz kurları XML dosyasından belirtilen döviz kurunu getirir. + + Args: + kur_kodu (str): Döviz kuru kodu (örneğin, "USD"). + + Returns: + str: Belirtilen döviz kurunun satış bilgilerini içeren string. + """ + kurlar = [] + result = None + + url = "https://www.tcmb.gov.tr/kurlar/today.xml" + oturum = legacy_session() + try: + response = oturum.get(url=url) + response.raise_for_status() #response hatalarını yakalamak için + data = xmltodict.parse(response.text) #xml verisini dict'e çevirir + kurlar = [ kur for kur in data["Tarih_Date"].get("Currency")] #tüm kurlar listeye alınır + + except Exception as e: + print(f"Döviz kuru getirilirken bir Hata oluştu: {e}") + return None + + for kur in kurlar: + if kur["@Kod"] == kur_kodu: + result = kur + break + + return result.get("ForexSelling") diff --git a/setup.py b/setup.py index 71f7e3f..03a8ba2 100644 --- a/setup.py +++ b/setup.py @@ -31,7 +31,8 @@ "requests", "pydantic", "parsel", - "cssselect" + "cssselect", + "xmltodict" ], # ? PyPI Bilgileri