コード例 #1
0
        public void Registrar(LogEtiquetagem logEtiquetagem)
        {
            logEtiquetagem.DataHora = DateTime.Now;

            var log = new Data.Models.LogEtiquetagem()
            {
                IdEmpresa         = logEtiquetagem.IdEmpresa,
                IdProduto         = logEtiquetagem.IdProduto,
                IdTipoEtiquetagem = (Data.Models.TipoEtiquetagemEnum)logEtiquetagem.IdTipoEtiquetagem,
                DataHora          = DateTime.Now,
                IdUsuario         = logEtiquetagem.IdUsuario,
                Quantidade        = logEtiquetagem.Quantidade
            };

            _unitOfWork.LogEtiquetagemRepository.Add(log);

            _unitOfWork.SaveChanges();
        }
コード例 #2
0
        public JsonResult RecebimentoImprimir(RecebimentoEtiquetaViewModel viewModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Json(new AjaxGenericResultModel
                    {
                        Success = false,
                        Message = "Não foi possível solicitar impressão."
                    }));
                }

                _etiquetaService.ImprimirEtiquetaVolumeRecebimento(viewModel.NroLote.GetValueOrDefault(), viewModel.IdImpressora.GetValueOrDefault(), viewModel.NroVolume.GetValueOrDefault(), 1);

                // Lote: a quantidade salva é a quantidade de caixas/volume do lote.
                var logEtiquetagem = new LogEtiquetagem
                {
                    //IdTipoEtiquetagem = viewModel.TipoEtiquetagem,
                    IdTipoEtiquetagem = Data.Models.TipoEtiquetagemEnum.Recebimento.GetHashCode(),
                    IdEmpresa         = IdEmpresa,
                    Quantidade        = 1,
                    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));
            }
        }
コード例 #3
0
        public JsonResult LoteImprimir(LoteEtiquetaViewModel viewModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(Json(new AjaxGenericResultModel
                    {
                        Success = false,
                        Message = "Não foi possível solicitar impressão."
                    }));
                }

                //Instância a lote produto.
                var loteProduto = _unitOfWork.LoteProdutoRepository.PesquisarProdutoNoLote(IdEmpresa, viewModel.NroLote.Value, viewModel.IdProduto);

                if (loteProduto == null)
                {
                    return(Json(new AjaxGenericResultModel
                    {
                        Success = false,
                        Message = "Não foi possível consultar o saldo do lote. Por favor, tente nvoamente!"
                    }));
                }

                var quantidadeTotalProduto = viewModel.QtdCaixas * viewModel.QtdPorCaixa;

                //Verifica se o saldo do produto no lote é menor que a quantidade informada.
                if (loteProduto.Saldo < quantidadeTotalProduto)
                {
                    return(Json(new AjaxGenericResultModel
                    {
                        Success = false,
                        Message = "O saldo do produto no lote é menor que a quantidade informada. Por favor, tente novamente!"
                    }));
                }

                var produto = _unitOfWork.ProdutoRepository.GetById(viewModel.IdProduto);

                var request = new ImprimirEtiquetaArmazenagemVolume
                {
                    NroLote             = viewModel.NroLote.GetValueOrDefault(),
                    QuantidadeEtiquetas = viewModel.QtdCaixas.GetValueOrDefault(),
                    QuantidadePorCaixa  = viewModel.QtdPorCaixa.GetValueOrDefault(),
                    ReferenciaProduto   = produto.Referencia,
                    Usuario             = _unitOfWork.PerfilUsuarioRepository.GetByUserId(User.Identity.GetUserId())?.Nome,
                    IdImpressora        = viewModel.IdImpressora.GetValueOrDefault(),
                    IdEmpresa           = IdEmpresa
                };

                _etiquetaService.ImprimirEtiquetaArmazenagemVolume(request);

                // Lote: a quantidade salva é a quantidade de caixas/volume do lote.
                var logEtiquetagem = new LogEtiquetagem
                {
                    //IdTipoEtiquetagem = viewModel.TipoEtiquetagem,
                    IdTipoEtiquetagem = Data.Models.TipoEtiquetagemEnum.Lote.GetHashCode(),
                    IdEmpresa         = IdEmpresa,
                    Quantidade        = viewModel.QtdCaixas.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));
            }
        }
コード例 #4
0
        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));
            }
        }
コード例 #5
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));
            }
        }