Esempio n. 1
0
        public IHttpActionResult ImprimirEtiquetaProduto(ImprimirEtiquetaProdutoRequisicao requisicao)
        {
            if (requisicao.IdImpressaoItem == (int)ImpressaoItemEnum.EtiquetaAvulso)
            {
                ModelState.Remove(nameof(requisicao.ReferenciaProduto));
            }

            if (!ModelState.IsValid)
            {
                return(ApiBadRequest(ModelState));
            }
            else
            {
                try
                {
                    switch (requisicao.IdImpressaoItem)
                    {
                    case (int)ImpressaoItemEnum.EtiquetaAvulso:
                        _etiquetaService.ImprimirEtiquetaAvulso(new ImprimirEtiquetaAvulsoRequest
                        {
                            IdEmpresa           = IdEmpresa,
                            IdImpressora        = requisicao.IdImpressora,
                            QuantidadeEtiquetas = requisicao.QuantidadeEtiquetas,
                            IdUsuario           = IdUsuario,
                            ReferenciaProduto   = requisicao.ReferenciaProduto
                        });
                        break;

                    case (int)ImpressaoItemEnum.EtiquetaIndividual:
                        _etiquetaService.ImprimirEtiquetaPeca(new ImprimirEtiquetaProdutoBase
                        {
                            IdEmpresa           = IdEmpresa,
                            IdImpressora        = requisicao.IdImpressora,
                            ReferenciaProduto   = requisicao.ReferenciaProduto,
                            QuantidadeEtiquetas = requisicao.QuantidadeEtiquetas,
                            IdUsuario           = IdUsuario
                        });
                        break;

                    case (int)ImpressaoItemEnum.EtiquetaPersonalizada:
                        _etiquetaService.ImprimirEtiquetaPersonalizada(new ImprimirEtiquetaProdutoBase
                        {
                            IdEmpresa           = IdEmpresa,
                            IdImpressora        = requisicao.IdImpressora,
                            ReferenciaProduto   = requisicao.ReferenciaProduto,
                            QuantidadeEtiquetas = requisicao.QuantidadeEtiquetas,
                            IdUsuario           = IdUsuario
                        });
                        break;

                    default:
                        return(ApiBadRequest("Tipo da impressão não existe."));
                    }
                }
                catch (BusinessException ex)
                {
                    return(ApiBadRequest(ex.Message));
                }

                return(ApiOk());
            }
        }
Esempio n. 2
0
        public JsonResult Imprimir(RecebimentoEtiquetaIndividualPersonalizadaViewModel viewModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Json(new AjaxGenericResultModel
                    {
                        Success = false,
                        Message = "Não foi possível solicitar impressão."
                    }));
                }

                if (viewModel.TipoEtiquetagem == Data.Models.TipoEtiquetagemEnum.Individual.GetHashCode())
                {
                    var produto = _unitOfWork.ProdutoRepository.GetById(viewModel.IdProduto.Value);

                    if (produto == null)
                    {
                        return(Json(new AjaxGenericResultModel
                        {
                            Success = false,
                            Message = "Rerência não encontrada. Por favor, tente novamente!"
                        }));
                    }

                    var request = new ImprimirEtiquetaProdutoBase
                    {
                        IdImpressora        = viewModel.IdImpressora.GetValueOrDefault(),
                        IdEmpresa           = IdEmpresa,
                        QuantidadeEtiquetas = viewModel.Quantidade.Value,
                        ReferenciaProduto   = produto.Referencia,
                        IdUsuario           = IdUsuario
                    };

                    _etiquetaService.ImprimirEtiquetaPeca(request);
                }
                else if (viewModel.TipoEtiquetagem == Data.Models.TipoEtiquetagemEnum.Personalizada.GetHashCode())
                {
                    var produto = _unitOfWork.ProdutoRepository.GetById(viewModel.IdProduto.Value);

                    if (produto == null)
                    {
                        return(Json(new AjaxGenericResultModel
                        {
                            Success = false,
                            Message = "Rerência não encontrada. Por favor, tente novamente!"
                        }));
                    }

                    var request = new ImprimirEtiquetaProdutoBase
                    {
                        IdImpressora        = viewModel.IdImpressora.GetValueOrDefault(),
                        IdEmpresa           = IdEmpresa,
                        QuantidadeEtiquetas = viewModel.Quantidade.Value,
                        ReferenciaProduto   = produto.Referencia,
                        IdUsuario           = IdUsuario
                    };

                    _etiquetaService.ImprimirEtiquetaPersonalizada(request);
                }
                else if (viewModel.TipoEtiquetagem == Data.Models.TipoEtiquetagemEnum.Avulso.GetHashCode())
                {
                    var requestAvulso = new ImprimirEtiquetaAvulsoRequest
                    {
                        IdEmpresa           = IdEmpresa,
                        IdImpressora        = viewModel.IdImpressora.GetValueOrDefault(),
                        QuantidadeEtiquetas = viewModel.Quantidade.Value,
                        IdUsuario           = IdUsuario
                    };

                    _etiquetaService.ImprimirEtiquetaAvulso(requestAvulso);
                }

                // TODO: verificar, pois a Individual imprime 2 tipos de etiqueta
                var logEtiquetagem = new LogEtiquetagem
                {
                    IdTipoEtiquetagem = viewModel.TipoEtiquetagem,
                    IdEmpresa         = IdEmpresa,
                    IdProduto         = viewModel.IdProduto,
                    Quantidade        = viewModel.Quantidade.Value,
                    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));
            }
        }