public IActionResult ObterQuantidade() { try { var celulaEacessoService = new CelulaEacessoService(_connectionStrings.Value.EacessoConnection); var resultBD = celulaEacessoService.ObterCelulas(); return(Ok(resultBD.Count)); } catch (Exception ex) { return(BadRequest(ex)); } }
public IActionResult ObterDiretorias() { try { var celulaEacessoService = new CelulaEacessoService(_connectionStrings.Value.EacessoConnection); var resultBD = celulaEacessoService.ObterDiretorias(); var resultVM = Mapper.Map <IEnumerable <CelulaVM> >(resultBD); return(Ok(new { dados = resultVM, notifications = "", success = true })); } catch (Exception ex) { return(BadRequest(ex)); } }
private static void VerificarTiposRepasse(List <EpmRepasse> repassesInternos, List <EpmRepasse> repassesComerciais, List <EpmRepasse> repassesEpm) { var eacessoConnectionCelula = new CelulaEacessoService("Data Source=10.161.69.101\\CORP_H;Initial Catalog=" + EACESSO_DB + ";User ID=stfcorp_fenix;Password=\"noRPH|dt*;\""); foreach (var repasse in repassesEpm) { if (!repasse.GROUPED && (repasse.IdServicoProf != null) && repasse.LancRepInterno && (repasse.IdTipoCelTec == 3 || repasse.IdTipoCelTec == 9)) { AdicionarRepasseInterno(repassesInternos, (EpmRepasse)repasse.Clone(), eacessoConnectionCelula); } if (repasse.Checked) { AdicionarRepasseComercial(repassesComerciais, (EpmRepasse)repasse.Clone(), eacessoConnectionCelula); } } }
public IActionResult ObterDiretoriasComVisualizacao() { try { var usuario = _variables.UserName; List <CelulaVM> celulasComPermissao = BuscarCelulasVisualizadasPorUsuario(usuario); var celulaEacessoService = new CelulaEacessoService(_connectionStrings.Value.EacessoConnection); var resultBD = celulaEacessoService.ObterDiretorias(); var celulasDiretoria = Mapper.Map <IEnumerable <CelulaVM> >(resultBD); var resultVM = celulasComPermissao.Where(x => celulasDiretoria.Any(y => y.Id == x.Id)); return(Ok(new { dados = resultVM, notifications = "", success = true })); } catch (Exception ex) { return(BadRequest(ex)); } }
public List <ValoresRelatorioRentabilidadeDto> ObterInformacoesPorDiretoria(FiltroRelatorioRentabilidadeDiretoriaDto filtro) { var idCelulaSelecionada = filtro.IdsCelula.LastOrDefault(); var proceduresService = new ProceduresService(_connectionStrings.Value.EacessoConnection); var celulaValidadas = proceduresService.ObterHierarquiaCelulas(filtro.IdsCelula.LastOrDefault()); var idsCelulaValidadas = celulaValidadas.Select(x => x.IdCelula).Concat(celulaValidadas.Select(x => x.IdCelulaSup)).Distinct().ToList(); filtro.IdsCelula = idsCelulaValidadas; #region variaveis var servicos = new List <ServicoContratadoRelatorioRentabilidadeModel>(); var repassesPagos = new List <RepasseRelatorioRentabilidadeModel>(); var repassesRecebidos = new List <RepasseRelatorioRentabilidadeModel>(); List <ValoresRelatorioRentabilidadeDto> valoresRelatorio = new List <ValoresRelatorioRentabilidadeDto>(); List <ValoresRelatorioRentabilidadeDto> valoresRelatorioCliente = new List <ValoresRelatorioRentabilidadeDto>(); List <ValoresRelatorioRentabilidadeDto> valoresRelatorioCelula = new List <ValoresRelatorioRentabilidadeDto>(); var itensLancamentosServico = new List <ItemLancamentoFinanceiro>(); var itensLancamentosRepassesPagos = new List <ItemLancamentoFinanceiro>(); var itensLancamentosRepassesRecebidos = new List <ItemLancamentoFinanceiro>(); var celulas = new List <CelulaEacesso>(); var celulasService = new CelulaEacessoService(_connectionStrings.Value.EacessoConnection); celulas = celulasService.ObterCelulasPorIds(filtro.IdsCelula); #endregion itensLancamentosServico = ObterItensLancamentoPorServico(filtro, out servicos); itensLancamentosRepassesPagos = ObterItensLancamentoRepassesPagos(filtro, out repassesPagos); itensLancamentosRepassesRecebidos = ObterItensLancamentoRepassesRecebidos(filtro, out repassesRecebidos); var itensAgrupados = itensLancamentosServico.GroupBy(x => x.IdServicoContratado); var itensAgrupadosRepassesPagos = itensLancamentosRepassesPagos.GroupBy(x => x.IdRepasse); var itensAgrupadosRepassesRecebidos = itensLancamentosRepassesRecebidos.GroupBy(x => x.IdRepasse); var repassesPagosAgrupados = repassesPagos.GroupBy(x => x.IdServicoContratado); var repassesRecebidosAgrupados = repassesRecebidos.GroupBy(x => x.IdServicoContratado); var idsServicos = itensAgrupados.Select(x => new ManipularValoresRelatorio { Id = x.Key.Value, Tipo = "S" }).Distinct().ToList(); var idsRepassesPagos = itensAgrupadosRepassesPagos.Select(x => new ManipularValoresRelatorio { Id = x.Key.Value, Tipo = "R" }).Distinct(); var idsRepassesRecebidos = itensAgrupadosRepassesRecebidos.Select(x => new ManipularValoresRelatorio { Id = x.Key.Value, Tipo = "R" }).Distinct(); foreach (var item in repassesPagosAgrupados) { if (!idsServicos.Any(x => x.Id == item.Key)) { idsServicos.Add(new ManipularValoresRelatorio { Id = item.Key, Tipo = "S" }); } } foreach (var item in repassesRecebidosAgrupados) { if (!idsServicos.Any(x => x.Id == item.Key)) { idsServicos.Add(new ManipularValoresRelatorio { Id = item.Key, Tipo = "S" }); } } foreach (var idItem in idsServicos) { var servicoAtual = new ServicoContratadoRelatorioRentabilidadeModel(); if (idItem.Tipo == "S") { servicoAtual = servicos.FirstOrDefault(x => x.Id == idItem.Id); } else { var idServico = repassesPagosAgrupados.FirstOrDefault(x => x.Any(y => y.Id == idItem.Id)); if (idServico != null) { servicoAtual = servicos.FirstOrDefault(x => x.Id == idServico.Key); } else { idServico = repassesRecebidosAgrupados.FirstOrDefault(x => x.Any(y => y.Id == idItem.Id)); if (idServico != null) { servicoAtual = servicos.FirstOrDefault(x => x.Id == idServico.Key); } } } IGrouping <int?, ItemLancamentoFinanceiro> itemServico = null; itemServico = itensAgrupados.FirstOrDefault(x => x.Key == servicoAtual.Id); if (itemServico == null) { var idsPagos = repassesPagos.Where(x => x.IdServicoContratado == servicoAtual.Id).Select(x => x.Id).ToList(); var itens = itensLancamentosRepassesPagos.Where(x => idsPagos.Contains(x.IdRepasse.Value)); foreach (var item in itens) { item.IdServicoContratado = repassesPagos.FirstOrDefault(x => x.Id == item.IdRepasse).IdServicoContratado; } itemServico = itensLancamentosRepassesPagos.Where(x => idsPagos.Contains(x.IdRepasse.Value)).GroupBy(x => x.IdServicoContratado).FirstOrDefault(); } if (itemServico == null) { var idsPagos = repassesRecebidos.Where(x => x.IdServicoContratado == servicoAtual.Id).Select(x => x.Id).ToList(); var itens = itensLancamentosRepassesRecebidos.Where(x => idsPagos.Contains(x.IdRepasse.Value)); foreach (var item in itens) { item.IdServicoContratado = repassesRecebidos.FirstOrDefault(x => x.Id == item.IdRepasse).IdServicoContratado; } itemServico = itensLancamentosRepassesRecebidos.Where(x => idsPagos.Contains(x.IdRepasse.Value)).GroupBy(x => x.IdServicoContratado).FirstOrDefault(); } if (itemServico == null) { continue; } var valorRelatorio = new ValoresRelatorioRentabilidadeDto(); valorRelatorio.Descricao = "SERVIÇO:" + servicos.FirstOrDefault(x => x.Id == servicoAtual.Id).DescEscopo; valorRelatorio.Tipo = ""; valorRelatorio.Nivel = 4; valorRelatorio.IdServico = servicoAtual.Id; valorRelatorio.IdCelula = servicoAtual.IdCelula; valorRelatorio.IdCliente = servicos.FirstOrDefault(x => x.Id == servicoAtual.Id).IdCliente; CalcularValorFaturamentoServico(valorRelatorio, itemServico, celulas); CalcularValorAjusteFaturamento(valorRelatorio, itemServico, servicos.FirstOrDefault(x => x.Id == servicoAtual.Id), itensLancamentosRepassesPagos.ToList(), repassesPagos, celulas); CalcularValorFaturamentoAjusteServico(valorRelatorio, celulas); CalcularValorMarkup(valorRelatorio, itemServico, servicos.FirstOrDefault(x => x.Id == servicoAtual.Id), itensLancamentosRepassesPagos.ToList(), repassesPagos, celulas); CalcularValorDespesasGerais(valorRelatorio, itemServico, servicos.FirstOrDefault(x => x.Id == servicoAtual.Id), itensLancamentosRepassesPagos.ToList(), repassesPagos, celulas); CalcularValorDespesasSalario(valorRelatorio, itemServico, servicos.FirstOrDefault(x => x.Id == servicoAtual.Id), itensLancamentosRepassesPagos.ToList(), repassesPagos, celulas); CalcularValorDespesasCelula(valorRelatorio, itemServico, servicos.FirstOrDefault(x => x.Id == servicoAtual.Id), itensLancamentosRepassesPagos.ToList(), repassesPagos, celulas); CalcularValorTotalDespesa(valorRelatorio, itemServico); CalcularValorImpostoRepasse(valorRelatorio, itensLancamentosRepassesPagos.ToList(), repassesPagos, servicoAtual, celulas); CalcularValorRepassePago(valorRelatorio, itensLancamentosRepassesPagos.ToList(), repassesPagos, servicoAtual, celulas); CalcularValorRepasseRecebido(valorRelatorio, itensLancamentosRepassesRecebidos.ToList(), repassesRecebidos, servicoAtual, celulas); CalcularValorLucroServico(valorRelatorio); CalcularValorPorcentagemLucroServico(valorRelatorio); valoresRelatorio.Add(valorRelatorio); } return(FiltrarTipoRelatorio(filtro, idCelulaSelecionada, celulaValidadas, valoresRelatorio)); }
private static void AdicionarRepasseInterno(List <EpmRepasse> repassesInternos, EpmRepasse repasse, CelulaEacessoService eacessoConnectionCelula) { if (repasse.Comments == null) { repasse.Comments = ""; } var novoComent = repasse.IdRepasseInterno != null?repasse.IdRepasseInterno.Value.ToString() + " - " : ""; var comment = repasse.Comments; repasse.Comments = novoComent + "Gerado pelo Modulo de Automacao de Horas - EPM INTERNO - " + repasse.Comments; if (repasse.IdCelulaProf != repasse.IdCelulaTec) { repasse.FlStatus = "NA"; } else { repasse.FlStatus = "AP"; } repasse.IdMoeda = eacessoConnectionCelula.ObterMoedaCelula(repasse.IdCelulaProf); repasse.TransferWork = 1; repasse.TransferRate = repasse.ActualCost; repasse.TransferCost = repasse.ActualCost; repasse.IdServicoCom = repasse.IdServicoProf.Value.ToString(); repassesInternos.Add(repasse); }
private static void AdicionarRepasseComercial(List <EpmRepasse> repassesComerciais, EpmRepasse repasse, CelulaEacessoService eacessoConnectionCelula) { repasse.FlStatus = "NA"; if (repasse.Comments == null) { repasse.Comments = ""; } var novoComent = repasse.IdRepasse != null?repasse.IdRepasse.Value.ToString() + " - " : ""; repasse.Comments = novoComent + "Gerado pelo Modulo de Automacao de Horas - EPM COMERCIAL - " + repasse.Comments; var idtecnico = repasse.IdServicoTec; if (int.TryParse(repasse.IdServicoCom, out int result)) { repasse.IdServicoTec = int.Parse(repasse.IdServicoCom); repasse.IdServicoCom = idtecnico.ToString(); repasse.IdMoeda = eacessoConnectionCelula.ObterMoedaCelula(repasse.IdCelulaTec); repassesComerciais.Add(repasse); } else { repasse.IdServicoTec = idtecnico; AdicionarLogGenerico("EPM COMERCIAL ERROR - repasse com id:" + repasse.Id + "não possui servico tecnico", ""); } }