brazanation / php-documents Goto Github PK
View Code? Open in Web Editor NEWLibrary to provide Brazilian Documents as Value Objects in PHP
Library to provide Brazilian Documents as Value Objects in PHP
Ao implementar Cnpj::createFromString() como exemplificado em
use Brazanation\Documents\Cnpj;
$document = Cnpj::createFromString('99999090910270');
if (false === $document) {
echo "Not Valid";
}
echo $document; // prints 99999090910270
echo $document->format(); // prints 99.999.090/9102-70
$document
sempre retorna NULL
Cartão Nacional de Saúde (CNS) / National Health Card
Vou fazer um pull request para isso, por favor verifique se não usei algo errado.
Estou testando as chaves porém existe um BUG na geração das chaves do SPED.
A chave de 44 dígitos é formada com os seguintes campos:
cUF OK (2 dígitos) total = 2
AAMM OK (4 dígitos) total = 6
CNPJ OK (14 dígitos) total = 20
modelo OK (2 dígitos) total = 22
serie OK (3 dígitos) total = 25
numero da documento fiscal OK (9 dígitos) total = 34
tipo de Emissão NOK (1 dígito) total = 34 ???? DEVERIA SER 35
numero de controle ---- OK (8 dígitos) total = 42 ???? DEVERIA SER 43
ERRO, o campo "tpEmis" não está presente, ele é um inteiro de 1 a 9 indicando emissão normal ou uma das contingências e deve ser passado como parâmetro na função. Com isso o numero formado fica com apenas 42 dígitos e deveria ser de 43 dígitos complementado para 44 pelo digito verificador "cDV".
Tem um outro detalhe que também está errado o numero de controle "cNF" tem apenas 8 dígitos e não 9 como indicado nas classes. A versão que tinha com 9 dígitos é bemmmmm antiga, já faz anos que isso mudou !!
Encontrei outro erro na geração do digito verificador Modulo 11 quando calculo do resto resulta em 0 esta retornando dois dígitos (11) e não deveria !!
RENAVAM has 11 digits with follow format NNNN.NNNNNN-N, first 10 digits are base numbers and the last is checker digit calculated with Module 11.
The checker digit is calculated multiplying each digit by the sequence of multipliers 2, 3, 4, 5, 6, 7, 8, 9, 2 and 3, allocated from right to left side.
The sum of mulpltications will be multiplied by 10 and after divided by 11, the remainder of division is the digit checker. Except when 10 is the remainder of division, it must be changed to 0.
As chaves de acesso tanto para NFe como para CTe e MDFe possuem a mesma estrutura e os mesmos dados são usados para cria-las.
Portanto, como já conversado podemos deixar essa classe como:
AccessKey ou ainda SpedAccessKey ao invés de NFeAccessKey, isso deixaria menos confuso aos desenvolvedores. Pois ela seria usada em vários locais.
State Registration is so complex, because it has different numbers based on State rules.
So, what are states from Brazil?
@tonicospinelli
Dá uma olhada aqui Contingency
Explica um pouco sobre os atuais modos de emissão, os seus dados estão um pouco desatualizados.
Roberto
What do you think about use the Respect Validation Library as a requirement for this project?
Example:
Maybe use the Respect Validation as a requirement in composer and return a exception when
v::cpf()->validate('02650306461'); return false.
https://github.com/Respect/Validation/blob/master/docs/Cnh.md
https://github.com/Respect/Validation/blob/master/docs/Cpf.md
https://github.com/Respect/Validation/blob/master/docs/Cnpj.md
Segundo o manual:
Motivation
It is hoped that more correct and self-documenting PHP programs can be written.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.