Navegue pelos outros tipos de modelos personalizados
TODOS OS RELATÓRIOS ABAIXO SÃO PERSONALIZADOS, PORTANTO, ELES PODEM SER CRIADOS PELOS TÉCNICOS OU REVENDAS DA VR SYSTEM, ENTÃO NÃO PODEMOS GARANTIR QUE IRÃO FUNCIONAR PARA TODOS OS CLIENTES, POIS PODEM SER FEITOS PARA SITUAÇÕES ESPECÍFICAS. OS RELATÓRIOS PERSONALIZADOS NÃO SÃO FEITOS PELOS PROGRAMADORES DA VR SYSTEM, ENTÃO PEDIMOS QUE CASO BAIXE, SEMPRE TESTE, E SE NECESSÁRIO, ADAPTE AO QUE PRECISA !
Caso não consiga baixar algum dos relatórios clicando no título, clique com o botão direito no mesmo e depois clique em: salvar link como
Baixe o relatório completo de produtos em estoque:
DOWNLOAD@Data_do_Estoque
e a data atual.@Filial
).@Tabela_Preco
).
WITH
T1 AS (
SELECT
IIF(produto__tipo = 'G', mp.produto__codigo_grade, mp.Produto__Codigo) AS 'Produto Codigo',
SUM(mp.Qtde) AS 'Quantidade Entrada'
FROM Movimento_Produto mp
INNER JOIN Movimento m ON m.ide = mp.Movimento__Ide
WHERE mp.Tipo = 'E'
AND m.Efetivado = 1
AND m.Desefetivado = 0
AND CONVERT(DATETIME, m.Data) BETWEEN @Data_do_Estoque#data AND CONVERT(DATE, GETDATE())
AND m.Filial__Codigo = @Filial#filial
AND mp.Efetivado_Estoque = 1
AND mp.Desefetivado_Estoque = 0
GROUP BY mp.Produto__Codigo, produto__tipo, mp.produto__codigo_grade
),
T2 AS (
SELECT
IIF(produto__tipo = 'G', mp.produto__codigo_grade, mp.Produto__Codigo) AS 'Produto Codigo',
SUM(mp.Qtde) AS 'Quantidade Saida'
FROM Movimento_Produto mp
INNER JOIN Movimento m ON m.ide = mp.Movimento__Ide
WHERE mp.Tipo = 'S'
AND m.Efetivado = 1
AND m.Desefetivado = 0
AND CONVERT(DATETIME, m.Data) BETWEEN @Data_do_Estoque#data AND GETDATE()
AND m.Filial__Codigo = @Filial#filial
AND mp.Efetivado_Estoque = 1
AND mp.Desefetivado_Estoque = 0
GROUP BY mp.Produto__Codigo, produto__tipo, mp.produto__codigo_grade
),
T3 AS (
SELECT
EA.Produto__Codigo_Grade AS codigo,
EA.Qtde,
P.Ide,
p.Nome,
p.NCM,
pp.Preco,
um.Codigo AS unidade,
p.Codigo_EAN,
ci.IcmsCst AS 'CST ICMS',
ci.IcmsPerc AS 'ICMS % ST',
ci.IssPis AS 'CST PIS',
ci.PisPerc AS 'PIS % ST',
ci.PisCofinsTipo AS 'CST COFINS',
ci.CofinsPerc AS 'COFINS % ST'
FROM Estoque_Atual ea
INNER JOIN ProdutoGrade pg ON pg.Codigo = Produto__Codigo_Grade
INNER JOIN produto p ON p.Ide = ea.Produto__Ide
INNER JOIN ProdutoPreco pp ON pp.Produto__Ide = p.ide
LEFT JOIN UnidadeMedida um ON um.Ide = p.Unidade_Venda__Ide
LEFT JOIN ClasseImpostoOperacao ci ON ci.ClasseImposto__Ide = p.ClasseImposto__Ide
LEFT JOIN ClasseImpostoOperacaoUf cuf ON cuf.ClasseImpostoOperacao__Ide = ci.Ide
WHERE ea.Filial = @Filial#filial
AND p.Tipo = 'G'
AND pp.TabelaPreco__Ide = @$Tabela_Preco#tabelaC
AND p.Inativo <> 1
AND ci.Operacao__Codigo = 500
AND cuf.Uf = 'MG'
)
SELECT
t3.codigo AS [Cod Produto],
t3.Nome AS [Nome Produto],
t3.NCM AS [NCM],
t3.Preco AS [PRECO UNIT.],
t3.unidade AS [Unidade],
t3.Codigo_EAN AS [EAN],
t1.[Quantidade Entrada],
t2.[Quantidade Saida],
IIF((T3.Qtde - IIF(t1.[Quantidade Entrada] IS NULL, 0, t1.[Quantidade Entrada]) + IIF(t2.[Quantidade Saida] IS NULL, 0, t2.[Quantidade Saida])) IS NULL, 0,
(t3.Qtde - IIF(t1.[Quantidade Entrada] IS NULL, 0, t1.[Quantidade Entrada]) + IIF(t2.[Quantidade Saida] IS NULL, 0, t2.[Quantidade Saida]))) AS [Qtidade]
FROM T3
LEFT JOIN T1 ON t1.[Produto Codigo] = T3.Codigo
LEFT JOIN T2 ON t2.[Produto Codigo] = T3.Codigo
WHERE
IIF((T3.Qtde - ... )) > 0
ORDER BY CAST(T3.codigo AS BIGINT);
Baixe o relatório aqui:
DOWNLOAD@Data_Inicial#Data
e @Data_Final#Data
, considerando apenas os movimentos dentro desse intervalo de datas.@Filial#Filial
).@NFe_ou_NFCe#int
, diferenciando entre NF-e (modelo 55) e NFC-e (modelo 65).@Numero_Nota_Nfe#int
.m.Tipo_Operacao = 'VND'
), efetivados (m.Efetivado = 1
) e que não foram cancelados (m.Desefetivado = 0
).• Baixe o relatório aqui:
DOWNLOAD@Data_Inicial
) e a data final (@Data_Final
). Insira as datas no formato AAAA-MM-DD
.@filial
) para filtrar os dados específicos de uma unidade. Exemplo: 1.@operacao
permite especificar o tipo de operação a ser considerado. Exemplo: 500 (Vendas).@NFe_ou_NFCe
para selecionar notas fiscais eletrônicas (55) ou cupons fiscais eletrônicos (65). Deixe em branco
para incluir ambos.@Numero_Nota
). Deixe em branco
para incluir todas as notas.em branco
para incluir todos os status.
Baixe o relatório aqui:
DOWNLOAD@$Data_Inicial#data
e @$Data_Final#data
, filtrando apenas os movimentos ocorridos nesse intervalo.CONCAT(f.Codigo, ' - ', f.Nome)
).CONVERT(DATE, m.Data)
.m.Sequencia
) para organizar cada entrada de forma única.cf.CNPJ
, cf.Fone1
, cf.Fone2
).mp.Qtde
).mp.Valor_Unit
.mp.valor_Final
).cf.Ide = @$Fornecedor#Fornecedor
).m.Tipo IN ('E')
) e operações de compra (m.Tipo_Operacao IN ('COM')
).m.Efetivado = '1'
e m.Desefetivado = '0'
).Visualizações do relatório:
@Data_Inicial
e @Data_Final
.@Romaneio
).@filial
).@Cliente#Pessoa
).@ProdutoNome
).@VeiculoPlaca
).mp.Status <> -1
e ro.Status <> '-1'
).mp.Tipo NOT IN ('C', 'E')
).
SELECT
m.Sequencia AS [Sequencia],
ro.Data AS [Data Romaneio],
ro.Numero AS [Numero Romaneio],
ro.Descricao AS [Descricao Romaneio],
m.Total_Final AS [m Total Final],
m.Cli_For__Codigo AS [Cliente Codigo],
cl.Nome AS [Cliente Nome],
cl.Fone1 AS [Cliente Fone],
cl.Endereco AS [ENDERECO],
cl.Bairro AS [BAIRRO],
cl.Cidade AS [CIDADE],
cl.CEP,
cl.UF,
v.Placa AS [Veiculo Placa],
v.CapacidadeKG AS [Veiculo Capacidade],
mp.Produto__Codigo AS [Produto Codigo],
mp.Valor_Unit,
p.Nome AS [Produto Nome],
un.Codigo AS [Produto Unidade],
cs.Nome AS [Produto Classe],
mp.Qtde AS [mp Qtde],
(
SELECT SUM(m.Total_Final)
FROM Movimento m
LEFT JOIN Romaneio ro2 ON ro2.Ide = m.Romaneio__Ide
WHERE ro2.Id = ro.Id
) AS [Total Final Romaneio],
mp.*
FROM
Movimento m
LEFT JOIN Movimento_Produto mp ON mp.Movimento__Ide = m.Ide
LEFT JOIN Romaneio ro ON ro.Ide = m.Romaneio__Ide
LEFT JOIN Cli_For cl ON cl.Ide = m.Cli_For__Ide
LEFT JOIN Veiculo v ON ro.Veiculo__Ide = v.Ide
LEFT JOIN Produto p ON mp.Produto__Ide = p.Ide
LEFT JOIN UnidadeMedida un ON un.Ide = p.Unidade_Venda__Ide
LEFT JOIN Classes cs ON cs.Codigo = p.Classe
WHERE
mp.Status <> -1
AND CONVERT(DATE, ro.Data) BETWEEN @Data_Inicial#data AND @Data_Final#data
AND (ro.Numero = @$Romaneio OR @$Romaneio IS NULL)
AND (@$BAIRRO IS NULL OR cl.Bairro LIKE '%' + RTRIM(@$BAIRRO) + '%')
AND (@$CIDADE IS NULL OR cl.Cidade LIKE '%' + RTRIM(@$CIDADE) + '%')
AND (@$UF IS NULL OR cl.UF LIKE '%' + RTRIM(@$UF) + '%')
AND (@$Cliente#Pessoa IS NULL OR cl.Ide = @$Cliente#Pessoa)
AND (@$Produto_Nome IS NULL OR p.Nome LIKE '%' + RTRIM(@$Produto_Nome) + '%')
AND (@$Veiculo_Placa IS NULL OR v.Placa LIKE '%' + RTRIM(@$Veiculo_Placa) + '%')
AND (@$Produto_Codigo IS NULL OR mp.Produto__Codigo = @$Produto_Codigo)
AND (@$filial#filial IS NULL OR m.Filial__Codigo = @$filial#filial )
AND mp.Tipo NOT IN ('C', 'E')
AND ro.Status <> '-1';
Baixe o relatório aqui:
DOWNLOAD@DATA_INICIO#data
e @DATA_FINAL#data
, considerando apenas os movimentos dentro desse intervalo.@FILIAL#filial
).fc.Status <> -1
são exibidos para garantir que apenas dados válidos sejam considerados.fc.Situacao = 'Q'
.fc.Pagar_Receber = 'R'
.NAO INFORMADO
.fc.Emissao
.fc.Valor
).fc.Desconto
).fc.Juros
).fc.Multa
).fc.Valor_Final
).fc.Valor_Quitado
).DENSE_RANK()
para gerar um índice baseado no nome do vendedor, agrupando transações de forma ordenada.fc.Data_Alteracao
para priorizar os registros mais recentes.Baixe o relatório personalizado aqui:
DOWNLOAD@Data_Inicial
e @Data_Final
.@Filial
).fc.Situacao = 'Q'
e fc.Status <> -1
).pc1.NaoConsiderarDre = 0
).
-- Para colocar a query no (Gerador de Relatório), é necessário remover o DECLARE
DECLARE
@Data_Inicial#data DATE = '2024-09-01',
@Data_Final#data DATE = '2024-09-01',
@Filial#filial INT = 1;
SELECT
@Data_Inicial#data AS 'Data Inicial',
@Data_Final#data AS 'Data Final',
CONCAT(fc.Filial__Codigo, ' - ', f.Nome) AS [FILIAL],
fc.Descricao AS [FC DESCRICAO],
CONVERT(DATE, fc.Emissao) AS [FC EMISSAO],
CONVERT(DATE, fc.Vencimento) AS [FC VENCIMENTO],
CONVERT(DATE, fc.Quitacao) AS [FC QUITACAO],
fc.Valor AS [FC VALOR],
fc.Desconto AS [FC DESCONTO],
fc.Juros AS [FC JUROS],
fc.Multa AS [FC MULTA],
fc.Valor_Final AS [FC VALOR FINAL],
fc.Valor_Quitado AS [FC VALOR QUITADO],
CONVERT(DATE, fc.Data_Alteracao) AS [FC DATA ALTERACAO],
CONVERT(DATE, fc.Data_Criacao) AS [FC DATA CRIACAO],
fc.ValorLiquido AS [FC VALOR LIQUIDO],
pc1.Nome AS [PC1],
pc2.Nome AS [PC2],
pc3.Nome AS [PC3],
(SELECT SUM(mp.Valor_Final)
FROM Movimento_Produto mp
WHERE mp.Tipo = 'S'
AND mp.Desefetivado_Estoque <> 1
AND CONVERT(DATE, mp.Efetivado_Estoque_Data)
BETWEEN @Data_Inicial#data AND @Data_Final#data
AND fc.Filial__Codigo = @Filial#filial) AS [TotalVendas],
(SELECT SUM(mp.Total_Custo)
FROM Movimento_Produto mp
WHERE mp.Tipo = 'S'
AND mp.Desefetivado_Estoque <> 1
AND CONVERT(DATE, mp.Efetivado_Estoque_Data)
BETWEEN @Data_Inicial#data AND @Data_Final#data
AND fc.Filial__Codigo = @Filial#filial) AS [CMV]
FROM Financeiro_Conta AS fc
LEFT JOIN Filial f ON f.Codigo = fc.Filial__Codigo
LEFT JOIN PlanoConta1 pc1 ON pc1.Codigo = fc.Plano_Conta__Codigo
LEFT JOIN PlanoConta2 pc2 ON pc1.PlanoConta2__Codigo = pc2.Codigo
LEFT JOIN PlanoConta3 pc3 ON pc2.PlanoConta3__Codigo = pc3.Codigo
WHERE fc.Status <> -1
AND CAST(fc.Quitacao AS DATE)
BETWEEN @Data_Inicial#data AND @Data_Final#data
AND fc.Situacao = 'Q'
AND fc.Pagar_Receber = 'P'
AND fc.Plano_Conta__Codigo <> 1
AND pc1.NaoConsiderarDre = 0
AND fc.Filial__Codigo = @Filial#filial;
Baixe o relatório aqui:
DOWNLOADTodos os relatórios referente a Forma de Pagamento / Tipo de Recebimento serão inclusos aqui, mesmo que estejam repetindo acima.
Baixe o relatório aqui:
DOWNLOAD
SELECT
ROW_NUMBER() OVER (ORDER BY fcx.Data) AS [Row],
f.Codigo,
f.Nome,
@Data_Inicial#data AS [DI],
@Data_Final#data AS [DF],
m.Sequencia,
cf.Nome AS [Cliente],
m.Total_Produtos AS [Valor],
((-1) * m.Total_Desconto + m.Valor_Outro) AS [Desconto],
m.Total_Final AS [Valor_Final],
fcx.Tipo_Movimentacao,
cx.Nome AS [Caixa],
fcx.Dinheiro AS [Din],
(fcx.Parcelamento_Boleto + fcx.Parcelamento_Carne + fcx.Parcelamento_Carteira) AS [Parcelado],
fcx.Cheque AS [Cheque],
fcx.Cartao AS [Cart],
fcx.Outros AS [Outros],
fcx.Pix AS [Pix],
fcx.Descricao,
COALESCE(
(SELECT STRING_AGG(fp.Descricao, ', ')
FROM Movimento_Financeiro AS mff
LEFT JOIN FormaPagamento AS fp ON fp.Ide = mff.Forma_Pagamento__Ide
WHERE mff.Movimento__Ide = m.Ide),
CASE
WHEN ISNULL(fcx.DINHEIRO, 0) > 0 THEN 'DINHEIRO'
WHEN ISNULL(fcx.CARTAO_CREDITO, 0) > 0 THEN 'CARTÃO CREDITO'
WHEN ISNULL(fcx.CARTAO_DEBITO, 0) > 0 THEN 'CARTÃO DÉBITO'
WHEN ISNULL(fcx.CHEQUE, 0) > 0 THEN 'CHEQUE'
WHEN ISNULL(fcx.PARCELAMENTO_BOLETO, 0) > 0 THEN 'PARCELAMENTO BOLETO'
WHEN ISNULL(fcx.PARCELAMENTO_CARNE, 0) > 0 THEN 'PARCELAMENTO CARNE'
WHEN ISNULL(fcx.PARCELAMENTO_CARTEIRA, 0) > 0 THEN 'PARCELAMENTO CARTEIRA'
WHEN ISNULL(fcx.Pix, 0) > 0 THEN 'PIX'
WHEN ISNULL(fcx.OUTROS, 0) > 0 THEN 'OUTROS'
ELSE 'SEM FORMA DE PAGAMENTO'
END
) AS [FORMA DE PAGAMENTO]
FROM
Movimento m
INNER JOIN Filial f ON m.Filial__Codigo = f.Codigo
INNER JOIN Cli_For cf ON cf.Ide = m.Cli_For__Ide
INNER JOIN Caixas cx ON m.Caixa__Codigo = cx.Codigo
INNER JOIN Financeiro_Caixa fcx ON fcx.Movimento__Ide = m.Ide
WHERE
m.Efetivado = 1
AND m.Desefetivado = 0
AND m.Status <> -1
AND m.Tipo IN ('S')
AND m.Tipo_Operacao IN ('VND')
AND m.Data BETWEEN @Data_Inicial#data AND DATEADD(DAY, 1, @Data_Final#data)
AND m.Caixa__Codigo = @Caixa#caixa
UNION ALL
SELECT
ROW_NUMBER() OVER (ORDER BY fcx.Data) + 49999 AS [Row],
f.Codigo,
f.Nome,
@Data_Inicial#data AS [DI],
@Data_Final#data AS [DF],
0 AS [Sequencia],
'' AS [Cliente],
fcx.Dinheiro AS [Valor],
0 AS [Desconto],
fcx.Dinheiro AS [Valor_Final],
fcx.Tipo_Movimentacao,
cx.Nome AS [Caixa],
fcx.Dinheiro AS [Din],
(fcx.Parcelamento_Boleto + fcx.Parcelamento_Carne + fcx.Parcelamento_Carteira) AS [Parcelado],
fcx.Cheque AS [Cheque],
fcx.Cartao AS [Cart],
fcx.Outros AS [Outros],
fcx.Pix AS [Pix],
fcx.Descricao,
COALESCE(
(SELECT STRING_AGG(fp.Descricao, ', ')
FROM Movimento_Financeiro AS mff
LEFT JOIN FormaPagamento AS fp ON fp.Ide = mff.Forma_Pagamento__Ide
WHERE mff.Movimento__Ide = fcx.Ide),
CASE
WHEN ISNULL(fcx.DINHEIRO, 0) > 0 THEN 'DINHEIRO'
WHEN ISNULL(fcx.CARTAO_CREDITO, 0) > 0 THEN 'CARTÃO CREDITO'
WHEN ISNULL(fcx.CARTAO_DEBITO, 0) > 0 THEN 'CARTÃO DÉBITO'
WHEN ISNULL(fcx.CHEQUE, 0) > 0 THEN 'CHEQUE'
WHEN ISNULL(fcx.PARCELAMENTO_BOLETO, 0) > 0 THEN 'PARCELAMENTO BOLETO'
WHEN ISNULL(fcx.PARCELAMENTO_CARNE, 0) > 0 THEN 'PARCELAMENTO CARNE'
WHEN ISNULL(fcx.PARCELAMENTO_CARTEIRA, 0) > 0 THEN 'PARCELAMENTO CARTEIRA'
WHEN ISNULL(fcx.Pix, 0) > 0 THEN 'PIX'
WHEN ISNULL(fcx.OUTROS, 0) > 0 THEN 'OUTROS'
ELSE 'SEM FORMA DE PAGAMENTO'
END
) AS [FORMA DE PAGAMENTO]
FROM
Financeiro_Caixa fcx
INNER JOIN Filial f ON fcx.Filial__Codigo = f.Codigo
INNER JOIN Caixas cx ON cx.Codigo = fcx.Caixa__Codigo
WHERE
(fcx.Parcelamento_Boleto = 0
AND fcx.Parcelamento_Carne = 0
AND fcx.Parcelamento_Carteira = 0
AND fcx.Cheque = 0
AND fcx.Cartao = 0
AND fcx.Outros = 0
AND fcx.Pix = 0)
AND fcx.Tipo_Movimentacao IN ('MM')
AND fcx.Data BETWEEN @Data_Inicial#data AND DATEADD(DAY, 1, @Data_Final#data)
AND fcx.Caixa__Codigo = @Caixa#caixa
UNION ALL
SELECT
ROW_NUMBER() OVER (ORDER BY fcx.Data) + 99999 AS [Row],
f.Codigo,
f.Nome,
@Data_Inicial#data AS [DI],
@Data_Final#data AS [DF],
0 AS [Sequencia],
RIGHT(fcx.Descricao, LEN(fcx.Descricao) - 27) AS [Cliente],
(fcx.Dinheiro + fcx.Parcelamento_Boleto + fcx.Parcelamento_Carne + fcx.Parcelamento_Carteira +
fcx.Cheque + fcx.Cartao + fcx.Outros + fcx.Pix) AS [Valor],
0 AS [Desconto],
(fcx.Dinheiro + fcx.Parcelamento_Boleto + fcx.Parcelamento_Carne + fcx.Parcelamento_Carteira +
fcx.Cheque + fcx.Cartao + fcx.Outros + fcx.Pix) AS [Valor_Final],
fcx.Tipo_Movimentacao,
cx.Nome AS [Caixa],
fcx.Dinheiro AS [Din],
(fcx.Parcelamento_Boleto + fcx.Parcelamento_Carne + fcx.Parcelamento_Carteira) AS [Parcelado],
fcx.Cheque AS [Cheque],
fcx.Cartao AS [Cart],
fcx.Outros AS [Outros],
fcx.Pix AS [Pix],
'' AS [Descricao],
COALESCE(
(SELECT STRING_AGG(fp.Descricao, ', ')
FROM Movimento_Financeiro AS mff
LEFT JOIN FormaPagamento AS fp ON fp.Ide = mff.Forma_Pagamento__Ide
WHERE mff.Movimento__Ide = fcx.Ide),
CASE
WHEN ISNULL(fcx.DINHEIRO, 0) > 0 THEN 'DINHEIRO'
WHEN ISNULL(fcx.CARTAO_CREDITO, 0) > 0 THEN 'CARTÃO CREDITO'
WHEN ISNULL(fcx.CARTAO_DEBITO, 0) > 0 THEN 'CARTÃO DÉBITO'
WHEN ISNULL(fcx.CHEQUE, 0) > 0 THEN 'CHEQUE'
WHEN ISNULL(fcx.PARCELAMENTO_BOLETO, 0) > 0 THEN 'PARCELAMENTO BOLETO'
WHEN ISNULL(fcx.PARCELAMENTO_CARNE, 0) > 0 THEN 'PARCELAMENTO CARNE'
WHEN ISNULL(fcx.PARCELAMENTO_CARTEIRA, 0) > 0 THEN 'PARCELAMENTO CARTEIRA'
WHEN ISNULL(fcx.Pix, 0) > 0 THEN 'PIX'
WHEN ISNULL(fcx.OUTROS, 0) > 0 THEN 'OUTROS'
ELSE 'SEM FORMA DE PAGAMENTO'
END
) AS [FORMA DE PAGAMENTO]
FROM
Financeiro_Caixa fcx
INNER JOIN Caixas cx ON cx.Codigo = fcx.Caixa__Codigo
INNER JOIN Filial f ON fcx.Filial__Codigo = f.Codigo
WHERE
fcx.Tipo_Movimentacao IN ('REC')
AND fcx.Data BETWEEN @Data_Inicial#data AND DATEADD(DAY, 1, @Data_Final#data)
AND fcx.Caixa__Codigo = @Caixa#caixa
AND fcx.Dinheiro >= 0
AND fcx.Parcelamento_Boleto >= 0
AND fcx.Parcelamento_Carne >= 0
AND fcx.Parcelamento_Carteira >= 0
AND fcx.Cheque >= 0
AND fcx.Cartao >= 0
AND fcx.Outros >= 0
AND fcx.Pix >= 0;
Baixe o relatório aqui:
DOWNLOAD@Data_Inicial#Data
e @Data_Final#Data
, considerando apenas os movimentos ocorridos dentro desse intervalo.@Filial#Filial
.@Caixa#caixa
.@$Codigo_Vendedor#int
e @$Nome_Vendedor
. Quando não especificado, considera todos os vendedores.VND
(Venda) e DEV
(Devolução), utilizando a variável @$Operação#operacaoS
para filtragem de operação específica.CAST(m.Data AS DATE)
para facilitar a visualização.m.Efetivado
, m.Status
, e m.Desefetivado
.mf.Tipo
e outras condições específicas.