public dynamic Lancamentos(FiltroParlamentarDTO filtro)
        {
            if (filtro == null)
            {
                throw new BusinessException("Parâmetro filtro não informado!");
            }

            switch (filtro.Agrupamento)
            {
            case EnumAgrupamentoAuditoria.Parlamentar:
                return(LancamentosParlamentar(filtro));

            case EnumAgrupamentoAuditoria.Despesa:
                return(LancamentosDespesa(filtro));

            case EnumAgrupamentoAuditoria.Fornecedor:
                return(LancamentosFornecedor(filtro));

            case EnumAgrupamentoAuditoria.Partido:
                return(LancamentosPartido(filtro));

            case EnumAgrupamentoAuditoria.Estado:
                return(LancamentosEstado(filtro));

            case EnumAgrupamentoAuditoria.Documento:
                return(LancamentosNotaFiscal(filtro));
            }

            throw new BusinessException("Parâmetro filtro.Agrupamento não informado!");
        }
 private static void AdicionaFiltroDeputadoEstadual(FiltroParlamentarDTO filtro, StringBuilder sqlSelect)
 {
     if (!string.IsNullOrEmpty(filtro.IdParlamentar))
     {
         sqlSelect.AppendLine("	AND l.id_cl_deputado IN ("+ Utils.MySqlEscapeNumberToIn(filtro.IdParlamentar) + ") ");
     }
 }
 private static void AdicionaFiltroEstadoDeputadoEstadual(FiltroParlamentarDTO filtro, StringBuilder sqlSelect)
 {
     if (!string.IsNullOrEmpty(filtro.Partido))
     {
         sqlSelect.AppendLine("	AND l.id_cl_deputado IN (SELECT id FROM cl_deputado where id_partido IN("+ Utils.MySqlEscapeNumberToIn(filtro.Partido) + ")) ");;
     }
 }
        private static void AdicionaFiltroFornecedor(FiltroParlamentarDTO filtro, StringBuilder sqlSelect)
        {
            if (!string.IsNullOrEmpty(filtro.Fornecedor))
            {
                filtro.Fornecedor = String.Join("", System.Text.RegularExpressions.Regex.Split(filtro.Fornecedor, @"[^\d]"));

                if (!string.IsNullOrEmpty(filtro.Fornecedor))
                {
                    if (filtro.Fornecedor.Length == 14 || filtro.Fornecedor.Length == 11)
                    {
                        using (AppDb banco = new AppDb())
                        {
                            var id_fornecedor =
                                banco.ExecuteScalar("select id from fornecedor where cnpj_cpf = '" + Utils.RemoveCaracteresNaoNumericos(filtro.Fornecedor) + "'");

                            if (!Convert.IsDBNull(id_fornecedor))
                            {
                                sqlSelect.AppendLine("	AND l.id_fornecedor ="+ id_fornecedor + " ");
                            }
                        }
                    }
                    else
                    {
                        sqlSelect.AppendLine("	AND l.id_fornecedor ="+ Utils.RemoveCaracteresNaoNumericos(filtro.Fornecedor) + " ");
                    }
                }
            }
        }
 private static void AdicionaFiltroDespesa(FiltroParlamentarDTO filtro, StringBuilder sqlSelect)
 {
     if (!string.IsNullOrEmpty(filtro.Despesa))
     {
         sqlSelect.AppendLine("	AND l.id_sf_despesa_tipo IN ("+ Utils.MySqlEscapeNumberToIn(filtro.Despesa) + ") ");
     }
 }
 private static void AdicionaFiltroPartidoSenador(FiltroParlamentarDTO filtro, StringBuilder sqlSelect)
 {
     if (!string.IsNullOrEmpty(filtro.Uf))
     {
         sqlSelect.AppendLine("	AND l.id_sf_senador IN (SELECT id FROM sf_senador where id_estado IN("+ Utils.MySqlEscapeNumberToIn(filtro.Uf) + ")) ");
     }
 }
        private static void AdicionaResultadoComum(FiltroParlamentarDTO filtro, StringBuilder sqlSelect)
        {
            //sqlSelect.AppendLine("select * from table_in_memory ");
            sqlSelect.AppendFormat("ORDER BY {0} ", string.IsNullOrEmpty(filtro.sorting) ? "valor_total desc" : Utils.MySqlEscape(filtro.sorting));
            sqlSelect.AppendFormat("LIMIT {0},{1}; ", (filtro.page - 1) * filtro.count, filtro.count);

            sqlSelect.AppendLine(
                @"SELECT count(1), sum(valor_total) as valor_total
				FROM table_in_memory; "                );
        }
Ejemplo n.º 8
0
        public dynamic Secretarios(FiltroParlamentarDTO filtro)
        {
            using (Banco banco = new Banco())
            {
                var strSql = new StringBuilder();
                strSql.AppendLine(@"
					SELECT SQL_CALC_FOUND_ROWS
						p.id as id_cf_deputado
						, p.nome_parlamentar
						, p.quantidade_secretarios
					from cf_deputado p
					where p.quantidade_secretarios > 0
				"                );

                if (!string.IsNullOrEmpty(filtro.NomeParlamentar))
                {
                    strSql.AppendFormat("and p.nome_parlamentar LIKE '%{0}%' ", Utils.MySqlEscape(filtro.NomeParlamentar));
                }

                strSql.AppendFormat(" ORDER BY {0} ", string.IsNullOrEmpty(filtro.sorting) ? "p.quantidade_secretarios DESC, p.nome_parlamentar" : Utils.MySqlEscape(filtro.sorting));
                strSql.AppendFormat(" LIMIT {0},{1}; ", (filtro.page - 1) * filtro.count, filtro.count);

                strSql.AppendLine("SELECT FOUND_ROWS(); ");

                var lstRetorno = new List <dynamic>();
                using (MySqlDataReader reader = banco.ExecuteReader(strSql.ToString()))
                {
                    while (reader.Read())
                    {
                        lstRetorno.Add(new
                        {
                            id_cf_deputado         = reader["id_cf_deputado"],
                            nome_parlamentar       = reader["nome_parlamentar"].ToString(),
                            quantidade_secretarios = reader["quantidade_secretarios"].ToString()
                        });
                    }

                    reader.NextResult();
                    reader.Read();

                    return(new
                    {
                        total_count = reader[0],
                        results = lstRetorno
                    });
                }
            }
        }
        private static void AdicionaFiltroPeriodo(FiltroParlamentarDTO filtro, StringBuilder sqlSelect)
        {
            DateTime dataIni = DateTime.Today;
            DateTime dataFim = DateTime.Today;

            switch (filtro.Periodo)
            {
            case 1:     //PERIODO_MES_ATUAL
                sqlSelect.AppendLine(" AND l.ano_mes = " + dataIni.ToString("yyyyMM"));
                break;

            case 2:     //PERIODO_MES_ANTERIOR
                dataIni = dataIni.AddMonths(-1);
                sqlSelect.AppendLine(" AND l.ano_mes = " + dataIni.ToString("yyyyMM"));
                break;

            case 3:     //PERIODO_MES_ULT_4
                dataIni = dataIni.AddMonths(-3);
                sqlSelect.AppendLine(" AND l.ano_mes >= " + dataIni.ToString("yyyyMM"));
                break;

            case 4:     //PERIODO_ANO_ATUAL
                dataIni = new DateTime(dataIni.Year, 1, 1);
                sqlSelect.AppendLine(string.Format(" AND l.ano_mes >= {0}01", dataIni.Year));
                break;

            case 5:     //PERIODO_ANO_ANTERIOR
                sqlSelect.AppendLine(string.Format(" AND l.ano_mes BETWEEN {0}01 AND {0}12", dataIni.Year - 1));
                break;

            case 9:     //PERIODO_MANDATO_56
                sqlSelect.AppendLine(" AND l.ano_mes BETWEEN 201902 AND 202301");
                break;

            case 8:     //PERIODO_MANDATO_55
                sqlSelect.AppendLine(" AND l.ano_mes BETWEEN 201502 AND 201901");
                break;

            case 7:     //PERIODO_MANDATO_54
                sqlSelect.AppendLine(" AND l.ano_mes BETWEEN 201102 AND 201501");
                break;

            case 6:     //PERIODO_MANDATO_53
                sqlSelect.AppendLine(" AND l.ano_mes BETWEEN 200702 AND 201101");
                break;
            }
        }
Ejemplo n.º 10
0
        private static void AdicionaFiltroPeriodo(FiltroParlamentarDTO filtro, StringBuilder sqlSelect)
        {
            DateTime dataIni = DateTime.Today;
            DateTime dataFim = DateTime.Today;

            switch (filtro.Periodo)
            {
            case "1":                     //PERIODO_MES_ATUAL
                sqlSelect.AppendLine(" AND l.ano_mes = " + dataIni.ToString("yyyyMM"));
                break;

            case "2":                     //PERIODO_MES_ANTERIOR
                dataIni = dataIni.AddMonths(-1);
                sqlSelect.AppendLine(" AND l.ano_mes = " + dataIni.ToString("yyyyMM"));
                break;

            case "3":                     //PERIODO_MES_ULT_4
                dataIni = dataIni.AddMonths(-3);
                sqlSelect.AppendLine(" AND l.ano_mes >= " + dataIni.ToString("yyyyMM"));
                break;

            case "4":                     //PERIODO_ANO_ATUAL
                dataIni = new DateTime(dataIni.Year, 1, 1);
                sqlSelect.AppendLine(" AND l.ano_mes >= " + dataIni.ToString("yyyyMM"));
                break;

            case "5":                     //PERIODO_ANO_ANTERIOR
                dataIni = new DateTime(dataIni.Year, 1, 1).AddYears(-1);
                dataFim = new DateTime(dataIni.Year, 12, 31);
                sqlSelect.AppendFormat(" AND l.ano_mes BETWEEN {0} AND {1}", dataIni.ToString("yyyyMM"), dataFim.ToString("yyyyMM"));
                break;

            case "8":                     //PERIODO_MANDATO_55
                sqlSelect.AppendLine(" AND l.ano_mes BETWEEN 201502 AND 201901");
                break;

            case "7":                     //PERIODO_MANDATO_54
                sqlSelect.AppendLine(" AND l.ano_mes BETWEEN 201102 AND 201501");
                break;

            case "6":                     //PERIODO_MANDATO_53
                sqlSelect.AppendLine(" AND l.ano_mes BETWEEN 200702 AND 201101");
                break;
            }
        }
        private dynamic LancamentosNotaFiscal(FiltroParlamentarDTO filtro)
        {
            //sqlSelect.AppendLine(" p.IdeCadastro as IdCadastro");
            //sqlSelect.AppendLine(", p.nuDeputadoId as IdDeputado");
            //sqlSelect.AppendLine(", l.id as Id");
            //sqlSelect.AppendLine(", l.ideDocumento as IdDocumento");
            //sqlSelect.AppendLine(", l.txtNumero as NotaFiscal");
            //sqlSelect.AppendLine(", l.txtCNPJCPF AS Codigo");
            //sqlSelect.AppendLine(", l.numano as NumAno");
            //sqlSelect.AppendLine(", l.txtNumero as Numero");
            //sqlSelect.AppendLine(", l.datEmissao as DataEmissao");
            //sqlSelect.AppendLine(", SUBSTRING(IFNULL(f.txtbeneficiario, l.txtbeneficiario), 1, 50) AS NomeBeneficiario");
            //sqlSelect.AppendLine(", l.txNomeParlamentar as nome_parlamentar");
            //sqlSelect.AppendLine(", SUM(l.vlrLiquido) AS vlrTotal ");

            using (AppDb banco = new AppDb())
            {
                var sqlSelect = new StringBuilder();

                //sqlSelect.AppendLine("DROP TABLE IF EXISTS table_in_memory; ");
                //sqlSelect.AppendLine("CREATE TEMPORARY TABLE table_in_memory ");
                //sqlSelect.AppendLine("AS ( ");
                sqlSelect.AppendLine(@"
					SELECT SQL_CALC_FOUND_ROWS
						 l.id as id_cl_despesa
						, l.data
						, l.id_fornecedor
						, pj.cnpj_cpf
						, pj.nome AS nome_fornecedor
                        , l.favorecido
                        , l.observacao
						, d.id as id_deputado
						, d.nome_parlamentar
                        , dt.descricao as despesa_tipo
                        , l.numero_documento
						, l.valor as valor_total
					FROM cl_despesa l
					INNER JOIN cl_deputado d on d.id = l.id_cl_deputado
					LEFT JOIN fornecedor pj on pj.id = l.id_fornecedor
					LEFT JOIN cl_despesa_tipo dt on dt.id = l.id_cl_despesa_tipo
					WHERE (1=1)
				"                );

                AdicionaFiltroPeriodo(filtro, sqlSelect);

                AdicionaFiltroDeputadoEstadual(filtro, sqlSelect);

                AdicionaFiltroDespesa(filtro, sqlSelect);

                AdicionaFiltroFornecedor(filtro, sqlSelect);

                AdicionaFiltroPartidoDeputadoEstadual(filtro, sqlSelect);

                AdicionaFiltroEstadoDeputadoEstadual(filtro, sqlSelect);

                sqlSelect.AppendFormat("ORDER BY {0} ", string.IsNullOrEmpty(filtro.sorting) ? "l.data desc, l.valor desc" : Utils.MySqlEscape(filtro.sorting));
                sqlSelect.AppendFormat("LIMIT {0},{1}; ", (filtro.page - 1) * filtro.count, filtro.count);

                sqlSelect.AppendFormat("SELECT FOUND_ROWS();");

                var lstRetorno = new List <dynamic>();
                using (var reader = banco.ExecuteReader(sqlSelect.ToString()))
                {
                    while (reader.Read())
                    {
                        var nomeFornecedor = reader["nome_fornecedor"].ToString();

                        if (!string.IsNullOrEmpty(reader["favorecido"].ToString()))
                        {
                            nomeFornecedor += "<div>" + reader["favorecido"].ToString() + "</div>";
                        }

                        if (!string.IsNullOrEmpty(reader["observacao"].ToString()))
                        {
                            nomeFornecedor += "<div>" + reader["observacao"].ToString() + "</div>";
                        }

                        lstRetorno.Add(new
                        {
                            id_cl_despesa    = reader["id_cl_despesa"],
                            data             = Utils.FormataData(reader["data"]),
                            id_fornecedor    = reader["id_fornecedor"],
                            cnpj_cpf         = Utils.FormatCnpjCpf(reader["cnpj_cpf"].ToString()),
                            nome_fornecedor  = nomeFornecedor,
                            id_deputado      = reader["id_deputado"],
                            nome_parlamentar = reader["nome_parlamentar"].ToString(),
                            despesa_tipo     = reader["despesa_tipo"].ToString(),
                            numero_documento = reader["numero_documento"].ToString(),
                            valor_total      = Utils.FormataValor(reader["valor_total"])
                        });
                    }

                    reader.NextResult();
                    reader.Read();
                    string TotalCount = reader[0].ToString();
                    string ValorTotal = null; //Utils.FormataValor(reader[1]);

                    return(new
                    {
                        total_count = TotalCount,
                        valor_total = ValorTotal,
                        results = lstRetorno
                    });
                }
            }
        }
        private dynamic LancamentosEstado(FiltroParlamentarDTO filtro)
        {
            using (AppDb banco = new AppDb())
            {
                var sqlSelect = new StringBuilder();

                sqlSelect.AppendLine(@"
					DROP TABLE IF EXISTS table_in_memory;
					CREATE TEMPORARY TABLE table_in_memory
					AS (
						SELECT
						 d.id_estado
						, e.nome as nome_estado
						, count(l1.total_notas) as total_notas
						, sum(l1.valor_total) as valor_total
						from (

							SELECT
							 count(l.id) AS total_notas
							, sum(l.valor) as valor_total
							, l.id_cl_deputado
							FROM cl_despesa l
							WHERE (1=1)
				"                );

                AdicionaFiltroPeriodo(filtro, sqlSelect);

                AdicionaFiltroDeputadoEstadual(filtro, sqlSelect);

                AdicionaFiltroDespesa(filtro, sqlSelect);

                AdicionaFiltroFornecedor(filtro, sqlSelect);

                AdicionaFiltroPartidoDeputadoEstadual(filtro, sqlSelect);

                AdicionaFiltroEstadoDeputadoEstadual(filtro, sqlSelect);

                sqlSelect.AppendLine(@"
						GROUP BY id_cl_deputado
					) l1
					INNER JOIN cl_deputado d on d.id = l1.id_cl_deputado
					LEFT JOIN estado e on e.id = d.id_estado
					GROUP BY e.id, e.nome
				); "                ); //end table_in_memory

                sqlSelect.AppendLine(@"select * from table_in_memory ");
                AdicionaResultadoComum(filtro, sqlSelect);

                var lstRetorno = new List <dynamic>();
                using (var reader = banco.ExecuteReader(sqlSelect.ToString()))
                {
                    while (reader.Read())
                    {
                        lstRetorno.Add(new
                        {
                            id_estado   = reader["id_estado"],
                            nome_estado = reader["nome_estado"],
                            total_notas = reader["total_notas"],
                            valor_total = Utils.FormataValor(reader["valor_total"])
                        });
                    }

                    reader.NextResult();
                    reader.Read();
                    string TotalCount = reader[0].ToString();
                    string ValorTotal = Utils.FormataValor(reader[1]);

                    return(new
                    {
                        total_count = TotalCount,
                        valor_total = ValorTotal,
                        results = lstRetorno
                    });
                }
            }
        }
        private dynamic LancamentosDespesa(FiltroParlamentarDTO filtro)
        {
            using (AppDb banco = new AppDb())
            {
                var sqlSelect = new StringBuilder();

                sqlSelect.AppendLine(@"
					DROP TABLE IF EXISTS table_in_memory;
					CREATE TEMPORARY TABLE table_in_memory
					SELECT
						count(l.id) AS total_notas
						, sum(l.valor) as valor_total
						, l.id_cl_despesa_tipo
					FROM cl_despesa l
					WHERE (1=1)
				"                );

                AdicionaFiltroPeriodo(filtro, sqlSelect);

                AdicionaFiltroDeputadoEstadual(filtro, sqlSelect);

                AdicionaFiltroDespesa(filtro, sqlSelect);

                AdicionaFiltroFornecedor(filtro, sqlSelect);

                AdicionaFiltroPartidoDeputadoEstadual(filtro, sqlSelect);

                AdicionaFiltroEstadoDeputadoEstadual(filtro, sqlSelect);

                sqlSelect.AppendLine(@"
					GROUP BY id_cl_despesa_tipo;
					
					SELECT
						l1.id_cl_despesa_tipo
						, td.descricao
						, l1.total_notas
						, l1.valor_total
					from table_in_memory l1
					LEFT JOIN cl_despesa_tipo td on td.id = l1.id_cl_despesa_tipo
				"                );

                AdicionaResultadoComum(filtro, sqlSelect);

                var lstRetorno = new List <dynamic>();
                using (var reader = banco.ExecuteReader(sqlSelect.ToString()))
                {
                    while (reader.Read())
                    {
                        lstRetorno.Add(new
                        {
                            id_cl_despesa_tipo = reader["id_cl_despesa_tipo"],
                            descricao          = reader["descricao"],
                            total_notas        = reader["total_notas"],
                            valor_total        = Utils.FormataValor(reader["valor_total"])
                        });
                    }

                    reader.NextResult();
                    reader.Read();
                    string TotalCount = reader[0].ToString();
                    string ValorTotal = Utils.FormataValor(reader[1]);

                    return(new
                    {
                        total_count = TotalCount,
                        valor_total = ValorTotal,
                        results = lstRetorno
                    });
                }
            }
        }
Ejemplo n.º 14
0
 public async Task <dynamic> Lancamentos([FromQuery] FiltroParlamentarDTO filtro)
 {
     return(await dao.Lancamentos(filtro));
 }
Ejemplo n.º 15
0
 public async Task <dynamic> Lista(FiltroParlamentarDTO filtro)
 {
     return(await dao.Lista(filtro));
 }
Ejemplo n.º 16
0
 public dynamic Secretarios([FromUri] FiltroParlamentarDTO filtro)
 {
     return(dao.Secretarios(filtro));
 }
        private dynamic LancamentosPartido(FiltroParlamentarDTO filtro)
        {
            using (Banco banco = new Banco())
            {
                var sqlSelect = new StringBuilder();

                sqlSelect.AppendLine(@"
					DROP TABLE IF EXISTS table_in_memory;
					CREATE TEMPORARY TABLE table_in_memory
					AS (
						SELECT
						 d.id_partido
						, p.nome as nome_partido
						, sum(l1.total_notas) as total_notas
                        , count(l1.id_sf_senador) as total_senadores
                        , sum(l1.valor_total) / count(l1.id_sf_senador) as valor_medio_por_senador
						, sum(l1.valor_total) as valor_total
						from (
							SELECT
							 count(l.id) AS total_notas
							, sum(l.valor) as valor_total
							, l.id_sf_senador
							FROM sf_despesa l
							WHERE (1=1)
				"                );

                AdicionaFiltroPeriodo(filtro, sqlSelect);

                AdicionaFiltroSenador(filtro, sqlSelect);

                AdicionaFiltroDespesa(filtro, sqlSelect);

                AdicionaFiltroFornecedor(filtro, sqlSelect);

                AdicionaFiltroPartidoSenador(filtro, sqlSelect);

                AdicionaFiltroEstadoSenador(filtro, sqlSelect);

                sqlSelect.AppendLine(@"
						GROUP BY id_sf_senador
					) l1
					INNER JOIN sf_senador d on d.id = l1.id_sf_senador
					LEFT JOIN partido p on p.id = d.id_partido
					GROUP BY p.id, p.nome
				);"                ); //end table_in_memory

                sqlSelect.AppendLine("select * from table_in_memory ");
                AdicionaResultadoComum(filtro, sqlSelect);

                var lstRetorno = new List <dynamic>();
                using (MySqlDataReader reader = banco.ExecuteReader(sqlSelect.ToString()))
                {
                    while (reader.Read())
                    {
                        lstRetorno.Add(new
                        {
                            id_partido              = reader["id_partido"],
                            nome_partido            = reader["nome_partido"],
                            total_notas             = reader["total_notas"],
                            total_senadores         = reader["total_senadores"],
                            valor_medio_por_senador = Utils.FormataValor(reader["valor_medio_por_senador"]),
                            valor_total             = Utils.FormataValor(reader["valor_total"])
                        });
                    }

                    reader.NextResult();
                    reader.Read();
                    string TotalCount = reader[0].ToString();
                    string ValorTotal = Utils.FormataValor(reader[1]);

                    return(new
                    {
                        total_count = TotalCount,
                        valor_total = ValorTotal,
                        results = lstRetorno
                    });
                }
            }
        }
        private dynamic LancamentosParlamentar(FiltroParlamentarDTO filtro)
        {
            using (Banco banco = new Banco())
            {
                var sqlSelect = new StringBuilder();

                sqlSelect.AppendLine(@"
					DROP TABLE IF EXISTS table_in_memory;
					CREATE TEMPORARY TABLE table_in_memory
					SELECT
						count(l.id) AS total_notas
					, sum(l.valor) as valor_total
					, l.id_cl_deputado
					FROM cl_despesa l
					WHERE (1=1)
				"                );

                AdicionaFiltroPeriodo(filtro, sqlSelect);

                AdicionaFiltroDeputadoEstadual(filtro, sqlSelect);

                AdicionaFiltroDespesa(filtro, sqlSelect);

                AdicionaFiltroFornecedor(filtro, sqlSelect);

                AdicionaFiltroPartidoDeputadoEstadual(filtro, sqlSelect);

                AdicionaFiltroEstadoDeputadoEstadual(filtro, sqlSelect);

                sqlSelect.AppendLine(@"
					GROUP BY id_cl_deputado;
					
					SELECT
						 d.id as id_cl_deputado
						, d.nome_parlamentar
						, e.sigla as sigla_estado
						, p.sigla as sigla_partido
						, l1.total_notas
						, l1.valor_total
						from table_in_memory l1
					LEFT JOIN cl_deputado d on d.id = l1.id_cl_deputado
					LEFT JOIN partido p on p.id = d.id_partido
					LEFT JOIN estado e on e.id = d.id_estado
				"                );

                AdicionaResultadoComum(filtro, sqlSelect);

                var lstRetorno = new List <dynamic>();
                using (MySqlDataReader reader = banco.ExecuteReader(sqlSelect.ToString()))
                {
                    while (reader.Read())
                    {
                        lstRetorno.Add(new
                        {
                            id_cl_deputado   = reader["id_cl_deputado"],
                            nome_parlamentar = reader["nome_parlamentar"],
                            sigla_estado     = reader["sigla_estado"],
                            sigla_partido    = reader["sigla_partido"],
                            total_notas      = reader["total_notas"],
                            valor_total      = Utils.FormataValor(reader["valor_total"])
                        });
                    }

                    reader.NextResult();
                    reader.Read();
                    string TotalCount = reader[0].ToString();
                    string ValorTotal = Utils.FormataValor(reader[1]);

                    return(new
                    {
                        total_count = TotalCount,
                        valor_total = ValorTotal,
                        results = lstRetorno
                    });
                }
            }
        }
Ejemplo n.º 19
0
 public dynamic Lancamentos([FromQuery] FiltroParlamentarDTO filtro)
 {
     return(dao.Lancamentos(filtro));
 }
        private dynamic LancamentosFornecedor(FiltroParlamentarDTO filtro)
        {
            using (AppDb banco = new AppDb())
            {
                var sqlSelect = new StringBuilder();

                sqlSelect.AppendLine(@"
					DROP TABLE IF EXISTS table_in_memory;
					CREATE TEMPORARY TABLE table_in_memory
					SELECT
						l.id_fornecedor
						, count(l.id) AS total_notas
						, sum(l.valor) as valor_total
					FROM cl_despesa l
					WHERE (1=1)
				"                );

                AdicionaFiltroPeriodo(filtro, sqlSelect);

                AdicionaFiltroDeputadoEstadual(filtro, sqlSelect);

                AdicionaFiltroDespesa(filtro, sqlSelect);

                AdicionaFiltroFornecedor(filtro, sqlSelect);

                AdicionaFiltroPartidoDeputadoEstadual(filtro, sqlSelect);

                AdicionaFiltroEstadoDeputadoEstadual(filtro, sqlSelect);

                sqlSelect.AppendLine(@"
					GROUP BY l.id_fornecedor;

					select
						l1.id_fornecedor
						, pj.cnpj_cpf
						, pj.nome AS nome_fornecedor
						, l1.total_notas
						, l1.valor_total
					from table_in_memory l1
					LEFT JOIN fornecedor pj on pj.id = l1.id_fornecedor
				"                );

                AdicionaResultadoComum(filtro, sqlSelect);

                var lstRetorno = new List <dynamic>();
                using (var reader = banco.ExecuteReader(sqlSelect.ToString()))
                {
                    while (reader.Read())
                    {
                        lstRetorno.Add(new
                        {
                            //SgUf = reader[SgUfOrdinal],
                            //DataUltimaNotaFiscal = Utils.FormataData(reader[DataUltimaNotaFiscalOrdinal]),
                            //Doador = reader[DoadorOrdinal],
                            id_fornecedor   = reader["id_fornecedor"],
                            cnpj_cpf        = Utils.FormatCnpjCpf(reader["cnpj_cpf"].ToString()),
                            nome_fornecedor = reader["nome_fornecedor"],
                            total_notas     = reader["total_notas"],
                            valor_total     = Utils.FormataValor(reader["valor_total"])
                        });
                    }

                    reader.NextResult();
                    reader.Read();
                    string TotalCount = reader[0].ToString();
                    string ValorTotal = Utils.FormataValor(reader[1]);

                    return(new
                    {
                        total_count = TotalCount,
                        valor_total = ValorTotal,
                        results = lstRetorno
                    });
                }
            }
        }