aonestar
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
sp_close_cashsale_folio
Parameters
Name
Type
Mode
folio_id
integer
IN
user_name
text
IN (DEFAULT NULL)
Definition
DECLARE _sqlstate TEXT; _detail TEXT; _hint TEXT; _context TEXT; _msg_text TEXT; messages jsonb = $json${ "30121" : "Folio out of balance", "30106" : "Folio %s is already closed" }$json$; BEGIN CALL sp_check_endday_process(); CASE WHEN (SELECT status FROM folio WHERE id = $1) = 'C' THEN RETURN fn_result_error('30106', messages->>'30106', folio_id::text); WHEN EXISTS(SELECT * FROM folio_items fi WHERE fi.folio_id = $1 AND fi.balance <> 0) THEN RETURN fn_result_error('30121', messages->>'30121'); ELSE user_name = coalesce(user_name, fn_current_user()); UPDATE folio f SET status = 'C', close_date = fn_system_date(), close_time = current_timestamp, close_user = user_name WHERE f.id = $1; UPDATE folio_items fi SET closed = true, close_date = fn_system_date(), close_time = current_timestamp, close_user = user_name, close_shift = fn_current_shift() WHERE fi.folio_id = $1 AND NOT closed; RETURN fn_result_success(); END CASE; EXCEPTION WHEN OTHERS THEN GET STACKED DIAGNOSTICS _sqlstate = RETURNED_SQLSTATE, _msg_text = MESSAGE_TEXT, _detail = PG_EXCEPTION_DETAIL, _hint = PG_EXCEPTION_HINT, _context = PG_EXCEPTION_CONTEXT; RETURN fn_handle_error(_sqlstate, _msg_text, _detail, _hint, _context, format('sp_close_cashsale_folio(%s)', folio_id::text)); END;