terça-feira, 21 de setembro de 2010

Livro Manual de Implantação da Nota Fiscal Eletrônica - Delphi e Java

A Nota Fiscal Eletrônica já é uma realidade. As empresas precisam adequar os seus sistemas para cumprir essa exigência legal. Para isso é necessário a compreensão dos conceitos do projeto e das tecnologias envolvidas.

Neste livro você vai aprender como funciona o Projeto NF-e. Todo o referencial teórico é passado de forma simples e direta para uma boa compreensão. Além disso, o livro aborda, em detalhes, as tecnologias envolvidas no projeto NF-e:
• XML - eXtensible Markup Language: são explicados conceitos importantes de arquivos XML e como eles são utilizados no Projeto NF-e;
• Certificação Digital: criptografia, documento eletrônico, certificado digital, assinatura digital e o funcionamento de tudo isso no Projeto NF-e;
• Web Services: SOAP, WSDL, UDDI, Segurança e tudo mais que envolve Web Services para implementação do Projeto NF-e.

Por fim, o livro mostra como implementar a solução da NF-e em duas linguagens: Delphi e Java. Nessa última seção do livro, são mostradas soluções prontas que estão disponíveis para as duas linguagens e também como desenvolver uma solução própria, utilizando as tecnologias que cada linguagem oferece.

Se a sua necessidade é implementar a Nota Fiscal Eletrônica, esse livro é para você.

Compre Aqui

Sumário

Apresentação - XIII
Parte I – Conceitos
Retrospectiva e Histórico do Projeto - 3
SPED – Sistema Público de Escrituração Digital - 7
Apresentação - 7
Objetivos - 8
Premissas - 9
Benefícios - 9
Universo de atuação - 10
Projeto Nota Fiscal Eletrônica – NF-e - 15
Justificativas para o projeto - 15
Objetivos do projeto - 17
Benefícios esperados - 18
Benefícios para o contribuinte vendedor (emissor da NF-e) - 18
Benefícios para o contribuinte comprador (Receptor da NF-e) - 19
Benefícios para a sociedade - 19
Benefícios para as Administrações Tributárias - 19
Descrição do projeto - 20
Conceito de NF-e - 21
Características da NF-e - 21
Descrição simplificada do modelo operacional - 22
Detalhamento das etapas do modelo operacional - 23
Cancelamento da NF-e - 31
Consulta do status da NF-e - 32
Obrigatoriedade - 32
DANFE – Documento Auxiliar da NF-e - 39
Conceitos - 39
Modelos - 40
Campos do DANFE - 42
Chave de acesso - 42
Dados da NF-e - 43
Dados do emitente - 43
Quadro “Fatura/Duplicatas” - 43
Quadro “Dados dos Produtos/Serviços” - 43
Informações complementares - 45
Reservado ao Fisco - 45
Modificações permitidas - 45
Bloco de Canhoto - 45
Quadro “Fatura/Duplicatas” - 46
Quadro “Cálculo do ISSQN” - 46
Verso do DANFE - 46
Folhas adicionais - 46
Código de barras CODE-128C - 47
Cálculo do dígito verificador do código de barras 128 - 51
Impressão - 52
Chave de acesso - 53
Cálculo do dígito verificador da chave de acesso - 54
DANFE em contingência - 55
Contingência - 57
Modalidades de emissão da NF-e - 58
Quadro de resumo das modalidades de emissão da NF-e - 70
Contingências do tipo “b” e “c” – Formulários de Segurança - 71
Formulários de Segurança para impressão do DANFE - 71
Localização da estampa fiscal no FS-DA - 75
Impressão do DANFE em contingência com Formulário de Segurança - 77
Ações que devem ser tomadas após a recuperação da falha - 78
NF-e pendentes de retorno - 79
Parte II – Tecnologias Adotadas
XML – eXtensible Markup Language - 83
Introdução - 83
O que é mesmo o XML? - 84
A linguagem HTML - 86
Comparações entre HTML e XML - 86
Características da linguagem XML - 88
Representação dos dados de forma estruturada - 88
Separação entre apresentação e dados - 89
Definição conceitual do XML - 90
Estrutura do documento - 90
Explicação das TAGs - 91
Documentos com DTDs - 92
Padrões da estrutura do XML - 94
Uma noção sobre DOM - 95
Principais benefícios da linguagem XML - 95
Buscas mais eficientes - 96
Desenvolvimento de aplicações flexíveis para a Web - 96
Integração de dados de fontes diferentes - 96
Computação e manipulação locais - 96
Múltiplas formas de visualizar os dados - 97
Atualizações granulares dos documentos - 97
Fácil distribuição na Web - 97
Compressão - 98
XML no Projeto NF-e - 98
Padrão de Codificação - 98
Declaração namespace - 98
Otimização na montagem do arquivo - 100
Validação de Schema - 100
Tratamento de caracteres especiais no texto de XML - 101
Compreendendo o layout do padrão XML da NF-e - 101
Exemplo de uma NF-e – Arquivo XML - 105
Elemento Produto – Campos uTrib e qTrib - 111
Preenchimento das informações do ICMS - 113
Certificação Digital - 123
Introdução - 123
Criptografia - 124
Definição - 124
Histórico - 124
Criptografia hoje - 131
Tipos de criptografia - 133
Assinatura digital - 138
Documento eletrônico - 141
Assinatura manual - 141
Assinatura digital - 141
Certificado digital - 142
Tipos de certificado - 153
Formatos de certificados - 155
Como obter um certificado digital - 158
Cuidados - 159
Certificação digital no projeto NF-e - 160
Padrão de certificado digital - 160
Padrão de assinatura digital - 161
Validação de assinatura digital pela SEFAZ - 164
O melhor certificado para uso com NF-e - 165
Web Services - 171
Introdução - 171
Definição - 171
Tecnologias envolvidas - 172
XML - 172
SOAP - 173
WSDL - 175
UDDI - 176
Segurança - 176
Mecanismos de segurança - 177
Web Services no projeto NF-e - 178
Serviços disponíveis - 179
Modelo operacional - 181
Padrão de mensagens dos Web Services - 186
Validação do XML enviado aos Web Services - 187
Schemas XML - 188
Disponibilização dos Web Services - 190
Regras de validação - 201
Tabela de erros - 211
Padrões de nomes para os arquivos - 214
Resumo dos padrões técnicos - 216
Processo de autorização - 217
Cadeia de certificados - 217
Ambiente de Homologação e Ambiente de Produção - 222
Credenciamento - 222
Endereços dos Web Services - 223
SEFAZ Virtual - 224
Parte III – Implementação
Emissor Gratuito de NF-e - 227
Introdução - 227
Janela principal - 228
Cadastro de emitentes - 228
Cadastro de produtos - 231
Cadastro de clientes - 236
Cadastro de transportadoras - 237
Digitação da nota fiscal - 239
Validação da nota fiscal - 246
Assinatura da nota fiscal - 251
Transmissão da nota fiscal - 258
Impressão da nota fiscal - 259
Estratégia de Implantação da NF-e - 261
Emissor Gratuito de NF-e - 261
1 – A empresa já possui um sistema de faturamento - 261
2 – A empresa não possui um sistema de faturamento - 262
Comprar uma solução pronta - 262
Desenvolver a própria solução - 265
Sequência lógica da implantação - 265
Implementando NF-e em Delphi - 269
Soluções prontas - 269
NFe_Util.dll - 269
ACBrNFe – Componente Delphi para Nota Fiscal Eletrônica - 280
Construindo a solução - 299
Delphi e XML - 299
Delphi e certificação digital - 311
Delphi e Web Services - 328
Conclusões - 333
Implementando NF-e em Java - 335
Soluções prontas - 335
Projeto Stella NFe - 335
Projeto Java NFe – jNFe - 338
Conclusões - 340
Construindo a solução - 340
Java e XML - 340
JAXB – Java Architecture for XML Binding - 346
Java e certificação digital - 353
Assinando e validando arquivos XML - 353
Java e Web Services - 366
Arquivos WSDL - 366
Consumindo o Web Service - 372
Conclusões - 380
Anexo A – Contatos com as Secretarias de Fazenda - 381
Anexo B – Protocolo de Cooperação nº 03 / 2005 – II ENAT - 385
Anexo C – Ato Cotepe nº 72, de 20 de dezembro de 2005 - 389
Anexo I – 390
Anexo II – 408
Anexo III – 1. Transmissão de NF-e - 411
Anexo D – Ajuste SINIEF 07/05 - 419
Referências - 459

Livro Dominando o OpenSwing


Está disponível para compra pela Editora Ciência Moderna o livro Dominando o OpenSwing.

Muitos desenvolvedores que estão acostumados com o Delphi ou o Visual Basic, sentem uma tremenda dificuldade quando começam a programar em Java, especificamente aplicações Desktop. Os componentes do Swing disponibilizados pelo Java são muito pobres em recursos.

Pensando nisso, um italiano chamado Mauro Carniel criou um framework baseado no Swing que disponibilizasse componenes mais ricos: o OpenSwing.

Acesse a página oficial do OpenSwing: Página Oficial do OpenSwing

Com o OpenSwing é possível desenvolver aplicações em java para desktop rapidamente. É possível ainda o desenvolvimento de aplicações RIA em três camadas. A produtividade é alta!

O livro Dominando o OpenSwing mostra como funciona esse framework. Além de mostrar o funcionamento do framework em si, o livro traz um estudo de caso, onde é construída uma aplicação para administração de condomínios: o Syndic.

Você pode comprar o livro diretamente no site da Editora:




Sumário


Capítulo 1
Breve Introdução - 1

Capítulo 2
O que são as Camadas? - 5

Capítulo 3
OpenSwing - Introdução - 7

Capítulo 4
Características do Framework - 11

Capítulo 5
Arquitetura do Framework - 15

Camada de Apresentação - 15
Camada do Lado Servidor (Server-side layer) - 21
Camada de Acesso aos Dados - 21

Capítulo 6
Arquitetura de Aplicações Baseadas no OpenSwing - 23

Capítulo 7
Layout das Classes do Framework - 29

Capítulo 8
Desenvolvimento na Camada de Apresentação - 33

Desenvolvimento de janelas e janelas internas (frame/internal frame) - 33
Ambiente MDI - 33
Exemplo de uso do ambiente MDI - 42
Outros Tipos de Janelas (não MDI) - 54
Controles Gráficos Base - 54
Container de Controles Gráficos (Form) - 72
Modos de operação suportados pelo Form - 72
Botões conectados ao Form - 73
Modelo de dados do Form - 75
Form Controller - 76
Exemplos de utilização do Form - 81
Tópicos Avançados - 116
Exemplo de vinculação entre uma Grid e um Form de detalhe - 119
Botões - 121
Barra de Tarefas Única (Unique toolbar) - 127
Lookup - 131
Controle Gráfico Lookup - 133
Coluna de Lookup - 134
Lookup Controller - 134
Política de recuperação de código inválido - 138
Recuperação de Dados para um Lookup - 139
Exemplo de utilização de lookup, incluindo um listener lookup - 140
Como aplicar as condições de filtro a outros controles de entrada, ao setar o código em um lookup - 143
Grid - 146
Colunas da Grid - 148
Menu Popup - 169
Nível de permissão das colunas - 172
Modos de operação suportados pela Grid - 174
Carga de dados na Grid - 176
Botões conectados à Grid - 178
Grid Controller - 181
Exemplo de Grids editáveis num gerenciamento mestre-detalhe: - 188
Exemplo de gerenciamento de uma Grid editável - 195
Exportando dados a partir da Grid - 197
Drag ‘n drop entre Grids - 201
Métodos utilitários da Grid - 202
Bloqueando Registros (travando linhas na Grid) - 206
Grid com componentes aninhados - 208
Exemplo de uma Grid principal, com Grids aninhadas: - 211
Componente PivotTable (tabela dinâmica) - 214
Componente Tree (árvore) - 220
Painel Tree com Check-Box - 224
Componente Tree+Grid - 225
Grid de Propriedades - 227
Domínios (domains) e Combo-box - 230
Definições Gráficas da Aplicação - 231
Definições de Internacionalização - 232
Autorização para os Botões (Buttons Authorizations) - 236

Capítulo 9
Classes Utilitárias - 239

org.openswing.swing.util.client.ClientUtils - 239
org.openswing.swing.util.client.Application EventQueue - 241
org.openswing.swing.util.java.Consts - 241
org.openswing.swing.client.AutoCompletition Listener - 241

Capítulo 10
Mensagens (Messages) - 243

Mensagens de Envio (Send Messages) - 243
Serialização de Objetos - 244
Mensagens de Resposta (Response Messages) - 245

Capítulo 11
Value Object – VO - 247

Capítulo 12
Diagrama de Gantt - 249

Classes Utilitárias Relacionadas com o Controle do Gantt - 250
Propriedades do GanttControl - 252
Métodos Utilitários do GanttControl - 253
Classe de Recuperação de Dados do GanttControl - 254

Capítulo 13
Assistente (Wizard) - 257

Capítulo 14
Diálogos - 261

Capítulo 15
Splash Screen - 263

Capítulo 16
Dica do Dia (Tip of the day) - 265
Capítulo 17
Barra de Progresso (Progress bar) - 267

Componente Progress-bar - 268
Painel que contém um progress-bar - 269
Diálogo que contém um progress-bar - 270

Capítulo 18
Painel de Acordo de Licença (Licence Agreement panel) - 271

Capítulo 19
Janela de Alerta (Alert window) - 273

Capítulo 20
Janelas Iconifáveis Agrupadas - 277

Capítulo 21
Desenvolvimento na Camada de Lógica de Negócios e Acesso aos Dados - 279

Classes Utilitárias Usadas no Lado Servidor - 279
Controller do Lado Servidor (Server-side controller) - 280
Serialização de Objetos - 282
Seqüência de Inicialização da Servlet - 283
Coleção de Classes de Ação – Action Classes - 284
Gerenciamento da Conexão com o Banco de Dados - 285
Autenticação do Usuário - 287
Geração de Identificadores de Sessão - 287
Gerenciamento de Log no Lado Servidor - 288
Classes Utilitárias para Acesso a Dados - 289
Framework OpenSwing no Lado Servidor - 289
Classes para Uso com o Hibernate - 296
Classes para Uso com o iBatis - 298
Classes para Uso com o JPA/TopLink - 298
Classes para Uso com o Apache Cayenne - 300
Integração com o Framework Spring - 301
Framework Spring - 301
Configurando uma Aplicação 3 Camadas com o Spring e o OpenSwing - 302
Serialização de Objetos - 306
Autenticação do Usuário - 307
Desenvolvimento de uma Camada DAO - 308

Capítulo 22
Tópicos Avançados - 313

Ambientes de Desenvolvimento - IDEs - 313
Design Orientado a Objetos - 314
Dicas e Truques - 316
Look ‘n feels - 320
Implantação da Aplicação - 321
Ativação de Aplicações web/distribuídas - 323

Capítulo 23
Instruções para Instalação - 327

Configurando uma Distribuição OpenSwing - 327
Instalação dos Componentes do OpenSwing em uma Paleta do Jbuilder - 329
Instalação dos Componentes do OpenSwing em uma Paleta do NetBeans - 329
Instalação dos Componentes do OpenSwing em uma Paleta do JDeveloper 10.1.2 - 330
Instalação dos Componentes do OpenSwing numa Paleta do Eclipse - 331
Window Builder - 332
Jigloo plugin - 333

Capítulo 24
Exemplos (Demos) - 335

Capítulo 25
Estudo de caso – Syndic (Sistema para administração de condomínios) - 349

O Sistema - 349
Regras de negócio e requisitos - 350
Telas do Syndic - 368
Ambiente MDI - 368
Values Objects - 382
Classes visuais e de controle – Cadastros - 388
Classes visuais e de controle – Movimento - 429

Referências - 467