/*------ 26/11/2016 01:32:45 --------*/ UPDATE CONFIGURACOES SET COMPILACAO='1.3.6.7'; /*------ 26/12/2016 00:08:27 --------*/ CREATE TABLE ADMINISTRADORES( CODADM CODIGO NOT NULL); /*------ 26/12/2016 00:08:27 --------*/ alter table ADMINISTRADORES add primary key (CODADM); /*------ 26/12/2016 00:08:48 --------*/ ALTER TABLE ADMINISTRADORES ADD NOME VARCHAR_100; /*------ 26/12/2016 00:09:56 --------*/ ALTER TABLE ADMINISTRADORES ADD RAZAO VARCHAR_100; /*------ 26/12/2016 00:10:08 --------*/ ALTER TABLE ADMINISTRADORES ADD CNPJ CNPJ; /*------ 26/12/2016 00:10:18 --------*/ ALTER TABLE ADMINISTRADORES ADD STATUS CHAR1; /*------ 26/12/2016 00:10:27 --------*/ ALTER TABLE ADMINISTRADORES ADD ADM CHAR1; /*------ 26/12/2016 00:10:54 --------*/ ALTER TABLE ADMINISTRADORES ADD LOGIN VARCHAR_15; /*------ 26/12/2016 00:11:09 --------*/ ALTER TABLE ADMINISTRADORES ADD SENHA VC500; /*------ 26/12/2016 00:11:28 --------*/ ALTER TABLE ADMINISTRADORES ADD ENDERECO VARCHAR_70; /*------ 26/12/2016 00:12:04 --------*/ ALTER TABLE ADMINISTRADORES ADD BAIRRO VARCHAR_30; /*------ 26/12/2016 00:12:34 --------*/ ALTER TABLE ADMINISTRADORES ADD CODCIDADE INTEIRO_NULL; /*------ 26/12/2016 00:12:44 --------*/ ALTER TABLE ADMINISTRADORES ADD CEP CEP; /*------ 26/12/2016 00:15:44 --------*/ ALTER TABLE ADMINISTRADORES ADD EMAIL VARCHAR_100; /*------ 26/12/2016 00:17:23 --------*/ CREATE TABLE ADMEMP( ID CODIGO NOT NULL); /*------ 26/12/2016 00:17:23 --------*/ alter table ADMEMP add primary key (ID); /*------ 26/12/2016 00:17:47 --------*/ ALTER TABLE ADMEMP ADD CODEMPRESA CODIGO NOT NULL ; /*------ 26/12/2016 00:18:13 --------*/ ALTER TABLE ADMEMP ADD CODADM INTEIRO_NOTNULL NOT NULL ; /*------ 26/12/2016 00:18:23 --------*/ update RDB$RELATION_FIELDS set RDB$FIELD_SOURCE = 'INTEIRO_NOTNULL' where (RDB$FIELD_NAME = 'CODEMPRESA') and (RDB$RELATION_NAME = 'ADMEMP') ; /*------ 26/12/2016 00:19:00 --------*/ CREATE GENERATOR GEN_ADMEMP; /*------ 26/12/2016 00:19:00 --------*/ SET TERM ^ ; CREATE TRIGGER ADMEMP_BI FOR ADMEMP ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.ID IS NULL OR NEW.ID =0) THEN NEW.ID = GEN_ID(GEN_ADMEMP,1); END ^ SET TERM ; ^ /*------ 26/12/2016 00:19:42 --------*/ CREATE GENERATOR GEN_ADMINISTRADORES; /*------ 26/12/2016 00:19:42 --------*/ SET TERM ^ ; CREATE TRIGGER ADMINISTRADORES_BI FOR ADMINISTRADORES ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.CODADM IS NULL OR NEW.CODADM=0) THEN NEW.CODADM = GEN_ID(GEN_ADMINISTRADORES,1); END ^ SET TERM ; ^ /*------ 26/12/2016 02:38:54 --------*/ ALTER TABLE ADMINISTRADORES ADD SOBRENOME VARCHAR_50; /*------ 28/12/2016 00:55:43 --------*/ SET TERM ^ ; CREATE PROCEDURE JUROSPARCELA(CODPARCELA INTEGER) RETURNS ( RESTANTE FLOAT, RESTANTECOMJUROS FLOAT, VALORPAGO FLOAT, DIASDEATRAZO INTEGER, VALORPARCELA FLOAT) AS 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 VENCIMENTO DATE; declare variable HOJE DATE; declare variable VALORRESTANTE FLOAT; begin SELECT CF.CARENCIAJUROSPORATRAZO, CF.JUROSPORATRAZO, CF.TIPPOJUROSPORATRAZO, CF.JUROSSOBRE FROM CONFIGURACOES CF INTO :CARENCIA, :JUROS, :TIPOJUROS, :JUROSSOBRE; if (JUROS IS NULL) then JUROS = 0; if (CARENCIA IS NULL) then CARENCIA = 0; SELECT PC.VALORPARCELA, PC.VENCIMENTO FROM PARCELASCONTAS PC WHERE PC.codparcela=:CODPARCELA INTO :VALOR, :VENC; SELECT SUM(PG.VALOR) FROM PARCELASPGTO PG WHERE PG.CODPARCELA = :CODPARCELA INTO :CREDITO; if (CREDITO IS NULL ) then CREDITO = 0; 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 suspend; end ^ SET TERM ; ^ /*------ 28/12/2016 00:57:45 --------*/ SET TERM ^ ; ALTER PROCEDURE SPCONTASRECEBIDAS ( DATAI DATE, DATAF DATE) RETURNS ( CODMOVIMENTO 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, VALORPAGO 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), TIPOPGTO VARCHAR(15), HORA TIME, CREDITO FLOAT, RESTANTECOMJUROS FLOAT) AS declare variable TIPOPG CHAR(1); begin FOR SELECT CPR.CODMOVIMENTO, CPR.CODPLANOPGTO, PC.CODPARCELA, PC.NRPARCELA, PC.VALORPARCELA, PC.VENCIMENTO, PC.DOCUMENTO, PC.PAGO, PG.DATA, PG.VALOR, PG.CODPARCELAPGTO, PG.VALORNADATA, PG.CODUSUARIO, PG.TIPO, PG.HORA FROM PARCELASPGTO PG JOIN PARCELASCONTAS PC ON (PG.CODPARCELA = PC.CODPARCELA) JOIN CONTASPAGARRECEBER CPR ON (CPR.CODCONTA = PC.CODCONTA) WHERE CPR.TIPO IN ('VE', 'RE') AND PG.DATA>=:DATAI AND PG.DATA<=:DATAF INTO :CODMOVIMENTO, :CODPLANOPGTO, :CODPARCELA, :NRPARCELA, :VALORPARCELA, :VENCIMENTO, :DOCUMENTO, :PAGO, :DATAPGTO, :VALORPAGO, :CODPARCELAPGTO, :VALORNADATA, :CODUSUARIO, :TIPOPG, :HORA DO BEGIN TIPOPGTO = NULL; /*if (TIPOPG='D') then TIPOPGTO = 'DINHEIRO'; if (TIPOPG='C') then TIPOPGTO = 'CHEQUE'; if (TIPOPG='K') then TIPOPGTO = 'CARTAO';*/ SELECT TIPOPGTO FROM SPTIPOPGTO(:TIPOPG) INTO :TIPOPGTO; NRDOCUMENTO = null; USUARIO = NULL; SELECT U.LOGIN FROM USUARIOS U WHERE U.CODUSUARIO=:CODUSUARIO INTO :USUARIO; CODIGOCONTABIL = NULL; SELECT M.CODFILIAL, M.DATA, F.NOME, M.TIPO, M.CODIGOCONTABIL FROM MOVIMENTOSPRODUTOS M JOIN FILIAIS F ON (F.CODFILIAL = M.CODFILIAL) WHERE M.CODMOVIMENTO=:CODMOVIMENTO INTO :CODFILIAL, :DATA, :FILIAL, :TIPO, :CODIGOCONTABIL; SELECT F.NOME FROM FILIAIS F WHERE F.CODFILIAL=:CODFILIAL INTO :FILIAL; NRNFE = NULL; SELECT N.NRDOCUMENTO FROM NFEMOV N WHERE N.CODMOVIMENTO=:CODMOVIMENTO INTO :NRNFE; SELECT DM.TIPODOC, DM.NRDOCUMENTO FROM DOCUMENTOMOV DM WHERE DM.CODMOVIMENTO=:CODMOVIMENTO INTO :TIPODOC, :NRDOCUMENTO; SELECT CM.CODCLIENTE FROM CLIENTEMOVIMENTO CM WHERE CM.CODMOVIMENTO=:CODMOVIMENTO INTO :CODCLIENTE; SELECT CAST(C.NOME AS VARCHAR(70))AS CLIENTE, C.NOME FROM CLIENTES C WHERE C.CODCLIENTE=:CODCLIENTE INTO :CLIENTE, :NOME; SELECT PL.DESCRICAO FROM PLANOSDECONTAS PL WHERE PL.CODIGOCONTABIL=:CODIGOCONTABIL INTO :PLANODECONTAS; if (VALORPAGO>VALORPARCELA) then BEGIN JUROS = VALORPAGO - VALORPARCELA; END ELSE JUROS = 0; DESCONTO =0; SELECT SUM(DC.VALOR) FROM LINKDESCONTOPARCELEA LK JOIN DESCONTOPARCELA DC ON (DC.CODDESCONTOPARCELA = LK.CODDESCONTOPARCELA) WHERE LK.CODPARCELAPGTO=:CODPARCELAPGTO INTO :DESCONTO; EXTENSO=NULL; if (VALORPAGO>0) then begin SELECT VALOREXTENSO FROM EXTENSO(:VALORPAGO,'S') INTO :EXTENSO; end RESTANTECOMJUROS =0 ; CREDITO =0 ; SELECT RESTANTECOMJUROS, VALORPAGO FROM jurosparcela(:CODPARCELA) INTO :RESTANTECOMJUROS, :CREDITO; /*SELECT CR.RESTANTECOMJUROS, CR.VALORPAGO FROM SPCONTASRECEBER CR WHERE CR.CODPARCELA=:CODPARCELA INTO :RESTANTECOMJUROS, :CREDITO;*/ /*SELECT SUM(PG.VALOR) FROM PARCELASPGTO PG WHERE PG.CODPARCELA=:CODPARCELA INTO :CREDITO; if (CREDITO IS NULL ) then CREDITO = 0;*/ suspend; END end ^ SET TERM ; ^ /*------ 28/12/2016 00:57:47 --------*/ SET TERM ^ ; ALTER PROCEDURE SPCXACADEMIA ( DATAI DATE, DATAF DATE) RETURNS ( CODMOVIMENTO 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 FROM SPCONTASRECEBIDAS(:DATAI, :DATAF) 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 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 FROM SPMOVRECEITASAVISTA(:DATAI, :DATAF) WHERE TOTAL>0 INTO :CODMOVIMENTO , :CODFILIAL , :DATA , :CODCLIENTE , :CLIENTE , :VALOR , :CODIGOCONTABIL , :PLANODECONTAS , :NRDOCUMENTO, :DESCRECEITA, :DATAPGTO 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 FROM SPMOVRECEITASCHEQUE(:DATAI, :DATAF) WHERE TOTAL>0 INTO :CODMOVIMENTO , :CODFILIAL , :DATA , :CODCLIENTE , :CLIENTE , :VALOR , :CODIGOCONTABIL , :PLANODECONTAS , :NRDOCUMENTO, :DESCRECEITA, :DATAPGTO 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 FROM SPMOVVENDAAVISTA(:DATAI, :DATAF) WHERE TOTAL>0 INTO :CODMOVIMENTO , :CODFILIAL , :DATA , :CODCLIENTE , :CLIENTE , :VALOR , :CODIGOCONTABIL , :PLANODECONTAS , :NRDOCUMENTO, :DESCRECEITA, :DATAPGTO DO BEGIN NOME= :CLIENTE; SELECT F.NOME FROM FILIAIS F WHERE F.CODFILIAL=:CODFILIAL INTO :FILIAL; TIPOPGTO = 'DINHEIRO'; SUSPEND; END end ^ SET TERM ; ^ /*------ 04/01/2017 02:07:08 --------*/ ALTER TABLE EMPRESA ADD VALORMENSALIDADE VALOR_10_2; /*------ 04/01/2017 02:07:27 --------*/ ALTER TABLE EMPRESA ADD DIAVENCIMENTO INTEIRO_NULL; /*------ 04/01/2017 02:12:21 --------*/ CREATE TABLE ADMPARCREC( CODPARCREC CODIGO NOT NULL); /*------ 04/01/2017 02:12:21 --------*/ alter table ADMPARCREC add primary key (CODPARCREC); /*------ 04/01/2017 02:12:32 --------*/ ALTER TABLE ADMPARCREC ADD CODADM INTEIRO_NULL; /*------ 04/01/2017 02:12:47 --------*/ ALTER TABLE ADMPARCREC ADD CODEMPRESA INTEIRO_NULL; /*------ 04/01/2017 02:12:58 --------*/ ALTER TABLE ADMPARCREC ADD VALOR VALOR_10_2; /*------ 04/01/2017 02:13:09 --------*/ ALTER TABLE ADMPARCREC ADD VENCIMENTO DATA; /*------ 04/01/2017 02:13:27 --------*/ ALTER TABLE ADMPARCREC ADD PAGO CHAR1; /*------ 04/01/2017 02:13:43 --------*/ ALTER TABLE ADMPARCREC ADD DATAPGTO DATA; /*------ 04/01/2017 02:16:52 --------*/ CREATE TABLE ADMDESPESAS( CODADMDESP CODIGO NOT NULL); /*------ 04/01/2017 02:16:52 --------*/ alter table ADMDESPESAS add primary key (CODADMDESP); /*------ 04/01/2017 02:17:04 --------*/ ALTER TABLE ADMDESPESAS ADD CODADM INTEIRO_NOTNULL NOT NULL ; /*------ 04/01/2017 02:17:12 --------*/ ALTER TABLE ADMDESPESAS ADD DATACAD DATA; /*------ 04/01/2017 02:17:26 --------*/ ALTER TABLE ADMDESPESAS ADD DESCRICAO VARCHAR_100; /*------ 04/01/2017 02:17:38 --------*/ ALTER TABLE ADMDESPESAS ADD VALOR VALOR_10_2; /*------ 04/01/2017 02:19:02 --------*/ CREATE TABLE ADMPARCPAGAR( CODADMPARCPAG CODIGO NOT NULL); /*------ 04/01/2017 02:19:02 --------*/ alter table ADMPARCPAGAR add primary key (CODADMPARCPAG); /*------ 04/01/2017 02:19:26 --------*/ ALTER TABLE ADMPARCPAGAR ADD CODADMDESP INTEIRO_NOTNULL NOT NULL ; /*------ 04/01/2017 02:19:37 --------*/ ALTER TABLE ADMPARCPAGAR ADD VALOR VALOR_10_2; /*------ 04/01/2017 02:19:47 --------*/ ALTER TABLE ADMPARCPAGAR ADD VENCIMENTO DATA NOT NULL ; /*------ 04/01/2017 02:19:58 --------*/ ALTER TABLE ADMPARCPAGAR ADD PAGO CHAR1; /*------ 04/01/2017 02:20:06 --------*/ ALTER TABLE ADMPARCPAGAR ADD DATAPGTO DATA; /*------ 04/01/2017 02:21:07 --------*/ ALTER TABLE ADMPARCPAGAR ADD TIPO CHAR1; /*------ 04/01/2017 02:22:11 --------*/ CREATE TABLE ADMDESPDINHEIRO( ID CODIGO NOT NULL, VALOR VALOR_10_2); /*------ 04/01/2017 02:22:11 --------*/ alter table ADMDESPDINHEIRO add primary key (ID); /*------ 04/01/2017 02:22:31 --------*/ ALTER TABLE ADMDESPDINHEIRO ADD DATA DATA; /*------ 05/01/2017 11:12:36 --------*/ ALTER TABLE ITENSMOVIMENTOPROD ADD BASECALCULOICMS VALOR_10_2; /*------ 05/01/2017 11:17:31 --------*/ 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) 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.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, :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 ; ^ /*------ 05/01/2017 11:17:42 --------*/ 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 ; ^ /*------ 05/01/2017 11:17: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.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 ; ^