/*------ 26/11/2016 01:32:45 --------*/ UPDATE CONFIGURACOES SET COMPILACAO='1.3.6.9'; /*------ 06/04/2017 01:29:42 --------*/ 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)) 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 FROM PLANOSDECONTAS P INTO :PAI, :CODIGOCONTABIL, :DESCRICAO, :TIPO, :FINANCEIRO 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/06/2017 23:20:55 --------*/ ALTER TABLE ITENSCOTACAO ADD OBS VARCHAR_100; /*------ 03/06/2017 02:30:35 --------*/ 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(8), 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 ; ^ /*------ 08/06/2017 01:04:58 --------*/ SET TERM ^ ; ALTER PROCEDURE SPCXACADEMIA ( DATAI DATE, DATAF DATE) RETURNS ( CODMOVIMENTO INTEGER, CODEMPRESA INTEGER, CODFILIAL INTEGER, FILIAL VARCHAR(40), DATA DATE, TIPO VARCHAR(2), CODPLANOPGTO INTEGER, CODPARCELA INTEGER, NRPARCELA INTEGER, VALORPARCELA FLOAT, VENCIMENTO DATE, DOCUMENTO VARCHAR(20), PAGO CHAR(1), CODCLIENTE INTEGER, CLIENTE VARCHAR(70), DATAPGTO DATE, VALOR FLOAT, JUROS FLOAT, NRDOCUMENTO VARCHAR(20), NOME VARCHAR(70), CODPARCELAPGTO INTEGER, DESCONTO FLOAT, VALORNADATA FLOAT, CODUSUARIO INTEGER, USUARIO VARCHAR(10), NRNFE VARCHAR(20), TIPODOC VARCHAR(20), EXTENSO VARCHAR(255), CODIGOCONTABIL VARCHAR(20), PLANODECONTAS VARCHAR(40), DESCRECEITA VARCHAR(50), TIPOPGTO VARCHAR(15)) AS begin DESCRECEITA = NULL; FOR SELECT CODMOVIMENTO , CODFILIAL , FILIAL , DATA , TIPO , CODPLANOPGTO , CODPARCELA , NRPARCELA , VALORPARCELA , VENCIMENTO , DOCUMENTO , PAGO , CODCLIENTE , CLIENTE , DATAPGTO , VALORPAGO , JUROS , NRDOCUMENTO , NOME , CODPARCELAPGTO , DESCONTO , VALORNADATA , CODUSUARIO , USUARIO , NRNFE , TIPODOC , EXTENSO , CODIGOCONTABIL , PLANODECONTAS, TIPOPGTO, (SELECT CODEMPRESA FROM MOVIMENTOSPRODUTOS WHERE CODMOVIMENTO=P.CODMOVIMENTO) FROM SPCONTASRECEBIDAS(:DATAI, :DATAF) P INTO :CODMOVIMENTO , :CODFILIAL , :FILIAL , :DATA , :TIPO , :CODPLANOPGTO , :CODPARCELA , :NRPARCELA , :VALORPARCELA , :VENCIMENTO , :DOCUMENTO , :PAGO , :CODCLIENTE , :CLIENTE , :DATAPGTO , :VALOR , :JUROS , :NRDOCUMENTO , :NOME , :CODPARCELAPGTO , :DESCONTO , :VALORNADATA , :CODUSUARIO , :USUARIO , :NRNFE , :TIPODOC , :EXTENSO , :CODIGOCONTABIL , :PLANODECONTAS, :TIPOPGTO, CODEMPRESA DO SUSPEND; VALORPARCELA = NULL; VENCIMENTO = NULL; DATAPGTO = NULL; JUROS = NULL; CODPARCELAPGTO = NULL; VALORNADATA = NULL; EXTENSO = NULL; CODPARCELA = NULL; NRPARCELA = NULL; TIPO = 'RE'; CODPLANOPGTO = NULL; TIPODOC= NULL; CODCLIENTE = NULL; FOR SELECT CODMOVIMENTO , CODFILIAL , DATA , CODCLIENTE , NOME , TOTAL , CODIGOCONTABIL , PLANODECONTAS , NRDOCUMENTO, DESCRICAO, DATA, (SELECT CODEMPRESA FROM MOVIMENTOSPRODUTOS WHERE CODMOVIMENTO=P.CODMOVIMENTO) FROM SPMOVRECEITASAVISTA(:DATAI, :DATAF) P WHERE TOTAL>0 INTO :CODMOVIMENTO , :CODFILIAL , :DATA , :CODCLIENTE , :CLIENTE , :VALOR , :CODIGOCONTABIL , :PLANODECONTAS , :NRDOCUMENTO, :DESCRECEITA, :DATAPGTO, :CODEMPRESA DO BEGIN NOME= :CLIENTE; SELECT F.NOME FROM FILIAIS F WHERE F.CODFILIAL=:CODFILIAL INTO :FILIAL; TIPOPGTO = 'DINHEIRO'; SUSPEND; END VALORPARCELA = NULL; VENCIMENTO = NULL; DATAPGTO = NULL; JUROS = NULL; CODPARCELAPGTO = NULL; VALORNADATA = NULL; EXTENSO = NULL; CODPARCELA = NULL; NRPARCELA = NULL; TIPO = 'RE'; CODPLANOPGTO = NULL; TIPODOC= NULL; CODCLIENTE = NULL; FOR SELECT CODMOVIMENTO , CODFILIAL , DATA , CODCLIENTE , NOME , TOTAL , CODIGOCONTABIL , PLANODECONTAS , NRDOCUMENTO, DESCRICAO, DATA, (SELECT CODEMPRESA FROM MOVIMENTOSPRODUTOS WHERE CODMOVIMENTO=P.CODMOVIMENTO) FROM SPMOVRECEITASCHEQUE(:DATAI, :DATAF) P WHERE TOTAL>0 INTO :CODMOVIMENTO , :CODFILIAL , :DATA , :CODCLIENTE , :CLIENTE , :VALOR , :CODIGOCONTABIL , :PLANODECONTAS , :NRDOCUMENTO, :DESCRECEITA, :DATAPGTO, :CODEMPRESA DO BEGIN NOME= :CLIENTE; SELECT F.NOME FROM FILIAIS F WHERE F.CODFILIAL=:CODFILIAL INTO :FILIAL; TIPOPGTO = 'CHEQUE'; SUSPEND; END VALORPARCELA = NULL; VENCIMENTO = NULL; DATAPGTO = NULL; JUROS = NULL; CODPARCELAPGTO = NULL; VALORNADATA = NULL; EXTENSO = NULL; CODPARCELA = NULL; NRPARCELA = NULL; TIPO = 'VE'; CODPLANOPGTO = NULL; TIPODOC= NULL; CODCLIENTE = NULL; FOR SELECT CODMOVIMENTO , CODFILIAL , DATA , CODCLIENTE , NOME , TOTAL , CODIGOCONTABIL , PLANODECONTAS , NRDOCUMENTO, DESCRICAO, DATA, (SELECT CODEMPRESA FROM MOVIMENTOSPRODUTOS WHERE CODMOVIMENTO=P.CODMOVIMENTO) FROM SPMOVVENDAAVISTA(:DATAI, :DATAF) P WHERE TOTAL>0 INTO :CODMOVIMENTO , :CODFILIAL , :DATA , :CODCLIENTE , :CLIENTE , :VALOR , :CODIGOCONTABIL , :PLANODECONTAS , :NRDOCUMENTO, :DESCRECEITA, :DATAPGTO, :CODEMPRESA DO BEGIN NOME= :CLIENTE; SELECT F.NOME FROM FILIAIS F WHERE F.CODFILIAL=:CODFILIAL INTO :FILIAL; TIPOPGTO = 'DINHEIRO'; SUSPEND; END end ^ SET TERM ; ^ /*------ 08/06/2017 01:07:29 --------*/ SET TERM ^ ; ALTER PROCEDURE SPCXACADEMIA ( DATAI DATE, DATAF DATE) RETURNS ( CODMOVIMENTO INTEGER, CODEMPRESA INTEGER, CODFILIAL INTEGER, FILIAL VARCHAR(40), DATA DATE, TIPO VARCHAR(2), CODPLANOPGTO INTEGER, CODPARCELA INTEGER, NRPARCELA INTEGER, VALORPARCELA FLOAT, VENCIMENTO DATE, DOCUMENTO VARCHAR(20), PAGO CHAR(1), CODCLIENTE INTEGER, CLIENTE VARCHAR(70), DATAPGTO DATE, VALOR FLOAT, JUROS FLOAT, NRDOCUMENTO VARCHAR(20), NOME VARCHAR(70), CODPARCELAPGTO INTEGER, DESCONTO FLOAT, VALORNADATA FLOAT, CODUSUARIO INTEGER, USUARIO VARCHAR(10), NRNFE VARCHAR(20), TIPODOC VARCHAR(20), EXTENSO VARCHAR(255), CODIGOCONTABIL VARCHAR(20), PLANODECONTAS VARCHAR(40), DESCRECEITA VARCHAR(50), TIPOPGTO VARCHAR(15)) AS begin DESCRECEITA = NULL; FOR SELECT CODMOVIMENTO , CODFILIAL , FILIAL , DATA , TIPO , CODPLANOPGTO , CODPARCELA , NRPARCELA , VALORPARCELA , VENCIMENTO , DOCUMENTO , PAGO , CODCLIENTE , CLIENTE , DATAPGTO , VALORPAGO , JUROS , NRDOCUMENTO , NOME , CODPARCELAPGTO , DESCONTO , VALORNADATA , CODUSUARIO , USUARIO , NRNFE , TIPODOC , EXTENSO , CODIGOCONTABIL , PLANODECONTAS, TIPOPGTO, (SELECT CODEMPRESA FROM MOVIMENTOSPRODUTOS WHERE CODMOVIMENTO=P1.CODMOVIMENTO) FROM SPCONTASRECEBIDAS(:DATAI, :DATAF) P1 INTO :CODMOVIMENTO , :CODFILIAL , :FILIAL , :DATA , :TIPO , :CODPLANOPGTO , :CODPARCELA , :NRPARCELA , :VALORPARCELA , :VENCIMENTO , :DOCUMENTO , :PAGO , :CODCLIENTE , :CLIENTE , :DATAPGTO , :VALOR , :JUROS , :NRDOCUMENTO , :NOME , :CODPARCELAPGTO , :DESCONTO , :VALORNADATA , :CODUSUARIO , :USUARIO , :NRNFE , :TIPODOC , :EXTENSO , :CODIGOCONTABIL , :PLANODECONTAS, :TIPOPGTO, CODEMPRESA DO SUSPEND; VALORPARCELA = NULL; VENCIMENTO = NULL; DATAPGTO = NULL; JUROS = NULL; CODPARCELAPGTO = NULL; VALORNADATA = NULL; EXTENSO = NULL; CODPARCELA = NULL; NRPARCELA = NULL; TIPO = 'RE'; CODPLANOPGTO = NULL; TIPODOC= NULL; CODCLIENTE = NULL; FOR SELECT CODMOVIMENTO , CODFILIAL , DATA , CODCLIENTE , NOME , TOTAL , CODIGOCONTABIL , PLANODECONTAS , NRDOCUMENTO, DESCRICAO, DATA, (SELECT CODEMPRESA FROM MOVIMENTOSPRODUTOS WHERE CODMOVIMENTO=PA.CODMOVIMENTO) FROM SPMOVRECEITASAVISTA(:DATAI, :DATAF) PA WHERE TOTAL>0 INTO :CODMOVIMENTO , :CODFILIAL , :DATA , :CODCLIENTE , :CLIENTE , :VALOR , :CODIGOCONTABIL , :PLANODECONTAS , :NRDOCUMENTO, :DESCRECEITA, :DATAPGTO, :CODEMPRESA DO BEGIN NOME= :CLIENTE; SELECT F.NOME FROM FILIAIS F WHERE F.CODFILIAL=:CODFILIAL INTO :FILIAL; TIPOPGTO = 'DINHEIRO'; SUSPEND; END VALORPARCELA = NULL; VENCIMENTO = NULL; DATAPGTO = NULL; JUROS = NULL; CODPARCELAPGTO = NULL; VALORNADATA = NULL; EXTENSO = NULL; CODPARCELA = NULL; NRPARCELA = NULL; TIPO = 'RE'; CODPLANOPGTO = NULL; TIPODOC= NULL; CODCLIENTE = NULL; FOR SELECT CODMOVIMENTO , CODFILIAL , DATA , CODCLIENTE , NOME , TOTAL , CODIGOCONTABIL , PLANODECONTAS , NRDOCUMENTO, DESCRICAO, DATA, (SELECT CODEMPRESA FROM MOVIMENTOSPRODUTOS WHERE CODMOVIMENTO=MR.CODMOVIMENTO) FROM SPMOVRECEITASCHEQUE(:DATAI, :DATAF) MR WHERE TOTAL>0 INTO :CODMOVIMENTO , :CODFILIAL , :DATA , :CODCLIENTE , :CLIENTE , :VALOR , :CODIGOCONTABIL , :PLANODECONTAS , :NRDOCUMENTO, :DESCRECEITA, :DATAPGTO, :CODEMPRESA DO BEGIN NOME= :CLIENTE; SELECT F.NOME FROM FILIAIS F WHERE F.CODFILIAL=:CODFILIAL INTO :FILIAL; TIPOPGTO = 'CHEQUE'; SUSPEND; END VALORPARCELA = NULL; VENCIMENTO = NULL; DATAPGTO = NULL; JUROS = NULL; CODPARCELAPGTO = NULL; VALORNADATA = NULL; EXTENSO = NULL; CODPARCELA = NULL; NRPARCELA = NULL; TIPO = 'VE'; CODPLANOPGTO = NULL; TIPODOC= NULL; CODCLIENTE = NULL; FOR SELECT CODMOVIMENTO , CODFILIAL , DATA , CODCLIENTE , NOME , TOTAL , CODIGOCONTABIL , PLANODECONTAS , NRDOCUMENTO, DESCRICAO, DATA, (SELECT CODEMPRESA FROM MOVIMENTOSPRODUTOS WHERE CODMOVIMENTO=MA.CODMOVIMENTO) FROM SPMOVVENDAAVISTA(:DATAI, :DATAF) MA WHERE TOTAL>0 INTO :CODMOVIMENTO , :CODFILIAL , :DATA , :CODCLIENTE , :CLIENTE , :VALOR , :CODIGOCONTABIL , :PLANODECONTAS , :NRDOCUMENTO, :DESCRECEITA, :DATAPGTO, :CODEMPRESA DO BEGIN NOME= :CLIENTE; SELECT F.NOME FROM FILIAIS F WHERE F.CODFILIAL=:CODFILIAL INTO :FILIAL; TIPOPGTO = 'DINHEIRO'; SUSPEND; END end ^ SET TERM ; ^ /*------ 08/06/2017 01:56:04 --------*/ SET TERM ^ ; ALTER PROCEDURE SPDESPESASACADEMIA RETURNS ( CODMOVIMENTO INTEGER, CODEMPRESA INTEGER, CODFORNECEDOR INTEGER, NOME VARCHAR(70), DATAPGTO DATE, VALOR FLOAT, DESCRICAO VARCHAR(50), CODIGOCONTABIL VARCHAR(20), PLANODECONTAS VARCHAR(40), CODFILIAL INTEGER) AS begin FOR select CODMOVIMENTO, CODFORNECEDOR, FORNECEDOR, DATAPGTO, TOTALPAGO, DESCRICAO, CODIGOCONTABIL, PLANODECONTAS, CODFILIAL from VWCONTASPAGAS INTO :CODMOVIMENTO, :CODFORNECEDOR, :NOME, :DATAPGTO, :VALOR, :DESCRICAO, :CODIGOCONTABIL, :PLANODECONTAS, :CODFILIAL DO SUSPEND; FOR SELECT DA.CODMOVIMENTO, DA.CODFORNECEDOR, DA.NOME, DA.DATA, DA.VALOR, DA.DESCRICAO , DA.CODIGOCONTABIL, DA.PLANODECONTAS, DA.CODFILIAL FROM SPDESPESASAVISTA DA INTO :CODMOVIMENTO, :CODFORNECEDOR, :NOME, :DATAPGTO, :VALOR, :DESCRICAO, :CODIGOCONTABIL, :PLANODECONTAS, :CODFILIAL DO BEGIN SELECT CODEMPRESA FROM MOVIMENTOSPRODUTOS M WHERE M.CODMOVIMENTO=:CODMOVIMENTO INTO:CODEMPRESA; SUSPEND; END end ^ SET TERM ; ^ /*------ 08/06/2017 01:56:34 --------*/ SET TERM ^ ; ALTER PROCEDURE SPDESPESASACADEMIA RETURNS ( CODMOVIMENTO INTEGER, CODEMPRESA INTEGER, CODFORNECEDOR INTEGER, NOME VARCHAR(70), DATAPGTO DATE, VALOR FLOAT, DESCRICAO VARCHAR(50), CODIGOCONTABIL VARCHAR(20), PLANODECONTAS VARCHAR(40), CODFILIAL INTEGER) AS begin FOR select CODMOVIMENTO, CODFORNECEDOR, FORNECEDOR, DATAPGTO, TOTALPAGO, DESCRICAO, CODIGOCONTABIL, PLANODECONTAS, CODFILIAL from VWCONTASPAGAS INTO :CODMOVIMENTO, :CODFORNECEDOR, :NOME, :DATAPGTO, :VALOR, :DESCRICAO, :CODIGOCONTABIL, :PLANODECONTAS, :CODFILIAL DO SUSPEND; FOR SELECT DA.CODMOVIMENTO, DA.CODFORNECEDOR, DA.NOME, DA.DATA, DA.VALOR, DA.DESCRICAO , DA.CODIGOCONTABIL, DA.PLANODECONTAS, DA.CODFILIAL FROM SPDESPESASAVISTA DA INTO :CODMOVIMENTO, :CODFORNECEDOR, :NOME, :DATAPGTO, :VALOR, :DESCRICAO, :CODIGOCONTABIL, :PLANODECONTAS, :CODFILIAL DO BEGIN SELECT CODEMPRESA FROM MOVIMENTOSPRODUTOS M WHERE M.CODMOVIMENTO=:CODMOVIMENTO INTO:CODEMPRESA; SUSPEND; END end ^ SET TERM ; ^ /*------ 08/06/2017 01:56:49 --------*/ SET TERM ^ ; ALTER PROCEDURE SPDESPESASACADEMIA RETURNS ( CODMOVIMENTO INTEGER, CODEMPRESA INTEGER, CODFORNECEDOR INTEGER, NOME VARCHAR(70), DATAPGTO DATE, VALOR FLOAT, DESCRICAO VARCHAR(50), CODIGOCONTABIL VARCHAR(20), PLANODECONTAS VARCHAR(40), CODFILIAL INTEGER) AS begin FOR select CODMOVIMENTO, CODFORNECEDOR, FORNECEDOR, DATAPGTO, TOTALPAGO, DESCRICAO, CODIGOCONTABIL, PLANODECONTAS, CODFILIAL from VWCONTASPAGAS INTO :CODMOVIMENTO, :CODFORNECEDOR, :NOME, :DATAPGTO, :VALOR, :DESCRICAO, :CODIGOCONTABIL, :PLANODECONTAS, :CODFILIAL DO SUSPEND; FOR SELECT DA.CODMOVIMENTO, DA.CODFORNECEDOR, DA.NOME, DA.DATA, DA.VALOR, DA.DESCRICAO , DA.CODIGOCONTABIL, DA.PLANODECONTAS, DA.CODFILIAL FROM SPDESPESASAVISTA DA INTO :CODMOVIMENTO, :CODFORNECEDOR, :NOME, :DATAPGTO, :VALOR, :DESCRICAO, :CODIGOCONTABIL, :PLANODECONTAS, :CODFILIAL DO BEGIN SELECT CODEMPRESA FROM MOVIMENTOSPRODUTOS M WHERE M.CODMOVIMENTO=:CODMOVIMENTO INTO:CODEMPRESA; SUSPEND; END end ^ SET TERM ; ^ /*------ 08/06/2017 04:01:21 --------*/ SET TERM ^ ; ALTER PROCEDURE SPCONTASPAGAR RETURNS ( CODPARCELA INTEGER, VALORPARCELA FLOAT, VENCIMENTO DATE, PAGO CHAR(1), NRPARCELA INTEGER, DOCUMENTO VARCHAR(20), CODMOVIMENTO INTEGER, CODEMPRESA INTEGER, CODIGOCONTABIL VARCHAR(20), DATA DATE, TIPO VARCHAR(2), CODFORNECEDOR INTEGER, FORNECEDOR VARCHAR(70), PLANODECONTAS VARCHAR(40), TOTALPAGO FLOAT, RESTANTE FLOAT, CODFILIAL INTEGER, FILIAL VARCHAR(40), NRDOCUMENTOMOV VARCHAR(20), DESCRICAO VARCHAR(50)) AS declare variable TEMPCODPARCELA INTEGER; declare variable TEMPPAGO FLOAT; declare variable TEMPRESTANTE FLOAT; declare variable TEMPVALORPARCELA FLOAT; begin FOR SELECT P.CODPARCELA, P.VALORPARCELA, P.VENCIMENTO, P.PAGO, P.NRPARCELA, P.DOCUMENTO, MV.CODMOVIMENTO, MV.CODIGOCONTABIL, MV.DATA, MV.TIPO, FM.CODFORNECEDOR, CAST(F.NOME AS VARCHAR(70)), PC.DESCRICAO, MV.CODFILIAL, DM.NRDOCUMENTO, DR.DESCRICAO, MV.CODEMPRESA FROM PARCELASCONTAS P JOIN CONTASPAGARRECEBER CPR ON (CPR.CODCONTA = P.CODCONTA) JOIN PLANOSPAGAMENTO PP ON (PP.CODPLANOPGTO = CPR.CODPLANOPGTO) JOIN MOVIMENTOSPRODUTOS MV ON (MV.CODMOVIMENTO = CPR.CODMOVIMENTO) LEFT JOIN DESPESASRECEITAS DR ON (DR.CODMOVIMENTO = MV.CODMOVIMENTO) LEFT JOIN DOCUMENTOMOV DM ON (DM.CODMOVIMENTO = MV.CODMOVIMENTO) JOIN FORNMOVIMENTO FM ON (FM.CODMOVIMENTO = MV.CODMOVIMENTO) JOIN FORNECEDORES F ON (F.CODFORNECEDOR = FM.CODFORNECEDOR) JOIN PLANOSDECONTAS PC ON (PC.CODIGOCONTABIL = MV.CODIGOCONTABIL ) WHERE MV.TIPO IN ('CO','DP') AND P.PAGO='N' INTO :TEMPCODPARCELA, :TEMPVALORPARCELA, :VENCIMENTO, :PAGO, :NRPARCELA, :DOCUMENTO, :CODMOVIMENTO, :CODIGOCONTABIL, :DATA, :TIPO, :CODFORNECEDOR, :FORNECEDOR, :PLANODECONTAS, :CODFILIAL, :NRDOCUMENTOMOV, :DESCRICAO, :CODEMPRESA DO BEGIN SELECT F.NOME FROM FILIAIS F WHERE F.CODFILIAL=:CODFILIAL INTO :FILIAL; SELECT SUM(PG.VALOR) FROM PARCELASPGTO PG WHERE PG.CODPARCELA = :TEMPCODPARCELA INTO :TEMPPAGO; if (TEMPPAGO IS NULL) then TEMPPAGO =0; TEMPRESTANTE = TEMPVALORPARCELA - TEMPPAGO; CODPARCELA = TEMPCODPARCELA; TOTALPAGO = TEMPPAGO; RESTANTE = TEMPRESTANTE; VALORPARCELA = TEMPVALORPARCELA; suspend; END end ^ SET TERM ; ^ /*------ 08/06/2017 04:01:25 --------*/ SET TERM ^ ; ALTER PROCEDURE RELFLUXODECAIXA ( DATAI DATE, DATAF DATE) RETURNS ( DATA DATE, CONTASPAGAR FLOAT, CHEQUESPAGAR FLOAT, CONTASRECEBER FLOAT, CHEQUESRECEBER FLOAT, TOTAL FLOAT) AS declare variable I INTEGER; declare variable DIAS INTEGER; begin DATA = DATAI; DIAS = DATAF-DATAI; I = 1; WHILE (I <= (DIAS+1)) DO BEGIN CONTASPAGAR =0; CHEQUESPAGAR=0; CONTASRECEBER =0; CHEQUESRECEBER =0; TOTAL =0; SELECT PC.VENCIMENTO, SUM(PC.RESTANTECOMJUROS) AS CONTASARECEBER FROM SPCONTASRECEBER PC WHERE PC.PAGO ='N' AND (PC.STATUS='A' OR PC.STATUS IS NULL) AND PC.VENCIMENTO=:DATA GROUP BY VENCIMENTO INTO :DATA, :CONTASRECEBER; SELECT CP.VENCIMENTO, SUM(CP.RESTANTE) AS CONTASAPAGAR FROM SPCONTASPAGAR CP WHERE CP.PAGO ='N' AND CP.VENCIMENTO=:DATA GROUP BY CP.VENCIMENTO INTO :DATA, :CONTASPAGAR; SELECT SP.VENCIMENTO, SUM(SP.VALOR) FROM SPCHEQUESPAGAR SP WHERE (NOT SP.TIPO IS NULL) AND SP.VENCIMENTO=:DATA GROUP BY VENCIMENTO INTO :DATA, :CHEQUESPAGAR; SELECT SP.VENCIMENTO, SUM(SP.VALOR) FROM SPCHEQUESRECEBER SP WHERE (NOT SP.TIPO IS NULL) AND SP.VENCIMENTO=:DATA GROUP BY VENCIMENTO INTO :DATA, :CHEQUESRECEBER; TOTAL = (CONTASRECEBER + CHEQUESRECEBER) - (CONTASPAGAR + CHEQUESPAGAR); suspend; DATA = DATA + 1; I = I + 1; END end ^ SET TERM ; ^ /*------ 08/06/2017 04:01:25 --------*/ SET TERM ^ ; ALTER PROCEDURE SPAVISOS RETURNS ( DESCRICAO VARCHAR(40), TIPO VARCHAR(5), TOTAL NUMERIC(10,5)) AS begin SELECT CAST('Necessidade de Compra' as VARCHAR(40)), CAST('Qtd' as VARCHAR(5)), COUNT(*) FROM SPPESQPRODUTOS E WHERE (E.ESTOQUE<=E.ESTOQUEMINIMO or (E.ESTOQUE IS NULL)) AND E.CODIGO=E.CODPRODUTO INTO :DESCRICAO, :TIPO, :TOTAL; suspend; SELECT CAST('Contas a Receber' as VARCHAR(40)), CAST('R$' as VARCHAR(5)), SP.TOTAL FROM SPSOMACONTASRECEBER SP INTO :DESCRICAO, :TIPO, :TOTAL; IF (TOTAL IS NULL) then BEGIN DESCRICAO = 'Contas a Receber'; TIPO = 'R$'; TOTAL = 0; END suspend; SELECT CAST('Contas a Pagar' as VARCHAR(40)), CAST('R$' as VARCHAR(5)), SUM(P.RESTANTE) FROM SPCONTASPAGAR P WHERE P.PAGO='N' INTO :DESCRICAO,:TIPO, :TOTAL; IF (TOTAL IS NULL) then BEGIN DESCRICAO = 'Contas a Pagar'; TIPO = 'R$'; TOTAL = 0; END suspend; /* SELECT CAST('Cheques a Receber' as VARCHAR(40)), CAST('R$' as VARCHAR(5)), SUM(C.VALOR) FROM SPCHEQUESRECEBER C GROUP BY C.CODCLIENTE, C.NOME, C.AGENCIA, C.BANCO, C.CODCHEQUE, C.CONTA, C.CPFCNPJ, C.DATAEMISSAO, C.NRCHEQUE, C.TIPO, C.VALOR, C.VENCIMENTO ,C.ALINEA INTO :DESCRICAO,:TIPO, :TOTAL; IF (TOTAL IS NULL) then BEGIN DESCRICAO = 'Cheques a Receber'; TIPO = 'R$'; TOTAL = 0; END suspend; /* cheques a Pagar SELECT CAST('Cheques a Pagar' as VARCHAR(40)), CAST('R$' as VARCHAR(5)), SUM(CP.VALOR) FROM SPCHEQUESPAGAR CP GROUP BY CP.CODFORNECEDOR, CP.NOME, CP.AGENCIA, CP.BANCO, CP.CODCHEQUE, CP.CONTA, CP.CPFCNPJ, CP.DATAEMISSAO, CP.NRCHEQUE, CP.TIPO, CP.VALOR, CP.VENCIMENTO , CP.ALINEA INTO :DESCRICAO,:TIPO, :TOTAL; IF (TOTAL IS NULL) then BEGIN DESCRICAO = 'Cheques a Pagar'; TIPO = 'R$'; TOTAL = 0; END suspend;*/ end ^ SET TERM ; ^ /*------ 08/06/2017 04:01:25 --------*/ SET TERM ^ ; ALTER PROCEDURE SPLEMBRETES RETURNS ( DESCRICAO VARCHAR(40), TIPO VARCHAR(5), TOTAL NUMERIC(10,5)) AS declare variable TTOTAL NUMERIC(10,5); begin SELECT CAST('Necessidade de Compra' as VARCHAR(40)), CAST('Qtd' as VARCHAR(5)), COUNT(*) FROM SPPESQPRODUTOS E WHERE (E.ESTOQUE<=E.ESTOQUEMINIMO or (E.ESTOQUE IS NULL)) AND E.CODIGO=E.CODPRODUTO INTO :DESCRICAO, :TIPO, :TOTAL; suspend; /*SELECT CAST('Contas a Receber' as VARCHAR(40)), CAST('R$' as VARCHAR(5)), SP.TOTAL FROM SPSOMACONTASRECEBER SP INTO :DESCRICAO, :TIPO, :TOTAL; IF (TOTAL IS NULL) then BEGIN DESCRICAO = 'Contas a Receber'; TIPO = 'R$'; TOTAL = 0; END suspend;*/ SELECT SUM(CR.RESTANTECOMJUROS) FROM SPCONTASRECEBER CR WHERE CR.PAGO='N' AND CR.TIPO IN ('VE', 'S' , 'RE' ) AND CR.VENCIMENTO<=current_date INTO :TTOTAL; IF (TTOTAL IS NULL) then BEGIN TTOTAL = 0; END DESCRICAO = 'Contas a Receber'; TIPO = 'R$'; TOTAL = TTOTAL; SUSPEND; SELECT CAST('Contas a Pagar' as VARCHAR(40)), CAST('R$' as VARCHAR(5)), SUM(P.RESTANTE) FROM SPCONTASPAGAR P WHERE P.PAGO='N' AND P.VENCIMENTO<=current_date INTO :DESCRICAO,:TIPO, :TOTAL; IF (TOTAL IS NULL) then BEGIN DESCRICAO = 'Contas a Pagar'; TIPO = 'R$'; TOTAL = 0; END suspend; /* SELECT CAST('Cheques a Receber' as VARCHAR(40)), CAST('R$' as VARCHAR(5)), SUM(C.VALOR) FROM SPCHEQUESRECEBER C GROUP BY C.CODCLIENTE, C.NOME, C.AGENCIA, C.BANCO, C.CODCHEQUE, C.CONTA, C.CPFCNPJ, C.DATAEMISSAO, C.NRCHEQUE, C.TIPO, C.VALOR, C.VENCIMENTO ,C.ALINEA INTO :DESCRICAO,:TIPO, :TOTAL; IF (TOTAL IS NULL) then BEGIN DESCRICAO = 'Cheques a Receber'; TIPO = 'R$'; TOTAL = 0; END suspend; /* cheques a Pagar SELECT CAST('Cheques a Pagar' as VARCHAR(40)), CAST('R$' as VARCHAR(5)), SUM(CP.VALOR) FROM SPCHEQUESPAGAR CP GROUP BY CP.CODFORNECEDOR, CP.NOME, CP.AGENCIA, CP.BANCO, CP.CODCHEQUE, CP.CONTA, CP.CPFCNPJ, CP.DATAEMISSAO, CP.NRCHEQUE, CP.TIPO, CP.VALOR, CP.VENCIMENTO , CP.ALINEA INTO :DESCRICAO,:TIPO, :TOTAL; IF (TOTAL IS NULL) then BEGIN DESCRICAO = 'Cheques a Pagar'; TIPO = 'R$'; TOTAL = 0; END suspend;*/ end ^ SET TERM ; ^ /*------ 08/06/2017 04:01:25 --------*/ SET TERM ^ ; ALTER PROCEDURE SPNOTIFICACOES ( DATAI DATE, DATAF DATE) RETURNS ( CONTASPAGAR INTEGER, CHEQUESPAGAR INTEGER, CONTASRECEBER INTEGER, CHEQUESRECEBER INTEGER) AS begin CONTASPAGAR =0; CHEQUESPAGAR=0; CONTASRECEBER =0; CHEQUESRECEBER =0; SELECT COUNT(*) FROM SPCONTASRECEBER PC WHERE PC.PAGO ='N' AND (PC.STATUS='A' OR PC.STATUS IS NULL) AND PC.VENCIMENTO>=:DATAI AND PC.VENCIMENTO<=:DATAF INTO :CONTASRECEBER; SELECT COUNT(*) FROM SPCONTASPAGAR CP WHERE CP.PAGO ='N' AND CP.VENCIMENTO>=:DATAI AND CP.VENCIMENTO<=:DATAF INTO :CONTASPAGAR; SELECT COUNT(*) FROM SPCHEQUESPAGAR SP WHERE SP.TIPO='P' AND SP.VENCIMENTO>=:DATAI AND SP.VENCIMENTO<=:DATAF INTO :CHEQUESPAGAR; SELECT COUNT(*) FROM SPCHEQUESRECEBER SP WHERE SP.TIPO='R' AND SP.VENCIMENTO>=:DATAI AND SP.VENCIMENTO<=:DATAF INTO :CHEQUESRECEBER; suspend; end ^ SET TERM ; ^ /*------ 11/08/2017 15:22:13 --------*/ SET TERM ^ ; ALTER PROCEDURE SPCXACADEMIA ( DATAI DATE, DATAF DATE) RETURNS ( CODMOVIMENTO INTEGER, CODEMPRESA INTEGER, CODFILIAL INTEGER, FILIAL VARCHAR(40), DATA DATE, TIPO VARCHAR(2), CODPLANOPGTO INTEGER, CODPARCELA INTEGER, NRPARCELA INTEGER, VALORPARCELA FLOAT, VENCIMENTO DATE, DOCUMENTO VARCHAR(20), PAGO CHAR(1), CODCLIENTE INTEGER, CLIENTE VARCHAR(70), DATAPGTO DATE, VALOR FLOAT, JUROS FLOAT, NRDOCUMENTO VARCHAR(20), NOME VARCHAR(70), CODPARCELAPGTO INTEGER, DESCONTO FLOAT, VALORNADATA FLOAT, CODUSUARIO INTEGER, USUARIO VARCHAR(10), NRNFE VARCHAR(20), TIPODOC VARCHAR(20), EXTENSO VARCHAR(255), CODIGOCONTABIL VARCHAR(20), PLANODECONTAS VARCHAR(40), DESCRECEITA VARCHAR(50), TIPOPGTO VARCHAR(15)) AS begin DESCRECEITA = NULL; FOR SELECT CODMOVIMENTO , CODFILIAL , FILIAL , DATA , TIPO , CODPLANOPGTO , CODPARCELA , NRPARCELA , VALORPARCELA , VENCIMENTO , DOCUMENTO , PAGO , CODCLIENTE , CLIENTE , DATAPGTO , VALORPAGO , JUROS , NRDOCUMENTO , NOME , CODPARCELAPGTO , DESCONTO , VALORNADATA , CODUSUARIO , USUARIO , NRNFE , TIPODOC , EXTENSO , CODIGOCONTABIL , PLANODECONTAS, TIPOPGTO, (SELECT CODEMPRESA FROM MOVIMENTOSPRODUTOS WHERE CODMOVIMENTO=P1.CODMOVIMENTO) FROM SPCONTASRECEBIDAS(:DATAI, :DATAF) P1 INTO :CODMOVIMENTO , :CODFILIAL , :FILIAL , :DATA , :TIPO , :CODPLANOPGTO , :CODPARCELA , :NRPARCELA , :VALORPARCELA , :VENCIMENTO , :DOCUMENTO , :PAGO , :CODCLIENTE , :CLIENTE , :DATAPGTO , :VALOR , :JUROS , :NRDOCUMENTO , :NOME , :CODPARCELAPGTO , :DESCONTO , :VALORNADATA , :CODUSUARIO , :USUARIO , :NRNFE , :TIPODOC , :EXTENSO , :CODIGOCONTABIL , :PLANODECONTAS, :TIPOPGTO, CODEMPRESA DO SUSPEND; VALORPARCELA = NULL; VENCIMENTO = NULL; DATAPGTO = NULL; JUROS = NULL; CODPARCELAPGTO = NULL; VALORNADATA = NULL; EXTENSO = NULL; CODPARCELA = NULL; NRPARCELA = NULL; TIPO = 'RE'; CODPLANOPGTO = NULL; TIPODOC= NULL; CODCLIENTE = NULL; FOR SELECT CODMOVIMENTO , CODFILIAL , DATA , CODCLIENTE , NOME , TOTAL , CODIGOCONTABIL , PLANODECONTAS , NRDOCUMENTO, DESCRICAO, DATA, (SELECT CODEMPRESA FROM MOVIMENTOSPRODUTOS WHERE CODMOVIMENTO=PA.CODMOVIMENTO) FROM SPMOVRECEITASAVISTA(:DATAI, :DATAF) PA WHERE TOTAL>0 INTO :CODMOVIMENTO , :CODFILIAL , :DATA , :CODCLIENTE , :CLIENTE , :VALOR , :CODIGOCONTABIL , :PLANODECONTAS , :NRDOCUMENTO, :DESCRECEITA, :DATAPGTO, :CODEMPRESA DO BEGIN NOME= :CLIENTE; SELECT F.NOME FROM FILIAIS F WHERE F.CODFILIAL=:CODFILIAL INTO :FILIAL; TIPOPGTO = 'DINHEIRO'; SELECT U.CODUSUARIO, U.LOGIN FROM movimentosprodutos M JOIN usuarios U ON U.codusuario=M.codusuario WHERE M.codmovimento=:CODMOVIMENTO INTO :CODUSUARIO, :USUARIO; SUSPEND; END VALORPARCELA = NULL; VENCIMENTO = NULL; DATAPGTO = NULL; JUROS = NULL; CODPARCELAPGTO = NULL; VALORNADATA = NULL; EXTENSO = NULL; CODPARCELA = NULL; NRPARCELA = NULL; TIPO = 'RE'; CODPLANOPGTO = NULL; TIPODOC= NULL; CODCLIENTE = NULL; FOR SELECT CODMOVIMENTO , CODFILIAL , DATA , CODCLIENTE , NOME , TOTAL , CODIGOCONTABIL , PLANODECONTAS , NRDOCUMENTO, DESCRICAO, DATA, (SELECT CODEMPRESA FROM MOVIMENTOSPRODUTOS WHERE CODMOVIMENTO=MR.CODMOVIMENTO) FROM SPMOVRECEITASCHEQUE(:DATAI, :DATAF) MR WHERE TOTAL>0 INTO :CODMOVIMENTO , :CODFILIAL , :DATA , :CODCLIENTE , :CLIENTE , :VALOR , :CODIGOCONTABIL , :PLANODECONTAS , :NRDOCUMENTO, :DESCRECEITA, :DATAPGTO, :CODEMPRESA DO BEGIN NOME= :CLIENTE; SELECT F.NOME FROM FILIAIS F WHERE F.CODFILIAL=:CODFILIAL INTO :FILIAL; SELECT U.CODUSUARIO, U.LOGIN FROM movimentosprodutos M JOIN usuarios U ON U.codusuario=M.codusuario WHERE M.codmovimento=:CODMOVIMENTO INTO :CODUSUARIO, :USUARIO; END VALORPARCELA = NULL; VENCIMENTO = NULL; DATAPGTO = NULL; JUROS = NULL; CODPARCELAPGTO = NULL; VALORNADATA = NULL; EXTENSO = NULL; CODPARCELA = NULL; NRPARCELA = NULL; TIPO = 'VE'; CODPLANOPGTO = NULL; TIPODOC= NULL; CODCLIENTE = NULL; FOR SELECT CODMOVIMENTO , CODFILIAL , DATA , CODCLIENTE , NOME , TOTAL , CODIGOCONTABIL , PLANODECONTAS , NRDOCUMENTO, DESCRICAO, DATA, (SELECT CODEMPRESA FROM MOVIMENTOSPRODUTOS WHERE CODMOVIMENTO=MA.CODMOVIMENTO) FROM SPMOVVENDAAVISTA(:DATAI, :DATAF) MA WHERE TOTAL>0 INTO :CODMOVIMENTO , :CODFILIAL , :DATA , :CODCLIENTE , :CLIENTE , :VALOR , :CODIGOCONTABIL , :PLANODECONTAS , :NRDOCUMENTO, :DESCRECEITA, :DATAPGTO, :CODEMPRESA DO BEGIN NOME= :CLIENTE; SELECT F.NOME FROM FILIAIS F WHERE F.CODFILIAL=:CODFILIAL INTO :FILIAL; TIPOPGTO = 'DINHEIRO'; SELECT U.CODUSUARIO, U.LOGIN FROM movimentosprodutos M JOIN usuarios U ON U.codusuario=M.codusuario WHERE M.codmovimento=:CODMOVIMENTO INTO :CODUSUARIO, :USUARIO; SUSPEND; END end ^ SET TERM ; ^ /*------ 12/08/2017 20:57:19 --------*/ SET TERM ^ ; CREATE PROCEDURE SMOSTRAPESTOQUE ( CODPRODUTO INTEGER, CODEMPRESA INTEGER) RETURNS ( CODFILIAL INTEGER, FILIAL VARCHAR(40), SAIDA FLOAT, ENTRADA FLOAT, ESTOQUE FLOAT) AS begin FOR SELECT F.CODFILIAL, F.NOME FROM FILIAIS F WHERE F.CODEMPRESA=:CODEMPRESA INTO :CODFILIAL, :FILIAL DO BEGIN SELECT SUM(E.QTD) FROM MOVESTOQUE E WHERE E.TIPO='-' AND E.CODPRODUTO=:CODPRODUTO AND E.CODFILIAL=:CODFILIAL INTO :SAIDA; if (SAIDA IS NULL) then SAIDA=0; SELECT SUM(E.QTD) FROM MOVESTOQUE E WHERE E.TIPO='+' AND E.CODPRODUTO=:CODPRODUTO AND E.CODFILIAL=:CODFILIAL INTO :ENTRADA; if (ENTRADA IS NULL) then ENTRADA=0; ESTOQUE = ENTRADA - SAIDA; SUSPEND; END end ^ SET TERM ; ^ /*------ 15/08/2017 22:03:19 --------*/ ALTER TABLE TABELASSIMPLES ADD VALOR VARCHAR20; /*------ 15/08/2017 22:10:03 --------*/ SET TERM ^ ; CREATE TRIGGER TABELASSIMPLES_BI FOR TABELASSIMPLES ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.CODTABELASIMPLES IS NULL OR NEW.CODTABELASIMPLES=0) THEN NEW.CODTABELASIMPLES = GEN_ID(GEN_TABELASSIMPLES,1); END ^ SET TERM ; ^ /*------ 22/08/2017 14:45:30 --------*/ create view VWLOTE (lote, validade, codproduto, descricao, codprodemp) as select l.nrlote, l.validade, p.codproduto, p.descricao, p.codprodemp from loteproduto l join produtos p on p.codproduto=l.codproduto union all select cast (i.lote as varchar(40)), i.vencimento validade, p.codproduto, p.descricao, p.codprodemp from itensmovimentoprod i join produtos p on p.codproduto=i.codproduto ; /*------ 24/08/2017 13:05:32 --------*/ ALTER TABLE ITENSMOVIMENTOPROD ADD BASEIPI VALOR_10_2; /*------ 24/08/2017 13:34:52 --------*/ 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 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), TRTIPO VARCHAR(1), CODBARRAS VARCHAR(30), CEST VARCHAR(15), BASECALCULOICMS FLOAT, BASEIPI FLOAT) 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 ) then TOTALIPI = IPI * ((QTD * VALOR)/100); ELSE TOTALIPI = 0; if (ICMS >0 ) then TOTALICMS = ICMS * ((QTD * 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 ; ^ /*------ 24/08/2017 13:34:55 --------*/ SET TERM ^ ; ALTER PROCEDURE RELDESCONTOSITENSMOV ( DATAI DATE, DATAF DATE) RETURNS ( CODMOVIMENTO INTEGER, DATA DATE, FUNCIONARIO VARCHAR(40), CODPRODUTO INTEGER, PRODUTO VARCHAR(50), 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, SIGLA VARCHAR(3), VALORDESCONTO FLOAT) AS begin FOR SELECT M.CODMOVIMENTO, M.DATA, F.NOME FROM MOVIMENTOSPRODUTOS M LEFT JOIN FUNCIONARIOS F ON (F.CODFUNCIONARIO = M.CODFUNCIONARIO) WHERE M.TIPO='VE' AND M.DATA>=:DATAI AND M.DATA<=:DATAF INTO :CODMOVIMENTO, :DATA, :FUNCIONARIO DO BEGIN FOR SELECT SP.CODPRODUTO , SP.PRODUTO, SP.CODGRUPO , SP.GRUPO , SP.CODFABRICANTE , SP.FABRICANTE , SP.QTD , SP.UNIDADE , SP.VALOR , SP.TOTAL , SP.BAIXADO , SP.VALORUNIT , SP.DESCONTO , SP.TOTALUNIT , SP.SIGLA, SP.TOTALUNIT - SP.TOTAL FROM SPITENSMOV(:CODMOVIMENTO) SP WHERE SP.DESCONTO>0 INTO :CODPRODUTO , :PRODUTO, :CODGRUPO , :GRUPO , :CODFABRICANTE , :FABRICANTE , :QTD , :UNIDADE , :VALOR , :TOTAL , :BAIXADO , :VALORUNIT , :DESCONTO , :TOTALUNIT , :SIGLA, :VALORDESCONTO DO suspend; END end ^ SET TERM ; ^ /*------ 24/08/2017 13:34:55 --------*/ SET TERM ^ ; ALTER PROCEDURE TOTALMOV ( MOVIMENTO INTEGER) RETURNS ( TOTALPRODUTOSSEMDESC FLOAT, TOTALPRODUTOS FLOAT, TOTALCUSTO FLOAT, TOTALDESPESAS FLOAT, TOTALGERAL FLOAT, TOTALIPI FLOAT, PARCELAS FLOAT, CHEQUE FLOAT, CARTAO FLOAT, SOMAPAGAMENTOS FLOAT, COMISSAOPORPROD FLOAT, DINHEIRO FLOAT, VALORDESCONTO FLOAT, TOTALAVISTA FLOAT, FRETE FLOAT, TOTALICMS FLOAT, QTDTOTAL FLOAT) AS declare variable PRODUTOS FLOAT; declare variable CUSTO FLOAT; declare variable DESPESAS FLOAT; declare variable OS FLOAT; declare variable IPI FLOAT; declare variable SOMAIPI FLOAT; declare variable VALORIPI FLOAT; declare variable DESCONTO FLOAT; declare variable ACRESCIMO FLOAT; declare variable EMDINHEIRO FLOAT; declare variable DESPREC FLOAT; declare variable COMISSAO FLOAT; declare variable TIPODESCONTO CHAR(1); declare variable TIPOACRESCIMO CHAR(1); begin /* TOTAL DE PRODUTOS SELECT SUM(IM.QTD * IM.VALOR) AS TOTALPRODUTOS FROM MOVIMENTOSPRODUTOS M LEFT JOIN ITENSMOVIMENTOPROD IM ON (IM.CODMOVIMENTO = M.CODMOVIMENTO) WHERE M.CODMOVIMENTO=:MOVIMENTO INTO :PRODUTOS; if (:PRODUTOS IS NULL) then TOTALPRODUTOS=0; ELSE TOTALPRODUTOS=PRODUTOS; */ SELECT SUM(QTD), SUM(IM.QTD * IM.VALORUNIT), SUM(IM.QTD * IM.VALOR), SUM(IM.QTD * IM.VALORCUSTO), SUM(IM.QTD * IM.VALORAVISTA) FROM ITENSMOVIMENTOPROD IM WHERE IM.CODMOVIMENTO=:MOVIMENTO AND (IM.TIPO='I' or IM.TIPO IS NULL) INTO :QTDTOTAL, :TOTALPRODUTOSSEMDESC, :PRODUTOS, :CUSTO, :TOTALAVISTA; if (:PRODUTOS IS NULL) then TOTALPRODUTOS=0; ELSE TOTALPRODUTOS=PRODUTOS; if (:CUSTO IS NULL) then TOTALCUSTO=0; ELSE TOTALCUSTO=CUSTO; if (TOTALPRODUTOSSEMDESC IS NULL) then TOTALPRODUTOSSEMDESC = 0; /* TOTALCUSTO SELECT SUM(IM.QTD * IM.VALORCUSTO) FROM MOVIMENTOSPRODUTOS M LEFT JOIN ITENSMOVIMENTOPROD IM ON (IM.CODMOVIMENTO = M.CODMOVIMENTO) WHERE M.CODMOVIMENTO=:MOVIMENTO INTO :CUSTO; if (:CUSTO IS NULL) then TOTALCUSTO=0; ELSE TOTALCUSTO=CUSTO;*/ COMISSAOPORPROD = 0; FOR SELECT (SUM(IM.QTD * IM.VALOR) * IM.COMISSAO)/100 FROM ITENSMOVIMENTOPROD IM WHERE IM.CODMOVIMENTO=:MOVIMENTO GROUP BY IM.QTD, IM.valor, IM.COMISSAO INTO :COMISSAO DO BEGIN if (NOT COMISSAO IS NULL) then COMISSAOPORPROD=COMISSAOPORPROD + COMISSAO; END /*SELECT M.TOTALIPI FROM MOVIMENTOSPRODUTOS M WHERE M.CODMOVIMENTO=:MOVIMENTO INTO :VALORIPI; If (:VALORIPI IS NULL) then VALORIPI=0;*/ SELECT SUM(TOTALIPI), SUM(TOTALICMS) from SPITENSMOV(:MOVIMENTO) INTO :VALORIPI, :TOTALICMS; If (:VALORIPI IS NULL) then VALORIPI=0; If (:TOTALICMS IS NULL) then TOTALICMS=0; /*DADOS MOV*/ SELECT D.ACRESCIMO, D.DESCONTO, D.TIPOACRESCIMO, D.TIPODESCONTO FROM DADOSMOVIMENTO D WHERE D.CODMOVIMENTO=:MOVIMENTO INTO :ACRESCIMO, :DESCONTO, :TIPOACRESCIMO, :TIPODESCONTO; If (:ACRESCIMO IS NULL) THEN ACRESCIMO = 0; IF (:DESCONTO IS NULL) THEN DESCONTO = 0; /*SOMA DESPESAS*/ SELECT SUM(DM.VALOR) AS TOTALDESPESAS FROM MOVIMENTOSPRODUTOS M LEFT JOIN DESPESAMOVIMENTO DM ON (DM.CODMOVIMENTO = M.CODMOVIMENTO) WHERE M.CODMOVIMENTO=:MOVIMENTO INTO :DESPESAS; if (:DESPESAS IS NULL) then TOTALDESPESAS=0; ELSE TOTALDESPESAS=DESPESAS; /*SOMA CARTAO*/ SELECT SUM(PCC.VALORPARCELA) FROM CONTASPAGARRECEBER CPR JOIN PARCELASCARTAO PCC ON (PCC.CODCONTA = CPR.CODCONTA) WHERE CPR.CODMOVIMENTO=:MOVIMENTO INTO :CARTAO; IF (:CARTAO IS NULL) then CARTAO=0; /*SOMA PARCELAS*/ SELECT SUM(PC.VALORPARCELA) FROM CONTASPAGARRECEBER CPR JOIN PARCELASCONTAS PC ON (PC.CODCONTA = CPR.CODCONTA) WHERE CPR.CODMOVIMENTO=:MOVIMENTO INTO :PARCELAS; IF (:PARCELAS IS NULL) then PARCELAS=0; /*SOMA CHEQUE*/ SELECT SUM(CH.VALOR) FROM CONTASPAGARRECEBER CPR JOIN CHCONTAS CC ON (CC.CODCONTA = CPR.CODCONTA) JOIN CHEQUES CH ON (CH.CODCHEQUE = CC.CODCHEQUE) WHERE CPR.CODMOVIMENTO=:MOVIMENTO INTO :CHEQUE; IF (:CHEQUE IS NULL) then CHEQUE=0; /*DINHEIRO*/ SELECT D.VALOR FROM CONTASPAGARRECEBER CPR JOIN DINHEIRO D ON (D.CODCONTA = CPR.CODCONTA) WHERE CPR.CODMOVIMENTO=:MOVIMENTO INTO :EMDINHEIRO; IF (:EMDINHEIRO IS NULL) then EMDINHEIRO=0; DINHEIRO = EMDINHEIRO; /*SOMA IPI*/ SOMAIPI = 0; FOR SELECT ((CAST(IM.QTD AS FLOAT) * CAST(IM.VALOR AS FLOAT)) * CAST(IM.IPI AS FLOAT))/100 FROM MOVIMENTOSPRODUTOS M LEFT JOIN ITENSMOVIMENTOPROD IM ON (IM.CODMOVIMENTO = M.CODMOVIMENTO) WHERE M.CODMOVIMENTO=:MOVIMENTO AND NOT IM.IPI IS NULL INTO :IPI DO BEGIN SOMAIPI = SOMAIPI + IPI; END IF (:SOMAIPI IS NULL) then TOTALIPI=0; ELSE TOTALIPI=SOMAIPI; /*DINHEIRO*/ SELECT DR.VALOR FROM DESPESASRECEITAS DR WHERE DR.CODMOVIMENTO=:MOVIMENTO INTO :DESPREC; IF (:DESPREC IS NULL) then DESPREC =0; SELECT S.TOTAL FROM SERVICOS S WHERE S.CODMOVIMENTO=:MOVIMENTO INTO :OS; IF (:OS IS NULL) then OS =0; SELECT FM.VALOR FROM FRETEMOVIMENTO FM WHERE FM.CODMOVIMENTO=:MOVIMENTO INTO :FRETE; IF (:FRETE IS NULL) then FRETE =0; SOMAPAGAMENTOS = EMDINHEIRO + CHEQUE + PARCELAS + CARTAO; TOTALGERAL = TOTALPRODUTOS + TOTALDESPESAS + TOTALIPI + DESPREC + OS + :FRETE; VALORDESCONTO = 0; If (:DESCONTO>0) Then Begin If (:TIPODESCONTO = '%') Then Begin VALORDESCONTO = TOTALGERAL - (TOTALGERAL - ((TOTALGERAL * DESCONTO)/100)); TOTALGERAL = TOTALGERAL - ((TOTALGERAL * DESCONTO)/100); End If (:TIPODESCONTO = '$' )Then Begin VALORDESCONTO = TOTALGERAL - ( TOTALGERAL - DESCONTO); TOTALGERAL = TOTALGERAL - DESCONTO; End End If (:ACRESCIMO>0) Then Begin If (:TIPOACRESCIMO = '%') Then Begin TOTALGERAL = TOTALGERAL + ((TOTALGERAL * ACRESCIMO)/100); End If (:TIPOACRESCIMO = '$' )Then Begin TOTALGERAL = TOTALGERAL + ACRESCIMO; End End suspend; end ^ SET TERM ; ^ /*------ 24/08/2017 13:42:42 --------*/ SET TERM ^ ; ALTER PROCEDURE TOTALMOV ( MOVIMENTO INTEGER) RETURNS ( TOTALPRODUTOSSEMDESC FLOAT, TOTALPRODUTOS FLOAT, TOTALCUSTO FLOAT, TOTALDESPESAS FLOAT, TOTALGERAL FLOAT, TOTALIPI FLOAT, PARCELAS FLOAT, CHEQUE FLOAT, CARTAO FLOAT, SOMAPAGAMENTOS FLOAT, COMISSAOPORPROD FLOAT, DINHEIRO FLOAT, VALORDESCONTO FLOAT, TOTALAVISTA FLOAT, FRETE FLOAT, TOTALICMS FLOAT, QTDTOTAL FLOAT) AS declare variable PRODUTOS FLOAT; declare variable CUSTO FLOAT; declare variable DESPESAS FLOAT; declare variable OS FLOAT; declare variable IPI FLOAT; declare variable SOMAIPI FLOAT; declare variable VALORIPI FLOAT; declare variable DESCONTO FLOAT; declare variable ACRESCIMO FLOAT; declare variable EMDINHEIRO FLOAT; declare variable DESPREC FLOAT; declare variable COMISSAO FLOAT; declare variable TIPODESCONTO CHAR(1); declare variable TIPOACRESCIMO CHAR(1); begin /* TOTAL DE PRODUTOS SELECT SUM(IM.QTD * IM.VALOR) AS TOTALPRODUTOS FROM MOVIMENTOSPRODUTOS M LEFT JOIN ITENSMOVIMENTOPROD IM ON (IM.CODMOVIMENTO = M.CODMOVIMENTO) WHERE M.CODMOVIMENTO=:MOVIMENTO INTO :PRODUTOS; if (:PRODUTOS IS NULL) then TOTALPRODUTOS=0; ELSE TOTALPRODUTOS=PRODUTOS; */ SELECT SUM(QTD), SUM(IM.QTD * IM.VALORUNIT), SUM(IM.QTD * IM.VALOR), SUM(IM.QTD * IM.VALORCUSTO), SUM(IM.QTD * IM.VALORAVISTA) FROM ITENSMOVIMENTOPROD IM WHERE IM.CODMOVIMENTO=:MOVIMENTO AND (IM.TIPO='I' or IM.TIPO IS NULL) INTO :QTDTOTAL, :TOTALPRODUTOSSEMDESC, :PRODUTOS, :CUSTO, :TOTALAVISTA; if (:PRODUTOS IS NULL) then TOTALPRODUTOS=0; ELSE TOTALPRODUTOS=PRODUTOS; if (:CUSTO IS NULL) then TOTALCUSTO=0; ELSE TOTALCUSTO=CUSTO; if (TOTALPRODUTOSSEMDESC IS NULL) then TOTALPRODUTOSSEMDESC = 0; /* TOTALCUSTO SELECT SUM(IM.QTD * IM.VALORCUSTO) FROM MOVIMENTOSPRODUTOS M LEFT JOIN ITENSMOVIMENTOPROD IM ON (IM.CODMOVIMENTO = M.CODMOVIMENTO) WHERE M.CODMOVIMENTO=:MOVIMENTO INTO :CUSTO; if (:CUSTO IS NULL) then TOTALCUSTO=0; ELSE TOTALCUSTO=CUSTO;*/ COMISSAOPORPROD = 0; FOR SELECT (SUM(IM.QTD * IM.VALOR) * IM.COMISSAO)/100 FROM ITENSMOVIMENTOPROD IM WHERE IM.CODMOVIMENTO=:MOVIMENTO GROUP BY IM.QTD, IM.valor, IM.COMISSAO INTO :COMISSAO DO BEGIN if (NOT COMISSAO IS NULL) then COMISSAOPORPROD=COMISSAOPORPROD + COMISSAO; END /*SELECT M.TOTALIPI FROM MOVIMENTOSPRODUTOS M WHERE M.CODMOVIMENTO=:MOVIMENTO INTO :VALORIPI; If (:VALORIPI IS NULL) then VALORIPI=0;*/ SELECT SUM(TOTALIPI), SUM(TOTALICMS) from SPITENSMOV(:MOVIMENTO) INTO :VALORIPI, :TOTALICMS; If (:VALORIPI IS NULL) then VALORIPI=0; If (:TOTALICMS IS NULL) then TOTALICMS=0; /*DADOS MOV*/ SELECT D.ACRESCIMO, D.DESCONTO, D.TIPOACRESCIMO, D.TIPODESCONTO FROM DADOSMOVIMENTO D WHERE D.CODMOVIMENTO=:MOVIMENTO INTO :ACRESCIMO, :DESCONTO, :TIPOACRESCIMO, :TIPODESCONTO; If (:ACRESCIMO IS NULL) THEN ACRESCIMO = 0; IF (:DESCONTO IS NULL) THEN DESCONTO = 0; /*SOMA DESPESAS*/ SELECT SUM(DM.VALOR) AS TOTALDESPESAS FROM MOVIMENTOSPRODUTOS M LEFT JOIN DESPESAMOVIMENTO DM ON (DM.CODMOVIMENTO = M.CODMOVIMENTO) WHERE M.CODMOVIMENTO=:MOVIMENTO INTO :DESPESAS; if (:DESPESAS IS NULL) then TOTALDESPESAS=0; ELSE TOTALDESPESAS=DESPESAS; /*SOMA CARTAO*/ SELECT SUM(PCC.VALORPARCELA) FROM CONTASPAGARRECEBER CPR JOIN PARCELASCARTAO PCC ON (PCC.CODCONTA = CPR.CODCONTA) WHERE CPR.CODMOVIMENTO=:MOVIMENTO INTO :CARTAO; IF (:CARTAO IS NULL) then CARTAO=0; /*SOMA PARCELAS*/ SELECT SUM(PC.VALORPARCELA) FROM CONTASPAGARRECEBER CPR JOIN PARCELASCONTAS PC ON (PC.CODCONTA = CPR.CODCONTA) WHERE CPR.CODMOVIMENTO=:MOVIMENTO INTO :PARCELAS; IF (:PARCELAS IS NULL) then PARCELAS=0; /*SOMA CHEQUE*/ SELECT SUM(CH.VALOR) FROM CONTASPAGARRECEBER CPR JOIN CHCONTAS CC ON (CC.CODCONTA = CPR.CODCONTA) JOIN CHEQUES CH ON (CH.CODCHEQUE = CC.CODCHEQUE) WHERE CPR.CODMOVIMENTO=:MOVIMENTO INTO :CHEQUE; IF (:CHEQUE IS NULL) then CHEQUE=0; /*DINHEIRO*/ SELECT D.VALOR FROM CONTASPAGARRECEBER CPR JOIN DINHEIRO D ON (D.CODCONTA = CPR.CODCONTA) WHERE CPR.CODMOVIMENTO=:MOVIMENTO INTO :EMDINHEIRO; IF (:EMDINHEIRO IS NULL) then EMDINHEIRO=0; DINHEIRO = EMDINHEIRO; /*SOMA IPI*/ SOMAIPI = 0; FOR SELECT ((CAST(IM.QTD AS FLOAT) * CAST(IM.BASEIPI AS FLOAT)) * CAST(IM.IPI AS FLOAT))/100 FROM MOVIMENTOSPRODUTOS M LEFT JOIN ITENSMOVIMENTOPROD IM ON (IM.CODMOVIMENTO = M.CODMOVIMENTO) WHERE M.CODMOVIMENTO=:MOVIMENTO AND NOT IM.IPI IS NULL INTO :IPI DO BEGIN SOMAIPI = SOMAIPI + IPI; END IF (:SOMAIPI IS NULL) then TOTALIPI=0; ELSE TOTALIPI=SOMAIPI; /*DINHEIRO*/ SELECT DR.VALOR FROM DESPESASRECEITAS DR WHERE DR.CODMOVIMENTO=:MOVIMENTO INTO :DESPREC; IF (:DESPREC IS NULL) then DESPREC =0; SELECT S.TOTAL FROM SERVICOS S WHERE S.CODMOVIMENTO=:MOVIMENTO INTO :OS; IF (:OS IS NULL) then OS =0; SELECT FM.VALOR FROM FRETEMOVIMENTO FM WHERE FM.CODMOVIMENTO=:MOVIMENTO INTO :FRETE; IF (:FRETE IS NULL) then FRETE =0; SOMAPAGAMENTOS = EMDINHEIRO + CHEQUE + PARCELAS + CARTAO; TOTALGERAL = TOTALPRODUTOS + TOTALDESPESAS + TOTALIPI + DESPREC + OS + :FRETE; VALORDESCONTO = 0; If (:DESCONTO>0) Then Begin If (:TIPODESCONTO = '%') Then Begin VALORDESCONTO = TOTALGERAL - (TOTALGERAL - ((TOTALGERAL * DESCONTO)/100)); TOTALGERAL = TOTALGERAL - ((TOTALGERAL * DESCONTO)/100); End If (:TIPODESCONTO = '$' )Then Begin VALORDESCONTO = TOTALGERAL - ( TOTALGERAL - DESCONTO); TOTALGERAL = TOTALGERAL - DESCONTO; End End If (:ACRESCIMO>0) Then Begin If (:TIPOACRESCIMO = '%') Then Begin TOTALGERAL = TOTALGERAL + ((TOTALGERAL * ACRESCIMO)/100); End If (:TIPOACRESCIMO = '$' )Then Begin TOTALGERAL = TOTALGERAL + ACRESCIMO; End End suspend; end ^ SET TERM ; ^