# 05 - ERP ADIANTI (erp.uppi.app.br)

## 1. VISAO GERAL

O ERP Adianti usa o banco `db_erp` que contem TANTO as tabelas do framework Adianti QUANTO as 67 tabelas do marketplace. Banco unico, sem necessidade de conexao nomeada separada para marketplace.
Nao duplica logica -- consome os Services via `MarketplaceBridge`.

**Path:** `/var/www/erp.uppi.app.br/`
**Framework:** Adianti 8.4, tema adminbs5
**Banco:** `db_erp` (tabelas Adianti + tabelas marketplace — tudo junto)
**Banco CD:** `db_erp_cd01` (conexao nomeada para CD-01)

---

## 2. ESTRUTURA DO PROJETO

```
/var/www/erp.uppi.app.br/
|-- app/
|   |-- config/
|   |   |-- application.php          # Adianti 8.4, tema adminbs5, timezone
|   |   |-- dberp.php                # Conexao db_erp (Adianti + marketplace — tudo junto)
|   |   |-- dbcd01.php               # Conexao db_erp_cd01 (CRIAR)
|   |
|   |-- control/
|   |   |-- marketplace/             # 6 telas
|   |   |   |-- SellerManagement.php       # Lista + aprovar/suspender
|   |   |   |-- OrderManagement.php        # Lista + forcar status
|   |   |   |-- ProductModeration.php      # Aprovar/rejeitar produtos
|   |   |   |-- DisputeManagement.php      # Resolver disputas
|   |   |   |-- CouponManagement.php       # CRUD cupons
|   |   |   |-- MarketplaceDashboard.php   # KPIs gerais
|   |   |
|   |   |-- finance/                 # 5 telas
|   |   |   |-- FinanceDashboard.php       # Saldos, resumo, grafico
|   |   |   |-- SettlementManagement.php   # Aprovar/executar repasses
|   |   |   |-- LedgerReport.php           # Extrato double-entry
|   |   |   |-- ReconciliationReport.php   # Gateway vs ledger
|   |   |   |-- DREReport.php             # Demonstrativo de resultado
|   |   |
|   |   |-- logistics/              # 5 telas
|   |   |   |-- WarehouseManagement.php    # CRUD warehouses
|   |   |   |-- StockOverview.php          # Estoque consolidado todos CDs
|   |   |   |-- RouteManagement.php        # Criar/visualizar rotas
|   |   |   |-- DriverManagement.php       # Motoristas
|   |   |   |-- VehicleManagement.php      # Veiculos
|   |   |
|   |   |-- fiscal/                  # 3 telas
|   |   |   |-- FiscalDashboard.php        # Status NF-es
|   |   |   |-- CertificateManagement.php  # Certificados A1
|   |   |   |-- FiscalReport.php           # Relatorio fiscal
|   |   |
|   |   |-- config/                  # 4 telas
|   |   |   |-- SystemSettings.php         # Chave-valor sistema
|   |   |   |-- RulesManagement.php        # CRUD motor de regras
|   |   |   |-- CategoryManagement.php     # Arvore categorias
|   |   |   |-- CarrierManagement.php      # Transportadoras
|   |   |
|   |   |-- admin/                   # 3 telas (framework)
|   |   |   |-- UserManagement.php         # Usuarios
|   |   |   |-- RoleManagement.php         # Papeis
|   |   |   |-- AuditLogViewer.php         # Log auditoria
|   |
|   |-- model/
|   |   |-- marketplace/
|   |   |   |-- Seller.php, Product.php, Order.php, OrderSplit.php
|   |   |   |-- Category.php, Brand.php, Coupon.php
|   |   |-- finance/
|   |   |   |-- FinanceAccount.php, FinanceEntry.php, FinanceSettlement.php
|   |   |   |-- FinanceTransaction.php
|   |   |-- logistics/
|   |   |   |-- Warehouse.php, WmsStock.php, TmsRoute.php
|   |   |   |-- TmsDriver.php, TmsVehicle.php
|   |   |-- fiscal/
|   |   |   |-- FiscalDocument.php, FiscalCertificate.php
|   |   |-- config/
|   |   |   |-- SystemSetting.php, Rule.php, Carrier.php
|   |
|   |-- service/
|   |   |-- MarketplaceBridge.php    # Ponte Adianti <-> Services marketplace
|
|-- menu.xml                         # Menu com 7 grupos
```

---

## 3. MARKETPLACE BRIDGE

O `MarketplaceBridge` e a ponte entre Adianti e os Services do marketplace.
Faz `require_once` dos Services e os chama dentro de `TTransaction`.

### Operacoes Implementadas

| Operacao | Service Chamado | Descricao |
|----------|----------------|-----------|
| `approveSellerAction($id)` | - | Muda status + cria contas financeiras |
| `suspendSellerAction($id, $reason)` | - | Bloqueia vendas, desativa produtos, congela conta |
| `forceOrderStatus($id, $status, $reason)` | OrderService | Emergencia admin |
| `cancelOrderAction($id, $reason)` | OrderService | Com estorno automatico |
| `executeSettlementAction($id)` | SettlementService | Aprova + executa repasse |
| `generateDRE($start, $end)` | - | GMV, comissoes, ads, devolucoes, fees, margem % |
| `testRule($ruleId, $context)` | RulesEngineService | Debug de regra no admin |
| `createDeliveryRoute($warehouseId, $date)` | TmsService | Rota otimizada |
| `reconcileCdStock($warehouseId)` | CdSyncService | Reconciliacao estoque |
| `retryFiscalDocument($documentId)` | FiscalService | Reprocessa NF-e rejeitada |

---

## 4. MENU DO ERP (menu.xml)

```xml
<menuitem label="Dashboard">
    <menuitem label="Marketplace" image="bi bi-shop" action="MarketplaceDashboard"/>
    <menuitem label="Financeiro" image="bi bi-graph-up" action="FinanceDashboard"/>
</menuitem>

<menuitem label="Marketplace">
    <menuitem label="Sellers" image="bi bi-people" action="SellerManagement"/>
    <menuitem label="Pedidos" image="bi bi-bag" action="OrderManagement"/>
    <menuitem label="Produtos" image="bi bi-box" action="ProductModeration"/>
    <menuitem label="Disputas" image="bi bi-exclamation-triangle" action="DisputeManagement"/>
    <menuitem label="Cupons" image="bi bi-ticket" action="CouponManagement"/>
</menuitem>

<menuitem label="Financeiro">
    <menuitem label="Repasses" image="bi bi-cash-stack" action="SettlementManagement"/>
    <menuitem label="Extrato Ledger" image="bi bi-journal" action="LedgerReport"/>
    <menuitem label="Conciliacao" image="bi bi-check2-all" action="ReconciliationReport"/>
    <menuitem label="DRE" image="bi bi-file-earmark-bar-graph" action="DREReport"/>
</menuitem>

<menuitem label="Logistica">
    <menuitem label="Armazens" image="bi bi-building" action="WarehouseManagement"/>
    <menuitem label="Estoque" image="bi bi-boxes" action="StockOverview"/>
    <menuitem label="Rotas" image="bi bi-signpost-2" action="RouteManagement"/>
    <menuitem label="Motoristas" image="bi bi-person-badge" action="DriverManagement"/>
    <menuitem label="Veiculos" image="bi bi-truck" action="VehicleManagement"/>
</menuitem>

<menuitem label="Fiscal">
    <menuitem label="NF-e" image="bi bi-file-text" action="FiscalDashboard"/>
    <menuitem label="Certificados" image="bi bi-shield-lock" action="CertificateManagement"/>
    <menuitem label="Relatorio" image="bi bi-clipboard-data" action="FiscalReport"/>
</menuitem>

<menuitem label="Configuracoes">
    <menuitem label="Sistema" image="bi bi-gear" action="SystemSettings"/>
    <menuitem label="Regras" image="bi bi-sliders" action="RulesManagement"/>
    <menuitem label="Categorias" image="bi bi-diagram-3" action="CategoryManagement"/>
    <menuitem label="Transportadoras" image="bi bi-truck-front" action="CarrierManagement"/>
</menuitem>

<menuitem label="Admin">
    <menuitem label="Usuarios" image="bi bi-person" action="UserManagement"/>
    <menuitem label="Papeis" image="bi bi-key" action="RoleManagement"/>
    <menuitem label="Auditoria" image="bi bi-clock-history" action="AuditLogViewer"/>
</menuitem>
```

---

## 5. CONEXOES DE BANCO (application.ini / config)

### dberp.php (ja existe — banco unico)
```php
<?php
return [
    'host' => "uppi.app.br",
    'user' => "tokstore",
    'pass' => "Gzw41WTagFbmwjJcNZH6C0OxcQY=",
    'type' => "mysql",
    'port' => "3306",
    'name' => "db_erp",       // Adianti + marketplace — tudo junto
    'prep' => "1",
];
```

### dbcd01.php (CRIAR)
```php
<?php
return [
    'host' => "uppi.app.br",
    'user' => "tokstore",
    'pass' => "Gzw41WTagFbmwjJcNZH6C0OxcQY=",
    'type' => "mysql",
    'port' => "3306",
    'name' => "db_erp_cd01",
    'prep' => "1",
];
```

---

## 6. OPERACOES EXCLUSIVAS DO ERP

Estas operacoes **so existem no ERP**, nao tem equivalente no marketplace web:

| Operacao | Tela | Motivo |
|----------|------|--------|
| DRE / Demonstrativo | DREReport | Relatorio financeiro complexo |
| Conciliacao gateway | ReconciliationReport | Compara gateway vs ledger |
| Executar repasse PIX/TED | SettlementManagement | Transferencia real de dinheiro |
| Motor de regras CRUD | RulesManagement | Configuracao avancada |
| Gestao de CDs | WarehouseManagement | Configuracao infra |
| Reprocessar NF-e | FiscalDashboard | Corrigir rejeicoes SEFAZ |
| Config sistema | SystemSettings | Chave-valor global |
| Auditoria completa | AuditLogViewer | Seguranca e compliance |
