topsapp: encaminhar suporte para técnico
Signed-off-by: Rodrigo Bertoldo de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
1 parent
e11ce621c2
commit
7e2f51b782
3 files changed
+49
-12
No files matched your search
+18
-11
@@ -6473,6 +6473,7 @@ Digite /help para ver todos os comandos disponíveis!
|
||||
|
||||
try {
|
||||
const dados = session.dados;
|
||||
const location = dados.location || '';
|
||||
const dadosSuporte = {
|
||||
idCliente: dados.clienteSelecionado.id,
|
||||
idServico: dados.servicoSelecionado.id,
|
||||
@@ -6480,12 +6481,6 @@ Digite /help para ver todos os comandos disponíveis!
|
||||
descricao: `${dados.descricao}\n\nData/Hora agendada: ${this.dateProcessor.formatarData(dados.dataHora)}\nTécnico: ${dados.tecnicoSelecionado.nome}`
|
||||
};
|
||||
|
||||
// Adicionar campos opcionais se existirem
|
||||
const idTecnico = dados.tecnicoSelecionado?.id;
|
||||
if (idTecnico) {
|
||||
dadosSuporte.idAtendimento = parseInt(idTecnico, 10);
|
||||
}
|
||||
|
||||
if (dados.clienteSelecionado?.nome) {
|
||||
dadosSuporte.contato = dados.clienteSelecionado.nome;
|
||||
}
|
||||
@@ -6496,16 +6491,28 @@ Digite /help para ver todos os comandos disponíveis!
|
||||
|
||||
dadosSuporte.outrasInformacoes = `Criado via Bot Telegram\nData original: ${dados.dataHoraTexto}`;
|
||||
|
||||
console.log('🎫 Dados finais para criação do suporte:', dadosSuporte);
|
||||
|
||||
const resultado = await this.topsapp.adicionarSuporte(dadosSuporte);
|
||||
const resultado = await this.topsapp.adicionarSuporte(dadosSuporte, location);
|
||||
|
||||
if (resultado.success) {
|
||||
const protocolo = resultado.data?.protocolo || 'N/A';
|
||||
const protocolo = resultado.data?.dados?.protocolo || resultado.data?.protocolo;
|
||||
|
||||
// Encaminhar para o técnico selecionado
|
||||
const idTecnico = dados.tecnicoSelecionado?.id;
|
||||
if (protocolo && idTecnico) {
|
||||
const resEnc = await this.topsapp.encaminharSuporte(
|
||||
protocolo,
|
||||
idTecnico,
|
||||
`Técnico atribuído via Bot Telegram: ${dados.tecnicoSelecionado.nome}`,
|
||||
location
|
||||
);
|
||||
if (!resEnc.success) {
|
||||
logger.warn('Suporte criado mas falha ao encaminhar técnico:', resEnc.error);
|
||||
}
|
||||
}
|
||||
|
||||
await this.bot.sendMessage(session.chatId,
|
||||
`✅ **Suporte criado com sucesso!**\n\n` +
|
||||
`🎫 **Protocolo:** ${protocolo}\n` +
|
||||
`🎫 **Protocolo:** ${protocolo || 'N/A'}\n` +
|
||||
`👤 **Cliente:** ${dados.clienteSelecionado.nome}\n` +
|
||||
`📋 **Serviço:** ${dados.servicoSelecionado.descricao || dados.servicoSelecionado.plano}\n` +
|
||||
`📁 **Categoria:** ${dados.categoriaSelecionada.descricao}\n` +
|
||||
|
||||
+15
-1
@@ -822,7 +822,6 @@ class TopSappAPI {
|
||||
|
||||
// Tentativa 1: com idAtendimento
|
||||
const result = await this.makeRequest('AdicionarSuporte', dados, instance, credentials);
|
||||
console.log('🎫 API - Resultado tentativa 1 (com idAtendimento):', JSON.stringify(result?.data || result?.error));
|
||||
if (result.success) {
|
||||
console.log('✅ API - Suporte criado com sucesso:', result);
|
||||
return result;
|
||||
@@ -841,6 +840,21 @@ class TopSappAPI {
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Encaminhar suporte para um técnico
|
||||
*/
|
||||
async encaminharSuporte(idSuporte, idTecnico, descricao, location = '', credentials) {
|
||||
const instance = this.getInstanceByLocation(location);
|
||||
const session = await this.getValidSession(instance, credentials);
|
||||
|
||||
return await this.makeRequest('EncaminharSuporte', {
|
||||
idUsuario: session.idUsuario || 1,
|
||||
idSuporte: parseInt(idSuporte, 10),
|
||||
idTecnico: parseInt(idTecnico, 10),
|
||||
descricao
|
||||
}, instance, credentials);
|
||||
}
|
||||
|
||||
/**
|
||||
* Obter suportes abertos de um cliente
|
||||
*/
|
||||
|
||||
@@ -1053,6 +1053,22 @@ class TopSappManager {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Encaminhar suporte para um técnico
|
||||
*/
|
||||
async encaminharSuporte(idSuporte, idTecnico, descricao, location = '') {
|
||||
if (!this.isReady()) {
|
||||
return { success: false, error: 'TopSapp não está configurado' };
|
||||
}
|
||||
|
||||
try {
|
||||
const credentials = this.config.getCredentialsByLocation(location);
|
||||
return await this.api.encaminharSuporte(idSuporte, idTecnico, descricao, location, credentials);
|
||||
} catch (error) {
|
||||
return { success: false, error: error.message };
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Obter instâncias disponíveis
|
||||
*/
|
||||
|
||||
Reference in new issue
Block a user