示例#1
0
        public void ValidarEImprimirEtiquetaLote(ImprimirEtiquetaLoteRequest requisicao)
        {
            if (requisicao.IdLote <= 0)
            {
                throw new BusinessException("O lote deve ser informado.");
            }

            var lote = _unitOfWork.LoteRepository.GetById(requisicao.IdLote);

            if (lote == null)
            {
                throw new BusinessException("O lote não foi encontrado.");
            }

            if (requisicao.IdProduto <= 0)
            {
                throw new BusinessException("O produto deve ser informado.");
            }

            var produto = _unitOfWork.ProdutoRepository.GetById(requisicao.IdProduto);

            if (produto == null)
            {
                throw new BusinessException("O produto não foi encontrado.");
            }

            var loteProduto = _unitOfWork.LoteProdutoRepository.PesquisarProdutoNoLote(requisicao.IdEmpresa, requisicao.IdLote, requisicao.IdProduto);

            if (loteProduto == null)
            {
                throw new BusinessException("O produto não pertence ao lote.");
            }

            if (requisicao.QuantidadeProdutos > loteProduto.Saldo)
            {
                throw new BusinessException("Saldo do produto no lote insuficiente.");
            }

            ImprimirEtiquetaArmazenagemVolume(new ImprimirEtiquetaArmazenagemVolume()
            {
                NroLote             = requisicao.IdLote,
                ReferenciaProduto   = produto.Referencia,
                QuantidadeEtiquetas = requisicao.QuantidadeEtiquetas,
                QuantidadePorCaixa  = requisicao.QuantidadeProdutos,
                Usuario             = _unitOfWork.PerfilUsuarioRepository.GetByUserId(requisicao.IdUsuario)?.Nome,
                IdImpressora        = requisicao.IdImpressora,
                IdEmpresa           = requisicao.IdEmpresa
            });

            var gravarHistoricoColetorRequisciao = new GravarHistoricoColetorRequisicao
            {
                IdColetorAplicacao     = ColetorAplicacaoEnum.Armazenagem,
                IdColetorHistoricoTipo = ColetorHistoricoTipoEnum.ImprimirEtiqueta,
                Descricao = $"Imprimiu a etiqueta do lote {requisicao.IdLote} do(s) produto() {produto.Referencia}",
                IdEmpresa = requisicao.IdEmpresa,
                IdUsuario = requisicao.IdUsuario
            };

            _coletorHistoricoService.GravarHistoricoColetor(gravarHistoricoColetorRequisciao);
        }
示例#2
0
        public IHttpActionResult ImprimirEtiquetaLote(ImprimirEtiquetaLoteRequisicao requisicao)
        {
            if (!ModelState.IsValid)
            {
                return(ApiBadRequest(ModelState));
            }
            else
            {
                try
                {
                    var request = new ImprimirEtiquetaLoteRequest
                    {
                        IdLote              = requisicao.IdLote,
                        IdProduto           = requisicao.IdProduto,
                        IdImpressora        = requisicao.IdImpressora,
                        QuantidadeProdutos  = requisicao.QuantidadeProdutos,
                        QuantidadeEtiquetas = requisicao.QuantidadeEtiquetas,
                        IdUsuario           = IdUsuario,
                        IdEmpresa           = IdEmpresa
                    };

                    _etiquetaService.ValidarEImprimirEtiquetaLote(request);
                }
                catch (BusinessException ex)
                {
                    return(ApiBadRequest(ex.Message));
                }

                return(ApiOk());
            }
        }