Copyright, Financeiro, Lançamentos, aprimoramentos de ui
This commit is contained in:
+16
-1
@@ -1,4 +1,19 @@
|
||||
// src/utils/dateBR.js
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Agência PSI
|
||||
|--------------------------------------------------------------------------
|
||||
| Criado e desenvolvido por Leonardo Nohama
|
||||
|
|
||||
| Tecnologia aplicada à escuta.
|
||||
| Estrutura para o cuidado.
|
||||
|
|
||||
| Arquivo: src/utils/dateBR.js
|
||||
| Data: 2026
|
||||
| Local: São Carlos/SP — Brasil
|
||||
|--------------------------------------------------------------------------
|
||||
| © 2026 — Todos os direitos reservados
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
export function pad2(n) {
|
||||
return String(n).padStart(2, '0')
|
||||
|
||||
+16
-1
@@ -1,4 +1,19 @@
|
||||
// src/utils/feriadosBR.js
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Agência PSI
|
||||
|--------------------------------------------------------------------------
|
||||
| Criado e desenvolvido por Leonardo Nohama
|
||||
|
|
||||
| Tecnologia aplicada à escuta.
|
||||
| Estrutura para o cuidado.
|
||||
|
|
||||
| Arquivo: src/utils/feriadosBR.js
|
||||
| Data: 2026
|
||||
| Local: São Carlos/SP — Brasil
|
||||
|--------------------------------------------------------------------------
|
||||
| © 2026 — Todos os direitos reservados
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
// Gera feriados nacionais brasileiros por algoritmo — sem API externa.
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,4 +1,19 @@
|
||||
// src/utils/googleCalendarLink.js
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Agência PSI
|
||||
|--------------------------------------------------------------------------
|
||||
| Criado e desenvolvido por Leonardo Nohama
|
||||
|
|
||||
| Tecnologia aplicada à escuta.
|
||||
| Estrutura para o cuidado.
|
||||
|
|
||||
| Arquivo: src/utils/googleCalendarLink.js
|
||||
| Data: 2026
|
||||
| Local: São Carlos/SP — Brasil
|
||||
|--------------------------------------------------------------------------
|
||||
| © 2026 — Todos os direitos reservados
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
// Gera uma URL de "Adicionar ao Google Calendar" via link template.
|
||||
// Não requer OAuth — abre o Google Calendar do usuário com o evento pré-preenchido.
|
||||
|
||||
|
||||
@@ -1,4 +1,19 @@
|
||||
// src/utils/menuPageOptions.js
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Agência PSI
|
||||
|--------------------------------------------------------------------------
|
||||
| Criado e desenvolvido por Leonardo Nohama
|
||||
|
|
||||
| Tecnologia aplicada à escuta.
|
||||
| Estrutura para o cuidado.
|
||||
|
|
||||
| Arquivo: src/utils/menuPageOptions.js
|
||||
| Data: 2026
|
||||
| Local: São Carlos/SP — Brasil
|
||||
|--------------------------------------------------------------------------
|
||||
| © 2026 — Todos os direitos reservados
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
// Catálogo plano de páginas do sistema para o select de documentação SaaS.
|
||||
// Menus com `to` em string são extraídos automaticamente.
|
||||
// O menu da Clínica usa route names, então suas páginas são listadas manualmente.
|
||||
|
||||
@@ -1,4 +1,19 @@
|
||||
// src/utils/slotsGenerator.js
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Agência PSI
|
||||
|--------------------------------------------------------------------------
|
||||
| Criado e desenvolvido por Leonardo Nohama
|
||||
|
|
||||
| Tecnologia aplicada à escuta.
|
||||
| Estrutura para o cuidado.
|
||||
|
|
||||
| Arquivo: src/utils/slotsGenerator.js
|
||||
| Data: 2026
|
||||
| Local: São Carlos/SP — Brasil
|
||||
|--------------------------------------------------------------------------
|
||||
| © 2026 — Todos os direitos reservados
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
function toMinutes(hhmm) {
|
||||
const [h, m] = String(hhmm).slice(0, 5).split(':').map(Number)
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Agência PSI
|
||||
|--------------------------------------------------------------------------
|
||||
| Criado e desenvolvido por Leonardo Nohama
|
||||
|
|
||||
| Tecnologia aplicada à escuta.
|
||||
| Estrutura para o cuidado.
|
||||
|
|
||||
| Arquivo: src/utils/systemGroupColors.js
|
||||
| Data: 2026
|
||||
| Local: São Carlos/SP — Brasil
|
||||
|--------------------------------------------------------------------------
|
||||
| © 2026 — Todos os direitos reservados
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Armazena cores personalizadas de grupos de sistema no localStorage.
|
||||
| A RLS do Supabase impede UPDATE em is_system=true, portanto as
|
||||
| preferências de cor ficam no cliente, por usuário/dispositivo.
|
||||
|
|
||||
| Chave: 'apsi_sys_grp_colors' → { [groupId]: '#hex' }
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
const STORAGE_KEY = 'apsi_sys_grp_colors'
|
||||
|
||||
/** Cores padrão por nome de grupo de sistema (fallback quando não há cor salva) */
|
||||
export const SYSTEM_GROUP_DEFAULT_COLORS = {
|
||||
'adultos': '#3b82f6',
|
||||
'crianças': '#22c55e',
|
||||
'adolescentes': '#8b5cf6',
|
||||
'casais': '#ec4899',
|
||||
'família': '#f97316',
|
||||
'familias': '#f97316',
|
||||
'famílias': '#f97316',
|
||||
'grupos': '#14b8a6',
|
||||
'idosos': '#64748b',
|
||||
'infantil': '#22c55e',
|
||||
'outro': '#94a3b8',
|
||||
'outros': '#94a3b8',
|
||||
'geral': '#6366f1',
|
||||
'supervisão': '#eab308',
|
||||
'supervisao': '#eab308',
|
||||
}
|
||||
|
||||
/** Retorna a cor padrão (sem '#' extra) para um grupo de sistema pelo nome */
|
||||
export function getSystemGroupDefaultColor (name) {
|
||||
return SYSTEM_GROUP_DEFAULT_COLORS[String(name || '').trim().toLowerCase()] || '#6366f1'
|
||||
}
|
||||
|
||||
function readMap () {
|
||||
try { return JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}') } catch { return {} }
|
||||
}
|
||||
|
||||
export function getSysGroupColor (groupId) {
|
||||
if (!groupId) return null
|
||||
return readMap()[groupId] || null
|
||||
}
|
||||
|
||||
export function setSysGroupColor (groupId, color) {
|
||||
if (!groupId) return
|
||||
const map = readMap()
|
||||
if (color) map[groupId] = color.startsWith('#') ? color : `#${color}`
|
||||
else delete map[groupId]
|
||||
localStorage.setItem(STORAGE_KEY, JSON.stringify(map))
|
||||
}
|
||||
|
||||
export function getAllSysGroupColors () {
|
||||
return readMap()
|
||||
}
|
||||
@@ -1,4 +1,19 @@
|
||||
// src/utils/upgradeContext.js
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Agência PSI
|
||||
|--------------------------------------------------------------------------
|
||||
| Criado e desenvolvido por Leonardo Nohama
|
||||
|
|
||||
| Tecnologia aplicada à escuta.
|
||||
| Estrutura para o cuidado.
|
||||
|
|
||||
| Arquivo: src/utils/upgradeContext.js
|
||||
| Data: 2026
|
||||
| Local: São Carlos/SP — Brasil
|
||||
|--------------------------------------------------------------------------
|
||||
| © 2026 — Todos os direitos reservados
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/**
|
||||
* Parse "missing" query param into array of unique feature keys.
|
||||
|
||||
Reference in New Issue
Block a user