Beispiel #1
0
        public JsonResult ValidarChaveAcessoIgualDaNFe(DetalhesQuarentenaViewModel model)
        {
            bool chaveNfeIgual = false;
            //bool existe = _uow.QuarentenaRepository.Any(x => x.Lote.NotaFiscal.ChaveAcesso == chaveAcesso);

            Quarentena quarentena = _uow.QuarentenaRepository.GetById(model.IdQuarentena);
            Lote       lote       = _uow.LoteRepository.GetById(quarentena.IdLote);


            if (lote.IdLoteStatus.GetHashCode() == 12)
            {
                //Valida chave de cesso
                var chaveValida = false;

                if (string.IsNullOrWhiteSpace(model.ChaveAcesso))
                {
                    return(Json(new AjaxGenericResultModel
                    {
                        Success = false,
                        Message = "Informe a chave de acesso da NF-e.",
                    }));
                }

                if (model.ChaveAcesso.Length != 44)
                {
                    return(Json(new AjaxGenericResultModel
                    {
                        Success = false,
                        Message = "Chave de acesso não possui 44 digitos.",
                    }));
                }


                if (lote.NotaFiscal.ChaveAcesso == model.ChaveAcesso)
                {
                    chaveNfeIgual = true;
                }
                else
                {
                    chaveNfeIgual = false;
                }

                if (!chaveNfeIgual)
                {
                    return(Json(new AjaxGenericResultModel
                    {
                        Success = false,
                        Message = "A chave de acesso informada não confere com a chave Nota Fiscal."
                    }));
                }
            }


            return(Json(new AjaxGenericResultModel
            {
                Success = true
            }));
        }
Beispiel #2
0
        public void Add(Quarentena entity, string IdUsuario)
        {
            var log = new QuarentenaHistorico {
                Data = DateTime.Now, Descricao = "Criação", IdQuarentena = entity.IdQuarentena, IdUsuario = IdUsuario
            };

            Entities.QuarentenaHistorico.Add(log);

            _dbSet.Add(entity);
        }
Beispiel #3
0
        private void CriarQuarentena(Lote lote, string IdUsuario)
        {
            Quarentena quarentena = new Quarentena()
            {
                DataAbertura       = DateTime.UtcNow,
                IdLote             = lote.IdLote,
                IdQuarentenaStatus = QuarentenaStatusEnum.Aberto
            };

            _uow.QuarentenaRepository.Add(quarentena, IdUsuario);
            _uow.SaveChanges();
        }
Beispiel #4
0
        public void Update(Quarentena entity, string IdUsuario, string descricao = null)
        {
            var entry = Entities.Entry(entity);

            _dbSet.Attach(entity);
            entry.State = EntityState.Modified;

            string _descricao = descricao ?? $"Atualização - Status: {entity.QuarentenaStatus.Descricao}. Observação: {entity.Observacao}";

            var log = new QuarentenaHistorico {
                Data = DateTime.Now, Descricao = _descricao, IdQuarentena = entity.IdQuarentena, IdUsuario = IdUsuario
            };

            Entities.QuarentenaHistorico.Add(log);
        }
        public byte[] GerarTermoResponsabilidade(TermoResponsabilidadeRequest request)
        {
            _document = new Document();
            _request  = request;

            _Quarentena    = _uow.QuarentenaRepository.All().First(x => x.IdQuarentena == request.IdQuarentena);
            _OldQuarentena = _uow.QuarentenaRepository.All().First(x => x.IdQuarentena == request.IdQuarentena);

            GeraCodConfirmacao();

            DefineStyles();
            IniciaDoc();
            CriaLabelPaginacao();
            CriaIdentificacao();
            CriarConteudo();

            AtualizaCodConfirmacaoQuarentena();

            return(Renderizar());
        }
Beispiel #6
0
        public JsonResult DetalhesQuarentena(DetalhesQuarentenaViewModel model)
        {
            ValidateModel(model);
            string mensagemErro = null;

            if (model.IdStatus == QuarentenaStatusEnum.Retirado)
            {
                if (string.IsNullOrEmpty(model.CodigoConfirmacao))
                {
                    ModelState.AddModelError(nameof(model.CodigoConfirmacao), (mensagemErro = "O código de confirmação é obrigatório para retirar a mercadoria."));
                }
                else
                {
                    bool existeCod = _uow.QuarentenaRepository.Any(x => x.IdQuarentena == model.IdQuarentena && x.CodigoConfirmacao == model.CodigoConfirmacao);

                    if (!existeCod)
                    {
                        ModelState.AddModelError(nameof(model.CodigoConfirmacao), (mensagemErro = "O código de confirmação está incorreto!"));
                    }
                }
            }

            //Valida a model.
            if (!ModelState.IsValid)
            {
                return(Json(new AjaxGenericResultModel
                {
                    Success = false,
                    Message = mensagemErro ?? Resources.CommonStrings.RegisterEditedErrorMessage
                }));
            }

            try
            {
                //Captura os dados para atualiza-los posteriormente.
                Quarentena entidade = _uow.QuarentenaRepository.GetById(model.IdQuarentena);

                //Captura os dados "antigo" para o log.
                Quarentena old = new Quarentena
                {
                    DataAbertura       = entidade.DataAbertura,
                    DataEncerramento   = entidade.DataEncerramento,
                    IdLote             = entidade.IdLote,
                    IdQuarentena       = entidade.IdQuarentena,
                    IdQuarentenaStatus = entidade.IdQuarentenaStatus,
                    CodigoConfirmacao  = entidade.CodigoConfirmacao,
                    Observacao         = entidade.Observacao
                };

                //Verifica se o status anterior era Encaminhado para Auditoria e o atual Aberto.
                //Caso seja, informa o usuário que a ação não é permitida.
                if (old.IdQuarentenaStatus == QuarentenaStatusEnum.EncaminhadoAuditoria && (model.IdStatus == QuarentenaStatusEnum.Aberto || model.IdStatus == QuarentenaStatusEnum.Retirado))
                {
                    ModelState.AddModelError(nameof(model.IdStatus), (mensagemErro = "A quarentena foi encaminhada para Auditoria. Não é permitido atualizar o status para " + model.IdStatus.ToString() + "."));

                    return(Json(new AjaxGenericResultModel
                    {
                        Success = false,
                        Message = mensagemErro ?? Resources.CommonStrings.RegisterEditedErrorMessage
                    }));
                }

                //Atualiza o status e observação da quarentena.
                entidade.IdQuarentenaStatus = model.IdStatus;
                entidade.Observacao         = model.Observacao;

                //Verifica se o status é Retirado ou Finalizado.
                //Caso seja, insere a data de encerramento pois, considera-se que a mercadoria foi retirada ou alguma outra ação feita (finalizado).
                if (model.IdStatus == QuarentenaStatusEnum.Retirado || model.IdStatus == QuarentenaStatusEnum.Finalizado)
                {
                    entidade.DataEncerramento = DateTime.Now;
                }

                _uow.QuarentenaRepository.Update(entidade, IdUsuario);

                var userInfo = new BackOfficeUserInfo();

                return(Json(new AjaxGenericResultModel
                {
                    Success = true,
                    Message = Resources.CommonStrings.RegisterEditedSuccessMessage
                }));
            }
            catch (Exception ex)
            {
                _log.Error(ex.Message, ex);

                return(Json(new AjaxGenericResultModel
                {
                    Success = false,
                    Message = Resources.CommonStrings.RegisterEditedErrorMessage
                }));
            }
        }