ALTER TABLE TBFAMILIA
    ADD TOLERANCIA_PRO_QTD_MAIOR NUMERIC(15,4),
    ADD TOLERANCIA_PRO_QTD_MENOR NUMERIC(15,4),
    ADD TOLERANCIA_CON_QTD_MAIOR NUMERIC(15,4),
    ADD TOLERANCIA_CON_QTD_MENOR NUMERIC(15,4);

ALTER TABLE TBFAMILIA ALTER COLUMN TOLERANCIA_PRO_QTD_MAIOR SET DEFAULT 0;
ALTER TABLE TBFAMILIA ALTER COLUMN TOLERANCIA_PRO_QTD_MENOR SET DEFAULT 0;
ALTER TABLE TBFAMILIA ALTER COLUMN TOLERANCIA_CON_QTD_MAIOR SET DEFAULT 0;
ALTER TABLE TBFAMILIA ALTER COLUMN TOLERANCIA_CON_QTD_MENOR SET DEFAULT 0;

ALTER TABLE TBFAMILIA
    ADD SOBRA_PRODUCAO INTEGER DEFAULT 0,
    ADD SOBRA_CONSUMO INTEGER DEFAULT 0;

COMMENT ON COLUMN TBFAMILIA.SOBRA_PRODUCAO IS
'0 - não
1 - sim';

COMMENT ON COLUMN TBFAMILIA.SOBRA_CONSUMO IS
'0 - não
1 - sim';

ALTER TABLE TBFAMILIA
    ADD TOLERANCIA_TIPO_PRO VARCHAR(10) DEFAULT 'Q',
    ADD TOLERANCIA_TIPO_CON VARCHAR(10) DEFAULT 'Q';

COMMENT ON COLUMN TBFAMILIA.TOLERANCIA_TIPO_PRO IS
'''Q'' - quantitativo
''P'' - percentual';

COMMENT ON COLUMN TBFAMILIA.TOLERANCIA_TIPO_CON IS
'''Q'' - quantitativo
''P'' - percentual';

update tbfamilia f
set f.tolerancia_pro_qtd_maior = f.tolerancia_qtd,
f.tolerancia_pro_qtd_menor     = f.tolerancia_qtd,
f.tolerancia_con_qtd_maior     = f.tolerancia_qtd,
f.tolerancia_con_qtd_menor     = f.tolerancia_qtd,
f.tolerancia_tipo_pro = 'Q',
f.tolerancia_tipo_con = 'Q'
where f.tolerancia_tipo = 'Q';

update tbfamilia f
set f.tolerancia_pro_qtd_maior = f.tolerancia_perc,
f.tolerancia_pro_qtd_menor     = f.tolerancia_perc,
f.tolerancia_con_qtd_maior     = f.tolerancia_perc,
f.tolerancia_con_qtd_menor     = f.tolerancia_perc,
f.tolerancia_tipo_pro = 'P',
f.tolerancia_tipo_con = 'P'
where f.tolerancia_tipo = 'P';

update tbfamilia f
set f.sobra_producao = 1,
f.sobra_consumo = 0
where f.sobra_tipo = 'P';

update tbfamilia f
set f.sobra_producao = 0,
f.sobra_consumo = 1
where f.sobra_tipo = 'M';

update tbfamilia f
set f.sobra_producao       = coalesce(f.sobra_producao, 0),
f.sobra_consumo            = coalesce(f.sobra_consumo , 0),
f.tolerancia_pro_qtd_maior = coalesce(f.tolerancia_pro_qtd_maior,0),
f.tolerancia_pro_qtd_menor = coalesce(f.tolerancia_pro_qtd_menor,0),
f.tolerancia_con_qtd_maior = coalesce(f.tolerancia_con_qtd_maior,0),
f.tolerancia_con_qtd_menor = coalesce(f.tolerancia_con_qtd_menor,0),
f.tolerancia_tipo_pro      = coalesce(f.tolerancia_tipo_pro,'Q'),
f.tolerancia_tipo_con      = coalesce(f.tolerancia_tipo_con,'Q');

ALTER TABLE TBPRODUTO
    ADD TOLERANCIA_PRO_QTD_MAIOR NUMERIC(15,4),
    ADD TOLERANCIA_PRO_QTD_MENOR NUMERIC(15,4),
    ADD TOLERANCIA_CON_QTD_MAIOR NUMERIC(15,4),
    ADD TOLERANCIA_CON_QTD_MENOR NUMERIC(15,4);

ALTER TABLE TBPRODUTO ALTER COLUMN TOLERANCIA_PRO_QTD_MAIOR SET DEFAULT 0;
ALTER TABLE TBPRODUTO ALTER COLUMN TOLERANCIA_PRO_QTD_MENOR SET DEFAULT 0;
ALTER TABLE TBPRODUTO ALTER COLUMN TOLERANCIA_CON_QTD_MAIOR SET DEFAULT 0;
ALTER TABLE TBPRODUTO ALTER COLUMN TOLERANCIA_CON_QTD_MENOR SET DEFAULT 0;

ALTER TABLE TBPRODUTO
    ADD SOBRA_PRODUCAO INTEGER DEFAULT -1,
    ADD SOBRA_CONSUMO INTEGER DEFAULT -1;

COMMENT ON COLUMN TBPRODUTO.SOBRA_PRODUCAO IS
'-1 - da familia
0 - não
1 - sim';

COMMENT ON COLUMN TBPRODUTO.SOBRA_CONSUMO IS
'-1 - da familia
0 - não
1 - sim';

ALTER TABLE TBPRODUTO
    ADD TOLERANCIA_TIPO_PRO VARCHAR(10) DEFAULT 'F',
    ADD TOLERANCIA_TIPO_CON VARCHAR(10) DEFAULT 'F';

COMMENT ON COLUMN TBPRODUTO.TOLERANCIA_TIPO_PRO IS
'''F'' - da familia
''Q'' - quantitativo
''P'' - percentual';

COMMENT ON COLUMN TBPRODUTO.TOLERANCIA_TIPO_CON IS
'''F'' - da familia
''Q'' - quantitativo
''P'' - percentual';

update TBPRODUTO f
set f.tolerancia_pro_qtd_maior = 0,
f.tolerancia_pro_qtd_menor     = 0,
f.tolerancia_con_qtd_maior     = 0,
f.tolerancia_con_qtd_menor     = 0,
f.tolerancia_tipo_pro = 'F',
f.tolerancia_tipo_con = 'F',
f.sobra_producao = -1,
f.sobra_consumo  = -1;