/// <summary> /// Método para popular a tabela de notas fiscais do Wex a partir do banco do Microsiga /// descosiderando notas fiscais importadas anteriormente /// </summary> private void ImportarNotasFiscais() { List <NotaFiscal> notasFiscaisTotvs = NotasFiscaisDao.ListaRubricasTotvs().ToList(); // normalizando acentuacao das descricoes List <string> descricoes = DescricoesFiltradas.Select(StrUtil.NormalizarAcentuacao).ToList(); // removendo (filtrando) descricoes da lista do totvs notasFiscaisTotvs.RemoveAll(notaFiscal => descricoes.Contains(StrUtil.NormalizarAcentuacao(notaFiscal.Descricao.Trim()))); // removendo notas fiscais já importados notasFiscaisTotvs.RemoveAll(notaFiscal => NotasFiscaisDao.VerificarNotasFiscaisImportadas(notaFiscal.ChaveImportacao)); // salvando novos notas fiscais no wex foreach (NotaFiscal notaFiscal in notasFiscaisTotvs) { // centro de custo nao veio na listagem dos notas fiscais no totvs if (notaFiscal.CentroCusto == null) { continue; } CentroCusto centroCusto = CentroCustoDao.Instance.ConsultarCentroCustoPorCodigo(notaFiscal.CentroCusto.Codigo); notaFiscal.CentroCusto = null; notaFiscal.CentroDeCustoId = centroCusto.CentroCustoId; NotasFiscaisDao.SalvarNotaFiscal(notaFiscal); } }
/// <summary> /// Remove Rúbrica se estiver vazia ou se force for igual a true. /// </summary> /// <param name="rubricaId">Id da Rúbrica a ser excluída.</param> /// <param name="force">Indica se Rúbrica deve ser excluída quando não estiver vazia.</param> /// <param name="filhos">Lista de Rúbricas filhas da Rúbrica a ser deletada.</param> /// <returns>Id da Rúbrica removida.</returns> /// <exception cref="RubricaNaoVaziaException">Caso Rúbrica não esteja vazia e force for igual a false.</exception> public int RemoverRubrica(int rubricaId, bool force, out List <int> filhos) { Rubrica rubrica = RubricaDao.Instance.ConsultarRubrica(rubricaId); if (force || VerificarRubricaVazia(rubrica)) { var notasFiscais = NotasFiscaisDao.ConsultarNotasFiscais(rubrica); foreach (var notaFiscal in notasFiscais) { NotasFiscaisBo.Instance.DesassociarNotaFiscal(rubrica.RubricaId, notaFiscal.Id); } var rubricasMeses = RubricaMesDao.Instance.ConsultarRubricaMeses(rubrica.RubricaId); foreach (var rubricaMes in rubricasMeses) { RubricaMesDao.Instance.RemoverRubricaMes(rubricaMes.RubricaMesId); } return(RubricaDao.Instance.RemoverRubrica(rubricaId, out filhos)); } throw new RubricaNaoVaziaException(String.Format("Rúbrica {0} não está vazia. Use force para remover.", rubricaId)); }
public IEnumerable <NotaFiscalDto> ListarNotasFiscais(RubricaDto rubricaDto) { var rubrica = new Rubrica { RubricaId = rubricaDto.RubricaId }; return(NotasFiscaisDao.ConsultarNotasFiscais(rubrica).Select(TransformarParaDto)); }
/// <summary> /// Lista as notas fiscais de um determinado Centro de Custo em uma data específica /// </summary> /// <param name="centroCustoDto">Centro de Custo</param> /// <param name="ano">ano selecionado</param> /// <param name="mes">mês selecionado</param> /// <returns></returns> public IEnumerable <NotaFiscalDto> ListarNotasFiscais(CentroCustoDto centroCustoDto, int ano, int mes) { var centroCusto = new CentroCusto { CentroCustoId = centroCustoDto.IdCentroCusto }; return(NotasFiscaisDao.ConsultarNotasFiscais(centroCusto, ano, mes).Select(TransformarParaDto)); }
/// <summary> /// Desassociar nota fiscal de uma rubrica /// </summary> /// <param name="rubricaId">Id da rubrica</param> /// <param name="notaFiscalId">Nota fiscal a ser desassociada.</param> public void DesassociarNotaFiscal(int rubricaId, int notaFiscalId) { NotaFiscal notaFiscal = NotasFiscaisDao.ConsultarNotaFiscal(notaFiscalId); notaFiscal.RubricaId = null; NotasFiscaisDao.SalvarNotaFiscal(notaFiscal); RubricaMesBo.Instance.AtualizarDespesaReal(rubricaId); }
/// <summary> /// Popular centros de custo /// </summary> /// <returns>Booleano</returns> private void ImportarCentrosCustos() { // resgatando centros de custo do totvs List <CentroCusto> centrosCustos = NotasFiscaisDao.ListarCentroDeCustosTotvs().ToList(); // removendo centros de custo já importados centrosCustos.RemoveAll( centro => CentroCustoDao.Instance.ConsultarCentroCustoPorCodigo(centro.Codigo) != null); foreach (CentroCusto centro in centrosCustos) { CentroCustoDao.Instance.SalvarCentroCusto(centro); } }
public static NotaFiscal CriarNotaFiscal(DateTime data, int idCentroCusto, string descricao, decimal valor, int chaveImportacao) { var notaFiscal = new NotaFiscal { Data = data, CentroDeCustoId = idCentroCusto, Descricao = descricao, Valor = valor, ChaveImportacao = chaveImportacao }; NotasFiscaisDao.SalvarNotaFiscal(notaFiscal); return(notaFiscal); }
/// <summary> /// </summary> /// <param name="notaFiscalDto"></param> public void AtualizarNotaFiscal(NotaFiscalDto notaFiscalDto) { NotaFiscal notaFiscal = NotasFiscaisDao.ConsultarNotaFiscal(notaFiscalDto.GastoId); int?rubricaIdAntiga = notaFiscal.RubricaId; notaFiscal.RubricaId = notaFiscalDto.RubricaId; notaFiscal.Justificativa = notaFiscalDto.Justificativa; NotasFiscaisDao.SalvarNotaFiscal(notaFiscal); if (rubricaIdAntiga != notaFiscalDto.RubricaId) { RubricaMesBo.Instance.AtualizarDespesaReal(rubricaIdAntiga ?? 0); } }
/// <summary> /// Método para atualizar os gastos relacionados /// </summary> /// <param name="rubricaId">Id da rubrica</param> public void AtualizarDespesaReal(int rubricaId) { if (rubricaId == 0) { return; } Rubrica rubrica = RubricaDao.Instance.ConsultarRubrica(rubricaId); List <RubricaAnoDto> anosRubrica = RubricaBo.Instance.CriarListaAnosRubrica(rubrica); foreach (RubricaAnoDto anoRubrica in anosRubrica) { foreach (RubricaMesDto rubricaMesDto in anoRubrica.Meses) { List <NotaFiscal> notasFiscais = NotasFiscaisDao.ConsultarNotasFiscais(rubrica, rubricaMesDto.Ano, (int)rubricaMesDto.Mes).ToList(); DefinirDespesaReal(notasFiscais, rubricaMesDto); SalvarRubricaMes(rubricaMesDto); } } }