diff --git a/src/server/controllers/stockController.ts b/src/server/controllers/stockController.ts index ff86d77..fadbed2 100644 --- a/src/server/controllers/stockController.ts +++ b/src/server/controllers/stockController.ts @@ -74,4 +74,52 @@ export const deleteStockItem = async (req: AuthRequest, res: Response) => { } catch (error: unknown) { res.status(204).send(); } -}; \ No newline at end of file +}; +export const adjustStock = async (req: AuthRequest, res: Response) => { + try { + const { id } = req.params; + const { data, error } = await supabase.from('stock_items').update(req.body).eq('id', id).select().single(); + if (error) throw error; + res.json(toCamelCase(data)); + } catch (error: unknown) { + res.status(500).json({ error: error instanceof Error ? error.message : 'Unknown error' }); + } +}; + +export const consumeStock = async (req: AuthRequest, res: Response) => { + try { + const { id } = req.params; + const { quantity } = req.body; + const { data: item, error: fetchError } = await supabase.from('stock_items').select('quantity').eq('id', id).single(); + if (fetchError) throw fetchError; + + const newQuantity = (item.quantity || 0) - (quantity || 0); + const { data, error } = await supabase.from('stock_items').update({ quantity: newQuantity }).eq('id', id).select().single(); + if (error) throw error; + + res.json(toCamelCase(data)); + } catch (error: unknown) { + res.status(500).json({ error: error instanceof Error ? error.message : 'Unknown error' }); + } +}; + +export const updateStockMovement = async (req: AuthRequest, res: Response) => { + try { + const { id } = req.params; + const { data, error } = await supabase.from('stock_movements').update(req.body).eq('id', id).select().single(); + if (error) throw error; + res.json(toCamelCase(data)); + } catch (error: unknown) { + res.status(500).json({ error: error instanceof Error ? error.message : 'Unknown error' }); + } +}; + +export const deleteStockMovement = async (req: AuthRequest, res: Response) => { + try { + const { id } = req.params; + await supabase.from('stock_movements').delete().eq('id', id); + res.status(204).send(); + } catch (error: unknown) { + res.status(500).json({ error: error instanceof Error ? error.message : 'Unknown error' }); + } +};