public async Task <int> mtdCrearSaldo(string strIdUser)
        {
            try
            {
                ParametrosController    par  = new ParametrosController(context);
                ActionResult <DateTime> time = par.mtdObtenerFechaMexico();
                // DateTime time = DateTime.Now;

                var saldo = new Saldos
                {
                    created_by           = strIdUser,
                    created_date         = time.Value,
                    bit_status           = true,
                    dtmfecha             = time.Value,
                    flt_monto_final      = 0.0,
                    flt_monto_inicial    = 0.0,
                    str_forma_pago       = " ",
                    str_tipo_recarga     = " ",
                    int_id_usuario_id    = strIdUser,
                    int_id_usuario_trans = strIdUser,
                    intidconcesion_id    = null
                };

                await context.AddAsync(saldo);

                await context.SaveChangesAsync();

                intdSaldo = saldo.id;
                return(intdSaldo);
            }
            catch (Exception ex)
            {
                return(0);
            }
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> mtdActualizaComerciante(int id, [FromBody] Comisiones comisiones)
        {
            try
            {
                ParametrosController    par = new ParametrosController(context);
                ActionResult <DateTime> horadeTransaccion = par.mtdObtenerFechaMexico();

                var response = await context.tbcomisiones.FirstOrDefaultAsync(x => x.id == id);

                if (response.id != id)
                {
                    return(BadRequest());
                }
                response.dcm_porcentaje     = comisiones.dcm_porcentaje;
                response.dcm_valor_fijo     = comisiones.dcm_valor_fijo;
                response.str_tipo           = comisiones.str_tipo;
                response.last_modified_by   = comisiones.last_modified_by;
                response.last_modified_date = horadeTransaccion.Value;
                response.intidconcesion_id  = comisiones.intidconcesion_id;

                await context.SaveChangesAsync();

                return(Ok());
            }
            catch (Exception ex)
            {
                //ModelState.AddModelError("token", ex.Message);
                //return BadRequest(ModelState);
                return(Json(new { token = ex.Message }));
            }
        }
        public async Task <ActionResult> mtdIngresarCiudad([FromBody] Ciudades ciudades)
        {
            try
            {
                ParametrosController    par = new ParametrosController(context);
                ActionResult <DateTime> horadeTransaccion = par.mtdObtenerFechaMexico();

                DateTime time = horadeTransaccion.Value;
                //DateTime time = DateTime.Now;

                using (IDbContextTransaction transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        ciudades.created_date       = time;
                        ciudades.last_modified_date = time;
                        ciudades.int_id_ciudad      = null;
                        context.tbciudades.Add(ciudades);
                        await context.SaveChangesAsync();

                        context.tbcatciudades.Add(new CatCiudades()
                        {
                            str_ciudad = ciudades.str_ciudad
                        });

                        await context.SaveChangesAsync();


                        transaction.Commit();
                    }

                    catch (Exception ex)
                    {
                        transaction.Rollback();

                        return(Json(new { token = ex.Message }));
                    }
                }
                return(Ok());
            }

            catch (Exception ex)
            {
                //ModelState.AddModelError("token", ex.Message);
                //return BadRequest(ModelState);
                return(Json(new { token = ex.Message }));
            }
        }
Ejemplo n.º 4
0
        public async Task <ActionResult> mtdIngresarComerciante([FromBody] Comisiones comisiones)
        {
            try
            {
                ParametrosController    par = new ParametrosController(context);
                ActionResult <DateTime> horadeTransaccion = par.mtdObtenerFechaMexico();

                comisiones.created_date       = horadeTransaccion.Value;
                comisiones.last_modified_date = horadeTransaccion.Value;
                context.tbcomisiones.Add(comisiones);
                await context.SaveChangesAsync();

                return(Ok());
            }

            catch (Exception ex)
            {
                //ModelState.AddModelError("token", ex.Message);
                //return BadRequest(ModelState);
                return(Json(new { token = ex.Message }));
            }
        }
        public async Task <ActionResult> mtdAgregarLicencias(int intidConcesion, [FromBody] AgregarLicencias licencias)
        {
            try
            {
                var response = await context.tbconcesiones.FirstOrDefaultAsync(x => x.id == intidConcesion);

                if (response == null)
                {
                    return(NotFound());
                }
                ParametrosController    par = new ParametrosController(context);
                ActionResult <DateTime> horadeTransaccion = par.mtdObtenerFechaMexico();
                var tipoUsuario = await context.tbtiposusuarios.FirstOrDefaultAsync(x => x.strTipoUsuario == "AGENTE VIAL");

                foreach (var item in licencias.cuentas)
                {
                    var user = new ApplicationUser
                    {
                        UserName          = item.Email,
                        Email             = item.Email,
                        created_date      = horadeTransaccion.Value,
                        intidconcesion_id = intidConcesion,
                        intIdTipoUsuario  = tipoUsuario.id,
                        intidciudad       = response.intidciudad,
                        EmailConfirmed    = true,
                        bit_status        = true
                    };

                    var result = await _userManager.CreateAsync(user, item.PasswordHash);
                }

                return(Ok());
            }
            catch (Exception ex)
            {
                return(Json(new { token = ex.Message }));
            }
        }
        public async Task <ActionResult> mtdRecargarSaldo(double fltMonto, [FromBody] Saldos saldos)
        {
            string strresult       = " ";
            double dblSaldoInicial = 0;

            //var strategy = context.Database.CreateExecutionStrategy();
            //await strategy.ExecuteAsync(async () =>
            //{
            using (IDbContextTransaction transaction = context.Database.BeginTransaction())
            {
                try
                {
                    ParametrosController    par = new ParametrosController(context);
                    ActionResult <DateTime> horadeTransaccion = par.mtdObtenerFechaMexico();
                    DateTime time = horadeTransaccion.Value;
                    //DateTime time = DateTime.Now;
                    //Se ocomento esta linea por actualizacion
                    //var response = await context.tbsaldo.FirstOrDefaultAsync(x => x.id == id);

                    //var comision = await context.tbcomisiones.FirstOrDefaultAsync(x => x.intidconcesion_id == movimientos.intidconcesion_id && x.str_tipo == "RECARGA");

                    var usuario = await context.NetUsers.FirstOrDefaultAsync(x => x.Id == saldos.int_id_usuario_trans);

                    dblSaldoInicial = usuario.dbl_saldo_actual;

                    usuario.dbl_saldo_actual   = usuario.dbl_saldo_actual + fltMonto;
                    usuario.dbl_saldo_anterior = dblSaldoInicial;

                    var comision = await context.tbparametros.Where(x => x.intidconcesion_id == null).FirstOrDefaultAsync();

                    double c = comision.PorcentajeComisionRecarga / 100;

                    double total = fltMonto * c;
                    //Se comento esta linea por actualizacion
                    //response.last_modified_by = saldos.last_modified_by;
                    //response.last_modified_date = horadeTransaccion.Value;
                    //response.dtmfecha = horadeTransaccion.Value;
                    //response.flt_monto_final = response.flt_monto_final + fltMonto;
                    //response.flt_monto_inicial = dblSaldoInicial;
                    //response.int_id_usuario_trans = saldos.int_id_usuario_trans;
                    //response.str_forma_pago = saldos.str_forma_pago;
                    //response.str_tipo_recarga = saldos.str_tipo_recarga;

                    //response.intidconcesion_id = saldos.intidconcesion_id;

                    await context.SaveChangesAsync();

                    context.tbsaldo.Add(new Saldos()
                    {
                        created_by = saldos.created_by,
                        // created_date = horadeTransaccion.Value,
                        dtmfecha                = time,
                        last_modified_date      = time,
                        flt_monto_inicial       = dblSaldoInicial,
                        flt_monto_final         = usuario.dbl_saldo_actual,
                        str_forma_pago          = "VIRTUAL",
                        str_tipo_recarga        = "RECARGA",
                        flt_monto               = fltMonto,
                        flt_porcentaje_comision = total,
                        flt_total_con_comision  = fltMonto + total,
                        int_id_usuario_id       = usuario.Id,
                        int_id_usuario_trans    = usuario.Id
                    });;

                    await context.SaveChangesAsync();

                    await _emailSender.SendEmailAsync(usuario.Email, "Recarga de saldo",
                                                      "La recarga de saldo se ha realizado exitosamente. Monto $" + fltMonto + "MXN.<br/> Si usted no reconoce este movimiento comuniquese con el equipo de soporte");

                    transaction.Commit();
                }

                catch (Exception ex)
                {
                    transaction.Rollback();
                    strresult = ex.Message;
                }
            }
            //});
            return(Ok());
        }
        public async Task <ActionResult <UserToken> > CreateUser([FromBody] UserInfo model, string returnUrl)
        {
            try
            {
                ParametrosController    par = new ParametrosController(context);
                ActionResult <DateTime> horadeTransaccion = par.mtdObtenerFechaMexico();


                var usermail = await _userManager.FindByEmailAsync(model.Email);

                var usuario = await _userManager.FindByNameAsync(model.UserName);

                var tipous = await context.tbtiposusuarios.FirstOrDefaultAsync(x => x.strTipoUsuario == model.Rol);

                if (usermail == null && usuario == null)
                {
                    //String responseString = await client.GetStringAsync(UrlFecha);
                    //dynamic fecha = JsonConvert.DeserializeObject<dynamic>(responseString);
                    //string strFecha = fecha.resultado.ToString();

                    // DateTime horadeTransaccion = DateTime.Parse(strFecha);

                    if (tipous.strTipoUsuario == "MOVIL")
                    {
                        ActionResult <bool> ar = await mtdCreaUsuarioMovil(model, horadeTransaccion.Value, tipous.id);

                        if (ar.Value == true)
                        {
                            return(Ok());
                        }
                        else
                        {
                            return(Json(new { token = "Username or password invalid" }));
                        }
                    }
                    else
                    {
                        var user = new ApplicationUser
                        {
                            strNombre          = model.strNombre,
                            strApellidos       = model.strApellidos,
                            PhoneNumber        = model.PhoneNumber,
                            str_rfc            = model.str_rfc,
                            str_direccion      = model.str_direccion,
                            str_cp             = model.str_cp,
                            str_razon_social   = model.str_razon_social,
                            UserName           = model.UserName,
                            Email              = model.Email,
                            created_by         = model.created_by,
                            created_date       = horadeTransaccion.Value,
                            last_modified_by   = model.last_modified_by,
                            last_modified_date = horadeTransaccion.Value,
                            intidconcesion_id  = model.intidconcesion_id,
                            intIdTipoUsuario   = tipous.id,
                            intidciudad        = model.intidciudad,
                            bit_status         = true
                        };
                        strIdUsuario = user.Id;

                        var result = await _userManager.CreateAsync(user, model.Password);

                        if (result.Succeeded)
                        {
                            var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                            var confirmationLink = Url.Action("ConfirmarEmail", "Cuentas",
                                                              new { userId = user.Id, code = code }, Request.Scheme);
                            _logger.Log(LogLevel.Warning, confirmationLink);

                            await _emailSender.SendEmailAsync(user.Email, "Confirme su cuenta de correo",
                                                              "Por favor confirme su cuenta de correo haciendo clic en el siguiente enlace: <a href=\"" + confirmationLink + "\">link</a>");

                            return(Ok());
                        }
                        else
                        {
                            return(Json(new { token = "Username or password invalid" }));
                        }
                    }
                }

                else
                {
                    return(Json(new { token = "El correo o usuario ya se encuentra registrado" }));
                }
            }

            catch (Exception ex)
            {
                return(Json(new { token = ex.Message }));
            }
        }
        public async Task <ActionResult> mtdActualizaConcesiones(int id, [FromBody] ConcesionesConUsers concesiones)
        {
            string strIdUsuario = "";
            string strResult    = "";

            var concesion = await context.tbconcesiones.FirstOrDefaultAsync(x => x.id == id);

            var tipoUsuario = await context.tbtiposusuarios.FirstOrDefaultAsync(x => x.strTipoUsuario == "AGENTE VIAL");

            var usuarios = await context.NetUsers.Where(x => x.intidconcesion_id == id && x.intIdTipoUsuario == tipoUsuario.id).ToListAsync();

            var opcionesC = await context.tbpcionesconcesion.Where(x => x.int_id_concesion == id).ToListAsync();

            var tarifaC = await context.tbtarifas.FirstOrDefaultAsync(x => x.intidconcesion_id == id);



            ParametrosController    par  = new ParametrosController(context);
            ActionResult <DateTime> time = par.mtdObtenerFechaMexico();
            DateTime horadeTransaccion   = time.Value;

            //DateTime horadeTransaccion = DateTime.Now;

            if (concesion.id != id)
            {
                return(BadRequest());
            }

            //var strategy = context.Database.CreateExecutionStrategy();
            //await strategy.ExecuteAsync(async () =>
            //{
            using (IDbContextTransaction transaction = context.Database.BeginTransaction())
            {
                try
                {
                    var ciudadC = await context.tbciudades.Where(x => x.int_id_ciudad == concesion.intidciudad_cat).FirstOrDefaultAsync();

                    ciudadC.int_id_ciudad   = null;
                    ciudadC.str_desc_ciudad = null;
                    await context.SaveChangesAsync();

                    var ciudad = await context.tbciudades.Where(x => x.str_ciudad == concesiones.str_ciudad).FirstOrDefaultAsync();

                    ciudad.str_desc_ciudad = ciudad.str_ciudad;
                    ciudad.int_id_ciudad   = concesiones.intidciudad_cat;
                    await context.SaveChangesAsync();



                    concesion.str_clave          = concesiones.str_clave;
                    concesion.str_latitud        = concesiones.str_latitud;
                    concesion.str_longitud       = concesiones.str_longitud;
                    concesion.str_razon_social   = concesiones.str_razon_social;
                    concesion.str_domicilio      = concesiones.str_domicilio;
                    concesion.str_nombre_cliente = concesiones.str_nombre_cliente;
                    concesion.intidciudad_cat    = concesiones.intidciudad_cat;
                    concesion.intidciudad        = ciudad.id;
                    concesion.str_ciudad         = concesiones.str_ciudad;
                    concesion.str_telefono       = concesiones.str_telefono;
                    concesion.str_email          = concesiones.str_email;
                    concesion.str_rfc            = concesiones.str_rfc;
                    concesion.str_notas          = concesiones.str_notas;
                    concesion.str_poligono       = concesiones.str_poligono;
                    concesion.int_licencias      = concesiones.int_licencias;
                    concesion.dbl_costo_licencia = concesiones.dbl_costo_licencia;
                    concesion.dtm_fecha_ingreso  = concesiones.dtm_fecha_ingreso;


                    await context.SaveChangesAsync();

                    foreach (var item in concesiones.tarifas)
                    {
                        //tarifaC.str_tipo = item.str_tipo;
                        tarifaC.flt_tarifa_min        = item.flt_tarifa_min;
                        tarifaC.int_tiempo_minimo     = item.int_tiempo_minimo;
                        tarifaC.flt_tarifa_max        = item.flt_tarifa_max;
                        tarifaC.int_tiempo_maximo     = item.int_tiempo_maximo;
                        tarifaC.flt_tarifa_intervalo  = item.flt_tarifa_intervalo;
                        tarifaC.int_intervalo_minutos = item.int_intervalo_minutos;
                        tarifaC.bool_cobro_fraccion   = item.bool_cobro_fraccion;
                        //tarifaC.intidconcesion_id = id;
                        await context.SaveChangesAsync();
                    }


                    for (int i = 0; i < usuarios.Count; i++)
                    {
                        foreach (var item in concesiones.cuentas)
                        {
                            usuarios[i].UserName          = item.Email;
                            usuarios[i].Email             = item.Email;
                            usuarios[i].created_date      = horadeTransaccion;
                            usuarios[i].intidconcesion_id = concesion.id;
                            usuarios[i].intIdTipoUsuario  = tipoUsuario.id;
                            usuarios[i].intidciudad       = concesion.intidciudad;

                            await context.SaveChangesAsync();

                            await _userManager.RemovePasswordAsync(usuarios[i]);

                            var result = await _userManager.AddPasswordAsync(usuarios[i], item.PasswordHash);

                            i++;
                        }
                    }


                    context.tbpcionesconcesion.RemoveRange(opcionesC);


                    var     result2 = concesiones.opciones;
                    dynamic results = JsonConvert.DeserializeObject(concesiones.opciones.ToString());


                    foreach (var token in results["int_id_opcion"])
                    {
                        context.tbpcionesconcesion.Add(new ConcesionesOpciones()
                        {
                            int_id_opcion    = token,
                            int_id_concesion = concesion.id
                        });

                        await context.SaveChangesAsync();
                    }

                    //foreach (var item in concesiones.opciones)
                    //{
                    //    context.tbpcionesconcesion.Add(new ConcesionesOpciones()
                    //    {
                    //        int_id_opcion = item.int_id_opcion,
                    //        int_id_concesion = concesion.id
                    //    });

                    //    await context.SaveChangesAsync();
                    //}



                    transaction.Commit();
                }

                catch (Exception ex)
                {
                    transaction.Rollback();
                    strResult = ex.Message;
                }
            }
            //});

            return(Json(new { token = strResult }));
        }
        public async Task <ActionResult <Concesiones> > mtdIngresarConcesiones([FromBody] ConcesionesConUsersIngresar concesiones)
        {
            ParametrosController    par = new ParametrosController(context);
            ActionResult <DateTime> horadeTransaccion = par.mtdObtenerFechaMexico();
            string strIdUsuario = "";
            string strResult    = "";

            //var strategy = context.Database.CreateExecutionStrategy();
            //await strategy.ExecuteAsync(async () =>
            //{
            using (IDbContextTransaction transaction = context.Database.BeginTransaction())
            {
                try
                {
                    var ciudad = await context.tbciudades.Where(x => x.str_ciudad == concesiones.str_ciudad).FirstOrDefaultAsync();

                    concesiones.dtm_fecha_ingreso = horadeTransaccion.Value;

                    var tipoUsuario = await context.tbtiposusuarios.FirstOrDefaultAsync(x => x.strTipoUsuario == "AGENTE VIAL");

                    var concesion = new Concesiones
                    {
                        str_clave                     = concesiones.str_clave,
                        str_latitud                   = concesiones.str_latitud,
                        str_longitud                  = concesiones.str_longitud,
                        str_razon_social              = concesiones.str_razon_social,
                        str_domicilio                 = concesiones.str_domicilio,
                        str_nombre_cliente            = concesiones.str_nombre_cliente,
                        str_telefono                  = concesiones.str_telefono,
                        str_email                     = concesiones.str_email,
                        str_rfc                       = concesiones.str_rfc,
                        str_notas                     = concesiones.str_notas,
                        int_licencias                 = concesiones.int_licencias,
                        dbl_costo_licencia            = concesiones.dbl_costo_licencia,
                        dtm_fecha_ingreso             = concesiones.dtm_fecha_ingreso,
                        dtm_fecha_activacion_licencia = concesiones.dtm_fecha_activacion_licencia,
                        str_tipo                      = concesiones.str_tipo,
                        intidciudad                   = ciudad.id,
                        str_ciudad                    = concesiones.str_ciudad,
                        intidciudad_cat               = concesiones.intidciudad_cat,
                        bit_status                    = true
                    };

                    context.tbconcesiones.Add(concesion);

                    await context.SaveChangesAsync();

                    ciudad.int_id_ciudad   = concesiones.intidciudad_cat;
                    ciudad.str_desc_ciudad = concesiones.str_ciudad;
                    await context.SaveChangesAsync();

                    foreach (var item in concesiones.cuentas)
                    {
                        var user = new ApplicationUser
                        {
                            UserName          = item.Email,
                            Email             = item.Email,
                            created_date      = horadeTransaccion.Value,
                            intidconcesion_id = concesion.id,
                            intIdTipoUsuario  = tipoUsuario.id,
                            intidciudad       = ciudad.id,
                            EmailConfirmed    = true,
                            bit_status        = true
                        };
                        strIdUsuario = user.Id;

                        var result = await _userManager.CreateAsync(user, item.PasswordHash);
                    }


                    var     result2 = concesiones.opciones;
                    dynamic results = JsonConvert.DeserializeObject(concesiones.opciones.ToString());


                    foreach (var token in results["int_id_opcion"])
                    {
                        context.tbpcionesconcesion.Add(new ConcesionesOpciones()
                        {
                            int_id_opcion    = token,
                            int_id_concesion = concesion.id
                        });

                        await context.SaveChangesAsync();
                    }

                    foreach (var item in concesiones.tarifas)
                    {
                        context.tbtarifas.Add(new Tarifas()
                        {
                            //str_tipo = item.str_tipo,
                            flt_tarifa_min        = item.flt_tarifa_min,
                            int_tiempo_minimo     = item.int_tiempo_minimo,
                            flt_tarifa_max        = item.flt_tarifa_max,
                            int_tiempo_maximo     = item.int_tiempo_maximo,
                            flt_tarifa_intervalo  = item.flt_tarifa_intervalo,
                            int_intervalo_minutos = item.int_intervalo_minutos,
                            bool_cobro_fraccion   = item.bool_cobro_fraccion,
                            intidconcesion_id     = concesion.id
                        });

                        await context.SaveChangesAsync();
                    }


                    transaction.Commit();
                }

                catch (Exception ex)
                {
                    transaction.Rollback();
                    strResult = ex.Message;
                }
            }
            //});

            return(Json(new { token = strResult }));
        }