# Configuração e instalação *(TI)*

## Requisitos

- .NET 10 (ASP.NET Core Runtime / Hosting Bundle no IIS)
- SQL Server com o banco **NArqLO** do ERP
- Licença Syncfusion Blazor

## Banco de dados

Rode no NArqLO, nesta ordem:

| Script | O que faz |
|---|---|
| `sql\01_CRM_Schema.sql` | Cria o schema **crm** (Agenda, Contato, Campanha, MensagemPadrao, ClienteCrm) e as mensagens de exemplo. Não altera tabelas do ERP. Pode rodar mais de uma vez |
| `sql\02_Indices_Carteira.sql` | *Opcional.* Índices para a Carteira e o Painel (um deles em `dbo.ClientesEmpresa`) |

O que o NCrm **grava** no ERP:

- `Clientes.Medida1/2/3` e `Clientes.Preferencia`, quando alguém edita o perfil;
- `ClientesEmpresa.Preferencia`;
- `ClientesEmpresa.DataContato/DescContato/DataRetorno`, para o WPF enxergar o último contato. Desliga com `EspelharEmClientesEmpresa`.

## appsettings.json — seção `Crm`

| Chave | Padrão | Descrição |
|---|---|---|
| `Modo` | `Direto` | `Direto` acessa o banco pela NClasses.Application; `Api` chama a NClasses.API |
| `ApiUrl` / `ApiKey` | | Endereço da NClasses.API e a chave enviada no header `X-Api-Key` (modo Api) |
| `NatOperVenda` | `["VENDA"]` | CodNatOper da vwKardex considerados venda |
| `NatOperCondicional` | `["REMDEMO"]` | CodNatOper considerados condicional |
| `Supervisores` | `[]` | CodRepres que entram como supervisor |
| `EmpresaMultiLoja` | `9999` | CadVend.Empresa do vendedor de várias lojas |
| `MultiLojaEhAdministrador` | `true` | `true`: o 9999 entra como administrador; `false`: não entra no CRM |
| `EmpresaPadraoAdministrador` | `null` | Loja inicial do administrador. `null` = primeira da tabela Filial |
| `VendedorVeSomenteCarteira` | `true` | Vendedor só vê os clientes da carteira (ClientesEmpresa.CodRepres) |
| `RotuloMedida1/2/3` | Calçado / Calça / Camisa | Rótulos de Clientes.Medida1/2/3 |
| `Ddi` | `55` | DDI usado nos links do WhatsApp |
| `EspelharEmClientesEmpresa` | `true` | Grava o último contato em ClientesEmpresa |
| `VendedorEditaPerfil` | `true` | Vendedor pode editar medidas e preferências |

### WhatsGW (envio automático)

| Chave | Descrição |
|---|---|
| `WhatsGw:Habilitado` | Liga o botão **Enviar pelo WhatsGW** |
| `WhatsGw:ApiKey` | Chave da conta no WhatsGW |
| `WhatsGw:UsarNumeroDoVendedor` | Envia pelo número de `CadVend.WhatsNum` do vendedor (precisa estar conectado no WhatsGW) |
| `WhatsGw:NumeroPadrao` | Número remetente quando o vendedor não tem WhatsNum |

Sem o WhatsGW, o sistema funciona normalmente com o link `wa.me`, que abre o WhatsApp do próprio vendedor.

## Login

O login usa `CadVend`: o código ou o NomeFantasia, mais a `Senha` (texto, a mesma regra do WPF). Vendedores **inativos** não entram.

## Regras de dados

- **Carteira** = `ISNULL(ClientesEmpresa.CodRepres, Clientes.CodRepres)` na loja.
- **Valor 3 anos** = `ClientesEmpresa.ValorAno`, mantido pelo ERP.
- **Última compra** = `ClientesEmpresa.DataUltC`.
- **Último atendimento** = o mais recente entre `crm.Contato` e `ClientesEmpresa.DataContato`.
- **Compras e condicionais** = `vwKardex` pelo CodNatOper, com tamanho (`ProdTamanho.Grade1`), cor (`ProdCor.Grade2`), marca e condição de pagamento.
- **Desconto %** = `1 − (PrTotal / Qtidade) / PrLista`.

## Este manual

Os arquivos ficam em `wwwroot\ajuda\*.md` e são exibidos no menu **Ajuda** (`/manual`). Para editar, altere o .md; o primeiro título `#` vira o nome do capítulo, e a ordem segue o nome do arquivo (`00-`, `01-`...). Os arquivos também podem ser baixados diretamente em `/ajuda/<arquivo>.md`.
