ALTER TABLE TBPEDIDO
    ADD TIPO_FRETE INTEGER DEFAULT 0;

COMMENT ON COLUMN TBPEDIDO.TIPO_FRETE IS
'codigo dos servicos dos correios, pac, sedex e etc';

ALTER TABLE TBCLIENTE_TIPO
    ADD MERCADO INTEGER;

COMMENT ON COLUMN TBCLIENTE_TIPO.MERCADO IS
'1 - sim
0 - nao';

CREATE TABLE TBCLIENTE_SUBTIPO (
    ID INTEGER,
    CLIENTE_TIPO_ID INTEGER,
    DESCRICAO VARCHAR(50),
    STATUS INTEGER);

CREATE SEQUENCE GTBCLIENTE_SUBTIPO;

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

ALTER TABLE TBCLIENTE_SUBTIPO
    ADD QTD_MIN NUMERIC(15,2),
    ADD QTD_MAX NUMERIC(15,2),
    ADD QTD_MUL NUMERIC(15,2);

CREATE TABLE TBCLIENTE_SUBTIPO_FRETE (
    ID INTEGER NOT NULL,
    DESCRICAO VARCHAR(50),
    FRETE_TIPO INTEGER,
    QUANTIDADE NUMERIC(15,2),
    VALOR NUMERIC(15,2));

ALTER TABLE TBCLIENTE_SUBTIPO_FRETE
ADD CONSTRAINT PK_TBCLIENTE_SUBTIPO_FRETE
PRIMARY KEY (ID);

CREATE SEQUENCE GTBCLIENTE_SUBTIPO_FRETE;

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

COMMENT ON TABLE TBCLIENTE_SUBTIPO_FRETE IS 'tabela de regras de frete para subtipos de clientes';

ALTER TABLE TBCLIENTE_SUBTIPO_FRETE
    ADD STATUS INTEGER;

ALTER TABLE TBCLIENTE_SUBTIPO_FRETE
    ADD SUBTIPO_ID INTEGER;


CREATE TABLE TBCLIENTE_SUBTIPO_PAG (
    ID INTEGER NOT NULL,
    DESCRICAO VARCHAR(50),
    FRETE_TIPO INTEGER,
    QUANTIDADE NUMERIC(15,2),
    VALOR NUMERIC(15,2));

ALTER TABLE TBCLIENTE_SUBTIPO_PAG
ADD CONSTRAINT PK_TBCLIENTE_SUBTIPO_PAG
PRIMARY KEY (ID);

CREATE SEQUENCE GTBCLIENTE_SUBTIPO_PAG;

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

COMMENT ON TABLE TBCLIENTE_SUBTIPO_PAG IS 'tabela de regras de frete para subtipos de clientes';

ALTER TABLE TBCLIENTE_SUBTIPO_PAG
    ADD STATUS INTEGER;

ALTER TABLE TBCLIENTE_SUBTIPO_PAG
    ADD SUBTIPO_ID INTEGER;


ALTER TABLE TBCLIENTE_SUBTIPO_PAG
    ADD CODICAO_ID INTEGER;

COMMENT ON COLUMN TBCLIENTE_SUBTIPO_PAG.CODICAO_ID IS
'condicao de pagamento';

ALTER TABLE TBCLIENTE_SUBTIPO_PAG DROP FRETE_TIPO;

ALTER TABLE TBCLIENTE_SUBTIPO_FRETE
    ADD QTD_MAX NUMERIC(15,2),
    ADD QTD_MIN NUMERIC(15,2);

ALTER TABLE TBCLIENTE_SUBTIPO_PAG
    ADD QTD_MAX NUMERIC(15,2),
    ADD QTD_MIN NUMERIC(15,2);

CREATE TABLE TBCLIENTE_SUBTIPO_REGRA (
    ID INTEGER NOT NULL,
    DESCRICAO VARCHAR(50),
    VALOR NUMERIC(15,2));

ALTER TABLE TBCLIENTE_SUBTIPO_REGRA
ADD CONSTRAINT PK_TBCLIENTE_SUBTIPO_REGRA
PRIMARY KEY (ID);

CREATE SEQUENCE GTBCLIENTE_SUBTIPO_REGRA;

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

COMMENT ON TABLE TBCLIENTE_SUBTIPO_REGRA IS 'tabela de regras de frete para subtipos de clientes';

ALTER TABLE TBCLIENTE_SUBTIPO_REGRA
    ADD STATUS INTEGER;

ALTER TABLE TBCLIENTE_SUBTIPO_REGRA
    ADD SUBTIPO_ID INTEGER;
	
ALTER TABLE TBCLIENTE_SUBTIPO_REGRA
    ADD SCRIPT BLOB SUB_TYPE 1 SEGMENT SIZE 80;

ALTER TABLE TBCLIENTE_SUBTIPO_REGRA DROP VALOR;

ALTER TABLE TBCLIENTE_SUBTIPO_PAG
    ADD JUROS NUMERIC(15,2);

ALTER TABLE TBCLIENTE_SUBTIPO
    ADD GRADE_ID INTEGER;

ALTER TABLE TBREFERENCIA_PRECO
    ADD SUBTIPO_ID INTEGER;

ALTER TABLE TBGRADE_TIPO
    ADD REGRA_VALIDACAO BLOB SUB_TYPE 1 SEGMENT SIZE 80;
	
CREATE TABLE TBPEDIDO_GRADE_PERSONALIZADA (
    ID INTEGER NOT NULL,
    PEDIDO_ID INTEGER,
    CLIENTE_ID INTEGER,
    TIPO INTEGER,
    GRADE BLOB SUB_TYPE 1 SEGMENT SIZE 80);

ALTER TABLE TBPEDIDO_GRADE_PERSONALIZADA
ADD CONSTRAINT PK_TBPEDIDO_GRADE_PERSONALIZADA
PRIMARY KEY (ID);

CREATE SEQUENCE GTBPEDIDO_GRADE_PERS;

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

ALTER TABLE TBMODELO_LINHA
    ADD PERFIL_PEDIDO VARCHAR(2);

ALTER TABLE TBPRODUTO
    ADD EXCLUIR_ECOMERCE INTEGER DEFAULT 1;

CREATE OR ALTER trigger ttbestoque_saldo_999 for tbestoque_saldo
active before insert or update or delete position 999
AS
declare variable produto integer;
begin

  update tbreplica_tabela set Status = '0'
  Where tabela = 'TBESTOQUE_SALDO'
    and Status = '1';

  update tbreplica_tabela set Status = '0'
  Where tabela = 'TBREPOSICAO_CONSUMO'
    and Status = '1';

  --se vende no ecommerce
  produto = coalesce((select first 1 k.produto_id from SPC_SKUS_ECOMMERCE2(0,new.produto_codigo) k),0);
  if(produto > 0)then
  begin
      UPDATE OR INSERT INTO TBUPDATE_ECOMMERCE (TABELA, TABELA_ID, SUB_ID)
            VALUES ('TBESTOQUE_SALDO', new.produto_codigo, new.estabelecimento_codigo)
          MATCHING (TABELA, TABELA_ID, SUB_ID);
  end

end;



ALTER TABLE TBPERFIL
    ADD FAMILIA_PEDIDO INTEGER;

COMMENT ON COLUMN TBPERFIL.FAMILIA_PEDIDO IS
'grava familia no pedido?
1 - sim
0 - Nao';

ALTER TABLE TBPERFIL ALTER COLUMN TELA_ADD_PEDIDO
SET DEFAULT 1;

ALTER TABLE TBPERFIL ALTER COLUMN AMOSTRA
SET DEFAULT 0;

ALTER TABLE TBPERFIL ALTER COLUMN FAMILIA_PEDIDO
SET DEFAULT 0;

