Duvida para criar uma função no Postgre SQL

Jovens, estou com um quebra cabeça que não consigo desenvolver, estou com um projeto de Banco de Dados e queria criar uma função pra fazer o seguinte:

Esquema BD:

CREATE TABLE Departamento (

codigo INT,
nome VARCHAR(25),
horario TIME,
meta DOUBLE PRECISION,
cnpjLoja VARCHAR(25),
codigoGerente INT,

);

CREATE TABLE Funcionario (

codigo INT, 
nome VARCHAR(50),
cpf VARCHAR(12) NOT NULL,
cargo VARCHAR(25),
salario DOUBLE PRECISION,
rua VARCHAR(30),
bairro VARCHAR(30),
cidade VARCHAR(30),
uf VARCHAR(2),
codigoDepartamento INT,

No departamento apenas o de vendas é que possui uma meta a ser batida mensalmente, gostaria de fazer uma função para que todo começo de mês fosse verificado se algum funcionario bateu essa meta, caso aconteça a meta do departamento aumentaria uma porcentagem e o funcionario ganharia uma gratificação por essa meta batida, caso a meta não seja atingida continuaria da mesma maneira, acredito que terei que fazer uma função e um gatilho.

Utilizo o Postgre SQL,

Alguém que possa me ajudar? Abraço