Merge remote-tracking branch 'origin' into feat-many-fixes
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -19,13 +19,12 @@
|
||||
|
||||
let funcionarioId = $derived($page.params.funcionarioId as string);
|
||||
|
||||
let funcionario = $state<any>(null);
|
||||
let simbolo = $state<any>(null);
|
||||
let cursos = $state<any[]>([]);
|
||||
let documentosUrls = $state<Record<string, string | null>>({});
|
||||
let loading = $state(true);
|
||||
let showPrintModal = $state(false);
|
||||
let showPrintFinanceiro = $state(false);
|
||||
let funcionario = $state<any>(null);
|
||||
let simbolo = $state<any>(null);
|
||||
let cursos = $state<any[]>([]);
|
||||
let documentosUrls = $state<Record<string, string | null>>({});
|
||||
let loading = $state(true);
|
||||
let showPrintModal = $state(false);
|
||||
|
||||
async function load() {
|
||||
try {
|
||||
@@ -39,9 +38,12 @@
|
||||
return;
|
||||
}
|
||||
|
||||
funcionario = data;
|
||||
simbolo = data.simbolo;
|
||||
cursos = data.cursos || [];
|
||||
funcionario = data;
|
||||
simbolo = data.simbolo;
|
||||
if (simbolo) {
|
||||
funcionario = { ...funcionario, simbolo };
|
||||
}
|
||||
cursos = data.cursos || [];
|
||||
|
||||
// Carregar URLs dos documentos
|
||||
try {
|
||||
@@ -130,84 +132,74 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-wrap gap-2">
|
||||
<button
|
||||
class="btn btn-primary gap-2"
|
||||
onclick={() => goto(`/recursos-humanos/funcionarios/${funcionarioId}/editar`)}
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="h-5 w-5"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke="currentColor"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
|
||||
/>
|
||||
</svg>
|
||||
Editar
|
||||
</button>
|
||||
<button
|
||||
class="btn btn-secondary gap-2"
|
||||
onclick={() => goto(`/recursos-humanos/funcionarios/${funcionarioId}/documentos`)}
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="h-5 w-5"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke="currentColor"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M7 21h10a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v14a2 2 0 002 2z"
|
||||
/>
|
||||
</svg>
|
||||
Ver Documentos
|
||||
</button>
|
||||
<button class="btn btn-accent gap-2" onclick={() => (showPrintModal = true)}>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="h-5 w-5"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke="currentColor"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M17 17h2a2 2 0 002-2v-4a2 2 0 00-2-2H5a2 2 0 00-2 2v4a2 2 0 002 2h2m2 4h6a2 2 0 002-2v-4a2 2 0 00-2-2H9a2 2 0 00-2 2v4a2 2 0 002 2zm8-12V5a2 2 0 00-2-2H9a2 2 0 00-2 2v4h10z"
|
||||
/>
|
||||
</svg>
|
||||
Imprimir Ficha
|
||||
</button>
|
||||
<button class="btn btn-info gap-2" onclick={() => (showPrintFinanceiro = true)}>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="h-5 w-5"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke="currentColor"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
|
||||
/>
|
||||
</svg>
|
||||
Imprimir Dados Financeiros
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex flex-wrap gap-2">
|
||||
<button
|
||||
class="btn btn-primary gap-2"
|
||||
onclick={() =>
|
||||
goto(`/recursos-humanos/funcionarios/${funcionarioId}/editar`)}
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="h-5 w-5"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke="currentColor"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
|
||||
/>
|
||||
</svg>
|
||||
Editar
|
||||
</button>
|
||||
<button
|
||||
class="btn btn-secondary gap-2"
|
||||
onclick={() =>
|
||||
goto(
|
||||
`/recursos-humanos/funcionarios/${funcionarioId}/documentos`,
|
||||
)}
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="h-5 w-5"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke="currentColor"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M7 21h10a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v14a2 2 0 002 2z"
|
||||
/>
|
||||
</svg>
|
||||
Ver Documentos
|
||||
</button>
|
||||
<button
|
||||
class="btn btn-accent gap-2"
|
||||
onclick={() => (showPrintModal = true)}
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="h-5 w-5"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke="currentColor"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M17 17h2a2 2 0 002-2v-4a2 2 0 00-2-2H5a2 2 0 00-2 2v4a2 2 0 002 2h2m2 4h6a2 2 0 002-2v-4a2 2 0 00-2-2H9a2 2 0 00-2 2v4a2 2 0 002 2zm8-12V5a2 2 0 00-2-2H9a2 2 0 00-2 2v4h10z"
|
||||
/>
|
||||
</svg>
|
||||
Imprimir Ficha
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Dados Financeiros - Destaque -->
|
||||
{#if simbolo}
|
||||
@@ -856,126 +848,5 @@
|
||||
<PrintModal {funcionario} onClose={() => (showPrintModal = false)} />
|
||||
{/if}
|
||||
|
||||
<!-- Modal de Impressão Dados Financeiros -->
|
||||
{#if showPrintFinanceiro && simbolo}
|
||||
<dialog class="modal modal-open">
|
||||
<div class="modal-box max-w-2xl">
|
||||
<h3 class="mb-6 border-b pb-3 text-2xl font-bold">
|
||||
Dados Financeiros - {funcionario.nome}
|
||||
</h3>
|
||||
|
||||
<div class="space-y-4 print:space-y-2" id="dados-financeiros-print">
|
||||
<!-- Informações Básicas -->
|
||||
<div class="grid grid-cols-2 gap-4">
|
||||
<div>
|
||||
<p class="text-base-content/70 text-sm font-semibold">Nome</p>
|
||||
<p class="text-lg">{funcionario.nome}</p>
|
||||
</div>
|
||||
<div>
|
||||
<p class="text-base-content/70 text-sm font-semibold">Matrícula</p>
|
||||
<p class="text-lg">{funcionario.matricula || 'N/A'}</p>
|
||||
</div>
|
||||
<div>
|
||||
<p class="text-base-content/70 text-sm font-semibold">CPF</p>
|
||||
<p class="text-lg">{maskCPF(funcionario.cpf)}</p>
|
||||
</div>
|
||||
<div>
|
||||
<p class="text-base-content/70 text-sm font-semibold">Data Admissão</p>
|
||||
<p class="text-lg">{funcionario.admissaoData || 'N/A'}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="divider"></div>
|
||||
|
||||
<!-- Dados Financeiros -->
|
||||
<div>
|
||||
<h4 class="mb-3 text-lg font-bold">Remuneração</h4>
|
||||
<div class="space-y-2">
|
||||
<div class="bg-base-200 flex justify-between rounded p-2">
|
||||
<span class="font-semibold">Símbolo:</span>
|
||||
<span>{simbolo.nome}</span>
|
||||
</div>
|
||||
<div class="bg-base-200 flex justify-between rounded p-2">
|
||||
<span class="font-semibold">Tipo:</span>
|
||||
<span
|
||||
>{simbolo.tipo === 'cargo_comissionado'
|
||||
? 'Cargo Comissionado'
|
||||
: 'Função Gratificada'}</span
|
||||
>
|
||||
</div>
|
||||
{#if funcionario.simboloTipo === 'cargo_comissionado'}
|
||||
<div class="bg-info/10 flex justify-between rounded p-2">
|
||||
<span class="font-semibold">Vencimento:</span>
|
||||
<span class="text-info font-bold">R$ {simbolo.vencValor}</span>
|
||||
</div>
|
||||
<div class="bg-warning/10 flex justify-between rounded p-2">
|
||||
<span class="font-semibold">Representação:</span>
|
||||
<span class="text-warning font-bold">R$ {simbolo.repValor}</span>
|
||||
</div>
|
||||
{/if}
|
||||
<div
|
||||
class="bg-success/20 border-success/40 flex justify-between rounded border-2 p-3"
|
||||
>
|
||||
<span class="text-lg font-bold">TOTAL:</span>
|
||||
<span class="text-success text-2xl font-bold">R$ {simbolo.valor}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{#if funcionario.contaBradescoNumero}
|
||||
<div class="divider"></div>
|
||||
<div>
|
||||
<h4 class="mb-3 text-lg font-bold">Dados Bancários</h4>
|
||||
<div class="space-y-2">
|
||||
<div class="bg-base-200 flex justify-between rounded p-2">
|
||||
<span class="font-semibold">Banco:</span>
|
||||
<span>Bradesco</span>
|
||||
</div>
|
||||
<div class="bg-base-200 flex justify-between rounded p-2">
|
||||
<span class="font-semibold">Agência:</span>
|
||||
<span>{funcionario.contaBradescoAgencia || 'N/A'}</span>
|
||||
</div>
|
||||
<div class="bg-base-200 flex justify-between rounded p-2">
|
||||
<span class="font-semibold">Conta:</span>
|
||||
<span
|
||||
>{funcionario.contaBradescoNumero}{funcionario.contaBradescoDV
|
||||
? `-${funcionario.contaBradescoDV}`
|
||||
: ''}</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<div class="modal-action">
|
||||
<button class="btn btn-primary gap-2" onclick={() => window.print()}>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="h-5 w-5"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke="currentColor"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M17 17h2a2 2 0 002-2v-4a2 2 0 00-2-2H5a2 2 0 00-2 2v4a2 2 0 002 2h2m2 4h6a2 2 0 002-2v-4a2 2 0 00-2-2H9a2 2 0 00-2 2v4a2 2 0 002 2zm8-12V5a2 2 0 00-2-2H9a2 2 0 00-2 2v4h10z"
|
||||
/>
|
||||
</svg>
|
||||
Imprimir
|
||||
</button>
|
||||
<button class="btn" onclick={() => (showPrintFinanceiro = false)}>Fechar</button>
|
||||
</div>
|
||||
</div>
|
||||
<form method="dialog" class="modal-backdrop">
|
||||
<button
|
||||
type="button"
|
||||
onclick={() => (showPrintFinanceiro = false)}
|
||||
aria-label="Fechar modal">Fechar</button
|
||||
>
|
||||
</form>
|
||||
</dialog>
|
||||
{/if}
|
||||
<!-- Modal de Impressão Dados Financeiros removido -->
|
||||
{/if}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user