public IHttpActionResult ImprimirEtiquetaEndereco(ImprimirEtiquetaEnderecoRequisicao requisicao) { if (!ModelState.IsValid) { return(ApiBadRequest(ModelState)); } try { var requisicaoServico = new ImprimirEtiquetaEnderecoRequest { IdEnderecoArmazenagem = requisicao.IdEnderecoArmazenagem, IdImpressora = requisicao.IdImpressora, TipoImpressao = requisicao.TipoImpressao, IdUsuario = IdUsuario, IdEmpresa = IdEmpresa }; _etiquetaService.ImprimirEtiquetaEndereco(requisicaoServico); } catch (BusinessException ex) { return(ApiBadRequest(ex.Message)); } return(ApiOk()); }
public JsonResult ImprimirEtiqueta(EnderecoArmazenagemEtiquetaViewModel viewModel) { try { ValidateModel(viewModel); var request = new ImprimirEtiquetaEnderecoRequest { IdEnderecoArmazenagem = viewModel.IdEnderecoArmazenagem, IdImpressora = viewModel.IdImpressora, TipoImpressao = viewModel.TipoImpressao }; _etiquetaService.ImprimirEtiquetaEndereco(request); 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 ImprimirEtiquetaEndereco(ImprimirEtiquetaEnderecoRequest request) { var endereco = _unitOfWork.EnderecoArmazenagemRepository.GetById(request.IdEnderecoArmazenagem); if (endereco == null) { throw new BusinessException("Endereço não encontrado."); } var codigoEnderecoFormatado = endereco.Codigo ?? string.Empty; var idEnderecoFormatado = endereco.IdEnderecoArmazenagem.ToString().PadLeft(7, '0'); var etiquetaZpl = new StringBuilder(); if (request.TipoImpressao == EtiquetaEnderecoTipoImpressao.NORMAL_90_70) { etiquetaZpl.AppendLine("^XA"); etiquetaZpl.AppendLine("^LL880"); //Código diferente do Clipper que define quantidade de etiquetas a serem impressas etiquetaZpl.AppendLine($"^PQ{request.QuantidadeEtiquetas}^FS"); etiquetaZpl.AppendLine("^FO16,20^GB696,520,8^FS"); etiquetaZpl.AppendLine("^FO16,20^GB350,520,200^FS"); etiquetaZpl.AppendLine($"^FO95,20^FB500,1,0,C,0^A0B,240,100^FR^FD{codigoEnderecoFormatado}^FS"); etiquetaZpl.AppendLine($"^FO450,160^BCB,135,Y,N^FD{idEnderecoFormatado}^FS"); etiquetaZpl.AppendLine("^XZ"); } else { etiquetaZpl.AppendLine("^XA"); etiquetaZpl.AppendLine("^LL176"); // Define quantidade de etiquetas a imprimir etiquetaZpl.AppendLine($"^PQ{request.QuantidadeEtiquetas}^FS"); // Contorno da etiqueta etiquetaZpl.AppendLine("^FO5,10^GB900,180,8^FS"); // Fundo do texto de endereço etiquetaZpl.AppendLine("^FO5,10^GB380,180,170^FS"); // Texto do endereço etiquetaZpl.AppendLine($"^FO5,20^FB380,1,0,C,0^A0N,200,85^FR^FD{codigoEnderecoFormatado}^FS"); // Código de barras do endereço etiquetaZpl.AppendLine($"^FO415,35^BY3,,110^BCN,,Y,N^FD{idEnderecoFormatado}^FS"); etiquetaZpl.AppendLine("^XZ"); } byte[] etiqueta = Encoding.ASCII.GetBytes(etiquetaZpl.ToString()); _impressoraService.Imprimir(etiqueta, request.IdImpressora); var gravarHistoricoColetorRequisicao = new GravarHistoricoColetorRequisicao { IdColetorAplicacao = ColetorAplicacaoEnum.Armazenagem, IdColetorHistoricoTipo = ColetorHistoricoTipoEnum.ImprimirEtiqueta, Descricao = $"Imprimiu a etiqueta de endereço com o código {endereco.Codigo}", IdEmpresa = request.IdEmpresa, IdUsuario = request.IdUsuario }; _coletorHistoricoService.GravarHistoricoColetor(gravarHistoricoColetorRequisicao); }