public IHttpActionResult ImprimirEtiquetaPicking(ImprimirEtiquetaPickingRequisicao requisicao) { if (!ModelState.IsValid) { return(ApiBadRequest(ModelState)); } try { var requisicaoServico = new ImprimirEtiquetaPickingRequest { IdEnderecoArmazenagem = requisicao.IdEnderecoArmazenagem, IdProduto = requisicao.IdProduto, IdImpressora = requisicao.IdImpressora }; _etiquetaService.ImprimirEtiquetaPicking(requisicaoServico); return(ApiOk()); } catch (BusinessException ex) { return(ApiBadRequest(ex.Message)); } }
public JsonResult ImprimirEtiqueta(ProdutoImpressaoViewModel viewModel) { try { ValidateModel(viewModel); if (viewModel.TipoImpressaoEtiqueta == TipoImpressaoEtiqueta.PICKING) { var request = new ImprimirEtiquetaPickingRequest { IdEnderecoArmazenagem = viewModel.IdEnderecoArmazenagem, IdProduto = viewModel.IdProduto, QuantidadeEtiquetas = 1, IdImpressora = viewModel.IdImpressora }; _etiquetaService.ImprimirEtiquetaPicking(request); } else { _etiquetaService.ImprimirEtiquetaFilete(viewModel.IdProduto, viewModel.IdEnderecoArmazenagem, viewModel.IdImpressora); } return(Json(new AjaxGenericResultModel { Success = true, Message = "Impressão enviada com sucesso." }, JsonRequestBehavior.AllowGet)); } catch (Exception exception) { if (exception is BusinessException) { return(Json(new AjaxGenericResultModel { Success = false, Message = exception.Message }, JsonRequestBehavior.AllowGet)); } else { _log.Error(exception.Message, exception); throw; } } }
public void ImprimirEtiquetaPicking(ImprimirEtiquetaPickingRequest request) { Produto produto = _unitOfWork.ProdutoRepository.GetById(request.IdProduto); if (produto == null) { throw new BusinessException("Produto não encontrado."); } EnderecoArmazenagem endereco = _unitOfWork.EnderecoArmazenagemRepository.GetById(request.IdEnderecoArmazenagem); if (endereco == null) { throw new BusinessException("Endereço não encontrado."); } string referenciaProduto = produto.Referencia; string codigoEndereco = endereco.Codigo ?? string.Empty; string idEnderecoFormatado = endereco.IdEnderecoArmazenagem.ToString().PadLeft(7, '0'); var etiquetaZpl = new StringBuilder(); etiquetaZpl.AppendLine($"^XA"); etiquetaZpl.AppendLine($"^FO16,20^GB270,880,200^FS"); etiquetaZpl.AppendLine($"^FO55,85^FB430,1,0,C,0^A0B,250,60^FR^FD{referenciaProduto}^FS"); etiquetaZpl.AppendLine($"^FO370,45^A0B,180,110^FD{codigoEndereco}^FS"); etiquetaZpl.AppendLine($"^FO600,180^BCR,100,N,N^FD{idEnderecoFormatado}^FS"); etiquetaZpl.AppendLine($"^XZ"); byte[] etiqueta = Encoding.ASCII.GetBytes(etiquetaZpl.ToString()); _impressoraService.Imprimir(etiqueta, request.IdImpressora); }