Annotation: core.get_shipper_code

CREATE OR REPLACE FUNCTION core.get_shipper_code(text)
RETURNS text

Information: core.get_shipper_code

Schema core
Function Name get_shipper_code
Arguments text
Owner postgres
Result Type text
Description

Implementation: core.get_shipper_code

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$