Jump to content
fagnerfxa

Como configurar SIRET para CNPJ e APE para IE

Recommended Posts

Fala pessoal, tudo bem ?

 

No ecommerce que estou fazendo necessitei ativar o modo b2b para que o cliente precise informa cnpj e inscrição estadual, siret foi traduzido para cnpj e codigo ape para ie, só que a validação não foi aplicada para esses documentos brasileiros, então precisava de uma mãozinha dos experts em prestashop/php, como mudaria essas validações para atender ao código cnpj e ie ?

/**
	 * Validate SIRET Code
	 * @static
	 * @param $siret SIRET Code
	 * @return boolean Return true if is valid
	 */
	public static function isSiret($siret)
	{
		if (Tools::strlen($siret) != 14)
			return false;
		$sum = 0;
		for ($i = 0; $i != 14; $i++)
		{
			$tmp = ((($i + 1) % 2) + 1) * intval($siret[$i]);
			if ($tmp >= 10)
				$tmp -= 9;
			$sum += $tmp;
		}
		return ($sum % 10 === 0);
	}

	/**
	 * Validate APE Code
	 * @static
	 * @param $ape APE Code
	 * @return boolean Return true if is valid
	 */
	public static function isApe($ape)
	{
		return (bool)preg_match('/^[0-9]{3,4}[a-zA-Z]{1}$/s', $ape);
	}

Outra coisa, além de não passar na validação ele dá mais esses erros que não sei o que significa:

 
document É necessário
doc_type É necessário
 
 
 
Obrigado desde já.

Share this post


Link to post
Share on other sites

Veja também o outro tópico. O SIRET é o mesmo númere de identificacao de taxa só que traduzido para o Francês (outros nomes sao VAT-ID, UID, etc.) Cada país Europeo que faz parte da uniao monetária tem um número de taxa para o transporte intercomunitário. Isto significa, que com este número vc. paga as taxas no seu país e nao no país aonde compra a mercadoria dentro da comunidade européia. Vc. pode comparar com o merco-sur, só que muito mais elaborado, pois pelo que tenho lido a Argentina está querendo implementar uma coisa parecida.

 

SIRET: http://www.lost-in-france.com/french-property/renovating/123-french-siret-numbers

Share this post


Link to post
Share on other sites

A validade deste número é feita automáticamente no Prestashop, sendo que vc. digitando um número nao existente, ele nao vai liberar o formulário de autentificacao.

Share this post


Link to post
Share on other sites

Se eu não conseguir mudar essa validação para uma validação de cnpj e a validação do codigo ape para uma validação de inscrição estadual eu gostaria pelo menos de desabilitar a validação ,teria como ?

Share this post


Link to post
Share on other sites

As traducoes sao feitas por pessoas como eu e vc. que ás vezes nem tem profundos conhecimentos e simplesmente procuram no Google Translator. SIRET é um número de registro de empresa, que abrange um monte de coisas. O UID/VAT, etc nos oustros estados da comunidade monetária européia somente abrange as taxas fiscais que vc. acaba pagando em seu país em vez do país aonde compra. As regras, ou seja a lógica para estes campos foi desenhada para a Europa. Nao sei se vai servir para o Brasil, por ter outras leis fiscais.

Share this post


Link to post
Share on other sites

Vc. desativa da mesma forma que ativou. Ou foi pelo módulo VAT ou entao pelos campos em clientes - enderecos

Share this post


Link to post
Share on other sites

Vc. desativa da mesma forma que ativou. Ou foi pelo módulo VAT ou entao pelos campos em clientes - enderecos

 

Hmmm, entendi, mas eu gostaria apenas de desabilitar a validação não o campo...

Share this post


Link to post
Share on other sites

Recomendo copiar as funções de validação do módulo de CPF e incluí-las como um override da classe Validate.

 

class validate extends validateCore
{
   /**
     * Valida SIRET Como CNPJ
     * @return boolean Return true if is valid
     */
    public static function isSiret($cnpj)
    {
        função de cnpj módulo($cnpj);
    }
}

Boa sorte.

Share this post


Link to post
Share on other sites

 

Recomendo copiar as funções de validação do módulo de CPF e incluí-las como um override da classe Validate.

 

class validate extends validateCore
{
   /**
     * Valida SIRET Como CNPJ
     * @return boolean Return true if is valid
     */
    public static function isSiret($cnpj)
    {
        função de cnpj módulo($cnpj);
    }
}

Boa sorte.

 

 

 

Não tem como eu desabilitar essas validações ? pois meu cliente mesmo irá fazer a consulta do cnpj

Share this post


Link to post
Share on other sites

Como escrevi em outro tópico. me parece que o módulo b2b já está super elaborado. Pelo que leio lá na documentacao deve já existir um check automático. Vc. já tentou preencher o campo com um CNPJ válido ? O que acontece ?

Share this post


Link to post
Share on other sites

Eu consegui desabilitar as validações comentando o que estava dentro da função e colocando o seguinte codigo:

if (Tools::strlen($siret) != 100) return true;
if (Tools::strlen($ape) != 100) return true;

Mas continua dando os erros abaixo,  oque significa isso ?

 

Existem 2 erros
document É necessário
doc_type É necessário
« Voltar

Share this post


Link to post
Share on other sites

Como escrevi em outro tópico. me parece que o módulo b2b já está super elaborado. Pelo que leio lá na documentacao deve já existir um check automático. Vc. já tentou preencher o campo com um CNPJ válido ? O que acontece ?

 

Então, essa foi a primeira coisa que fiz, peguei um cnpj em um gerador de cnpj, mas não deu certo, dai verifiquei na classe de validacao e lá ele valida o campo pra ter 14 digitos, e o cnpj tem mais, segue um modelo: 44.288.268/0001-46

 

Dai eu desabilitei a validação conforme post acima, mas conforme o mesmo, está dando 2 erros que já estavam dando e ainda continua e não sei o que significam, sei que estou abusando de sua bondade, mas por favor poderia me ajudar ? =)

Edited by fagnerfxa (see edit history)

Share this post


Link to post
Share on other sites

Nao, nao está abusando. Estou aqui para ajudar. É está validando o SIRET (ist que já tinha suspeitado). Tenho que ver no banco de dados aonde está escrevendo o valor. Lá poderemos alterar a quantidade de dígitos. Pode ser amanha ? Aqui já sao 22:00 passado. Estou exausta, pelo dia ter sido muito estressado. Nao mai tenho cabeca para este tipo de servico "delicado". Com código nao posso lhe ajudar. aí o Daniel é craque. Eu sou mais na parte de admin sys e banco de dados.

 

Volto amanha após ter dado uma olhada no banco de dados. Tá ? Desejo-lhe um resto do dia sem stress.

 

Abcs.

 

Conny

Share this post


Link to post
Share on other sites

Hm. Tenho más notícias... Fui fucar no Back-office após ativer o modo b2b. O número siret somente está disponível para ser preenchido no banco de dados quando o cliente está na Franca. Verifique vc. mesmo em "clientes -> Enderecos. Edite lá um cliente teste e mude o país aonde ele vive. Para o Brasil se ativa o camp I.E. que também está ativado quando se usa Franca. O SIRET somente está disponível na franca - Número VAT/IV. Foi sito que tentei lhe explicar ontem com a localizacao. Cada país possue uma localizacao própria, codada para o país (taxas, imposto, moeada, idioma, etc...) Se vc. for mudar o país é capaz que a lógica nao mais funciona. O único campo que ambos possuem é o I.E. - que na verdade nem sei o que é. Mas vou fucar para vc. em uma versao original, pois versoes já traduzidas eu nao confio na traducao se está correta ou nao. Já tivemos um monte de problemas com isto no passado.

 

Volto a escrever na parte da tarde, pois tenho uma hora marcada agor às 10:00 e volto ao meio-dia (horário local). ;)

Edited by selectshop.at (see edit history)

Share this post


Link to post
Share on other sites

Pronto: na versao original I.E. significa "Identification number". Seja lá o que for. Pode ser um número de cliente que vc. mesmo adiciona em vez do mail, ou um número qualquer. Poderíamos usar este campo, pois tenho certeza que nao valida nada. E aqui temos um problema, o número nao é escrito no banco de dados. Vc. vai usar este número para algum fim ?

O campo other se escreve no banco de dados na tabela ps_address. Se tiver que ser adicionado ao banco de dados, entao é melhor manipular este campo para os seus fins e renomear a traducao para CNPJ.

 

Ativar o campo vc. ativa em clientes -> enderecos -> definier os campos obrigatórios para esta secao.

 

O campo depois de ser preenchido pelo cliente vai ficar em clientes -> enderecos -> edite um cliente -> bem em baixo e é escrito no banco de dados como já mencionei na tabela "ps_address", coluna "other".

 

Espero que vc. possa usar este campo para os seus fins. Se tiver alguma dúvida escreva por aqui. Eu responderei mais tarde.

 

Bom proveito por em quanto.

 

Abcs.

 

Conny

Share this post


Link to post
Share on other sites

Então eu devo comentar o campo siret para não ser preenchido e o I.E eu traduzo para cnpj ?

 

Bom, não há uma necessidade de ter o valor no banco de dados, mas o meu cliente precisa ter acesso a essa informação no backoffice, mas pelo que vi aqui em class/validation.php ambos siret e ie tem validação.

 

E quanto a esses erros de document  e doc_type ?  oque posso fazer pra resolver ?

 

Obrigado.

Share this post


Link to post
Share on other sites

I.E eu nao iria usar. Este campo deve ser um campo interno sem qualquer funcao. Vc. colocando lá dados nao vai servir para nada, pois nao escreve no banco de dados. E tenho a leve desconfianca que este campo também nao tem visibilidade no formulário de autenticacao. 

 

Se vc. um dia vai querer exportar os seus clientes também com o CNPJ nao vai dar. O único campo que nao tem validacao e escreve no banco de dados é o "others". Eu ativei, e ele está mostrando, pelo menos na conta do cliente o que é mais importante. No template deve ser questao de alteracao de código. Talvez o Daniel pode nos ajudar ?

 

Tanto que no template deveria ser retirado o CNPJ, IE e também o erro APE que nao sei da onde vem. Este cadastro extra deve ter um script próprio, pois no processo de autenticacao para lojas b2c nao existem mesmo.

 

Deixe a gente primeiramente definir um campo que sirva, para depois adaptar o template.

post-741527-0-30414000-1414156639_thumb.jpg

post-741527-0-51552900-1414156759_thumb.jpg

Share this post


Link to post
Share on other sites

Foi mais simples do que eu esperava. Veja se é assim que quer ? E o campo CNPJ além de nao ser validado ainda é escrito no banco de dados (segundo screen),

 

Eu alterei o authentication tpl e também a traducao do "additional informations (others)" para CNPJ.

 

É assim que te serve ?

 

Ele vem agora tanto quando se abre uma conta sem carrinho como também no processo check-out (1passo) quando se abre uma conta juntamente com um carrinho. O campo no carrinho teria que se tirar o tamanho de cols e rows, ou seja mudar para 1 ou retirar completamente.

 

SÓ QUE. Um problema existe: Vc. colocando o CNPJ na primeira página da abertura de contas, ele nao vai ser escrito em lugar nenhum. Somente após o cliente adicionar o endereco de sua empresa e enderecos de entrega é que o CNPJ vai ser escrito. Neste caso entao é que (e é outro template) o campo deverá ser obrigatório e vc. pode até retirar do primeiro formulário, pois inútil !!

 

Infelizmente nao tenho outra solucao, pois o b2b é uma loja dentro de outra loja e os únicos campos que realmente sao escritos já na abertura da conta sao o SIRET e o VAT, mas que para vc. nao servem.

 

O I.E. fui fucar é o DNI, só que este somente aparece quando o país selecionado é a ESPANHA. Muito perigoso usar estes campos que foram pré-definidos para país X, pois pode ter impacto com taxas/impostos.

 

Vc. quer que eu lhe adapte o CNPJ para o formulário de endereco exclusivamente ? pois na autenticacao nao tem nocao mesmo se nao escreve no banco de dados.

post-741527-0-05754900-1414158886_thumb.jpg

post-741527-0-89971700-1414159171_thumb.jpg

post-741527-0-71025800-1414160834_thumb.jpg

Share this post


Link to post
Share on other sites

Então, eu não preciso necessariamente ter a loja no formato b2b, eu tinha ativado como  intuito de ter o campo cnpj, posso numa boa ter o b2b desativado desde que tenha o campo com nome cnpj no cadastro inicial com preenchimento obrigatorio, apenas isso, no cadastro de endereço não há necessidade, apenas no cadastro inicial mesmo, será que consigo fazer isso ? desabilitar o b2b e usar o campo other traduzido para cnpj no form do cadastro inicial e tendo como validação apenas a obrigatoriedade de preenchimento ?

Share this post


Link to post
Share on other sites

Acredito ser uma possibilidade. Tenho que dar uma olhada. pois a authenticacao pode ser feita de duas maneiras e é composta por alguns ficheiros. Amanha ou no domingo. lhe dou uma solucao.

Share this post


Link to post
Share on other sites

Acredito ser uma possibilidade. Tenho que dar uma olhada. pois a authenticacao pode ser feita de duas maneiras e é composta por alguns ficheiros. Amanha ou no domingo. lhe dou uma solucao.

 

Bom dia, vc conseguiu verificar essa possibilidade ?

 

Obrigado.

Share this post


Link to post
Share on other sites

Nao, infelizmente tenho uma loja com mais de 10.000 artigos em manutencao no momento. Através de importe csv a maior parte nao é possível de manusear, porque muitos módulos extras foram implementados.

 

Eu iria desabilitar o módulo b2b que na verdade nao serve para a maioria dos países deste mundo e ainda está em desenvolvimento e iria experimentar comentar/adicionar as linhas nos ficheiros do seu tema:

 

autentication.tpl - para o processo de criacao de conta durante o processo check-out

address.tpl - para a criacao de conta sem compra ou processo 5 passos no processo check-out.

 

Tente nestes dois ficheiros as adaptacoes. Se nao conseguir, volta para ajuda neste tópico.

Share this post


Link to post
Share on other sites

Nao, infelizmente tenho uma loja com mais de 10.000 artigos em manutencao no momento. Através de importe csv a maior parte nao é possível de manusear, porque muitos módulos extras foram implementados.

 

Eu iria desabilitar o módulo b2b que na verdade nao serve para a maioria dos países deste mundo e ainda está em desenvolvimento e iria experimentar comentar/adicionar as linhas nos ficheiros do seu tema:

 

autentication.tpl - para o processo de criacao de conta durante o processo check-out

address.tpl - para a criacao de conta sem compra ou processo 5 passos no processo check-out.

 

Tente nestes dois ficheiros as adaptacoes. Se nao conseguir, volta para ajuda neste tópico.

 

 

Desculpa não entendi, o que exatamente preciso fazer nesses 2 ficheiros ?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More