function loadSelectEmpresa(elemento, placeholder = 'SELECIONE A EMPRESA') { const ts = new TomSelect(`${elemento}`, { maxItems: 1, create: false, allowEmptyOption: true, placeholder: placeholder, persist: false, searchField: ['cnpj', 'nome', 'fantasia'], render: { option(data, escape) { if (data.value == 0) { return `
TODAS EMPRESAS
`; } else if (data.value == -1) { return `
SELECIONE A EMPRESA
` } const cnpj = escape(data.cnpj); const nome = escape(data.nome); const nomeFantasia = escape(data.fantasia); const inativo = escape(data.inativo); return `
${cnpj}
${nome}
${nomeFantasia}
`; }, item(data, escape) { if (data.value == 0) { return `
TODAS EMPRESAS
`; } else if (data.value == -1) { return `
SELECIONE A EMPRESA
` } const cnpj = escape(data.cnpj); const nome = escape(data.nome); const inativo = escape(data.inativo); return `
${nome} (${cnpj})
`; } } }); return ts; } function loadSelectBancoConexao(elemento, placeholder = 'SELECIONE O BANCO') { const ts = new TomSelect(`${elemento}`, { maxItems: 1, create: false, allowEmptyOption: true, placeholder: placeholder, persist: false, searchField: ['name'], render: { option(data, escape) { if (data.value == 0) { return `
TODOS BANCOS
`; } else if (data.value == -1) { return `
SELECIONE O BANCO
` } const connectorName = escape(data.name) const connectorImage = escape(data.image); const connectionStatus = escape(data.status); const isOpenFinance = escape(data.isopenfinance); return `
${connectorName}
${connectorName} Status: ${CONNECTION_STATUS_APIOF[connectionStatus].label} ${isOpenFinance ? 'Conector Openfinance' : 'Conector Direto'}
`; }, item(data, escape) { if (data.value == 0) { return `
TODOS BANCOS
`; } else if (data.value == -1) { return `
SELECIONE O BANCO
` } const connectorName = escape(data.name) const connectorImage = escape(data.image); const connectionStatus = escape(data.status); return `
${connectorName} ${connectorName} (${CONNECTION_STATUS_APIOF[connectionStatus].label})
`; } } }); return ts; } function loadSelectContas(elemento, placeholder = 'SELECIONE A CONTA') { const ts = new TomSelect(`${elemento}`, { maxItems: 1, create: false, allowEmptyOption: true, placeholder: placeholder, persist: false, searchField: ['name'], render: { option(data, escape) { if (data.value == 0) { return `
TODAS CONTAS
`; } else if (data.value == -1) { return `
SELECIONE A CONTA
` } const type = escape(data.type); const subtype = escape(data.subtype); const brandCard = escape(data.cbrand); const lastFourDigitsCard = escape(data.lastfourdigitscard); const bankBranch = escape(data.bbranch); const bankAccountNumber = escape(data.baccountnumber); const bankCode = escape(data.bcode); const name = escape(data.name); const smallFooterText = (type == TYPE_ACCOUNT_OF.CREDIT) ? `**** **** **** ${lastFourDigitsCard}` : (type == TYPE_ACCOUNT_OF.BANK) && `AG: ${bankBranch} • C.C: ${bankAccountNumber}`; const headerText = (type == TYPE_ACCOUNT_OF.CREDIT) ? `
${brandCard} ${name} • ${SUBTYPE_ACCOUNT_LABEL_OF[subtype]}
` : (type == TYPE_ACCOUNT_OF.BANK) && `
${bankCode} - ${name} • ${SUBTYPE_ACCOUNT_LABEL_OF[subtype]}
`; return `
${headerText}
${TYPE_ACCOUNT_LABEL_OF[type]}
${smallFooterText}
`; }, item(data, escape) { if (data.value == 0) { return `
TODAS CONTAS
`; } else if (data.value == -1) { return `
SELECIONE A CONTA
` } const type = escape(data.type); const subtype = escape(data.subtype); const brandCard = escape(data.cbrand); const lastFourDigitsCard = escape(data.lastfourdigitscard); const bankBranch = escape(data.bbranch); const bankAccountNumber = escape(data.baccountnumber); const bankCode = escape(data.bcode); const name = escape(data.name); const headerText = (type == TYPE_ACCOUNT_OF.CREDIT) ? `${brandCard} ${name} • ${SUBTYPE_ACCOUNT_LABEL_OF[subtype]}` : (type == TYPE_ACCOUNT_OF.BANK) && ` ${bankCode} - ${name} • ${SUBTYPE_ACCOUNT_LABEL_OF[subtype]}`; const dataAccount = (type == TYPE_ACCOUNT_OF.CREDIT) ? `**** **** **** ${lastFourDigitsCard}` : `AG: ${bankBranch} • C.C: ${bankAccountNumber}`; return `
${headerText} (${dataAccount})
`; } } }); return ts; } function loadSelectPlanoConta(elemento, placeholder = 'SELECIONE O PLANO DE CONTA') { const ts = new TomSelect(`${elemento}`, { maxItems: 1, create: false, allowEmptyOption: true, placeholder: placeholder, persist: false, searchField: ['codcontabil', 'descricao', 'natureza', 'grupo', 'subgrupo'], render: { option(data, escape) { if (data.value == 0) { return `
TODOS PLANOS DE CONTA
`; } else if (data.value == -1) { return `
SELECIONE O PLANO DE CONTA
` } const descricao = escape(data.descricao); const natureza = escape(data.natureza); const grupo = escape(data.grupo); const subgrupo = escape(data.subgrupo); const codNatureza = escape(data.codnatureza); const codGrupo = escape(data.codgrupo); const codSubGrupo = escape(data.codsubgrupo); const codPlano = escape(data.codplano); const codContabil = `${codNatureza}.${codGrupo}.${codSubGrupo}.${codPlano}`; return `
${natureza}
${codContabil} - ${descricao}
${grupo} • ${subgrupo}
`; }, item(data, escape) { if (data.value == 0) { return `
TODOS PLANOS DE CONTA
`; } else if (data.value == -1) { return `
SELECIONE O PLANO DE CONTA
` } const descricao = escape(data.descricao); const natureza = escape(data.natureza); const codNatureza = escape(data.codnatureza); const codGrupo = escape(data.codgrupo); const codSubGrupo = escape(data.codsubgrupo); const codPlano = escape(data.codplano); const codContabil = `${codNatureza}.${codGrupo}.${codSubGrupo}.${codPlano}`; return `
${codContabil} - ${descricao} (${natureza})
`; } } }); return ts; } function showTomSelectLoader(tsInstance, position = 'start') { if (!tsInstance || !tsInstance.wrapper) return; const control = tsInstance.wrapper.querySelector('.ts-control'); // Evita duplicação if (control.querySelector('.ts-loader')) return; const loader = document.createElement('div'); loader.classList.add('ts-loader'); loader.innerHTML = `
Loading...
`; if (position === 'start') { control.prepend(loader); } else { control.append(loader); } control.classList.add('ts-loading'); } function hideTomSelectLoader(tsInstance) { if (!tsInstance || !tsInstance.wrapper) return; const control = tsInstance.wrapper.querySelector('.ts-control'); const loader = control.querySelector('.ts-loader'); if (loader) loader.remove(); control.classList.remove('ts-loading'); } function resetTomSelectPlaceholder(ts, placeholder) { ts.clear(true); // limpa seleção ts.settings.placeholder = placeholder; if (ts.control_input) { ts.control_input.placeholder = placeholder; } ts.refreshState(); }