Browse Source

deal with the extraxyion if xml file already in folder

marton levente 8 months ago
parent
commit
e1b2e12c08
2 changed files with 21 additions and 15 deletions
  1. 18 12
      anafapi/anafoauth.py
  2. 3 3
      tests/test_anafoauth.py

+ 18 - 12
anafapi/anafoauth.py

@@ -257,22 +257,28 @@ class Efactoauth(Anafoauth):
         if path:
         if path:
             inv_zip = ZipFile(path, mode='r')
             inv_zip = ZipFile(path, mode='r')
             name = [name for name in inv_zip.namelist() if 'semnatura' not in name]
             name = [name for name in inv_zip.namelist() if 'semnatura' not in name]
+            files_in_folder = os.listdir(dest_f)
+            xml_files = [file for file in files_in_folder if file.lower().endswith('.xml')]
             # print(os.path.join(dest_f, name[0].replace('.xml', '') + '_booked.xml'))
             # print(os.path.join(dest_f, name[0].replace('.xml', '') + '_booked.xml'))
-            if not os.path.exists(os.path.join(dest_f, name[0].replace('.xml', '') + '_booked.xml')):
-                self.xml_inv = self._extract_zipfile(inv_zip, dest_f=dest_f)
-            # print(self.xml_inv)
-            # if os.path.exists(self.xml_inv.replace('.xml', '') + '_booked.xml'):
-            #     os.remove(self.xml_inv)
-                return self.xml_inv
+            if not xml_files:
+                if not os.path.exists(os.path.join(dest_f, name[0].replace('.xml', '') + '_booked.xml')):
+                    self.xml_inv = self._extract_zipfile(inv_zip, dest_f=dest_f)
+                # print(self.xml_inv)
+                # if os.path.exists(self.xml_inv.replace('.xml', '') + '_booked.xml'):
+                #     os.remove(self.xml_inv)
+                    return self.xml_inv
         else:
         else:
             inv_zip = ZipFile(io.BytesIO(self.zip_inv), mode='r')
             inv_zip = ZipFile(io.BytesIO(self.zip_inv), mode='r')
             name = [name for name in inv_zip.namelist() if 'semnatura' not in name]
             name = [name for name in inv_zip.namelist() if 'semnatura' not in name]
-            if not os.path.exists(os.path.join(dest_f, name[0].replace('.xml', '') + '_booked.xml')):
-                self.xml_inv = self._extract_zipfile(inv_zip, dest_f=dest_f)
-            # print(self.xml_inv.replace('.xml', '') + '_booked.xml')
-            # if os.path.exists(self.xml_inv.replace('.xml', '') + '_booked.xml'):
-            #     os.remove(self.xml_inv)
-                return self.xml_inv
+            files_in_folder = os.listdir(dest_f)
+            xml_files = [file for file in files_in_folder if file.lower().endswith('.xml')]
+            if not xml_files:
+                if not os.path.exists(os.path.join(dest_f, name[0].replace('.xml', '') + '_booked.xml')):
+                    self.xml_inv = self._extract_zipfile(inv_zip, dest_f=dest_f)
+                # print(self.xml_inv.replace('.xml', '') + '_booked.xml')
+                # if os.path.exists(self.xml_inv.replace('.xml', '') + '_booked.xml'):
+                #     os.remove(self.xml_inv)
+                    return self.xml_inv
 
 
     def parse_inv(self, invoice: os.path=None) -> Invoice:
     def parse_inv(self, invoice: os.path=None) -> Invoice:
         if invoice:
         if invoice:

+ 3 - 3
tests/test_anafoauth.py

@@ -159,7 +159,7 @@ class efactTest(unittest.TestCase):
 if __name__ == "__main__":
 if __name__ == "__main__":
     # unittest.main()
     # unittest.main()
     # efactTest().test_add_invoice()
     # efactTest().test_add_invoice()
-    # efactTest().test_get_all_messages()
-    # efactTest().test_rename_all('c:/Users/levi/git/anafapi/tests/17259191/', kind='seller')
-    efactTest().test_rename_all('/home/deeejas/git/anafapi/tests/17259191', kind='buyer')
+    efactTest().test_get_all_messages()
+    # efactTest().test_rename_all('c:/Users/levi/git/anafapi/tests/17259191', kind='seller')
+    # efactTest().test_rename_all('/home/deeejas/git/anafapi/tests/17259191', kind='buyer')
     # anoauth.get_token()
     # anoauth.get_token()