Sou novato aqui precisando urtentissimo de uma ajuda,
Tenho que gerar uma tabela de apontamentos partindo de uma tabela de lancamentos da folha ( eventos ) onde
cada funcionario devera aparecer apenas uma vez, para isso tenho como chave o códiog da empresa, funcionario e competencia, mas ao executar não grava nada e nem da alguma mensagem.
alguém poderia me ajudar ? não sei onde estou errando .
Pergunta
Adalberto Moraes
olá ,
Sou novato aqui precisando urtentissimo de uma ajuda,
Tenho que gerar uma tabela de apontamentos partindo de uma tabela de lancamentos da folha ( eventos ) onde
cada funcionario devera aparecer apenas uma vez, para isso tenho como chave o códiog da empresa, funcionario e competencia, mas ao executar não grava nada e nem da alguma mensagem.
alguém poderia me ajudar ? não sei onde estou errando .
Segue o código:
--================================================================
-- DELETANDO DELETANDO A TABELA--================================================================
DROP TABLE APONTAMENTOSFOLHA;
-----------------------------------------------------------------
--CRIANDO TABELA COM A CHAVE
--================================================================
CREATE TABLE apontamentosfolha (
ID_FUNC Serial NOT NULL,
EMPRESA varchar(06),
FUNCIONARIO varchar(06),
COMPETENCIA varchar(06),
COMISSOES INTEGER,
HORASEXTRAS INTEGER,
FALTASEMHORAS INTEGER,
FALTASEMDIAS INTEGER,
ADICIONALNOTURNO INTEGER,
AVISOPREVIO INTEGER,
CONTRASSISTENCIAL INTEGER,
CONTRCONFEDERATIVA INTEGER,
IRFERIASIMPOSTORETIDO INTEGER,
IRFERIASINSS INTEGER);
ALTER TABLE apontamentosfolha ADD CONSTRAINT pk_func PRIMARY KEY (EMPRESA,FUNCIONARIO,COMPETENCIA);
CREATE UNIQUE INDEX uniq_func ON apontamentosfolha USING btree (EMPRESA,FUNCIONARIO,COMPETENCIA);
--===============================================================================
-- Incluir na tabela apontamentosfolha que foi criada, as informações da tabela
-- lancamentosfolha apenas com os campos empresa, competencia, e funcionarios sem
-- repetição e as demais informações devem estar zeradas.
--===============================================================================
CREATE OR REPLACE FUNCTION set_apontamentosfolha( _empresa VARCHAR, _funcionario VARCHAR, _competencia VARCHAR )
RETURNS INTEGER AS
$$
DECLARE iId_func INTEGER;
BEGIN
BEGIN
INSERT INTO APONTAMENTOSFOLHA
(EMPRESA, FUNCIONARIO, COMPETENCIA, COMISSOES, HORASEXTRAS, FALTASEMHORAS, FALTASEMDIAS, ADICIONALNOTURNO,
AVISOPREVIO, CONTRASSISTENCIAL, CONTRCONFEDERATIVA, IRFERIASIMPOSTORETIDO, IRFERIASINSS )
VALUES (lancamentosfolha.empresa, lancamentosfolha.funcionario, lancamentosfolha.competencia, '0', '0', '0', '0',
'0', '0', '0', '0', '0', '0' )
RETURNING id_func INTO iId_func;
EXCEPTION WHEN UNIQUE_VIOLATION THEN
UPDATE apontamentosfolha SET apontamentosfolha.comissoes = lancamentosfolha.valorcalculado
WHERE apontamentosfolha.empresa = '000257' AND
apontamentosfolha.competencia = '122010'
RETURNING id_func INTO iIdfunc;
END;
RETURN iId_func;
END;
$$
LANGUAGE 'plpgsql' VOLATILE;
==================================================================================
-- LISTANDO PARA CONFERENCIA
==========================--
select * from apontamentosfolha
WHERE EMPRESA = '000257' AND
competencia = '122010';
--============================================================================================================--
select * from lancamentosfolha
WHERE EMPRESA = '000257' AND
competencia = '122010';
--============================================================================================================--
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.