/// <summary> /// Importa Mãos de Obra de um determinado Centro de Custo através da interface com aplicação externa. /// Gera um novo Lote para Mês e Ano determinados. /// </summary> /// <param name="centroCustoId">Identificação do centro de custo</param> /// <param name="ano">Ano referente aos custos</param> /// <param name="mes">Mês referente aos custos</param> /// <returns>DTO de Lote de Mão de Obra gerado.</returns> public LoteMaoDeObraDto Importar(int centroCustoId, int aditivoId, int ano, int mes) { CentroCusto centroCusto = CentroCustoDao.Instance.ConsultarCentroCusto(centroCustoId); RubricaMes rubricaMes = RubricaMesBo.Instance.ResgatarRubricaMes(centroCustoId, TipoRubricaId, aditivoId, ano, mes); int codigoImportacao = MaosDeObraExterno.ConsultarCodigoImportacao(centroCusto.Codigo, ano, mes); var novoLote = new LoteMaoDeObra { DataAtualizacao = DateTime.Now, CentroCustoImportacao = centroCustoId, RubricaMesId = rubricaMes.RubricaMesId, CodigoImportacao = codigoImportacao }; MaosDeObraDao.SalvarLote(novoLote); List <MaoDeObraDto> maosDeObraDto = MaosDeObraExterno.ConsultarMaosDeObra(centroCusto.Codigo, ano, mes); foreach (MaoDeObraDto maoDeObraDto in maosDeObraDto) { maoDeObraDto.PercentualAlocacao = 100; maoDeObraDto.LoteId = novoLote.LoteId; MaosDeObraDao.SalvarMaoDeObra(maoDeObraDto.FromDto()); } return(novoLote.ToDto()); }
/// <summary> /// Compara as versões da importação do Wex com a do Totvs para uma determinada data /// </summary> /// <param name="centroCustoId">Identificação do centro de custo</param> /// <param name="ano">Ano referente aos custos</param> /// <param name="mes">Mês referente aos custos</param> /// <returns>Verdadeiro quando houver uma nova atualização de importação</returns> /// <exception cref="WexProject.BLL.Exceptions.Geral.EntidadeNaoEncontradaException"> /// Quando o centro de custo ou lote não /// for encontrado /// </exception> public Boolean VerificarNovaAtualizacao(int centroCustoId, int ano, int mes) { CentroCusto centroCusto = CentroCustoDao.Instance.ConsultarCentroCusto(centroCustoId); if (centroCusto == null) { throw new EntidadeNaoEncontradaException("Centro de custo não encontrado."); } LoteMaoDeObra lote = MaosDeObraDao.ConsultarLote(centroCustoId, ano, mes); if (lote == null) { throw new EntidadeNaoEncontradaException(String.Format("Nenhum lote encontrado no mês de {0} de {1}.", Enum.GetName(typeof(CsMesDomain), mes), ano)); } int codigoImportacaoAtual = MaosDeObraExterno.ConsultarCodigoImportacao(centroCusto.Codigo, ano, mes); return(lote.CodigoImportacao != codigoImportacaoAtual); }