CREATE TABLE TBCUSTO_SIMULACAO (
    ID INTEGER);
	
ALTER TABLE TBCUSTO_SIMULACAO ADD MERCADO BLOB SUB_TYPE 0 SEGMENT SIZE 80;
ALTER TABLE TBCUSTO_SIMULACAO ADD MERCADO_ITENS BLOB SUB_TYPE 0 SEGMENT SIZE 80;
ALTER TABLE TBCUSTO_SIMULACAO ADD TRANSPORTADORA BLOB SUB_TYPE 0 SEGMENT SIZE 80;
ALTER TABLE TBCUSTO_SIMULACAO ADD CLIENTE BLOB SUB_TYPE 0 SEGMENT SIZE 80;
ALTER TABLE TBCUSTO_SIMULACAO ADD CIDADE BLOB SUB_TYPE 0 SEGMENT SIZE 80;
ALTER TABLE TBCUSTO_SIMULACAO ADD DATAS BLOB SUB_TYPE 0 SEGMENT SIZE 80;
ALTER TABLE TBCUSTO_SIMULACAO ADD FRETES BLOB SUB_TYPE 0 SEGMENT SIZE 80;
ALTER TABLE TBCUSTO_SIMULACAO ADD VALOR BLOB SUB_TYPE 0 SEGMENT SIZE 80;

ALTER TABLE TBCUSTO_SIMULACAO ADD MARKUP NUMERIC(18,8);
ALTER TABLE TBCUSTO_SIMULACAO ADD PERDAS NUMERIC(18,8);
ALTER TABLE TBCUSTO_SIMULACAO ADD INCENTIVO NUMERIC(18,8);
ALTER TABLE TBCUSTO_SIMULACAO ADD MARGEM NUMERIC(18,8);


COMMENT ON COLUMN TBCUSTO_SIMULACAO.MERCADO IS
'json';

COMMENT ON COLUMN TBCUSTO_SIMULACAO.MERCADO_ITENS IS
'json';

COMMENT ON COLUMN TBCUSTO_SIMULACAO.TRANSPORTADORA IS
'json';

COMMENT ON COLUMN TBCUSTO_SIMULACAO.CLIENTE IS
'json';

COMMENT ON COLUMN TBCUSTO_SIMULACAO.CIDADE IS
'json';

COMMENT ON COLUMN TBCUSTO_SIMULACAO.DATAS IS
'json';

CREATE SEQUENCE GTBCUSTO_SIMULACAO;

create trigger ttbcusto_simulacao_b01i for tbcusto_simulacao
active before insert position 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gtbcusto_simulacao,1);
end;

COMMENT ON TABLE TBCUSTO_SIMULACAO IS 'tabela que garava uma simulacao de custo';

CREATE TABLE TBCUSTO_SIMULACAO_ITEM (
    ID INTEGER NOT NULL,
    SIMULACAO_ID INTEGER);

ALTER TABLE TBCUSTO_SIMULACAO_ITEM
ADD CONSTRAINT PK_TBCUSTO_SIMULACAO_ITEM
PRIMARY KEY (ID);

CREATE SEQUENCE GTBCUSTO_SIMULACAO_ITEM;

ALTER TABLE TBCUSTO_SIMULACAO_ITEM
    ADD VALOR BLOB SUB_TYPE 0 SEGMENT SIZE 80;

create trigger ttbcusto_simulacao_item_b01i for tbcusto_simulacao_item
active before insert position 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gtbcusto_simulacao_item,1);
end;

ALTER TABLE TBCUSTO_SIMULACAO
    ADD FATORES VARCHAR(1000);

COMMENT ON COLUMN TBCUSTO_SIMULACAO.FRETES IS
'json';

COMMENT ON COLUMN TBCUSTO_SIMULACAO.FATORES IS
'json';

alter table TBCUSTO_SIMULACAO
alter ID position 1;

alter table TBCUSTO_SIMULACAO
alter MERCADO position 2;

alter table TBCUSTO_SIMULACAO
alter MERCADO_ITENS position 3;

alter table TBCUSTO_SIMULACAO
alter TRANSPORTADORA position 4;

alter table TBCUSTO_SIMULACAO
alter CLIENTE position 5;

alter table TBCUSTO_SIMULACAO
alter CIDADE position 6;

alter table TBCUSTO_SIMULACAO
alter DATAS position 7;

alter table TBCUSTO_SIMULACAO
alter FRETES position 8;

alter table TBCUSTO_SIMULACAO
alter FATORES position 9;

alter table TBCUSTO_SIMULACAO
alter MARKUP position 10;

alter table TBCUSTO_SIMULACAO
alter PERDAS position 11;

alter table TBCUSTO_SIMULACAO
alter INCENTIVO position 12;

alter table TBCUSTO_SIMULACAO
alter MARGEM position 13;

ALTER TABLE TBCUSTO_SIMULACAO DROP MARKUP;

ALTER TABLE TBCUSTO_SIMULACAO DROP PERDAS;

ALTER TABLE TBCUSTO_SIMULACAO
    ADD DATA TIMESTAMP DEFAULT 'now';

ALTER TABLE TBCUSTO_SIMULACAO
    ADD STATUS_EXCLUSAO INTEGER DEFAULT 0;
	
ALTER TABLE TBCUSTO_SIMULACAO_ITEM
    ADD STATUS_EXCLUSAO INTEGER DEFAULT 0;

ALTER TABLE TBCUSTO_SIMULACAO
    ADD DATA_UPDATE TIMESTAMP,
    ADD DATA_DELETE TIMESTAMP;

ALTER TABLE TBCUSTO_SIMULACAO_ITEM
    ADD DATA_UPDATE TIMESTAMP,
    ADD DATA_DELETE TIMESTAMP;

CREATE trigger tbcusto_simulacao_item_bu0 for tbcusto_simulacao_item
active before update position 0
AS
begin

    if(new.status_exclusao = 0)then
    begin
       EXECUTE PROCEDURE SPI_HISTORICO('TBCUSTO_SIMULACAO',new.id,'ALTERADO');
    end else
    begin
       EXECUTE PROCEDURE SPI_HISTORICO('TBCUSTO_SIMULACAO',new.id,'EXCLUIDO');
    end

end;

CREATE OR ALTER trigger ttbcusto_simulacao_item_b01i for tbcusto_simulacao_item
active before insert position 0
as
begin

  if (new.id is null) then
    new.id = gen_id(gtbcusto_simulacao_item,1);

   EXECUTE PROCEDURE SPI_HISTORICO('TBCUSTO_SIMULACAO',new.id,'INSERIDO');
end;


