Cotas em Ofertas
<script>
jQuery(document).ready(function($) {
function formatCurrency(value) {
return new Intl.NumberFormat('pt-BR', {
style: 'currency',
currency: 'BRL'
}).format(value);
}
function renderCotas(cotas) {
cotas.forEach(function(cota) {
var $areaCotasOfertas = $('.areaCotasOfertas');
var $itemCota = $('#itemCota').clone().removeAttr('id');
$itemCota.find('.logoBank').css('background-image', 'url(' + cota.bancourl + ')');
$itemCota.find('.nameBank').text(cota.banco);
$itemCota.find('.idCota').text(cota._ID);
var $categoria = $itemCota.find('.categoria');
$categoria.text(cota.categoria);
$categoria.removeClass('hidden'); // Remove a classe .hidden da categoria
$itemCota.find('.creditoCota').text(formatCurrency(cota.credito));
$itemCota.find('.entradaCota').text(formatCurrency(cota.entrada));
$itemCota.find('.valorParcelas').text(cota.qtd_parcela + 'x ' + formatCurrency(cota.valor_parcela));
$areaCotasOfertas.append($itemCota);
});
}
function loadAndRenderCotas() {
$.post(window.location.href, { acao: 'get_cotas_vendedor' }, function(response, status, xhr) {
if (xhr.status === 202) {
// Save the response in sessionStorage
sessionStorage.setItem('cotasGeraisOfertas', JSON.stringify(response));
if (response && response.length > 0) {
renderCotas(response);
} else {
$('#cotasOfertas').addClass('hidden');
}
} else {
$('#cotasOfertas').addClass('hidden');
}
});
}
loadAndRenderCotas();
});
</script>
jQuery(document).ready(function($) {
function formatCurrency(value) {
return new Intl.NumberFormat('pt-BR', {
style: 'currency',
currency: 'BRL'
}).format(value);
}
function renderCotas(cotas, $targetArea) {
$targetArea.empty(); // Clear only the target area
cotas.forEach(function(cota) {
var $itemCota = $('#itemCota').clone().removeAttr('id');
$itemCota.find('.logoBank').css('background-image', 'url(' + cota.bancourl + ')');
$itemCota.find('.nameBank').text(cota.banco);
$itemCota.find('.iconcat').css('background-image', 'url(' + cota.iconcat + ')');
$itemCota.find('.idCota').text(cota._ID);
$itemCota.find('.creditoCota').text(formatCurrency(cota.credito));
$itemCota.find('.entradaCota').text(formatCurrency(cota.entrada));
$itemCota.find('.valorParcelas').text(cota.qtd_parcela + 'x ' + formatCurrency(cota.valor_parcela));
$targetArea.append($itemCota);
});
}
function sortCotas(cotas, key, asc) {
return cotas.sort(function(a, b) {
return asc ? a[key] - b[key] : b[key] - a[key];
});
}
function loadAndRenderCotas() {
$.post(window.location.href, { acao: 'get_cotas_selecao' }, function(response, status, xhr) {
if (xhr.status === 202 && response.length > 0) {
// Save the response in sessionStorage
sessionStorage.setItem('cotasGerais', JSON.stringify(response));
$('.areaCotas').each(function() {
var categoria = $(this).data('categoria');
var cotasCategoria = response.filter(cota => cota.categoria === categoria);
renderCotas(cotasCategoria, $(this));
});
} else {
console.warn('Não foi possível carregar as cotas.');
}
});
}
loadAndRenderCotas();
// Event handler for sorting
$('.areaCotacoes').on('click', '.credito, .entrada', function() {
var $sortButton = $(this);
var $areaCotas = $sortButton.closest('.areaCotacoes').find('.areaCotas');
var categoria = $areaCotas.data('categoria');
var key = $sortButton.hasClass('credito') ? 'credito' : 'entrada';
var ascending = $sortButton.find('i').hasClass('ion-ios-arrow-down');
var allCotas = JSON.parse(sessionStorage.getItem('cotasGerais'));
if (!allCotas) {
console.warn('Cotas not found in sessionStorage.');
return;
}
var cotasCategoria = allCotas.filter(cota => cota.categoria === categoria);
var sortedCotas = sortCotas(cotasCategoria, key, ascending);
renderCotas(sortedCotas, $areaCotas);
$sortButton.find('i').toggleClass('ion-ios-arrow-down ion-ios-arrow-up');
});
});Cotas contempladas de automóveis
Cotas contempladas de imóveis
Cotas contempladas de pesados
Junções de Cotas
Resultado das junções
Informe seu nome para ir para o WhatsApp
Data Aquisição: {je_cct_cotas_data_aquisicao}
Saldo Devedor: {echo:mask_money({je_cct_cotas_saldo_devedor})}

MD SOLUÇÕES FINANCEIRAS | SUA MELHOR OPÇÃO PARA CONQUISTAR BENS
A MD Soluções Financeiras nasceu com o propósito de oferecer soluções financeiras personalizadas para pessoas físicas e jurídicas, buscando sempre a segurança, a qualidade e a eficiência em cada projeto. Com uma equipe de profissionais qualificados, experientes e comprometidos, nos destacamos no mercado por nossa transparência, dinamismo e inovação.
Nosso CEO, Marcos, é um profissional atuante no segmento empresarial de consultoria e também como planejador financeiro pessoal e empresarial. Ele possui sólidos conhecimentos em gestão de equipes nas áreas comercial e novos negócios, e sua principal característica sempre foi o foco na melhor solução para resolver o problema do cliente.
A MD Soluções Financeiras está sempre atenta às tendências e oportunidades do mercado, buscando se adaptar, propor, ouvir e inovar em soluções que gerem valor e satisfação para os seus clientes. Nossa empresa foi criada com o intuito de prestar serviços especializados dentro do segmento financeiro, sendo referência na área de créditos imobiliários, autos e pesados. Com experiência, trazemos inovação, agilidade e transparência nos negócios para nossos clientes e parceiros.
Possuímos um atendimento personalizado e nosso compromisso é apresentar aos nossos clientes e parceiros as melhores condições que o mercado financeiro pode oferecer. Somos uma empresa independente, não sendo extensão de nenhuma administradora quando se trata de negociação de cotas de consórcios contemplados. O que negociamos são os direitos e deveres de um participante de um grupo de consórcio administrado por uma determinada administradora, onde, conforme o contrato de negociação, há consentimento e permissão para que a cota de consórcio seja transferida para outra pessoa (cessionário), desde que atendidas as exigências impostas pela administradora. Isso torna nossa prática legal e reconhecida pelo Banco Central, que regulamenta este segmento.
Quer vender seu consórcio?
Obtenha uma avaliação justa!
Dados do Consorciado
Administradora
Dados Cota
Negociação
Sucesso!
Nossa equipe recebeu sua proposta, em até 48 horas receberá um retorno..swal2-title {
color: #000000!important;
font-size: 3em!important;
}$(document).on('click', '.itemCota', function (event) {
if ($(event.target).closest('.areaBotoes').length) return;
const icone = $(this).find('i.brxe-icon').not('.areaBotoes i');
$(this).toggleClass('ativo');
icone.toggleClass('ion-md-square-outline ion-md-checkbox-outline');
if ($('.itemCota.ativo').length) {
$('#areaMultiplaAcao').removeClass('hidden');
} else {
$('#areaMultiplaAcao').addClass('hidden');
}
});
function parseBrazilianNumber(numberString) {
numberString = numberString.replace(/\.(?=\d{3}(,|$))/g, '');
numberString = numberString.replace(',', '.');
return parseFloat(numberString);
}
jQuery(document).ready(function($) {
$('#somarCotas').on('click', function() {
let cotasSelecionadas = [];
let totalCredito = 0, totalEntrada = 0;
$('#parcelasList').empty();
$('#cotasSelecionadas').empty();
const cotas = JSON.parse(sessionStorage.getItem('cotasGerais')) || [];
let categoriasSelecionadas = new Set();
$('.itemCota.ativo').each(function() {
const categoria = $(this).closest('.areaCotacoes').data('categoria');
categoriasSelecionadas.add(categoria);
});
if (categoriasSelecionadas.size > 1) {
Swal.fire({
icon: 'error',
title: 'Erro de Seleção',
html: '<p style="font-size: 2em; color: #555;">Por favor, verifique a sua seleção.<br>Não é possível somar cotas de categorias diferentes.</p>',
background: '#ffffff',
color: '#333',
confirmButtonColor: '#3085d6',
confirmButtonText: 'Entendi',
customClass: {
popup: 'swal2-modal-large',
title: 'swal2-title'
},
width: '600px',
padding: '2em'
});
return;
}
$('.itemCota.ativo').each(function() {
const idCota = $(this).find('.idCota').text().trim();
const cota = cotas.find(item => item._ID === idCota);
if (cota) {
const credito = parseBrazilianNumber(cota.credito);
const entrada = parseBrazilianNumber(cota.entrada);
const valorParcela = parseBrazilianNumber(cota.valor_parcela);
const quantidadeParcela = parseInt(cota.qtd_parcela);
totalCredito += credito;
totalEntrada += entrada;
const parcelaInfo = {
quantidade: quantidadeParcela,
valor: valorParcela
};
cotasSelecionadas.push(parcelaInfo);
$('#cotasSelecionadas').append(
`<div>Código: ${cota._ID} - ${cota.banco} - ${formatCurrency(credito)}</div>`
);
} else {
Swal.fire({
icon: 'warning',
title: 'Cota Não Encontrada',
text: `A cota com ID ${idCota} não foi encontrada.`,
background: '#ffffff',
color: '#333',
confirmButtonColor: '#3085d6',
confirmButtonText: 'Ok'
});
}
});
if (cotasSelecionadas.length === 0) {
$('#parcelasList').append('<div>Nenhuma parcela disponível.</div>');
return;
}
cotasSelecionadas.sort((a, b) => b.quantidade - a.quantidade);
const maiorParcelaQtd = cotasSelecionadas[0]?.quantidade || 0;
let somaParcelas = new Array(maiorParcelaQtd).fill(0);
cotasSelecionadas.forEach(parcela => {
for (let i = 0; i < parcela.quantidade; i++) {
somaParcelas[i] += parcela.valor;
}
});
let parcelasAgrupadas = [];
let qtdAtual = 1;
let valorAtual = somaParcelas[0];
for (let i = 1; i <= maiorParcelaQtd; i++) {
if (i < maiorParcelaQtd && somaParcelas[i] === valorAtual) {
qtdAtual++;
} else {
parcelasAgrupadas.push({ quantidade: qtdAtual, valor: valorAtual });
qtdAtual = 1;
valorAtual = somaParcelas[i];
}
}
let parcelasTexto = parcelasAgrupadas.map(p =>
`${p.quantidade} x ${formatCurrency(p.valor)}`
).join(' + ');
$('#parcelasList').append(`<div><b>Total de Parcelas: ${maiorParcelaQtd}</b></div>`);
$('#parcelasList').append(`<div>${parcelasTexto}</div>`);
$('#pcredito').text(formatCurrency(totalCredito));
$('#pentrada').text(formatCurrency(totalEntrada));
let cotasInfo = '';
$('#cotasSelecionadas div').each(function() {
cotasInfo += $(this).text() + '\n';
});
const mensagem = `
Crédito: *${formatCurrency(totalCredito)}*
Entrada: *${formatCurrency(totalEntrada)}*
Total de Parcelas: *${maiorParcelaQtd}*
${parcelasTexto}
Cotas Selecionadas
${cotasInfo}`.trim();
const mensagemEncoded = encodeURIComponent(mensagem);
$('#btnZapDireto').off('click').on('click', function() {
const whatsappUrl = `https://wa.me/?text=${mensagemEncoded}`;
window.open(whatsappUrl, '_blank');
});
window.togglePopup('Soma', true);
});
function formatCurrency(value) {
return new Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).format(value);
}
});
.swal2-popup {
font-size: 15px;
}jQuery(document).ready(function($) {
// Função para formatar valores monetários
function formatCurrency(value) {
return new Intl.NumberFormat('pt-BR', {
style: 'currency',
currency: 'BRL'
}).format(value);
}
// Função para analisar números no formato brasileiro
function parseBrazilianNumber(numberString) {
numberString = numberString.replace(/\.(?=\d{3}(,|$))/g, '');
numberString = numberString.replace(',', '.');
return parseFloat(numberString);
}
// Função para obter os dados das cotas do sessionStorage
function getCotasDataFromSession(storageKey) {
const cotasData = JSON.parse(sessionStorage.getItem(storageKey));
return cotasData || [];
}
// Função para renderizar cotas em uma área específica
function renderCotas(cotas, $targetArea) {
$targetArea.empty(); // Limpa a área antes de renderizar
if (cotas.length === 0) {
// Loga no console se não houver cotas para essa área
console.log('Nenhuma cota encontrada para a área:', $targetArea.attr('class'));
$targetArea.text('Nenhuma cota disponível.');
return;
}
cotas.forEach(function(cota) {
var $itemCota = $('#itemCota').clone().removeAttr('id');
// Se o clone será inserido em "#cotasOfertas .areaCotasOfertas",
// atualiza a categoria e remove a classe .hidden
if ($targetArea.closest('#cotasOfertas').length > 0 && $targetArea.hasClass('areaCotasOfertas')) {
console.log("Atualizando categoria para cota " + cota._ID + ": " + cota.categoria);
$itemCota.find('.categoria').text(cota.categoria).removeClass('hidden');
}
$itemCota.find('.logoBank').css('background-image', 'url(' + cota.bancourl + ')');
$itemCota.find('.nameBank').text(cota.banco);
$itemCota.find('.idCota').text(cota._ID);
$itemCota.find('.creditoCota').text(formatCurrency(cota.credito));
$itemCota.find('.entradaCota').text(formatCurrency(cota.entrada));
$itemCota.find('.valorParcelas').text(cota.qtd_parcela + 'x ' + formatCurrency(cota.valor_parcela));
$targetArea.append($itemCota);
});
}
// Função para carregar e renderizar cotas a partir da sessão
function loadAndRenderCotas() {
// Função genérica para carregar cotas
function loadCotas(acao, storageKey, areaClass, areaCotasClass, groupByCategory = true) {
const cotasData = getCotasDataFromSession(storageKey);
if (cotasData.length > 0) {
// Renderiza as cotas a partir do sessionStorage
console.log('Renderizando cotas do sessionStorage para:', storageKey);
if (groupByCategory) {
$('.' + areaCotasClass).each(function() {
var categoria = $(this).data('categoria');
var cotasCategoria = cotasData.filter(cota => cota.categoria === categoria);
renderCotas(cotasCategoria, $(this));
});
} else {
// Renderiza todas as cotas sem agrupar por categoria
const $area = $('.' + areaCotasClass);
renderCotas(cotasData, $area);
}
} else {
// Faz a chamada AJAX para obter as cotas
$.post(window.location.href, { acao: acao }, function(response, status, xhr) {
if (xhr.status === 202 && response.length > 0) {
// Salva a resposta no sessionStorage
sessionStorage.setItem(storageKey, JSON.stringify(response));
if (groupByCategory) {
$('.' + areaCotasClass).each(function() {
var categoria = $(this).data('categoria');
var cotasCategoria = response.filter(cota => cota.categoria === categoria);
renderCotas(cotasCategoria, $(this));
});
} else {
// Renderiza todas as cotas sem agrupar por categoria
const $area = $('.' + areaCotasClass);
renderCotas(response, $area);
}
} else {
console.warn('Não foi possível carregar as cotas:', storageKey, 'e não existem dados no sessionStorage.');
// Exibe mensagem nas áreas correspondentes
$('.' + areaClass + '.areaCotacoes .' + areaCotasClass).text('Nenhuma cota disponível.');
}
}).fail(function(jqXHR, textStatus, errorThrown) {
console.error('Erro na chamada AJAX para carregar cotas:', storageKey, 'Erro:', textStatus, errorThrown);
// Exibe mensagem de erro
$('.' + areaClass + '.areaCotacoes .' + areaCotasClass).text('Erro ao carregar cotas.');
});
}
}
// Carrega cotas gerais (agrupadas por categoria)
loadCotas('get_cotas_selecao', 'cotasGerais', 'cotasGerais', 'areaCotas', true);
// Carrega cotas de ofertas (sem agrupar por categoria)
loadCotas('get_cotas_vendedor', 'cotasGeraisOfertas', 'cotasGeraisOfertas', 'areaCotasOfertas', false);
}
loadAndRenderCotas();
// Função para obter os dados de uma cota específica
function getCotaData($itemCota) {
const $areaCotacoes = $itemCota.closest('.areaCotacoes');
let cotasKey;
if ($areaCotacoes.hasClass('cotasGerais')) {
cotasKey = 'cotasGerais';
} else if ($areaCotacoes.hasClass('cotasGeraisOfertas')) {
cotasKey = 'cotasGeraisOfertas';
} else {
console.warn('Tipo de cota desconhecido para o item:', $itemCota);
return null;
}
const cotasArray = getCotasDataFromSession(cotasKey);
const idCota = $itemCota.find('.idCota').text().trim();
const cota = cotasArray.find(item => item._ID === idCota);
return cota;
}
// Função para verificar se todas as cotas selecionadas são da mesma categoria
// Função para verificar se todas as cotas selecionadas são do mesmo banco e categoria
function checkSingleCategoryAndBank() {
let categoriasSelecionadas = new Set();
let bancosSelecionados = new Set();
$('.itemCota.ativo').each(function() {
const $itemCota = $(this);
const $areaCotacoes = $itemCota.closest('.areaCotacoes');
const categoria = $areaCotacoes.data('categoria');
const cotaData = getCotaData($itemCota); // Obtém os dados da cota
if (cotaData) {
categoriasSelecionadas.add(categoria);
bancosSelecionados.add(cotaData.banco); // Assumindo que "banco" é a propriedade correta
}
});
if (categoriasSelecionadas.size > 1) {
Swal.fire({
icon: 'error',
title: 'Erro de Seleção',
html: '<p style="font-size: 2em; color: #555;">Por favor, verifique a sua seleção.<br>Não é possível somar cotas de categorias diferentes.</p>',
background: '#ffffff',
color: '#333',
confirmButtonColor: '#3085d6',
confirmButtonText: 'Entendi',
customClass: {
popup: 'swal2-modal-large',
title: 'swal2-title'
},
width: '600px',
padding: '2em'
});
return false;
}
if (bancosSelecionados.size > 1) {
Swal.fire({
icon: 'error',
title: 'Erro de Seleção',
html: '<p style="font-size: 2em; color: #555;">Por favor, verifique a sua seleção.<br>Não é possível somar cotas de bancos diferentes.</p>',
background: '#ffffff',
color: '#333',
confirmButtonColor: '#3085d6',
confirmButtonText: 'Entendi',
customClass: {
popup: 'swal2-modal-large',
title: 'swal2-title'
},
width: '600px',
padding: '2em'
});
return false;
}
return true;
}
// Modifica a função do botão #somarCotas para chamar a nova função de verificação
$('#somarCotas').on('click', function() {
if (!checkSingleCategoryAndBank()) {
return;
}
const { cotasSelecionadas, totalCredito, totalEntrada } = processSelectedCotas();
const { maiorParcelaQtd, parcelasTexto } = calculateParcelas(cotasSelecionadas);
$('#pcredito').text(formatCurrency(totalCredito));
$('#pentrada').text(formatCurrency(totalEntrada));
prepareMessage(totalCredito, totalEntrada, maiorParcelaQtd, parcelasTexto);
// Exibe o popup com os resultados
window.togglePopup('Soma', true);
});
// Função para processar as cotas selecionadas
function processSelectedCotas() {
let cotasSelecionadas = [];
let totalCredito = 0, totalEntrada = 0;
$('#parcelasList').empty();
$('#cotasSelecionadas').empty();
$('.itemCota.ativo').each(function() {
const $itemCota = $(this);
const cota = getCotaData($itemCota);
if (cota) {
const credito = parseBrazilianNumber(cota.credito);
const entrada = parseBrazilianNumber(cota.entrada);
const valorParcela = parseBrazilianNumber(cota.valor_parcela);
const quantidadeParcela = parseInt(cota.qtd_parcela);
totalCredito += credito;
totalEntrada += entrada;
const parcelaInfo = {
quantidade: quantidadeParcela,
valor: valorParcela
};
cotasSelecionadas.push(parcelaInfo);
$('#cotasSelecionadas').append(
`<div>Código: ${cota._ID} - ${cota.banco} - ${formatCurrency(credito)}</div>`
);
} else {
const idCota = $itemCota.find('.idCota').text().trim();
Swal.fire({
icon: 'warning',
title: 'Cota Não Encontrada',
text: `A cota com ID ${idCota} não foi encontrada.`,
background: '#ffffff',
color: '#333',
confirmButtonColor: '#3085d6',
confirmButtonText: 'Ok'
});
}
});
return {
cotasSelecionadas,
totalCredito,
totalEntrada
};
}
// Função para calcular as parcelas agrupadas
function calculateParcelas(cotasSelecionadas) {
if (cotasSelecionadas.length === 0) {
$('#parcelasList').append('<div>Nenhuma parcela disponível.</div>');
return;
}
cotasSelecionadas.sort((a, b) => b.quantidade - a.quantidade);
const maiorParcelaQtd = cotasSelecionadas[0]?.quantidade || 0;
let somaParcelas = new Array(maiorParcelaQtd).fill(0);
cotasSelecionadas.forEach(parcela => {
for (let i = 0; i < parcela.quantidade; i++) {
somaParcelas[i] += parcela.valor;
}
});
let parcelasAgrupadas = [];
let qtdAtual = 1;
let valorAtual = somaParcelas[0];
for (let i = 1; i <= maiorParcelaQtd; i++) {
if (i < maiorParcelaQtd && somaParcelas[i] === valorAtual) {
qtdAtual++;
} else {
parcelasAgrupadas.push({ quantidade: qtdAtual, valor: valorAtual });
qtdAtual = 1;
valorAtual = somaParcelas[i];
}
}
let parcelasTexto = parcelasAgrupadas.map(p =>
`${p.quantidade} x ${formatCurrency(p.valor)}`
).join(' + ');
$('#parcelasList').append(`<div><b>Total de Parcelas: ${maiorParcelaQtd}</b></div>`);
$('#parcelasList').append(`<div>${parcelasTexto}</div>`);
return {
maiorParcelaQtd,
parcelasTexto
};
}
// Função para preparar a mensagem do WhatsApp
function prepareMessage(totalCredito, totalEntrada, maiorParcelaQtd, parcelasTexto) {
let cotasInfo = '';
$('#cotasSelecionadas div').each(function() {
cotasInfo += $(this).text() + '\n';
});
const mensagem = `
Crédito: *${formatCurrency(totalCredito)}*
Entrada: *${formatCurrency(totalEntrada)}*
Total de Parcelas: *${maiorParcelaQtd}*
${parcelasTexto}
Cotas Selecionadas
${cotasInfo}`.trim();
const mensagemEncoded = encodeURIComponent(mensagem);
$('#btnZapDireto').off('click').on('click', function() {
const whatsappUrl = `https://wa.me/?text=${mensagemEncoded}`;
window.open(whatsappUrl, '_blank');
});
return mensagem;
}
// Evento ao clicar no botão #somarCotas
$('#somarCotas').on('click', function() {
if (!checkSingleCategory()) {
return;
}
const { cotasSelecionadas, totalCredito, totalEntrada } = processSelectedCotas();
const { maiorParcelaQtd, parcelasTexto } = calculateParcelas(cotasSelecionadas);
$('#pcredito').text(formatCurrency(totalCredito));
$('#pentrada').text(formatCurrency(totalEntrada));
prepareMessage(totalCredito, totalEntrada, maiorParcelaQtd, parcelasTexto);
// Exibe o popup com os resultados
window.togglePopup('Soma', true);
});
// Evento de clique nos itens de cota para seleção
$(document).on('click', '.itemCota', function(event) {
if ($(event.target).closest('.areaBotoes').length) return;
const icone = $(this).find('i.brxe-icon').not('.areaBotoes i');
$(this).toggleClass('ativo');
icone.toggleClass('ion-md-square-outline ion-md-checkbox-outline');
if ($('.itemCota.ativo').length) {
$('#areaMultiplaAcao').removeClass('hidden');
} else {
$('#areaMultiplaAcao').addClass('hidden');
}
});
$(document).on('click', '.credito', function() {
handleSortClick($(this), 'credito');
});
$(document).on('click', '.entrada', function() {
handleSortClick($(this), 'entrada');
});
function handleSortClick($element, sortKey) {
// Alterna o ícone
var $icon = $element.find('i');
var isDescending = $icon.hasClass('ion-ios-arrow-down');
// Resetar o ícone da outra coluna
if (sortKey === 'credito') {
resetSortIcon($('.entrada'));
} else {
resetSortIcon($('.credito'));
}
// Alterna o ícone atual
$icon.toggleClass('ion-ios-arrow-down ion-ios-arrow-up');
// Ordena os itens
sortCotas(sortKey, isDescending);
}
function resetSortIcon($element) {
var $icon = $element.find('i');
$icon.removeClass('ion-ios-arrow-up').addClass('ion-ios-arrow-down');
}
function sortCotas(sortKey, isDescending) {
// Obter todas as áreas de cotas
$('.areaCotas').each(function() {
var $areaCotas = $(this);
var cotas = [];
// Obter todos os itens de cota
$areaCotas.find('.itemCota').each(function() {
var $itemCota = $(this);
var cotaData = getCotaData($itemCota);
if (cotaData) {
cotaData.$element = $itemCota;
cotas.push(cotaData);
}
});
// Ordenar as cotas
cotas.sort(function(a, b) {
var aValue = parseBrazilianNumber(a[sortKey]);
var bValue = parseBrazilianNumber(b[sortKey]);
if (isDescending) {
return bValue - aValue;
} else {
return aValue - bValue;
}
});
// Renderizar as cotas ordenadas
$areaCotas.empty();
cotas.forEach(function(cota) {
$areaCotas.append(cota.$element);
});
});
}
});
jQuery(document).ready(function($) {
var ordenacao = {
campo: 'credito', // valor inicial padrão, pode ser o que quiser
direcao: 'desc' // 'asc' ou 'desc'
};
function formatCurrency(value) {
return new Intl.NumberFormat('pt-BR', {
style: 'currency',
currency: 'BRL'
}).format(value);
}
function limparCotas() {
$('.areaCotasOfertas').empty();
}
function renderCotas(cotas) {
var $areaCotasOfertas = $('.areaCotasOfertas');
limparCotas();
cotas.forEach(function(cota) {
var $itemCota = $('#itemCota').clone().removeAttr('id').show();
$itemCota.find('.logoBank').css('background-image', 'url(' + cota.bancourl + ')');
$itemCota.find('.nameBank').text(cota.banco);
$itemCota.find('.idCota').text(cota._ID);
var $categoria = $itemCota.find('.categoria');
$categoria.text(cota.categoria);
$categoria.removeClass('hidden');
$itemCota.find('.creditoCota').text(formatCurrency(cota.credito));
$itemCota.find('.entradaCota').text(formatCurrency(cota.entrada));
$itemCota.find('.valorParcelas').text(cota.qtd_parcela + 'x ' + formatCurrency(cota.valor_parcela));
$areaCotasOfertas.append($itemCota);
});
}
function ordenarCotas(campo, direcao, cotas) {
return cotas.slice().sort(function(a, b) {
var vA = parseFloat(a[campo]);
var vB = parseFloat(b[campo]);
if (direcao === 'asc') return vA - vB;
return vB - vA;
});
}
function atualizarIcones() {
var setaCredito = $('.filtroCredito .icon i');
var setaEntrada = $('.filtroEntrada .icon i');
if (ordenacao.campo === 'credito') {
setaCredito.attr('class', ordenacao.direcao === 'desc' ? 'ion-ios-arrow-down' : 'ion-ios-arrow-up');
setaEntrada.attr('class', 'ion-ios-arrow-up'); // padrão dela
} else {
setaCredito.attr('class', 'ion-ios-arrow-down'); // padrão dela
setaEntrada.attr('class', ordenacao.direcao === 'desc' ? 'ion-ios-arrow-down' : 'ion-ios-arrow-up');
}
}
function toggleDirecao(campo) {
if (ordenacao.campo === campo) {
ordenacao.direcao = ordenacao.direcao === 'asc' ? 'desc' : 'asc';
} else {
ordenacao.campo = campo;
// Pode escolher direção padrão ao trocar de campo:
ordenacao.direcao = campo === 'credito' ? 'desc' : 'asc';
}
}
$('.filtroCredito').on('click', function(e) {
e.preventDefault();
var cotas = JSON.parse(sessionStorage.getItem('cotasGeraisOfertas') || '[]');
if (!cotas.length) return; // Nada a ordenar
toggleDirecao('credito');
var cotasOrdenadas = ordenarCotas('credito', ordenacao.direcao, cotas);
renderCotas(cotasOrdenadas);
atualizarIcones();
});
$('.filtroEntrada').on('click', function(e) {
e.preventDefault();
var cotas = JSON.parse(sessionStorage.getItem('cotasGeraisOfertas') || '[]');
if (!cotas.length) return; // Nada a ordenar
toggleDirecao('entrada');
var cotasOrdenadas = ordenarCotas('entrada', ordenacao.direcao, cotas);
renderCotas(cotasOrdenadas);
atualizarIcones();
});
// Opcional: ao carregar a página já pode fazer a renderização com a ordenação default:
(function initRender() {
var cotas = JSON.parse(sessionStorage.getItem('cotasGeraisOfertas') || '[]');
if (!cotas.length) return;
var cotasOrdenadas = ordenarCotas(ordenacao.campo, ordenacao.direcao, cotas);
renderCotas(cotasOrdenadas);
atualizarIcones();
})();
});


