@extends('layouts.app') @section('title', 'Configuracoes - ERP-PLUS') @section('page_title', 'Configuracoes') @section('page_subtitle', 'Parametros gerais do sistema — acesso restrito ao administrador.') @push('styles') @endpush @section('content')
@csrf @php $activeGateway = setting('payment_gateway', 'asaas'); @endphp
{{-- ABA: GERAL --}}

Parametros de sincronizacao

Prazos e regras para consulta e manifestacao de documentos.

Prazo para busca de XML

Define em quantos dias antes do vencimento (NT 2020.001) o sistema comeca a alertar sobre documentos sem manifestacao conclusiva.
O valor padrao e 90 dias conforme legislacao.

Dados da empresa responsavel

Identificacao do responsavel pelo sistema, usada em relatorios e exportacoes.
{{-- ABA: EMAIL --}}

Configuracao de E-mail (SMTP)

Defina o servidor de saida para envio de e-mails de verificacao, recuperacao de senha e notificacoes.

Servidor SMTP

Deixe em branco para nao alterar a senha salva.

Remetente

Historico de e-mails

Todos os e-mails enviados pelo sistema sao registrados automaticamente.
Ver historico de e-mails enviados
{{-- ABA: GATEWAY PADRAO --}}

Gateway padrao de cobrancas

Selecione qual gateway sera usado para gerar cobranças e assinaturas dos clientes.
Apenas um gateway e utilizado por vez. Configure as credenciais na aba correspondente.
Asaas
{{ $activeGateway === 'asaas' ? 'Gateway ativo' : 'Inativo' }}
Mercado Pago
{{ $activeGateway === 'mercadopago' ? 'Gateway ativo' : 'Inativo' }}
{{-- ABA: ASAAS --}}

Integracao Asaas

Cobranca recorrente e gerenciamento de assinaturas via Asaas.
@if ($activeGateway === 'asaas') Gateway ativo @endif

Credenciais

Gerado em: Painel Asaas → Configuracoes → Integracoes → API.

Webhook

Configure esta URL no painel do Asaas para receber notificacoes de pagamento automaticamente.
URL do webhook: {{ url('api/webhooks/asaas') }}
Painel Asaas → Configuracoes → Integracoes → Notificacoes → Adicionar endpoint.
{{-- ABA: MERCADO PAGO --}}

Integracao Mercado Pago

Cobranca recorrente via Mercado Pago com aprovacao pelo cliente.
@if ($activeGateway === 'mercadopago') Gateway ativo @endif

Credenciais

Painel MP → Seu negocio → Configuracoes → Gestao e administracao → Credenciais.
Usada no checkout do cliente. Nao e um segredo.

Webhook

Configure esta URL no painel do Mercado Pago para receber notificacoes de pagamento automaticamente.
URL do webhook: {{ url('api/webhooks/mercadopago') }}
Painel MP → Seu negocio → Webhooks → Adicionar. Selecione os eventos: subscription_preapproval e subscription_authorized_payment.
{{-- ABA: NFS-e --}}

Portal Nacional da NFS-e

Endpoints e ambiente global de emissao de notas fiscais de servico.

Ambiente padrao

Define o ambiente que sera pre-selecionado ao criar novas configuracoes fiscais de empresa.
Cada empresa pode sobrescrever esse valor na sua propria configuracao fiscal.

URLs do Portal Nacional

Endpoints da API REST do Emissor Nacional SEFAZ. Altere apenas se o governo publicar novos enderecos.

Emissao automatica global

Controle o comportamento da emissao automatica apos pagamento confirmado.

Emissao automatica apos pagamento

Quando ativo, o sistema dispara o job de emissao automaticamente ao confirmar um pagamento. Cada plano deve ter nfse_auto_emit habilitado para que a empresa seja contemplada.
Requer que as filas (queues) estejam ativas. Use php artisan queue:work.

Envio de e-mail com a nota

Envia automaticamente o PDF e XML da NFS-e ao tomador por e-mail apos a emissao bem-sucedida.
O e-mail SMTP deve estar configurado na aba E-mail.

Prazo para cancelamento

Janela maxima (em horas) que o sistema permite solicitar o cancelamento de uma NFS-e emitida. Apos esse prazo o botao de cancelamento e desabilitado.
Padrao: 24 horas. Consulte a legislacao municipal.

Certificado digital global (A1)

Certificado .pfx usado como fallback quando a empresa nao possui certificado proprio.
@php $certPath = setting('nfse_cert_path'); @endphp @if ($certPath && \Illuminate\Support\Facades\Storage::exists($certPath)) Certificado carregado @else Sem certificado @endif
Em arquiteturas onde um unico certificado assina por todas as empresas (procuracao eletronica), faca o upload aqui. Caso contrario, cada empresa configura o seu proprio certificado em NFS-e → Configuracao Fiscal.
{{-- Status do certificado atual --}} @if ($certPath && \Illuminate\Support\Facades\Storage::exists($certPath)) @php $certInfo = session('nfse_cert_info') ?? []; $certCnpj = setting('nfse_cert_cnpj', ''); $certValid = setting('nfse_cert_valid_until', ''); $certIssuer = setting('nfse_cert_issuer', ''); $daysLeft = $certValid ? \Carbon\Carbon::parse($certValid)->diffInDays(now(), false) * -1 : null; @endphp
Certificado atual
@if ($certIssuer)
Emitente{{ $certIssuer }}
@endif @if ($certCnpj)
CNPJ{{ preg_replace('/(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/', '$1.$2.$3/$4-$5', $certCnpj) }}
@endif @if ($certValid)
Validade {{ \Carbon\Carbon::parse($certValid)->format('d/m/Y') }} @if ($daysLeft !== null) @if ($daysLeft < 0) Vencido @elseif ($daysLeft <= 30) {{ $daysLeft }} dias restantes @else {{ $daysLeft }} dias restantes @endif @endif
@endif
Para substituir, faca um novo upload abaixo.
@endif {{-- Upload --}}
{{-- Drop zone --}}
Arraste o arquivo aqui ou clique para selecionar
.pfx ou .p12 — maximo 2 MB
@error('nfse_cert_file')
{{ $message }}
@enderror
Armazenada criptografada. Deixe em branco para manter a atual. @error('nfse_cert_password')
{{ $message }}
@enderror
Envia notificacao quando restarem X dias para o vencimento.

Numeracao de RPS

Controle do contador de Recibo Provisorio de Servicos por empresa.
A numeracao do RPS e controlada automaticamente por empresa — cada nova nota incrementa o contador. O numero atual pode ser consultado e ajustado diretamente no banco de dados se necessario (campo rps_numero da tabela nfse_invoices).
Ver todas as NFS-e emitidas
{{-- ABA: INTERFACE --}}

Comportamento do Menu Lateral

Define como os grupos do menu devem carregar por padrão para todos os usuários.

Estado padrão dos grupos do menu

Ao entrar no sistema, os grupos do sidebar carregarão expandidos ou retraídos. O usuário pode expandir/retrair manualmente — a preferência individual fica salva no navegador.
@php $navState = setting('nav_default_state', 'expanded'); @endphp
Nota: A preferência salva pelo usuário no navegador tem prioridade sobre esta configuração. Para redefinir, o usuário pode limpar o armazenamento local do navegador.
@push('scripts') @endpush @endsection