CREATE OR REPLACE TRIGGER GERA_PARAM_OPERADOR_BEFORE
BEFORE INSERT
ON OPERADOR FOR EACH ROW
DECLARE
   V_NRPARCNEGOCIO PARCNEGOCIO.NRPARCNEGOCIO%TYPE;
   V_NRPARCERIA PARCERIA.NRPARCERIA%TYPE;
   V_NRORG OPERADOR.NRORG%TYPE;
   V_CDOPERADOR PARCNEGOCIO.NRINSCRICAOPARC%TYPE;
   V_NMOPERADOR OPERADOR.NMOPERADOR%TYPE;
BEGIN
   NOVO_CODIGO_SC('PARCNEGOCIO', V_NRPARCNEGOCIO);
   NOVO_CODIGO_SC('PARCERIA', V_NRPARCERIA);

	V_NRORG := :NEW.NRORG;
	V_CDOPERADOR := :NEW.CDOPERADOR;
	V_NMOPERADOR := :NEW.NMOPERADOR;

	INSERT INTO PARCNEGOCIO ( NRPARCNEGOCIO, CDTIPOPARCPRINCIPAL, IDATIVO, DTINCLUSAO, CDTIPOINSCRICAO, IDPESSOAFISICA, IDINSTITUICAO, NRINSCRICAOPARC, NMPRINCIPALPARC, NMSECUNDARIPARC, NRORG) VALUES ( V_NRPARCNEGOCIO, 'OPERADOR', 'S', SYSDATE, 'CPF', 'S', 'N', V_CDOPERADOR, V_NMOPERADOR, V_NMOPERADOR, V_NRORG );

	INSERT INTO PARCERIA ( NRPARCERIA, NRPARCNEGOCIO, CDTIPOPARCEIRO, NRORG, IDATIVO, DTINCLUSAO) VALUES ( V_NRPARCERIA, V_NRPARCNEGOCIO, 'OPERADOR', V_NRORG, 'S', SYSDATE );

	:NEW.NRPARCNEGOCIO := V_NRPARCNEGOCIO;  
END;
/

-- VERSAO --
BEGIN ATUVEROBJ('GERA_PARAM_OPERADOR_BEFORE','6.28.028'); END;
/

CREATE OR REPLACE TRIGGER GERA_PARAM_OPERADOR_AFTER
AFTER INSERT
ON OPERADOR FOR EACH ROW
DECLARE
   V_CDOPERADOR OPERADOR.CDOPERADOR%TYPE;
   V_NRORG OPERADOR.NRORG%TYPE;
   V_NRORGTRAB OPERADOR.NRORGTRAB%TYPE;
   V_NRESTRUTTRAB OPERADOR.NRESTRUTTRAB%TYPE;
   V_NRORGANIZACAOOPER ORGANIZACAOOPER.NRORGANIZACAOOPER%TYPE;
   V_NRESTRUTURAOPER ESTRUTURAOPER.NRESTRUTURAOPER%TYPE;
BEGIN
	V_NRORG := :NEW.NRORG;
	V_CDOPERADOR := :NEW.CDOPERADOR;
	V_NRORGTRAB := :NEW.NRORGTRAB;
	V_NRESTRUTTRAB := :NEW.NRESTRUTTRAB;

	IF(V_NRORGTRAB IS NOT NULL) THEN
		NOVO_CODIGO_SC('ORGANIZACAOOPER', V_NRORGANIZACAOOPER);
		INSERT INTO ORGANIZACAOOPER ( NRORGANIZACAOOPER, NRORGREL, CDOPERADOR, DTINCLUSAO) VALUES(V_NRORGANIZACAOOPER, V_NRORGTRAB, V_CDOPERADOR, SYSDATE);
	END IF;

	IF (V_NRESTRUTTRAB IS NOT NULL) THEN
		NOVO_CODIGO_SC('ESTRUTURAOPER', V_NRESTRUTURAOPER);
		INSERT INTO ESTRUTURAOPER ( NRESTRUTURAOPER, NRORGANIZACAOOPER, NRESTRUTURAMREL, DTINCLUSAO) VALUES ( V_NRESTRUTURAOPER, V_NRORGANIZACAOOPER, V_NRESTRUTTRAB, SYSDATE);
	END IF;
END;
/