CREATE OR REPLACE FUNCTION core.get_shipper_code(text)
RETURNS text
LANGUAGE plpgsql
AS $function$
DECLARE __shipper_code TEXT;
BEGIN
SELECT INTO
__shipper_code
shipper_code
FROM
core.shippers
WHERE
shipper_code LIKE
UPPER(left($1, 3) || '%')
ORDER BY shipper_code desc
LIMIT 1;
__shipper_code :=
UPPER
(
left($1,3)
)
|| '-' ||
CASE
WHEN __shipper_code IS NULL
THEN '0001'
ELSE
to_char(CAST(right(__shipper_code, 4) AS integer)+1,'FM0000')
END;
RETURN __shipper_code;
END;
$function$