import sys
import smtplib
import mysql.connector
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from datetime import datetime

# Verifica se o script recebeu o argumento ticket_pesagem
if len(sys.argv) < 2:
    print("Erro: Argumento ticket_pesagem não fornecido.")
    sys.exit(1)

ticket_pesagem = sys.argv[1]

# Configurações do banco de dados
db_config = {
    'host': 'localhost',
    'user': 'ti',
    'password': '@vale.123',
    'database': 'balanca'
}

# Função para obter os detalhes do ticket de pesagem
def get_ticket_details(ticket_pesagem):
    try:
        conn = mysql.connector.connect(**db_config)
        cursor = conn.cursor()

        # Consultar o banco de dados para pegar os detalhes do ticket
        cursor.execute("""
            SELECT id, driver_name, plate_number, carrier, arrival_time, status, entry_authorized_by,
                    entry_authorized_time, entry_weighed_time, entry_weighed_by, carreta, 
                    tara, peso_bruto, romaneio, notafiscal, book, carga
            FROM entrada_veiculo
            WHERE id = %s
        """, (ticket_pesagem,))

        ticket = cursor.fetchone()
        conn.close()

        if ticket:
            return ticket
        else:
            print(f"Erro: Ticket de pesagem {ticket_pesagem} não encontrado.")
            sys.exit(1)

    except mysql.connector.Error as err:
        print(f"Erro ao conectar ao banco de dados: {err}")
        sys.exit(1)

# Enviar o e-mail
def send_email(subject, body, to_email):
    from_email = "ticocodovale@gmail.com"
    from_password = "xnpo tcss xkug phrr"  # Use o app password do Gmail
    smtp_server = "smtp.gmail.com"
    smtp_port = 587

    # Criar a mensagem do e-mail
    msg = MIMEMultipart()
    msg['From'] = from_email
    msg['To'] = to_email
    msg['Subject'] = subject
    msg.attach(MIMEText(body, 'html'))  # Alterando para 'html' para permitir HTML no corpo do e-mail

    try:
        # Conectar ao servidor SMTP
        server = smtplib.SMTP(smtp_server, smtp_port)
        server.starttls()  # Conectar de forma segura
        server.login(from_email, from_password)

        # Enviar o e-mail
        server.sendmail(from_email, to_email, msg.as_string())
        server.quit()
        print(f"E-mail enviado para {to_email} com sucesso!")
    except Exception as e:
        print(f"Erro ao enviar o e-mail para {to_email}: {e}")

# Função principal
def main():
    # Obter os detalhes do ticket
    ticket = get_ticket_details(ticket_pesagem)

    if ticket:
        id, driver_name, plate_number, carrier, arrival_time, status, entry_authorized_by, entry_authorized_time, entry_weighed_time, entry_weighed_by, carreta, tara, peso_bruto, romaneio, notafiscal, book, carga = ticket

        # Certificar que arrival_time, entry_authorized_time e entry_weighed_time são datetime e formatar
        hora_entrada_brasileira = arrival_time.strftime("%d/%m/%Y %H:%M:%S") if arrival_time else "N/A"
        hora_autorizacao_brasileira = entry_authorized_time.strftime("%d/%m/%Y %H:%M:%S") if entry_authorized_time else "N/A"
        hora_pesagem = entry_weighed_time.strftime("%d/%m/%Y %H:%M:%S") if entry_weighed_time else "N/A"

        subject = "CONTROLE DE PÁTIO"
        body = f"""
        <html>
        <body>
        <p><b> PESAGEM INICIAL REALIZADA</b></p>
       
         <hr>
        <p><b>Informações do Ticket de Pesagem</b></p>
        <ul>
            <li><b>TICKET DE PESAGEM:</b> {ticket_pesagem}</li>
            <li><b>MOTORISTA:</b> {driver_name}</li>
            <li><b>PLACA VEÍCULO:</b> {plate_number}</li>
            <li><b>PLACA CARRETA:</b> {carreta}</li>
            <li><b>EMPRESA:</b> {carrier}</li>
            <li><b>ROMANEIO:</b> {romaneio}</li>
            <li><b>NOTA FISCAL:</b> {notafiscal}</li>
            <li><b>BOOK:</b> {book}</li>
            <li><b>PRODUTO DA CARGA:</b> {carga}</li>
           
            <li><b>STATUS:</b> {status}</li>
        </ul>
        <hr>
        <p><b>Pesagem Realizada</b></p>
        <ul>
            <li><b>PESAGEM INICIAL:</b> {hora_pesagem}</li>
            <li><b>PESO BRUTO:</b> {peso_bruto:.2f} KG</li>
            <li><b>TARA:</b> {tara:.2f} KG</li>
            <li><b>FISCAL DE PESAGEM:</b> {entry_weighed_by}</li>
        </ul>
        <hr>
        <p><b>Chegada e Autorização de Entrada</b></p>
        <ul>
            <li><b>CHEGADA VEÍCULO:</b> {hora_entrada_brasileira}</li>
            <li><b>POR:</b> {entry_authorized_by}</li>
            <li><b>DATA E HORA:</b> {hora_autorizacao_brasileira}</li>
        </ul>
       <hr>
        <p><b>A Coco do Vale agradece sua atenção!</b></p>
        </body>
        </html>
        """
        to_email = "joseildo.franca@coodovale.com.br"  # E-mail fixo para o destinatário (ou defina outro critério)
        send_email(subject, body, to_email)  # Envia o e-mail para o destinatário

if __name__ == "__main__":
    main()
