/// <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);
        }