51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
import pandas as pd
|
|
import numpy as np
|
|
import os
|
|
from datetime import date
|
|
|
|
def unificador_estoque(pasta_entrada):
|
|
hoje = date.today().isoformat()
|
|
caminho_saida = os.path.join(pasta_entrada, f"compilado_estoque_{hoje}.xlsx")
|
|
print("Salvando em:", caminho_saida)
|
|
|
|
subpastas = [
|
|
os.path.join(pasta_entrada, d)
|
|
for d in os.listdir(pasta_entrada)
|
|
if os.path.isdir(os.path.join(pasta_entrada, d))
|
|
]
|
|
|
|
df_list = []
|
|
|
|
for subpasta in subpastas:
|
|
arquivos = [f for f in os.listdir(subpasta) if f.endswith(".csv")]
|
|
nome_pasta = os.path.basename(subpasta)
|
|
|
|
for arquivo in arquivos:
|
|
caminho_arquivo = os.path.join(subpasta, arquivo)
|
|
try:
|
|
df = pd.read_csv(caminho_arquivo, encoding="utf-8", low_memory=False)
|
|
df["Arquivo_Origem"] = arquivo
|
|
df["Pasta_Origem"] = nome_pasta
|
|
df_list.append(df)
|
|
except Exception as e:
|
|
print(f"Erro ao ler o arquivo {arquivo}: {e}")
|
|
|
|
if not df_list:
|
|
raise ValueError("Nenhum arquivo CSV válido foi encontrado.")
|
|
|
|
df_estoque = pd.concat(df_list, ignore_index=True)
|
|
|
|
df_estoque["PDV"] = df_estoque["PDV"].astype(str)
|
|
|
|
df_estoque["SKU_FINAL"] = np.where(
|
|
df_estoque["SKU_PARA"] == "-",
|
|
df_estoque["SKU"],
|
|
df_estoque["SKU_PARA"]
|
|
).astype(str)
|
|
|
|
try:
|
|
df_estoque.to_excel(caminho_saida, index=False)
|
|
except Exception as e:
|
|
raise RuntimeError(f"Erro ao salvar o arquivo Excel: {e}")
|
|
|
|
return caminho_saida |