コード例 #1
0
        public void Deve_Permitir_Movimentar_Esteira()
        {
            Encomenda encomenda = new Encomenda
            {
                PontoRetiradaId = Guid.NewGuid(),
                PontoVendaId    = Guid.NewGuid(),
                DataPedido      = DateTime.Now,
                NumeroPedido    = "HUFHYGD-8956-UID87",
                NotaFiscal      = "745230",
            };

            encomenda.CriarNovaHistoria(TipoMovimento.EsteiraIniciada);
            encomenda.CriarNovaHistoria(TipoMovimento.EnviadoPontoRetirada);
            encomenda.CriarNovaHistoria(TipoMovimento.RecebidoPontoRetirada);


            Assert.True(encomenda.PodeMovimentar());
        }
コード例 #2
0
        private async Task ValidarMovimentacao(Guid encomendaId, Guid empresaId, TipoMovimento movimento, Encomenda encomenda)
        {
            if (encomenda == null)
            {
                _logger.LogWarning($"Data: ${DateTime.Now} | EncomendaId: ${encomendaId} | EmpresaId: ${empresaId}");
                throw new RecebaFacilException("Encomenda não encontrada");
            }

            if (!encomenda.PodeMovimentar())
            {
                _logger.LogWarning($"Data: ${DateTime.Now} | EncomendaId: ${encomendaId} | EmpresaId: ${empresaId} | Movimento pretendido: ${movimento}");
                throw new RecebaFacilException("Situação atual não permite movimentação");
            }

            var empresa = await _empresaService.ObterPorId(empresaId);

            if (!encomenda.ObterMovimentosPermitidos(empresa.TipoEmpresa).Contains(movimento))
            {
                _logger.LogWarning($"Data: ${DateTime.Now} | EncomendaId: ${encomendaId} | EmpresaId: ${empresaId} | Movimento pretendido: ${movimento}");
                throw new RecebaFacilException("Movimentação inválida");
            }
        }