adição do acompanhameno automatico no cód
This commit is contained in:
parent
abc363fcd1
commit
4495bae649
@ -155,6 +155,39 @@ df4['data'] = hoje
|
|||||||
|
|
||||||
path2 = r'C:\Users\joao.herculano\OneDrive - GRUPO GINSENG\Documentos\acompanhamentos\estudo ruptura\AcompanhamentoRuptura.xlsx'
|
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
|
# Tenta abrir e escrever com append
|
||||||
with pd.ExcelWriter(path2, mode='a', engine='openpyxl', if_sheet_exists='overlay') as writer:
|
with pd.ExcelWriter(path2, mode='a', engine='openpyxl', if_sheet_exists='overlay') as writer:
|
||||||
# Encontra a última linha preenchida
|
# Encontra a última linha preenchida
|
||||||
@ -194,6 +227,7 @@ else:
|
|||||||
boa = "Boa noite!"
|
boa = "Boa noite!"
|
||||||
|
|
||||||
grafico_cid = make_msgid()[1:-1]
|
grafico_cid = make_msgid()[1:-1]
|
||||||
|
grafico2_cid = make_msgid()[1:-1]
|
||||||
msg = EmailMessage()
|
msg = EmailMessage()
|
||||||
msg['From'] = remetente
|
msg['From'] = remetente
|
||||||
msg['To'] = ', '.join(destinatarios)
|
msg['To'] = ', '.join(destinatarios)
|
||||||
@ -211,8 +245,9 @@ html_email = f"""
|
|||||||
<li>Maior excesso por estado, assim como o PDV que o possui.</li>
|
<li>Maior excesso por estado, assim como o PDV que o possui.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>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.</p>
|
<p>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.</p>
|
||||||
<p><strong>Importante:</strong> O relatório está em processo de desenvolvimento e pode sofrer mudanças futuras no layout. Ficamos à disposição para esclarecer quaisquer dúvidas.</p>
|
<p><strong>Importante:</strong></p>
|
||||||
|
<p>O relatório está em processo de desenvolvimento e pode sofrer mudanças futuras no layout. Ficamos à disposição para esclarecer quaisquer dúvidas.</p>
|
||||||
|
<p>Foram adicionados ao relatório os PDVs da região de Irecê.</p>
|
||||||
|
|
||||||
<img src="cid:{grafico_cid}">
|
<img src="cid:{grafico_cid}">
|
||||||
</body>
|
</body>
|
||||||
@ -224,6 +259,9 @@ msg.add_alternative(html_email, subtype='html')
|
|||||||
with open("grafico.png", 'rb') as img:
|
with open("grafico.png", 'rb') as img:
|
||||||
msg.get_payload()[1].add_related(img.read(), 'image', 'png', cid=grafico_cid)
|
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:
|
with open(excel_path, 'rb') as f:
|
||||||
msg.add_attachment(
|
msg.add_attachment(
|
||||||
f.read(),
|
f.read(),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user