Esempio n. 1
0
        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;
                }
            }
        }
Esempio n. 3
0
        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);
        }