# -------------------------------------------- # FICHEIRO GRAVADO COM O EDITOR DE RELATÓRIOS # da SOFTSEGURO, Lda v2010.1.7 # em 02-06-2010 / 18:30:30 # -------------------------------------------- # IGNORAR FILTRO DE ECRÃ (0 = NÃO, 1= SIM) #AI:0 # INFORMAÇÕES GERAIS #PT:MAPA MENSAL DE IVA #PD:2010.06.02 #PN:TESTE #PA:Augusto Cavaleiro #PR:Alteração de IVA em 2010-07-01 # 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:#[ #SL:CREATE TABLE [[F]2]] ( ID INTEGER, Tipo Integer, 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: #SL:#[ /* ... */ #SL:DELETE FROM [[F]2]] #SL:WHERE [!d!'':>=:Do Dia{P:4}] and [!d!'':<=:Ao Dia{P:5}] #SL:]# #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 DOCUMENTO AS D #SL:LEFT JOIN TipoDocumento as T On D.IdTipoDoc = T.IdTipoDoc #SL:WHERE [!d!DataEmiDocumento:>=:Do Dia{P:4}] and [!d!DataEmiDocumento:<=:Ao Dia{P:5}] #SL:AND T.TipoCCDoc > 0 AND Facturado = 1 and TipoDestDocumento = 1 #SL:ORDER BY DataEmiDocumento #SL:]# #SL: #SL:#[ /* ACERTA ESTADO DE CC COM DOCUMENTO */ #SL:UPDATE [[F]1]] SET ESTADO = 0 WHERE ESTADO < 0 AND TIPODOC = 1 #SL:]# #SL:#[ /* ACERTA ESTADO DE CC COM DOCUMENTO */ #SL:UPDATE [[F]1]] SET ESTADO = 1 WHERE ESTADO >= 0 AND TIPODOC = 1 #SL:]# #SL:#[ /* MARCAR DOCUMENTOS EM ABERTO */ #SL:UPDATE [[F]1]] SET TX1 = -1, TX2 =-1, TX3 =-1, TX4 = -1 WHERE ESTADO <> 1 #SL:]# #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: #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: #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: #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: #SL:#[ #SL:UPDATE [[F]2]] SET Tipo = 0; #SL:UPDATE [[F]2]] SET Tipo = 1 WHERE IvaSuportado > 0; #SL:INSERT INTO [[F]2]] ( Tipo, DATADOC, TIPODOC, IDDOC, TXIVA, INCLIQUIDADO, #SL:IVALIQUIDADO, INCSUPORTADO, IVASUPORTADO, CTR) #SL:SELECT Tipo, DATADOC, MAX(0) AS TD, MAX(0) 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, TXIVA, Tipo #SL:]# #SL: #SL:#[ #SL:DELETE FROM [[F]2]] WHERE CTR = 0; #SL:UPDATE [[F]2]] SET ID = 0; #SL:]# #SL: #SL:#[ /* SELECT BASE */ #SL:CREATE VIEW [[F]3]] AS #SL:SELECT ID, Tipo, #SL:SUM ( CASE WHEN ( (TXIVA = 21 AND '{Do Dia}' >= '2010-07-01' ) OR ( TXIVA = 20 AND '{Do Dia}' < '2010-07-01' ) ) #SL: THEN INCLIQUIDADO - INCSUPORTADO ELSE 0 END) AS INCLIQ_NOR, #SL:SUM( CASE WHEN ( (TXIVA = 21 AND '{Do Dia}' >= '2010-07-01' ) OR ( TXIVA = 20 AND '{Do Dia}' < '2010-07-01' ) ) #SL: THEN IVALIQUIDADO - IVASUPORTADO ELSE 0 END ) AS IVALIQ_NOR, #SL:SUM ( CASE WHEN ( (TXIVA = 13 AND '{Do Dia}' >= '2010-07-01' ) OR ( TXIVA = 12 AND '{Do Dia}' < '2010-07-01' ) ) #SL: THEN INCLIQUIDADO - INCSUPORTADO ELSE 0 END ) INCLIQ_INT, #SL:SUM ( CASE WHEN ( (TXIVA = 13 AND '{Do Dia}' >= '2010-07-01' ) OR ( TXIVA = 12 AND '{Do Dia}' < '2010-07-01' ) ) #SL: THEN IVALIQUIDADO - IVASUPORTADO ELSE 0 END ) AS IVALIQ_INT, #SL:SUM( CASE WHEN ( (TXIVA = 6 AND '{Do Dia}' >= '2010-07-01' ) OR ( TXIVA = 5 AND '{Do Dia}' < '2010-07-01' ) ) #SL: THEN INCLIQUIDADO - INCSUPORTADO ELSE 0 END) AS INCLIQ_RED, #SL:SUM( CASE WHEN ( (TXIVA = 6 AND '{Do Dia}' >= '2010-07-01' ) OR ( TXIVA = 5 AND '{Do Dia}' < '2010-07-01' ) ) #SL: THEN IVALIQUIDADO - IVASUPORTADO ELSE 0 END ) AS IVALIQ_RED, #SL:SUM( CASE WHEN TXIVA = 0 #SL: THEN INCLIQUIDADO - INCSUPORTADO ELSE 0 END ) AS INCLIQ_ISE, #SL:SUM( CASE WHEN TXIVA = 0 #SL: THEN IVALIQUIDADO - IVASUPORTADO ELSE 0 END ) AS IVALIQ_ISE, #SL:SUM( CASE WHEN ( TXIVA NOT IN (20,12,5,0) AND '{Do Dia}' < '2010-07-01' ) #SL: OR ( TXIVA NOT IN (21,13,6,0) AND '{Do Dia}' >= '2010-07-01' ) #SL: THEN INCLIQUIDADO - INCSUPORTADO ELSE 0 END ) AS INCLIQ_ERR, #SL:SUM( CASE WHEN ( TXIVA NOT IN (20,12,5,0) AND '{Do Dia}' < '2010-07-01' ) #SL: OR ( TXIVA NOT IN (21,13,6,0) AND '{Do Dia}' >= '2010-07-01' ) #SL: THEN IVALIQUIDADO - IVASUPORTADO ELSE 0 END ) AS IVALIQ_ERR #SL:FROM [[F]2]] AS Z #SL:GROUP BY ID, Tipo #SL:]# #SL: #SL: #SL:SELECT Id + Tipo As GRP, *, #SL:'Isento/0%' AS TX0, #SL:'Red. - ' + CASE WHEN '{Do Dia}' >= '2010-07-01' THEN '6%' ELSE '5%' END AS TX1, #SL:'Int. - ' + CASE WHEN '{Do Dia}' >= '2010-07-01' THEN '13%' ELSE '12%' END AS TX2, #SL:'Nor. - ' + CASE WHEN '{Do Dia}' >= '2010-07-01' THEN '21%' ELSE '20%' END AS TX3, #SL:'Invalida' AS TX4, CASE Tipo WHEN 0 THEN 'VENDAS' else 'DEVOLUÇÕES' END AS GRUPO #SL:FROM ( #SL:SELECT Z.*, '{Do Dia}' as DataIni, '{Ao Dia}' as DataFim, #SL:INCLIQUIDADO - INCSUPORTADO + IVALIQUIDADO - IVASUPORTADO AS TOTLIQUIDADO, #SL:INCLIQUIDADO - INCSUPORTADO AS INCLINHA, #SL:IVALIQUIDADO - IVASUPORTADO AS IVALINHA, #SL:INCLIQ_ISE, INCLIQ_RED, INCLIQ_INT, INCLIQ_NOR, INCLIQ_ERR, #SL:IVALIQ_ISE, IVALIQ_RED, IVALIQ_INT, IVALIQ_NOR, IVALIQ_ERR #SL:FROM [[F]2]] AS Z #SL:INNER JOIN [[F]3]] AS R ON Z.ID = R.ID AND Z.Tipo = R.Tipo ) AS M #SL:ORDER BY Tipo, DATADOC, TXIVA #SL: #SL: #SL: #SL: #SL: #SL: #SL: #SL: #SL: #SL: #SL: #SL: #SL: #SL: # =========== END SQL ===================== # =========== CABEÇALHO ==================== #C0:«[RESET]»«0:E01:E:40» #C0:======================================== #C0: M A P A D E I V A #C0:======================================== #C0: De «C:DataIni:E:10:""dd-MM-yyyy» a «C:DataFim:E:10:""dd-MM-YYYY» # =========== END CABEÇALHO ==================== # === COLUNA DO GRUPO Nº 1 #H1:GRP # === TOTALIZADORES GLOBAIS #TT:INCLINHA #TT:IVALINHA #TT:TOTLIQUIDADO # === TOTALIZADORES DO GRUPO 1 # === TOTALIZADORES DO GRUPO 2 # === TOTALIZADORES DO GRUPO 3 # =========== CAB GRUPO 1==================== #G1:---------------------------------------- #G1:«C:GRUPO:C:40» #G1:---------------------------------------- #G1: Dia Tx. Inc.Merc IVA Total #G1:---------------------------------------- # =========== END CAB GRUPO 1==================== # =========== LINHAS DA LISTAGEM ==================== #L0:«C:DataDoc:E:6:dd MMM» «N:TxIVA:D:2:#0»% «N:INCLINHA:D:9:#,##0.00» «N:IVALINHA:D:8:#,##0.00» «N:TOTLIQUIDADO:D:10:#,##0.00» # =========== END LINHAS DA LISTAGEM =================== # =========== RODAPE GRUPO 1==================== #F1:---------------------------------------- #F1: RESUMO POR TAXA DE IVA #F1: #F1: Taxa Incidencia IVA #F1:---------------------------------------- #F1:«[4]»«C:TX0:E:12»:«N:INCLIQ_ISE:D:11:#,##0.00» «N:IVALIQ_ISE:D:9:#,##0.00» #F1:«[4]»«C:TX1:E:12»:«N:INCLIQ_RED:D:11:#,##0.00» «N:IVALIQ_RED:D:9:#,##0.00» #F1:«[4]»«C:TX2:E:12»:«N:INCLIQ_INT:D:11:#,##0.00» «N:IVALIQ_INT:D:9:#,##0.00» #F1:«[4]»«C:TX3:E:12»:«N:INCLIQ_NOR:D:11:#,##0.00» «N:IVALIQ_NOR:D:9:#,##0.00» #F1:«[4]»«C:TX4:E:12»:«N:INCLIQ_ERR:D:11:#,##0.00» «N:IVALIQ_ERR:D:9:#,##0.00» # =========== END RODAPE GRUPO 1==================== # =========== RODAPÉ ==================== #R0:======================================== #R0: R E S U M O D O P E R I O D O #R0:---------------------------------------- #R0: Incidencia Iva Total #R0:TOTAIS: «0:t01:D:8:#,##0.00» «0:t02:D:7:###0.00» «0:t03:D:9:#,##0.00» #R0:======================================== #R0:Emitida em «0:D01:E:10» #R0:«[ESP4]» #R0:«[ESP3]» # =========== END RODAPÉ ====================