public ActionResult EntradaConferenciaGarantia(long id) { var garantia = _uow.GarantiaRepository.GetById(id); var notafiscal = _uow.NotaFiscalRepository.GetById(garantia.IdNotaFiscal); //Valida o Garantia. if (garantia == null) { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, "Garantia não encontrado. Por favor, tente novamente!")); } //Captura o Usuário que está iniciando a conferência. var usuario = _uow.PerfilUsuarioRepository.GetByUserId(User.Identity.GetUserId()); var empresaConfig = _uow.EmpresaConfigRepository.ConsultarPorIdEmpresa(IdEmpresa); if (empresaConfig == null) { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, "As configurações da empresa não foram encontradas. Por favor, tente novamente!")); } var model = new GarantiaEntradaConferenciaViewModel { IdNotaFiscal = garantia.NotaFiscal.IdNotaFiscal, IdGarantia = garantia.IdGarantia, NumeroNotaFiscal = string.Concat(garantia.NotaFiscal.Numero, " - ", garantia.NotaFiscal.Serie), IdUuarioConferente = usuario.UsuarioId, NomeConferente = usuario.Nome, DataDaSolicitacao = garantia.DataRecebimento.ToString("dd/MM/yyyy"), Cliente = notafiscal.Cliente.RazaoSocial, Fornecedor = string.Concat(notafiscal.Fornecedor.IdFornecedor, " - ", notafiscal.Fornecedor.NomeFantasia), Representante = notafiscal.Cliente.RepresentanteExterno.Nome ?? notafiscal.Cliente.RepresentanteInterno.Nome //Cliente = garantia //DataHoraRecebimento = lote.DataRecebimento.ToString("dd/MM/yyyy HH:mm"), //NomeFornecedor = lote.NotaFiscal.Fornecedor.NomeFantasia, //QuantidadeVolume = lote.QuantidadeVolume, //TipoConferencia = empresaConfig.TipoConferencia.Descricao, //IdTipoConferencia = empresaConfig.TipoConferencia.IdTipoConferencia.GetHashCode() }; if (!garantia.DataInicioConferencia.HasValue) { garantia.DataInicioConferencia = DateTime.Now; _uow.SaveChanges(); } ////Se o tipo da conferência for, o usuário não poderá informar a quantidade por caixa e quantidade de caixa. ////Sabendo disso, atribui 1 para os campos. //if (empresaConfig.TipoConferencia.IdTipoConferencia == TipoConferenciaEnum.ConferenciaCemPorcento) //{ // model.QuantidadePorCaixa = 1; // model.QuantidadeCaixa = 1; //} return(View(model)); }
public async Task <ActionResult> ObterDadosReferenciaConferenciaGarantia(string codigoBarrasOuReferencia, long idGarantia, long idNotaFiscal) { //Validações do produto. var conferencia = _conferenciaService.ValidarProdutoGarantia(idGarantia, idNotaFiscal, codigoBarrasOuReferencia, IdEmpresa); if (!conferencia.Sucesso) { return(Json(new AjaxGenericResultModel { Success = conferencia.Sucesso, Message = conferencia.Mensagem })); } //Captura as quantidade conferida e não conferida do lote. int quantidadeConferida = 0; int quantidadeNaoConferida = 0; //_conferenciaService.ConsultarQuantidadeConferidaENaoConferidaGarantia(conferencia.Garantia, conferencia.Produto, ref quantidadeConferida, ref quantidadeNaoConferida); //Captura o Usuário que está iniciando a conferência novamente. var usuario = _uow.PerfilUsuarioRepository.GetByUserId(User.Identity.GetUserId()); var model = new GarantiaEntradaConferenciaViewModel { Descricao = conferencia.Produto.Descricao, Fabricante = conferencia.Produto.NomeFabricante, Unidade = conferencia.Produto.UnidadeMedida.Sigla //IdNotaFiscal = conferencia.Lote.NotaFiscal.IdNotaFiscal, //IdLote = conferencia.Lote.IdLote, //NumeroNotaFiscal = string.Concat(conferencia.Lote.NotaFiscal.Numero, " - ", conferencia.Lote.NotaFiscal.Serie), //IdUuarioConferente = usuario.UsuarioId, //NomeConferente = usuario.Nome, //DataHoraRecebimento = conferencia.Lote.DataRecebimento.ToString("dd/MM/yyyy HH:mm"), //NomeFornecedor = conferencia.Lote.NotaFiscal.Fornecedor.NomeFantasia, //QuantidadeVolume = conferencia.Lote.QuantidadeVolume, //TipoConferencia = conferencia.EmpresaConfig.TipoConferencia.Descricao, //IdTipoConferencia = conferencia.EmpresaConfig.TipoConferencia.IdTipoConferencia.GetHashCode(), //Referencia = conferencia.Produto.Referencia, //DescricaoReferencia = conferencia.Produto.Descricao, //Embalagem = conferencia.Produto.MultiploVenda.ToString("N2"), //Unidade = conferencia.Produto.UnidadeMedida.Sigla, //QuantidadeEstoque = conferencia.ProdutoEstoque == null ? 0 : conferencia.ProdutoEstoque.Saldo, //QuantidadeNaoConferida = quantidadeNaoConferida, //QuantidadeConferida = quantidadeConferida, //InicioConferencia = DateTime.Now.ToString(), //QuantidadePorCaixa = null, //Multiplo = conferencia.Produto.MultiploVenda, //QuantidadeReservada = await _produtoService.ConsultarQuantidadeReservada(conferencia.Produto.IdProduto, IdEmpresa), //MediaVenda = conferencia.ProdutoEstoque.MediaVenda.HasValue ? conferencia.ProdutoEstoque.MediaVenda.Value.ToString("N2") : string.Empty, //QuantidadeCaixa = conferencia.EmpresaConfig.IdTipoConferencia == TipoConferenciaEnum.ConferenciaCemPorcento ? 1 : null as int? }; string json = JsonConvert.SerializeObject(model); return(Json(new AjaxGenericResultModel { Success = true, Message = conferencia.Mensagem, Data = json })); }