🚀 Initial commit: Versão atual do TrackSteel APP
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
|
||||
import { useMutation, useQueryClient } from '@tanstack/react-query';
|
||||
import { supabase } from '@/integrations/supabase/client';
|
||||
import { toast } from 'sonner';
|
||||
|
||||
export const useEditarItemPeca = () => {
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
return useMutation({
|
||||
mutationFn: async ({ itemId, novaQuantidade, pesoUnitario }: {
|
||||
itemId: string;
|
||||
novaQuantidade: number;
|
||||
pesoUnitario: number;
|
||||
}) => {
|
||||
if (!itemId || typeof novaQuantidade !== 'number' || typeof pesoUnitario !== 'number') {
|
||||
throw new Error('Parâmetros inválidos para edição do item');
|
||||
}
|
||||
|
||||
if (novaQuantidade < 0 || pesoUnitario < 0) {
|
||||
throw new Error('Quantidade e peso devem ser valores positivos');
|
||||
}
|
||||
|
||||
const { error } = await supabase
|
||||
.from('itens_romaneio_pecas')
|
||||
.update({
|
||||
quantidade_expedida: novaQuantidade,
|
||||
peso_total: novaQuantidade * pesoUnitario
|
||||
})
|
||||
.eq('id', itemId);
|
||||
|
||||
if (error) throw error;
|
||||
},
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ['romaneios'] });
|
||||
queryClient.invalidateQueries({ queryKey: ['pecas-pintura'] });
|
||||
toast.success('Quantidade atualizada com sucesso!');
|
||||
},
|
||||
onError: (error) => {
|
||||
console.error('Erro ao editar quantidade:', error);
|
||||
toast.error('Erro ao editar quantidade: ' + (error instanceof Error ? error.message : 'Erro desconhecido'));
|
||||
},
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user