r-martins / PagSeguro-Magento-Transparente

Módulo de checkout transparente para Pagseguro - com api v. 2.0
GNU General Public License v2.0
66 stars 0 forks source link

Fix RMPagSeguro.getInstallments ainda continua apresentando problemas #110

Closed magnored closed 9 years ago

magnored commented 9 years ago

Ola a todos, recentemente instalei o modulo do pagseguro no modo de aplicação e estava com o mesmo problema apresentado no #47 Contudo, com o fix do @LBCorr, no arquivo totals, ele até atualiza as parcelas, porém, qdo a pessoa tenta clicar em outra parcela (por exemplo 3x) o codigo recalcula tudo e volta sempre para 1x

Algum dica para isso ?

No debug do firefox, olha o que ele faz quando eu clico em uma nova parcela: image

LBCorr commented 9 years ago

magnored não entendi bem o caso, o select atualiza os valores mas se vc mudar a seleção ele roda novamente o script? Aqui eu encontrei um problema que ao alterar o frete, por exemplo, ele recalcula e volta para 1x com o valor certo, já estou consertando para pegar a parcela selecionada antes de atualizar, mas acho que não é o seu caso... Se for como imagino, vejo duas opções, uma seria algum on change no select rodando o script, mas só vendo o código para saber, a outra é (como meu tema) vc usar um select não padrão, nesse caso vc pode abrir e fechar o select via jquery ou selecionar o opção, talvez resolva, no meu caso eu uso um script selectbox que preciso fazer:

                jQuery('select[name*="payment[ps_cc_installments]"]').selectbox('detach'); // ATUALIZA O VALOR DO PAGAMENTO
                jQuery('select[name*="payment[ps_cc_installments]"]').selectbox('attach'); // ATUALIZA O VALOR DO PAGAMENTO

talvez no seu caso, ao invés do código acima, vc possa usar o próprio select option do jquery... me dá mais detalhes pra eu ver se posso ajudar...

LBCorr commented 9 years ago

Não sei se vai te ajudar, mas fiz uma alteração para o caso que citei antes (mudar o frete e voltar para 1x), como ele realiza um select, pode resolver seu problema. Em pagseguro.js logo abaixo de RMPagSeguro.getInstallments = function(){ adicionei:

var pag_sel =jQuery( "select#pagseguro_cc_cc_installments option:selected").val();
 if(pag_sel != ''){
 var pag_selb = ((pag_sel.charAt(0))-1);
 }

depois, abaixo de parcelsDrop.add(option); adicionei:

if(pag_sel != ''){
 jQuery('select#pagseguro_cc_cc_installments>option:eq('+pag_selb+')').attr('selected', true); //atualiza parcela selecionada
 }

o script detecta as parcelas selecionadas antes de atualizar, da update no valor e seleciona a parcela que estava. Talvez essa seleção já resolva o problema se não tiver um onchange no select... avisa se fez alguma diferença... Abraço

magnored commented 9 years ago

@LBCorr nao testei sua solucao, mas fiz isso no pagseguro.js grandTotal = parseFloat(grandTotal); grandTotal = grandTotal + window.dez_conto; window.granTotal = grandTotal; abaixo da linha 110 e agora ele força a atualizacao do desconto... Pra mim deu certo

magnored commented 9 years ago

@LBCorr Seu fix das parcelas funcionou perfeitamente, juntamente com o fix https://github.com/r-martins/PagSeguro-Magento-Transparente/issues/47#issuecomment-67471889

Seria legal colocar como sugestao para o @r-martins aplicar em um proximo update

r-martins commented 9 years ago

@magnored, O problema reportado na primeira mensagem deve ser oriundo de alguma customização feita. Não consegui simular tal situação em nenhum cenário. As sugestões do @LBCorr são legais, mas exigiriam jQuery que o modulo não usa hoje. Qualquer coisa, reabre com mais detalhes e tento ajudar.

Tente ver esse link também.