import os
from configparser import ConfigParser
from glob import glob
import csv

fieldnames = [
    "codice_ricetta",
    "cliente",
    "codice_prodotto",
    "descrizione",
    "pressione_di_test",
    "pressione_di_test_delta_minimo",
    "pressione_di_test_delta_massimo",
    "tempo_riempimento",
    "tempo_assestamento",
    "tempo_di_test",
    #"prova_tenuta_abilitata_2"
]

# FOLDER CONFIGURATION
in_path="../../tmp/ricette/"
files=glob(f"{in_path}/**/*.dsg",recursive=True)
csv_path="../test/csv_import/importazione da banco preformatura.csv"
data=[]

#FOR EACH FILE CREATE A TEST RECIPE
for file in files:
    print(f"READING {file}")
    config = ConfigParser(allow_no_value=True)
    config.optionxform = str
    read = config.read(file)
    read_values=dict(config._sections)
    read_values= {key.lower():val for key,val in read_values.items()}
    line={
        "codice_ricetta":list(read_values["numero disegno"].keys())[0],
        "cliente":list(read_values["cliente"].keys())[0],
        "codice_prodotto":list(read_values["numero disegno"].keys())[0],
        "descrizione":os.path.basename(file),
        "pressione_di_test":str(int(list(read_values["prova2:pressione di test"].keys())[0])*10),
        "pressione_di_test_delta_minimo":list(read_values["prova2:tolleranza"].keys())[0],
        "pressione_di_test_delta_massimo":list(read_values["prova2:tolleranza"].keys())[0],
        "tempo_riempimento":list(read_values["prova2:tempo di riempimento"].keys())[0],
        "tempo_assestamento":list(read_values["prova2:tempo di stabilizzazione"].keys())[0],
        "tempo_di_test": list(read_values["prova2:tempo di prova"].keys())[0],
        #"prova_tenuta_abilitata_2":"x" if list(read_values["prova2:tempo di riempimento"].keys())[0] not in ("0","00") else ""

    }
    data.append(line)

# SAVE RECIPES TO CSV FILE
with open(csv_path, "w", newline="") as f:
    w = csv.DictWriter(f, fieldnames, extrasaction="ignore")
    w.writeheader()
    w.writerows(data)

print(f"IMPORTED {len(files)} FILES")