$

DinoCommerce

Painel de Licenças

{{ erroLogin }}

Visão geral

{{ resumo.total || 0 }}
Total
{{ resumo.ativos || 0 }}
Ativos
{{ resumo.bloqueados || 0 }}
Bloqueados
{{ resumo.vencendo || 0 }}
Vencendo (7d)
{{ resumo.expirados || 0 }}
Expirados
{{ resumo.acessos24h || 0 }}
Acessos 24h

Clientes

Últimas versões publicadas
API Retag: {{ versoesPub.apiRetaguarda || '—' }}
API Fiscal: {{ versoesPub.apiFiscal || '—' }}
Retaguarda: {{ versoesPub.retaguarda || '—' }}
PDV: {{ versoesPub.pdv || '—' }}
🟢 atualizado · 🟡 1 release atrás · 🔴 2+ releases atrás · ⚪ nunca reportou
CNPJ Razão social Status API Fiscal Retag. PDV Liberado até Último acesso
{{ formatarCnpj(c.cnpj) }}
{{ c.razao_social }}
{{ c.nome_fantasia }}
BLOQ EXP VENC OK {{ c.versao_api_retaguarda || '—' }} {{ c.versao_api_fiscal || '—' }} {{ c.versao_retaguarda || '—' }} {{ c.versao_pdv || '—' }} {{ c.liberado_ate ? formatarData(c.liberado_ate) : '—' }} {{ c.ultimo_acesso ? formatarDataHora(c.ultimo_acesso) : 'nunca' }}
Nenhum cliente cadastrado

{{ form.id ? 'Editar cliente' : 'Novo cliente' }}



Módulos liberados

{{ erroForm }}

Logs de acesso

{{ logsCliente?.razao_social }} ({{ formatarCnpj(logsCliente?.cnpj) }})

Data App Versão IP Hostname Resultado
{{ formatarDataHora(l.data_consulta) }} {{ l.app }} {{ l.versao || '—' }} {{ l.ip || '—' }} {{ l.hostname || '—' }} {{ l.resultado }}
Sem registros

📜 Cláusulas do Contrato

Cadastro das cláusulas que podem entrar nos contratos. Marque/desmarque em cada proposta.

Ordem Código Título Padrão Sempre inclusa Condicional Ativa Ações
{{ c.ordem }} {{ c.codigo }} {{ c.titulo }} {{ c.padrao ? '✓' : '—' }} {{ c.sempre_inclusa ? '🔒' : '—' }} {{ c.condicional || '—' }} {{ c.ativa ? '✓' : '✗' }}
Nenhuma cláusula cadastrada.

{{ clausula.id ? 'Editar Cláusula' : 'Nova Cláusula' }}

Placeholders: {{prazoImplantacaoDias}} · {{valorMigracao}} · {{pctDescontoPontualidade}} · {{mensalCheia}} · {{mensalComDesconto}} · {{economiaMensal}} · {{economiaAnual}}
{{ erroClausula }}
PRÉVIA

🚀 Atualizar Cliente

Script PowerShell que atualiza todos os componentes do cliente para a última versão publicada.

Detecta automaticamente se está rodando no servidor (atualiza APIs + Tauri) ou em um terminal (só atualiza apps Tauri — terminal não tem API instalada).

Passo 1
Abra o PowerShell como Administrador no PC do cliente.
Passo 2
Cole o script abaixo e pressione Enter.
Passo 3
Aguarde o resumo verde "Atualizacao concluida" no fim.
⚠ O que o script faz
  • Para os serviços 3aSystem.ApiRetaguarda, 3aSystem.ApiFiscal e 3aSystem.Agente
  • Faz backup das pastas das APIs com timestamp (_backup_YYYYMMDD_HHMMSS)
  • Baixa as últimas versões direto do servidor de updates e extrai sobrescrevendo
  • Preserva configurações locais: appsettings.json, conf.ini, pasta Certificado/
  • Reinstala Tauri Retaguarda e PDV via setup silencioso (/S)
  • Reinicia os serviços e valida endpoints HTTP :5000 e :8001
{{ erroScript }}
atualizar-cliente.ps1 carregando... {{ scriptAtualizar.split('\n').length }} linhas
{{ scriptAtualizar }}
Carregando script...
Clique em "Recarregar" pra buscar o script.

Parâmetros opcionais

Salve o script como atualizar-cliente.ps1 e rode com flags pra controlar o que atualiza:

-Modo Auto|Servidor|TerminalDefault Auto — detecta pelo que está instalado. Use Terminal pra forçar só apps Tauri (PCs de operador sem API)
-PularApisNão atualiza as APIs (.NET) — só Tauri
-PularTauriNão atualiza apps Tauri — só APIs
-SemBackupNão cria backup das pastas (mais rápido)
-ServerUrl <url>URL do servidor de updates (default: https://www.updates.3asystem.com.br)

💳 Instalar TEF

Script PowerShell que instala/atualiza o serviço TEF PayGo (nossa API local 3aSystem.ApiTef + DLL PGWebLib) e/ou guia a instalação do Agente CliSiTef da Software Express.

Instale só onde tem pinpad físico conectado. Não precisa nos terminais que só consomem NFC-e.

Passo 1
Abra o PowerShell como Administrador no PC do caixa.
Passo 2
Cole o script abaixo. Depois refaça a INSTALACAO no pinpad (Menu TEF).
Passo 3
Cadastre o terminal na Retaguarda (aba TEF) e teste a 1ª venda.
💚 O que o script faz — PayGo
  • Para serviço 3aSystem.ApiTef se estiver rodando
  • Backup em C:\3aSystem\ApiTef.backup_YYYYMMDD_HHMMSS
  • Baixa apitef-latest.zip do servidor de updates e extrai em C:\3aSystem\ApiTef\
  • Valida DinoCommerce.ApiTef.exe + PGWebLib.dll
  • Instala NSSM (se ausente) e registra 3aSystem.ApiTef como serviço Windows AutoStart
  • Abre porta 8787/tcp no firewall (WebSocket local pro PDV)
  • Preserva appsettings.json local ao atualizar
  • Inicia e valida ws://127.0.0.1:8787
🛡 CITEF / SiTef (SoftExpress)

O CITEF/SiTef usa o Agente CliSiTef da Software Express — pacote de 3º, não redistribuído pela 3aSystem. O script abre a página oficial de downloads e mostra os passos manuais:

  1. Baixe em softwareexpress.com.br/downloads
  2. Instale como serviço (próximo → próximo → concluir). Escuta em 127.0.0.1:59002
  3. No Retaguarda → Terminais PDV → aba TEF: Provedor = CITEF, Ativo ✓
  4. No PDV → Config → aba CITEF → Testar Conexão
  5. Menu Admin SiTef → INSTALACAO → preencha Loja/Terminal/Endereço
{{ erroScriptTef }}
instalar-tef.ps1 carregando... {{ scriptInstalarTef.split('\n').length }} linhas
{{ scriptInstalarTef }}
Carregando script...
Clique em "Recarregar" pra buscar o script.

Parâmetros opcionais

-Provedor PayGo|CITEF|AmbosDefault PayGo. Use CITEF pra abrir só a página da SoftExpress. Ambos instala PayGo + guia CITEF
-DesinstalarRemove serviço 3aSystem.ApiTef, pasta de instalação e regra de firewall
-PastaInstalacao <path>Default C:\3aSystem\ApiTef
-SemBackupNão cria backup da pasta anterior
-ServerUrl <url>Default https://www.updates.3asystem.com.br

🏷️ Tabelas Fiscais

📤 Publicar nova versão {{ tfTipo }}

Faça upload do arquivo ncm_oficial_seed.sql gerado por scripts/importar_ncm.py. Será ativado automaticamente após o upload — clientes baixam na próxima checagem.

📋 Versões publicadas

Carregando...
Nenhuma versão publicada ainda — faça o primeiro upload acima.
Status Versão Ato Registros SQL Publicado em Ações
ATIVA {{ v.versao }} {{ v.ato_padrao || '—' }} {{ (v.qtd_registros || 0).toLocaleString('pt-BR') }} {{ formatarKB(v.sql_tamanho) }} {{ new Date(v.criado_em).toLocaleString('pt-BR') }}

Trocar senha

{{ msgSenha }}

📄 Propostas / Contratos

Cliente PlanoMensal StatusData
{{ p.numero }} {{ p.nome_fantasia || p.razao_social }}
{{ formatarCnpj(p.cnpj) }}
{{ p.modulo }} · {{ p.hospedagem==='NUVEM'?'Nuvem':'Servidor cliente' }} · {{ p.usuarios }} usr {{ moeda(p.mensal_total) }} {{ p.status }} {{ formatarData(p.criado_em) }}
Nenhuma proposta. Clique em "Nova Proposta".

{{ prop.id ? 'Editar' : 'Nova' }} Proposta

Cliente
buscando... {{ msgCnpjProp }}
Plano & Valores (todos editáveis)

📜 Cláusulas do Contrato

Cláusulas marcadas entram no PDF do contrato (ordem definida no cadastro). Condicionais auto-marcam quando o módulo está ativo.

Nenhuma cláusula cadastrada.
{{ totalSelecionadas }} cláusula(s) selecionada(s)
📎 Anexos (contrato assinado, documentos)

Suba o contrato assinado e outros documentos. Pode enviar várias versões — todas ficam guardadas.

Salve a proposta primeiro para poder anexar arquivos.
Resumo
Mensalidade base{{ moeda(prop.valorMensalidade) }}
+ {{ usuariosExtra }} usuário(s){{ moeda(usuariosExtra*prop.valorUsuarioAdicional) }}
+ App{{ moeda(prop.valorApp) }}
+ {{ pdvsExtra }} PDV(s){{ moeda(pdvsExtra*prop.valorPdvAdicional) }}
+ Cardápio Digital{{ moeda(prop.valorCardapio) }}
+ Bot WhatsApp{{ moeda(prop.valorBotWhatsapp) }}
+ MDF-e{{ moeda(prop.valorMdfe) }}
- Desconto-{{ moeda(prop.descontoMensal) }}

Mensal{{ moeda(totMensal) }}
≈ {{ pctSM(totMensal) }} do salário mínimo
Implantação + treino{{ prop.valorMigracaoDados>0 ? ' + migração' : '' }}{{ moeda(totInicial) }}
≈ {{ pctSM(totInicial) }} do salário mínimo
{{ erroProp }}