-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlivrofechamentocaixa.sql
201 lines (172 loc) · 8.66 KB
/
livrofechamentocaixa.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
/*{**************************************************************************
PROGRAMA LEOPARD DATABSE FIREBIRD - VERSAO 2.5.XX
ANALISTA: CARLOS A DIAS DA S.
DATA.: 08/07/2021
OBJETIVO: CALCULA E EXTRAI INFORMAÇÕES PARAO LIVRO DE MOVIMENTAÇÕES DE CAIXA
SOBRE.:
*************************************************************************}*/
SET SQL DIALECT 3;
SET TERM ^ ;
CREATE OR ALTER TRIGGER LIVROABERTURA_AIU1 FOR LIVROABERTURA
ACTIVE AFTER INSERT OR UPDATE POSITION 1
AS
DECLARE VARIABLE EMITIDO VARCHAR(10);
DECLARE VARIABLE CANCELADO VARCHAR(10);
DECLARE VARIABLE PENDENTE VARCHAR(10);
DECLARE VARIABLE VENDAABERTA VARCHAR(10);
DECLARE VARIABLE VENDACANCELADA VARCHAR(10);
DECLARE VARIABLE VENDAFECHADA VARCHAR(10);
DECLARE VARIABLE VENDAESTORNADA VARCHAR(10);
DECLARE VARIABLE ALIQICMS07 NUMERIC(15,2);
DECLARE VARIABLE ALIQICMS12 NUMERIC(15,2);
DECLARE VARIABLE ALIQICMS18 NUMERIC(15,2);
DECLARE VARIABLE ALIQICMS25 NUMERIC(15,2);
DECLARE VARIABLE FQTDACIONAMENTOGV INTEGER;
DECLARE VARIABLE FCX26DINHEIROGV NUMERIC( 15,2 );
DECLARE VARIABLE FL004VSUPCAIXA NUMERIC( 15,2 );
DECLARE VARIABLE FL005VSANGRIAS NUMERIC( 15,2 );
DECLARE VARIABLE FL006VCANC NUMERIC( 15,2 );
DECLARE VARIABLE FVLCANC NUMERIC( 15,2 );
DECLARE VARIABLE FVLVENDASFECHADAS NUMERIC( 15,2 );
DECLARE VARIABLE FVLVENDASESTORNADAS NUMERIC( 15,2 );
DECLARE VARIABLE FTOTALBRUTO NUMERIC( 15,2 );
DECLARE VARIABLE FQTDCANC INTEGER;
DECLARE VARIABLE FDESCONTOS NUMERIC( 15,2 );
DECLARE VARIABLE FDESCONTOSITENS NUMERIC( 15,2 );
DECLARE VARIABLE FDESCONTOSTOTAIS NUMERIC( 15,2 );
DECLARE VARIABLE FACRESCIMOS NUMERIC( 15,2 );
DECLARE VARIABLE FL12VACRESC NUMERIC( 15,2 );
DECLARE VARIABLE FL13VLVENDASLIQUIDA NUMERIC( 15,2 );
DECLARE VARIABLE FL15VTOTALFISCALCANC NUMERIC( 15,2 );
DECLARE VARIABLE FL14VTOTALFISCALBRUTO NUMERIC( 15,2 );
DECLARE VARIABLE FL16VTOTALFISCALLIQ NUMERIC( 15,2 );
DECLARE VARIABLE FL17VOLVENDASLIQ INTEGER;
DECLARE VARIABLE FL18VOLFISCAL INTEGER;
DECLARE VARIABLE FL19VOLESTORNADO INTEGER;
DECLARE VARIABLE FL20VOLCANCELADO INTEGER;
DECLARE VARIABLE FL21VOLFISCALCANC INTEGER;
DECLARE VARIABLE FL22VOLPRODVEND NUMERIC( 15,4 );
DECLARE VARIABLE FL24TOCICMS07 NUMERIC( 15,4 );
DECLARE VARIABLE FL25TOTICMS12 NUMERIC( 15,4 );
DECLARE VARIABLE FL23TOTICMS18 NUMERIC( 15,4 );
DECLARE VARIABLE FL24TOTICMS25 NUMERIC( 15,4 );
DECLARE VARIABLE FL25TOTF1 NUMERIC( 15,4 );
DECLARE VARIABLE FL26TOTI1 NUMERIC( 15,4 );
DECLARE VARIABLE FL27TOTN1 NUMERIC( 15,4 );
DECLARE VARIABLE FL28TMOVDINHEIRO NUMERIC( 15,4 );
DECLARE VARIABLE FL29TOTALMOVCDEBITO NUMERIC( 15,4 );
BEGIN
EMITIDO = 'EMITIDO';
CANCELADO = 'CANCELADO';
PENDENTE = 'PENDENTE';
VENDAABERTA = 'ABERTA';
VENDACANCELADA = 'CANCELADA';
VENDAFECHADA = 'FECHADA';
VENDAESTORNADA = 'ESTORNADA';
ALIQICMS07 = 7.00;
ALIQICMS12 = 12.00;
ALIQICMS18 = 18.00;
ALIQICMS25 = 25.00;
IF (UPDATING) THEN
BEGIN
SELECT C.CX14QTDACGV,C.CX26DINHEIROGV,C.CX06FSUP,C.CX07FSANG
FROM CAIXAFECHAMENTO C
WHERE C.CX01ABID = NEW.NROMOV
INTO :FQTDACIONAMENTOGV,
:FCX26DINHEIROGV,
:FL004VSUPCAIXA,
:FL005VSANGRIAS;
SELECT
SUM( IIF( VV.VENDA_SITUACAO = :VENDACANCELADA, VV.VENDA_VALORTOTAL,0) ),
SUM( IIF( VV.VENDA_SITUACAO = :VENDAFECHADA, VV.VENDA_VALORTOTAL,0) ),
SUM( IIF( VV.VENDA_SITUACAO = :VENDAESTORNADA, VV.VENDA_VALORTOTAL,0) ),
COUNT( IIF( VV.VENDA_SITUACAO = :VENDACANCELADA, VV.ID,0) ),
SUM( IIF( VV.VENDA_SITUACAO = :VENDAFECHADA, VV.VENDA_DESCONTOS + VV.VENDA_DESCONTOSUBTOTAL,0) ),
MAX( ( SELECT SUM( II.ITENS_DESCVL ) FROM ITENSVENDA_REPLY II
WHERE II.VENDA_NUMERO = VV.VENDA_NUMERO AND VV.VENDA_SITUACAO = 'FECHADA' ) ),
SUM( IIF( VV.VENDA_SITUACAO = :VENDAFECHADA, VV.venda_acrescimos,0) ),
SUM( IIF( VV.SAT_SITEMISS <> :PENDENTE, VV.VENDA_VALORTOTAL,0) ),
SUM( IIF( VV.SAT_SITEMISS = :CANCELADO, VV.VENDA_VALORTOTAL,0) ),
SUM( IIF( VV.SAT_SITEMISS = :EMITIDO, VV.VENDA_VALORTOTAL,0) ),
COUNT( IIF( VV.VENDA_SITUACAO = :VENDAFECHADA, VV.ID,0) ),
COUNT( IIF( VV.SAT_SITEMISS = :EMITIDO, VV.VENDA_VALORTOTAL,0) ),
COUNT( IIF( VV.VENDA_SITUACAO = :VENDAESTORNADA, VV.ID,0) ),
COUNT( IIF( VV.VENDA_SITUACAO = :VENDACANCELADA, VV.ID,0) ),
COUNT( IIF( VV.SAT_SITEMISS = :CANCELADO, VV.VENDA_VALORTOTAL,0) ),
MAX( ( SELECT SUM( II.ITENS_QUANTIDADE ) FROM ITENSVENDA_REPLY II
WHERE II.VENDA_NUMERO = VV.VENDA_NUMERO AND VV.VENDA_SITUACAO = :VENDAFECHADA ) ),
COALESCE( MAX( ( SELECT SUM(II.ITENS_TOTAL) FROM ITENSVENDA_REPLY II
WHERE II.VENDA_NUMERO = VV.VENDA_NUMERO AND VV.SAT_SITEMISS = :EMITIDO
AND II.IMPOSTO_ICMSPICMS = :ALIQICMS07 )),0.00),
COALESCE(MAX( ( SELECT SUM(II.ITENS_TOTAL ) FROM ITENSVENDA_REPLY II
WHERE II.VENDA_NUMERO = VV.VENDA_NUMERO AND VV.SAT_SITEMISS = :EMITIDO
AND II.IMPOSTO_ICMSPICMS = :ALIQICMS12 )),0.00),
COALESCE(MAX( ( SELECT SUM(II.ITENS_TOTAL ) FROM ITENSVENDA_REPLY II
WHERE II.VENDA_NUMERO = VV.VENDA_NUMERO AND VV.SAT_SITEMISS = :EMITIDO
AND II.IMPOSTO_ICMSPICMS = :ALIQICMS18 )),0.00),
COALESCE(MAX( ( SELECT SUM(II.ITENS_TOTAL) FROM ITENSVENDA_REPLY II
WHERE II.VENDA_NUMERO = VV.VENDA_NUMERO AND VV.SAT_SITEMISS = :EMITIDO
AND II.IMPOSTO_ICMSPICMS = :ALIQICMS25 )),0.00),
COALESCE(MAX( ( SELECT SUM(II.ITENS_TOTAL) FROM ITENSVENDA_REPLY II
WHERE II.VENDA_NUMERO = VV.VENDA_NUMERO AND VV.SAT_SITEMISS = :EMITIDO
AND II.IMPOSTO_ICMSCST IN ( '10','30','60','70','010','030','060','070','201','202','203','500' ) )),0.00),
COALESCE(MAX( ( SELECT SUM(II.ITENS_TOTAL) FROM ITENSVENDA_REPLY II
WHERE II.VENDA_NUMERO = VV.VENDA_NUMERO AND VV.SAT_SITEMISS = :EMITIDO
AND II.IMPOSTO_ICMSCST IN ( '40','400','103' ) )),0.00),
COALESCE(MAX( ( SELECT SUM(II.ITENS_TOTAL) FROM ITENSVENDA_REPLY II
WHERE II.VENDA_NUMERO = VV.VENDA_NUMERO AND VV.SAT_SITEMISS = :EMITIDO
AND II.IMPOSTO_ICMSCST IN ( '41','300','203' ) )),0.00),
MAX(( SELECT SUM( FN.VALOR_RECEBIDO ) FROM VENDA_PAGFINALREPLY
FN WHERE FN.IDCAIXA = VV.CAIXA_ID AND VV.VENDA_SITUACAO = :VENDAFECHADA AND FN.INDICE_SAT = 1 )),
MAX(( SELECT SUM( FN.VALOR_RECEBIDO ) FROM VENDA_PAGFINALREPLY
FN WHERE FN.IDCAIXA = VV.CAIXA_ID AND VV.VENDA_SITUACAO = :VENDAFECHADA AND FN.INDICE_SAT = 4 ))
FROM VENDA_REPLY VV WHERE VV.CAIXA_ID = NEW.NROMOV
INTO :FVLCANC,
:FVLVENDASFECHADAS,
:FVLVENDASESTORNADAS,
:FQTDCANC,
:FDESCONTOS,
:FDESCONTOSITENS,
:FL12VACRESC,
:FL14VTOTALFISCALBRUTO,
:FL15VTOTALFISCALCANC,
:FL16VTOTALFISCALLIQ,
:FL17VOLVENDASLIQ,
:FL18VOLFISCAL,
:FL19VOLESTORNADO,
:FL20VOLCANCELADO,
:FL21VOLFISCALCANC,
:FL22VOLPRODVEND,
:FL24TOCICMS07,
:FL25TOTICMS12,
:FL23TOTICMS18,
:FL24TOTICMS25,
:FL25TOTF1,
:FL26TOTI1,
:FL27TOTN1,
:FL28TMOVDINHEIRO,
:FL29TOTALMOVCDEBITO;
FDESCONTOSTOTAIS = ( :FDESCONTOSITENS + :FDESCONTOS );
FTOTALBRUTO = ( ( :FVLVENDASFECHADAS + :FVLVENDASESTORNADAS + :FVLCANC + :FDESCONTOSTOTAIS ) - ( :FL12VACRESC ) );
FL13VLVENDASLIQUIDA = :FVLVENDASFECHADAS;
UPDATE OR
INSERT INTO LIVROMOVIMENTO
(IDLIVRO, L001QTDACGV, L002DINHEIROGV, L004VSUPCAIXA,
L005VSANGRIAS,L006VCANC,L007VBRUTO,L008VESTORNOS,L11VDESCONTOS,
L12VACRESC,L13VLVENDASLIQUIDA,L14VTOTALFISCALBRUTO,
L15VTOTALFISCALCANC,L16VTOTALFISCALLIQ,L17VOLVENDASLIQ,L18VOLFISCAL,
L19VOLESTORNADO,L20VOLCANCELADO,L21VOLFISCALCANC,L22VOLPRODVEND,
L24TOCICMS07,L25TOTICMS12,L23TOTICMS18,L24TOTICMS25,L25TOTF1,L26TOTI1,L27TOTN1,
L28TMOVDINHEIRO,L29TOTALMOVCDEBITO)
VALUES (NEW.ID, :FQTDACIONAMENTOGV, :FCX26DINHEIROGV, :FL004VSUPCAIXA, :FL005VSANGRIAS,:FVLCANC,:FTOTALBRUTO,
:FVLVENDASESTORNADAS,:FDESCONTOSTOTAIS,:FL12VACRESC,:FL13VLVENDASLIQUIDA,:FL14VTOTALFISCALBRUTO,
:FL15VTOTALFISCALCANC,:FL16VTOTALFISCALLIQ,:FL17VOLVENDASLIQ,:FL18VOLFISCAL,
:FL19VOLESTORNADO,:FL20VOLCANCELADO,:FL21VOLFISCALCANC,
:FL22VOLPRODVEND,:FL24TOCICMS07,:FL25TOTICMS12,:FL23TOTICMS18,:FL24TOTICMS25,:FL25TOTF1,:FL26TOTI1,:FL27TOTN1,
:FL28TMOVDINHEIRO,:FL29TOTALMOVCDEBITO)
MATCHING (IDLIVRO);
END
END
SET TERM ; ^
COMMENT ON TRIGGER LIVROABERTURA_AIU1 IS
'RECALCULA TODOS OS VALORES COM BASE NAS MOVIMENTAÇÕES DO CAIXA';