/*------ 21/06/2016 08:50:50 --------*/ SET TERM ^ ; ALTER PROCEDURE SPDOCUMENTOMOV ( CODIGO INTEGER) RETURNS ( CODMOVIMENTO INTEGER, NRDOCUMENTO VARCHAR(20), CODCFOP INTEGER, BASEICMS FLOAT, ICMS FLOAT, TIPODOC VARCHAR(20), CFOP VARCHAR(40), ALIQICMS FLOAT, NATUREZA VARCHAR(10), TIPO CHAR(1), NRSERIEEQUIPAMENTO VARCHAR(40), VALORST FLOAT, EMITENTE CHAR(1), MODELO CHAR(1), SERIE VARCHAR(5), VBCST FLOAT, VST FLOAT, RETORNONFE VARCHAR(50)) AS begin SELECT D.CODMOVIMENTO, D.NRDOCUMENTO, D.CODCFOP, D.BASEICMS, D.ICMS, D.TIPODOC, C.DESCRICAO, D.ALIQICMS, C.NATUREZA, C.TIPO, D.NRSERIEEQUIPAMENTO, D.VALORST, D.EMITENTE, D.MODELO, D.SERIE, D.VBCST, D.VST, D.RETORNONFE FROM DOCUMENTOMOV D JOIN CFOP C ON (C.CODCFOP = D.CODCFOP) WHERE D.CODMOVIMENTO=:CODIGO INTO :CODMOVIMENTO, :NRDOCUMENTO, :CODCFOP, :BASEICMS, :ICMS, :TIPODOC, :CFOP, :ALIQICMS, :NATUREZA, :TIPO, :NRSERIEEQUIPAMENTO, :VALORST, :EMITENTE, :MODELO, :SERIE, :vBCST, :vST, :RETORNONFE ; suspend; end ^ SET TERM ; ^ /*------ 21/06/2016 08:50:53 --------*/ SET TERM ^ ; ALTER PROCEDURE SINTEGRA54 ( DATAI DATE, DATAF DATE) RETURNS ( CODITEMMOVIMENTO INTEGER, CODMOVIMENTO INTEGER, CODUNIDADE INTEGER, CODPRODUTO INTEGER, CODTABELA INTEGER, REFERENCIA VARCHAR(20), PRODUTO VARCHAR(50), DESCTABELA VARCHAR(30), CODGRUPO INTEGER, GRUPO VARCHAR(30), CODFABRICANTE INTEGER, FABRICANTE VARCHAR(40), QTD FLOAT, UNIDADE VARCHAR(30), VALOR FLOAT, TOTAL FLOAT, BAIXADO CHAR(1), VALORUNIT FLOAT, DESCONTO FLOAT, TOTALUNIT FLOAT, CODALIQUOTA VARCHAR(10), ALIQUOTA FLOAT, SIGLA VARCHAR(3), DESCRICAOADICIONAL VARCHAR(100), DESCADICIONAL VARCHAR(50), APRESENTACAO VARCHAR(40), CODTABELASIMPLES INTEGER, COR VARCHAR(40), QTDENTREGUE FLOAT, FALTAENTREGA FLOAT, VOLUMES INTEGER, ICMS FLOAT, IPI FLOAT, TOTALIPI FLOAT, TOTALICMS FLOAT, ACRESSUGESTAO FLOAT, ESTOQUEATUAL FLOAT, COMISSAO FLOAT, VALORCOMISSAO FLOAT, CORGRADE VARCHAR(40), TAM VARCHAR(5), NR INTEGER, DESCONTOMOV FLOAT, TOTALCOMDESCONTO FLOAT, VALORAVISTA FLOAT, TOTALAVISTA FLOAT, FABRICADO CHAR(1), DATAFAB DATE, CODNCM VARCHAR(30), CST VARCHAR(10), INFPRVENDA FLOAT, CFOP VARCHAR(10), ORIGEM VARCHAR(4), NRDOCUMENTO VARCHAR(20), CPFCNPJ VARCHAR(20), TIPODOC VARCHAR(20), TIPOCFOP CHAR(1)) AS declare variable TEMPCODPROD INTEGER; declare variable CODITEMMOV INTEGER; declare variable TEMPDESC VARCHAR(50); declare variable DESCPROD VARCHAR(50); declare variable TEMPDESCTABELA VARCHAR(30); declare variable ENTREGAMAD FLOAT; declare variable ENTREGAPD FLOAT; declare variable TCODALIQUOTA VARCHAR(10); declare variable TDESCONTOMOV FLOAT; declare variable TIPODESCONTOMOV CHAR(1); declare variable TOTALMOV FLOAT; declare variable TIPOMOV VARCHAR(5); begin FOR SELECT C.TIPO, DM.TIPODOC, M.TIPO, I.CODITEMMOVIMENTO, I.CODMOVIMENTO, I.CODTABELA, I.QTD, I.VALOR, I.QTD * I.VALOR, I.BAIXADO, I.VALORUNIT, I.DESCONTO, I.QTD * I.VALORUNIT, I.CODITEMMOVIMENTO, I.CODTABELA, I.CODUNIDADE, I.CODTABELASIMPLES, I.VOLUMES, I.ICMS, I.IPI, I.ESTOQUEATUAL, I.COMISSAO, I.CODALIQUOTA, I.FABRICADO, I.DATAFAB, I.CFOP, I.VALORAVISTA, I.QTD * I.VALORAVISTA FROM MOVIMENTOSPRODUTOS M JOIN DOCUMENTOMOV DM ON DM.CODMOVIMENTO=M.CODMOVIMENTO JOIN CFOP C ON C.CODCFOP=DM.CODCFOP JOIN ITENSMOVIMENTOPROD I ON (I.CODMOVIMENTO=M.CODMOVIMENTO) WHERE (M.DATA>=:DATAI) AND (M.DATA<=:DATAF) AND (I.TIPO IS NULL or I.TIPO='I') AND DM.TIPODOC<>'ECF' INTO :TIPOCFOP, :TIPODOC, :TIPOMOV, :CODITEMMOVIMENTO, :CODMOVIMENTO, :CODTABELA, :QTD, :VALOR, :TOTAL, :BAIXADO, :VALORUNIT, :DESCONTO, :TOTALUNIT, :CODITEMMOV, :TEMPCODPROD, :CODUNIDADE, :CODTABELASIMPLES, :VOLUMES, :ICMS, :IPI, :ESTOQUEATUAL, :COMISSAO, :CODALIQUOTA, :FABRICADO, :DATAFAB, :CFOP, :VALORAVISTA, :TOTALAVISTA DO BEGIN CORGRADE = NULL; TAM = NULL; NR = NULL; SELECT GP.COR, GP.TAM, GP.NR FROM GRADEPRODUTO GP WHERE GP.CODPRODUTO=:CODTABELA INTO :CORGRADE, :TAM, :NR; SELECT CPFCNPJ FROM SPPESSOAMOV(:CODMOVIMENTO, :TIPOMOV) INTO :CPFCNPJ; SELECT DM.NRDOCUMENTO FROM SPDOCUMENTOMOV(:CODMOVIMENTO) DM INTO :NRDOCUMENTO; CODNCM=NULL; SELECT SP.CODIGO,SP.REFERENCIA,SP.DESCRICAO,SP.DESCTABELA,SP.CODGRUPO, SP.GRUPO, SP.CODFABRICANTE, SP.FABRICANTE, SP.CODALIQUOTA, SP.ALIQUOTA, SP.DESCRICAO, SP.DESCTABELA, SP.APRESENTACAO, SP.ACRESSUGESTAO, SP.CODNCM, SP.CST, SP.PRECOVENDA, SP.ORIGEM FROM SPPESQPRODUTOSPORCODIGO(:CODTABELA) SP INTO :CODPRODUTO, :REFERENCIA, :PRODUTO, :DESCTABELA, :CODGRUPO, :GRUPO, :CODFABRICANTE, :FABRICANTE, :TCODALIQUOTA, :ALIQUOTA, :DESCPROD, :TEMPDESCTABELA, :APRESENTACAO, :ACRESSUGESTAO, :CODNCM, :CST, :INFPRVENDA, :ORIGEM; if (CODALIQUOTA iS NULL) then CODALIQUOTA=TCODALIQUOTA; TEMPDESC =''; SELECT IMD.DESCRICAOADICIONAL FROM IMDESCRICAOADICIONAL IMD WHERE IMD.CODITEMMOVIMENTO=:CODITEMMOV INTO :TEMPDESC; if (TEMPDESC IS NULL) then TEMPDESC =''; if (TEMPDESCTABELA IS NULL) then TEMPDESCTABELA =''; DESCRICAOADICIONAL = DESCPROD || ' ' || TEMPDESC || ' ' || TEMPDESCTABELA; DESCADICIONAL = TEMPDESC; COR = NULL; SELECT TS.DESCRICAO FROM TABELASSIMPLES TS WHERE TS.CODTABELASIMPLES=:CODTABELASIMPLES INTO :COR; SELECT UM.DESCRICAO, UM.SIGLA FROM UNIDADEMEDIDA UM WHERE UM.CODUNIDADE=:CODUNIDADE INTO :UNIDADE, :SIGLA; SELECT SUM(IO.QTD) FROM PRODUTOSOEMAD IO WHERE IO.CODITEMMOVIMENTO=:CODITEMMOV INTO :ENTREGAMAD; if (ENTREGAMAD IS NULL) then ENTREGAMAD=0; SELECT SUM(IPD.QTD) FROM PRODUTOSOEPD IPD WHERE IPD.CODITEMMOVIMENTO=:CODITEMMOV INTO :ENTREGAPD; if (ENTREGAPD IS NULL) then ENTREGAPD=0; QTDENTREGUE = ENTREGAMAD + ENTREGAPD; FALTAENTREGA = QTD - QTDENTREGUE; if (COMISSAO IS NULL) then VALORCOMISSAO =0; ELSE VALORCOMISSAO = (COMISSAO * TOTAL)/100; if (IPI >0 ) then TOTALIPI = IPI * ((QTD * VALOR)/100); ELSE TOTALIPI = 0; if (ICMS >0 ) then TOTALICMS = ICMS * ((QTD * VALOR)/100); ELSE TOTALICMS = 0; SELECT DM.DESCONTO, DM.TIPODESCONTO, DM.VALORMOVIMENTO FROM DADOSMOVIMENTO DM WHERE DM.CODMOVIMENTO=:CODMOVIMENTO INTO :TDESCONTOMOV, :TIPODESCONTOMOV, :TOTALMOV; DESCONTOMOV=0; if (TIPODESCONTOMOV='%') then DESCONTOMOV=TDESCONTOMOV; if (TIPODESCONTOMOV='$') then BEGIN DESCONTOMOV=(100 * TDESCONTOMOV)/ TOTALMOV; END if (DESCONTOMOV>0) then TOTALCOMDESCONTO = TOTAL - ((TOTAL * DESCONTOMOV)/100); ELSE TOTALCOMDESCONTO = NULL; suspend; END end ^ SET TERM ; ^ /*------ 26/06/2016 03:06:17 --------*/ CREATE TABLE VALORESPRODUTOS( CODVALORPROD CODIGO NOT NULL); /*------ 26/06/2016 03:06:17 --------*/ alter table VALORESPRODUTOS add primary key (CODVALORPROD); /*------ 26/06/2016 03:06:48 --------*/ ALTER TABLE VALORESPRODUTOS ADD CODPRODUTO INTEIRO_NOTNULL NOT NULL ; /*------ 26/06/2016 03:07:21 --------*/ ALTER TABLE VALORESPRODUTOS ADD DESCRICAO VARCHAR_30; /*------ 26/06/2016 03:08:04 --------*/ ALTER TABLE VALORESPRODUTOS ADD VALOR NUMERIC_10_5; COMMIT; /*------ 26/06/2016 03:12:40 --------*/ DROP TABLE VALORESPRODUTOS; /*------ 26/06/2016 03:13:05 --------*/ CREATE TABLE PRODUTOSVALORES( CODPRODVALOR CODIGO NOT NULL); /*------ 26/06/2016 03:13:05 --------*/ alter table PRODUTOSVALORES add primary key (CODPRODVALOR); /*------ 26/06/2016 03:13:44 --------*/ ALTER TABLE PRODUTOSVALORES ADD CODPRODUTO INTEIRO_NOTNULL NOT NULL ; /*------ 26/06/2016 03:14:01 --------*/ ALTER TABLE PRODUTOSVALORES ADD DESCRICAO VARCHAR_30; /*------ 26/06/2016 03:14:25 --------*/ ALTER TABLE PRODUTOSVALORES ADD VALOR NUMERIC_10_5; /*------ 26/06/2016 03:15:11 --------*/ CREATE GENERATOR GEN_PRODUTOSVALORES; /*------ 26/06/2016 03:15:11 --------*/ SET TERM ^ ; CREATE TRIGGER PRODUTOSVALORES_BI FOR PRODUTOSVALORES ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.CODPRODVALOR IS NULL OR NEW.CODPRODVALOR=0) THEN NEW.CODPRODVALOR = GEN_ID(GEN_PRODUTOSVALORES,1); END ^ SET TERM ; ^ /*------ 29/06/2016 11:56:24 --------*/ ALTER TABLE CLIENTES ADD CONTRIBUINTEICMS CHAR1; /*------ 30/06/2016 11:16:28 --------*/ ALTER TABLE UF ADD REGIAO VARCHAR_4;