Annotation: transactions.get_value_date

CREATE OR REPLACE FUNCTION transactions.get_value_date(_office_id integer)
RETURNS date

Information: transactions.get_value_date

Schema transactions
Function Name get_value_date
Arguments _office_id integer
Owner postgres
Result Type date
Description

Implementation: transactions.get_value_date

CREATE OR REPLACE FUNCTION transactions.get_value_date(_office_id integer)
 RETURNS date
 LANGUAGE plpgsql
AS $function$
    DECLARE this            RECORD;
    DECLARE _value_date     date=NOW();
BEGIN
    SELECT * FROM transactions.day_operation
    WHERE office_id = _office_id
    AND value_date =
    (
        SELECT MAX(value_date)
        FROM transactions.day_operation
        WHERE office_id = _office_id
    ) INTO this;

    IF(this.day_id IS NOT NULL) THEN
        IF(this.completed) THEN
            _value_date  := this.value_date + interval '1' day;
        ELSE
            _value_date  := this.value_date;    
        END IF;
    END IF;
    
    RETURN _value_date;
END
$function$