Closed paulodamas closed 11 years ago
SE descobir me fala! aushaus
Achei o problema deve estar postando amanha a solução.
FICAREI MUITO CONTENTE COM A SOLUÇÃO PORQUE ESTou dias e noites tentando e nada, ja ate desconfigurei tudo as opçoes de Habilitado e Desabilitado do Text/Vat e campo CPF, se possivel me mandar um print das config do seu modulo tambem... Uq vc precisar de ajuda me fala...abrção cara, estou no aguardo
Vamos la.. existem alguns bugs que fazem com que o CPF e CNPJ nao sejam gravados corretamente, basicamente é por causa de javascript e conflitos de nome de campo.
Eu fiz as correções me baseando na minha realidade que é utilizando o campo taxvat para armazenar o cpf e cnpj, ok!
no arquivo: app/design/frontend/base/default/template/onepagecheckout/persistent/customer/form/register.phtml
no final do arquivo
Adicionei:
function verificaTipoPessoa(){
var tipoPessoa = $j('input[name*="tipopessoa"]:checked').val();
if(tipoPessoa == 'Fisica'){
$j('.boxpf #taxvat').attr('name', 'taxvat');
$j('.boxpj #taxvat').attr('name', 'taxvat-old');
}else{
$j('.boxpf #taxvat').attr('name', 'taxvat-old');
$j('.boxpj #taxvat').attr('name', 'taxvat');
}
}
verificaTipoPessoa();
antes de:
var existe;
no arquivo: app/design/frontend/base/default/template/onepagecheckout/onepage/billing.phtml
depois de:
<?php $cpfcnpj = Mage::getStoreConfig('onepagecheckout/outrasopcoes/cpfcnpjregistro'); ?>
foi adicionado:
<?php $usaTaxVatCpfCnpj = Mage::getStoreConfig('onepagecheckout/general/taxvat'); ?>
<?php $nameCpf = ($usaTaxVatCpfCnpj) ? "billing[taxvat]" : "billing[cpfcnpj]"; ?>
Nos inputs de CPF e CNPJ, foi trocado
de:
<input type="text" id="cpfcnpj" name="billing[cpfcnpj]"
para:
<input type="text" id="cpfcnpj" name="<?php echo $nameCpf; ?>"
Procure por: para:
<?php echo $this->__('CPF') ?></label>
Logo abaixo tera:
<input type="text" id="cpfcnpj"
Troque o ID do input Logo abaixo tera:
<input type="text" id="cpf"
Procure por: para:
<?php echo $this->__('CNPJ') ?></label>
Logo abaixo tera:
<input type="text" id="cpfcnpj"
Troque o ID do input Logo abaixo tera:
<input type="text" id="cnpj"
Bem ao final do arquivo tem um bloco grande de javascrit:
//<![CDATA[
/*===================================================== ONLOAD ===========================================================*/
var tipovindobanco;
var existe;
/*Pega tipo pessoa vindo do banco e o seta*/
tipovindobanco = "<?php echo $this->htmlEscape($this->getCustomer()->getTipopessoa()) ?>";
/*Verifica se existe o Taxvat*/
existe = $j('input[name*="[taxvat]"]').length;
if(tipovindobanco == 'Fisica'){
/*fisica*/
/*Se existe o Taxvat alterna entre eles mudando o name conforme selecionado o tipo pessoa*/
if( existe != ''){
/*BILLING*/
$j('input[name*="[taxvat-old]"]').attr('name', 'billing[taxvat]'); /*CNPJ OK*/
$j('input[name*="[taxvat]"]:eq(1)').attr('name', 'NULL'); /*CPF NULL*/
/*LIMPA CAMPOS*/
$j('input[name*="[taxvat]"]').attr('class', 'validar_cpfcnpj input-text');
}else{
/*BILLING*/
$j('.Binputcnpj').attr('name', "NULL"); /*CNPJ NULL*/
$j('.Binputcpf').attr('name', "billing[cpfcnpj]"); /*CPF OK*/
}
/*Exibe ou oculta os boxs*/
$j('.boxpj').hide();
$j('.boxpf').show();
/*Exibe ou oculta o entregar em outro endereço conforme a selecao do tipo pessoa*/
$j('li.options').find("label:contains('Entregar')").css('visibility', 'visible');
$j('input[name*="[same_as_billing]"]').css('visibility', 'visible');
}else if(tipovindobanco == 'Juridica'){
/*juricica*/
/*Se existe o Taxvat alterna entre eles mudando o name conforme selecionado o tipo pessoa*/
if( existe != ''){
/*BILLING*/
$j('input[name*="[taxvat-old]"]').attr('name', 'billing[taxvat]'); /*CNPJ OK*/
$j('input[name*="[taxvat]"]:eq(0)').attr('name', 'NULL'); /*CPF NULL*/
/*ADD CLASS NO TAXVAT*/
$j('input[name*="[taxvat]"]').attr('class', 'validar_cpfcnpj input-text');
}else{
/*BILLING*/
$j('.Binputcnpj').attr('name', 'billing[cpfcnpj]'); /*CNPJ OK*/
$j('.Binputcpf').attr('name', 'NULL'); /*CPF NULL*/
}
/*Exibe ou oculta os boxs*/
$j('.boxpj').show();
$j('.boxpf').hide();
/*Exibe ou oculta o entregar em outro endereço conforme a selecao do tipo pessoa*/
$j('li.options').find("label:contains('Entregar')").css('visibility', 'hidden');
$j('input[name*="[same_as_billing]"]').css('visibility', 'hidden');
}
//]]>
Troque isso por isso:
//<![CDATA[
/*===================================================== ONLOAD ===========================================================*/
function verificaTipoPessoa(tipovindobanco){
var existe;
/*Verifica se existe o Taxvat*/
existe = $j('input[name*="[taxvat]"]').length;
if(tipovindobanco == 'Fisica' || tipovindobanco == ''){
$j('.boxpf #cpf').attr('name', 'billing[taxvat]');
$j('.boxpj #cnpj').attr('name', 'billing[taxvat-old]');
}else{
$j('.boxpf #cpf').attr('name', 'billing[taxvat-old]');
$j('.boxpj #cnpj').attr('name', 'billing[taxvat]');
}
if(tipovindobanco == 'Fisica'){
/*fisica*/
/*Se existe o Taxvat alterna entre eles mudando o name conforme selecionado o tipo pessoa*/
if( existe != ''){
/*BILLING*/
// $j('input[name*="[taxvat-old]"]').attr('name', 'billing[taxvat]'); /*CNPJ OK*/
// $j('input[name*="[taxvat]"]:eq(1)').attr('name', 'NULL'); /*CPF NULL*/
/*LIMPA CAMPOS*/
$j('input[name*="[taxvat]"]').attr('class', 'validar_cpfcnpj input-text');
}else{
/*BILLING*/
$j('.Binputcnpj').attr('name', "NULL"); /*CNPJ NULL*/
$j('.Binputcpf').attr('name', "billing[cpfcnpj]"); /*CPF OK*/
}
/*Exibe ou oculta os boxs*/
$j('.boxpj').hide();
$j('.boxpf').show();
/*Exibe ou oculta o entregar em outro endereço conforme a selecao do tipo pessoa*/
$j('li.options').find("label:contains('Entregar')").css('visibility', 'visible');
$j('input[name*="[same_as_billing]"]').css('visibility', 'visible');
}else if(tipovindobanco == 'Juridica'){
/*juricica*/
/*Se existe o Taxvat alterna entre eles mudando o name conforme selecionado o tipo pessoa*/
if( existe != ''){
/*BILLING*/
// $j('input[name*="[taxvat-old]"]').attr('name', 'billing[taxvat]'); /*CNPJ OK*/
// $j('input[name*="[taxvat]"]:eq(0)').attr('name', 'NULL'); /*CPF NULL*/
/*ADD CLASS NO TAXVAT*/
$j('input[name*="[taxvat]"]').attr('class', 'validar_cpfcnpj input-text');
}else{
/*BILLING*/
$j('.Binputcnpj').attr('name', 'billing[cpfcnpj]'); /*CNPJ OK*/
$j('.Binputcpf').attr('name', 'NULL'); /*CPF NULL*/
}
/*Exibe ou oculta os boxs*/
$j('.boxpj').show();
$j('.boxpf').hide();
/*Exibe ou oculta o entregar em outro endereço conforme a selecao do tipo pessoa*/
$j('li.options').find("label:contains('Entregar')").css('visibility', 'hidden');
$j('input[name*="[same_as_billing]"]').css('visibility', 'hidden');
}
}
verificaTipoPessoa('<?php echo $this->htmlEscape($this->getCustomer()->getTipopessoa()) ?>');
$j('input[name*="[tipopessoa]"]').click(function() {
var tipoPessoa = $j('input[name*="[tipopessoa]"]:checked').val();
verificaTipoPessoa(tipoPessoa);
});
//]]>
Olá, com essas alterações, o CPF está gravando corretamente no campo Tax/VAT Number. Você vai tentar corrigir para ele gravar no campo CPF também?
sds. Daniel
A última atualização corrige o problema. O CPF também está gravando quando NÃO se utiliza o campo Tax/VAT.
Ao realizar uma compra o sistema não grava o campo CPF, quando acesso os dados co cliente o campo esta vazio.... Como posso resolver esse problema?
Att.