/*------ 26/11/2016 01:32:45 --------*/ UPDATE CONFIGURACOES SET COMPILACAO='1.3.7.1'; /*------ 07/01/2018 23:07:45 --------*/ ALTER TABLE DOCUMENTOMOV ADD CAMINHOXML VC250; /*------ 07/01/2018 23:08:06 --------*/ ALTER TABLE DOCUMENTOMOV ADD CAMINHOPDF VC250; /*------ 07/01/2018 23:11:05 --------*/ ALTER TABLE DOCUMENTOMOV ADD MENSAGEMGERACAO VC500; /*------ 08/01/2018 05:43:35 --------*/ CREATE DOMAIN VALOR_18_2 AS NUMERIC(18,2); /*------ 08/01/2018 05:43:41 --------*/ ALTER TABLE DADOSMOVIMENTO ADD VICMS VALOR_18_2; /*------ 08/01/2018 05:44:27 --------*/ ALTER TABLE DADOSMOVIMENTO ADD VBC VALOR_18_2; /*------ 08/01/2018 05:44:59 --------*/ ALTER TABLE DADOSMOVIMENTO ADD TOTALPROD VALOR_18_2; /*------ 08/01/2018 05:45:16 --------*/ ALTER TABLE DADOSMOVIMENTO ADD TOTALIPI VALOR_18_2; /*------ 08/01/2018 05:45:34 --------*/ ALTER TABLE DADOSMOVIMENTO ADD VNF VALOR_18_2; /*------ 08/01/2018 05:56:59 --------*/ CREATE TABLE NOTASDEVOLUCAO( ID CODIGO NOT NULL); /*------ 08/01/2018 05:56:59 --------*/ alter table NOTASDEVOLUCAO add primary key (ID); /*------ 08/01/2018 05:57:15 --------*/ ALTER TABLE NOTASDEVOLUCAO ADD CODMOVIMENTO INTEIRO_NOTNULL NOT NULL ; /*------ 08/01/2018 05:57:43 --------*/ ALTER TABLE NOTASDEVOLUCAO ADD CHAVE VARCHAR_100; /*------ 08/01/2018 06:11:38 --------*/ ALTER TABLE DOCUMENTOMOV ADD TPEMIS CHAR1; /*------ 25/01/2018 11:06:29 --------*/ SET TERM ^ ; ALTER PROCEDURE SPCONTASRECEBER RETURNS ( CODMOVIMENTO INTEGER, CODFILIAL INTEGER, CODFUNCIONARIO INTEGER, DATA DATE, HORA TIME, TIPO VARCHAR(2), CODPLANOPGTO INTEGER, CODPARCELA INTEGER, NRPARCELA INTEGER, DOCUMENTO VARCHAR(20), PAGO CHAR(1), CODCLIENTE INTEGER, CLIENTE VARCHAR(70), PLANOCONTAS VARCHAR(40), VALORPARCELA FLOAT, VENCIMENTO DATE, VALORPAGO FLOAT, RESTANTE FLOAT, RESTANTECOMJUROS FLOAT, DIASDEATRAZO INTEGER, NRDOCUMENTO VARCHAR(20), OBS BLOB sub_type 0 segment size 80, STATUS CHAR(1), SPC CHAR(1), CODSITUACAO INTEGER, SITUACAO VARCHAR(50), STATUSCLIENTE CHAR(1), NRBOLETO VARCHAR(30), DEPENDENTE VARCHAR(70), FILIAL VARCHAR(40), EXTENSO VARCHAR(250), OBSPARCELA VARCHAR(50), NRNFE VARCHAR(20), PLANOPGTO VARCHAR(40), TIPODOC VARCHAR(20), CODEMPRESA INTEGER) AS declare variable PARCELA INTEGER; declare variable DIASATRAZO INTEGER; declare variable CREDITO FLOAT; declare variable VALOR FLOAT; declare variable CARENCIA INTEGER; declare variable JUROS FLOAT; declare variable JUROSCALCULO FLOAT; declare variable TIPOJUROS CHAR(1); declare variable JUROSSOBRE CHAR(1); declare variable DIAS INTEGER; declare variable VENC DATE; declare variable HOJE DATE; declare variable VALORRESTANTE FLOAT; declare variable TCODPARCELA INTEGER; declare variable CODIGOCONTABIL VARCHAR(20); declare variable CODCONTA INTEGER; begin FOR SELECT PC.CODPARCELA, PC.CODPARCELA, PC.CODPARCELA, PC.NRPARCELA, PC.VALORPARCELA, PC.VENCIMENTO, PC.DOCUMENTO, PC.PAGO, PC.STATUS, PC.CODSITUACAO, PC.CODCONTA, PC.OBSPARCELA, CPR.CODPLANOPGTO, CPR.CODMOVIMENTO FROM PARCELASCONTAS PC JOIN CONTASPAGARRECEBER CPR ON (CPR.CODCONTA=PC.CODCONTA) WHERE PC.PAGO='N' AND CPR.TIPO IN ('VE', 'RE','S') INTO :TCODPARCELA, :PARCELA, :CODPARCELA, :NRPARCELA, :VALOR, :VENC, :DOCUMENTO, :PAGO, :STATUS, :CODSITUACAO, :CODCONTA, :OBSPARCELA, :CODPLANOPGTO, :CODMOVIMENTO DO BEGIN /*SELECT CPR.CODPLANOPGTO, CPR.CODMOVIMENTO FROM CONTASPAGARRECEBER CPR WHERE CPR.CODCONTA=:CODCONTA INTO :CODPLANOPGTO, :CODMOVIMENTO; */ select M.CODEMPRESA from MOVIMENTOSPRODUTOS M where M.CODMOVIMENTO=:CODMOVIMENTO into :CODEMPRESA; SELECT CF.CARENCIAJUROSPORATRAZO, CF.JUROSPORATRAZO, CF.TIPPOJUROSPORATRAZO, CF.JUROSSOBRE FROM CONFIGURACOES CF where CF.CODEMPRESA=:CODEMPRESA INTO :CARENCIA, :JUROS, :TIPOJUROS, :JUROSSOBRE; if (JUROS IS NULL) then JUROS = 0; if (CARENCIA IS NULL) then CARENCIA = 0; SELECT M.CODFILIAL, M.DATA, M.HORA, M.TIPO, M.CODIGOCONTABIL, M.CODFUNCIONARIO, M.CODEMPRESA FROM MOVIMENTOSPRODUTOS M WHERE M.CODMOVIMENTO=:CODMOVIMENTO INTO :CODFILIAL, :DATA, :HORA, :TIPO, :CODIGOCONTABIL, :CODFUNCIONARIO, :CODEMPRESA; NRDOCUMENTO = NULL; TIPODOC = NULL; SELECT DM.TIPODOC, DM.NRDOCUMENTO FROM DOCUMENTOMOV DM WHERE DM.CODMOVIMENTO=:CODMOVIMENTO INTO :TIPODOC, :NRDOCUMENTO; NRNFE = NULL; SELECT N.NRDOCUMENTO FROM NFEMOV N WHERE N.CODMOVIMENTO=:CODMOVIMENTO INTO :NRNFE; CODCLIENTE = NULL; SELECT CM.CODCLIENTE FROM CLIENTEMOVIMENTO CM WHERE CM.CODMOVIMENTO=:CODMOVIMENTO INTO :CODCLIENTE; SELECT PL.DESCRICAO FROM PLANOSDECONTAS PL WHERE PL.CODIGOCONTABIL=:CODIGOCONTABIL INTO :PLANOCONTAS; NRBOLETO=NULL; SELECT BP.NRBOLETO FROM BOLETOPARCELA BP WHERE BP.CODPARCELA=:TCODPARCELA INTO :NRBOLETO; PLANOPGTO=''; SELECT PG.DESCRICAO FROM PLANOSPAGAMENTO PG WHERE PG.CODPLANOPGTO=:CODPLANOPGTO INTO :PLANOPGTO; SELECT CAST(C.NOME AS VARCHAR(70)), C.SPC, C.STATUS FROM CLIENTES C WHERE C.CODCLIENTE=:CODCLIENTE INTO :CLIENTE, :SPC, :STATUSCLIENTE; SITUACAO = NULL; SELECT TS.DESCRICAO FROM TABELASSIMPLES TS WHERE TS.CODTABELASIMPLES=:CODSITUACAO INTO :SITUACAO; OBS = NULL; SELECT OB.OBS FROM OBSPARCELASCONTAS OB WHERE OB.CODPARCELA=:TCODPARCELA INTO :OBS; DEPENDENTE = NULL; SELECT DC.NOME FROM DEPENDENTECLIMOV DCM JOIN DEPENDENTESCLI DC ON (DC.CODDEPENDENTE = DCM.CODDEPENDENTE) WHERE DCM.CODMOVIMENTO=:CODMOVIMENTO INTO :DEPENDENTE; SELECT FI.NOME FROM FILIAIS FI WHERE FI.CODFILIAL=:CODFILIAL INTO :FILIAL; SELECT SUM(PG.VALOR) FROM PARCELASPGTO PG WHERE PG.CODPARCELA = :PARCELA INTO :CREDITO; if (CREDITO IS NULL ) then CREDITO = 0; CODPARCELA = PARCELA; VALORPAGO = CREDITO; VALORPARCELA = VALOR; VENCIMENTO = VENC; RESTANTE = VALOR - CREDITO; VALORRESTANTE = VALOR - CREDITO; HOJE = CURRENT_DATE; DIASATRAZO = HOJE - VENC; DIASDEATRAZO = DIASATRAZO; IF (NOT TIPOJUROS IS NULL) then BEGIN IF (DIASATRAZO>=CARENCIA) then BEGIN IF (TIPOJUROS ='M') then BEGIN JUROSCALCULO = (JUROS / 30) * DIASATRAZO; IF (JUROSSOBRE = 'P') then RESTANTECOMJUROS = (VALORPARCELA + ((VALORPARCELA * JUROSCALCULO)/100)) - CREDITO; ELSE RESTANTECOMJUROS = ((VALORPARCELA - CREDITO ) + (((VALORPARCELA - CREDITO)* JUROSCALCULO)/100)); END IF (TIPOJUROS ='D') then BEGIN JUROSCALCULO = JUROS * DIASATRAZO; IF (JUROSSOBRE = 'P') then RESTANTECOMJUROS = (VALORPARCELA + ((VALORPARCELA * JUROSCALCULO)/100)) - CREDITO; ELSE RESTANTECOMJUROS = ((VALORPARCELA - CREDITO )+ (((VALORPARCELA - CREDITO)* JUROSCALCULO)/100)); END END ELSE BEGIN RESTANTECOMJUROS = VALORPARCELA - CREDITO; END END ELSE BEGIN RESTANTECOMJUROS = VALORPARCELA - CREDITO; END IF (DIASATRAZO < 0) then BEGIN DIASATRAZO = 0; DIASDEATRAZO = DIASATRAZO; END EXTENSO=NULL; if (RESTANTECOMJUROS>0) then begin SELECT VALOREXTENSO FROM EXTENSO(:RESTANTECOMJUROS,'S') INTO :EXTENSO; end suspend; END end ^ SET TERM ; ^ /*------ 25/01/2018 11:08:50 --------*/ update RDB$RELATION_FIELDS set RDB$FIELD_SOURCE = 'VALOR_10_2' where (RDB$FIELD_NAME = 'ICMS') and (RDB$RELATION_NAME = 'ITENSMOVIMENTOPROD') ; /*------ 25/01/2018 11:10:38 --------*/ update RDB$RELATION_FIELDS set RDB$FIELD_SOURCE = 'VALOR_10_2' where (RDB$FIELD_NAME = 'IPI') and (RDB$RELATION_NAME = 'ITENSMOVIMENTOPROD') ; /*------ 25/01/2018 11:49:41 --------*/ SET TERM ^ ; ALTER PROCEDURE SPITENSMOV ( MOVIMENTO INTEGER) 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 NUMERIC(10,2), IPI NUMERIC(10,2), TOTALIPI NUMERIC(10,2), TOTALICMS NUMERIC(10,2), 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), TRTIPO VARCHAR(1), CODBARRAS VARCHAR(30), CEST VARCHAR(15), BASECALCULOICMS NUMERIC(10,2), BASEIPI NUMERIC(10,2), ALTERAR VARCHAR(15), EXCLUIR VARCHAR(15), OUTRAACAO VARCHAR(15)) 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 TCST VARCHAR(10); begin FOR SELECT 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.TRTIPO, I.CST, I.CEST, I.BASECALCULOICMS, I.BASEIPI, I.QTD * I.VALORAVISTA FROM ITENSMOVIMENTOPROD I WHERE I.CODMOVIMENTO=:MOVIMENTO AND (I.TIPO IS NULL or I.TIPO='I') INTO :CODITEMMOVIMENTO, :CODMOVIMENTO, :CODTABELA, :QTD, :VALOR, :TOTAL, :BAIXADO, :VALORUNIT, :DESCONTO, :TOTALUNIT, :CODITEMMOV, :TEMPCODPROD, :CODUNIDADE, :CODTABELASIMPLES, :VOLUMES, :ICMS, :IPI, :ESTOQUEATUAL, :COMISSAO, :CODALIQUOTA, :FABRICADO, :DATAFAB, :CFOP, :VALORAVISTA, :TRTIPO, :CST, :CEST, :BASECALCULOICMS, :BASEIPI, :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; 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, SP.CODBARRAS FROM SPPESQPRODUTOSPORCODIGO(:CODTABELA) SP INTO :CODPRODUTO, :REFERENCIA, :PRODUTO, :DESCTABELA, :CODGRUPO, :GRUPO, :CODFABRICANTE, :FABRICANTE, :TCODALIQUOTA, :ALIQUOTA, :DESCPROD, :TEMPDESCTABELA, :APRESENTACAO, :ACRESSUGESTAO, :CODNCM, :TCST, :INFPRVENDA, :ORIGEM, :CODBARRAS; if (CODALIQUOTA iS NULL) then CODALIQUOTA=TCODALIQUOTA; if (CST iS NULL) then CST = TCST; 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 AND BASEIPI>0) then TOTALIPI = (BASEIPI * IPI)/100; ELSE TOTALIPI = 0; if (ICMS >0 and BASECALCULOICMS >0 ) then TOTALICMS = (ICMS * BASECALCULOICMS)/100; ELSE TOTALICMS = 0; SELECT DM.DESCONTO, DM.TIPODESCONTO, DM.VALORMOVIMENTO FROM DADOSMOVIMENTO DM WHERE DM.CODMOVIMENTO=:MOVIMENTO 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 ; ^ /*------ 26/01/2018 15:20:15 --------*/ SET TERM ^ ; ALTER PROCEDURE SPCONTASRECEBER RETURNS ( CODMOVIMENTO INTEGER, CODFILIAL INTEGER, CODFUNCIONARIO INTEGER, DATA DATE, HORA TIME, TIPO VARCHAR(2), CODPLANOPGTO INTEGER, CODPARCELA INTEGER, NRPARCELA INTEGER, DOCUMENTO VARCHAR(20), PAGO CHAR(1), CODCLIENTE INTEGER, CLIENTE VARCHAR(70), PLANOCONTAS VARCHAR(40), VALORPARCELA FLOAT, VENCIMENTO DATE, VALORPAGO FLOAT, RESTANTE FLOAT, RESTANTECOMJUROS FLOAT, DIASDEATRAZO INTEGER, NRDOCUMENTO VARCHAR(20), OBS BLOB sub_type 0 segment size 80, STATUS CHAR(1), SPC CHAR(1), CODSITUACAO INTEGER, SITUACAO VARCHAR(50), STATUSCLIENTE CHAR(1), NRBOLETO VARCHAR(30), DEPENDENTE VARCHAR(70), FILIAL VARCHAR(40), EXTENSO VARCHAR(250), OBSPARCELA VARCHAR(50), NRNFE VARCHAR(20), PLANOPGTO VARCHAR(40), TIPODOC VARCHAR(20), CODEMPRESA INTEGER) AS declare variable PARCELA INTEGER; declare variable DIASATRAZO INTEGER; declare variable CREDITO FLOAT; declare variable VALOR FLOAT; declare variable CARENCIA INTEGER; declare variable JUROS FLOAT; declare variable JUROSCALCULO FLOAT; declare variable TIPOJUROS CHAR(1); declare variable JUROSSOBRE CHAR(1); declare variable DIAS INTEGER; declare variable VENC DATE; declare variable HOJE DATE; declare variable VALORRESTANTE FLOAT; declare variable TCODPARCELA INTEGER; declare variable CODIGOCONTABIL VARCHAR(20); declare variable CODCONTA INTEGER; begin FOR SELECT PC.CODPARCELA, PC.CODPARCELA, PC.CODPARCELA, PC.NRPARCELA, PC.VALORPARCELA, PC.VENCIMENTO, PC.DOCUMENTO, PC.PAGO, PC.STATUS, PC.CODSITUACAO, PC.CODCONTA, PC.OBSPARCELA, CPR.CODPLANOPGTO, CPR.CODMOVIMENTO FROM PARCELASCONTAS PC JOIN CONTASPAGARRECEBER CPR ON (CPR.CODCONTA=PC.CODCONTA) WHERE PC.PAGO='N' AND CPR.TIPO IN ('VE', 'RE','S') INTO :TCODPARCELA, :PARCELA, :CODPARCELA, :NRPARCELA, :VALOR, :VENC, :DOCUMENTO, :PAGO, :STATUS, :CODSITUACAO, :CODCONTA, :OBSPARCELA, :CODPLANOPGTO, :CODMOVIMENTO DO BEGIN /*SELECT CPR.CODPLANOPGTO, CPR.CODMOVIMENTO FROM CONTASPAGARRECEBER CPR WHERE CPR.CODCONTA=:CODCONTA INTO :CODPLANOPGTO, :CODMOVIMENTO; */ select M.CODEMPRESA from MOVIMENTOSPRODUTOS M where M.CODMOVIMENTO=:CODMOVIMENTO into :CODEMPRESA; if (CODEMPRESA IS NULL) then BEGIN select CODEMPRESA FROM usuarios U WHERE U.CODUSUARIO=(SELECT CODUSUARIO FROM MOVIMENTOSPRODUTOS WHERE CODMOVIMENTO=:CODMOVIMENTO) INTO :CODEMPRESA; END SELECT CF.CARENCIAJUROSPORATRAZO, CF.JUROSPORATRAZO, CF.TIPPOJUROSPORATRAZO, CF.JUROSSOBRE FROM CONFIGURACOES CF where CF.CODEMPRESA=:CODEMPRESA INTO :CARENCIA, :JUROS, :TIPOJUROS, :JUROSSOBRE; if (JUROS IS NULL) then JUROS = 0; if (CARENCIA IS NULL) then CARENCIA = 0; SELECT M.CODFILIAL, M.DATA, M.HORA, M.TIPO, M.CODIGOCONTABIL, M.CODFUNCIONARIO, M.CODEMPRESA FROM MOVIMENTOSPRODUTOS M WHERE M.CODMOVIMENTO=:CODMOVIMENTO INTO :CODFILIAL, :DATA, :HORA, :TIPO, :CODIGOCONTABIL, :CODFUNCIONARIO, :CODEMPRESA; NRDOCUMENTO = NULL; TIPODOC = NULL; SELECT DM.TIPODOC, DM.NRDOCUMENTO FROM DOCUMENTOMOV DM WHERE DM.CODMOVIMENTO=:CODMOVIMENTO INTO :TIPODOC, :NRDOCUMENTO; NRNFE = NULL; SELECT N.NRDOCUMENTO FROM NFEMOV N WHERE N.CODMOVIMENTO=:CODMOVIMENTO INTO :NRNFE; CODCLIENTE = NULL; SELECT CM.CODCLIENTE FROM CLIENTEMOVIMENTO CM WHERE CM.CODMOVIMENTO=:CODMOVIMENTO INTO :CODCLIENTE; SELECT PL.DESCRICAO FROM PLANOSDECONTAS PL WHERE PL.CODIGOCONTABIL=:CODIGOCONTABIL INTO :PLANOCONTAS; NRBOLETO=NULL; SELECT BP.NRBOLETO FROM BOLETOPARCELA BP WHERE BP.CODPARCELA=:TCODPARCELA INTO :NRBOLETO; PLANOPGTO=''; SELECT PG.DESCRICAO FROM PLANOSPAGAMENTO PG WHERE PG.CODPLANOPGTO=:CODPLANOPGTO INTO :PLANOPGTO; SELECT CAST(C.NOME AS VARCHAR(70)), C.SPC, C.STATUS FROM CLIENTES C WHERE C.CODCLIENTE=:CODCLIENTE INTO :CLIENTE, :SPC, :STATUSCLIENTE; SITUACAO = NULL; SELECT TS.DESCRICAO FROM TABELASSIMPLES TS WHERE TS.CODTABELASIMPLES=:CODSITUACAO INTO :SITUACAO; OBS = NULL; SELECT OB.OBS FROM OBSPARCELASCONTAS OB WHERE OB.CODPARCELA=:TCODPARCELA INTO :OBS; DEPENDENTE = NULL; SELECT DC.NOME FROM DEPENDENTECLIMOV DCM JOIN DEPENDENTESCLI DC ON (DC.CODDEPENDENTE = DCM.CODDEPENDENTE) WHERE DCM.CODMOVIMENTO=:CODMOVIMENTO INTO :DEPENDENTE; SELECT FI.NOME FROM FILIAIS FI WHERE FI.CODFILIAL=:CODFILIAL INTO :FILIAL; SELECT SUM(PG.VALOR) FROM PARCELASPGTO PG WHERE PG.CODPARCELA = :PARCELA INTO :CREDITO; if (CREDITO IS NULL ) then CREDITO = 0; CODPARCELA = PARCELA; VALORPAGO = CREDITO; VALORPARCELA = VALOR; VENCIMENTO = VENC; RESTANTE = VALOR - CREDITO; VALORRESTANTE = VALOR - CREDITO; HOJE = CURRENT_DATE; DIASATRAZO = HOJE - VENC; DIASDEATRAZO = DIASATRAZO; IF (NOT TIPOJUROS IS NULL) then BEGIN IF (DIASATRAZO>=CARENCIA) then BEGIN IF (TIPOJUROS ='M') then BEGIN JUROSCALCULO = (JUROS / 30) * DIASATRAZO; IF (JUROSSOBRE = 'P') then RESTANTECOMJUROS = (VALORPARCELA + ((VALORPARCELA * JUROSCALCULO)/100)) - CREDITO; ELSE RESTANTECOMJUROS = ((VALORPARCELA - CREDITO ) + (((VALORPARCELA - CREDITO)* JUROSCALCULO)/100)); END IF (TIPOJUROS ='D') then BEGIN JUROSCALCULO = JUROS * DIASATRAZO; IF (JUROSSOBRE = 'P') then RESTANTECOMJUROS = (VALORPARCELA + ((VALORPARCELA * JUROSCALCULO)/100)) - CREDITO; ELSE RESTANTECOMJUROS = ((VALORPARCELA - CREDITO )+ (((VALORPARCELA - CREDITO)* JUROSCALCULO)/100)); END END ELSE BEGIN RESTANTECOMJUROS = VALORPARCELA - CREDITO; END END ELSE BEGIN RESTANTECOMJUROS = VALORPARCELA - CREDITO; END IF (DIASATRAZO < 0) then BEGIN DIASATRAZO = 0; DIASDEATRAZO = DIASATRAZO; END EXTENSO=NULL; if (RESTANTECOMJUROS>0) then begin SELECT VALOREXTENSO FROM EXTENSO(:RESTANTECOMJUROS,'S') INTO :EXTENSO; end suspend; END end ^ SET TERM ; ^ /*------ 29/01/2018 23:45:46 --------*/ SET TERM ^ ; ALTER PROCEDURE SPPESQPRODVENDA ( PESQUISA VARCHAR(50), TIPOPESQ VARCHAR(2), CODFILIAL INTEGER) RETURNS ( CODIGO INTEGER, CODPRODUTO INTEGER, CODUNIDADE INTEGER, CODGRUPO INTEGER, CODFABRICANTE INTEGER, DESCRICAO VARCHAR(50), DESCTABELA VARCHAR(30), CODBARRAS VARCHAR(30), COMISSAO FLOAT, PRECOVENDA FLOAT, TIPO VARCHAR(3), PRECOCOMPRA FLOAT, REFERENCIA VARCHAR(20), STATUS CHAR(1), PRECOCUSTO FLOAT, UNIDADE VARCHAR(30), SIGLA VARCHAR(30), COMPOSICAO VARCHAR(100), NOMECOMERCIAL VARCHAR(70), APRESENTACAO VARCHAR(40), FABRICANTE VARCHAR(40), CODIGOFILIAL INTEGER, CODSUBGRUPO INTEGER, CODALIQUOTA VARCHAR(10), COR VARCHAR(40), TAM VARCHAR(5), NR INTEGER, PRECOAVISTA FLOAT, CODNCM VARCHAR(30), ORIGEM VARCHAR(4), CST VARCHAR(10), CFOP VARCHAR(20), CODEMPRESA INTEGER) AS declare variable TCODIGO INTEGER; declare variable TCODPRODUTO INTEGER; declare variable TCODUNIDADE INTEGER; declare variable TCODGRUPO INTEGER; declare variable TCODFABRICANTE INTEGER; declare variable TDESCRICAO VARCHAR(50); declare variable TDESCTABELA VARCHAR(30); declare variable TCODBARRAS VARCHAR(30); declare variable TCOMISSAO FLOAT; declare variable TPRECOVENDA FLOAT; declare variable TTIPO VARCHAR(3); declare variable TPRECOCOMPRA FLOAT; declare variable TREFERENCIA VARCHAR(20); declare variable TAPRESENTACAO VARCHAR(40); declare variable TSTATUS CHAR(1); declare variable TPRECOCUSTO FLOAT; declare variable TUNIDADE VARCHAR(30); declare variable TSIGLA VARCHAR(30); declare variable TCOMPOSICAO VARCHAR(100); declare variable TCODFILIAL INTEGER; declare variable TNOMECOMERCIAL VARCHAR(70); declare variable MOEDACONVERTIDA FLOAT; declare variable MOEDACOMPRA FLOAT; begin if (TIPOPESQ = 'CO') then BEGIN SELECT P.CODFILIAL, P.CODPRODUTO, P.CODPRODUTO, P.CODUNIDADE, P.CODGRUPO, P.CODFABRICANTE, P.DESCRICAO, P.CODBARRAS, P.COMISSAO, P.PRECOVENDA, P.TIPO, P.PRECOCOMPRA, P.REFERENCIA, P.STATUS, P.PRECOCUSTO, U.DESCRICAO, U.SIGLA, P.COMPOSICAO, P.NOMECOMERCIAL, P.APRESENTACAO, P.CODSUBGRUPO, P.CODALIQUOTA, P.PRECOAVISTA, P.CODNCM, P.ORIGEM, P.CST, P.CFOP, P.CODEMPRESA FROM PRODUTOS P JOIN UNIDADEMEDIDA U ON (U.CODUNIDADE = P.CODUNIDADE) WHERE (P.LIXEIRA='N' OR LIXEIRA IS NULL) AND P.STATUS ='A' AND P.CODPRODUTO=:PESQUISA INTO :TCODFILIAL, :TCODIGO, :TCODPRODUTO, :TCODUNIDADE, :TCODGRUPO, :TCODFABRICANTE, :TDESCRICAO, :TCODBARRAS, :TCOMISSAO, :TPRECOVENDA, :TTIPO, :TPRECOCOMPRA, :TREFERENCIA, :TSTATUS, :TPRECOCUSTO, :TUNIDADE, :TSIGLA, :TCOMPOSICAO, :TNOMECOMERCIAL, :TAPRESENTACAO, :CODSUBGRUPO, :CODALIQUOTA, :PRECOAVISTA, :CODNCM, :ORIGEM, :CST, :CFOP, :CODEMPRESA ; if (NOT TCODIGO IS NULL) then BEGIN IF (TTIPO IN ('ACA', 'SMA')) then BEGIN SELECT SPT.PRECOCUSTO, SPT.PRECOVENDA FROM SPPRCUSTOVENDAINDUSTRIAS(:TCODIGO, :TTIPO) SPT INTO :TPRECOCUSTO, :TPRECOVENDA; END COR = NULL; TAM = NULL; NR = NULL; SELECT GP.COR, GP.TAM, GP.NR FROM GRADEPRODUTO GP WHERE GP.CODPRODUTO=:TCODIGO INTO :COR, :TAM, :NR; if (NOT MOEDACONVERTIDA IS NULL) then TPRECOVENDA = MOEDACONVERTIDA; if (NOT MOEDACOMPRA IS NULL) then TPRECOCOMPRA = MOEDACOMPRA; IF (NOT CODFILIAL IS NULL) THEN BEGIN SELECT SPF.TOTALCALCULADO FROM SPCONVERTEPRECOFILIAL(:CODFILIAL, :TPRECOVENDA) SPF INTO :TPRECOVENDA; END CODIGOFILIAL = TCODFILIAL; CODIGO = TCODIGO; CODPRODUTO = TCODPRODUTO; CODUNIDADE = TCODUNIDADE; CODGRUPO = TCODGRUPO; CODFABRICANTE =TCODFABRICANTE; DESCRICAO = TDESCRICAO; DESCTABELA = ''; CODBARRAS = TCODBARRAS; COMISSAO = TCOMISSAO; PRECOVENDA = TPRECOVENDA; TIPO = TTIPO; PRECOCOMPRA = TPRECOCOMPRA; REFERENCIA = TREFERENCIA; STATUS = TSTATUS; PRECOCUSTO = TPRECOCUSTO; UNIDADE = TUNIDADE; SIGLA = TSIGLA; COMPOSICAO = TCOMPOSICAO; NOMECOMERCIAL = TNOMECOMERCIAL; APRESENTACAO = TAPRESENTACAO; SELECT F.DESCRICAO FROM FABRICANTE F WHERE F.CODFABRICANTE=:TCODFABRICANTE INTO :FABRICANTE; suspend; END ELSE BEGIN SELECT P.CODFILIAL, P.CODPRODUTO, TB.CODTABELA, TB.CODUNIDADE, P.CODGRUPO, P.CODFABRICANTE, P.DESCRICAO, TB.DESCTABELA, P.CODBARRAS, P.COMISSAO, TB.PRECOVENDA, P.TIPO, TB.PRECOCOMPRA, TB.REFERENCIA, P.STATUS, TB.PRECOCUSTO, U.DESCRICAO, U.SIGLA, P.CODSUBGRUPO, P.CODALIQUOTA, P.PRECOAVISTA, P.CODNCM, P.CFOP, P.CODEMPRESA FROM TABELADEPRECO TB JOIN PRODUTOS P ON (TB.CODPRODUTO = P.CODPRODUTO) JOIN UNIDADEMEDIDA U ON (U.CODUNIDADE = TB.CODUNIDADE) WHERE (P.LIXEIRA='N' OR LIXEIRA IS NULL) AND P.STATUS ='A' AND TB.CODTABELA=:PESQUISA INTO :TCODFILIAL, :TCODIGO, :TCODPRODUTO, :TCODUNIDADE, :TCODGRUPO, :TCODFABRICANTE, :TDESCRICAO, :TDESCTABELA, :TCODBARRAS, :TCOMISSAO, :TPRECOVENDA, :TTIPO, :TPRECOCOMPRA, :TREFERENCIA, :TSTATUS, :TPRECOCUSTO, :TUNIDADE, :TSIGLA, :CODSUBGRUPO, :CODALIQUOTA, :PRECOAVISTA, :CODNCM, :CFOP, :CODEMPRESA ; if (NOT TCODIGO IS NULL) then BEGIN if (NOT MOEDACONVERTIDA IS NULL) then TPRECOVENDA = MOEDACONVERTIDA; if (NOT MOEDACOMPRA IS NULL) then TPRECOCOMPRA = MOEDACOMPRA; IF (NOT CODFILIAL IS NULL) THEN BEGIN SELECT SPF.TOTALCALCULADO FROM SPCONVERTEPRECOFILIAL(:CODFILIAL, :TPRECOVENDA) SPF INTO :TPRECOVENDA; END CODIGOFILIAL = TCODFILIAL; CODIGO = TCODIGO; CODPRODUTO = TCODPRODUTO; CODUNIDADE = TCODUNIDADE; CODGRUPO = TCODGRUPO; CODFABRICANTE =TCODFABRICANTE; DESCRICAO = TDESCRICAO; DESCTABELA = TDESCTABELA; CODBARRAS = TCODBARRAS; COMISSAO = TCOMISSAO; PRECOVENDA = TPRECOVENDA; TIPO = TTIPO; PRECOCOMPRA = TPRECOCOMPRA; REFERENCIA = TREFERENCIA; STATUS = TSTATUS; PRECOCUSTO = TPRECOCUSTO; UNIDADE = TUNIDADE; SIGLA = TSIGLA; SELECT F.DESCRICAO FROM FABRICANTE F WHERE F.CODFABRICANTE=:TCODFABRICANTE INTO :FABRICANTE; suspend; END END END if (TIPOPESQ = 'RE') then BEGIN FOR SELECT P.CODFILIAL, P.CODPRODUTO, P.CODPRODUTO, P.CODUNIDADE, P.CODGRUPO, P.CODFABRICANTE,P.DESCRICAO, P.CODBARRAS, P.COMISSAO, P.PRECOVENDA, P.TIPO, P.PRECOCOMPRA, P.REFERENCIA, P.STATUS, P.PRECOCUSTO, U.DESCRICAO, U.SIGLA, P.COMPOSICAO, P.NOMECOMERCIAL, P.APRESENTACAO , P.CODSUBGRUPO, P.CODALIQUOTA, P.PRECOAVISTA, P.CODNCM, P.ORIGEM, P.CST, P.CFOP, P.CODEMPRESA FROM PRODUTOS P JOIN UNIDADEMEDIDA U ON (U.CODUNIDADE = P.CODUNIDADE) WHERE (P.LIXEIRA='N' OR LIXEIRA IS NULL) AND P.STATUS ='A' AND UPPER(P.REFERENCIA) LIKE UPPER(:PESQUISA) INTO :TCODFILIAL, :TCODIGO, :TCODPRODUTO, :TCODUNIDADE, :TCODGRUPO, :TCODFABRICANTE, :TDESCRICAO, :TCODBARRAS, :TCOMISSAO, :TPRECOVENDA, :TTIPO, :TPRECOCOMPRA, :TREFERENCIA, :TSTATUS, :TPRECOCUSTO, :TUNIDADE, :TSIGLA, :TCOMPOSICAO, :TNOMECOMERCIAL, :TAPRESENTACAO, :CODSUBGRUPO, :CODALIQUOTA, :PRECOAVISTA, :CODNCM, :ORIGEM, :CST, :CFOP, :CODEMPRESA DO BEGIN if (NOT TCODIGO IS NULL) then BEGIN IF (TTIPO IN ('ACA', 'SMA')) then BEGIN SELECT SPT.PRECOCUSTO, SPT.PRECOVENDA FROM SPPRCUSTOVENDAINDUSTRIAS(:TCODIGO, :TTIPO) SPT INTO :TPRECOCUSTO, :TPRECOVENDA; END /*SELECT SPM.TOTALCOMPRA, SPM.TOTALVENDA FROM SPCONVERTEMOEDA(:TCODPRODUTO) SPM INTO :MOEDACOMPRA, :MOEDACONVERTIDA;*/ COR = NULL; TAM = NULL; NR = NULL; SELECT GP.COR, GP.TAM, GP.NR FROM GRADEPRODUTO GP WHERE GP.CODPRODUTO=:TCODIGO INTO :COR, :TAM, :NR; if (NOT MOEDACONVERTIDA IS NULL) then TPRECOVENDA = MOEDACONVERTIDA; if (NOT MOEDACOMPRA IS NULL) then TPRECOCOMPRA = MOEDACOMPRA; IF (NOT CODFILIAL IS NULL) THEN BEGIN SELECT SPF.TOTALCALCULADO FROM SPCONVERTEPRECOFILIAL(:CODFILIAL, :TPRECOVENDA) SPF INTO :TPRECOVENDA; END CODIGOFILIAL = TCODFILIAL; CODIGO = TCODIGO; CODPRODUTO = TCODPRODUTO; CODUNIDADE = TCODUNIDADE; CODGRUPO = TCODGRUPO; CODFABRICANTE =TCODFABRICANTE; DESCRICAO = TDESCRICAO; DESCTABELA = ''; CODBARRAS = TCODBARRAS; COMISSAO = TCOMISSAO; PRECOVENDA = TPRECOVENDA; TIPO = TTIPO; PRECOCOMPRA = TPRECOCOMPRA; REFERENCIA = TREFERENCIA; STATUS = TSTATUS; PRECOCUSTO = TPRECOCUSTO; UNIDADE = TUNIDADE; SIGLA = TSIGLA; COMPOSICAO = TCOMPOSICAO; NOMECOMERCIAL = TNOMECOMERCIAL; APRESENTACAO = TAPRESENTACAO; SELECT F.DESCRICAO FROM FABRICANTE F WHERE F.CODFABRICANTE=:TCODFABRICANTE INTO :FABRICANTE; suspend; END END FOR SELECT P.CODFILIAL, P.CODPRODUTO, TB.CODTABELA, TB.CODUNIDADE, P.CODGRUPO, P.CODFABRICANTE, P.DESCRICAO, TB.DESCTABELA, P.CODBARRAS, P.COMISSAO, TB.PRECOVENDA, P.TIPO, TB.PRECOCOMPRA, TB.REFERENCIA, P.STATUS, TB.PRECOCUSTO, U.DESCRICAO, U.SIGLA, P.CODSUBGRUPO, P.CODALIQUOTA, P.PRECOAVISTA, P.CODNCM, P.CFOP, P.CODEMPRESA FROM PRODUTOS P JOIN TABELADEPRECO TB ON (TB.CODPRODUTO = P.CODPRODUTO) JOIN UNIDADEMEDIDA U ON (U.CODUNIDADE = TB.CODUNIDADE) WHERE (P.LIXEIRA='N' OR LIXEIRA IS NULL) AND P.STATUS ='A' AND UPPER(TB.REFERENCIA) LIKE UPPER(:PESQUISA) INTO :TCODFILIAL, :TCODIGO, :TCODPRODUTO, :TCODUNIDADE, :TCODGRUPO, :TCODFABRICANTE, :TDESCRICAO, :TDESCTABELA, :TCODBARRAS, :TCOMISSAO, :TPRECOVENDA, :TTIPO, :TPRECOCOMPRA, :TREFERENCIA, :TSTATUS, :TPRECOCUSTO, :TUNIDADE, :TSIGLA, :CODSUBGRUPO, :CODALIQUOTA, :PRECOAVISTA, :CODNCM, :CFOP, :CODEMPRESA DO BEGIN if (NOT TCODIGO IS NULL) then BEGIN /*SELECT SPM.TOTALCOMPRA, SPM.TOTALVENDA FROM SPCONVERTEMOEDA(:TCODPRODUTO) SPM INTO :MOEDACOMPRA, :MOEDACONVERTIDA;*/ if (NOT MOEDACONVERTIDA IS NULL) then TPRECOVENDA = MOEDACONVERTIDA; if (NOT MOEDACOMPRA IS NULL) then TPRECOCOMPRA = MOEDACOMPRA; IF (NOT CODFILIAL IS NULL) THEN BEGIN SELECT SPF.TOTALCALCULADO FROM SPCONVERTEPRECOFILIAL(:CODFILIAL, :TPRECOVENDA) SPF INTO :TPRECOVENDA; END CODIGOFILIAL = TCODFILIAL; CODIGO = TCODIGO; CODPRODUTO = TCODPRODUTO; CODUNIDADE = TCODUNIDADE; CODGRUPO = TCODGRUPO; CODFABRICANTE =TCODFABRICANTE; DESCRICAO = TDESCRICAO; DESCTABELA = TDESCTABELA; CODBARRAS = TCODBARRAS; COMISSAO = TCOMISSAO; PRECOVENDA = TPRECOVENDA; TIPO = TTIPO; PRECOCOMPRA = TPRECOCOMPRA; REFERENCIA = TREFERENCIA; STATUS = TSTATUS; PRECOCUSTO = TPRECOCUSTO; UNIDADE = TUNIDADE; SIGLA = TSIGLA; SELECT F.DESCRICAO FROM FABRICANTE F WHERE F.CODFABRICANTE=:TCODFABRICANTE INTO :FABRICANTE; suspend; END END /*END*/ END if (TIPOPESQ = 'CB') then BEGIN FOR SELECT P.CODFILIAL, P.CODPRODUTO, P.CODPRODUTO, P.CODUNIDADE, P.CODGRUPO, P.CODFABRICANTE, P.DESCRICAO, P.CODBARRAS, P.COMISSAO, P.PRECOVENDA, P.TIPO, P.PRECOCOMPRA, P.REFERENCIA, P.STATUS, P.PRECOCUSTO, U.DESCRICAO, U.SIGLA, P.COMPOSICAO, P.NOMECOMERCIAL, P.APRESENTACAO , P.CODSUBGRUPO, P.CODALIQUOTA, P.PRECOAVISTA, P.CODNCM, P.ORIGEM, P.CST, P.CFOP, P.CODEMPRESA FROM PRODUTOS P JOIN UNIDADEMEDIDA U ON (U.CODUNIDADE = P.CODUNIDADE) WHERE (P.LIXEIRA='N' OR LIXEIRA IS NULL) AND P.STATUS ='A' AND P.CODBARRAS=:PESQUISA INTO :TCODFILIAL, :TCODIGO, :TCODPRODUTO, :TCODUNIDADE, :TCODGRUPO, :TCODFABRICANTE, :TDESCRICAO, :TCODBARRAS, :TCOMISSAO, :TPRECOVENDA, :TTIPO, :TPRECOCOMPRA, :TREFERENCIA, :TSTATUS, :TPRECOCUSTO, :TUNIDADE, :TSIGLA, :TCOMPOSICAO, :TNOMECOMERCIAL, :TAPRESENTACAO, :CODSUBGRUPO, :CODALIQUOTA, :PRECOAVISTA, :CODNCM, :ORIGEM, :CST, :CFOP, :CODEMPRESA DO BEGIN if (NOT TCODIGO IS NULL) then BEGIN IF (TTIPO IN ('ACA', 'SMA')) then BEGIN SELECT SPT.PRECOCUSTO, SPT.PRECOVENDA FROM SPPRCUSTOVENDAINDUSTRIAS(:TCODIGO, :TTIPO) SPT INTO :TPRECOCUSTO, :TPRECOVENDA; END COR = NULL; TAM = NULL; NR = NULL; SELECT GP.COR, GP.TAM, GP.NR FROM GRADEPRODUTO GP WHERE GP.CODPRODUTO=:TCODIGO INTO :COR, :TAM, :NR; /*SELECT SPM.TOTALCOMPRA, SPM.TOTALVENDA FROM SPCONVERTEMOEDA(:TCODPRODUTO) SPM INTO :MOEDACOMPRA, :MOEDACONVERTIDA;*/ if (NOT MOEDACONVERTIDA IS NULL) then TPRECOVENDA = MOEDACONVERTIDA; if (NOT MOEDACOMPRA IS NULL) then TPRECOCOMPRA = MOEDACOMPRA; IF (NOT CODFILIAL IS NULL) THEN BEGIN SELECT SPF.TOTALCALCULADO FROM SPCONVERTEPRECOFILIAL(:CODFILIAL, :TPRECOVENDA) SPF INTO :TPRECOVENDA; END CODIGOFILIAL = TCODFILIAL; CODIGO = TCODIGO; CODPRODUTO = TCODPRODUTO; CODUNIDADE = TCODUNIDADE; CODGRUPO = TCODGRUPO; CODFABRICANTE =TCODFABRICANTE; DESCRICAO = TDESCRICAO; DESCTABELA = ''; CODBARRAS = TCODBARRAS; COMISSAO = TCOMISSAO; PRECOVENDA = TPRECOVENDA; TIPO = TTIPO; PRECOCOMPRA = TPRECOCOMPRA; REFERENCIA = TREFERENCIA; STATUS = TSTATUS; PRECOCUSTO = TPRECOCUSTO; UNIDADE = TUNIDADE; SIGLA = TSIGLA; COMPOSICAO = TCOMPOSICAO; NOMECOMERCIAL = TNOMECOMERCIAL; APRESENTACAO = TAPRESENTACAO; SELECT F.DESCRICAO FROM FABRICANTE F WHERE F.CODFABRICANTE=:TCODFABRICANTE INTO :FABRICANTE; suspend; END END FOR SELECT P.CODFILIAL, P.CODPRODUTO, TB.CODTABELA, TB.CODUNIDADE, P.CODGRUPO, P.CODFABRICANTE, P.DESCRICAO, TB.DESCTABELA, TB.CODBARRAS, P.COMISSAO, TB.PRECOVENDA, P.TIPO, TB.PRECOCOMPRA, TB.REFERENCIA, P.STATUS, TB.PRECOCUSTO, U.DESCRICAO, U.SIGLA, P.CODSUBGRUPO, P.CODALIQUOTA, P.PRECOAVISTA, P.CODNCM, P.CFOP, P.CODEMPRESA FROM TABELADEPRECO TB JOIN PRODUTOS P ON (TB.CODPRODUTO = P.CODPRODUTO) JOIN UNIDADEMEDIDA U ON (U.CODUNIDADE = TB.CODUNIDADE) WHERE (P.LIXEIRA='N' OR LIXEIRA IS NULL) AND P.STATUS ='A' AND TB.CODBARRAS=:PESQUISA INTO :TCODFILIAL, :TCODIGO, :TCODPRODUTO, :TCODUNIDADE, :TCODGRUPO, :TCODFABRICANTE, :TDESCRICAO, :TDESCTABELA, :TCODBARRAS, :TCOMISSAO, :TPRECOVENDA, :TTIPO, :TPRECOCOMPRA, :TREFERENCIA, :TSTATUS, :TPRECOCUSTO, :TUNIDADE, :TSIGLA, :CODSUBGRUPO, :CODALIQUOTA, :PRECOAVISTA, :CODNCM, :CFOP, :CODEMPRESA DO BEGIN if (NOT TCODIGO IS NULL) then BEGIN /*SELECT SPM.TOTALCOMPRA, SPM.TOTALVENDA FROM SPCONVERTEMOEDA(:TCODPRODUTO) SPM INTO :MOEDACOMPRA, :MOEDACONVERTIDA;*/ if (NOT MOEDACONVERTIDA IS NULL) then TPRECOVENDA = MOEDACONVERTIDA; if (NOT MOEDACOMPRA IS NULL) then TPRECOCOMPRA = MOEDACOMPRA; IF (NOT CODFILIAL IS NULL) THEN BEGIN SELECT SPF.TOTALCALCULADO FROM SPCONVERTEPRECOFILIAL(:CODFILIAL, :TPRECOVENDA) SPF INTO :TPRECOVENDA; END CODIGOFILIAL = TCODFILIAL; CODIGO = TCODIGO; CODPRODUTO = TCODPRODUTO; CODUNIDADE = TCODUNIDADE; CODGRUPO = TCODGRUPO; CODFABRICANTE =TCODFABRICANTE; DESCRICAO = TDESCRICAO; DESCTABELA = TDESCTABELA; CODBARRAS = TCODBARRAS; COMISSAO = TCOMISSAO; PRECOVENDA = TPRECOVENDA; TIPO = TTIPO; PRECOCOMPRA = TPRECOCOMPRA; REFERENCIA = TREFERENCIA; STATUS = TSTATUS; PRECOCUSTO = TPRECOCUSTO; UNIDADE = TUNIDADE; SIGLA = TSIGLA; SELECT F.DESCRICAO FROM FABRICANTE F WHERE F.CODFABRICANTE=:TCODFABRICANTE INTO :FABRICANTE; suspend; END END END if (TIPOPESQ = 'DE') then BEGIN FOR SELECT P.CODFILIAL, P.CODPRODUTO, P.CODPRODUTO, P.CODUNIDADE, P.CODGRUPO, P.CODFABRICANTE, P.DESCRICAO, CAST(NULL AS VARCHAR(30)), P.CODBARRAS, P.COMISSAO, P.PRECOVENDA, P.TIPO, P.PRECOCOMPRA, P.REFERENCIA, P.STATUS, P.PRECOCUSTO, U.DESCRICAO, U.SIGLA, P.COMPOSICAO, P.NOMECOMERCIAL, P.APRESENTACAO, P.CODSUBGRUPO, P.CODALIQUOTA , P.PRECOAVISTA, P.CODNCM, P.ORIGEM, P.CST, P.CFOP, P.CODEMPRESA FROM PRODUTOS P JOIN UNIDADEMEDIDA U ON (U.CODUNIDADE = P.CODUNIDADE) WHERE (P.LIXEIRA='N' OR LIXEIRA IS NULL) AND P.STATUS ='A' AND UPPER(P.DESCRICAO) LIKE UPPER(:PESQUISA) UNION ALL SELECT P.CODFILIAL, P.CODPRODUTO, TB.CODTABELA, TB.CODUNIDADE, P.CODGRUPO, P.CODFABRICANTE, P.DESCRICAO, TB.DESCTABELA, P.CODBARRAS, P.COMISSAO, TB.PRECOVENDA, P.TIPO, TB.PRECOCOMPRA, TB.REFERENCIA, P.STATUS, TB.PRECOCUSTO, U.DESCRICAO, U.SIGLA, P.COMPOSICAO, P.NOMECOMERCIAL, P.APRESENTACAO, P.CODSUBGRUPO, P.CODALIQUOTA, P.PRECOAVISTA, P.CODNCM, P.ORIGEM, P.CST, P.CFOP, P.CODEMPRESA FROM TABELADEPRECO TB JOIN PRODUTOS P ON (TB.CODPRODUTO = P.CODPRODUTO) JOIN UNIDADEMEDIDA U ON (U.CODUNIDADE = TB.CODUNIDADE) WHERE (P.LIXEIRA='N' OR LIXEIRA IS NULL) AND P.STATUS ='A' AND UPPER(P.DESCRICAO) LIKE UPPER(:PESQUISA) INTO :TCODFILIAL, :TCODIGO, :TCODPRODUTO, :TCODUNIDADE, :TCODGRUPO, :TCODFABRICANTE, :TDESCRICAO, :TDESCTABELA, :TCODBARRAS, :TCOMISSAO, :TPRECOVENDA, :TTIPO, :TPRECOCOMPRA, :TREFERENCIA, :TSTATUS, :TPRECOCUSTO, :TUNIDADE, :TSIGLA, :TCOMPOSICAO, :TNOMECOMERCIAL, :TAPRESENTACAO, :CODSUBGRUPO, :CODALIQUOTA, :PRECOAVISTA, :CODNCM, :ORIGEM, :CST, :CFOP, :CODEMPRESA DO BEGIN IF (TTIPO IN ('ACA', 'SMA')) then BEGIN SELECT SPT.PRECOCUSTO, SPT.PRECOVENDA FROM SPPRCUSTOVENDAINDUSTRIAS(:TCODIGO, :TTIPO) SPT INTO :TPRECOCUSTO, :TPRECOVENDA; END COR = NULL; TAM = NULL; NR = NULL; SELECT GP.COR, GP.TAM, GP.NR FROM GRADEPRODUTO GP WHERE GP.CODPRODUTO=:TCODIGO INTO :COR, :TAM, :NR; /*SELECT SPM.TOTALCOMPRA, SPM.TOTALVENDA FROM SPCONVERTEMOEDA(:TCODPRODUTO) SPM INTO :MOEDACOMPRA, :MOEDACONVERTIDA;*/ if (NOT MOEDACONVERTIDA IS NULL) then TPRECOVENDA = MOEDACONVERTIDA; if (NOT MOEDACOMPRA IS NULL) then TPRECOCOMPRA = MOEDACOMPRA; IF (NOT CODFILIAL IS NULL) THEN BEGIN SELECT SPF.TOTALCALCULADO FROM SPCONVERTEPRECOFILIAL(:CODFILIAL, :TPRECOVENDA) SPF INTO :TPRECOVENDA; END CODIGOFILIAL = TCODFILIAL; CODIGO = TCODIGO; CODPRODUTO = TCODPRODUTO; CODUNIDADE = TCODUNIDADE; CODGRUPO = TCODGRUPO; CODFABRICANTE =TCODFABRICANTE; DESCRICAO = TDESCRICAO; DESCTABELA = TDESCTABELA; CODBARRAS = TCODBARRAS; COMISSAO = TCOMISSAO; PRECOVENDA = TPRECOVENDA; TIPO = TTIPO; PRECOCOMPRA = TPRECOCOMPRA; REFERENCIA = TREFERENCIA; STATUS = TSTATUS; PRECOCUSTO = TPRECOCUSTO; UNIDADE = TUNIDADE; SIGLA = TSIGLA; COMPOSICAO = TCOMPOSICAO; NOMECOMERCIAL = TNOMECOMERCIAL; APRESENTACAO = TAPRESENTACAO; SELECT F.DESCRICAO FROM FABRICANTE F WHERE F.CODFABRICANTE=:TCODFABRICANTE INTO :FABRICANTE; SUSPEND; END END if (TIPOPESQ = 'NC') then /*POR NOME COMERCIAL*/ BEGIN FOR SELECT P.CODFILIAL, P.CODPRODUTO, P.CODPRODUTO, P.CODUNIDADE, P.CODGRUPO, P.CODFABRICANTE, P.DESCRICAO, CAST(NULL AS VARCHAR(30)), P.CODBARRAS, P.COMISSAO, P.PRECOVENDA, P.TIPO, P.PRECOCOMPRA, P.REFERENCIA, P.STATUS, P.PRECOCUSTO, U.DESCRICAO, U.SIGLA, P.COMPOSICAO, P.NOMECOMERCIAL, P.APRESENTACAO , P.CODSUBGRUPO, P.CODALIQUOTA, P.PRECOAVISTA, P.CODNCM, P.CFOP , P.CODEMPRESA FROM PRODUTOS P JOIN UNIDADEMEDIDA U ON (U.CODUNIDADE = P.CODUNIDADE) WHERE (P.LIXEIRA='N' OR LIXEIRA IS NULL) AND P.STATUS ='A' AND UPPER(P.NOMECOMERCIAL) LIKE UPPER(:PESQUISA) UNION ALL SELECT P.CODFILIAL, P.CODPRODUTO, TB.CODTABELA, TB.CODUNIDADE, P.CODGRUPO, P.CODFABRICANTE, P.DESCRICAO, TB.DESCTABELA, P.CODBARRAS, P.COMISSAO, TB.PRECOVENDA, P.TIPO, TB.PRECOCOMPRA, TB.REFERENCIA, P.STATUS, TB.PRECOCUSTO, U.DESCRICAO, U.SIGLA, P.COMPOSICAO, P.NOMECOMERCIAL, P.APRESENTACAO, P.CODSUBGRUPO, P.CODALIQUOTA, P.PRECOAVISTA, P.CODNCM, P.CFOP, P.CODEMPRESA FROM TABELADEPRECO TB JOIN PRODUTOS P ON (TB.CODPRODUTO = P.CODPRODUTO) JOIN UNIDADEMEDIDA U ON (U.CODUNIDADE = TB.CODUNIDADE) WHERE (P.LIXEIRA='N' OR LIXEIRA IS NULL) AND P.STATUS ='A' AND UPPER(P.NOMECOMERCIAL) LIKE UPPER(:PESQUISA) INTO :TCODFILIAL, :TCODIGO, :TCODPRODUTO, :TCODUNIDADE, :TCODGRUPO, :TCODFABRICANTE, :TDESCRICAO, :TDESCTABELA, :TCODBARRAS, :TCOMISSAO, :TPRECOVENDA, :TTIPO, :TPRECOCOMPRA, :TREFERENCIA, :TSTATUS, :TPRECOCUSTO, :TUNIDADE, :TSIGLA, :TCOMPOSICAO, :TNOMECOMERCIAL, :TAPRESENTACAO, :CODSUBGRUPO, :CODALIQUOTA, :PRECOAVISTA, :CODNCM, :CFOP, :CODEMPRESA DO BEGIN IF (TTIPO IN ('ACA', 'SMA')) then BEGIN SELECT SPT.PRECOCUSTO, SPT.PRECOVENDA FROM SPPRCUSTOVENDAINDUSTRIAS(:TCODIGO, :TTIPO) SPT INTO :TPRECOCUSTO, :TPRECOVENDA; END COR = NULL; TAM = NULL; NR = NULL; SELECT GP.COR, GP.TAM, GP.NR FROM GRADEPRODUTO GP WHERE GP.CODPRODUTO=:TCODIGO INTO :COR, :TAM, :NR; /*SELECT SPM.TOTALCOMPRA, SPM.TOTALVENDA FROM SPCONVERTEMOEDA(:TCODPRODUTO) SPM INTO :MOEDACOMPRA, :MOEDACONVERTIDA;*/ if (NOT MOEDACONVERTIDA IS NULL) then TPRECOVENDA = MOEDACONVERTIDA; if (NOT MOEDACOMPRA IS NULL) then TPRECOCOMPRA = MOEDACOMPRA; IF (NOT CODFILIAL IS NULL) THEN BEGIN SELECT SPF.TOTALCALCULADO FROM SPCONVERTEPRECOFILIAL(:CODFILIAL, :TPRECOVENDA) SPF INTO :TPRECOVENDA; END CODIGOFILIAL = TCODFILIAL; CODIGO = TCODIGO; CODPRODUTO = TCODPRODUTO; CODUNIDADE = TCODUNIDADE; CODGRUPO = TCODGRUPO; CODFABRICANTE =TCODFABRICANTE; DESCRICAO = TDESCRICAO; DESCTABELA = TDESCTABELA; CODBARRAS = TCODBARRAS; COMISSAO = TCOMISSAO; PRECOVENDA = TPRECOVENDA; TIPO = TTIPO; PRECOCOMPRA = TPRECOCOMPRA; REFERENCIA = TREFERENCIA; STATUS = TSTATUS; PRECOCUSTO = TPRECOCUSTO; UNIDADE = TUNIDADE; SIGLA = TSIGLA; COMPOSICAO = TCOMPOSICAO; NOMECOMERCIAL = TNOMECOMERCIAL; APRESENTACAO = TAPRESENTACAO; SELECT F.DESCRICAO FROM FABRICANTE F WHERE F.CODFABRICANTE=:TCODFABRICANTE INTO :FABRICANTE; SUSPEND; END END if (TIPOPESQ = 'CP') then /*POR COMPOSICAO*/ BEGIN FOR SELECT P.CODFILIAL, P.CODPRODUTO, P.CODPRODUTO, P.CODUNIDADE, P.CODGRUPO, P.CODFABRICANTE, P.DESCRICAO, CAST(NULL AS VARCHAR(30)), P.CODBARRAS, P.COMISSAO, P.PRECOVENDA, P.TIPO, P.PRECOCOMPRA, P.REFERENCIA, P.STATUS, P.PRECOCUSTO, U.DESCRICAO, U.SIGLA, P.COMPOSICAO, P.NOMECOMERCIAL, P.APRESENTACAO , P.CODSUBGRUPO, P.CODALIQUOTA, P.PRECOAVISTA, P.CODNCM, P.CFOP, P.CODEMPRESA FROM PRODUTOS P JOIN UNIDADEMEDIDA U ON (U.CODUNIDADE = P.CODUNIDADE) WHERE (P.LIXEIRA='N' OR LIXEIRA IS NULL) AND P.STATUS ='A' AND UPPER(P.COMPOSICAO) LIKE UPPER(:PESQUISA) UNION ALL SELECT P.CODFILIAL, P.CODPRODUTO, TB.CODTABELA, TB.CODUNIDADE, P.CODGRUPO, P.CODFABRICANTE, P.DESCRICAO, TB.DESCTABELA, P.CODBARRAS, P.COMISSAO, TB.PRECOVENDA, P.TIPO, TB.PRECOCOMPRA, TB.REFERENCIA, P.STATUS, TB.PRECOCUSTO, U.DESCRICAO, U.SIGLA, P.COMPOSICAO, P.NOMECOMERCIAL, P.APRESENTACAO, P.CODSUBGRUPO, P.CODALIQUOTA, P.PRECOAVISTA, P.CODNCM, P.CFOP , P.CODEMPRESA FROM PRODUTOS P JOIN TABELADEPRECO TB ON (TB.CODPRODUTO = P.CODPRODUTO) JOIN UNIDADEMEDIDA U ON (U.CODUNIDADE = TB.CODUNIDADE) WHERE (P.LIXEIRA='N' OR LIXEIRA IS NULL) AND P.STATUS ='A' AND UPPER(P.COMPOSICAO) LIKE UPPER(:PESQUISA) INTO :TCODFILIAL, :TCODIGO, :TCODPRODUTO, :TCODUNIDADE, :TCODGRUPO, :TCODFABRICANTE, :TDESCRICAO, :TDESCTABELA, :TCODBARRAS, :TCOMISSAO, :TPRECOVENDA, :TTIPO, :TPRECOCOMPRA, :TREFERENCIA, :TSTATUS, :TPRECOCUSTO, :TUNIDADE, :TSIGLA, :TCOMPOSICAO, :TNOMECOMERCIAL, :TAPRESENTACAO, :CODSUBGRUPO, :CODALIQUOTA, :PRECOAVISTA, :CODNCM, :CFOP, :CODEMPRESA DO BEGIN IF (TTIPO IN ('ACA', 'SMA')) then BEGIN SELECT SPT.PRECOCUSTO, SPT.PRECOVENDA FROM SPPRCUSTOVENDAINDUSTRIAS(:TCODIGO, :TTIPO) SPT INTO :TPRECOCUSTO, :TPRECOVENDA; END COR = NULL; TAM = NULL; NR = NULL; SELECT GP.COR, GP.TAM, GP.NR FROM GRADEPRODUTO GP WHERE GP.CODPRODUTO=:TCODIGO INTO :COR, :TAM, :NR; /*SELECT SPM.TOTALCOMPRA, SPM.TOTALVENDA FROM SPCONVERTEMOEDA(:TCODPRODUTO) SPM INTO :MOEDACOMPRA, :MOEDACONVERTIDA;*/ if (NOT MOEDACONVERTIDA IS NULL) then TPRECOVENDA = MOEDACONVERTIDA; if (NOT MOEDACOMPRA IS NULL) then TPRECOCOMPRA = MOEDACOMPRA; IF (NOT CODFILIAL IS NULL) THEN BEGIN SELECT SPF.TOTALCALCULADO FROM SPCONVERTEPRECOFILIAL(:CODFILIAL, :TPRECOVENDA) SPF INTO :TPRECOVENDA; END CODIGOFILIAL = TCODFILIAL; CODIGO = TCODIGO; CODPRODUTO = TCODPRODUTO; CODUNIDADE = TCODUNIDADE; CODGRUPO = TCODGRUPO; CODFABRICANTE =TCODFABRICANTE; DESCRICAO = TDESCRICAO; DESCTABELA = TDESCTABELA; CODBARRAS = TCODBARRAS; COMISSAO = TCOMISSAO; PRECOVENDA = TPRECOVENDA; TIPO = TTIPO; PRECOCOMPRA = TPRECOCOMPRA; REFERENCIA = TREFERENCIA; STATUS = TSTATUS; PRECOCUSTO = TPRECOCUSTO; UNIDADE = TUNIDADE; SIGLA = TSIGLA; COMPOSICAO = TCOMPOSICAO; NOMECOMERCIAL = TNOMECOMERCIAL; APRESENTACAO = TAPRESENTACAO; SELECT F.DESCRICAO FROM FABRICANTE F WHERE F.CODFABRICANTE=:TCODFABRICANTE INTO :FABRICANTE; SUSPEND; END END /*:CODIGO, :CODPRODUTO, :CODUNIDADE, :CODGRUPO, :DESCRICAO, :CODBARRAS, :COMISSAO, :PRECOVENDA, :TIPO, :PRECOCOMPRA, :REFERENCIA, :STATUS, :PRECOCUSTO, :UNIDADE, :SIGLA */ end ^ SET TERM ; ^ /*------ 30/01/2018 00:42:26 --------*/ ALTER TABLE PGTOSALARIO DROP CONSTRAINT FK_PGTOSALARIO_PLCONTAS; /*------ 30/01/2018 00:42:46 --------*/ ALTER TABLE PLANOSDECONTAS DROP CONSTRAINT PK_PLANOSDECONTAS; /*------ 30/01/2018 00:43:10 --------*/ update RDB$RELATION_FIELDS set RDB$NULL_FLAG = 1 where (RDB$FIELD_NAME = 'CHAVE') and (RDB$RELATION_NAME = 'PLANOSDECONTAS') ; /*------ 30/01/2018 00:43:19 --------*/ alter table PLANOSDECONTAS add constraint PK_PLANOSDECONTAS primary key (CHAVE); /*------ 30/01/2018 01:47:33 --------*/ SET TERM ^ ; ALTER PROCEDURE SPCONTASRECEBER RETURNS ( CODMOVIMENTO INTEGER, CODFILIAL INTEGER, CODFUNCIONARIO INTEGER, DATA DATE, HORA TIME, TIPO VARCHAR(2), CODPLANOPGTO INTEGER, CODPARCELA INTEGER, NRPARCELA INTEGER, DOCUMENTO VARCHAR(20), PAGO CHAR(1), CODCLIENTE INTEGER, CLIENTE VARCHAR(70), PLANOCONTAS VARCHAR(40), VALORPARCELA FLOAT, VENCIMENTO DATE, VALORPAGO FLOAT, RESTANTE FLOAT, RESTANTECOMJUROS FLOAT, DIASDEATRAZO INTEGER, NRDOCUMENTO VARCHAR(20), OBS BLOB sub_type 0 segment size 80, STATUS CHAR(1), SPC CHAR(1), CODSITUACAO INTEGER, SITUACAO VARCHAR(50), STATUSCLIENTE CHAR(1), NRBOLETO VARCHAR(30), DEPENDENTE VARCHAR(70), FILIAL VARCHAR(40), EXTENSO VARCHAR(250), OBSPARCELA VARCHAR(50), NRNFE VARCHAR(20), PLANOPGTO VARCHAR(40), TIPODOC VARCHAR(20), CODEMPRESA INTEGER) AS declare variable PARCELA INTEGER; declare variable DIASATRAZO INTEGER; declare variable CREDITO FLOAT; declare variable VALOR FLOAT; declare variable CARENCIA INTEGER; declare variable JUROS FLOAT; declare variable JUROSCALCULO FLOAT; declare variable TIPOJUROS CHAR(1); declare variable JUROSSOBRE CHAR(1); declare variable DIAS INTEGER; declare variable VENC DATE; declare variable HOJE DATE; declare variable VALORRESTANTE FLOAT; declare variable TCODPARCELA INTEGER; declare variable CODIGOCONTABIL VARCHAR(20); declare variable CODCONTA INTEGER; begin FOR SELECT PC.CODPARCELA, PC.CODPARCELA, PC.CODPARCELA, PC.NRPARCELA, PC.VALORPARCELA, PC.VENCIMENTO, PC.DOCUMENTO, PC.PAGO, PC.STATUS, PC.CODSITUACAO, PC.CODCONTA, PC.OBSPARCELA, CPR.CODPLANOPGTO, CPR.CODMOVIMENTO FROM PARCELASCONTAS PC JOIN CONTASPAGARRECEBER CPR ON (CPR.CODCONTA=PC.CODCONTA) WHERE PC.PAGO='N' AND CPR.TIPO IN ('VE', 'RE','S') INTO :TCODPARCELA, :PARCELA, :CODPARCELA, :NRPARCELA, :VALOR, :VENC, :DOCUMENTO, :PAGO, :STATUS, :CODSITUACAO, :CODCONTA, :OBSPARCELA, :CODPLANOPGTO, :CODMOVIMENTO DO BEGIN /*SELECT CPR.CODPLANOPGTO, CPR.CODMOVIMENTO FROM CONTASPAGARRECEBER CPR WHERE CPR.CODCONTA=:CODCONTA INTO :CODPLANOPGTO, :CODMOVIMENTO; */ select M.CODEMPRESA from MOVIMENTOSPRODUTOS M where M.CODMOVIMENTO=:CODMOVIMENTO into :CODEMPRESA; if (CODEMPRESA IS NULL) then BEGIN select CODEMPRESA FROM usuarios U WHERE U.CODUSUARIO=(SELECT CODUSUARIO FROM MOVIMENTOSPRODUTOS WHERE CODMOVIMENTO=:CODMOVIMENTO) INTO :CODEMPRESA; END SELECT CF.CARENCIAJUROSPORATRAZO, CF.JUROSPORATRAZO, CF.TIPPOJUROSPORATRAZO, CF.JUROSSOBRE FROM CONFIGURACOES CF where CF.CODEMPRESA=:CODEMPRESA INTO :CARENCIA, :JUROS, :TIPOJUROS, :JUROSSOBRE; if (JUROS IS NULL) then JUROS = 0; if (CARENCIA IS NULL) then CARENCIA = 0; SELECT M.CODFILIAL, M.DATA, M.HORA, M.TIPO, M.CODIGOCONTABIL, M.CODFUNCIONARIO, M.CODEMPRESA FROM MOVIMENTOSPRODUTOS M WHERE M.CODMOVIMENTO=:CODMOVIMENTO INTO :CODFILIAL, :DATA, :HORA, :TIPO, :CODIGOCONTABIL, :CODFUNCIONARIO, :CODEMPRESA; NRDOCUMENTO = NULL; TIPODOC = NULL; SELECT DM.TIPODOC, DM.NRDOCUMENTO FROM DOCUMENTOMOV DM WHERE DM.CODMOVIMENTO=:CODMOVIMENTO INTO :TIPODOC, :NRDOCUMENTO; NRNFE = NULL; SELECT N.NRDOCUMENTO FROM NFEMOV N WHERE N.CODMOVIMENTO=:CODMOVIMENTO INTO :NRNFE; CODCLIENTE = NULL; SELECT CM.CODCLIENTE FROM CLIENTEMOVIMENTO CM WHERE CM.CODMOVIMENTO=:CODMOVIMENTO INTO :CODCLIENTE; SELECT PL.DESCRICAO FROM PLANOSDECONTAS PL WHERE PL.CODEMPRESA=:CODEMPRESA AND PL.CODIGOCONTABIL=:CODIGOCONTABIL INTO :PLANOCONTAS; NRBOLETO=NULL; SELECT BP.NRBOLETO FROM BOLETOPARCELA BP WHERE BP.CODPARCELA=:TCODPARCELA INTO :NRBOLETO; PLANOPGTO=''; SELECT PG.DESCRICAO FROM PLANOSPAGAMENTO PG WHERE PG.CODEMPRESA=:CODEMPRESA AND PG.CODPLANOPGTO=:CODPLANOPGTO INTO :PLANOPGTO; SELECT CAST(C.NOME AS VARCHAR(70)), C.SPC, C.STATUS FROM CLIENTES C WHERE C.CODCLIENTE=:CODCLIENTE INTO :CLIENTE, :SPC, :STATUSCLIENTE; SITUACAO = NULL; SELECT TS.DESCRICAO FROM TABELASSIMPLES TS WHERE TS.CODTABELASIMPLES=:CODSITUACAO INTO :SITUACAO; OBS = NULL; SELECT OB.OBS FROM OBSPARCELASCONTAS OB WHERE OB.CODPARCELA=:TCODPARCELA INTO :OBS; DEPENDENTE = NULL; SELECT DC.NOME FROM DEPENDENTECLIMOV DCM JOIN DEPENDENTESCLI DC ON (DC.CODDEPENDENTE = DCM.CODDEPENDENTE) WHERE DCM.CODMOVIMENTO=:CODMOVIMENTO INTO :DEPENDENTE; SELECT FI.NOME FROM FILIAIS FI WHERE FI.CODFILIAL=:CODFILIAL INTO :FILIAL; SELECT SUM(PG.VALOR) FROM PARCELASPGTO PG WHERE PG.CODPARCELA = :PARCELA INTO :CREDITO; if (CREDITO IS NULL ) then CREDITO = 0; CODPARCELA = PARCELA; VALORPAGO = CREDITO; VALORPARCELA = VALOR; VENCIMENTO = VENC; RESTANTE = VALOR - CREDITO; VALORRESTANTE = VALOR - CREDITO; HOJE = CURRENT_DATE; DIASATRAZO = HOJE - VENC; DIASDEATRAZO = DIASATRAZO; IF (NOT TIPOJUROS IS NULL) then BEGIN IF (DIASATRAZO>=CARENCIA) then BEGIN IF (TIPOJUROS ='M') then BEGIN JUROSCALCULO = (JUROS / 30) * DIASATRAZO; IF (JUROSSOBRE = 'P') then RESTANTECOMJUROS = (VALORPARCELA + ((VALORPARCELA * JUROSCALCULO)/100)) - CREDITO; ELSE RESTANTECOMJUROS = ((VALORPARCELA - CREDITO ) + (((VALORPARCELA - CREDITO)* JUROSCALCULO)/100)); END IF (TIPOJUROS ='D') then BEGIN JUROSCALCULO = JUROS * DIASATRAZO; IF (JUROSSOBRE = 'P') then RESTANTECOMJUROS = (VALORPARCELA + ((VALORPARCELA * JUROSCALCULO)/100)) - CREDITO; ELSE RESTANTECOMJUROS = ((VALORPARCELA - CREDITO )+ (((VALORPARCELA - CREDITO)* JUROSCALCULO)/100)); END END ELSE BEGIN RESTANTECOMJUROS = VALORPARCELA - CREDITO; END END ELSE BEGIN RESTANTECOMJUROS = VALORPARCELA - CREDITO; END IF (DIASATRAZO < 0) then BEGIN DIASATRAZO = 0; DIASDEATRAZO = DIASATRAZO; END EXTENSO=NULL; if (RESTANTECOMJUROS>0) then begin SELECT VALOREXTENSO FROM EXTENSO(:RESTANTECOMJUROS,'S') INTO :EXTENSO; end suspend; END end ^ SET TERM ; ^ /*------ 30/01/2018 11:56:47 --------*/ SET TERM ^ ; ALTER PROCEDURE SPPLANOSPGTOMOV ( CODMOVIMENTO INTEGER) RETURNS ( CODPLANOPGTO INTEGER, DESCRICAO VARCHAR(40), VARIACAO FLOAT, TIPO CHAR(1), TOTAL FLOAT, VALORPARCELA FLOAT, PARCELAS INTEGER) AS declare variable TOTALPRODUTOS FLOAT; declare variable NRPARCELAS INTEGER; begin FOR SELECT P.CODPLANOPGTO, P.DESCRICAO, P.ACRESCIMO, P.TIPO FROM PLANOSPAGAMENTO P WHERE P.CODEMPRESA=(SELECT CODEMPRESA FROM MOVIMENTOSPRODUTOS M WHERE M.CODMOVIMENTO=:CODMOVIMENTO) AND P.STATUS='A' AND (P.LIXEIRA IS NULL or P.LIXEIRA='N') INTO :CODPLANOPGTO, :DESCRICAO, :VARIACAO, :TIPO DO BEGIN IF (VARIACAO IS NULL) then VARIACAO=0; SELECT COUNT(*) FROM DIAS D WHERE D.CODPLANOPGTO=:CODPLANOPGTO INTO :NRPARCELAS; SELECT TOTALPRODUTOS FROM TOTALMOV(:CODMOVIMENTO) INTO :TOTALPRODUTOS; If (TOTALPRODUTOS IS NULL) Then TOTALPRODUTOS = 0; IF (VARIACAO>0 ) then BEGIN If (TIPO = 'A') Then TOTAL = TOTALPRODUTOS + ((TOTALPRODUTOS * VARIACAO)/100); If (TIPO = 'D') Then TOTAL = TOTALPRODUTOS - ((TOTALPRODUTOS * VARIACAO)/100); If (TIPO is null ) Then TOTAL = TOTALPRODUTOS; END ELSE TOTAL = TOTALPRODUTOS; if (NRPARCELAS IS NULL) then NRPARCELAS=1; if (NRPARCELAS = 0) then NRPARCELAS=1; VALORPARCELA = TOTAL/NRPARCELAS; PARCELAS=NRPARCELAS; suspend; END end ^ SET TERM ; ^ /*------ 30/01/2018 12:59:38 --------*/ SET TERM ^ ; ALTER PROCEDURE SPVWPLANO RETURNS ( ORDEM INTEGER, PAI VARCHAR(20), CODIGOCONTABIL VARCHAR(20), DESCRICAO VARCHAR(40), DESCRICAOCOMCOD VARCHAR(80), TIPO VARCHAR(2), FINANCEIRO CHAR(1), NRESPACOS INTEGER, CODSPACE VARCHAR(30), CODEMPRESA INTEGER) AS declare variable I INTEGER; declare variable ESPACOS VARCHAR(30); declare variable PAT VARCHAR(30); declare variable PURO VARCHAR(20); declare variable LEN INTEGER; declare variable texto VARCHAR(20); declare variable VRETORNO INTEGER; begin FOR SELECT P.PAI, P.CODIGOCONTABIL, P.DESCRICAO, P.TIPO, P.FINANCEIRO , P.CODEMPRESA FROM PLANOSDECONTAS P INTO :PAI, :CODIGOCONTABIL, :DESCRICAO, :TIPO, :FINANCEIRO, :CODEMPRESA DO BEGIN I = 1; PAT = ''; LEN =0; WHILE (NOT CODIGOCONTABIL LIKE PAT) DO BEGIN PAT = PAT || '_'; LEN =LEN + 1; END ESPACOS=' '; NRESPACOS = LEN; WHILE (I < LEN ) DO BEGIN ESPACOS = ESPACOS || ' '; I = i + 1; END if (:TIPO='T') then PAI=CODIGOCONTABIL; DESCRICAOCOMCOD = ESPACOS || :CODIGOCONTABIL || ' ' ||:DESCRICAO; CODSPACE = ESPACOS || :CODIGOCONTABIL; suspend; END end ^ SET TERM ; ^ /*------ 01/02/2018 00:23:33 --------*/ SET TERM ^ ; ALTER PROCEDURE SPFORMATOCAMPO(CODEMPRESA INTEGER) RETURNS ( FORMATOCOMPRA VARCHAR(20), FORMATOVENDA VARCHAR(20), FORMATOQTD VARCHAR(20)) AS declare variable CASASDECIMAISCOMPRA INTEGER; declare variable CASASDECIMAISVENDA INTEGER; declare variable CASASDECIMAISQTD INTEGER; begin SELECT C.CASASDECIMAISCOMPRA, C.CASASDECIMAISVENDA, C.CASASDECIMAISQTD FROM CONFIGURACOES C WHERE C.CODEMPRESA=:CODEMPRESA INTO :CASASDECIMAISCOMPRA, :CASASDECIMAISVENDA, :CASASDECIMAISQTD; If (CASASDECIMAISCOMPRA IS NULL) Then FORMATOCOMPRA = '###,##0.00'; If (CASASDECIMAISCOMPRA = 2) Then FORMATOCOMPRA = '###,##0.00'; If (CASASDECIMAISCOMPRA = 3) Then FORMATOCOMPRA = '###,##0.000'; If (CASASDECIMAISCOMPRA = 4) Then FORMATOCOMPRA = '###,##0.0000'; If (CASASDECIMAISCOMPRA = 5) Then FORMATOCOMPRA = '###,##0.00000'; If (CASASDECIMAISCOMPRA = 6) Then FORMATOCOMPRA = '###,##0.000000'; If (CASASDECIMAISVENDA IS NULL ) Then FORMATOVENDA = '###,##0.00'; If (CASASDECIMAISVENDA = 2) Then FORMATOVENDA = '###,##0.00'; If (CASASDECIMAISVENDA = 3) Then FORMATOVENDA = '###,##0.000'; If (CASASDECIMAISVENDA = 4) Then FORMATOVENDA = '###,##0.0000'; If (CASASDECIMAISVENDA = 5) Then FORMATOVENDA = '###,##0.00000'; If (CASASDECIMAISVENDA = 6) Then FORMATOVENDA = '###,##0.000000'; If (CASASDECIMAISQTD IS NULL) Then FORMATOQTD = '###,##0.###'; If (CASASDECIMAISQTD = 0) Then FORMATOQTD = ''; If (CASASDECIMAISQTD = 1) Then FORMATOQTD = '###,##0.#'; If (CASASDECIMAISQTD = 2) Then FORMATOQTD = '###,##0.##'; If (CASASDECIMAISQTD = 3) Then FORMATOQTD = '###,##0.###'; If (CASASDECIMAISQTD = 4) Then FORMATOQTD = '###,##0.####'; If (CASASDECIMAISQTD = 5) Then FORMATOQTD = '###,##0.#####'; If (CASASDECIMAISQTD = 6) Then FORMATOQTD = '###,##0.######'; /* Procedure Text */ suspend; end ^ SET TERM ; ^ /*------ 01/02/2018 01:13:18 --------*/ SET TERM ^ ; ALTER PROCEDURE SPPESQMOVPORDOCUMENTO ( DOCUMENTO VARCHAR(20)) RETURNS ( CODMOVIMENTO INTEGER, DATA DATE, HORA TIME, DATASAIDAENTRADA DATE, TIPO VARCHAR(2), SITUACAO VARCHAR(2), CODIGOCONTABIL VARCHAR(20), CODFUNCIONARIO INTEGER, NRDOCUMENTO VARCHAR(20), PLANODECONTAS VARCHAR(40), TIPOPESSOA VARCHAR(15), CODPESSOA INTEGER, NOMEPESSOA VARCHAR(70), USUARIO VARCHAR(10), VALOR FLOAT, CODFILIAL INTEGER, CODACUMULADOR INTEGER, CODESPECIE INTEGER, FORMAPGTO VARCHAR(40), FILIAL VARCHAR(40), FUNCIONARIO VARCHAR(40), PREVENTREGA DATE, STATUS VARCHAR(50), TIPODOC VARCHAR(20), CODEMPRESA INTEGER) AS begin FOR SELECT M.CODMOVIMENTO, M.DATA, M.HORA, M.DATASAIDAENTRADA, M.TIPO, M.SITUACAO, M.CODIGOCONTABIL, M.CODFUNCIONARIO, DM.NRDOCUMENTO, PC.DESCRICAO AS PLANODECONTAS, CAST('Cliente' as VARCHAR(15)) AS TIPOPESSOA,CL.CODCLIENTE AS CODPESSOA, CAST(CL.NOME AS VARCHAR(70)) AS NOMEPESSOA ,U.LOGIN, M.TOTALGERAL, M.CODFILIAL, M.CODACUMULADOR, M.CODESPECIE,FP.DESCRICAO, FI.NOME, F.NOME, M.PREVENTREGA, SN.DESCRICAO, DM.tipodoc, M.CODEMPRESA FROM MOVIMENTOSPRODUTOS M JOIN FILIAIS FI ON (FI.CODFILIAL = M.CODFILIAL) LEFT JOIN DOCUMENTOMOV DM ON (DM.CODMOVIMENTO = M.CODMOVIMENTO) LEFT JOIN PLANOSDECONTAS PC ON (PC.CODIGOCONTABIL = M.CODIGOCONTABIL) LEFT JOIN CLIENTEMOVIMENTO CM ON (CM.CODMOVIMENTO = M.CODMOVIMENTO) LEFT JOIN CLIENTES CL ON (CL.CODCLIENTE = CM.CODCLIENTE) LEFT JOIN USUARIOS U ON (U.CODUSUARIO = M.CODUSUARIO) LEFT JOIN FUNCIONARIOS F ON (F.CODFUNCIONARIO = M.CODFUNCIONARIO) LEFT JOIN CONTASPAGARRECEBER CPR ON (CPR.CODMOVIMENTO = M.CODMOVIMENTO) LEFT JOIN PLANOSPAGAMENTO FP ON (FP.CODPLANOPGTO = CPR.CODPLANOPGTO) LEFT JOIN SITUACAONOTA SN ON (SN.COSITUACAONOTA = M.CODSITUACAONOTA) WHERE M.TIPO IN ('VE','PV', 'OR', 'CS','DE','NE', 'TR','NC','LO') AND DM.NRDOCUMENTO=:DOCUMENTO union all SELECT M.CODMOVIMENTO, M.DATA, M.HORA, M.DATASAIDAENTRADA, M.TIPO, M.SITUACAO, M.CODIGOCONTABIL, M.CODFUNCIONARIO, DM.NRDOCUMENTO, PC.DESCRICAO AS PLANODECONTAS, CAST('Fornecedor' as VARCHAR(15)) AS TIPOPESSOA, FM.CODFORNECEDOR AS CODPESSOA, CAST(F.NOME AS VARCHAR(70)) NOMEPESSOA ,U.LOGIN, M.TOTALGERAL, M.CODFILIAL, M.CODACUMULADOR, M.CODESPECIE,FP.DESCRICAO, FI.NOME, FU.NOME, M.PREVENTREGA, SN.DESCRICAO, DM.tipodoc, M.CODEMPRESA FROM MOVIMENTOSPRODUTOS M JOIN FILIAIS FI ON (FI.CODFILIAL = M.CODFILIAL) LEFT JOIN DOCUMENTOMOV DM ON (DM.CODMOVIMENTO = M.CODMOVIMENTO) LEFT JOIN PLANOSDECONTAS PC ON (PC.CODIGOCONTABIL = M.CODIGOCONTABIL) LEFT JOIN FORNMOVIMENTO FM ON (FM.CODMOVIMENTO = M.CODMOVIMENTO) LEFT JOIN FORNECEDORES F ON (F.CODFORNECEDOR = FM.CODFORNECEDOR) LEFT JOIN USUARIOS U ON (U.CODUSUARIO = M.CODUSUARIO) LEFT JOIN FUNCIONARIOS FU ON (FU.CODFUNCIONARIO = M.CODFUNCIONARIO) LEFT JOIN CONTASPAGARRECEBER CPR ON (CPR.CODMOVIMENTO = M.CODMOVIMENTO) LEFT JOIN PLANOSPAGAMENTO FP ON (FP.CODPLANOPGTO = CPR.CODPLANOPGTO) LEFT JOIN SITUACAONOTA SN ON (SN.COSITUACAONOTA = M.CODSITUACAONOTA) WHERE M.TIPO IN ('CO','PC', 'CE','DS','NS', 'NF') AND DM.NRDOCUMENTO=:DOCUMENTO INTO CODMOVIMENTO, DATA, HORA, DATASAIDAENTRADA, TIPO, SITUACAO, CODIGOCONTABIL, CODFUNCIONARIO, NRDOCUMENTO, PLANODECONTAS, TIPOPESSOA, CODPESSOA, NOMEPESSOA, USUARIO, VALOR, :CODFILIAL, :CODACUMULADOR, :CODESPECIE, :FORMAPGTO, :FILIAL, :FUNCIONARIO, :PREVENTREGA, :STATUS, :TIPODOC, :CODEMPRESA DO suspend; end ^ SET TERM ; ^ /*------ 01/02/2018 01:16:18 --------*/ SET TERM ^ ; ALTER PROCEDURE SPPESQMOVPORCODPESSOA ( CODIGO INTEGER) RETURNS ( CODMOVIMENTO INTEGER, DATA DATE, HORA TIME, DATASAIDAENTRADA DATE, TIPO VARCHAR(2), SITUACAO VARCHAR(2), CODIGOCONTABIL VARCHAR(20), CODFUNCIONARIO INTEGER, NRDOCUMENTO VARCHAR(20), PLANODECONTAS VARCHAR(40), TIPOPESSOA VARCHAR(15), CODPESSOA INTEGER, NOMEPESSOA VARCHAR(70), USUARIO VARCHAR(10), VALOR FLOAT, CODFILIAL INTEGER, CODACUMULADOR INTEGER, CODESPECIE INTEGER, FORMAPGTO VARCHAR(40), FILIAL VARCHAR(40), STATUS VARCHAR(50), FUNCIONARIO VARCHAR(40), CODEMPRESA INTEGER) AS begin FOR SELECT M.CODMOVIMENTO, M.DATA, M.HORA, M.DATASAIDAENTRADA, M.TIPO, M.SITUACAO, M.CODIGOCONTABIL, M.CODFUNCIONARIO, DM.NRDOCUMENTO, PC.DESCRICAO AS PLANODECONTAS, CAST('Cliente' as VARCHAR(15)) AS TIPOPESSOA,CL.CODCLIENTE AS CODPESSOA, CAST(CL.NOME AS VARCHAR(70)) AS NOMEPESSOA ,U.LOGIN, M.TOTALGERAL, M.CODFILIAL, M.CODACUMULADOR, M.CODESPECIE,FP.DESCRICAO, FI.NOME, SN.DESCRICAO, F.NOME, M.CODEMPRESA FROM MOVIMENTOSPRODUTOS M JOIN FILIAIS FI ON (FI.CODFILIAL = M.CODFILIAL) LEFT JOIN DOCUMENTOMOV DM ON (DM.CODMOVIMENTO = M.CODMOVIMENTO) LEFT JOIN PLANOSDECONTAS PC ON (PC.CODIGOCONTABIL = M.CODIGOCONTABIL) JOIN CLIENTEMOVIMENTO CM ON (CM.CODMOVIMENTO = M.CODMOVIMENTO) JOIN CLIENTES CL ON (CL.CODCLIENTE = CM.CODCLIENTE) LEFT JOIN USUARIOS U ON (U.CODUSUARIO = M.CODUSUARIO) LEFT JOIN FUNCIONARIOS F ON (F.CODFUNCIONARIO = M.CODFUNCIONARIO) LEFT JOIN CONTASPAGARRECEBER CPR ON (CPR.CODMOVIMENTO = M.CODMOVIMENTO) LEFT JOIN PLANOSPAGAMENTO FP ON (FP.CODPLANOPGTO = CPR.CODPLANOPGTO) LEFT JOIN SITUACAONOTA SN ON (SN.COSITUACAONOTA = M.CODSITUACAONOTA) WHERE M.TIPO IN ('VE','PV', 'OR', 'CS','DE','NE', 'TR', 'NC', 'LO') AND CM.CODCLIENTE=:CODIGO union all SELECT M.CODMOVIMENTO, M.DATA, M.HORA, M.DATASAIDAENTRADA, M.TIPO, M.SITUACAO, M.CODIGOCONTABIL, M.CODFUNCIONARIO, DM.NRDOCUMENTO, PC.DESCRICAO AS PLANODECONTAS, CAST('Fornecedor' as VARCHAR(15)) AS TIPOPESSOA, FM.CODFORNECEDOR AS CODPESSOA, CAST(F.NOME AS VARCHAR(70)) NOMEPESSOA ,U.LOGIN, M.TOTALGERAL, M.CODFILIAL, M.CODACUMULADOR, M.CODESPECIE,FP.DESCRICAO, FI.NOME, SN.DESCRICAO, FU.NOME, M.CODEMPRESA FROM MOVIMENTOSPRODUTOS M JOIN FILIAIS FI ON (FI.CODFILIAL = M.CODFILIAL) LEFT JOIN DOCUMENTOMOV DM ON (DM.CODMOVIMENTO = M.CODMOVIMENTO) LEFT JOIN PLANOSDECONTAS PC ON (PC.CODIGOCONTABIL = M.CODIGOCONTABIL) JOIN FORNMOVIMENTO FM ON (FM.CODMOVIMENTO = M.CODMOVIMENTO) JOIN FORNECEDORES F ON (F.CODFORNECEDOR = FM.CODFORNECEDOR) LEFT JOIN USUARIOS U ON (U.CODUSUARIO = M.CODUSUARIO) LEFT JOIN FUNCIONARIOS FU ON (FU.CODFUNCIONARIO = M.CODFUNCIONARIO) LEFT JOIN CONTASPAGARRECEBER CPR ON (CPR.CODMOVIMENTO = M.CODMOVIMENTO) LEFT JOIN PLANOSPAGAMENTO FP ON (FP.CODPLANOPGTO = CPR.CODPLANOPGTO) LEFT JOIN SITUACAONOTA SN ON (SN.COSITUACAONOTA = M.CODSITUACAONOTA) WHERE M.TIPO IN ('CO','PC', 'CE','DS','NS', 'NF') AND FM.CODFORNECEDOR=:CODIGO INTO CODMOVIMENTO, DATA, HORA, DATASAIDAENTRADA, TIPO, SITUACAO, CODIGOCONTABIL, CODFUNCIONARIO, NRDOCUMENTO, PLANODECONTAS, TIPOPESSOA, CODPESSOA, NOMEPESSOA, USUARIO, VALOR, :CODFILIAL, :CODACUMULADOR, :CODESPECIE, :FORMAPGTO, :FILIAL, :STATUS, :FUNCIONARIO, :CODEMPRESA DO suspend; end ^ SET TERM ; ^ /*------ 01/02/2018 01:17:48 --------*/ SET TERM ^ ; ALTER PROCEDURE SPPESQMOVPORCODIGO ( CODIGO INTEGER) RETURNS ( CODMOVIMENTO INTEGER, DATA DATE, HORA TIME, DATASAIDAENTRADA DATE, TIPO VARCHAR(2), SITUACAO VARCHAR(2), CODIGOCONTABIL VARCHAR(20), CODFUNCIONARIO INTEGER, NRDOCUMENTO VARCHAR(20), PLANODECONTAS VARCHAR(40), TIPOPESSOA VARCHAR(15), CODPESSOA INTEGER, NOMEPESSOA VARCHAR(70), USUARIO VARCHAR(10), VALOR FLOAT, FUNCIONARIO VARCHAR(40), CODFILIAL INTEGER, CODACUMULADOR INTEGER, CODESPECIE INTEGER, FORMAPGTO VARCHAR(40), FILIAL VARCHAR(40), STATUS VARCHAR(50), CODEMPRESA INTEGER) AS begin FOR SELECT M.CODMOVIMENTO, M.DATA, M.HORA, M.DATASAIDAENTRADA, M.TIPO, M.SITUACAO, M.CODIGOCONTABIL, M.CODFUNCIONARIO, DM.NRDOCUMENTO, PC.DESCRICAO AS PLANODECONTAS, CAST('Cliente' as VARCHAR(15)) AS TIPOPESSOA,CL.CODCLIENTE AS CODPESSOA, CAST(CL.NOME AS VARCHAR(70)) AS NOMEPESSOA ,U.LOGIN, M.TOTALGERAL, F.NOME, M.CODFILIAL, M.CODACUMULADOR, M.CODESPECIE, FP.DESCRICAO, FI.NOME, SN.DESCRICAO, M.CODEMPRESA FROM MOVIMENTOSPRODUTOS M JOIN FILIAIS FI ON (FI.CODFILIAL = M.CODFILIAL) LEFT JOIN DOCUMENTOMOV DM ON (DM.CODMOVIMENTO = M.CODMOVIMENTO) LEFT JOIN PLANOSDECONTAS PC ON (PC.CODIGOCONTABIL = M.CODIGOCONTABIL) LEFT JOIN CLIENTEMOVIMENTO CM ON (CM.CODMOVIMENTO = M.CODMOVIMENTO) LEFT JOIN CLIENTES CL ON (CL.CODCLIENTE = CM.CODCLIENTE) LEFT JOIN USUARIOS U ON (U.CODUSUARIO = M.CODUSUARIO) LEFT JOIN FUNCIONARIOS F ON (F.CODFUNCIONARIO = M.CODFUNCIONARIO) LEFT JOIN CONTASPAGARRECEBER CPR ON (CPR.CODMOVIMENTO = M.CODMOVIMENTO) LEFT JOIN PLANOSPAGAMENTO FP ON (FP.CODPLANOPGTO = CPR.CODPLANOPGTO) LEFT JOIN SITUACAONOTA SN ON (SN.COSITUACAONOTA = M.CODSITUACAONOTA) WHERE M.TIPO IN ('VE','PV', 'OR', 'CS', 'DE','NE', 'NC', 'TR', 'LO') AND M.CODMOVIMENTO=:CODIGO union all SELECT M.CODMOVIMENTO, M.DATA, M.HORA, M.DATASAIDAENTRADA, M.TIPO, M.SITUACAO, M.CODIGOCONTABIL, M.CODFUNCIONARIO, DM.NRDOCUMENTO, PC.DESCRICAO AS PLANODECONTAS, CAST('Fornecedor' as VARCHAR(15)) AS TIPOPESSOA, FM.CODFORNECEDOR AS CODPESSOA, CAST(F.NOME AS VARCHAR(70)) NOMEPESSOA ,U.LOGIN, M.TOTALGERAL, FU.NOME, M.CODFILIAL, M.CODACUMULADOR, M.CODESPECIE,FP.DESCRICAO, FI.NOME, SN.DESCRICAO, M.CODEMPRESA FROM MOVIMENTOSPRODUTOS M JOIN FILIAIS FI ON (FI.CODFILIAL = M.CODFILIAL) LEFT JOIN DOCUMENTOMOV DM ON (DM.CODMOVIMENTO = M.CODMOVIMENTO) LEFT JOIN PLANOSDECONTAS PC ON (PC.CODIGOCONTABIL = M.CODIGOCONTABIL) LEFT JOIN FORNMOVIMENTO FM ON (FM.CODMOVIMENTO = M.CODMOVIMENTO) LEFT JOIN FORNECEDORES F ON (F.CODFORNECEDOR = FM.CODFORNECEDOR) LEFT JOIN USUARIOS U ON (U.CODUSUARIO = M.CODUSUARIO) LEFT JOIN FUNCIONARIOS FU ON (FU.CODFUNCIONARIO = M.CODFUNCIONARIO) LEFT JOIN CONTASPAGARRECEBER CPR ON (CPR.CODMOVIMENTO = M.CODMOVIMENTO) LEFT JOIN PLANOSPAGAMENTO FP ON (FP.CODPLANOPGTO = CPR.CODPLANOPGTO) LEFT JOIN SITUACAONOTA SN ON (SN.COSITUACAONOTA = M.CODSITUACAONOTA) WHERE M.TIPO IN ('CO','PC', 'CE','DS','NS', 'NF') AND M.CODMOVIMENTO=:CODIGO INTO CODMOVIMENTO, DATA, HORA, DATASAIDAENTRADA, TIPO, SITUACAO, CODIGOCONTABIL, CODFUNCIONARIO, NRDOCUMENTO, PLANODECONTAS, TIPOPESSOA, CODPESSOA, NOMEPESSOA, USUARIO, VALOR, FUNCIONARIO, CODFILIAL, CODACUMULADOR, CODESPECIE, :FORMAPGTO, :FILIAL, :STATUS, :CODEMPRESA DO suspend; end ^ SET TERM ; ^ /*------ 01/02/2018 02:35:03 --------*/ 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 ; ^ /*------ 01/02/2018 11:24:51 --------*/ SET TERM ^ ; ALTER PROCEDURE SPMOVPRODUTO ( DATAI DATE, DATAF DATE) RETURNS ( CODMOVIMENTO INTEGER, CODEMPRESA INTEGER, CODFUNCIONARIO INTEGER, CODFILIAL INTEGER, FILIAL VARCHAR(40), DATA DATE, CODIGOCONTABIL VARCHAR(20), TIPO VARCHAR(2), SITUACAO VARCHAR(2), CODPRODUTO INTEGER, PRODUTO VARCHAR(50), PLANODECONTAS VARCHAR(40), TIPOPLANO CHAR(1), QTD FLOAT, UNIDADEMOV VARCHAR(30), VALOR FLOAT, TOTAL FLOAT, BAIXADO CHAR(1), QTDCOVERTIDA FLOAT, UNIDADECONVERTIDA VARCHAR(30), CODFABRICANTE INTEGER, FABRICANTE VARCHAR(40), CODGRUPO INTEGER, GRUPO VARCHAR(40), CODUNIDADEMOV INTEGER, CODFORNECEDOR INTEGER, FORNECEDOR VARCHAR(70), RAZAOFORNECEDOR VARCHAR(70), FUNCIONARIO VARCHAR(40), VOLUMES INTEGER, ESTOQUE FLOAT, VALORCUSTO FLOAT, TOTALCUSTO FLOAT, LUCRO FLOAT, TIPODESCONTO CHAR(1), DESCONTO FLOAT, TOTALCDESC FLOAT, ESTOQUEATUAL FLOAT) AS declare variable CODPRODUTOMOV INTEGER; declare variable CODUNIDADLANCADA INTEGER; declare variable QTDLANCADA FLOAT; declare variable CODMOV INTEGER; declare variable TDESCONTO FLOAT; declare variable TTIPODESCONTO CHAR(1); declare variable NRITENS INTEGER ; declare variable TEMPTOTAL FLOAT; begin FOR SELECT M.CODMOVIMENTO, M.CODEMPRESA, M.CODFUNCIONARIO, M.CODFILIAL,FI.NOME, M.DATA, M.CODIGOCONTABIL, M.TIPO, M.SITUACAO, P.CODPRODUTO, P.DESCRICAO AS PRODUTO, PC.DESCRICAO, PC.ESTOQUE,I.QTD, U.DESCRICAO, I.VALOR, I.QTD * I.VALOR AS TOTAL, I.BAIXADO, I.CODPRODUTO, I.QTD, I.CODUNIDADE, P.CODFABRICANTE, F.DESCRICAO, P.CODGRUPO, G.DESCRICAO, FM.CODFORNECEDOR, FO.NOME, FO.RAZAOSOCIAL, FU.NOME, I.VOLUMES, I.VALORCUSTO, I.ESTOQUEATUAL, I.QTD * I.VALORCUSTO FROM ITENSMOVIMENTOPROD I JOIN MOVIMENTOSPRODUTOS M ON (M.CODMOVIMENTO = I.CODMOVIMENTO) JOIN FILIAIS FI ON (FI.CODFILIAL = M.CODFILIAL) LEFT JOIN FORNMOVIMENTO FM ON (FM.CODMOVIMENTO = M.CODMOVIMENTO) LEFT JOIN FORNECEDORES FO ON (FO.CODFORNECEDOR = FM.CODFORNECEDOR) JOIN PLANOSDECONTAS PC ON (PC.CODIGOCONTABIL = M.CODIGOCONTABIL) JOIN PRODUTOS P ON (P.CODPRODUTO = I.CODPRODUTO) JOIN UNIDADEMEDIDA U ON (U.CODUNIDADE = I.CODUNIDADE) LEFT JOIN FABRICANTE F ON (P.CODFABRICANTE = F.CODFABRICANTE) LEFT JOIN GRUPO G ON (P.CODGRUPO = G.CODGRUPO) LEFT JOIN FUNCIONARIOS FU ON (FU.CODFUNCIONARIO = M.CODFUNCIONARIO) WHERE M.DATA>=:DATAI AND M.DATA<=:DATAF INTO :CODMOVIMENTO, :CODEMPRESA, :CODFUNCIONARIO, :CODFILIAL, :FILIAL, :DATA, :CODIGOCONTABIL, :TIPO, :SITUACAO, :CODPRODUTO, :PRODUTO, :PLANODECONTAS, :TIPOPLANO, :QTD, :UNIDADEMOV, :VALOR, :TOTAL, :BAIXADO, :CODPRODUTOMOV, :QTDLANCADA, :CODUNIDADLANCADA, :CODFABRICANTE, :FABRICANTE, :CODGRUPO, :GRUPO, :CODFORNECEDOR, :FORNECEDOR, :RAZAOFORNECEDOR, :FUNCIONARIO, :VOLUMES, :VALORCUSTO, :ESTOQUEATUAL, :TOTALCUSTO DO BEGIN SELECT S.QTDCONVERTIDA, S.UNIDADEPRODUTO FROM SPQTDCONVERTIDA(:CODPRODUTOMOV, :CODUNIDADLANCADA, :QTDLANCADA) S INTO :QTDCOVERTIDA , :UNIDADECONVERTIDA; CODUNIDADEMOV = CODUNIDADLANCADA; ESTOQUE = 0; SELECT SP.ESTOQUE FROM SPMOVESTOQUE(:CODPRODUTO) SP INTO :ESTOQUE; SELECT DM.DESCONTO, DM.TIPODESCONTO FROM DADOSMOVIMENTO DM WHERE DM.CODMOVIMENTO=:CODMOVIMENTO INTO :TDESCONTO, :TTIPODESCONTO; TEMPTOTAL = TOTAL; SELECT COUNT(IM.CODITEMMOVIMENTO) FROM ITENSMOVIMENTOPROD IM WHERE IM.CODMOVIMENTO=:CODMOVIMENTO INTO :NRITENS; IF (NRITENS IS NULL) then NRITENS = 1; IF (TTIPODESCONTO='%') then BEGIN DESCONTO=TDESCONTO; END IF (TTIPODESCONTO='$') then BEGIN DESCONTO = TDESCONTO / NRITENS; END IF (TTIPODESCONTO IS NULL ) then BEGIN DESCONTO = 0; END TIPODESCONTO=TTIPODESCONTO; IF (TTIPODESCONTO='%') then BEGIN TOTALCDESC = TEMPTOTAL - ((TEMPTOTAL * DESCONTO)/100); END IF (TTIPODESCONTO='$') then BEGIN TOTALCDESC = TEMPTOTAL - DESCONTO; END IF (TTIPODESCONTO IS NULL ) then BEGIN TOTALCDESC = TEMPTOTAL; END IF (TDESCONTO IS NULL ) then BEGIN TOTALCDESC = TEMPTOTAL; END if ((not TOTALCDESC IS NULL) AND (not TOTALCUSTO IS NULL)) then BEGIN if ((TOTALCDESC >0) AND (TOTALCUSTO >0)) then LUCRO = ((TOTALCDESC - TOTALCUSTO)*100)/TOTALCUSTO; ELSE LUCRO =0; END ELSE LUCRO=0; suspend; END end ^ SET TERM ; ^ /*------ 01/02/2018 12:25:02 --------*/ ALTER TABLE CAIXAMOV ADD CODEMPRESA INTEIRO_NULL; /*------ 01/02/2018 12:25:40 --------*/ ALTER TABLE CONFCAIXA ADD CODEMPRESA INTEIRO_NULL; /*------ 01/02/2018 12:25:59 --------*/ ALTER TABLE CAIXAPARCELAS ADD CODEMPRESA INTEIRO_NULL; /*------ 01/02/2018 12:28:58 --------*/ SET TERM ^ ; ALTER PROCEDURE SPCX RETURNS ( CODCAIXAMOV INTEGER, CODCXPARCELA INTEGER, CODFILIAL INTEGER, DATA DATE, HORA TIME, DESCRICAO VARCHAR(70), VALOR FLOAT, TIPOMOV VARCHAR(50), FORMAPGTO VARCHAR(15), FINANCEIRO CHAR(1), CREDITO FLOAT, DEBITO FLOAT, SALDO FLOAT, STATUS CHAR(1), CODEMPRESA INTEGER) AS begin FOR SELECT CM.CODCAIXAMOV, CODFILIAL, DATA, HORA, DESCRICAO, VALOR, TIPOMOV, FORMAPGTO, STATUS, CM.CODEMPRESA FROM CAIXAMOV CM INTO :CODCAIXAMOV, :CODFILIAL,:DATA, :HORA, :DESCRICAO, :VALOR, :TIPOMOV, :FORMAPGTO, :STATUS, :CODEMPRESA DO BEGIN CODCXPARCELA =NULL; FINANCEIRO='N'; SELECT CF.FINANCEIRO FROM CONFCAIXA CF WHERE CF.TIPOMOV=:TIPOMOV AND CF.TIPOPGTO=:FORMAPGTO AND CF.CODEMPRESA=:CODEMPRESA INTO :FINANCEIRO; if (FINANCEIRO='+') then BEGIN CREDITO = VALOR; DEBITO = 0; END if (FINANCEIRO='-') then BEGIN DEBITO = :VALOR; CREDITO = 0; END if (FINANCEIRO='N') then BEGIN CREDITO = 0; DEBITO = 0; END SALDO = CREDITO - DEBITO; suspend; END FOR SELECT CP.CODCXPARCELA, CP.CODFILIAL, CP.DATA, CP.HORA, CP.DESCRICAO, CP.VALOR, CP.TIPOMOV, CP.FORMAPGTO, CP.STATUS, CP.CODEMPRESA FROM CAIXAPARCELAS CP INTO :CODCXPARCELA, :CODFILIAL,:DATA, :HORA, :DESCRICAO, :VALOR, :TIPOMOV, :FORMAPGTO, :STATUS, :CODEMPRESA DO BEGIN CODCAIXAMOV = NULL; FINANCEIRO = 'N'; SELECT CF.FINANCEIRO FROM CONFCAIXA CF WHERE CF.TIPOMOV=:TIPOMOV AND CF.TIPOPGTO=:FORMAPGTO AND CF.CODEMPRESA=:CODEMPRESA INTO :FINANCEIRO; if (FINANCEIRO='+') then BEGIN CREDITO = :VALOR; DEBITO = 0; END if (FINANCEIRO='-') then BEGIN DEBITO = :VALOR; CREDITO = 0; END if (FINANCEIRO='N') then BEGIN CREDITO = 0; DEBITO = 0; END SALDO = CREDITO - DEBITO; suspend; END end ^ SET TERM ; ^ /*------ 01/02/2018 12:31:28 --------*/ SET TERM ^ ; ALTER PROCEDURE SPSOMACX RETURNS ( CODEMPRESA INTEGER, DATA DATE, CREDITO FLOAT, DEBITO FLOAT, NULO FLOAT, SALDO FLOAT) AS begin CREDITO = 0; DEBITO = 0; NULO = 0; SALDO = 0; FOR SELECT CODEMPRESA, DATA, SUM(VALOR) FROM SPCX WHERE FINANCEIRO='+' GROUP BY CODEMPRESA, DATA INTO :CODEMPRESA, DATA, :CREDITO do BEGIN DEBITO = 0; NULO = 0; SALDO = CREDITO - DEBITO; SUSPEND; END FOR SELECT CODEMPRESA, DATA, SUM(VALOR) FROM SPCX WHERE FINANCEIRO='-' GROUP BY CODEMPRESA, DATA INTO :CODEMPRESA, DATA, :DEBITO DO BEGIN CREDITO = 0; NULO = 0; SALDO = CREDITO - DEBITO; SUSPEND; END FOR SELECT CODEMPRESA, DATA, SUM(VALOR) FROM SPCX WHERE FINANCEIRO='N' GROUP BY CODEMPRESA, DATA INTO :CODEMPRESA,DATA, :NULO DO BEGIN CREDITO = 0; DEBITO = 0; SALDO = CREDITO - DEBITO; SUSPEND; END end ^ SET TERM ; ^