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()); } }
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)); } }