示例#1
0
        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;
                }
            }
        }
示例#2
0
        public IHttpActionResult ImprimirEtiquetaFilete(ImprimirEtiquetaFileteRequisicao requisicao)
        {
            if (!ModelState.IsValid)
            {
                return(ApiBadRequest(ModelState));
            }
            else
            {
                try
                {
                    _etiquetaService.ImprimirEtiquetaFilete(requisicao?.IdProduto ?? 0, requisicao?.IdEnderecoArmazenagem ?? 0, requisicao?.IdImpressora ?? 0);

                    return(ApiOk());
                }
                catch (BusinessException ex)
                {
                    return(ApiBadRequest(ex.Message));
                }
            }
        }
        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));
            }
        }