Consultme-GI/data_handler.py
2025-01-29 09:00:34 -03:00

59 lines
2.4 KiB
Python

from datetime import datetime
import gerentes_erp as gerp
import pandas as pd
import login as GI
dimensao = pd.read_csv('Dimensao.csv')
# Dicionário para armazenar o estado dos usuários
user_states = {}
def extract_message_data(data):
"""
Função que extrai o número, nome e mensagem do JSON recebido.
"""
try:
# Extrair número, nome e mensagem
number = data['data']['key']['remoteJid'].split('@')[0] # Extrai o número antes de @
name = data['data']['pushName'] # Extrai o nome do remetente
message = data['data']['message']['conversation'] # Extrai a mensagem enviada
# Verificar o estado do usuário
if message.lower() == "iniciar":
# Configurar o estado do usuário como "aguardando nome"
user_states[number] = "aguardando_nome"
resposta = f"Olá, {name}! Você iniciou o Consultme. Por favor, digite o seu cpf para obter o menu."
print("Bot aguardando nome da consultora.")
elif number in user_states and user_states[number] == "aguardando_nome":
# Usuário enviou o nome da consultora, processar a consulta
cpf = message.strip()
cpf = int(cpf)
hoje = datetime.today()
primeiro_dia_mes = hoje.replace(day=1)
hoje_formatado = hoje.strftime('%Y-%m-%d')
primeiro_dia_formatado = primeiro_dia_mes.strftime('%Y-%m-%d')
gerp.log_pdv(cpf)
if cpf in dimensao['cpf_gr'].values or cpf in dimensao['cpf_sup'].values:
# Executa a consulta no sistema ERP
dados = GI.main()
mensagem = gerp.exec(cpf, primeiro_dia_formatado, hoje_formatado)
resposta = f"Olá, {name} " + mensagem
else:
mensagem = "Seu cpf não está cadastrado."
resposta = mensagem
# Limpar o estado do usuário após responder
del user_states[number]
print(f"Consulta realizada com sucesso para {cpf}.")
else:
# Caso o usuário envie outra mensagem sem iniciar
resposta = "Por favor, digite 'iniciar' para começar o Consultme."
print("Bot pediu ao usuário para iniciar.")
# Retorna as informações extraídas
return number, name, message, resposta
except KeyError as e:
raise ValueError(f"Erro ao extrair dados: {e}")