Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

#15612
Projeto Concluido 04/04/2012 - 13:30

Mais informações: https://forum.opencartbrasil.com.br/ ... =43&t=3542



-------------------------------------------------------------------------------------------------------------------------
Continuando este andamento: https://forum.opencartbrasil.com.br/ ... =43&t=1699

Segue o meu projeto, não esta funcionando 100%

Caracteristicas adicionais:
~* CPF
~* RG
~* Data de Nascimento
~* CEP
~* Numero

Auto pesquisa para CEP, CPF
Maskaras: CPF, Nome, Sobrenome, RG, validação de data de nascimento, Telefone, Celular, CEP, Endereço, Numero, Bairro, Cidade.

Demo: Offline

** Problema: Ao efetuar o cadastro o numero não fica salvo no banco de dados.
Mas ao alterar o endereço o numero fika certo. só que duplica o endereço.

Download: http://www.mediafire.com/?o3c1olorwg2di8c
Editado pela última vez por Luiz R. em 04 Abr 2012, 13:35, em um total de 2 vezes.
#15613
Validação data de nascimento, para ver se o cliente é maior de idade (18 anos) ao se cadastrar.

- - - - - - - - > catalog\controller\account\register.php
Código: Selecionar todos
	function MaiorIdade($data_nasc) {
	$data_nasc = utf8_decode(urldecode($data_nasc));
	
  	list($dia_nasc, $mes_nasc, $ano_nasc) = explode("/", $data_nasc); 
  	list($dia_hoje, $mes_hoje, $ano_hoje) = explode("/", date("d/m/Y", time()));

 	//Definido por padão 18 anos

	return  mktime(23, 59, 59, $mes_nasc, $dia_nasc, $ano_nasc) < mktime(00, 00, 00, $mes_hoje, $dia_hoje, $ano_hoje - 18);
	}

    	if( (utf8_strlen($this->request->post['nascimento']) < 10) || (utf8_strlen($this->request->post['nascimento']) > 11) ) 	{
        $this->error['nascimento'] = $this->language->get('error_nascimento');
									} else {

    	if(utf8_strlen($this->request->post['nascimento']) == 10) {
    	list($dia, $mes, $ano) = explode("/", $this->request->post['nascimento']);
    	if(checkdate($mes, $dia, $ano)) { 
    	if( $ano < (date("Y")) && $ano > (date("Y")-100) ) { 
	if (MaiorIdade($this->request->post['nascimento'])) { 
	} else { $this->error['nascimento'] = $this->language->get('error_demenor'); }
	} else { $this->error['nascimento'] = $this->language->get('error_nascer');  }
	} else { $this->error['nascimento'] = $this->language->get('error_nascer');  }
	} else { $this->error['nascimento'] = $this->language->get('error_nascer');  }

									}
#15661
Enfim, começei novamente do zero e agora estou corrigindo os problemas.
Vendas somente para pessoas FISICA (CPF)

Campos adicionados
~* Data de Nascimento
~* Numero correspondecia.
~* Auto-CPF
~* Auto-CEP

Logo posto minha contribuição aqui, mas para quem quiser da uma espiada na pagina de cadastro: http://eutodalinda.com/index.php?route=account/register
#15675
Função para verificar CPF verdadeiro dentro do PHP

Código: Selecionar todos
	function CPF($xpf) 		{ 
	  $xk=0;
		for($i=0; $i<(strlen($xpf)); $i++){
	    if(is_numeric($xpf[$i])){ $kk[$xk]=$xpf[$i]; $xk++; } }
	    if(count($kk)!=11) { $kss=false; } else {
		for($i=0; $i<10; $i++) {
 	    if ($kk[0]==$i && $kk[1]==$i && $kk[2]==$i && $kk[3]==$i && $kk[4]==$i && $kk[5]==$i && $kk[6]==$i && $kk[7]==$i && $kk[8]==$i) { $kss=false; break; } } }
	    if(!isset($kss)) { $xk=10;
		for($i=0; $i<9; $i++) { $kx[$i]=$kk[$i]*$xk; $xk--; }
	  $adx = array_sum($kx);
	  $ret = $adx%11;
	    if($ret<2) { $mx=0; } else { $mx=11-$ret; }
	    if($mx!=$kk[9]) { $kss=false; } }
	    if(!isset($kss)) { $xk=11; for($i=0; $i<10; $i++) { $kx[$i]=$kk[$i]*$xk; $xk--; }
	  $adx = array_sum($kx);
	  $ret = $adx%11;
	    if($ret<2) { $mx=0; } else { $mx=11-$ret;}
	    if($mx!=$kk[10]) { $kss=false; } else { $kss=true; } }
		return $kss;
					}
#15679
Cara... isso tá MUITO bom.

Mas eu vi que até o curl() no site da receita você fez pra buscar o nome completo. Animal isso!! :mrgreen:

Só sugiro fazer uma capitação correta (use ucwords() na string encontrada) em vez de deixar maiúsculo. Pode ficar feio o layout do nome nos templates de e-mail por exemplo.

Eu fiz uso do curl() num módulo de conversão de moeda pra WHMCS. Puxei a cotação da xe.com. 1 semana depois, após anos sem mudar a página, eles mudaram a formatação do código. Eu fui lá pegar a formatação nova pra fazer o regex e tinha um comentário ao redor dó código "<!-- é expressamente proibido utilizar ferramentas de captura automática da cotação da xe.com -->" kkkkk
#15692
Função para verificar se o CEP realmente é verdadeiro:
Código: Selecionar todos
	function CEP($x) 	{
	$URL = "http://eutodalinda.com/sistema/cep.php?cep=".$x."&php=1";
	$Verificar = file_get_contents($URL);
	return  $Verificar;
				}

Se alguem tiver alguma outra forma de verificar o cep e poder compartilhar, é bom e ajuda o desenvolvimento.

Renato , depois se vc quiser compartilhar seu codigo para eu dar uma olhada, pois é possivel burlar isto:
<!-- é expressamente proibido utilizar ferramentas de captura automática da cotação da xe.com -->

Em questão do nome todo em maiusculo isso foi de minha preferencia, por ser altamente legivel para o consumidor. Seila.. Mas opiniões são bem vindas..

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

O CPF automatico demoro para eu entender e como conseguir fazer, esse deu dor de cabeça.
Esta funcionando, mas não é garantido a funcionabilidade.


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Eu desconhecia esta função mas é interessante.
Código: Selecionar todos
<?php
$foo = 'hello world!';
$foo = ucfirst($foo);             // Hello world!

$bar = 'HELLO WORLD!';
$bar = ucfirst($bar);             // HELLO WORLD!
$bar = ucfirst(strtolower($bar)); // Hello world!
?>
#15695
Ah, não me impediu... eu simplesmente atualizei a expressão regular e pronto. Só fizeram pra dificultar mesmo. Além do mais, se dá pra acessar via browser (e não é limitado pra assinantes ou coisa assim), quem são eles pra dizerem que é proibido eu pegar via curl()? :mrgreen: Isso já faz uns 2 anos e, até setembro, continuava funcionando a função. Cancelei a conta de hospedagem onde estava esse script sem fazer backup e não sei se ainda tenho (deve estar no meu PC antigo).

ucfirst só capitaliza a primeira letra da string. ucwords capitaliza a primeira letra de cada uma das palavras.
#15716
Eu estava pensando em simplificar o cadastro.

Remover: Firstname(Nome), e Lastname(Sobrenome)
Porque no cadastro quando digita o cpf, o servidor ja retorna o nome completo...

Gente preciso de ajuda urgente. Na migraç&a[…]

Caro @reds , muito obrigado pela resposta.

PHP 8+ incompatibilidade

Toda tradução para a versão 3[…]

Ola @alex3257 Se você precisa apenas ver […]