diff --git a/relatório_ruptura/ruptura projetada 23.05.py b/relatório_ruptura/ruptura projetada 23.05.py index 420e2ee..da08d8a 100644 --- a/relatório_ruptura/ruptura projetada 23.05.py +++ b/relatório_ruptura/ruptura projetada 23.05.py @@ -155,6 +155,39 @@ df4['data'] = hoje path2 = r'C:\Users\joao.herculano\OneDrive - GRUPO GINSENG\Documentos\acompanhamentos\estudo ruptura\AcompanhamentoRuptura.xlsx' +de_effi = pd.read_excel(r"C:\Users\joao.herculano\OneDrive - GRUPO GINSENG\Documentos\acompanhamentos\estudo ruptura\AcompanhamentoRuptura.xlsx") + +de_effi['data'] = pd.to_datetime(de_effi['data'], errors='coerce') + +# Step 2: Group and sort +grouped = ( + de_effi.groupby('data')['quantidade_ruptura'] + .sum() + .sort_index() +) + +# Step 3: Plot +plt.figure(figsize=(12, 6)) +plt.plot(grouped.index, grouped.values, marker='o', linestyle='-', color='cornflowerblue', linewidth=2) + +# Step 4: Format numbers with dot ('.') separator, no decimals +for x, y in zip(grouped.index, grouped.values): + label = f"{y:,.0f}".replace(",", ".") # format like 75.063 + plt.text(x, y + max(grouped.values) * 0.015, label, ha='center', fontsize=9) + +# Step 5: Format chart +plt.title('Evolução de Quantidade de Ruptura por Data', fontsize=14) +plt.xlabel('Data', fontsize=12) +plt.ylabel('Quantidade de Ruptura', fontsize=12) +plt.grid(True, linestyle='--', alpha=0.6) +plt.xticks(rotation=45) + +# Format x-axis as dd/mm/yyyy +plt.gca().set_xticklabels([d.strftime('%d/%m/%Y') for d in grouped.index]) +plt.tight_layout() +plt.savefig("grafico2.png") +plt.close() + # Tenta abrir e escrever com append with pd.ExcelWriter(path2, mode='a', engine='openpyxl', if_sheet_exists='overlay') as writer: # Encontra a última linha preenchida @@ -194,6 +227,7 @@ else: boa = "Boa noite!" grafico_cid = make_msgid()[1:-1] +grafico2_cid = make_msgid()[1:-1] msg = EmailMessage() msg['From'] = remetente msg['To'] = ', '.join(destinatarios) @@ -211,8 +245,9 @@ html_email = f"""
  • Maior excesso por estado, assim como o PDV que o possui.
  • Além disso, o material destaca as VDs com maior criticidade, permitindo uma atuação direcionada para mitigar impactos e priorizar ações de abastecimento e transferência.

    -

    Importante: O relatório está em processo de desenvolvimento e pode sofrer mudanças futuras no layout. Ficamos à disposição para esclarecer quaisquer dúvidas.

    - +

    Importante:

    +

    O relatório está em processo de desenvolvimento e pode sofrer mudanças futuras no layout. Ficamos à disposição para esclarecer quaisquer dúvidas.

    +

    Foram adicionados ao relatório os PDVs da região de Irecê.

    @@ -224,6 +259,9 @@ msg.add_alternative(html_email, subtype='html') with open("grafico.png", 'rb') as img: msg.get_payload()[1].add_related(img.read(), 'image', 'png', cid=grafico_cid) +with open("grafico2.png", 'rb') as img: + msg.get_payload()[1].add_related(img.read(), 'image', 'png', cid=grafico2_cid) + with open(excel_path, 'rb') as f: msg.add_attachment( f.read(),