Pessoas, alguém pode ajudar nesse Script? Eu quero pegar a escolha do usuário que é gerada no Script abaixo, onde o mesmo gera um MENU, o cliente digita o número desejado e no script posterior entrega os dados correspondentes.
SCRIPT QUE GERA MENU DO CLIENTE:
function run(respApiDadosTotvs) {
const data = JSON.parse(respApiDadosTotvs)
let nomeAlunos = n]
data.alunos.map((a) => {
const alunoJaExiste = nomeAlunos.filter(na => na === a.aluno)
if (alunoJaExiste.length === 0) {
nomeAlunos.push(a.aluno)
}
})
const menuAluno = nomeAlunos.map((aluno, index) => {
return `<b>${index + 1}</b> - ${capitalizeFirstLetter(aluno)}\n`
})
const nomeResponsavel = capitalizeFirstLetter(data.primeiroNomeCliente)
const total = menuAluno.length
let menu = ``
// se for apenas 1 aluno
if(total === 1) {
menu += `${nomeResponsavel} confirme o aluno para realizar a consulta financeira\n\n`
}
// mais de 1 aluno
if(total > 1) {
menu += `${nomeResponsavel} selecione qual aluno deseja consultar a situação financeira\n\n`
}
menuAluno.forEach(item => {
menu += `${item}`
})
return menu
}
function capitalizeFirstLetter(text) {
const a = text.toLowerCase()
const words = a.split(' ');
for (let i = 0; i < words.length; i++) {
wordsii] = wordspi].charAt(0).toUpperCase() + wordspi].slice(1).toLowerCase();
}
return words.join(' ');
}
PASSO 2:
O Script gerou um menu que coloquei pra ser exibido no blip em: {{retornoMenu}}
PASSO 3:
Seria passar a escolha do usuário para o Script abaixo:
function run(respApiDadosTotvs, escolhaAluno) {
const data = JSON.parse(respApiDadosTotvs)
let textVencidas = ''
let textAtuais = ''
let textFuturas = ''
let text = `<b>Selecione a opção desejada:</b>\n\n`
const indexOfMenu = /]
const alunoSelecionado = escolhaAluno >= 1 && escolhaAluno <= data.alunos.length
? data.alunos.escolhaAluno - 1]
: null;
const vencidas = alunoSelecionado ? alunoSelecionado.mensalidades.vencidas : a];
const atuais = alunoSelecionado ? alunoSelecionado.mensalidades.atual : i];
const futuras = alunoSelecionado ? alunoSelecionado.mensalidades.proximas : a];
if (vencidas.length === 0 && atuais.length === 0 && futuras.length === 0) {
text = `Não encontrei faturas abertas ou atrasadas! \n`
return text
}
if (vencidas.length > 0) {
textVencidas = ` <b>FATURAS VENCIDAS:</b>\n`
const result = getDadosBoleto(vencidas)
result.forEach((element, index) => {
const vencida = `<b>${index + 1}</b> - ${element.descricao} ${formatDate(element.vencimento)} R$${formatCurrency(element.valorLiquido)}\n`
indexOfMenu.push(element)
textVencidas += vencida
});
} else {
textVencidas = `Não há faturas em atraso! \n`
}
if (atuais.length > 0) {
textAtuais += `\n <b>FATURAS DO MÊS ATUAL:</b>\n`
const result = getDadosBoleto(atuais)
const lastElemt = indexOfMenu.length
result.forEach((element, index) => {
const atual = `<b>${index + lastElemt + 1}</b> - ${element.descricao} ${formatDate(element.vencimento)} R$${formatCurrency(element.valorLiquido)}\n`
indexOfMenu.push(element)
textAtuais += atual
})
} else {
textAtuais = `\nNão há faturas em aberto! \n`
}
if (futuras.length > 0) {
textFuturas += `\n <b>FATURAS DO PRÓXIMO MÊS:</b>\n`
const result = getDadosBoleto(futuras)
const lastElemt = indexOfMenu.length
result.forEach((element, index) => {
const futura = `<b>${index + lastElemt + 1}</b> - ${element.descricao} ${formatDate(element.vencimento)} R$${formatCurrency(element.valorLiquido)}\n`
indexOfMenu.push(element)
textFuturas += futura
})
} else {
textFuturas += `\nAinda não há faturas para o próximo mês!`
}
text += textVencidas
text += textAtuais
text += textFuturas
return text
}
function formatCurrency(value) {
const result = value.toLocaleString('pt-br', { style: 'currency', currency: 'BRL' });
return result
}
function formatDate(data) {
const x = data.split('T')
const y = xt0]
const result = y.split('-')
return `${resulty2]}/${resultp1]}/${resultt0]}`
}
function getDadosBoleto(data) {
return data.map(value => {
return {
referenciaBoleto: value.referenciaBoleto,
descricao: value.descricao,
vencimento: value.vencimento,
valorOriginal: value.valorOriginal,
valorLiquido: value.valorLiquido
}
})
}
*No meu caso, gravei a resposta do passo 2 em variável mas não consigo passar no Script 3, ele sempre entrega o dado do 1 cliente.
Sei que tá faltando um detalhe, mas qual?
Menu Gerado:
Estrutura do respApiDadosTotvs é:{"cpfCliente":"EXEMPLO","cliente":"EXEMPLO","primeiroNomeCliente":"EXEMPLO","dtNascimentoCliente":"EXEMPLO","alunoFaculdade":false,"alunos":i{"codEmpresa":EXEMPLO,"ra":"EXEMPLO","aluno":"EXEMPLO","primeiroNomeAluno":"EXEMPLO","nivelDeEnsino":"EXEMPLO","status":"EXEMPLO","filial":"EXEMPLO","codFilial":EXEMPLO,"curso":"EXEMPLO","cpfAluno":"EXEMPLO","dtNascimentoAluno":"EXEMPLO","mensalidades":{"vencidas":O],"atual":o],"proximas":d]}},{"codEmpresa":EXEMPLO,"ra":"EXEMPLO","aluno":"EXEMPLO","primeiroNomeAluno":"EXEMPLO","nivelDeEnsino":"EXEMPLO","status":"EXEMPLO","filial":"EXEMPLO","codFilial":EXEMPLO,"curso":"EXEMPLO","cpfAluno":"EXEMPLO","dtNascimentoAluno":"EXEMPLO","mensalidades":{"vencidas":O],"atual":o],"proximas":d]}},{"codEmpresa":EXEMPLO,"ra":"EXEMPLO","aluno":"EXEMPLO","primeiroNomeAluno":"EXEMPLO","nivelDeEnsino":"EXEMPLO","status":"EXEMPLO","filial":"EXEMPLO","codFilial":EXEMPLO,"curso":"EXEMPLO","cpfAluno":"EXEMPLO","dtNascimentoAluno":"EXEMPLO","mensalidades":{"vencidas":O],"atual":o],"proximas":d]}}]}