Annotation: transactions.verify_stock_master_integrity_trigger

CREATE OR REPLACE FUNCTION transactions.verify_stock_master_integrity_trigger()
RETURNS trigger

Information: transactions.verify_stock_master_integrity_trigger

Schema transactions
Function Name verify_stock_master_integrity_trigger
Arguments
Owner postgres
Result Type trigger
Description

Implementation: transactions.verify_stock_master_integrity_trigger

CREATE OR REPLACE FUNCTION transactions.verify_stock_master_integrity_trigger()
 RETURNS trigger
 LANGUAGE plpgsql
AS $function$
        DECLARE _office_id integer=0;
BEGIN
        SELECT office_id INTO _office_id
        FROM transactions.transaction_master
        WHERE transactions.transaction_master.transaction_master_id = NEW.transaction_master_id;
        
        IF(office.get_office_id_by_store_id(NEW.store_id) != _office_id) THEN
                RAISE EXCEPTION 'Invalid store.';
        END IF;

        IF(office.get_office_id_by_cash_repository_id(NEW.cash_repository_id)  != _office_id) THEN
                RAISE EXCEPTION 'Invalid cash repository.';
        END IF;
                
        RETURN NEW;
END
$function$