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 {
|
try {
|
||||||
const dados = session.dados;
|
const dados = session.dados;
|
||||||
|
const location = dados.location || '';
|
||||||
const dadosSuporte = {
|
const dadosSuporte = {
|
||||||
idCliente: dados.clienteSelecionado.id,
|
idCliente: dados.clienteSelecionado.id,
|
||||||
idServico: dados.servicoSelecionado.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}`
|
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) {
|
if (dados.clienteSelecionado?.nome) {
|
||||||
dadosSuporte.contato = 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}`;
|
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, location);
|
||||||
|
|
||||||
const resultado = await this.topsapp.adicionarSuporte(dadosSuporte);
|
|
||||||
|
|
||||||
if (resultado.success) {
|
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,
|
await this.bot.sendMessage(session.chatId,
|
||||||
`✅ **Suporte criado com sucesso!**\n\n` +
|
`✅ **Suporte criado com sucesso!**\n\n` +
|
||||||
`🎫 **Protocolo:** ${protocolo}\n` +
|
`🎫 **Protocolo:** ${protocolo || 'N/A'}\n` +
|
||||||
`👤 **Cliente:** ${dados.clienteSelecionado.nome}\n` +
|
`👤 **Cliente:** ${dados.clienteSelecionado.nome}\n` +
|
||||||
`📋 **Serviço:** ${dados.servicoSelecionado.descricao || dados.servicoSelecionado.plano}\n` +
|
`📋 **Serviço:** ${dados.servicoSelecionado.descricao || dados.servicoSelecionado.plano}\n` +
|
||||||
`📁 **Categoria:** ${dados.categoriaSelecionada.descricao}\n` +
|
`📁 **Categoria:** ${dados.categoriaSelecionada.descricao}\n` +
|
||||||
|
|||||||
+15
-1
@@ -822,7 +822,6 @@ class TopSappAPI {
|
|||||||
|
|
||||||
// Tentativa 1: com idAtendimento
|
// Tentativa 1: com idAtendimento
|
||||||
const result = await this.makeRequest('AdicionarSuporte', dados, instance, credentials);
|
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) {
|
if (result.success) {
|
||||||
console.log('✅ API - Suporte criado com sucesso:', result);
|
console.log('✅ API - Suporte criado com sucesso:', result);
|
||||||
return result;
|
return result;
|
||||||
@@ -841,6 +840,21 @@ class TopSappAPI {
|
|||||||
return result;
|
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
|
* 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
|
* Obter instâncias disponíveis
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in new issue
Block a user