-- +goose Up
-- +goose StatementBegin
CREATE OR REPLACE PROCEDURE PRC_FLASH_CARGA_META_VENDA_STG (
    p_data_inicial IN DATE,
    p_data_final   IN DATE
) AS
BEGIN
    DELETE FROM TB_FLASH_META_VENDA_STG
     WHERE data_referencia BETWEEN p_data_inicial AND p_data_final;

    INSERT INTO TB_FLASH_META_VENDA_STG (
        cod_empresa, tipo_nodo, codigo_nodo, codigo_nodo_pai, tipo_nodo_pai,
        data_referencia, ano_referencia, mes_referencia, dia_referencia,
        percentual_meta, valor_meta, observacao, origem_meta, data_carga
    )
    SELECT cod_empresa, tipo_nodo, codigo_nodo, codigo_nodo_pai, tipo_nodo_pai,
           data_referencia, ano_referencia, mes_referencia, dia_referencia,
           percentual_meta, valor_meta, observacao, origem_meta, SYSDATE
      FROM VW_FLASH_META_VENDA_STG
     WHERE data_referencia BETWEEN p_data_inicial AND p_data_final;

    COMMIT;
END;
-- +goose StatementEnd

-- +goose Down
-- +goose StatementBegin
DECLARE
    v_count NUMBER;
BEGIN
    SELECT COUNT(*) INTO v_count FROM user_objects WHERE object_name = 'PRC_FLASH_CARGA_META_VENDA_STG' AND object_type = 'PROCEDURE';
    IF v_count > 0 THEN
        EXECUTE IMMEDIATE 'DROP PROCEDURE PRC_FLASH_CARGA_META_VENDA_STG';
    END IF;
END;
-- +goose StatementEnd
