- All SKILL.md files now <500 lines (avg reduction 69%) - Detailed content extracted to references/ subdirectories - Frontmatter standardised: only name + description (Anthropic standard) - New skills: brand-guidelines, spec-coauthor, report-templates, skill-creator - Design skills: anti-slop guidelines, premium-proposals reference - Removed non-standard frontmatter fields (triggers, version, author, category) Plugins affected: infraestrutura, marketing, dev-tools, crm-ops, gestao, core-tools, negocio, perfex-dev, wordpress, design-media Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
76 lines
2.8 KiB
Markdown
76 lines
2.8 KiB
Markdown
# /expense - Processamento de Despesas de Tickets
|
|
|
|
## Regras
|
|
|
|
1. Processar tickets UM A UM com confirmacao do utilizador (ou em lote se solicitado)
|
|
2. Verificar SEMPRE se despesa ja foi lancada (prevenir duplicados)
|
|
3. NAO adicionar respostas aos tickets - apenas criar despesa e anexos
|
|
4. Manter valor original na moeda do documento (EUR=3, USD=2)
|
|
5. Saltar tickets que sao apenas recibos de pagamento (nao sao facturas)
|
|
|
|
---
|
|
|
|
## Protocolo Ticket a Ticket
|
|
|
|
```
|
|
1. Obter ticket: get_ticket(ticket_id)
|
|
2. Verificar anexos: SELECT * FROM tblticket_attachments WHERE ticketid = X
|
|
3. SE nao tem PDFs: SALTAR ticket (apenas notificacao)
|
|
4. VERIFICAR DUPLICADOS (OBRIGATORIO):
|
|
SELECT id, amount, date, note FROM tblexpenses
|
|
WHERE reference_no LIKE '%{receipt_number}%' OR note LIKE '%ticket #{ticket_id}%'
|
|
SE encontrar: PARAR e informar "Despesa ja existe: #ID"
|
|
5. Extrair dados:
|
|
- Do HTML do ticket (valor, data, referencia)
|
|
- OU usar script Python: python3 /home/ealmeida/scripts/extract_invoice_data.py {pdf_path}
|
|
6. APRESENTAR resumo ao utilizador e AGUARDAR confirmacao
|
|
7. Apos confirmacao:
|
|
a. SQL: INSERT INTO tblexpenses (..., send_invoice_to_customer, ...) VALUES (..., 0, ...)
|
|
OU create_expense via MCP (se disponivel)
|
|
b. UPDATE tblexpenses SET expense_name = '{Fornecedor}' WHERE id = {id}
|
|
c. mcp__ssh-unified__ssh_execute: mkdir -p uploads/expenses/{expenseid}
|
|
d. mcp__ssh-unified__sftp_upload: PDF para uploads/expenses/{expenseid}/
|
|
e. mcp__ssh-unified__ssh_execute: chown -R ealmeida:ealmeida uploads/expenses/{expenseid}
|
|
f. SQL: INSERT INTO tblfiles (rel_id, rel_type, file_name, filetype,
|
|
visible_to_customer, staffid, contact_id, dateadded)
|
|
VALUES ({id}, 'expense', '{file}', 'application/pdf', 0, 1, 0, NOW())
|
|
g. Mover PDF para arquivo mensal: Contabilidade/YYYY/NN-NomeMes/
|
|
8. Confirmar ao utilizador e passar ao proximo
|
|
```
|
|
|
|
---
|
|
|
|
## Processamento em Lote
|
|
|
|
Se utilizador pedir "criar todas" ou "processar em lote":
|
|
1. Obter todos os tickets pendentes em paralelo
|
|
2. Identificar duplicados e tickets a saltar
|
|
3. Criar despesas em paralelo via `create_expense`
|
|
4. Actualizar `expense_name` e `reference_no` em batch via SQL
|
|
5. Copiar PDFs em batch
|
|
6. Registar ficheiros em batch via SQL INSERT multiplo
|
|
|
|
---
|
|
|
|
## Tickets a Saltar
|
|
|
|
| Tipo | Descricao | Accao |
|
|
|------|-----------|-------|
|
|
| Payment Receipt | Recibo de pagamento (nao e fatura) | SALTAR |
|
|
| Duplicado | Mesmo numero fatura ja processado | SALTAR |
|
|
| Sem anexo PDF | Apenas notificacao por email | SALTAR |
|
|
|
|
Exemplos:
|
|
- "Invoice Payment Confirmation" (e recibo, nao fatura)
|
|
- Ticket com mesmo invoice_number de outro ja processado
|
|
|
|
---
|
|
|
|
## Credenciais Base de Dados
|
|
|
|
Localizacao: `/home/ealmeida/desk.descomplicar.pt/application/config/app-config.php`
|
|
|
|
```bash
|
|
grep -E "APP_DB" /home/ealmeida/desk.descomplicar.pt/application/config/app-config.php
|
|
```
|