terça-feira, 29 de dezembro de 2009

VFP2PG v2.00
























Olá pessoal. Resolvi dar uma melhorada neste conversor. Agora com uma interface e com várias opções.
Para usar este conversor, é necessário ter um banco criado no PG. Geralmente quando instala o PG ele instala um banco padrão chamado postgres.

Exemplos:

Gerar script e executá-lo

1-Selecione o banco (DBC)
2-Informe o ip da máquina onde o PG está instalado, a porta e a codificação do banco. Geralmente trabalho om UTF8, por conselho da lista
3-Informe o nome do banco instalado no PG com usuário e senha. Clique em conectar ao banco.
4-Nas opções, deixe marcado somente Database. Isto porque o PG não deixa executar um script com várias linhas, quando se cria o banco. É necessário criar o banco primeiro, para depois executar o restante (schemas, tabelas e FK's)
5-Deixe o resto com está e clique em Gerar.
6-Desconecte do banco padrão.
7-Conecte no banco que o PG criou pra vc, no nosso caso DER.
8-Volte nas opções e marque Schemas, Tables, FK's.
9-Clica em gerar.

Gerar script e executá-lo e Exportar dados

1-Selecione o banco (DBC)
2-Informe o ip da máquina onde o PG está instalado, a porta e a codificação do banco. Geralmente trabalho om UTF8, por conselho da lista
3-Informe o nome do banco instalado no PG com usuário e senha. Clique em conectar ao banco.
4-Nas opções, deixe marcado somente Database. Isto porque o PG não deixa executar um script com várias linhas, quando se cria o banco. É necessário criar o banco primeiro, para depois executar o restante (schemas, tabelas e FK's)
5-Deixe o resto com está e clique em Gerar.
6-Desconecte do banco padrão.
7-Conecte no banco que o PG criou pra vc, no nosso caso DER.
8-Volte nas opções e marque Schemas, Tables. (não marque FK, pois senão poderá ter problemas)
9-Marque a opção exportar dados
10-Clica em gerar.
11-Volte nas opções, marque somente Foreign Key
12-Desmarque as opção exportar dados
13-Clica em gerar

Bom pessoal, está faltando muita coisa. Mas ja estou usando ele em produção. Me adiantou muito no serviço.
http://www.abilityonline.com.br/down/vfp2pg.zip

sexta-feira, 11 de dezembro de 2009

VFP2PG

Programa para converter um banco de dados do VFP (DBC) para o POSTGRES.
Basta rodar o arquivo vfp2pg.prg, escolher o banco e pronto. Um arquivo chamado Script.sql será criado. Basta criar um banco no Postgres e rodar o script criado.
Mas algumas regras devem ser seguidas. Vamos tomar como base o banco a abaixo.


Por exemplo, este banco na imagem acima, tem algumas tabelas que iniciam com cad_, isto porque essas tabelas fazem parte do Schema Cad (Cadastro). Mesma coisa para as que iniciam com fin_, elas fazem parte do Schema Fin (Financeiro).
Os relacionamentos também serão criados. (chaves primárias e estrangeiras).
Caso a chave estrangeira, tiver alguma acão (ON UPDATE ou ON DELETE), basta incluir essas regas no comentário do cada campo.
Por exemplo. Temos um relacionamento de (cad_cad => fin_cr). Suponhamos que ao apagar um cliente (tabela cad_cad) todas suas contas (fin_cr) também sejam apagadas. Bast ir no comentário do campo (cr_cadcod) e colocar: ON UPDATE CASCADE, mas se eu não quero nenhuma ação quando exluir o registro, basta deixar em branco.
Bom é isto, qualquer dúvida estou a disposição. Estou aberto a dicas também. Abraços.
Link para baixar o arquivo: http://www.abilityonline.com.br/down/vfp2pg.zip

sexta-feira, 23 de outubro de 2009

XML usando VFP x UniNfe para NFe

Existem diversas maneiras de gerar um xml pelo VFP. A maneira que utilizei foi criando uma variavel e depois dando um strtofile(). Vejam abaixo:






Terminado de gerar o XML, jogue-o na pasta Envio e fique checando a pasta Retorno. Será gerado um arquivo (31091023173776000109550020000000650427471868-num-lote.xml) contendo o número do lote ou um arquivo
(31091023173776000109550020000000650427471868-nfe.err) acusando erro no xml. Se deu tudo certo, vc precisa checar o conteúdo do arquivo 31091023173776000109550020000000650427471868-num-lote.xml, onde conterá o número do lote. Suponhamos que nosso lote foi número 2. A pasta retorno conterá também um arquivo chamado 000000000000002-rec.xml. Verifique o conteúdo deste arquivo. Veja abaixo um exemplo com o conteúdo de um arquivo.










Vejam a tag xMotivo. Lote recebido com sucesso. Nosso lote foi aceito, mas ainda não foi autorizado. Precisamos enviar uma consulta no Sefaz e ver se a NFe foi autorizada. Vamos pegar o número de recibo de entrega do lote. lcNumRecibo = '310000002617641'. Então enviamos um arquivo conforme abaixo para a pasta Envio.






Após enviado o arquivo, fique checando a pasta retorno. Irá receber um outro arquivo chamado
310000002617641-pro-rec.xml. Se tudo der certo o xml com duas tags importantes. cStat e xMotivo. Mas atenção, esse XML terá duas tags cStat e xMotivo, você deve checar o conteúdo da segunda tag, pois as primeiras são referentes o receibo enviado. Se a tag cStat conter o valor 100 e a xMotivo Autorizado o uso da NF-e. Pronto, sua nota foi envada e você pode imprimir o Danfe. A UniMake tem também um programa chamado UniDanfe, versões free e plus para impressão do danfe. No site deles tem tudo explicado.

Então é isto. Grande abraço e até a próxima.

quinta-feira, 9 de abril de 2009

Iniciando Nota Fiscal Eletrônica (NFe)

Quando comecei a desenvolver a NFe estava muito perdido. É por isto que escrevo este pequeno artigo para tentar ajudar quem está perdido. A linguagem que desenvolvi foi em Visual FoxPro. Mas o meu propósito não é ensinar a como fazer e sim os passos que seguir.

Antes de começarem a ler este tópico, entrem no portal da NFe para saber exato o que é a NFe.
http://www.nfe.fazenda.gov.br

Bom, irei descrever os passos que segui para que meu ERP pudesse gerar a NFe.

A primeira coisa a fazer, é adquirir um certificado digital. Ele garantirá a autencidade da nota fiscal enviada por sua empresa. Adquirimos o certificado A3 (Token) da Prodemge.
http://www.prodemge.gov.br/cdigital/
O único problema que tive com ele, foram os programas que vieram no cd. Não instalem os programas do cd, entrem no site da Prodemge e baixem as versões atuais.

A segundo passo é entrar com o pedido para sua empresa iniciar o uso da NFe. Inicialmente ela estará liberada somente para testes (Homologaçã0). Nesta fase pode-se fazer diversos testes para certificar que o sistema está enviando e recebendo a NFe normalmente, cancelamento de nota e inutilização dos números. Quando todos os testes forem feitos, entra com o pedido de "Produção". Neste modo já é pra valer. Mas se quiserem fazer testes mesmo estando em ambiente de produção, não tem problema. No XML da nota gerada existe uma opção que vai falando que a empresa está em modo de Homologação ou Produção. Quando lerem o modelo do xml, vão ver a tag que informa.

Bom feito o pedido, agora é hora de gerar o xml. Consegui seguir um caminho muito mais curto devido um software chamado UniNfe. Este software é simplesmente fantástico e é Open Source.
http://www.unimake.com.br/uninfe/. Ele é responsável por assinar a nota e enviar ao Sefaz. Ele contém manual de funcionamento. Tudo muito bem explicado. Em resumo, ele funciona da seguinte maneira: ele fica rodando em segundo plano esperando que alguma nota seja gerada e enviada para ele. Quando copia o XML da nota gerada para a pasta dele, ele automaticamente ja pega esta nota, assina e transmite e retorna se tudo deu certo.

Então para que o UniNfe comece suas tarefas, precisamos gerar os dados nota em formato XML.
O Sefaz tem o manual de quais campos gerar e o que deve conter cada campo. O manual pode ser baixado em http://www.nfe.fazenda.gov.br/PORTAL/docs/Manual_de_Integracao_Contribuinte_v3.00-2009-03-16.pdf
Leiam ele todo, para entender como funciona a transação dos XML. Mas a parte que nos interessa (devido ao UniNfe fazer muita coisa) é a partir da página 91. É a partir desta página que está explicado quais os dados precisa gerar. Para se ter uma ideia de como o xml deve ficar, acesse este link, http://www.unimake.com.br/uninfe/download.php?id=45c48cce2e2d7fbdea1afc51c7c6ad26, va em modelos de envio, e procure o arquivo. 51080612345678901234550010000001041671821888-nfe.xml. Este número grande que tem no arquivo é chamado de ID da NFe. Para saber como gerar este ID veja no manual de integração na página 71, ítem 5.4. Para saber como gerar e onde colocar o arquivo gerado, leiam o manual do UniNfe. Depois de enviar o arquivo deve ainda esperar o retorno para saber a nota foi efetivada com sucesso. Este processo é descrito muito bem explicado no manual do UniNfe.

Pessoal, é isto. Espero ter clareado algumas coisas e agradecer claro ao pessoal UniMake, por este software (UniNfe) ter ajudado eu e muita gente.
Grande abraço.