deivisonarthur / OSC-Magento-Brasil-4-Pro

23 stars 51 forks source link

CPF NO PEDIDO #11

Closed paulodamas closed 11 years ago

paulodamas commented 11 years ago

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.

evandrorei commented 11 years ago

SE descobir me fala! aushaus

luizfernandotech commented 11 years ago

Achei o problema deve estar postando amanha a solução.

evandrorei commented 11 years ago

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

luizfernandotech commented 11 years ago

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);
    });
    //]]>

dweigmann commented 11 years ago

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

claudio5678 commented 11 years ago

A última atualização corrige o problema. O CPF também está gravando quando NÃO se utiliza o campo Tax/VAT.