Opa, boa héin?!
Tinha pensado exatamente nisso qdo foi citada a questão do CEP…
Pq os Correios não tem um lance desses héin?
Embora de qualquer forma seria interessante considerar a dica do cv com relação a deixar isso configurável…
Opa, boa héin?!
Tinha pensado exatamente nisso qdo foi citada a questão do CEP…
Pq os Correios não tem um lance desses héin?
Embora de qualquer forma seria interessante considerar a dica do cv com relação a deixar isso configurável…
Mas os correios tem. Ha algum tempo eles já aboliram o cd e agora disponibilizam uma base on-line para empresas que mantem contrato com eles. Para quem tem esse contrato com eles parece que disponibilizam uma base tambem.para uso off line.
]['s
Qual o link do projeto? Ou o nome que ele ficou.
]['s
Mas os correios tem. Ha algum tempo eles já aboliram o cd e agora disponibilizam uma base on-line para empresas que mantem contrato com eles. Para quem tem esse contrato com eles parece que disponibilizam uma base tambem.para uso off line.
]['s[/quote]
Podem até ter abolido, mas ainda se encontra nos Correios a edição 2005 do CD.
BrazilUtils.Esperando a aprovação.
Quem souber uma boa página de REQUISITOS, com as fórmulas para cálculo dessas “sopa de letrinhas” ajudaria…só achei os comuns:cpf,cnpj… preciso dos de inscrições estaduais por exemplo.
Opa!Foi aprovado!Agora é só eu me entender com uns detalhes aqui e libero o código!Ainda estou a procura de requisitos…
Bom, estamos na incubadora…sab tem “brainstorming” de projeto para definir as direções a seguir.Até o momento tem eu e o rafaelgloria do guj no projeto(ambos RJ).O ideal é ter uma galera de outros estados para que o pessoal possa se virar em arranjar os requisitos de “taxas estaduais” por si próprios, pois ficará foda para a gente catar esses requisitos(tah difícil achar os nossos…parece até q escondem!).
Quem se interessar, apresente-se!
PS. Duardor, cadê vc??? :?:
Putz tu é do Rio também? Só falta ser pobre como eu também hehehehehhehh
Bom, se tiver algum serviço de corno, talvez eu possa ajudar. Coisas específicas, técnicas, de nível “operacional e não estratégico”.
Legal essa iniciativa. Uma das coisas que não gostei ao iniciar em java foi ter que prercorrer vários caminhos novamente. Reinventar a roda só que de uma linguagem para outra. Se precisarem de ajuda, estamos aí.
Sobre CNPJ e CPF eu entendi, mas o que será feito sobre CEP? Acho que no máximo pode-se criar uma máscara padrão. Como colocar todos os Ceps e suas respectivas ruas em uma biblioteca?
Alguns itens que podem fazer parte da API:
Eu gostaria de ter uma coisa como GenericNotaFiscal ou uma como AbstractOrdemDeServico com algumas funcionalidades “sacais” já prontas.
Coisas como valor/precentual de retenção de imposto, qual imposto recolher dependendo do valor e outras complicações repetitivas poderiam já estar na API.
Y! pobre.add(“Ironlynx”);
CEP ficará um pouco de lado, descobri q a base é de direitos integrais aos Correios, apesar de existirem N sites com ela disponível para baixar… não quero problemas.Deixa uma mascara padrão e tah ótimo…
Cara, suas idéias são ótimas, entre em contato comigo por private msg com seu email e icq para debatermos sobre o assunto e eu convidá-lo para o projeto!
Eu e o Rafael Gloria jah estamos codando algumas coisas, mas ainda vamos nos reunir para discutir-mos como vamos “padronizar” as classes.Eu tô pensando em chamar algum indivíduo PATTERNalista como o Philip ou o CV para compor nosso quadro, assim ele reclama do código
do projeto ANTES que ele fique com trocentas classes e fique foda refatorá-lo…
Eu tava pensando numa estrutura quase como o Duardor tinha posto:
brazilutils.br.minasgerais.InscricaoEstadual
brazilutils.br.riodejaneiro.InscricaoEstadual
brazilutils.currency //conversões monetárias inclusive por extenso
brazilutils.br.id //CPF,RG… registros nacionais
brasilutils.br.tribute //IR,impostos
Eu quero uma estrutura o mais modular possível para podermos codar com idependência, e o pessoal não se perder na hora de usar!
Acho que deveria ter uma classe principal tipo ToolKit. Ela poderia ser brazilutils.Brazil. Essa classe teria um monte de métodos para acesso simples das demais classes que forem sendo criadas no projeto como CNPJ, CPF etc.
Assim como ToolKit ela seria um Singleton e seria um canivete suíco da API.
Da mesma forma deve haver uma para coisas que variam entre os estados. Assim teríamos uma interface UF (Unidade da Federação) e 26 implementações dela RJ, SP, MG etc… Cada uma sendo um ToolKit específico. A classe Brazil poderia até ter algo getRJ(), getSP() ou getUF(String nomeUf) e/ou getUfByIndex(Integer index).
Douglas, jah te aprovei lá…
[quote]
Ela poderia ser brazilutils.Brazil. Essa classe teria um monte de métodos para acesso simples das demais classes que forem sendo criadas no projeto como CNPJ, CPF etc.
Assim como ToolKit ela seria um Singleton e seria um canivete suíco da API. [/quote]
Essa centralização é boa, mas neeem tudo do projeto será de coisas “Só do Brasil”.O nome é mais como referência.O package …currency terá o nome por extenso de outras moedas tb!E haverá um de pesos e medidas(báaasico né?), então não fará parte desse,por exemplo.Mas gostei da idéia!
[quote]
Assim teríamos uma interface UF (Unidade da Federação) e 26 implementações dela RJ, SP, MG etc… Cada uma sendo um ToolKit específico. A classe Brazil poderia até ter algo getRJ(), getSP() ou getUF(String nomeUf) e/ou getUfByIndex(Integer index). [/quote]
Será q não encheríamos ela d+ de métodos???Que tal uma classe Validation tb para coisas do tipo isNumber(),isLetter()… q todas a extenderiam para ver se são letras,números…para não ficarmos com classes tão inchadas(no final isso acaba sendo inevitável…)?
Outra coisa:
Eu acho que não se deve usar riodejaneiro e sim RJ (rj no caso de pacote), por exemplo. Fica bem menor e padroniza o tamanho das coisas com nomes compostos.
Sugestão para a estrutura de pacotes:
Colocar minasgerais ou mg no pacote não deve ser boa idéia. Portar um sistema do Rio para São Paulo implicará em reescrever código, por exemplo.
Acho que um código tipo brazilutils.RJ.getRJ().getICMS() nunca deve ser escrito. Deve-se usar algo como Brazil.getUF(***).getICMS().
*** O retorno de getUF() pode ser definido no creator de Brazil
Brazil brazil = new Brazil( new RJ() );
...
Brazil brazil = new Brazil( "RJ" );
...
Brazil brazil = new Brazil( 19 ); // 19 = Código para RJ
Dessa forma seria bem mais fácil portar o sistema.
Algumas outras coisas devem ser levadas em consideração:
Num sistema de Faturamento de Notas Fiscais meu cliente vai gerar uma fatura. Ele escolhe o cliente dele entre vários de estados diferentes. O comportamento das classes pode ser diferente para cada UF assim como o formato da NF e o código fiscal que muda de UF para UF. Mas este é um problema mais para frente…
[quote=dsiviotti]Outra coisa:
*** O retorno de getUF() pode ser definido no creator de Brazil
[/quote]
Caso não seja um Singleton claro! Como Singleton pode ser:
Brazil.getBrazil().setUF("RJ")
...
Brazil.getBrazil().setUF( new RJ() )
...
Brazil.getBrazil().setUF(19)
...
Brazil.getBrazil().setUF(properties.get) // sei lá
Nãaaaooo mesmo!!!Vc me entendeu malzz… riodejaneiro é nome da raiz do package, não da classe!Eu pensei em deixar os nomes por itens, ou por tipo de imposto/identificação… cara, não é melhor separar-mos as classes pelo q cada coisa realiza?Vc por exemplo, colocaria rg e cpf na mesma classe?
Eu entendi sua preocupação, mas não podermos encher demais cada classe pq esses códigos são poucos legíveis,temos coisas do tipo(calma, isso é só para testes, não para release!):
public boolean ValidadorInscEst(){
// calculo do dv1
for (int i=2, j=7; i<=7 & j>=0; i++, j--){
dv1 = dv1+(cadVetInt[j]*i);
if (i==7)i=1; // se chegar a 7 volta para o 1 (para ser adicionado e virar 2)
}
dv1 = (dv1%11); // o resto da divisão por 11
dv1 = 11-dv1; // 11 menos o valor atual (ambos fazem parte da fórmula)
System.out.println("dv1 = "+dv1);
// fim dv1
// calculo dv2
for (int i=2, j=8; i<=7 & j>=0; i++, j--){
dv2 = dv2+(cadVetInt[j]*i);
if (i==7)i=1; // se chegar a 7 volta para o 1 (para ser adicionado e virar 2)
}
dv2 = (dv2%11);
dv2 = 11-dv2;
if (dv2==10||dv2==11)dv2=0; // se for 10 ou 11 vira 0 o dv pois eh um alg soh
System.out.println("dv2 = "+dv2);
// fim dv2
return false; // provisorio
// retornara true se estiver ok e false se nao
}
Uma classe com zilhões desses o cara fica louco…
Outro detalhe:temos que documentar BEM.
E por aí vai…
Eu entendi. Quanto ao alcance do projeto, acho que ele deve contemplar justamente o que é específico de problemas de sistemas brasileiros para começar. Acho que esse é justamente o atrativo e a novidade.
Quanto a centralização, entendi sua preocupação, mas a criação das classes tipo Toolkit não interfere no que já está sendo feito. Quando alguém for utilizar a API será por classes desse tipo. Fica mais fácil “pedir” uma validação para um objeto ou classe do que criar várias para o mesmo trabalho. Veja que isso não impede, por exemplo, que eu crie um atributo tipo
CNPJ cnpj = new CNPJ("123456789");
isso permite que o meu atributo faça uma validação ao ser criado. A classe Kit permite que a mesma validação seja feita para uma classe onde o atributo CNPJ não definido como classe, mas como int por exemplo.
As duas implementações são possíveis (sem julgamentos prévios).
[quote]Quanto ao alcance do projeto, acho que ele deve contemplar justamente o que é específico de problemas de sistemas brasileiros para começar. Acho que esse é justamente o atrativo e a novidade.
[/quote]
Compreendo, mas não devemos fechá-lo demais, programadores estrangeiros tb necessitam de requisitos nossos(e vice-versa)!
[quote]
Quando alguém for utilizar a API será por classes desse tipo. Fica mais fácil “pedir” uma validação para um objeto ou classe do que criar várias para o mesmo trabalho. [/quote]
Eu sei q não impede, só estava sugerindo q seguíssemos esse mesmo caminho!(Classes para as funcionalidades!)
[quote=Ironlynx]Y! pobre.add(“Ironlynx”);
Sempre há um serviço de corno… é só chegar![/quote]
De que parte do Rio tu és?
Bom, qualquer coisa fale comigo, talvez esteja disponível para alguma coisa, ou então publique uma lista de corno-todos que eu posso catar um Até.
Alguém por favor explique o termo “corno”?
Eu só conheço ele em um sentido, e não acho que seja deste que vocês estão falando.
[]'s
Outro dia eu ouvi falar que essa palavra tem tem vários sentidos. Não acreditei, mas agora está confirmado então!
O sentido que eles usaram é o de “chifrudo”, o cara que se ferra sempre, etc…