Пример #1
0
        // PUT /tbContaCorrente_tbLoginAdquirenteEmpresa/token/
        public HttpResponseMessage Put(string token, [FromBody] tbContaCorrente_tbLoginAdquirenteEmpresa param)
        {
            // Abre nova conexão
            using (painel_taxservices_dbContext _db = new painel_taxservices_dbContext())
            {
                tbLogAcessoUsuario log = new tbLogAcessoUsuario();
                try
                {
                    log = Bibliotecas.LogAcaoUsuario.New(token, JsonConvert.SerializeObject(param), "Put", _db);

                    HttpResponseMessage retorno = new HttpResponseMessage();
                    if (Permissoes.Autenticado(token, _db))
                    {
                        GatewayTbContaCorrenteTbLoginAdquirenteEmpresa.Update(token, param, _db);
                        log.codResposta = (int)HttpStatusCode.OK;
                        Bibliotecas.LogAcaoUsuario.Save(log, _db);
                        return(Request.CreateResponse(HttpStatusCode.OK));
                    }
                    else
                    {
                        log.codResposta = (int)HttpStatusCode.Unauthorized;
                        Bibliotecas.LogAcaoUsuario.Save(log, _db);
                        return(Request.CreateResponse(HttpStatusCode.Unauthorized));
                    }
                }
                catch (Exception e)
                {
                    log.codResposta = (int)HttpStatusCode.InternalServerError;
                    log.msgErro     = e.Message;
                    Bibliotecas.LogAcaoUsuario.Save(log);
                    throw new HttpResponseException(HttpStatusCode.InternalServerError);
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Altera tbContaCorrente_tbLoginAdquirenteEmpresa
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public static void Update(string token, tbContaCorrente_tbLoginAdquirenteEmpresa param, painel_taxservices_dbContext _dbContext = null)
        {
            painel_taxservices_dbContext _db;

            if (_dbContext == null)
            {
                _db = new painel_taxservices_dbContext();
            }
            else
            {
                _db = _dbContext;
            }
            //DbContextTransaction transaction = _db.Database.BeginTransaction();
            try
            {
                tbContaCorrente_tbLoginAdquirenteEmpresa value = _db.tbContaCorrente_tbLoginAdquirenteEmpresas
                                                                 .Where(e => e.cdContaCorrente == param.cdContaCorrente)
                                                                 .Where(e => e.cdLoginAdquirenteEmpresa == param.cdLoginAdquirenteEmpresa)
                                                                 .Where(e => e.dtInicio.Equals(param.dtInicio))
                                                                 .FirstOrDefault();
                if (value == null)
                {
                    throw new Exception("Vigência inválida!");
                }

                if (conflitoPeriodoVigencia(param) != null)
                {
                    throw new Exception("Conflito de período de vigência");
                }

                // Só altera a data fim => SEMPRE TEM QUE SER ENVIADO A DATA FIM, POIS ESTÁ PODE SER SETADA PARA NULL
                if (!param.dtFim.Equals(value.dtFim))
                {
                    value.dtFim = param.dtFim;
                    _db.SaveChanges();
                }
            }
            catch (Exception e)
            {
                if (e is DbEntityValidationException)
                {
                    string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e);
                    throw new Exception(erro.Equals("") ? "Falha ao alterar adquirente empresa" : erro);
                }
                throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message);
            }
            finally
            {
                if (_dbContext == null)
                {
                    // Fecha conexão
                    _db.Database.Connection.Close();
                    _db.Dispose();
                }
            }
        }
Пример #3
0
        /// <summary>
        /// Adiciona nova TbContaCorrente_tbLoginAdquirenteEmpresa
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public static Int32 Add(string token, tbContaCorrente_tbLoginAdquirenteEmpresa param, painel_taxservices_dbContext _dbContext = null)
        {
            painel_taxservices_dbContext _db;

            if (_dbContext == null)
            {
                _db = new painel_taxservices_dbContext();
            }
            else
            {
                _db = _dbContext;
            }
            DbContextTransaction transaction = _db.Database.BeginTransaction();

            try
            {
                tbContaCorrente_tbLoginAdquirenteEmpresa value = _db.tbContaCorrente_tbLoginAdquirenteEmpresas
                                                                 .Where(e => e.cdContaCorrente == param.cdContaCorrente)
                                                                 .Where(e => e.cdLoginAdquirenteEmpresa == param.cdLoginAdquirenteEmpresa)
                                                                 .Where(e => e.dtInicio.Equals(param.dtInicio))
                                                                 .FirstOrDefault();
                if (value != null)
                {
                    throw new Exception("Vigência já existe!");
                }
                if (conflitoPeriodoVigencia(param) != null)
                {
                    throw new Exception("Conflito de período de vigência");
                }
                _db.tbContaCorrente_tbLoginAdquirenteEmpresas.Add(param);
                _db.SaveChanges();
                transaction.Commit();
                return(param.cdContaCorrente);
            }
            catch (Exception e)
            {
                transaction.Rollback();
                if (e is DbEntityValidationException)
                {
                    string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e);
                    throw new Exception(erro.Equals("") ? "Falha ao salvar adquirente empresa" : erro);
                }
                throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message);
            }
            finally
            {
                if (_dbContext == null)
                {
                    // Fecha conexão
                    _db.Database.Connection.Close();
                    _db.Dispose();
                }
            }
        }
Пример #4
0
        /// <summary>
        /// Apaga uma TbContaCorrente_tbLoginAdquirenteEmpresa
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public static void Delete(string token, Int32 cdContaCorrente, Int32 cdLoginAdquirenteEmpresa, DateTime dtInicio, painel_taxservices_dbContext _dbContext = null)
        {
            painel_taxservices_dbContext _db;

            if (_dbContext == null)
            {
                _db = new painel_taxservices_dbContext();
            }
            else
            {
                _db = _dbContext;
            }
            DbContextTransaction transaction = _db.Database.BeginTransaction();

            try
            {
                tbContaCorrente_tbLoginAdquirenteEmpresa value = _db.tbContaCorrente_tbLoginAdquirenteEmpresas
                                                                 .Where(e => e.cdContaCorrente == cdContaCorrente)
                                                                 .Where(e => e.cdLoginAdquirenteEmpresa == cdLoginAdquirenteEmpresa)
                                                                 .Where(e => e.dtInicio.Equals(dtInicio))
                                                                 .FirstOrDefault();
                if (value == null)
                {
                    throw new Exception("Vigência inválida!");
                }
                _db.tbContaCorrente_tbLoginAdquirenteEmpresas.Remove(value);
                _db.SaveChanges();
                transaction.Commit();
            }
            catch (Exception e)
            {
                transaction.Rollback();
                if (e is DbEntityValidationException)
                {
                    string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e);
                    throw new Exception(erro.Equals("") ? "Falha ao apagar adquirente empresa" : erro);
                }
                throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message);
            }
            finally
            {
                if (_dbContext == null)
                {
                    // Fecha conexão
                    _db.Database.Connection.Close();
                    _db.Dispose();
                }
            }
        }
Пример #5
0
        /**
         * Procura por conflitos de período de vigência a partir do parâmetro
         * Retorna null se não houve conflito. Caso contrário, retorna o registro ao qual o período conflita
         */
        private static tbContaCorrente_tbLoginAdquirenteEmpresa conflitoPeriodoVigencia(tbContaCorrente_tbLoginAdquirenteEmpresa param, painel_taxservices_dbContext _dbContext = null)
        {
            painel_taxservices_dbContext _db;

            if (_dbContext == null)
            {
                _db = new painel_taxservices_dbContext();
            }
            else
            {
                _db = _dbContext;
            }
            try
            {
                // Avalia se, para o mesmo cdContaCorrente e cdLoginAdquirenteEmpresa
                // o período informado já consta
                List <tbContaCorrente_tbLoginAdquirenteEmpresa> values = _db.tbContaCorrente_tbLoginAdquirenteEmpresas
                                                                         .Where(e => e.cdContaCorrente == param.cdContaCorrente)
                                                                         .Where(e => e.cdLoginAdquirenteEmpresa == param.cdLoginAdquirenteEmpresa)
                                                                         .ToList <tbContaCorrente_tbLoginAdquirenteEmpresa>();

                foreach (var value in values)
                {
                    // Não avalia o período se o parâmetro for mesmo elemento "value" corrente
                    if (value.cdContaCorrente == param.cdContaCorrente &&
                        value.cdLoginAdquirenteEmpresa == param.cdLoginAdquirenteEmpresa &&
                        value.dtInicio.Equals(param.dtInicio))
                    {
                        continue;
                    }

                    if (value.dtFim != null)
                    {
                        // Não é o vigente de dtFim nulo

                        if (param.dtFim == null)
                        {
                            // Data início do parâmetro deve ser superior a dtFim do encontrado na base
                            if (param.dtInicio.Year < Convert.ToDateTime(value.dtFim).Year ||
                                (param.dtInicio.Year == Convert.ToDateTime(value.dtFim).Year&& param.dtInicio.Month < Convert.ToDateTime(value.dtFim).Month) ||
                                (param.dtInicio.Year == Convert.ToDateTime(value.dtFim).Year&& param.dtInicio.Month == Convert.ToDateTime(value.dtFim).Month&& param.dtInicio.Day <= Convert.ToDateTime(value.dtFim).Day))
                            {
                                return(value);
                            }
                        }
                        else
                        {
                            // Avalia intervalos por completo => compara desconsiderando os horários
                            DateTime paramInicio = new DateTime(param.dtInicio.Year, param.dtInicio.Month, param.dtInicio.Day);
                            DateTime paramFim    = new DateTime(Convert.ToDateTime(param.dtInicio).Year, Convert.ToDateTime(param.dtFim).Month, Convert.ToDateTime(param.dtFim).Day);
                            DateTime valueInicio = new DateTime(value.dtInicio.Year, value.dtInicio.Month, value.dtInicio.Day);
                            DateTime valueFim    = new DateTime(Convert.ToDateTime(value.dtInicio).Year, Convert.ToDateTime(value.dtFim).Month, Convert.ToDateTime(value.dtFim).Day);

                            // Início de um não pode estar dentro do intervalo do outro
                            if (paramInicio.Ticks >= valueInicio.Ticks && paramInicio.Ticks <= valueFim.Ticks)
                            {
                                return(value);
                            }
                            if (valueInicio.Ticks >= paramInicio.Ticks && valueInicio.Ticks <= paramFim.Ticks)
                            {
                                return(value);
                            }

                            // Fim de um não pode estar dentro do intervalo do outro
                            if (paramFim.Ticks >= valueInicio.Ticks && paramFim.Ticks <= valueFim.Ticks)
                            {
                                return(value);
                            }
                            if (valueFim.Ticks >= paramInicio.Ticks && valueFim.Ticks <= paramFim.Ticks)
                            {
                                return(value);
                            }
                        }
                    }
                    else
                    {
                        // Já existe um vigente com dtFim nulo => período de dtInicio até oo

                        if (param.dtFim == null)
                        {
                            return(value); // Só pode existir um com dtFim nulo
                        }
                        // Data início do parâmetro deve ser inferior a do encontrado na base
                        if (param.dtInicio.Year > value.dtInicio.Year ||
                            (param.dtInicio.Year == value.dtInicio.Year && param.dtInicio.Month > value.dtInicio.Month) ||
                            (param.dtInicio.Year == value.dtInicio.Year && param.dtInicio.Month == value.dtInicio.Month && param.dtInicio.Day >= value.dtInicio.Day) ||
                            // Data fim do parâmetro deve ser inferior a dtInício do encontrado na base
                            Convert.ToDateTime(param.dtFim).Year > value.dtInicio.Year ||
                            (Convert.ToDateTime(param.dtFim).Year == value.dtInicio.Year && Convert.ToDateTime(param.dtFim).Month > value.dtInicio.Month) ||
                            (Convert.ToDateTime(param.dtFim).Year == value.dtInicio.Year && Convert.ToDateTime(param.dtFim).Month == value.dtInicio.Month && Convert.ToDateTime(param.dtFim).Day >= value.dtInicio.Day))
                        {
                            return(value);
                        }
                    }
                }
                // Não teve conflito de período de vigência
                return(null);
            }
            catch (Exception e)
            {
                if (e is DbEntityValidationException)
                {
                    string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e);
                    throw new Exception(erro.Equals("") ? "Falha ao verificar conflito em adquirente empresa" : erro);
                }
                throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message);
            }
            finally
            {
                if (_dbContext == null)
                {
                    // Fecha conexão
                    _db.Database.Connection.Close();
                    _db.Dispose();
                }
            }
        }