import pandas as pd
import os
import glob
import shutil
from datetime import datetime

# Ścieżki na serwerze webd.pl
folder = "/home/emil1235/public_html/lukmac.com/faktury"
master_file = os.path.join(folder, "faktury.xlsx")
archive_folder = os.path.join(folder, "archive")

# Stwórz folder archive jeśli nie istnieje
if not os.path.exists(archive_folder):
    os.makedirs(archive_folder)

def process_files():
    # Szukamy nowych plików .xlsx (pomijamy główny plik)
    files = [f for f in glob.glob(os.path.join(folder, "*.xlsx")) 
             if os.path.basename(f) != "faktury.xlsx"]
    
    if not files:
        return

    # Wczytaj główny plik lub stwórz nowy
    if os.path.exists(master_file):
        df_master = pd.read_excel(master_file, dtype=str)
    else:
        df_master = pd.DataFrame()

    for file in files:
        try:
            df_new = pd.read_excel(file, dtype=str)
            
            # Sprawdzanie duplikatów po Numerze Faktury
            for _, row in df_new.iterrows():
                nr_faktury = str(row.get('Numer faktury', '')).strip()
                
                if df_master.empty or nr_faktury not in df_master['Numer faktury'].values:
                    df_master = pd.concat([df_master, pd.DataFrame([row])], ignore_index=True)
                    print(f"Dodano fakturę: {nr_faktury}")
                else:
                    print(f"Pominięto duplikat: {nr_faktury}")

            # Przenieś do archiwum
            shutil.move(file, os.path.join(archive_folder, os.path.basename(file)))
            
        except Exception as e:
            print(f"Błąd przy pliku {file}: {e}")

    # Sortowanie po dacie (format DD/MM/YYYY)
    if not df_master.empty:
        df_master['Data_temp'] = pd.to_datetime(df_master['Data zakupu'], dayfirst=True, errors='coerce')
        df_master = df_master.sort_values(by='Data_temp', ascending=False)
        df_master = df_master.drop(columns=['Data_temp'])
        df_master.to_excel(master_file, index=False)
        print("Zaktualizowano plik faktury.xlsx")

if __name__ == "__main__":
    process_files()
