CREATE TABLE TBSERVIDOR (
    ID INTEGER,
    URL VARCHAR(300),
    DESCRICAO VARCHAR(50),
    STATUS INTEGER);

CREATE SEQUENCE GTBSERVIDOR;

SET TERM ^ ;

create trigger ttbservidor_b01i for tbservidor
active before insert position 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gtbservidor,1);
end
^

SET TERM ; ^

UPDATE OR INSERT INTO TBMENU (CONTROLE, GRUPO, SUBGRUPO, TIPO, URL, DESCRICAO, DATAHORA)
                      VALUES (11082, 'ADM', 'ADM', '1   ', '', 'PAINEIS DO POWER BI', '2022-01-14 13:35:29')
                    MATCHING (CONTROLE, GRUPO);
UPDATE OR INSERT INTO TBMENU (CONTROLE, GRUPO, SUBGRUPO, TIPO, URL, DESCRICAO, DATAHORA)
                      VALUES (11083, 'ADM', 'ADM', '1   ', '', 'CADASTRO DE SERVIDORES (URL)', '2022-01-14 13:34:10')
                    MATCHING (CONTROLE, GRUPO);
			
ALTER TABLE TBSERVIDOR
    ADD DATA_RELATORIOS TIMESTAMP;
	
CREATE TABLE TBRELATORIO_WEB_SERV (
    ID INTEGER,
    RELATORIO_ID INTEGER,
    CODIGO INTEGER,
    SERVIDOR_ID INTEGER);

CREATE SEQUENCE GTBRELATORIO_WEB_SERV;

SET TERM ^ ;

create trigger ttbrelatorio_web_serv_b01i for tbrelatorio_web_serv
active before insert position 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gtbrelatorio_web_serv,1);
end
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SP_DUPLICAR_RELATORIO_WEB (
    RELATORIO_ID integer)
returns (
    NEW_ID integer,
    NEW_CODIGO integer)
as
declare variable NEW_SQL_ID integer;
declare variable ID integer;
declare variable SQL blob sub_type 1 segment size 80;
declare variable STATUS integer;
declare variable DESCRICAO varchar(500);
begin
    NEW_ID = gen_id(GTBRELATORIO_WEB, 1);
    NEW_CODIGO = 28000 + NEW_ID;

    insert into TBRELATORIO_WEB (
        ID,
        NOME,
        DESCRICAO,
        TIPO,
        TEMPLATE_ID,
        STATUS,
        MENU_GRUPO,
        ZEBRADO,
        TOTALIZADOR,
        PAISAGEM,
        VERSAO,
        FONTE_WEB,
        FONTE_EXP,
        ACORDEON,
        FILTRO,
        JS,
        LARGURA,
        COMPRIMENTO,
        EXECUTAR_COMANDOS,
        CODIGO,
        MOSTRAR_GRAFICO,
        MOSTRAR_TABELA,
        UPDATE_TEG,
        JS3,
        CABECALHO_CSV
    ) select
        :NEW_ID as ID,
        NOME,
        DESCRICAO,
        TIPO,
        TEMPLATE_ID,
        STATUS,
        MENU_GRUPO,
        ZEBRADO,
        TOTALIZADOR,
        PAISAGEM,
        VERSAO,
        FONTE_WEB,
        FONTE_EXP,
        ACORDEON,
        FILTRO,
        JS,
        LARGURA,
        COMPRIMENTO,
        EXECUTAR_COMANDOS,
        :NEW_CODIGO as CODIGO,
        MOSTRAR_GRAFICO,
        MOSTRAR_TABELA,
        UPDATE_TEG,
        JS3,
        CABECALHO_CSV
    from TBRELATORIO_WEB e where e.CODIGO = :RELATORIO_ID;

    for
        select
            ID,
            SQL,
            STATUS,
            DESCRICAO
        from TBRELATORIO_WEB_SQL e where e.CODIGO = :RELATORIO_ID
    into
        :ID,
        :SQL,
        :STATUS,
        :DESCRICAO
    do begin

        NEW_SQL_ID = gen_id(GTBRELATORIO_WEB_SQL, 1);

        insert into TBRELATORIO_WEB_SQL (
            ID,
            SQL,
            RELATORIO_ID,
            STATUS,
            DESCRICAO,
            CODIGO
        ) select first 1
            :NEW_SQL_ID ID,
            SQL,
            :NEW_ID RELATORIO_ID,
            STATUS,
            DESCRICAO,
            :NEW_CODIGO
        from TBRELATORIO_WEB_SQL e where e.id = :ID;

        insert into TBRELATORIO_WEB_DETALHE (
            ID,
            RELATORIO_ID,
            PERCENTUAL,
            DESCRICAO,
            CLASSE,
            CAMPO,
            ORDEM,
            MASCARA,
            VISIVEL,
            COR,
            TOTALIZAR,
            CASAS,
            "INDEX",
            AGRUPAR,
            TOTAL_GRUPO,
            TOTAL_TIPO,
            FORMULA,
            PREFIX,
            SUFIX,
            COL_TAMANHO,
            URL_LINK,
            SQL_ID,
            INDICE,
            PREFIXT,
            SUFIXT,
            CODIGO,
            STYLE,
            HTML
        ) select
            gen_id(GTBRELATORIO_WEB_DETALHE, 1) ID,
            :NEW_ID RELATORIO_ID,
            PERCENTUAL,
            DESCRICAO,
            CLASSE,
            CAMPO,
            ORDEM,
            MASCARA,
            VISIVEL,
            COR,
            TOTALIZAR,
            CASAS,
            "INDEX",
            AGRUPAR,
            TOTAL_GRUPO,
            TOTAL_TIPO,
            FORMULA,
            PREFIX,
            SUFIX,
            COL_TAMANHO,
            URL_LINK,
            :NEW_SQL_ID SQL_ID,
            INDICE,
            PREFIXT,
            SUFIXT,
            :NEW_CODIGO,
            STYLE,
            HTML
        from TBRELATORIO_WEB_DETALHE e where e.CODIGO = :RELATORIO_ID;

    end

    insert into TBRELATORIO_WEB_GRUPOS (
        ID,
        RELATORIO_ID,
        JSON,
        CODIGO
    )
    select
        gen_id(GTBRELATORIO_WEB_GRUPOS, 1) ID,
        :NEW_ID RELATORIO_ID,
        JSON,
        :NEW_CODIGO
    from TBRELATORIO_WEB_GRUPOS e where e.CODIGO = :RELATORIO_ID;

    insert into TBRELATORIO_WEB_PARAMETRO (
        "id",
        RELATORIO_ID,
        DESCRICAO,
        PARAMETRO,
        TIPO,
        STATUS,
        TIPO_PARAMETRO,
        TTITLE,
        ITENS,
        VALOR_PADRAO,
        CONSULTA,
        CAMPO,
        SQL,
        RECEBER_DO_USUARIO,
        VALOR,
        COMPRIMENTO,
        OBRIGATORIO,
        TIPO_SQL,
        SQL_LIKE,
        ORDEM,
        CODIGO
    )
    select
        gen_id(GTBRELATORIO_WEB_PARAMETRO, 1) id,
        :NEW_ID RELATORIO_ID,
        DESCRICAO,
        PARAMETRO,
        TIPO,
        STATUS,
        TIPO_PARAMETRO,
        TTITLE,
        ITENS,
        VALOR_PADRAO,
        CONSULTA,
        CAMPO,
        SQL,
        RECEBER_DO_USUARIO,
        VALOR,
        COMPRIMENTO,
        OBRIGATORIO,
        TIPO_SQL,
        SQL_LIKE,
        ORDEM,
        :NEW_CODIGO
    from TBRELATORIO_WEB_PARAMETRO e where e.CODIGO = :RELATORIO_ID;


    insert into TBRELATORIO_WEB_MENUS (ID,RELATORIO_WEB_ID,MENU_ID, CODIGO)
    select
        gen_id(GTBRELATORIO_WEB_MENUS, 1) id,:NEW_ID RELATORIO_WEB_ID,MENU_ID, :NEW_CODIGO
    from TBRELATORIO_WEB_MENUS q where q.CODIGO = :RELATORIO_ID;

    insert into TBRELATORIO_WEB_GRAFICO (
        ID,
        DESCRICAO,
        SCRIPT,
        RELATORIO_ID,
        CODIGO
    )
    select
        gen_id(GTBRELATORIO_WEB_GRAFICO, 1) id,
        DESCRICAO,
        SCRIPT,
        RELATORIO_ID,
        :NEW_CODIGO
    from TBRELATORIO_WEB_GRAFICO s
    where s.CODIGO = :RELATORIO_ID;

    insert into TBRELATORIO_WEB_SERV (
        ID,
        RELATORIO_ID,
        CODIGO,
        SERVIDOR_ID
    )
    select
        gen_id(GTBRELATORIO_WEB_SERV, 1) id,
        RELATORIO_ID,
        :NEW_CODIGO AS CODIGO,
        SERVIDOR_ID
    from TBRELATORIO_WEB_SERV s
    where s.CODIGO = :RELATORIO_ID;

    UPDATE OR INSERT INTO TBRELATORIO_WEB_USUARIO (USUARIO_ID, RELATORIO_ID, CODIGO) VALUES (fn_current_user_id(), :NEW_ID, :NEW_CODIGO) MATCHING (USUARIO_ID, CODIGO);

   suspend;
end
^

SET TERM ; ^


			
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('DELFA', 'https://gc.delfa.com.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('VIART', 'https://viart.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('LINHASECORES', 'https://linhasecores.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('DYGIRL', 'https://dygirl.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('CIAFIO', 'https://ciafio.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('TECEFIO', 'https://tecefio.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('LAMOUR', 'https://lamour.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('LANGERRIL', 'https://langerril.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('HELIOPEREIRA', 'https://heliopereira.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('ELAH', 'https://elah.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('BELJOY', 'https://beljoy.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('VICKCONFECCOES', 'https://vickconfeccoes.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('LEILIANABATISTA', 'https://leilianabatista.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('FITCAT', 'https://fitcat.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('FOCOETIQUETAS', 'https://focoetiquetas.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('DIHARAS', 'https://diharas.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('RAVICK', 'https://ravick.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('PALMIFLEX', 'https://palmiflex.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('NEMDOFRANGO', 'https://nemdofrango.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('NUTRISPACE', 'https://nutrispace.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('GRUPOAMOREVIDA', 'https://grupoamorevida.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('FRLINGERIE', 'https://frlingerie.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('ISMAELLSOUSA', 'https://ismaellsousa.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('SANTAPASSION', 'https://santapassion.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('IRISFASHION', 'https://irisfashion.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('TOMSECRETO', 'https://tomsecreto.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('MISSINTIMA', 'https://missintima.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('MYLOKA', 'https://myloka.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('COLINAS', 'https://colinas.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('KAYROS', 'https://kayros.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('GCTESTE', 'https://gcteste.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('VILINGERIE', 'https://vilingerie.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('QUARTZO', 'https://quartzo.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('STARJANE', 'https://starjane.gcweb.app.br', 1) MATCHING (DESCRICAO);
UPDATE OR INSERT INTO TBSERVIDOR (DESCRICAO, URL, STATUS) VALUES ('FLORDALIA', 'https://flordalia.gcweb.app.br', 1) MATCHING (DESCRICAO);


