====== Verificador de NF-e Destinada ======
//Alterado em 04/02/2015 -> Permitido executar como Aplicativo//
Disponibilizado na NT 2012/002 um webservice do Ambiente Nacional que permite ao contribuinte verificar as notas que foram destinadas a ele. Ciente desse serviço a Intelliware desenvolveu uma forma de efetuar essa verificação, permitindo ao usuário usar essas informações.\\
\\
{{ :intellicash:manuais_auxiliares:servicenfedest.jpg?nolink |}}
==== Instalação ====
É possivel instalar o verificador de notas emitidas como Serviço ou como Aplicação. Existindo vantagens e desvantagens, e por isso deve ser escolhido de acordo com o ambiente do cliente.\\
**Serviço**\\
__Vantagens:__ é executado junto a inicialização do sistema operacional (Windows) independente da realização do login pelo usuário, por esse motivo é ideal para servidores dedicados. Por ser executado independente do usuário entrar no sistema, não sofre interferencias de outros programas, se tornando menos suceptivel a erros de ambiente.\\
__Desvantagens:__ como o serviço é executado independente do usuário, é preciso que ao instalar o serviço, seja data permissão de administrador para acessar o certificado digital. Outro problema são os casos do certificado A3 em que é necessário digitar a senha a cada conexão, como o serviço não interage com o usuário, também não é chamada a interface para digitar a senha do certificado, e consequentemente a consulta não é realizada.
**Aplicativo**\\
__Vantagens:__ não é necessário maiores complicações para a instalação, nos casos de maquinas monousuários, dispensaria a obrigação de criar senhas. Funciona com Certificado A1 e A3.\\
__Desvantagens:__ mesmo que coloque no iniciar do Windows, caso o usuário não faça o login, o programa não será iniciado. Por ser aplicativo e interagir com a area de trabalho, erros em aplicativos de terceiros podem causar falhas inexperadas e finalizar o aplicativo, necessitando reinicia-lo.
Não deve ser instalado como Serviço e como Aplicativo, nem deve ter instalado em mais de uma maquina com o mesmo certificado.
=== Aplicação ===
Para instalar o **Verificador de NF-e Destinada** como aplicativo deve-se copiar o arquivo **ProgramNFeDest.exe** para uma máquina que possua o Certificado Digital devidamente instalado, assim como as Dll's auxiliares da CAPICON. (Mesmo processo do GNFe)\\
Depois de copiado o executável, é preciso configurar para ser executado como administrador, para isso clique com botão direito do mouse sobre o executável e na aba de compatibilidade maque a opção de ||Executar este programa como administrador||, clique em **Aplicar**, e em **OK**.\\
Crie um atalho do executável no inicializar do windows, para que ao reiniciar a maquina o aplicativo seja reiniciado.
Caso seja usado o Certificado A3, toda vez que for inicializado o sistema, será pedido a senha certificado e não funcionará até ser digitado, podendo inclusive ter TimeOut, e precisar finalizar o aplicativo e inicar manualmente. 
O Aplicativo não possui Interface, para verificar que está sendo executado, observe o icone ao lado do relogio na barra de tarefas!
=== Serviço ===
Para instalar o **Verificador de NF-e Destinada** deve-se copiar o arquivo **ServiceNFeDest.exe** para uma máquina que possua o Certificado Digital devidamente instalado, assim como as Dll's auxiliares da CAPICON. (Mesmo processo do GNFe)\\
Para instalar o serviço, execute o comando:\\
''ServiceNFeDest.exe /install''
Para verificar se o serviço foi instalado corretamente, veja em ''Painel de Controle > Ferramentas Administrativas > Serviços '', e localize **IwrVerifNFeDest**. 
\\
Depois de instalar o serviço, é preciso configurar para ser iniciado fazendo logon com permissão de administrador. Para realizar essa configuração:\\
  - Acessar: ''Painel de Controle > Ferramentas Administrativas > Serviços '';
  - Clicar com o botão direito do mouse sobre o serviço ''IwrVerifNFeDest'' e escolha **Propriedade**;
  - Na aba **Logon**, altere para fazer logon como e insira a conta e a senha do usuário com permissão de administrador, como na imagem abaixo: {{ :intellicash:manuais_auxiliares:servicologonadm.jpg?nolink |}}
  - clique em **Aplicar**, e em **OK**.
==== Configuração ====
Para Configurar o **Verificador de NF-e Destinada** é preciso criar um arquivo chamado **ServiceNFeDest.ini** (se for serviço) ou **ProgramNFeDest.ini**(se for aplicativo), caso o arquivo não seja criado, serão usadas as configurações padrões, como exibido abaixo:
[CONEXAO]\\
DB=INTELLISTORE3\\
Host=127.0.0.1\\
Port=5055\\
Server=EnterpriseServer.EnterpriseDataServer\\
\\
[VERIFICACAO]\\
EsperaSemDocumento=60\\
EsperaEntreConsulta=1
\\
Os valores entre <> são aqueles atribuídos por padrão caso não seja criado o arquivo INI.\\
**DB**: o Banco de dados que o servidor deve se conectar ;\\
**Host**: o IP da máquina servidora de Banco de Dados <127.0.0.1>;\\
**Port**: Porta de comunicação com o Servidor de Banco de Dados ;\\
**Server**: Nome do Aplicativo Servido de Banco de dados ;\\
\\
**EsperaSemDocumento**: Tempo de espera entre as verificações quando a última consulta indica que não há mais documentos (em Minutos) <60 mimutos>; \\
**EsperaEntreConsultas**: Tempo de espera entre as verificações quando a última consulta indica que há mais documentos (em Minutos) <1 mimutos>; \\
Não configure o tempo de espera sem documento com valores menores que 60 minutos, pois o servidor da receita pode interpretar como sendo uma requisição maliciosa, e bloquear temporariamente suas requisições!\\ 
A NT 2012/002 recomenda um tempo minimo de 1 hora entre uma solicitação e outra. 
O Serviço irá consultar todas as empreas que possuírem informações de certificado na tabela "EMPRESAS", no campo "CERTIFICADO".
==== Informações Verificadas ====
O **Verificado de Notas Destinadas** da Intelliware utiliza uma função disponível pelo site da Fazenda, e retorna um arquivo XML com as seguintes informações:
**Chave** chave de 44 digitos que identifica a NF-e\\
**CNPJ/CPF** CNPJ ou CPF do emitente da NF-e\\
**Nome** Nome do emitente da NF-e\\
**IE** Insc. Estadual do Emitente da NF-e\\
**Data Emissão** Data de Emissão da NF-e\\
**Tipo NF** Tipo da NF-e 
    0 - Entrada
    1 - Saida
**Valor NF** Valor total da NF-e\\
**Digest Value** Código de autorização na Base do SEFAZ\\
**Data/Hora Recbto** Data e Hora da Autorização/Cancelamento da NF-e\\
**Situação NF** Situação da NF-e
    1 - Uso Autorizado no Momento da Consulta;
    2 - Uso Denegado;
    3 - NF-e Cancelada.  
**Situação de Manifestação** Situação da Manifestação do Destinatário:
    0 - Sem Manifestação do Destinatário;
    1 - Confirmada Operação; 
    2 - Desconhecida;
    3 - Operação não Realizada;
    4 - Ciência;
Alem dessas informações sobre os Documentos destinados, também são recebidas informações sobre a consulta em si, são elas:\\
**cStat** Código do status da resposta
  137 : Nenhum documento localizado para o destinatário;
  138 : Documento localizado para o destinatário.  
**indCont** Indicador de Continuação:
  0 - SEFAZ não possui mais documentos para o CNPJ informado
  1 - SEFAZ possui mais documentos para o CNPJ informado, ou ainda não avaliou a totalidade da sua base de dados.
**ultNSU** Último NSU pesquisado na SEFAZ. a Proxima consulta será apartir desse NSU.
Sobre o **cSTAT**, alem dos codigos 137 e 138, também podemos obter uma resposta de rejeição devido a erro do webservice ou problemas na requisição. \\
Caso o indCont seja 0 (Zero), então é recomendado pela receita um tempo mínimo de 1 hora, para que não corra o risco de serem bloqueadas as pesquisas futuras.
A configuração **EsperaSemDocumento** deve é usada quando o **indCont** for igual a 0, portanto não é aconselhavel configurar com valores inferiores a 60
==== Banco de Dados ====
As Informações são armazenadas em 2 tabelas:\\
**NFE_CONSULTADEST** Contem o retorno do SEFAZ quando o cSTAT resultado é 137 ou 138
^ Campo  ^ Tipo  ^ Obrigatório ^ Observação  ^
| ID | BIGINT | Sim | Identificador Interno do Intellicash |
| EMPRESA | BIGINT | Sim | Código da Empresa consultada como destinatária |
| DATA | TIMESTAMP | Sim | Data/Hora da verificação |
| XML | BLOB | Não  | XML de resposta do SEFAZ |
| ULTIMONSU | VARCHAR(30) | Sim | NSU retornado na consulta que será usado como base para a proxima verificação |
| CSTAT | INTEGER | Sim | Codigo da resposta do SEFAZ |
**NFE_DETCONSULTTADEST** Contém os documentos contido no retorno do SEFAZ
^ Campo  ^ Tipo  ^ NULL ^ Observação  ^
|ID           |BIGINT | Sim | Identificador Interno do Intellicash |
|ID_CONSULTA  |BIGINT | Sim | Identificador da tabela NFE_CONSULTADEST | 
|CHAVE        |VARCHAR(50) | Sim | Chave da NF-e |
|DOC          |VARCHAR(20) | Sim | CNPJ ou CPF do emitente da NF-e |
|NOME         |VARCHAR(60) | Sim | Nome do emitente da NF-e |
|IE           |VARCHAR(30) | Não | Insc. Estadual do Emitente da NF-e |
|DTEMI        |DATE | Sim | Data de emissão do Documento |
|TPNF         |INTEGER | Sim | Tipo de NF; 0 - Entrada, 1 - Saida |
|VALOR        |NUMERIC(18,2) | Sim | Valor NF-e  |
|VALIDADOR    |VARCHAR(50) | Sim | Codigo de autorização da NF-e no SEFAZ |
|DHRECIBO     |TIMESTAMP | Sim | Data e hora que a nota foi autorizada na SEFAZ de origem |
|SITNFE       |INTEGER | Sim | Situação da NF-e  |
|SITCONF      |INTEGER | Sim | Situação da Maninfestação do usuário |
|NSU          |VARCHAR(30) | Sim | NSU de autorização da NF-e no SEFAZ de Origem |
==== Logs ====
Como o **Verificador de NF-e Destinadas** é um serviço que roda em background, não há interfaces para emitir avisos, portanto toda a informação referente a operação do serviço é logada no arquivo **ServiceNFeDest.log**\\
O Log, tem seu início demarcado pela data e hora em que ocorreu o evento e finalizado por uma linha tracejada.\\
O Log está em ordem decrescente, ou seja, o último evento está por último.