Spaces:
Running
Running
| -- FUNCTION: trans.release_stock_reservation(character varying, character varying, character varying, character varying, numeric, uuid, character varying) | |
| -- DROP FUNCTION IF EXISTS trans.release_stock_reservation(character varying, character varying, character varying, character varying, numeric, uuid, character varying); | |
| CREATE OR REPLACE FUNCTION trans.release_stock_reservation( | |
| p_merchant_id character varying, | |
| p_warehouse_id character varying, | |
| p_sku character varying, | |
| p_batch_no character varying, | |
| p_qty numeric, | |
| p_ref_id uuid, | |
| p_created_by character varying) | |
| RETURNS boolean | |
| LANGUAGE 'plpgsql' | |
| COST 100 | |
| VOLATILE PARALLEL UNSAFE | |
| AS $BODY$ | |
| BEGIN | |
| -- Update stock reservation | |
| UPDATE trans.scm_stock | |
| SET qty_reserved = GREATEST(qty_reserved - p_qty, 0), | |
| qty_available = qty_on_hand - GREATEST(qty_reserved - p_qty, 0), | |
| last_updated_at = NOW() | |
| WHERE merchant_id = p_merchant_id | |
| AND warehouse_id = p_warehouse_id | |
| AND sku = p_sku | |
| AND batch_no = p_batch_no; | |
| RETURN TRUE; | |
| END; | |
| $BODY$; | |
| ALTER FUNCTION trans.release_stock_reservation(character varying, character varying, character varying, character varying, numeric, uuid, character varying) | |
| OWNER TO trans_owner; | |