import pandas as pd
from fpdf import FPDF

# Cargar datos
feb = pd.read_csv('ventas_febrero_2025.csv', encoding='latin1', parse_dates=['fechaEntrega'])
mar = pd.read_csv('ventas_marzo_2025.csv', encoding='latin1', parse_dates=['fechaEntrega'])

# Agrupar por cliente
ventas_feb = feb.groupby('nom_empresa')['total_producto'].sum().reset_index(name='febrero')
ventas_mar = mar.groupby('nom_empresa')['total_producto'].sum().reset_index(name='marzo')

# Unir y calcular diferencia
df = pd.merge(ventas_feb, ventas_mar, on='nom_empresa', how='outer').fillna(0)
df['diferencia'] = df['marzo'] - df['febrero']
df['cambio_%'] = (df['diferencia'] / df['febrero'].replace(0, 1)) * 100

# Filtrar los que bajaron
clientes_bajando = df[df['diferencia'] < 0].sort_values(by='diferencia').head(15)

# Imprimir en consola
print("Clientes que compraron menos en marzo:")
print(clientes_bajando[['nom_empresa', 'febrero', 'marzo', 'diferencia', 'cambio_%']])

# Crear PDF
pdf = FPDF()
pdf.add_page()
pdf.set_font("Arial", size=12)
pdf.cell(200, 10, txt="Clientes que compraron menos - Marzo vs Febrero 2025", ln=True, align='C')

# Encabezado de tabla
pdf.set_font("Arial", 'B', size=10)
pdf.cell(60, 10, "Cliente", border=1)
pdf.cell(30, 10, "Febrero", border=1)
pdf.cell(30, 10, "Marzo", border=1)
pdf.cell(30, 10, "Diferencia", border=1)
pdf.cell(30, 10, "Cambio (%)", border=1)
pdf.ln()

# Cuerpo de tabla
pdf.set_font("Arial", size=10)
for _, row in clientes_bajando.iterrows():
    pdf.cell(60, 10, str(row['nom_empresa'])[:30], border=1)
    pdf.cell(30, 10, f"${row['febrero']:.2f}", border=1)
    pdf.cell(30, 10, f"${row['marzo']:.2f}", border=1)
    pdf.cell(30, 10, f"${row['diferencia']:.2f}", border=1)
    pdf.cell(30, 10, f"{row['cambio_%']:.2f}%", border=1)
    pdf.ln()

# Guardar PDF
pdf.output("clientes_bajando_marzo_2025.pdf")
print("✅ PDF generado: clientes_bajando_marzo_2025.pdf")
