SELECT CADASTRO                       
  FROM CAD_TELA_SISTEMA               
 WHERE NOME = 'frmrel_curva_abc_pedido_compra_por_fornecedor'

C:\Panorama\Sistemas\Dados\DADOS.FDB                                             10/12/2018 11:44:45
====================================================================================================
 ALTER TABLE CAD_PRODUTO ADD FATOR_CONVERSAO DOUBLE PRECISION

C:\Panorama\Sistemas\Dados\DADOS.FDB                                             10/12/2018 11:44:45
====================================================================================================
 UPDATE CAD_PRODUTO SET FATOR_CONVERSAO = 1

C:\Panorama\Sistemas\Dados\DADOS.FDB                                             10/12/2018 11:44:45
====================================================================================================
CREATE OR ALTER PROCEDURE PRO_BUSCA_PRODUTO (
    VEMPRESA Integer,
    VPRODUTO Integer,
    VREFERENCIA Varchar(50),
    VCODIGO_BARRA Varchar(50),
    VFORNECEDOR Integer,
    VCODIGO_PRODUTO_FORNECEDOR Varchar(50),
    VDESCRICAO_PRODUTO_FORNECEDOR Varchar(120) )
RETURNS (
    CADASTRO Integer,
    DESCRICAO Varchar(120),
    CFOP_ENTRADA Varchar(8),
    UNIDADE Varchar(3),
    REFERENCIA Varchar(50),
    CODIGO_BARRA Varchar(50),
    CLASSIFICACAO_FISCAL Varchar(10),
    FATOR_CONVERSAO DOUBLE PRECISION,
    INATIVO Varchar(1) )
AS
DECLARE VARIABLE VSQL_SELECT VARCHAR(5000);
DECLARE VARIABLE VSQL_WHERE VARCHAR(5000);
BEGIN
    VPRODUTO                      = CASE WHEN :VPRODUTO = 0                    THEN NULL ELSE :VPRODUTO END;
    VREFERENCIA                   = CASE WHEN :VREFERENCIA = ''                THEN NULL ELSE TRIM(:VREFERENCIA) END;
    VCODIGO_BARRA                 = CASE WHEN :VCODIGO_BARRA = ''              THEN NULL ELSE TRIM(:VCODIGO_BARRA) END;
    VFORNECEDOR                   = CASE WHEN :VFORNECEDOR = 0                 THEN NULL ELSE :VFORNECEDOR END;
    VCODIGO_PRODUTO_FORNECEDOR    = CASE WHEN :VCODIGO_PRODUTO_FORNECEDOR = '' THEN NULL ELSE TRIM(:VCODIGO_PRODUTO_FORNECEDOR) END;
    VDESCRICAO_PRODUTO_FORNECEDOR = CASE WHEN :VDESCRICAO_PRODUTO_FORNECEDOR = '' THEN NULL ELSE TRIM(:VDESCRICAO_PRODUTO_FORNECEDOR) END;


    IF ((:VPRODUTO > 0) OR (:VREFERENCIA <> '') OR (:VCODIGO_BARRA <> '') OR (:VCODIGO_PRODUTO_FORNECEDOR <> '')) THEN
    BEGIN
        VSQL_SELECT = 'SELECT DISTINCT P.CADASTRO, P.DESCRICAO, P.CFOP_ENTRADA, P.UNIDADE, ' ||
                      'P.REFERENCIA, P.CLASSIFICACAO_FISCAL, P.INATIVO, P.FATOR_CONVERSAO, ' ||
                      CASE WHEN :VCODIGO_BARRA IS NOT NULL THEN 'CB.CODIGO_BARRA ' ELSE 'NULL AS CODIGO_BARRA ' END ||
                      'FROM CAD_PRODUTO P ' || ASCII_CHAR(13) || ASCII_CHAR(10) ||

                       CASE
                           WHEN :VCODIGO_BARRA IS NOT NULL THEN
                               'LEFT OUTER JOIN CAD_IT_PRODUTO_CODIGO_BARRA CB ' ||
                               'ON CB.EMPRESA = P.EMPRESA AND CB.PRODUTO = P.CADASTRO ' || ASCII_CHAR(13) || ASCII_CHAR(10)
                           ELSE
                               ''
                       END ||

                       CASE
                           WHEN :VCODIGO_PRODUTO_FORNECEDOR IS NOT NULL THEN
                               'LEFT OUTER JOIN CAD_IT_PRODUTO_GRADE_FORNECEDOR GF ' ||
                               'ON GF.EMPRESA = P.EMPRESA AND GF.PRODUTO = P.CADASTRO ' || ASCII_CHAR(13) || ASCII_CHAR(10)
                           ELSE
                               ''
                       END;

        VSQL_WHERE = '';

        IF (:VPRODUTO IS NOT NULL) THEN
        BEGIN
            VSQL_WHERE = CASE WHEN :VSQL_WHERE <> '' THEN :VSQL_WHERE || ' OR '
                         ELSE '' END || '(P.CADASTRO = ' || :VPRODUTO || ')';
        END

        IF (:VREFERENCIA IS NOT NULL) THEN
        BEGIN
            VSQL_WHERE = CASE WHEN :VSQL_WHERE <> '' THEN :VSQL_WHERE || ' OR '
                         ELSE '' END || '(TRIM(P.REFERENCIA) = ''' || :VREFERENCIA || ''')';
        END

        IF (:VCODIGO_BARRA IS NOT NULL) THEN
        BEGIN
            VSQL_WHERE = CASE WHEN :VSQL_WHERE <> '' THEN :VSQL_WHERE || ' OR '
                         ELSE '' END || '(TRIM(CB.CODIGO_BARRA) = ''' || :VCODIGO_BARRA || ''')';
        END

        IF (:VCODIGO_PRODUTO_FORNECEDOR IS NOT NULL) THEN
        BEGIN
            VSQL_WHERE = CASE
                             WHEN :VSQL_WHERE <> '' THEN
                                 :VSQL_WHERE || ' OR '
                             ELSE
                                 ''
                         END ||
                         '((GF.FORNECEDOR = ' || :VFORNECEDOR || ') AND (TRIM(GF.CODIGO_BARRA) = ''' || :VCODIGO_PRODUTO_FORNECEDOR || ''') ' ||
                         CASE
                           WHEN :VDESCRICAO_PRODUTO_FORNECEDOR IS NOT NULL THEN
                              ' AND (GF.DESCRICAO_FORNECEDOR = ''' || :VDESCRICAO_PRODUTO_FORNECEDOR || ''')'
                           ELSE
                               ''
                         END || ')';
        END

        VSQL_WHERE = 'WHERE (P.EMPRESA = ' || :VEMPRESA || ') AND (' || :VSQL_WHERE || ')';
        VSQL_SELECT = :VSQL_SELECT || :VSQL_WHERE;

        --EXCEPTION TESTE :VSQL_SELECT;

        FOR
            EXECUTE STATEMENT :VSQL_SELECT
            INTO :CADASTRO, :DESCRICAO, :CFOP_ENTRADA, :UNIDADE, :REFERENCIA, :CLASSIFICACAO_FISCAL, :INATIVO, :FATOR_CONVERSAO, :CODIGO_BARRA
        DO BEGIN
            SUSPEND;
        END
    END
END

C:\Panorama\Sistemas\Dados\DADOS.FDB                                             10/12/2018 11:44:45
====================================================================================================
 ALTER TABLE CAD_EMPRESA ADD USA_SENHA_QTDE_PRODUTO_CUPOM VARCHAR(1)

C:\Panorama\Sistemas\Dados\DADOS.FDB                                             10/12/2018 11:44:45
====================================================================================================
 UPDATE CAD_EMPRESA SET USA_SENHA_QTDE_PRODUTO_CUPOM = 1

C:\Panorama\Sistemas\Dados\DADOS.FDB                                             10/12/2018 11:44:45
====================================================================================================
