Beispiel #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;
                }
            }
        }
        public JsonResult LocacaoImprimir(LocacaoEtiquetaViewModel viewModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Json(new AjaxGenericResultModel
                    {
                        Success = false,
                        Message = "Não foi possível solicitar impressão."
                    }));
                }

                //Captura o ponto de armazenagem.
                var pontoArmazenagem = _unitOfWork.PontoArmazenagemRepository.GetById(viewModel.IdPontoArmazenagem);

                //Captura os enderços filtrando por nível, ponto e empresa.
                var listaEnderecos = _unitOfWork.EnderecoArmazenagemRepository.BuscarPorNivelEPontoArmazenagem(
                    pontoArmazenagem.IdNivelArmazenagem, pontoArmazenagem.IdPontoArmazenagem, IdEmpresa);

                //Filtra por corredor e vertical.
                listaEnderecos = listaEnderecos.Where(x => x.Corredor == viewModel.Corredor &&
                                                      (viewModel.VerticalInicio.HasValue == false || x.Vertical >= viewModel.VerticalInicio.Value) &&
                                                      (viewModel.VerticalFim.HasValue == false || x.Vertical <= viewModel.VerticalFim.Value)).ToList();

                var impressaoItem = _unitOfWork.ImpressaoItemRepository.Obter(viewModel.TipoEtiqueta);

                //Se a etiqueta for picking, filtra os endereços de picking.
                if (impressaoItem.IdImpressaoItem == Data.Models.ImpressaoItemEnum.EtiquetaPicking)
                {
                    listaEnderecos = listaEnderecos.Where(x => x.IsPicking == true).ToList();
                }
                else
                {
                    listaEnderecos = listaEnderecos.Where(x => x.IsPicking == false).ToList();
                }

                int quantidadeEtiqueta = 0;

                if (viewModel.TipoEtiqueta == (int)Data.Models.ImpressaoItemEnum.EtiquetaPicking)
                {
                    foreach (var item in listaEnderecos)
                    {
                        var produtoInstalado = _unitOfWork.LoteProdutoEnderecoRepository.PesquisarPorEndereco(item.IdEnderecoArmazenagem);

                        if (produtoInstalado != null)
                        {
                            if (viewModel.TamanhoEtiqueta == 1)
                            {
                                _etiquetaService.ImprimirEtiquetaPicking(new ImprimirEtiquetaPickingRequest()
                                {
                                    IdEnderecoArmazenagem = item.IdEnderecoArmazenagem,
                                    IdProduto             = produtoInstalado.IdProduto,
                                    IdImpressora          = viewModel.IdImpressora.Value,
                                    QuantidadeEtiquetas   = 1
                                });
                            }
                            else
                            {
                                _etiquetaService.ImprimirEtiquetaFilete(produtoInstalado.IdProduto,
                                                                        item.IdEnderecoArmazenagem, viewModel.IdImpressora.Value);
                            }

                            quantidadeEtiqueta++;
                        }
                    }

                    var logEtiquetagem = new LogEtiquetagem
                    {
                        IdTipoEtiquetagem = Data.Models.TipoEtiquetagemEnum.Picking.GetHashCode(),
                        IdEmpresa         = IdEmpresa,
                        Quantidade        = quantidadeEtiqueta,
                        IdUsuario         = User.Identity.GetUserId()
                    };

                    _logEtiquetagemService.Registrar(logEtiquetagem);
                }
                else
                {
                    foreach (var item in listaEnderecos)
                    {
                        _etiquetaService.ImprimirEtiquetaEndereco(new ImprimirEtiquetaEnderecoRequest()
                        {
                            IdEmpresa             = IdEmpresa,
                            IdEnderecoArmazenagem = item.IdEnderecoArmazenagem,
                            IdImpressora          = viewModel.IdImpressora.Value,
                            IdUsuario             = IdUsuario,
                            QuantidadeEtiquetas   = 1,
                            TipoImpressao         = viewModel.TamanhoEtiqueta == 1 ? EtiquetaEnderecoTipoImpressao.NORMAL_90_70 : EtiquetaEnderecoTipoImpressao.FILETE_104_24
                        });

                        quantidadeEtiqueta++;
                    }

                    var logEtiquetagem = new LogEtiquetagem
                    {
                        IdTipoEtiquetagem = Data.Models.TipoEtiquetagemEnum.Picking.GetHashCode(),
                        IdEmpresa         = IdEmpresa,
                        Quantidade        = quantidadeEtiqueta,
                        IdUsuario         = User.Identity.GetUserId()
                    };

                    _logEtiquetagemService.Registrar(logEtiquetagem);
                }


                return(Json(new AjaxGenericResultModel
                {
                    Success = true,
                    Message = "Impressão enviada com sucesso."
                }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                _log.Error(ex.Message, ex);

                return(Json(new AjaxGenericResultModel
                {
                    Success = false,
                    Message = "Ocorreu um erro na impressão."
                }, JsonRequestBehavior.AllowGet));
            }
        }