feat: controle manual de revisao no Kanban de prioridades ao gerar relatorios
This commit is contained in:
@@ -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
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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();
|
||||
Reference in New Issue
Block a user