/* Table: SOLUCOESERROS */ CREATE TABLE SOLUCOESERROS ( CODSOLUCAO CODIGO NOT NULL, SOLUCAO MEMO_TEXTO, PALAVRASCHAVES VC250, LINK VARCHAR_100, DESCRICAO N10_5); create generator GEN_SOLUCOESERROS; /* Primary keys definition */ ALTER TABLE SOLUCOESERROS ADD CONSTRAINT PK_SOLUCOESERROS PRIMARY KEY (CODSOLUCAO); SET TERM ^ ; /* Triggers definition */ /* Trigger: SOLUCOESERROS_BI */ CREATE TRIGGER SOLUCOESERROS_BI FOR SOLUCOESERROS ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.CODSOLUCAO IS NULL OR NEW.CODSOLUCAO=0) THEN NEW.CODSOLUCAO = GEN_ID(GEN_SOLUCOESERROS,1); END ^ SET TERM ; ^ /*------ 26/04/2019 15:05:54 --------*/ ALTER TABLE TABERROS ADD NOME VARCHAR_100; /*------ 27/04/2019 08:51:55 --------*/ update RDB$RELATION_FIELDS set RDB$FIELD_SOURCE = 'VARCHAR_100' where (RDB$FIELD_NAME = 'DESCRICAO') and (RDB$RELATION_NAME = 'SOLUCOESERROS') ; /*------ 28/04/2019 02:05:49 --------*/ ALTER TABLE SOLUCOESERROS ADD CODERRO INTEIRO_NULL; /*------ 29/04/2019 12:39:27 --------*/ ALTER TABLE DEVICES ADD LOGADO CHAR1; /*------ 30/04/2019 12:14:00 --------*/ SET TERM ^ ; ALTER PROCEDURE SPEMPRESA ( ID VARCHAR(20)) RETURNS ( CODEMPRESA INTEGER, NOMEFANTASIA VARCHAR(40), RAZAOSOCIAL VARCHAR(40), ENDERECO VARCHAR(40), NUMERO VARCHAR(5), BAIRRO VARCHAR(30), COMPLEMENTO VARCHAR(20), CEP VARCHAR(15), FONE VARCHAR(15), FAX VARCHAR(10), CNPJ VARCHAR(20), IE VARCHAR(20), CONTATO VARCHAR(30), CIDADE VARCHAR(30), UF VARCHAR(2), CIDADEUF VARCHAR(33), LOGOTIPO BLOB sub_type 0 segment size 100, ENDNR VARCHAR(45), CONVENIO CHAR(1), CODUF INTEGER, CODCIDADE INTEGER, CONTADOR VARCHAR(100), EMAIL VARCHAR(100), EMITENFE CHAR(1), EMITENFCE CHAR(1)) AS begin SELECT E.CODEMPRESA, E.NOMEFANTASIA, E.RAZAOSOCIAL, E.ENDERECO, E.NUMERO, E.BAIRRO, E.COMPLEMENTO, E.CEP, E.FONE, E.FAX, E.CNPJ, E.IE, E.CONTATO, C.DESCRICAO, U.SIGLA, C.DESCRICAO || '-' ||U.SIGLA, E.LOGOTIPO, E.ENDERECO || '-' || E.NUMERO, E.CONVENIO, C.CODUF, C.CODCIDADE, E.CONTADOR, E.EMAIL, E.EMITENFE, E.EMITENFCE FROM EMPRESA E JOIN CIDADES C ON (C.CODCIDADE = E.CODCIDADE) JOIN UF U ON (U.CODUF = C.CODUF) WHERE E.CNPJ=:ID INTO CODEMPRESA, NOMEFANTASIA, RAZAOSOCIAL, ENDERECO, NUMERO, BAIRRO, COMPLEMENTO, CEP, FONE, FAX, CNPJ, IE, CONTATO, CIDADE, UF, CIDADEUF, LOGOTIPO, ENDNR, CONVENIO, CODUF, CODCIDADE, CONTADOR, EMAIL, EMITENFE, EMITENFCE; suspend; end ^ SET TERM ; ^ /*------ 30/04/2019 12:18:37 --------*/ SET TERM ^ ; ALTER PROCEDURE SPPESSOAMOV ( CODMOVIMENTO INTEGER, TIPOMOV VARCHAR(5)) RETURNS ( CODPESSOA INTEGER, NOME VARCHAR(70), NOMEFANTAZIA VARCHAR(70), TIPO VARCHAR(15), CPFCNPJ VARCHAR(20), RGIE VARCHAR(20), DATANASC DATE, TIPOPESSOA VARCHAR(5), CEP VARCHAR(8), LOGRADOURO VARCHAR(50), NR VARCHAR(5), COMPLEMENTO VARCHAR(30), BAIRRO VARCHAR(50), CIDADE VARCHAR(30), CODCIDADE INTEGER, UF VARCHAR(2), FONE VARCHAR(20), CPAIS INTEGER, DESCPAIS VARCHAR(50), CONTRIBUINTEICMS CHAR(1)) AS declare variable CODENDCLI INTEGER; begin if (TIPOMOV IS NULL) then BEGIN SELECT M.TIPO FROM MOVIMENTOSPRODUTOS M WHERE M.CODMOVIMENTO=:CODMOVIMENTO INTO :TIPOMOV; END CPAIS = 1058; DESCPAIS = 'BRASIL'; IF (TIPOMOV IN ('VE','PV','OR','CS','DE','NE','TR','NC','LO', 'RE')) then BEGIN TIPO = 'Cliente'; SELECT CM.CODCLIENTE, CM.CODENDCLI FROM CLIENTEMOVIMENTO CM WHERE CM.CODMOVIMENTO=:CODMOVIMENTO INTO :CODPESSOA, :CODENDCLI; SELECT C.NOME, C.TIPO, C.CONTRIBUINTEICMS FROM CLIENTES C WHERE C.CODCLIENTE=:CODPESSOA INTO :NOME, :TIPOPESSOA, :CONTRIBUINTEICMS; if (TIPOPESSOA='F') then BEGIN NOMEFANTAZIA = NULL; SELECT CF.CPF, CF.RG, CF.datanasc FROM CLIENTEFISICO CF WHERE CF.CODCLIENTE=:CODPESSOA INTO :CPFCNPJ, :RGIE, :DATANASC; END if (TIPOPESSOA='J') then BEGIN SELECT CJ.RAZAO, CJ.CNPJ, CJ.IE, NULL FROM CLIENTEJURIDICO CJ WHERE CJ.CODCLIENTE=:CODPESSOA INTO :NOMEFANTAZIA, :CPFCNPJ, :RGIE, :DATANASC; END if (CODENDCLI IS NULL) then BEGIN SELECT FIRST 1 E.CEP, E.LOGRADOURO, E.NR, E.COMPLEMENTO, E.BAIRRO, CD.DESCRICAO, CD.CODCIDADE, UF.SIGLA FROM ENDERECOSCLI E JOIN CIDADES CD ON CD.CODCIDADE = E.CODCIDADE JOIN UF UF ON UF.CODUF = CD.CODUF WHERE E.CODCLIENTE=:CODPESSOA INTO CEP, LOGRADOURO, NR, COMPLEMENTO, BAIRRO, CIDADE, CODCIDADE, :UF; END ELSE BEGIN SELECT FIRST 1 E.CEP, E.LOGRADOURO, E.NR, E.COMPLEMENTO, E.BAIRRO, CD.DESCRICAO, CD.CODCIDADE, UF.SIGLA FROM ENDERECOSCLI E JOIN CIDADES CD ON CD.CODCIDADE = E.CODCIDADE JOIN UF UF ON UF.CODUF = CD.CODUF WHERE E.CODENDCLI=:CODENDCLI INTO CEP, LOGRADOURO, NR, COMPLEMENTO, BAIRRO, CIDADE, CODCIDADE, :UF; END SELECT FIRST 1 CC.DDD || '-' || CC.PREFIXO || '-' || CC.SUFIXO FROM CONTATOSCLI CC WHERE CC.CODCLIENTE=:CODPESSOA INTO :FONE; if (:NOME IS NULL) then NOME = 'CLIENTE NÃO INFORMADO'; SUSPEND; END IF (TIPOMOV IN ('CO','PC','CE','DS','NS', 'NF','DP')) then BEGIN TIPOPESSOA='J'; SELECT FM.CODFORNECEDOR FROM FORNMOVIMENTO FM WHERE FM.CODMOVIMENTO=:CODMOVIMENTO INTO :CODPESSOA; SELECT F.RAZAOSOCIAL, F.NOME, F.CGCCPF, F.RGIE, NULL FROM FORNECEDORES F WHERE F.CODFORNECEDOR=:CODPESSOA INTO :NOMEFANTAZIA, :NOME, :CPFCNPJ, :RGIE, :DATANASC; TIPO = 'Fornecedor'; SELECT FIRST 1 EF.CEP, EF.LOGRADOURO, EF.NR, EF.COMPLEMENTO, EF.BAIRRO, CD.DESCRICAO, CD.CODCIDADE, UF.SIGLA FROM ENDERECOSFORN EF JOIN CIDADES CD ON CD.CODCIDADE = EF.CODCIDADE JOIN UF UF ON UF.CODUF = CD.CODUF WHERE EF.CODFORNECEDOR=:CODPESSOA INTO CEP, LOGRADOURO, NR, COMPLEMENTO, BAIRRO, CIDADE, CODCIDADE, :UF; SELECT FIRST 1 CF.DDD || '-' || CF.PREFIXO || '-' || CF.SUFIXO FROM CONTATOSFORN CF WHERE CF.CODFORNECEDOR =:CODPESSOA INTO :FONE; if (:NOME IS NULL) then NOME = 'FORNECEDOR NÃO INFORMADO'; SUSPEND; END end ^ SET TERM ; ^ /*------ 30/04/2019 12:18:50 --------*/ SET TERM ^ ; ALTER PROCEDURE SINTEGRA54 ( DATAI DATE, DATAF DATE) RETURNS ( CODITEMMOVIMENTO INTEGER, CODMOVIMENTO INTEGER, CODUNIDADE INTEGER, CODPRODUTO INTEGER, CODTABELA INTEGER, REFERENCIA VARCHAR(20), PRODUTO VARCHAR(50), DESCTABELA VARCHAR(30), CODGRUPO INTEGER, GRUPO VARCHAR(30), CODFABRICANTE INTEGER, FABRICANTE VARCHAR(40), QTD FLOAT, UNIDADE VARCHAR(30), VALOR FLOAT, TOTAL FLOAT, BAIXADO CHAR(1), VALORUNIT FLOAT, DESCONTO FLOAT, TOTALUNIT FLOAT, CODALIQUOTA VARCHAR(10), ALIQUOTA FLOAT, SIGLA VARCHAR(3), DESCRICAOADICIONAL VARCHAR(100), DESCADICIONAL VARCHAR(50), APRESENTACAO VARCHAR(40), CODTABELASIMPLES INTEGER, COR VARCHAR(40), QTDENTREGUE FLOAT, FALTAENTREGA FLOAT, VOLUMES INTEGER, ICMS FLOAT, IPI FLOAT, TOTALIPI FLOAT, TOTALICMS FLOAT, ACRESSUGESTAO FLOAT, ESTOQUEATUAL FLOAT, COMISSAO FLOAT, VALORCOMISSAO FLOAT, CORGRADE VARCHAR(40), TAM VARCHAR(5), NR INTEGER, DESCONTOMOV FLOAT, TOTALCOMDESCONTO FLOAT, VALORAVISTA FLOAT, TOTALAVISTA FLOAT, FABRICADO CHAR(1), DATAFAB DATE, CODNCM VARCHAR(30), CST VARCHAR(10), INFPRVENDA FLOAT, CFOP VARCHAR(10), ORIGEM VARCHAR(4), NRDOCUMENTO VARCHAR(20), CPFCNPJ VARCHAR(20), TIPODOC VARCHAR(20), TIPOCFOP CHAR(1)) AS declare variable TEMPCODPROD INTEGER; declare variable CODITEMMOV INTEGER; declare variable TEMPDESC VARCHAR(50); declare variable DESCPROD VARCHAR(50); declare variable TEMPDESCTABELA VARCHAR(30); declare variable ENTREGAMAD FLOAT; declare variable ENTREGAPD FLOAT; declare variable TCODALIQUOTA VARCHAR(10); declare variable TDESCONTOMOV FLOAT; declare variable TIPODESCONTOMOV CHAR(1); declare variable TOTALMOV FLOAT; declare variable TIPOMOV VARCHAR(5); begin FOR SELECT C.TIPO, DM.TIPODOC, M.TIPO, I.CODITEMMOVIMENTO, I.CODMOVIMENTO, I.CODTABELA, I.QTD, I.VALOR, I.QTD * I.VALOR, I.BAIXADO, I.VALORUNIT, I.DESCONTO, I.QTD * I.VALORUNIT, I.CODITEMMOVIMENTO, I.CODTABELA, I.CODUNIDADE, I.CODTABELASIMPLES, I.VOLUMES, I.ICMS, I.IPI, I.ESTOQUEATUAL, I.COMISSAO, I.CODALIQUOTA, I.FABRICADO, I.DATAFAB, I.CFOP, I.VALORAVISTA, I.QTD * I.VALORAVISTA FROM MOVIMENTOSPRODUTOS M JOIN DOCUMENTOMOV DM ON DM.CODMOVIMENTO=M.CODMOVIMENTO JOIN CFOP C ON C.CODCFOP=DM.CODCFOP JOIN ITENSMOVIMENTOPROD I ON (I.CODMOVIMENTO=M.CODMOVIMENTO) WHERE (M.DATA>=:DATAI) AND (M.DATA<=:DATAF) AND (I.TIPO IS NULL or I.TIPO='I') AND DM.TIPODOC<>'ECF' INTO :TIPOCFOP, :TIPODOC, :TIPOMOV, :CODITEMMOVIMENTO, :CODMOVIMENTO, :CODTABELA, :QTD, :VALOR, :TOTAL, :BAIXADO, :VALORUNIT, :DESCONTO, :TOTALUNIT, :CODITEMMOV, :TEMPCODPROD, :CODUNIDADE, :CODTABELASIMPLES, :VOLUMES, :ICMS, :IPI, :ESTOQUEATUAL, :COMISSAO, :CODALIQUOTA, :FABRICADO, :DATAFAB, :CFOP, :VALORAVISTA, :TOTALAVISTA DO BEGIN CORGRADE = NULL; TAM = NULL; NR = NULL; SELECT GP.COR, GP.TAM, GP.NR FROM GRADEPRODUTO GP WHERE GP.CODPRODUTO=:CODTABELA INTO :CORGRADE, :TAM, :NR; SELECT CPFCNPJ FROM SPPESSOAMOV(:CODMOVIMENTO, :TIPOMOV) INTO :CPFCNPJ; SELECT DM.NRDOCUMENTO FROM SPDOCUMENTOMOV(:CODMOVIMENTO) DM INTO :NRDOCUMENTO; CODNCM=NULL; SELECT SP.CODIGO,SP.REFERENCIA,SP.DESCRICAO,SP.DESCTABELA,SP.CODGRUPO, SP.GRUPO, SP.CODFABRICANTE, SP.FABRICANTE, SP.CODALIQUOTA, SP.ALIQUOTA, SP.DESCRICAO, SP.DESCTABELA, SP.APRESENTACAO, SP.ACRESSUGESTAO, SP.CODNCM, SP.CST, SP.PRECOVENDA, SP.ORIGEM FROM SPPESQPRODUTOSPORCODIGO(:CODTABELA) SP INTO :CODPRODUTO, :REFERENCIA, :PRODUTO, :DESCTABELA, :CODGRUPO, :GRUPO, :CODFABRICANTE, :FABRICANTE, :TCODALIQUOTA, :ALIQUOTA, :DESCPROD, :TEMPDESCTABELA, :APRESENTACAO, :ACRESSUGESTAO, :CODNCM, :CST, :INFPRVENDA, :ORIGEM; if (CODALIQUOTA iS NULL) then CODALIQUOTA=TCODALIQUOTA; TEMPDESC =''; SELECT IMD.DESCRICAOADICIONAL FROM IMDESCRICAOADICIONAL IMD WHERE IMD.CODITEMMOVIMENTO=:CODITEMMOV INTO :TEMPDESC; if (TEMPDESC IS NULL) then TEMPDESC =''; if (TEMPDESCTABELA IS NULL) then TEMPDESCTABELA =''; DESCRICAOADICIONAL = DESCPROD || ' ' || TEMPDESC || ' ' || TEMPDESCTABELA; DESCADICIONAL = TEMPDESC; COR = NULL; SELECT TS.DESCRICAO FROM TABELASSIMPLES TS WHERE TS.CODTABELASIMPLES=:CODTABELASIMPLES INTO :COR; SELECT UM.DESCRICAO, UM.SIGLA FROM UNIDADEMEDIDA UM WHERE UM.CODUNIDADE=:CODUNIDADE INTO :UNIDADE, :SIGLA; SELECT SUM(IO.QTD) FROM PRODUTOSOEMAD IO WHERE IO.CODITEMMOVIMENTO=:CODITEMMOV INTO :ENTREGAMAD; if (ENTREGAMAD IS NULL) then ENTREGAMAD=0; SELECT SUM(IPD.QTD) FROM PRODUTOSOEPD IPD WHERE IPD.CODITEMMOVIMENTO=:CODITEMMOV INTO :ENTREGAPD; if (ENTREGAPD IS NULL) then ENTREGAPD=0; QTDENTREGUE = ENTREGAMAD + ENTREGAPD; FALTAENTREGA = QTD - QTDENTREGUE; if (COMISSAO IS NULL) then VALORCOMISSAO =0; ELSE VALORCOMISSAO = (COMISSAO * TOTAL)/100; if (IPI >0 ) then TOTALIPI = IPI * ((QTD * VALOR)/100); ELSE TOTALIPI = 0; if (ICMS >0 ) then TOTALICMS = ICMS * ((QTD * VALOR)/100); ELSE TOTALICMS = 0; SELECT DM.DESCONTO, DM.TIPODESCONTO, DM.VALORMOVIMENTO FROM DADOSMOVIMENTO DM WHERE DM.CODMOVIMENTO=:CODMOVIMENTO INTO :TDESCONTOMOV, :TIPODESCONTOMOV, :TOTALMOV; DESCONTOMOV=0; if (TIPODESCONTOMOV='%') then DESCONTOMOV=TDESCONTOMOV; if (TIPODESCONTOMOV='$') then BEGIN DESCONTOMOV=(100 * TDESCONTOMOV)/ TOTALMOV; END if (DESCONTOMOV>0) then TOTALCOMDESCONTO = TOTAL - ((TOTAL * DESCONTOMOV)/100); ELSE TOTALCOMDESCONTO = NULL; suspend; END end ^ SET TERM ; ^ /*------ 30/04/2019 12:18:50 --------*/ SET TERM ^ ; ALTER PROCEDURE SPMOVPORCFOP ( DATAI DATE, DATAF DATE) RETURNS ( CODMOVIMENTO INTEGER, DATA DATE, NRDOCUMENTO VARCHAR(20), CFOP VARCHAR(40), TIPO CHAR(1), TIPOMOV VARCHAR(2), NATUREZA VARCHAR(10), TOTAL FLOAT, DESCSITUACAO VARCHAR(30), SITUACAO VARCHAR(2), CODFILIAL INTEGER, FILIAL VARCHAR(40), NFNFEMOV VARCHAR(20), NOMEPESSOA VARCHAR(70), TIPODOC VARCHAR(20), RETORNONFE VARCHAR(50), CODEMPRESA INTEGER) AS begin FOR SELECT M.CODMOVIMENTO, M.DATA, CF.DESCRICAO , CF.NATUREZA, CF.TIPO, DM.NRDOCUMENTO, M.TIPO, M.SITUACAO, M.CODFILIAL, NF.NRDOCUMENTO, DM.TIPODOC, DM.RETORNONFE, M.CODEMPRESA FROM MOVIMENTOSPRODUTOS M JOIN DOCUMENTOMOV DM ON (DM.CODMOVIMENTO = M.CODMOVIMENTO) JOIN CFOP CF ON (CF.CODCFOP = DM.CODCFOP) LEFT JOIN NFEMOV NF ON (NF.CODMOVIMENTO = M.CODMOVIMENTO) WHERE M.DATA>=:DATAI AND M.DATA<=:DATAF INTO :CODMOVIMENTO, :DATA, :CFOP, :NATUREZA, :TIPO, :NRDOCUMENTO, :TIPOMOV, :SITUACAO, :CODFILIAL, :NFNFEMOV, :TIPODOC, :RETORNONFE, :CODEMPRESA DO BEGIN SELECT F.NOME FROM FILIAIS F WHERE CODFILIAL=:CODFILIAL INTO :FILIAL; NOMEPESSOA=NULL; select NOME FROM sppessoamov(:CODMOVIMENTO, :TIPOMOV) INTO :NOMEPESSOA; IF (SITUACAO IS NULL) then DESCSITUACAO=''; IF (SITUACAO='CO') then DESCSITUACAO='CONFERIDA'; IF (SITUACAO='C') then DESCSITUACAO='CANCELADA'; IF (SITUACAO='A') then DESCSITUACAO='ABERTA'; IF (SITUACAO='I') then DESCSITUACAO='INICIADA'; IF (SITUACAO='F') then DESCSITUACAO='FINALIZADA'; IF (SITUACAO='NF') then DESCSITUACAO='NF CONFIRMADA'; SELECT TOTALGERAL FROM TOTALMOV(:CODMOVIMENTO) INTO :TOTAL; suspend; END end ^ SET TERM ; ^ /*------ 30/04/2019 12:18:50 --------*/ SET TERM ^ ; ALTER PROCEDURE SPNFEMOV RETURNS ( CODNFEMOV INTEGER, CODEMPRESANFE INTEGER, CODMOVIMENTO INTEGER, CODOE INTEGER, GERADA VARCHAR(1), ASSINADA VARCHAR(1), ENVIADA VARCHAR(1), LOTE VARCHAR(50), NR VARCHAR(10), STATUS VARCHAR(1), TIPO VARCHAR(10), VALIDA VARCHAR(1), DATA DATE, CODPESSOA INTEGER, NOME VARCHAR(70), TIPODOC VARCHAR(20), NRDOC VARCHAR(20), EMPRESA VARCHAR(70), DATAENVIO DATE, NRDOCUMENTONOTA VARCHAR(20), NRRECIBO VARCHAR(30)) AS declare variable TIPOMOV VARCHAR(10); begin FOR select N.CODNFEMOV, N.CODEMPRESANFE, N.CODMOVIMENTO, N.CODOE, N.GERADA, N.ASSINADA, N.ENVIADA, N.LOTE, N.NR, N.STATUS, N.TIPO, N.VALIDA, DM.TIPODOC, DM.NRDOCUMENTO, E.RAZAO, N.DATA, N.NRDOCUMENTO, N.NRRECIBO from NFEMOV N LEFT JOIN EMPRESASNFE E ON (E.CODEMPRESANFE = N.CODEMPRESANFE) JOIN DOCUMENTOMOV DM ON (DM.CODMOVIMENTO = N.CODMOVIMENTO) into :CODNFEMOV, :CODEMPRESANFE, :CODMOVIMENTO, :CODOE, :GERADA, :ASSINADA, :ENVIADA, :LOTE, :NR, :STATUS, :TIPO, :VALIDA, :TIPODOC, :NRDOC, :EMPRESA, :DATAENVIO, :NRDOCUMENTONOTA, :NRRECIBO DO BEGIN SELECT M.tipo, M.DATA FROM movimentosprodutos M WHERE M.codmovimento=:CODMOVIMENTO INTO :TIPOMOV, :DATA; SELECT CODPESSOA, NOME FROM sppessoamov(:CODMOVIMENTO, :TIPOMOV) INTO :CODPESSOA, :NOME; suspend; END end ^ SET TERM ; ^ /*------ 30/04/2019 12:18:50 --------*/ SET TERM ^ ; ALTER PROCEDURE SPPESQMOVSINTEGRA ( DATAI DATE, DATAF DATE) RETURNS ( CODMOVIMENTO INTEGER, DATA DATE, TIPO VARCHAR(2), SITUACAO VARCHAR(2), CODIGOCONTABIL VARCHAR(20), CODFUNCIONARIO INTEGER, NRDOCUMENTO VARCHAR(20), VALOR FLOAT, CODFILIAL INTEGER, CODACUMULADOR INTEGER, CODESPECIE INTEGER, BASEICMS FLOAT, ICMS FLOAT, TIPODOC VARCHAR(20), NATUREZA VARCHAR(10), TOTALIPI FLOAT, CPFCNPJ VARCHAR(20), RGIE VARCHAR(20), NOME VARCHAR(70), CODPESSOA INTEGER, TIPOPESSOA VARCHAR(5), UF CHAR(2), TIPOCFOP CHAR(1)) AS begin FOR SELECT M.CODMOVIMENTO, M.DATA, M.TIPO, M.SITUACAO, M.CODIGOCONTABIL, M.CODFUNCIONARIO, DM.NRDOCUMENTO, M.CODFILIAL, M.CODACUMULADOR, M.CODESPECIE, DM.BASEICMS, DM.ICMS, DM.TIPODOC, CF.NATUREZA, M.TOTALIPI, CF.TIPO FROM MOVIMENTOSPRODUTOS M JOIN DOCUMENTOMOV DM ON (DM.CODMOVIMENTO = M.CODMOVIMENTO) JOIN CFOP CF ON (CF.CODCFOP = DM.CODCFOP) LEFT JOIN PLANOSDECONTAS PC ON (PC.CODIGOCONTABIL = M.CODIGOCONTABIL) WHERE M.DATA>=:DATAI AND M.DATA<=:DATAF INTO CODMOVIMENTO, DATA, TIPO, SITUACAO, CODIGOCONTABIL, CODFUNCIONARIO, NRDOCUMENTO, CODFILIAL, CODACUMULADOR, CODESPECIE, :BASEICMS, :ICMS, :TIPODOC, :NATUREZA, :TOTALIPI, :TIPOCFOP DO BEGIN CODPESSOA = NULL; TIPOPESSOA = NULL; NOME = NULL; CPFCNPJ = NULL; RGIE = NULL; SELECT CODPESSOA, TIPOPESSOA, NOME, CPFCNPJ, RGIE FROM SPPESSOAMOV(:CODMOVIMENTO, :TIPO) INTO :CODPESSOA, :TIPOPESSOA, :NOME, :CPFCNPJ, :RGIE; SELECT TOTALGERAL FROM TOTALMOV(:CODMOVIMENTO) INTO :VALOR; UF = NULL; SELECT FIRST(1) UF FROM SPENDERECOSPESSOAMOV (:CODMOVIMENTO) INTO :UF; suspend; END end ^ SET TERM ; ^ /*------ 30/04/2019 12:18:50 --------*/ SET TERM ^ ; ALTER PROCEDURE SPPESQNF ( DATAI DATE, DATAF DATE) RETURNS ( CODMOVIMENTO INTEGER, DATA DATE, NRDOCUMENTO VARCHAR(20), CFOP VARCHAR(40), TIPO CHAR(1), TIPOMOV VARCHAR(2), NATUREZA VARCHAR(10), TOTAL FLOAT, DESCSITUACAO VARCHAR(30), SITUACAO VARCHAR(2), CODFILIAL INTEGER, FILIAL VARCHAR(40), NFNFEMOV VARCHAR(20), NOMEPESSOA VARCHAR(70), TIPODOC VARCHAR(20), RETORNONFE VARCHAR(50)) AS begin FOR SELECT M.CODMOVIMENTO, M.DATA, CF.DESCRICAO , CF.NATUREZA, CF.TIPO, DM.NRDOCUMENTO, M.TIPO, M.SITUACAO, M.CODFILIAL, NF.NRDOCUMENTO, DM.TIPODOC, DM.RETORNONFE FROM MOVIMENTOSPRODUTOS M JOIN DOCUMENTOMOV DM ON (DM.CODMOVIMENTO = M.CODMOVIMENTO) LEFT JOIN CFOP CF ON (CF.CODCFOP = DM.CODCFOP) LEFT JOIN NFEMOV NF ON (NF.CODMOVIMENTO = M.CODMOVIMENTO) WHERE M.DATA>=:DATAI AND M.DATA<=:DATAF AND DM.tipodoc IN('NFE', 'NFCE') INTO :CODMOVIMENTO, :DATA, :CFOP, :NATUREZA, :TIPO, :NRDOCUMENTO, :TIPOMOV, :SITUACAO, :CODFILIAL, :NFNFEMOV, :TIPODOC, :RETORNONFE DO BEGIN SELECT F.NOME FROM FILIAIS F WHERE CODFILIAL=:CODFILIAL INTO :FILIAL; NOMEPESSOA=NULL; select NOME FROM sppessoamov(:CODMOVIMENTO, :TIPOMOV) INTO :NOMEPESSOA; IF (SITUACAO IS NULL) then DESCSITUACAO=''; IF (SITUACAO='CO') then DESCSITUACAO='CONFERIDA'; IF (SITUACAO='C') then DESCSITUACAO='CANCELADA'; IF (SITUACAO='A') then DESCSITUACAO='ABERTA'; IF (SITUACAO='I') then DESCSITUACAO='INICIADA'; IF (SITUACAO='F') then DESCSITUACAO='FINALIZADA'; IF (SITUACAO='NF') then DESCSITUACAO='NF CONFIRMADA'; SELECT TOTALGERAL FROM TOTALMOV(:CODMOVIMENTO) INTO :TOTAL; suspend; END end ^ SET TERM ; ^ /*------ 05/05/2019 00:45:55 --------*/ SET TERM ^ ; ALTER PROCEDURE SPCODBARRAS ( CODEMPRESA INTEGER) RETURNS ( CODPRODUTO INTEGER, CODBARRAS VARCHAR(30), EQUIVALENCIA FLOAT) AS begin FOR SELECT CODPRODUTO , CODBARRAS, 1 FROM PRODUTOS P WHERE P.CODEMPRESA=:CODEMPRESA AND P.LIXEIRA<>'S' INTO :CODPRODUTO, :CODBARRAS, :EQUIVALENCIA DO suspend; FOR SELECT CB.CODPRODUTO , CB.CODBARRAS, CB.EQUIVALENCIA FROM PRODUTOSCODBARRAS CB JOIN PRODUTOS P ON CB.CODPRODUTO=P.CODPRODUTO WHERE P.CODEMPRESA=:CODEMPRESA AND P.LIXEIRA<>'S' INTO :CODPRODUTO, :CODBARRAS, :EQUIVALENCIA DO suspend; end ^ SET TERM ; ^ /*------ 05/05/2019 00:46:28 --------*/ SET TERM ^ ; ALTER PROCEDURE SPCODBARRAS ( CODEMPRESA INTEGER) RETURNS ( CODPRODUTO INTEGER, CODBARRAS VARCHAR(30), EQUIVALENCIA FLOAT) AS begin FOR SELECT CODPRODUTO , CODBARRAS, 1 FROM PRODUTOS P WHERE P.CODEMPRESA=:CODEMPRESA AND P.LIXEIRA<>'S' INTO :CODPRODUTO, :CODBARRAS, :EQUIVALENCIA DO suspend; FOR SELECT CB.CODPRODUTO , CB.CODBARRAS, CB.EQUIVALENCIA FROM PRODUTOSCODBARRAS CB JOIN PRODUTOS P ON CB.CODPRODUTO=P.CODPRODUTO WHERE P.CODEMPRESA=:CODEMPRESA AND P.LIXEIRA<>'S' INTO :CODPRODUTO, :CODBARRAS, :EQUIVALENCIA DO suspend; end ^ SET TERM ; ^ /*------ 08/05/2019 01:45:01 --------*/ SET TERM ^ ; create procedure P_CPLIT ( itexto VARCHAR(4000), iseparador CHAR(1)) returns ( osplit VARCHAR(50) ) as DECLARE VARIABLE vtexto VARCHAR(4000); DECLARE VARIABLE vposicao INTEGER; DECLARE VARIABLE vposicao_inicial INTEGER; DECLARE VARIABLE vsplit VARCHAR(4000); begin vtexto = itexto; vposicao_inicial = 1; vposicao = 1; IF (iseparador IS NULL OR itexto IS NULL) THEN BEGIN SUSPEND; END ELSE BEGIN WHILE (CHAR_LENGTH(vtexto) > 0) DO BEGIN vposicao = POSITION (:iseparador, vtexto, vposicao_inicial); IF (vposicao <= 0) THEN BEGIN vsplit = SUBSTRING (:vtexto FROM :vposicao_inicial FOR CHAR_LENGTH (:vtexto) - vposicao_inicial + 1); IF (NOT :vsplit IS NULL AND NOT :vsplit = '') THEN BEGIN osplit = :vsplit; SUSPEND; END BREAK; END vsplit = SUBSTRING (:vtexto FROM :vposicao_inicial FOR :vposicao - vposicao_inicial); IF (NOT :vsplit IS NULL AND NOT :vsplit = '') THEN BEGIN osplit = :vsplit; END vsplit = NULL; vposicao_inicial = :vposicao + 1; SUSPEND; END END end; ^ SET TERM ; ^ /*------ 08/05/2019 01:49:08 --------*/ SET TERM ^ ; create procedure SPPALAVRASCHAVES returns ( osplit VARCHAR(50) ) as DECLARE VARIABLE vtexto VARCHAR(4000); DECLARE VARIABLE vposicao INTEGER; DECLARE VARIABLE vposicao_inicial INTEGER; DECLARE VARIABLE vsplit VARCHAR(4000); DECLARE VARIABLE iseparador VARCHAR(1); begin iseparador = ';'; FOR SELECT SE.PALAVRASCHAVES FROM SOLUCOESERROS SE INTO :vtexto DO BEGIN vposicao_inicial = 1; vposicao = 1; WHILE (CHAR_LENGTH(vtexto) > 0) DO BEGIN vposicao = POSITION (:iseparador, vtexto, vposicao_inicial); IF (vposicao <= 0) THEN BEGIN vsplit = SUBSTRING (:vtexto FROM :vposicao_inicial FOR CHAR_LENGTH (:vtexto) - vposicao_inicial + 1); IF (NOT :vsplit IS NULL AND NOT :vsplit = '') THEN BEGIN osplit = :vsplit; SUSPEND; END BREAK; END vsplit = SUBSTRING (:vtexto FROM :vposicao_inicial FOR :vposicao - vposicao_inicial); IF (NOT :vsplit IS NULL AND NOT :vsplit = '') THEN BEGIN osplit = :vsplit; END vsplit = NULL; vposicao_inicial = :vposicao + 1; SUSPEND; END END end; ^ SET TERM ; ^ /*------ 08/05/2019 01:49:48 --------*/ SET TERM ^ ; ALTER procedure SPPALAVRASCHAVES returns ( PALAVRA VARCHAR(50) ) as DECLARE VARIABLE vtexto VARCHAR(4000); DECLARE VARIABLE vposicao INTEGER; DECLARE VARIABLE vposicao_inicial INTEGER; DECLARE VARIABLE vsplit VARCHAR(4000); DECLARE VARIABLE iseparador VARCHAR(1); begin iseparador = ';'; FOR SELECT SE.PALAVRASCHAVES FROM SOLUCOESERROS SE INTO :vtexto DO BEGIN vposicao_inicial = 1; vposicao = 1; WHILE (CHAR_LENGTH(vtexto) > 0) DO BEGIN vposicao = POSITION (:iseparador, vtexto, vposicao_inicial); IF (vposicao <= 0) THEN BEGIN vsplit = SUBSTRING (:vtexto FROM :vposicao_inicial FOR CHAR_LENGTH (:vtexto) - vposicao_inicial + 1); IF (NOT :vsplit IS NULL AND NOT :vsplit = '') THEN BEGIN PALAVRA = :vsplit; SUSPEND; END BREAK; END vsplit = SUBSTRING (:vtexto FROM :vposicao_inicial FOR :vposicao - vposicao_inicial); IF (NOT :vsplit IS NULL AND NOT :vsplit = '') THEN BEGIN PALAVRA = :vsplit; END vsplit = NULL; vposicao_inicial = :vposicao + 1; SUSPEND; END END end; ^ SET TERM ; ^ /*------ 08/05/2019 01:55:43 --------*/ SET TERM ^ ; ALTER PROCEDURE SPPESSOAMOV ( CODMOVIMENTO INTEGER, TIPOMOV VARCHAR(5)) RETURNS ( CODPESSOA INTEGER, NOME VARCHAR(70), NOMEFANTAZIA VARCHAR(70), TIPO VARCHAR(15), CPFCNPJ VARCHAR(20), RGIE VARCHAR(20), DATANASC DATE, TIPOPESSOA VARCHAR(5), CEP VARCHAR(8), LOGRADOURO VARCHAR(50), NR VARCHAR(5), COMPLEMENTO VARCHAR(30), BAIRRO VARCHAR(50), CIDADE VARCHAR(30), CODCIDADE INTEGER, UF VARCHAR(2), FONE VARCHAR(20), CPAIS INTEGER, DESCPAIS VARCHAR(50), CONTRIBUINTEICMS CHAR(1)) AS declare variable CODENDCLI INTEGER; begin if (TIPOMOV IS NULL) then BEGIN SELECT M.TIPO FROM MOVIMENTOSPRODUTOS M WHERE M.CODMOVIMENTO=:CODMOVIMENTO INTO :TIPOMOV; END CPAIS = 1058; DESCPAIS = 'BRASIL'; IF (TIPOMOV IN ('VE','PV','OR','CS','DE','NE','TR','NC','LO', 'RE')) then BEGIN TIPO = 'Cliente'; SELECT CM.CODCLIENTE, CM.CODENDCLI FROM CLIENTEMOVIMENTO CM WHERE CM.CODMOVIMENTO=:CODMOVIMENTO INTO :CODPESSOA, :CODENDCLI; SELECT C.NOME, C.TIPO, C.CONTRIBUINTEICMS FROM CLIENTES C WHERE C.CODCLIENTE=:CODPESSOA INTO :NOME, :TIPOPESSOA, :CONTRIBUINTEICMS; if (TIPOPESSOA='F') then BEGIN NOMEFANTAZIA = NULL; SELECT CF.CPF, CF.RG, CF.datanasc FROM CLIENTEFISICO CF WHERE CF.CODCLIENTE=:CODPESSOA INTO :CPFCNPJ, :RGIE, :DATANASC; END if (TIPOPESSOA='J') then BEGIN SELECT CJ.RAZAO, CJ.CNPJ, CJ.IE, NULL FROM CLIENTEJURIDICO CJ WHERE CJ.CODCLIENTE=:CODPESSOA INTO :NOMEFANTAZIA, :CPFCNPJ, :RGIE, :DATANASC; END if (CODENDCLI IS NULL) then BEGIN SELECT FIRST 1 E.CEP, E.LOGRADOURO, E.NR, E.COMPLEMENTO, E.BAIRRO, CD.DESCRICAO, CD.CODCIDADE, UF.SIGLA FROM ENDERECOSCLI E JOIN CIDADES CD ON CD.CODCIDADE = E.CODCIDADE JOIN UF UF ON UF.CODUF = CD.CODUF WHERE E.CODCLIENTE=:CODPESSOA INTO CEP, LOGRADOURO, NR, COMPLEMENTO, BAIRRO, CIDADE, CODCIDADE, :UF; END ELSE BEGIN SELECT FIRST 1 E.CEP, E.LOGRADOURO, E.NR, E.COMPLEMENTO, E.BAIRRO, CD.DESCRICAO, CD.CODCIDADE, UF.SIGLA FROM ENDERECOSCLI E JOIN CIDADES CD ON CD.CODCIDADE = E.CODCIDADE JOIN UF UF ON UF.CODUF = CD.CODUF WHERE E.CODENDCLI=:CODENDCLI INTO CEP, LOGRADOURO, NR, COMPLEMENTO, BAIRRO, CIDADE, CODCIDADE, :UF; END SELECT FIRST 1 CC.DDD || '-' || CC.PREFIXO || '-' || CC.SUFIXO FROM CONTATOSCLI CC WHERE CC.CODCLIENTE=:CODPESSOA INTO :FONE; if (:NOME IS NULL) then NOME = 'CLIENTE NÃO INFORMADO'; SUSPEND; END IF (TIPOMOV IN ('CO','PC','CE','DS','NS', 'NF','DP')) then BEGIN TIPOPESSOA='J'; SELECT FM.CODFORNECEDOR FROM FORNMOVIMENTO FM WHERE FM.CODMOVIMENTO=:CODMOVIMENTO INTO :CODPESSOA; SELECT F.RAZAOSOCIAL, F.NOME, F.CGCCPF, F.RGIE, NULL FROM FORNECEDORES F WHERE F.CODFORNECEDOR=:CODPESSOA INTO :NOMEFANTAZIA, :NOME, :CPFCNPJ, :RGIE, :DATANASC; TIPO = 'Fornecedor'; SELECT FIRST 1 EF.CEP, EF.LOGRADOURO, EF.NR, EF.COMPLEMENTO, EF.BAIRRO, CD.DESCRICAO, CD.CODCIDADE, UF.SIGLA FROM ENDERECOSFORN EF JOIN CIDADES CD ON CD.CODCIDADE = EF.CODCIDADE JOIN UF UF ON UF.CODUF = CD.CODUF WHERE EF.CODFORNECEDOR=:CODPESSOA INTO CEP, LOGRADOURO, NR, COMPLEMENTO, BAIRRO, CIDADE, CODCIDADE, :UF; SELECT FIRST 1 CF.DDD || '-' || CF.PREFIXO || '-' || CF.SUFIXO FROM CONTATOSFORN CF WHERE CF.CODFORNECEDOR =:CODPESSOA INTO :FONE; if (:NOME IS NULL) then NOME = 'FORNECEDOR NÃO INFORMADO'; SUSPEND; END end ^ SET TERM ; ^ /*------ 09/05/2019 09:24:02 --------*/ SET TERM ^ ; ALTER PROCEDURE SPPESSOAMOV ( CODMOVIMENTO INTEGER, TIPOMOV VARCHAR(5)) RETURNS ( CODPESSOA INTEGER, NOME VARCHAR(70), NOMEFANTAZIA VARCHAR(70), TIPO VARCHAR(15), CPFCNPJ VARCHAR(20), RGIE VARCHAR(20), DATANASC DATE, TIPOPESSOA VARCHAR(5), CEP VARCHAR(8), LOGRADOURO VARCHAR(50), NR VARCHAR(5), COMPLEMENTO VARCHAR(30), BAIRRO VARCHAR(50), CIDADE VARCHAR(30), CODCIDADE INTEGER, UF VARCHAR(2), FONE VARCHAR(20), CPAIS INTEGER, DESCPAIS VARCHAR(50), CONTRIBUINTEICMS CHAR(1)) AS declare variable CODENDCLI INTEGER; begin if (TIPOMOV IS NULL) then BEGIN SELECT M.TIPO FROM MOVIMENTOSPRODUTOS M WHERE M.CODMOVIMENTO=:CODMOVIMENTO INTO :TIPOMOV; END CPAIS = 1058; DESCPAIS = 'BRASIL'; IF (TIPOMOV IN ('VE','PV','OR','CS','DE','NE','TR','NC','LO', 'RE')) then BEGIN TIPO = 'Cliente'; SELECT CM.CODCLIENTE, CM.CODENDCLI FROM CLIENTEMOVIMENTO CM WHERE CM.CODMOVIMENTO=:CODMOVIMENTO INTO :CODPESSOA, :CODENDCLI; SELECT C.NOME, C.TIPO, C.CONTRIBUINTEICMS FROM CLIENTES C WHERE C.CODCLIENTE=:CODPESSOA INTO :NOME, :TIPOPESSOA, :CONTRIBUINTEICMS; if (TIPOPESSOA='F') then BEGIN NOMEFANTAZIA = NULL; SELECT CF.CPF, CF.RG, CF.datanasc FROM CLIENTEFISICO CF WHERE CF.CODCLIENTE=:CODPESSOA INTO :CPFCNPJ, :RGIE, :DATANASC; END if (TIPOPESSOA='J') then BEGIN SELECT CJ.RAZAO, CJ.CNPJ, CJ.IE, NULL FROM CLIENTEJURIDICO CJ WHERE CJ.CODCLIENTE=:CODPESSOA INTO :NOMEFANTAZIA, :CPFCNPJ, :RGIE, :DATANASC; END if (CODENDCLI IS NULL) then BEGIN SELECT FIRST 1 E.CEP, E.LOGRADOURO, E.NR, E.COMPLEMENTO, E.BAIRRO, CD.DESCRICAO, CD.CODCIDADE, UF.SIGLA FROM ENDERECOSCLI E JOIN CIDADES CD ON CD.CODCIDADE = E.CODCIDADE JOIN UF UF ON UF.CODUF = CD.CODUF WHERE E.CODCLIENTE=:CODPESSOA INTO CEP, LOGRADOURO, NR, COMPLEMENTO, BAIRRO, CIDADE, CODCIDADE, :UF; END ELSE BEGIN SELECT FIRST 1 E.CEP, E.LOGRADOURO, E.NR, E.COMPLEMENTO, E.BAIRRO, CD.DESCRICAO, CD.CODCIDADE, UF.SIGLA FROM ENDERECOSCLI E JOIN CIDADES CD ON CD.CODCIDADE = E.CODCIDADE JOIN UF UF ON UF.CODUF = CD.CODUF WHERE E.CODENDCLI=:CODENDCLI INTO CEP, LOGRADOURO, NR, COMPLEMENTO, BAIRRO, CIDADE, CODCIDADE, :UF; END SELECT FIRST 1 CC.DDD || '-' || CC.PREFIXO || '-' || CC.SUFIXO FROM CONTATOSCLI CC WHERE CC.CODCLIENTE=:CODPESSOA INTO :FONE; if (:NOME IS NULL) then NOME = 'CLIENTE NAO INFORMADO'; SUSPEND; END IF (TIPOMOV IN ('CO','PC','CE','DS','NS', 'NF','DP')) then BEGIN TIPOPESSOA='J'; SELECT FM.CODFORNECEDOR FROM FORNMOVIMENTO FM WHERE FM.CODMOVIMENTO=:CODMOVIMENTO INTO :CODPESSOA; SELECT F.RAZAOSOCIAL, F.NOME, F.CGCCPF, F.RGIE, NULL FROM FORNECEDORES F WHERE F.CODFORNECEDOR=:CODPESSOA INTO :NOMEFANTAZIA, :NOME, :CPFCNPJ, :RGIE, :DATANASC; TIPO = 'Fornecedor'; SELECT FIRST 1 EF.CEP, EF.LOGRADOURO, EF.NR, EF.COMPLEMENTO, EF.BAIRRO, CD.DESCRICAO, CD.CODCIDADE, UF.SIGLA FROM ENDERECOSFORN EF JOIN CIDADES CD ON CD.CODCIDADE = EF.CODCIDADE JOIN UF UF ON UF.CODUF = CD.CODUF WHERE EF.CODFORNECEDOR=:CODPESSOA INTO CEP, LOGRADOURO, NR, COMPLEMENTO, BAIRRO, CIDADE, CODCIDADE, :UF; SELECT FIRST 1 CF.DDD || '-' || CF.PREFIXO || '-' || CF.SUFIXO FROM CONTATOSFORN CF WHERE CF.CODFORNECEDOR =:CODPESSOA INTO :FONE; if (:NOME IS NULL) then NOME = 'FORNECEDOR NAO INFORMADO'; SUSPEND; END end ^ SET TERM ; ^ /*------ 09/05/2019 09:45:49 --------*/ SET TERM ^ ; ALTER PROCEDURE SPCODBARRAS ( CODEMPRESA INTEGER) RETURNS ( CODPRODUTO INTEGER, CODBARRAS VARCHAR(30), EQUIVALENCIA FLOAT) AS begin FOR SELECT CODPRODUTO , CODBARRAS, 1 FROM PRODUTOS P WHERE P.CODEMPRESA=:CODEMPRESA AND (P.LIXEIRA IS NULL or P.LIXEIRA='N') INTO :CODPRODUTO, :CODBARRAS, :EQUIVALENCIA DO suspend; FOR SELECT CB.CODPRODUTO , CB.CODBARRAS, CB.EQUIVALENCIA FROM PRODUTOSCODBARRAS CB JOIN PRODUTOS P ON CB.CODPRODUTO=P.CODPRODUTO WHERE P.CODEMPRESA=:CODEMPRESA AND P.LIXEIRA<>'S' INTO :CODPRODUTO, :CODBARRAS, :EQUIVALENCIA DO suspend; end ^ SET TERM ; ^ /*------ 09/05/2019 09:46:20 --------*/ SET TERM ^ ; ALTER PROCEDURE SPCODBARRAS ( CODEMPRESA INTEGER) RETURNS ( CODPRODUTO INTEGER, CODBARRAS VARCHAR(30), EQUIVALENCIA FLOAT) AS begin FOR SELECT CODPRODUTO , CODBARRAS, 1 FROM PRODUTOS P WHERE P.CODEMPRESA=:CODEMPRESA AND (P.LIXEIRA IS NULL or P.LIXEIRA='N') INTO :CODPRODUTO, :CODBARRAS, :EQUIVALENCIA DO suspend; FOR SELECT CB.CODPRODUTO , CB.CODBARRAS, CB.EQUIVALENCIA FROM PRODUTOSCODBARRAS CB JOIN PRODUTOS P ON CB.CODPRODUTO=P.CODPRODUTO WHERE P.CODEMPRESA=:CODEMPRESA AND (P.LIXEIRA IS NULL or P.LIXEIRA='N') INTO :CODPRODUTO, :CODBARRAS, :EQUIVALENCIA DO suspend; end ^ SET TERM ; ^ /*------ 09/05/2019 11:03:45 --------*/ SET TERM ^ ; ALTER PROCEDURE SPCODBARRAS ( CODEMPRESA INTEGER) RETURNS ( CODPRODUTO INTEGER, CODBARRAS VARCHAR(30), EQUIVALENCIA FLOAT, DESCRICAO VARCHAR(30)) AS begin FOR SELECT CODPRODUTO , CODBARRAS, 1, NULL FROM PRODUTOS P WHERE P.CODEMPRESA=:CODEMPRESA AND (P.LIXEIRA IS NULL or P.LIXEIRA='N') INTO :CODPRODUTO, :CODBARRAS, :EQUIVALENCIA, :DESCRICAO DO suspend; FOR SELECT CB.CODPRODUTO , CB.CODBARRAS, CB.EQUIVALENCIA, CB.DESCRICAO FROM PRODUTOSCODBARRAS CB JOIN PRODUTOS P ON CB.CODPRODUTO=P.CODPRODUTO WHERE P.CODEMPRESA=:CODEMPRESA AND (P.LIXEIRA IS NULL or P.LIXEIRA='N') INTO :CODPRODUTO, :CODBARRAS, :EQUIVALENCIA, :DESCRICAO DO suspend; end ^ SET TERM ; ^