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