feat: controle manual de revisao no Kanban de prioridades ao gerar relatorios

This commit is contained in:
2026-09-02 15:03:08 +00:00
parent b201e67291
commit 9fb29d55a8
3 changed files with 61 additions and 4 deletions
@@ -92,12 +92,49 @@ export const useItensPrioridadeFabricacaoFiltrado = () => {
setFaseSelecionada(novaFase);
};
const incrementarRevisao = async () => {
if (!ofSelecionada || !faseSelecionada) return false;
try {
const novaRevisao = (versaoAtual?.revisao || 0) + 1;
const dataModificacao = new Date().toISOString();
const { error } = await supabase
.from('prioridades_fabricacao')
.update({
revisao: novaRevisao,
data_ultima_modificacao: dataModificacao
})
.eq('of_number', ofSelecionada)
.eq('etapa_fase', faseSelecionada);
if (error) {
console.error('Erro ao incrementar revisão no DB:', error);
toast.error('Erro ao registrar nova revisão.');
return false;
}
setVersaoAtual(prev => ({
...prev!,
revisao: novaRevisao,
dataModificacao: dataModificacao
}));
toast.success(`Revisão atualizada para ${novaRevisao}`);
return true;
} catch (error) {
console.error('Erro ao incrementar revisão:', error);
return false;
}
};
return {
...hookOriginal,
itensPorPrioridade: itensFiltrados,
ofSelecionada,
faseSelecionada,
versaoAtual,
onFiltroChange: handleFiltroChange
onFiltroChange: handleFiltroChange,
incrementarRevisao
};
};
+17 -3
View File
@@ -24,7 +24,8 @@ const PrioridadesFabricacao = () => {
ofSelecionada,
faseSelecionada,
versaoAtual,
onFiltroChange
onFiltroChange,
incrementarRevisao
} = useItensPrioridadeFabricacaoFiltrado();
const [showPecaSelector, setShowPecaSelector] = useState(false);
@@ -90,6 +91,14 @@ const PrioridadesFabricacao = () => {
return;
}
let revisaoParaImprimir = versaoAtual?.revisao || 0;
if (window.confirm(`Deseja gerar uma nova revisão (Rev. ${(versaoAtual?.revisao || 0) + 1}) para esta impressão?`)) {
const sucesso = await incrementarRevisao();
if (sucesso) {
revisaoParaImprimir += 1;
}
}
try {
// Criar nova janela para impressão
const printWindow = window.open('', '_blank');
@@ -238,7 +247,7 @@ const PrioridadesFabricacao = () => {
</div>
<div class="text-right">
<p class="font-semibold text-sm">Data de Emissão: <span class="font-normal">${dataAtual}</span>
${versaoAtual ? `<span class="ml-2 text-gray-500 font-medium">Rev. ${versaoAtual.revisao}</span>` : ''}
<span class="ml-2 text-gray-500 font-medium">Rev. ${revisaoParaImprimir}</span>
</p>
</div>
</div>
@@ -390,7 +399,12 @@ const PrioridadesFabricacao = () => {
<Button
variant="outline"
size="sm"
onClick={() => setShowPrioridadesPDF(true)}
onClick={async () => {
if (window.confirm(`Deseja gerar uma nova revisão (Rev. ${(versaoAtual?.revisao || 0) + 1}) para este PDF?`)) {
await incrementarRevisao();
}
setShowPrioridadesPDF(true);
}}
disabled={!ofSelecionada || !faseSelecionada}
>
<FileText className="h-4 w-4 mr-2" />
@@ -0,0 +1,6 @@
-- Remover o gatilho que incrementava automaticamente a revisão do quadro de prioridades
DROP TRIGGER IF EXISTS trigger_increment_prioridade_fabricacao_revision ON "TS_ERP".itens_prioridade_fabricacao;
DROP TRIGGER IF EXISTS trigger_increment_prioridade_fabricacao_revision ON public.itens_prioridade_fabricacao;
-- Remover a função associada
DROP FUNCTION IF EXISTS public.increment_prioridade_fabricacao_revision();