============================================================
 DIAMANTE - ENVIO AUTOMATICO CTRIBUTARIA  |  INSTALACAO
============================================================

Esse servico cumpre o item 4.1 da guia da CTributaria: garante, sem acao do
usuario e pelo menos 1x ao dia, o envio da base do cliente para a CTributaria:
  - a base ATIVA com movimentacao nos ultimos 12 meses (nf_saida finalizada);
  - MAIS os itens novos cadastrados desde o ultimo envio.
O envio real so ocorre se a integracao estiver LIGADA na empresa
(config ctributaria_habilitar = 'S'). O servico NAO usa certificado/ACBr.

------------------------------------------------------------
 ATENCAO AO COPIAR O INSTALAR-SERVICO.bat PRO CLIENTE
------------------------------------------------------------
Copie o arquivo .bat DIRETO (pendrive, rede, RDP) -- NUNCA cole o conteudo
via WhatsApp/e-mail/chat e salve como .bat por la. Esses apps trocam a
codificacao/quebra de linha e o Windows passa a nao reconhecer os comandos.

------------------------------------------------------------
 ANTES DE COMECAR - tenha em maos
------------------------------------------------------------
 [ ] .NET Framework 4.8 instalado no servidor do cliente.
 [ ] Connection string do banco do cliente (SQL Server).
 [ ] empresa_id (ou lista de empresas, se o servidor atender mais de uma).
 [ ] Credenciais/URL da CTributaria ja configuradas no ERP (aba CTributaria em
     Configuracoes do Sistema) e ctributaria_habilitar = 'S' na(s) empresa(s).

============================================================
 INSTALACAO NO SERVIDOR DO CLIENTE
============================================================

1) Copie a pasta do servico (bin\Release) para o servidor, por exemplo:
     C:\DiamanteCTributaria\
   Coloque o INSTALAR-SERVICO.bat e este LEIAME na MESMA pasta do
   CTributaria.Service.exe.

2) Aponte o banco: edite CTributaria.Service.exe.config
   -> connection string chave "a" = banco do cliente.

3) Gere o config: rode o INSTALAR-SERVICO.bat, opcao [1] (roda em console).
   Na 1a vez ele cria o config.xml nesta pasta. Feche com CTRL+C.

4) Edite o config: opcao [2] do bat (abre o config.xml no Bloco de Notas).

     <Config>
       <tipo_conexao>1</tipo_conexao>
       <intervalo_minutos>30</intervalo_minutos>   <!-- de quanto em quanto o servico CHECA o horario -->
       <hora_envio>03:00</hora_envio>              <!-- horario-alvo do envio diario (HH:mm) -->
       <Empresas>
         <TodasDoBancoPadrao>true</TodasDoBancoPadrao>
       </Empresas>
     </Config>

   - CASO varias empresas em bancos DIFERENTES: liste cada <Empresa> com sua
     propria <connection_string> (igual ao BuscadorXML/ConcentradorNFCe).
   - CASO varias empresas no MESMO banco: use TodasDoBancoPadrao=true e o
     servico pega sozinho, a cada ciclo, as empresas ativas da tabela empresa.

   COMO FUNCIONA O AGENDAMENTO:
   - O servico "acorda" a cada intervalo_minutos so para checar o relogio.
   - Quando passa de hora_envio E ainda nao enviou hoje, ele envia e grava a
     data/hora em config (ctributaria_ultimo_envio) por empresa. Assim NAO
     repete no mesmo dia, e se o servidor ficou desligado no horario, ele
     envia assim que voltar (no proximo ciclo apos hora_envio).
   - 1a execucao de uma empresa: envia so a base 12m. Dias seguintes: base 12m
     + itens cadastrados desde o ultimo envio.

5) Teste sem esperar o horario: opcao [9] do bat (roda com --forcar, que
   ignora o gate de horario/1x-por-dia e ja tenta enviar). Veja o resultado
   no console e em Logs\log_AAAA-MM-DD.txt.

6) Instale como servico do Windows: feche o bat e reabra com BOTAO DIREITO >
   "Executar como administrador". Opcao [3] cria e inicia o
   "DiamanteCTributariaService". Depois: [4] iniciar, [5] parar, [6] status,
   [7] desinstalar.

============================================================
 LOGS
============================================================
 - Logs\instalar-servico.log : saida dos comandos "sc" (instalar/iniciar/etc.)
 - Logs\log_AAAA-MM-DD.txt    : log diario do proprio servico (o que foi
   carregado e enviado por empresa, erros de autenticacao/envio da CTributaria).

============================================================
 PROBLEMAS COMUNS
============================================================
 - "CTributaria desabilitada": ctributaria_habilitar != 'S' na empresa. Ligue
   na aba CTributaria das Configuracoes do Sistema.
 - Envio PARCIAL / FALHOU: geralmente autenticacao/credenciais da CTributaria.
   O servico NAO marca como enviado hoje e tenta de novo no proximo ciclo.
 - "sc create" falha com "servico ja existe": rode a opcao [7] antes.
 - Login da CTributaria falha com "Ocorreu um erro ao enviar a solicitacao"
   (erro no /login, ~1s): e falha de handshake TLS — a MAQUINA nao confia na
   cadeia de certificado do endpoint da CTributaria. (Pela tela do Retaguarda
   funciona porque o APP desliga a validacao de certificado globalmente; o
   servico roda em outro processo e nao faz isso.) SOLUCAO SEGURA: instale a
   cadeia de CA no repositorio da MAQUINA rodando, como Administrador, o
   InstalarCertificado.bat desta pasta (ou a opcao [C] do INSTALAR-SERVICO.bat).
   Ele baixa a cadeia do endpoint e instala as CAs em LocalMachine (intermediarias
   em CA, raiz em Root) e valida o TLS no final. Depois rode a opcao [9] (--forcar)
   para testar o /login. Para outro host: InstalarCertificado.bat outrohost.com.br
