diff --git a/src/hooks/useItensPrioridadeFabricacaoFiltrado.tsx b/src/hooks/useItensPrioridadeFabricacaoFiltrado.tsx index 51c1a36..f92dfe9 100644 --- a/src/hooks/useItensPrioridadeFabricacaoFiltrado.tsx +++ b/src/hooks/useItensPrioridadeFabricacaoFiltrado.tsx @@ -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 }; }; diff --git a/src/pages/PrioridadesFabricacao.tsx b/src/pages/PrioridadesFabricacao.tsx index 5a0ad5c..d62b053 100644 --- a/src/pages/PrioridadesFabricacao.tsx +++ b/src/pages/PrioridadesFabricacao.tsx @@ -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 = () => {

Data de Emissão: ${dataAtual} - ${versaoAtual ? `Rev. ${versaoAtual.revisao}` : ''} + Rev. ${revisaoParaImprimir}

@@ -390,7 +399,12 @@ const PrioridadesFabricacao = () => {