# -------------------------------------------- # FICHEIRO GRAVADO COM O EDITOR DE RELATÓRIOS # da SOFTSEGURO, Lda v2010.1.7 # em 02-06-2010 / 17:08:05 # -------------------------------------------- # IGNORAR FILTRO DE ECRÃ (0 = NÃO, 1= SIM) #AI:0 # INFORMAÇÕES GERAIS #PT:RELAÓRIO DE DOCUMENTOS + IVA #PD:2005.04-20 #PN:99500 #PA:Augusto Cavaleiro #PR:Lista de Documento com Valor e Resumo de IVA # FICHEIRO COM AS CONFIGURAÇÕES DA IMPRESSORA (*.txt) #PI:IMPRESSORA # =========== BEGIN SQL ===================== #SL:#[ #SL:CREATE TABLE [[F]1]] ( DATADOC NVARCHAR(10), TIPODOC SMALLINT, IDDOC INTEGER, IDTIPO INTEGER, #SL:IDENT INTEGER, TIPOENT INTEGER, TIPOMOV INTEGER, ESTADO INTEGER, #SL:TOTDOC MONEY, TOTIVA MONEY, TOTMERC MONEY, #SL:TX1 MONEY, INC1 MONEY, VAL1 MONEY, TX2 MONEY, INC2 MONEY, VAL2 MONEY, #SL:TX3 MONEY, INC3 MONEY, VAL3 MONEY, TX4 MONEY, INC4 MONEY, VAL4 MONEY) #SL:]# #SL:#[ #SL:CREATE TABLE [[F]2]] ( DATADOC NVARCHAR(10), TIPODOC SMALLINT, IDDOC INTEGER, #SL:TXIVA MONEY, #SL:INCLIQUIDADO MONEY, IVALIQUIDADO MONEY, #SL:INCSUPORTADO MONEY, IVASUPORTADO MONEY, #SL:CTR INTEGER ) #SL:]# #SL:#[ /* DOCUMENTOS DE FACTURAÇÃO */ #SL:INSERT INTO [[F]1]] ( DATADOC, TIPODOC, IDDOC, IDTIPO, IDENT, TIPOENT, TIPOMOV, ESTADO, #SL:TOTDOC, TOTIVA, TOTMERC, #SL:TX1, INC1, VAL1, TX2, INC2, VAL2, TX3, INC3, VAL3, TX4, INC4, VAL4) #SL:SELECT DataEmiDocumento, 0 AS TIPO, IdDocumento, D.IdTipoDoc, IdEntidade, TipoDestDocumento, #SL:T.TipoCCDoc, Facturado, TOTDOC, TOTIVA, (TOTDOC - TOTIVA) AS TOTMERC, #SL:Iva1, IncIva1, ValIva1, Iva2, IncIva2, ValIva2, Iva3, IncIva3, ValIva3, Iva4, IncIva4, ValIva4 #SL:FROM SESSAO AS S #SL:INNER JOIN DOCUMENTO AS D ON S.IDSESSAO = D.IDSESSAO #SL:INNER JOIN ContaBanco As B ON S.IdCaixaSessao = B.IdContaB #SL:LEFT JOIN TipoDocumento as T On D.IdTipoDoc = T.IdTipoDoc #SL:WHERE [!d!DTINISESSAO:>=:Do Dia{P:1}] and [!d!DtIniSessao:<=:Ao Dia{P:1}] #SL:AND [!T!CodContaB:=:Do Caixa{P:3}] #SL:AND T.TipoCCDoc > 0 AND Facturado = 1 and TipoDestDocumento = 1 #SL:ORDER BY s.dtinisessao #SL:]# #SL:#[ /* IVA LIQUIDADO */ #SL:INSERT INTO [[F]2]] ( DATADOC, TIPODOC, IDDOC, TXIVA, INCLIQUIDADO, #SL:IVALIQUIDADO, INCSUPORTADO, IVASUPORTADO, CTR ) #SL:SELECT DATADOC, TIPODOC, IDDOC, TX1, #SL:CASE WHEN ( ( TIPOENT = 1 AND TIPOMOV IN (1,3 ) ) #SL: OR ( TIPOENT = 2 AND TIPOMOV IN (1, 4 ) ) ) THEN INC1 ELSE 0 END AS INCLIQ, #SL:CASE WHEN ( ( TIPOENT = 1 AND TIPOMOV IN (1,3 ) ) #SL: OR ( TIPOENT = 2 AND TIPOMOV IN (1, 4 ) ) ) THEN VAL1 ELSE 0 END AS IVALIQ, #SL:CASE WHEN ( ( TIPOENT = 1 AND TIPOMOV IN (2,4 ) ) #SL: OR ( TIPOENT = 2 AND TIPOMOV IN (2,3 ) ) ) THEN INC1 ELSE 0 END AS INCSUP, #SL:CASE WHEN ( ( TIPOENT = 1 AND TIPOMOV IN (2,4 ) ) #SL: OR ( TIPOENT = 2 AND TIPOMOV IN (2,3 ) ) ) THEN VAL1 ELSE 0 END AS IVASUP, #SL:0 AS CTX #SL:FROM [[F]1]] #SL:WHERE TX1 >= 0 #SL:]# #SL:#[ /* IVA LIQUIDADO */ #SL:INSERT INTO [[F]2]] ( DATADOC, TIPODOC, IDDOC, TXIVA, INCLIQUIDADO, #SL:IVALIQUIDADO, INCSUPORTADO, IVASUPORTADO, CTR ) #SL:SELECT DATADOC, TIPODOC, IDDOC, TX2, #SL:CASE WHEN ( ( TIPOENT = 1 AND TIPOMOV IN (1,3 ) ) #SL: OR ( TIPOENT = 2 AND TIPOMOV IN (1, 4 ) ) ) THEN INC2 ELSE 0 END AS INCLIQ, #SL:CASE WHEN ( ( TIPOENT = 1 AND TIPOMOV IN (1,3 ) ) #SL: OR ( TIPOENT = 2 AND TIPOMOV IN (1, 4 ) ) ) THEN VAL2 ELSE 0 END AS IVALIQ, #SL:CASE WHEN ( ( TIPOENT = 1 AND TIPOMOV IN (2,4 ) ) #SL: OR ( TIPOENT = 2 AND TIPOMOV IN (2,3 ) ) ) THEN INC2 ELSE 0 END AS INCSUP, #SL:CASE WHEN ( ( TIPOENT = 1 AND TIPOMOV IN (2,4 ) ) #SL: OR ( TIPOENT = 2 AND TIPOMOV IN (2,3 ) ) ) THEN VAL2 ELSE 0 END AS IVASUP, #SL:0 AS CTX #SL:FROM [[F]1]] #SL:WHERE TX2 >= 0 #SL:]# #SL:#[ /* IVA LIQUIDADO */ #SL:INSERT INTO [[F]2]] ( DATADOC, TIPODOC, IDDOC, TXIVA, INCLIQUIDADO, #SL:IVALIQUIDADO, INCSUPORTADO, IVASUPORTADO, CTR ) #SL:SELECT DATADOC, TIPODOC, IDDOC, TX3, #SL:CASE WHEN ( ( TIPOENT = 1 AND TIPOMOV IN (1,3 ) ) #SL: OR ( TIPOENT = 2 AND TIPOMOV IN (1, 4 ) ) ) THEN INC3 ELSE 0 END AS INCLIQ, #SL:CASE WHEN ( ( TIPOENT = 1 AND TIPOMOV IN (1,3 ) ) #SL: OR ( TIPOENT = 2 AND TIPOMOV IN (1, 4 ) ) ) THEN VAL3 ELSE 0 END AS IVALIQ, #SL:CASE WHEN ( ( TIPOENT = 1 AND TIPOMOV IN (2,4 ) ) #SL: OR ( TIPOENT = 2 AND TIPOMOV IN (2,3 ) ) ) THEN INC3 ELSE 0 END AS INCSUP, #SL:CASE WHEN ( ( TIPOENT = 1 AND TIPOMOV IN (2,4 ) ) #SL: OR ( TIPOENT = 2 AND TIPOMOV IN (2,3 ) ) ) THEN VAL3 ELSE 0 END AS IVASUP, #SL:0 AS CTX #SL:FROM [[F]1]] #SL:WHERE TX3 >= 0 #SL:]# #SL:#[ /* IVA LIQUIDADO */ #SL:INSERT INTO [[F]2]] ( DATADOC, TIPODOC, IDDOC, TXIVA, INCLIQUIDADO, #SL:IVALIQUIDADO, INCSUPORTADO, IVASUPORTADO, CTR ) #SL:SELECT DATADOC, TIPODOC, IDDOC, TX4, #SL:CASE WHEN ( ( TIPOENT = 1 AND TIPOMOV IN (1,3 ) ) #SL: OR ( TIPOENT = 2 AND TIPOMOV IN (1, 4 ) ) ) THEN INC4 ELSE 0 END AS INCLIQ, #SL:CASE WHEN ( ( TIPOENT = 1 AND TIPOMOV IN (1,3 ) ) #SL: OR ( TIPOENT = 2 AND TIPOMOV IN (1, 4 ) ) ) THEN VAL4 ELSE 0 END AS IVALIQ, #SL:CASE WHEN ( ( TIPOENT = 1 AND TIPOMOV IN (2,4 ) ) #SL: OR ( TIPOENT = 2 AND TIPOMOV IN (2,3 ) ) ) THEN INC4 ELSE 0 END AS INCSUP, #SL:CASE WHEN ( ( TIPOENT = 1 AND TIPOMOV IN (2,4 ) ) #SL: OR ( TIPOENT = 2 AND TIPOMOV IN (2,3 ) ) ) THEN VAL4 ELSE 0 END AS IVASUP, #SL:0 AS CTX #SL:FROM [[F]1]] #SL:WHERE TX4 >= 0 #SL:]# #SL:#[ /* UMA LINHA POR DOCUMENTO E POR TAXA DE IVA */ #SL:INSERT INTO [[F]2]] ( DATADOC, TIPODOC, IDDOC, TXIVA, INCLIQUIDADO, #SL:IVALIQUIDADO, INCSUPORTADO, IVASUPORTADO, CTR) #SL:SELECT DATADOC, TIPODOC AS TD, IDDOC AS IDD, TXIVA, #SL:SUM(INCLIQUIDADO) AS S1, SUM(IVALIQUIDADO) AS S2, #SL:SUM(INCSUPORTADO) AS S3, SUM(IVASUPORTADO) AS S4, #SL:MAX(1) AS SCTR #SL:FROM [[F]2]] #SL:GROUP BY DATADOC, TIPODOC, IDDOC, TXIVA #SL:]# #SL:#[ /* LIMPAR DETALHES DE APOIO AOS CALCULOS */ #SL:DELETE FROM [[F]2]] WHERE CTR = 0 #SL:]# #SL:#[ /* CRIAR COLUNA PARA INDICAR TIPO DE DOCUMENTO IVA SUPORTADO OU LIQUIDADO */ #SL:ALTER TABLE [[F]2]] ADD IDR INTEGER; #SL:]# #SL:#[ /* PASSAR SUPORTADO PARA AS COLUNAS LIQUIDADO */ #SL:UPDATE [[F]2]] SET IDR = 1; #SL:UPDATE [[F]2]] SET IDR = 2, IVALIQUIDADO = IVASUPORTADO, INCLIQUIDADO = INCSUPORTADO #SL:WHERE IVASUPORTADO > 0 ; #SL:]# #SL: #SL:#[ /* RESUMO GLOBAL DAS TAXAS DO PERÍODO INDICADO */ #SL:CREATE VIEW [[F]3]] AS #SL:SELECT IDR, #SL:'Isento/0%' AS Tx0, #SL:'Red. - ' + CASE WHEN '{Do Dia}' < '2010-07-01' THEN '5%' ELSE '6%' END AS Tx1, #SL:'Int. - ' + CASE WHEN '{Do Dia}' < '2010-07-01' THEN '12%' ELSE '13%' END AS Tx2, #SL:'Nor. - ' + CASE WHEN '{Do Dia}' < '2010-07-01' THEN '20%' ELSE '21%' END AS Tx3, #SL:'Invalidas' AS Tx4, #SL:SUM(INCLIQUIDADO+IVALIQUIDADO) AS TOTLIQUIDADO, #SL:SUM(INCLIQUIDADO) AS TOTINCIDENCIA, #SL:SUM(IVALIQUIDADO) AS TOTIVA, #SL:SUM(CASE WHEN ( ( TXIVA = 20 AND '{Do Dia}' < '2010-07-01' ) OR ( TXIVA = 21 AND '{Do Dia}' >= '2010-07-01' ) ) #SL:AND INCLIQUIDADO > 0 THEN INCLIQUIDADO ELSE 0 END) INCLIQ_NOR, #SL:SUM(CASE WHEN ( ( TXIVA = 20 AND '{Do Dia}' < '2010-07-01' ) OR ( TXIVA = 21 AND '{Do Dia}' >= '2010-07-01' ) ) #SL:AND IVALIQUIDADO > 0 THEN IVALIQUIDADO ELSE 0 END) IVALIQ_NOR, #SL:SUM(CASE WHEN ( ( TXIVA = 12 AND '{Do Dia}' < '2010-07-01' ) OR ( TXIVA = 13 AND '{Do Dia}' >= '2010-07-01' ) ) #SL:AND INCLIQUIDADO > 0 THEN INCLIQUIDADO ELSE 0 END) INCLIQ_INT, #SL:SUM(CASE WHEN ( ( TXIVA = 12 AND '{Do Dia}' < '2010-07-01' ) OR ( TXIVA = 13 AND '{Do Dia}' >= '2010-07-01' ) ) #SL:AND IVALIQUIDADO > 0 THEN IVALIQUIDADO ELSE 0 END) IVALIQ_INT, #SL:SUM(CASE WHEN ( ( TXIVA = 5 AND '{Do Dia}' < '2010-07-01' ) OR ( TXIVA = 6 AND '{Do Dia}' >= '2010-07-01' ) ) #SL:AND INCLIQUIDADO > 0 THEN INCLIQUIDADO ELSE 0 END) INCLIQ_RED, #SL:SUM(CASE WHEN ( ( TXIVA = 5 AND '{Do Dia}' < '2010-07-01' ) OR ( TXIVA = 6 AND '{Do Dia}' >= '2010-07-01' ) ) #SL:AND IVALIQUIDADO > 0 THEN IVALIQUIDADO ELSE 0 END) IVALIQ_RED, #SL:SUM(CASE WHEN TXIVA = 0 #SL:AND INCLIQUIDADO > 0 THEN INCLIQUIDADO ELSE 0 END) INCLIQ_ISE, #SL:SUM(CASE WHEN TXIVA = 0 #SL:AND IVALIQUIDADO > 0 THEN IVALIQUIDADO ELSE 0 END) IVALIQ_ISE, #SL: #SL:SUM( CASE WHEN ( ( TXIVA NOT IN ( 20, 12, 5, 0 ) AND '{Do Dia}' < '2010-07-01' ) #SL: OR ( TXIVA NOT IN ( 21, 13, 5, 0 ) AND '{Do Dia}' >= '2010-07-01' ) ) #SL:AND INCLIQUIDADO > 0 THEN INCLIQUIDADO ELSE 0 END ) INCLIQ_ERR, #SL: #SL:SUM(CASE WHEN ( ( TXIVA NOT IN ( 20, 12, 5, 0 ) AND '{Do Dia}' < '2010-07-01' ) #SL: OR ( TXIVA NOT IN ( 21, 13, 5, 0 ) AND '{Do Dia}' >= '2010-07-01' ) ) #SL:AND IVALIQUIDADO > 0 THEN IVALIQUIDADO ELSE 0 END) IVALIQ_ERR #SL:FROM [[F]2]] AS Z #SL:GROUP BY IDR #SL:]# #SL: #SL:#[ /* RESUMO POR DOCUMENTO DESTA SESSÃO */ #SL:CREATE VIEW [[F]4]] AS #SL:SELECT IDR, IDDOC #SL:FROM [[F]2]] AS Z #SL:GROUP BY IDR, IDDOC #SL:]# #SL: #SL:SELECT D.TXTNUMDOCUMENTO, TOTDOC, '{Do Caixa}' AS DOCAIXA, #SL:CASE WHEN L.IDR = 1 THEN 'VENDAS' ELSE 'DEVOLUCOES' END AS GRUPODOC, #SL:CASE WHEN '{Do Dia}' = '{Ao Dia}' THEN 'Do Dia ' + '{Do Dia}' #SL:ELSE 'Do Dia ' + '{Do Dia}' + ' ao ' + '{Ao Dia}' END as PERIODO, T.*, #SL:IVALIQ_ISE + INCLIQ_ISE AS TOTLIQ_ISE, #SL:IVALIQ_RED + INCLIQ_RED AS TOTLIQ_RED, #SL:IVALIQ_INT + INCLIQ_INT AS TOTLIQ_INT, #SL:IVALIQ_NOR + INCLIQ_NOR AS TOTLIQ_NOR, #SL:IVALIQ_ERR + INCLIQ_ERR AS TOTLIQ_ERR #SL:FROM [[F]4]] AS L #SL:INNER JOIN [[F]3]] AS T ON L.IDR = T.IDR #SL:INNER JOIN DOCUMENTO AS D ON L.IDDOC = D.IDDOCUMENTO #SL:ORDER BY L.IDR, TXTNUMDOCUMENTO #SL: #SL: #SL: #SL: #SL: # =========== END SQL ===================== # =========== CABEÇALHO ==================== #C0:«[RESET]»«0:E01:E:40» #C0:======================================== #C0:CAIXA:«C:DOCAIXA:E:5» «C:PERIODO:c:28» # =========== END CABEÇALHO ==================== # === COLUNA DO GRUPO Nº 1 #H1:IDR # === TOTALIZADORES GLOBAIS # === TOTALIZADORES DO GRUPO 1 # === TOTALIZADORES DO GRUPO 2 # === TOTALIZADORES DO GRUPO 3 # =========== CAB GRUPO 1==================== #G1:======================================== #G1:«C:GRUPODOC:C:40» #G1:---------------------------------------- # =========== END CAB GRUPO 1==================== # =========== LINHAS DA LISTAGEM ==================== #L0:«C:TXTNUMDOCUMENTO:E:29» «C:TOTDOC:D:10:#,##0.00» # =========== END LINHAS DA LISTAGEM =================== # =========== RODAPE GRUPO 1==================== #F1:---------------------------------------- #F1:TAXA Incidencia IVA Total #F1:---------------------------------------- #F1:«c:Tx0:E:12» «N:INCLIQ_ISE:D:9:#,##0.00»«N:IVALIQ_ISE:D:8:#,##0.00» «N:TOTLIQ_ISE:D:9:#,##0.00» #F1:«c:Tx1:E:12» «N:INCLIQ_RED:D:9:#,##0.00»«N:IVALIQ_RED:D:8:#,##0.00» «N:TOTLIQ_RED:D:9:#,##0.00» #F1:«c:Tx2:E:12» «N:INCLIQ_INT:D:9:#,##0.00»«N:IVALIQ_INT:D:8:#,##0.00» «N:TOTLIQ_INT:D:9:#,##0.00» #F1:«c:Tx3:E:12» «N:INCLIQ_NOR:D:9:#,##0.00»«N:IVALIQ_NOR:D:8:#,##0.00» «N:TOTLIQ_NOR:D:9:#,##0.00» #F1:«c:Tx4:E:12» «N:INCLIQ_ERR:D:9:#,##0.00»«N:IVALIQ_ERR:D:8:#,##0.00» «N:TOTLIQ_ERR:D:9:#,##0.00» #F1:---------------------------------------- #F1:TOTAL: «N:TOTINCIDENCIA:D:9:#,##0.00»«N:TOTIVA:D:8:#,##0.00» «N:TOTLIQUIDADO:D:9:#,##0.00» # =========== END RODAPE GRUPO 1==================== # =========== RODAPÉ ==================== #R0:Emitida em «0:D01:E:10» - «0:H01:E:10» #R0:«[ESP4]» #R0:«[ESP3]» # =========== END RODAPÉ ====================