Ejemplo n.º 1
0
        /// <summary>
        /// Adiciona nova TbDispositivoUsuario
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public static Int32 Add(string token, IonicWebHook param)
        {
            try
            {
                // Atualiza o contexto
                ((IObjectContextAdapter)_db).ObjectContext.Refresh(RefreshMode.StoreWins, _db.ChangeTracker.Entries().Select(c => c.Entity));
                tbDispositivoUsuario disUser = new tbDispositivoUsuario();

                if (param.usuario == null)
                {
                    return(1);
                }
                else
                {
                    disUser.dsPlataforma = param.device.platform;
                    disUser.dsModelo     = param.device.model;
                    disUser.dsVersao     = param.device.version;
                    disUser.tmLargura    = param.device.screen_width;
                    disUser.tmAltura     = param.device.screen_height;
                    disUser.idIONIC      = param.device.uuid;
                    disUser.idUserIONIC  = param.user_id;
                    if (param._push.android_tokens.Count > 0)
                    {
                        disUser.cdTokenValido = param._push.android_tokens.First();
                    }
                    else if (param._push.ios_tokens.Count > 0)
                    {
                        disUser.cdTokenValido = param._push.ios_tokens.First();
                    }
                    else
                    {
                        disUser.cdTokenValido = null;
                    }

                    disUser.idUser = Permissoes.GetIdUserPeloLogin(param.usuario);
                    _db.tbDispositivoUsuarios.Add(disUser);
                    _db.SaveChanges();
                    return(1);
                }
            }
            catch (Exception e)
            {
                if (e is DbEntityValidationException)
                {
                    string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e);
                    throw new Exception(erro.Equals("") ? "Falha ao salvar TbDispositivoUsuario" : erro);
                }
                throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message);
            }
        }
Ejemplo n.º 2
0
        // POST api/novacarga
        public int Post([FromBody] api.Models.Object.NovaCarga value)
        {
            try
            {
                int      retorno = 0;
                string   date    = value.data.Substring(0, 10);
                DateTime dt      = Convert.ToDateTime(date);
                DateTime dtNow   = dt.AddDays(1);

                using (var _db = new painel_taxservices_dbContext())
                {
                    _db.Configuration.ProxyCreationEnabled = false;


                    var lo = (from l in _db.LoginOperadoras
                              where l.idOperadora.Equals(value.adquirente)
                              select l).FirstOrDefault();
                    int idLogin = lo.id;


                    api.Models.LogExecution verify = (from a in _db.LogExecutions
                                                      join l in _db.LoginOperadoras on a.idLoginOperadora equals l.id
                                                      where l.idGrupo.Equals(value.empresa) &&
                                                      l.cnpj.Equals(value.filial) &&
                                                      l.idOperadora.Equals(value.adquirente) &&
                                                      a.dtaFiltroTransacoes.Equals(dt)
                                                      select(api.Models.LogExecution) a
                                                      ).FirstOrDefault();


                    if (verify == null)
                    {
                        LogExecution log = new LogExecution();
                        log.idOperadora              = value.adquirente;
                        log.idLoginOperadora         = lo.id;
                        log.statusExecution          = "7";
                        log.dtaExecucaoProxima       = dtNow;
                        log.dtaFiltroTransacoes      = dt;
                        log.dtaFiltroTransacoesFinal = dt;

                        _db.LogExecutions.Add(log);
                        _db.SaveChanges();

                        retorno = log.id;
                    }
                    else
                    {
                        string script = "exec up_ReprocessarCarga " + verify.id;
                        int    ret    = _db.Database.ExecuteSqlCommand(script);
                        retorno = verify.id;
                    }
                    return(retorno);
                }
            }
            catch (Exception e)
            {
                throw new HttpResponseException(HttpStatusCode.InternalServerError);
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Adiciona nova Adquirente
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Int32 Add(string token, api.Models.Adquirente param)
 {
     try
     {
         _db.Adquirentes.Add(param);
         _db.SaveChanges();
         return(param.id);
     }
     catch (Exception e)
     {
         if (e is DbEntityValidationException)
         {
             string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e);
             throw new Exception(erro.Equals("") ? "Falha ao salvar adquirente" : erro);
         }
         throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message);
     }
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Adiciona nova LogExecutionException
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Int32 Add(string token, LogExecutionException param)
 {
     try
     {
         _db.LogExecutionExceptions.Add(param);
         _db.SaveChanges();
         return(param.id);
     }
     catch (Exception e)
     {
         if (e is DbEntityValidationException)
         {
             string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e);
             throw new Exception(erro.Equals("") ? "Falha ao listar logexecutionexception" : erro);
         }
         throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message);
     }
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Adiciona nova TbEmpresaGrupo
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Int32 Add(string token, tbEmpresaGrupo param)
 {
     try
     {
         _db.tbEmpresaGrupos.Add(param);
         _db.SaveChanges();
         return(param.cdEmpresaGrupo);
     }
     catch (Exception e)
     {
         if (e is DbEntityValidationException)
         {
             string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e);
             throw new Exception(erro.Equals("") ? "Falha ao salvar TbEmpresaGrupo" : erro);
         }
         throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message);
     }
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Adiciona nova TbModoEntradaTef
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static short Add(string token, tbModoEntradaTef param)
 {
     try
     {
         _db.tbModoEntradaTefs.Add(param);
         _db.SaveChanges();
         return(param.cdModoEntradaTef);
     }
     catch (Exception e)
     {
         if (e is DbEntityValidationException)
         {
             string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e);
             throw new Exception(erro.Equals("") ? "Falha ao salvar modo entrada tef" : erro);
         }
         throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message);
     }
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Adiciona nova TerminalLogico
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Int32 Add(string token, TerminalLogico param)
 {
     try
     {
         _db.TerminalLogicoes.Add(param);
         _db.SaveChanges();
         return(param.idTerminalLogico);
     }
     catch (Exception e)
     {
         if (e is DbEntityValidationException)
         {
             string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e);
             throw new Exception(erro.Equals("") ? "Falha ao salvar terminal logico" : erro);
         }
         throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message);
     }
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Adiciona nova PDV
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Int32 Add(string token, PDV param)
 {
     try
     {
         _db.PDVs.Add(param);
         _db.SaveChanges();
         return(param.IdPDV);
     }
     catch (Exception e)
     {
         if (e is DbEntityValidationException)
         {
             string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e);
             throw new Exception(erro.Equals("") ? "Falha ao realizar adicionar pdv" : erro);
         }
         throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message);
     }
 }
Ejemplo n.º 9
0
        /// <summary>
        /// Apaga uma tbNewsStatu
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public static void Delete(string token, Int32 idNews)
        {
            try
            {
                // Atualiza o contexto
                ((IObjectContextAdapter)_db).ObjectContext.Refresh(RefreshMode.StoreWins, _db.ChangeTracker.Entries().Select(c => c.Entity));

                _db.tbNewsStatuss.Remove(_db.tbNewsStatuss.Where(e => e.idNews.Equals(idNews)).First());
                _db.SaveChanges();
            }
            catch (Exception e)
            {
                if (e is DbEntityValidationException)
                {
                    string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e);
                    throw new Exception(erro.Equals("") ? "Falha ao apagar tbNewsStatu" : erro);
                }
                throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message);
            }
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Adiciona nova TbCatalogo
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public static short Add(string token, tbCatalogo param)
        {
            try
            {
                // Atualiza o contexto
                ((IObjectContextAdapter)_db).ObjectContext.Refresh(RefreshMode.StoreWins, _db.ChangeTracker.Entries().Select(c => c.Entity));

                _db.tbCatalogos.Add(param);
                _db.SaveChanges();
                return(param.cdCatalogo);
            }
            catch (Exception e)
            {
                if (e is DbEntityValidationException)
                {
                    string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e);
                    throw new Exception(erro.Equals("") ? "Falha ao salvar TbCatalogo" : erro);
                }
                throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message);
            }
        }
Ejemplo n.º 11
0
        // PUT api/execucao/5
        public HttpResponseMessage Put(string token, [FromBody] Int32 id)
        {
            try
            {
                using (var _db = new painel_taxservices_dbContext())
                {
                    //_db.Configuration.ProxyCreationEnabled = false;

                    LogExecution log = _db.LogExecutions.Where(s => s.id == id).FirstOrDefault <LogExecution>();
                    log.statusExecution = "3";

                    _db.SaveChanges();
                }
                return(new HttpResponseMessage(HttpStatusCode.OK));
            }
            catch
            {
                throw new HttpResponseException(HttpStatusCode.InternalServerError);
            }
        }
Ejemplo n.º 12
0
        /**
         * Armazena o logexecution, caso não exista
         */
        private static void adicionaLogExecution(painel_taxservices_dbContext _db, Int32 idLoginOperadora, Int32 idOperadora)
        {
            // Armazena o logexecution, caso não exista
            // Verifica se já existe logExecution para o registro corrente
            LogExecution logExecution = _db.LogExecutions
                                        .Where(l => l.idLoginOperadora == idLoginOperadora)
                                        .Where(l => l.idOperadora == idOperadora)
                                        .FirstOrDefault();

            if (logExecution == null)
            {
                Operadora op = _db.Operadoras.Where(o => o.id == idOperadora).FirstOrDefault(); // o que é enviado é o nome e não a descrição
                if (op == null)
                {
                    return;
                }
                Models.Adquirente adquirente = _db.Adquirentes.Where(o => o.nome.Equals(op.nmOperadora)).FirstOrDefault();
                if (adquirente == null)
                {
                    return;
                }
                DateTime hrExec = (DateTime)adquirente.hraExecucao;

                LogExecution newLogExecution = new LogExecution();
                newLogExecution.idLoginOperadora = idLoginOperadora;
                newLogExecution.idOperadora      = idOperadora;
                newLogExecution.statusExecution  = "7"; //0 = Em execução; 1 = Executado com Sucesso; 2 = Erro na Execução; 3 = Re-Executar; 7 = Elegivel
                                                        //newLogExecution.dtaFiltroTransacoes = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1, hrExec.Hour, hrExec.Minute, hrExec.Second);
                                                        //newLogExecution.dtaFiltroTransacoesFinal = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1, hrExec.Hour, hrExec.Minute, hrExec.Second);
                newLogExecution.dtaFiltroTransacoes      = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1, 0, 0, 0);
                newLogExecution.dtaFiltroTransacoesFinal = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1, 0, 0, 0);
                newLogExecution.dtaExecucaoProxima       = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 2, hrExec.Hour, hrExec.Minute, hrExec.Second);
                newLogExecution.qtdTransacoes            = 0;
                newLogExecution.vlTotalTransacoes        = new decimal(0.0);

                _db.LogExecutions.Add(newLogExecution);
                _db.SaveChanges();
            }
        }
Ejemplo n.º 13
0
        public static void New(Log data)
        {
            try
            {
                using (var _db = new painel_taxservices_dbContext())
                {
                    _db.Configuration.ProxyCreationEnabled = false;

                    LogAcesso1 log = new LogAcesso1();
                    log.idUsers      = data.IdUser;
                    log.idController = data.IdController;
                    log.idMethod     = data.IdMethod;
                    log.dtAcesso     = data.DtAcesso;

                    _db.LogAcesso1.Add(log);
                    _db.SaveChanges();
                }
            }
            catch (Exception e)
            {
                throw new Exception("Mensagem: " + (e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message));
            }
        }
Ejemplo n.º 14
0
 /// <summary>
 /// Adiciona nova tbNewsStatu
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Int32 Add(string token, tbNewsStatus param)
 {
     try
     {
         // Atualiza o contexto
         //((IObjectContextAdapter)_db).ObjectContext.Refresh(RefreshMode.StoreWins, _db.ChangeTracker.Entries().Select(c => c.Entity));
         using (var db = new painel_taxservices_dbContext())
         {
             db.tbNewsStatuss.Add(param);
             db.SaveChanges();
             db.Dispose();
             return(param.idNews);
         }
     }
     catch (Exception e)
     {
         if (e is DbEntityValidationException)
         {
             string erro = MensagemErro.getMensagemErro((DbEntityValidationException)e);
             throw new Exception(erro.Equals("") ? "Falha ao salvar tbNewsStatu" : erro);
         }
         throw new Exception(e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message);
     }
 }
Ejemplo n.º 15
0
 /// <summary>
 /// Adiciona nova TicketCar
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Int32 Add(string token, TicketCar param)
 {
     _db.TicketCars.Add(param);
     _db.SaveChanges();
     return(param.id);
 }
Ejemplo n.º 16
0
 /// <summary>
 /// Adiciona nova Cielo
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Int32 Add(string token, Cielo param)
 {
     _db.Cieloes.Add(param);
     _db.SaveChanges();
     return(param.id);
 }
Ejemplo n.º 17
0
 /// <summary>
 /// Adiciona nova Nutricash
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Int32 Add(string token, Nutricash param)
 {
     _db.Nutricashes.Add(param);
     _db.SaveChanges();
     return(param.id);
 }
Ejemplo n.º 18
0
 /// <summary>
 /// Adiciona nova TbRecebimentoResumoManual
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Int32 Add(string token, tbRecebimentoResumoManual param)
 {
     _db.tbRecebimentoResumoManuals.Add(param);
     _db.SaveChanges();
     return(param.idRecebimentoResumoManual);
 }
Ejemplo n.º 19
0
        // POST /autenticacao
        public Autenticado Post(Models.Object.Login data)
        {
            try
            {
                if (ModelState.IsValid && WebSecurity.Login(data.usuario, data.senha, persistCookie: false))
                {
                    // Abre nova conexão
                    using (painel_taxservices_dbContext _db = new painel_taxservices_dbContext())
                    {
                        int userId = WebSecurity.GetUserId(data.usuario);

                        try
                        {
                            //_db.Configuration.ProxyCreationEnabled = false;


                            #region Log de Acesso ao Sistema
                            api.Models.Object.Log log = new api.Models.Object.Log();
                            log.IdUser       = userId;
                            log.IdController = 45;
                            log.IdMethod     = 50;
                            log.DtAcesso     = DateTime.Now;

                            LogAcesso.New(log);
                            #endregion

                            string token = "";



                            var verify = (from v in _db.LoginAutenticacaos
                                          where v.idUsers.Equals(userId)
                                          orderby v.idUsers
                                          select v
                                          ).FirstOrDefault();

                            if (verify == null)
                            {
                                token = Token.GetUniqueKey(data.usuario);
                                LoginAutenticacao la = new LoginAutenticacao();
                                la.idUsers    = userId;
                                la.token      = token;
                                la.dtValidade = DateTime.Now;
                                _db.LoginAutenticacaos.Add(la);
                                _db.SaveChanges();
                            }
                            else
                            {
                                token = verify.token;
                            }


                            return(AcessoUsuarioLogado(token, userId, _db));
                        }
                        catch (Exception e)
                        {
                            throw new HttpResponseException(HttpStatusCode.InternalServerError);
                        }
                    }
                }
                else
                {
                    throw new Exception("Usuário e/ou senha inválidos!" + (ModelState.IsValid ? "" : " (invalid model)"));
                }
            }
            catch (Exception e)
            {
                if (e.Message.Equals("401"))
                {
                    throw new HttpResponseException(HttpStatusCode.Unauthorized);
                }
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.InternalServerError, e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message));
                //return Request.CreateResponse(HttpStatusCode.InternalServerError, e.Message);
            }
        }
Ejemplo n.º 20
0
 /// <summary>
 /// Adiciona nova TbTerminalLogico
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static string Add(string token, tbTerminalLogico param)
 {
     _db.tbTerminalLogicos.Add(param);
     _db.SaveChanges();
     return(param.cdTerminalLogico);
 }
Ejemplo n.º 21
0
 /// <summary>
 /// Adiciona nova ConciliacaoRecebimento
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Int32 Add(string token, ConciliacaoRecebimento param)
 {
     _db.ConciliacaoRecebimentoes.Add(param);
     _db.SaveChanges();
     return(param.id);
 }
Ejemplo n.º 22
0
 /// <summary>
 /// Adiciona nova RedeMed
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Int32 Add(string token, RedeMed param)
 {
     _db.RedeMeds.Add(param);
     _db.SaveChanges();
     return(param.id);
 }
Ejemplo n.º 23
0
 /// <summary>
 /// Adiciona nova Omni
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Int32 Add(string token, Omni param)
 {
     _db.Omnis.Add(param);
     _db.SaveChanges();
     return(param.id);
 }
Ejemplo n.º 24
0
 /// <summary>
 /// Adiciona nova GetNetSantander
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Int32 Add(string token, GetNetSantander param)
 {
     _db.GetNetSantanders.Add(param);
     _db.SaveChanges();
     return(param.id);
 }
Ejemplo n.º 25
0
 /// <summary>
 /// Adiciona nova BaneseCard
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Int32 Add(string token, BaneseCard param)
 {
     _db.BaneseCards.Add(param);
     _db.SaveChanges();
     return(param.id);
 }
Ejemplo n.º 26
0
 /// <summary>
 /// Adiciona nova TaxaAdministracao
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Int32 Add(string token, TaxaAdministracao param)
 {
     _db.TaxaAdministracaos.Add(param);
     _db.SaveChanges();
     return(param.id);
 }
Ejemplo n.º 27
0
 /// <summary>
 /// Adiciona nova Bandeiras
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Int32 Add(string token, Bandeira param)
 {
     _db.Bandeiras.Add(param);
     _db.SaveChanges();
     return(param.IdBandeira);
 }
Ejemplo n.º 28
0
 /// <summary>
 /// Adiciona nova ConciliacaoPagamentosPos
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Int32 Add(string token, ConciliacaoPagamentosPos param)
 {
     _db.ConciliacaoPagamentosPos.Add(param);
     _db.SaveChanges();
     return(param.IdConciliacaoPagamento);
 }
Ejemplo n.º 29
0
 /// <summary>
 /// Adiciona nova Amex
 /// </summary>
 /// <param name="param"></param>
 /// <returns></returns>
 public static Int32 Add(string token, Amex param)
 {
     _db.Amexes.Add(param);
     _db.SaveChanges();
     return(param.id);
 }
Ejemplo n.º 30
0
        private static void bw_DoWork(object sender, DoWorkEventArgs a)
        {
            BackgroundWorker worker = sender as BackgroundWorker;

            List <object> args = a.Argument as List <object>;
            painel_taxservices_dbContext _db = args[0] as painel_taxservices_dbContext;
            Semaphore      semaforo          = args[1] as Semaphore;
            Retorno        retorno           = args[2] as Retorno;
            Int32          idGrupo           = Convert.ToInt32(args[3]);
            ImportaTitulos param             = args[4] as ImportaTitulos;

            List <dynamic> Registros = retorno.Registros as List <dynamic>;

            //List<dynamic> grupo = Registros
            //                             .GroupBy(e => new { e.nrCNPJ, e.nrNSU, e.dtTitulo, e.nrParcela })
            //                             .Where(e => e.Count() > 1)
            //                             .Select(e => new
            //                             {
            //                                 e.Key.nrCNPJ,
            //                                 e.Key.nrNSU,
            //                                 e.Key.nrParcela,
            //                                 e.Key.dtTitulo,
            //                                 count = e.Count()
            //                             })
            //                             .OrderByDescending(e => e.count)
            //                             .ToList<dynamic>();
            List <int> idsRecebimentoTitulo = new List <int>();

            for (var k = 0; k < Registros.Count; k++)
            {
                dynamic tit = Registros[k];
                DbContextTransaction transaction = _db.Database.BeginTransaction();
                try
                {
                    string dsBandeira = tit.dsBandeira;
                    if (dsBandeira.Length > 50)
                    {
                        dsBandeira = dsBandeira.Substring(0, 50);
                    }

                    int?cdAdquirente = null;
                    try
                    {
                        cdAdquirente = Convert.ToInt32(tit.cdAdquirente);
                        if (cdAdquirente == 0)
                        {
                            cdAdquirente = null;
                        }
                    }
                    catch { }

                    string cdSacado = null;
                    try
                    {
                        cdSacado = tit.cdSacado;
                        cdSacado = cdSacado.Trim();
                    }
                    catch { }

                    tbRecebimentoTitulo tbRecebimentoTitulo = new tbRecebimentoTitulo
                    {
                        dsBandeira   = dsBandeira,
                        cdAdquirente = cdAdquirente,
                        cdERP        = tit.cdERP,
                        dtBaixaERP   = tit.dtBaixaERP,
                        dtTitulo     = tit.dtTitulo,
                        dtVenda      = tit.dtVenda,
                        nrCNPJ       = tit.nrCNPJ,//tit.empresa.nu_cnpj,
                        nrNSU        = tit.nrNSU != null && !tit.nrNSU.ToString().Trim().Equals("") ? tit.nrNSU : "T" + tit.cdERP,
                        nrParcela    = Convert.ToByte(tit.nrParcela),
                        qtParcelas   = Convert.ToByte(tit.qtParcelas),
                        vlParcela    = Convert.ToDecimal(tit.vlParcela),
                        vlVenda      = Convert.ToDecimal(tit.vlVenda),
                        cdSacado     = cdSacado
                    };

                    tbRecebimentoTitulo titulo = _db.Database.SqlQuery <tbRecebimentoTitulo>("SELECT T.*" +
                                                                                             " FROM card.tbRecebimentoTitulo T (NOLOCK)" +
                                                                                             " WHERE T.nrCNPJ = '" + tbRecebimentoTitulo.nrCNPJ + "'" +
                                                                                             " AND T.nrNSU = '" + tbRecebimentoTitulo.nrNSU + "'" +
                                                                                             " AND T.dtTitulo = '" + DataBaseQueries.GetDate(tbRecebimentoTitulo.dtTitulo) + "'" +
                                                                                             " AND T.nrParcela = " + tbRecebimentoTitulo.nrParcela +
                                                                                             " AND T.cdERP = '" + tbRecebimentoTitulo.cdERP + "'"
                                                                                             )
                                                 .FirstOrDefault();

                    int idRecebimentoTitulo = 0;
                    if (titulo == null)
                    {
                        _db.Database.ExecuteSqlCommand("INSERT INTO card.tbRecebimentoTitulo" +
                                                       " (nrCNPJ, nrNSU, dtTitulo, nrParcela, cdERP, dtVenda" +
                                                       ", cdAdquirente, dsBandeira, vlVenda, qtParcelas, vlParcela, dtBaixaERP, cdSacado)" +
                                                       " VALUES ('" + tbRecebimentoTitulo.nrCNPJ + "'" +
                                                       ", '" + tbRecebimentoTitulo.nrNSU + "'" +
                                                       ", '" + DataBaseQueries.GetDate(tbRecebimentoTitulo.dtTitulo) + "'" +
                                                       ", " + tbRecebimentoTitulo.nrParcela +
                                                       ", " + (tbRecebimentoTitulo.cdERP == null ? "NULL" : "'" + tbRecebimentoTitulo.cdERP + "'") +
                                                       ", " + (tbRecebimentoTitulo.dtVenda == null ? "NULL" : "'" + DataBaseQueries.GetDate(tbRecebimentoTitulo.dtVenda.Value) + "'") +
                                                       ", " + (cdAdquirente == null ? "NULL" : cdAdquirente.Value.ToString()) +
                                                       ", " + (tbRecebimentoTitulo.dsBandeira == null ? "NULL" : "'" + tbRecebimentoTitulo.dsBandeira + "'") +
                                                       ", " + (tbRecebimentoTitulo.vlVenda == null ? "NULL" : tbRecebimentoTitulo.vlVenda.Value.ToString(CultureInfo.GetCultureInfo("en-GB"))) +
                                                       ", " + (tbRecebimentoTitulo.qtParcelas == null ? "NULL" : tbRecebimentoTitulo.qtParcelas.Value.ToString()) +
                                                       ", " + tbRecebimentoTitulo.vlParcela.ToString(CultureInfo.GetCultureInfo("en-GB")) +
                                                       ", " + (tbRecebimentoTitulo.dtBaixaERP == null ? "NULL" : "'" + DataBaseQueries.GetDate(tbRecebimentoTitulo.dtBaixaERP.Value) + "'") +
                                                       ", " + (tbRecebimentoTitulo.cdSacado != null ? "'" + tbRecebimentoTitulo.cdSacado + "'" : "NULL") +
                                                       ")");
                        _db.SaveChanges();
                        transaction.Commit();

                        // Obtém o id do título
                        idRecebimentoTitulo = _db.Database.SqlQuery <int>("SELECT T.idRecebimentoTitulo" +
                                                                          " FROM card.tbRecebimentoTitulo T (NOLOCK)" +
                                                                          " WHERE T.nrCNPJ = '" + tbRecebimentoTitulo.nrCNPJ + "'" +
                                                                          " AND T.nrNSU = '" + tbRecebimentoTitulo.nrNSU + "'" +
                                                                          " AND T.dtTitulo = '" + DataBaseQueries.GetDate(tbRecebimentoTitulo.dtTitulo) + "'" +
                                                                          " AND T.nrParcela = " + tbRecebimentoTitulo.nrParcela +
                                                                          " AND T.cdERP = '" + tbRecebimentoTitulo.cdERP + "'"
                                                                          )
                                              .FirstOrDefault();
                    }
                    else
                    {
                        _db.Database.ExecuteSqlCommand("UPDATE T" +
                                                       " SET T.dtVenda = " + (tbRecebimentoTitulo.dtVenda == null ? "NULL" : "'" + DataBaseQueries.GetDate(tbRecebimentoTitulo.dtVenda.Value) + "'") +
                                                       ", T.cdAdquirente = " + (cdAdquirente == null ? "NULL" : cdAdquirente.Value.ToString()) +
                                                       ", T.dsBandeira = " + (tbRecebimentoTitulo.dsBandeira == null ? "NULL" : "'" + tbRecebimentoTitulo.dsBandeira + "'") +
                                                       ", T.vlVenda = " + (tbRecebimentoTitulo.vlVenda == null ? "NULL" : tbRecebimentoTitulo.vlVenda.Value.ToString(CultureInfo.GetCultureInfo("en-GB"))) +
                                                       ", T.qtParcelas = " + (tbRecebimentoTitulo.qtParcelas == null ? "NULL" : tbRecebimentoTitulo.qtParcelas.Value.ToString()) +
                                                       ", T.vlParcela = " + tbRecebimentoTitulo.vlParcela.ToString(CultureInfo.GetCultureInfo("en-GB")) +
                                                       ", T.dtBaixaERP = " + (tbRecebimentoTitulo.dtBaixaERP == null ? "NULL" : "'" + DataBaseQueries.GetDate(tbRecebimentoTitulo.dtBaixaERP.Value) + "'") +
                                                       ", T.cdSacado = " + (tbRecebimentoTitulo.cdSacado != null ? "'" + tbRecebimentoTitulo.cdSacado + "'" : "NULL") +
                                                       " FROM card.tbRecebimentoTitulo T" +
                                                       " WHERE T.idRecebimentoTitulo = " + titulo.idRecebimentoTitulo);

                        _db.SaveChanges();
                        transaction.Commit();

                        idRecebimentoTitulo = titulo.idRecebimentoTitulo;
                    }

                    // Adiciona
                    //if (!idsRecebimentoTitulo.Contains(idRecebimentoTitulo))
                    idsRecebimentoTitulo.Add(idRecebimentoTitulo);
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    string json = JsonConvert.SerializeObject(tit);
                    string erro = String.Empty;
                    if (e is DbEntityValidationException)
                    {
                        erro = MensagemErro.getMensagemErro((DbEntityValidationException)e);
                    }
                    else
                    {
                        erro = e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message;
                    }
                    //throw new Exception("Título: " + json + ". Erro: " + erro);
                    // Reporta o erro
                    retorno.Totais = new Dictionary <string, object>();
                    retorno.Totais.Add("erro", "Título: " + json + ". Erro: " + erro);
                    break;
                }
            }

            // Avalia títulos que não foram atualizados
            if (idsRecebimentoTitulo.Count > 0 && param != null)
            {
                idsRecebimentoTitulo = idsRecebimentoTitulo.Distinct().ToList();
                string data     = param.data.Substring(0, 4) + "-" + param.data.Substring(4, 2) + "-" + param.data.Substring(6, 2);
                string tipoData = param.tipoData == null || (!param.tipoData.Equals("V") && !param.tipoData.Equals("R")) ? "R" : param.tipoData;
                string script   = "SELECT T.idRecebimentoTitulo" +
                                  " FROM card.tbRecebimentoTitulo T (NOLOCK)" +
                                  " JOIN cliente.empresa E (NOLOCK) ON E.nu_cnpj = T.nrCNPJ" +
                                  " WHERE " + (tipoData.Equals("V") ? "T.dtVenda" : "T.dtTitulo") + " BETWEEN '" + data + "' AND '" + data + " 23:59:00'" +
                                  " AND E.id_grupo = " + idGrupo +
                                  " AND T.idRecebimentoTitulo NOT IN (" + string.Join(", ", idsRecebimentoTitulo) + ")";
                int[] titulosASeremDeletados = new int[0];
                try
                {
                    titulosASeremDeletados = _db.Database.SqlQuery <int>(script).ToArray();
                }
                catch { }

                if (titulosASeremDeletados != null && titulosASeremDeletados.Length > 0)
                {
                    script = "UPDATE P" +
                             " SET P.idRecebimentoTitulo = NULL" +
                             " FROM pos.RecebimentoParcela P" +
                             " JOIN card.tbRecebimentoVenda T ON P.idRecebimentoTitulo = T.idRecebimentoTitulo" +
                             " WHERE T.idRecebimentoTitulo IN (" + string.Join(", ", titulosASeremDeletados) + ")";
                    try
                    {
                        _db.Database.ExecuteSqlCommand(script);
                        // Deleta
                        script = "DELETE T" +
                                 " FROM card.tbRecebimentoTitulo T" +
                                 " WHERE V.idRecebimentoVenda IN (" + string.Join(", ", titulosASeremDeletados) + ")";
                        _db.Database.ExecuteSqlCommand(script);
                    }
                    catch { }
                }
            }

            semaforo.Release();
        }