예제 #1
0
        public ORespuesta Registrar(ORegistro pmtPeticion)
        {
            ORespuesta Ls = new ORespuesta();

            Ls.Respuesta.Add(0);
            try
            {
                byte[]    salt       = pmtPeticion.GenerarSalt();
                Hashtable Parametros = new Hashtable()
                {
                    { "@email", pmtPeticion.CorreoElectronico },
                    { "@password", pmtPeticion.HashPasswordConSalt(Encoding.UTF8.GetBytes(pmtPeticion.Password), salt) },
                    { "@salt", salt },
                    { "@idEstatus", 1 },
                    { "@nombre", pmtPeticion.Nombre },
                    { "@direccion", pmtPeticion.Direccion },
                    { "@idTipo", pmtPeticion.IDTipoMascota },
                    { "@raza", pmtPeticion.Raza },
                    { "@idSexo", pmtPeticion.IDSexo },
                    { "@nombreMascota", pmtPeticion.NombreMascota }
                };
                DataSet ds = BaseDeDatos.EjecutaProcedimientoAlmacenado("sp_insert_registro", Parametros, cadenaConexionLocal);
                if (ds.Tables.Count > 0)
                {
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        foreach (DataRow row in ds.Tables[0].Rows)
                        {
                            Ls.Respuesta[0] = Int32.Parse(row["idUsuario"].ToString());
                        }
                    }
                }
                if ((int)Ls.Respuesta[0] > 0)
                {
                    Parametros = new Hashtable()
                    {
                        { "@idUsuario", Ls.Respuesta[0] },
                        { "@imagen", "../../Recursos/ImagenesPerfil/" + Ls.Respuesta[0].ToString() + Path.GetExtension(pmtPeticion.UploadImagen.FileName) }
                    };
                    ds         = BaseDeDatos.EjecutaProcedimientoAlmacenado("sp_update_imagen_usuario", Parametros, cadenaConexionLocal);
                    Ls.Exitoso = true;
                    return(Ls);
                }
                return(Ls);
            }
            catch (SqlException e)
            {
                Ls.Mensaje = e.Message;
                return(Ls);
            }
            catch (Exception e)
            {
                Ls.Mensaje = e.Message;
                return(Ls);
            }
        }
예제 #2
0
        public JsonResult Registrar(ORegistro PmtPeticion)
        {
            ORespuesta data = _D.Registrar(PmtPeticion);

            if (data.Exitoso)
            {
                PmtPeticion.URLImagen = data.Respuesta[0].ToString() + Path.GetExtension(PmtPeticion.UploadImagen.FileName);
                PmtPeticion.UploadImagen.SaveAs(Path.Combine(Server.MapPath("~/Recursos/ImagenesPerfil"), PmtPeticion.URLImagen));
            }
            return(Json(data));
        }
예제 #3
0
        public ORespuesta ValidarCorreoElectronicoDisponible(ORegistro pmtPeticion)
        {
            ORespuesta Ls = new ORespuesta();

            Ls.Respuesta.Add(false);
            try
            {
                Hashtable Parametros = new Hashtable()
                {
                    { "@email", pmtPeticion.CorreoElectronico }
                };
                DataSet ds = BaseDeDatos.EjecutaProcedimientoAlmacenado("sp_select_validar_correo_electronico", Parametros, cadenaConexionLocal);
                if (ds.Tables.Count > 0)
                {
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        foreach (DataRow row in ds.Tables[0].Rows)
                        {
                            if (Int32.Parse(row["resultado"].ToString()) == 0)
                            {
                                Ls.Respuesta[0] = true;
                            }
                        }
                    }
                }
                return(Ls);
            }
            catch (SqlException e)
            {
                return(Ls);
            }
            catch (Exception e)
            {
                return(Ls);
            }
        }
예제 #4
0
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                // Creamos la lista
                List <ORegistro> listRegistro = new List <ORegistro>();

                // Creamos la otra lista
                List <OCalculo> listCalculo = new List <OCalculo>();

                // Leemos los registros
                foreach (var row in textBox1.Lines)
                {
                    // Validamos el largo
                    if (row.Length == 25)
                    {
                        // Instanciamos
                        ORegistro oRegistro = new ORegistro();

                        // Obtenemos el codigo del empleado
                        oRegistro.CodEmpleado = row.Substring(0, 3);

                        // Fecha y hora del registro
                        oRegistro.Hora = new DateTime(
                            int.Parse(row.Substring(4, 4)),
                            int.Parse(row.Substring(9, 2)),
                            int.Parse(row.Substring(12, 2)),

                            int.Parse(row.Substring(15, 2)),
                            int.Parse(row.Substring(18, 2)),
                            int.Parse(row.Substring(21, 2)));

                        // Tipo de registro
                        oRegistro.Tipo = oRegistro.Hora.Hour < 11 ? ORegistro.ETipo.Entrada : ORegistro.ETipo.Salida;

                        // Agregamos a la lista
                        listRegistro.Add(oRegistro);
                    }
                }

                // Procesamos
                foreach (ORegistro row in listRegistro)
                {
                    // Instanciamos el calculo
                    OCalculo oCalculo = new OCalculo();

                    // Llenamos
                    oCalculo.CodEmpleado = row.CodEmpleado;
                    oCalculo.Dia         = row.Hora;

                    // Obtenemos la difrencia
                    TimeSpan timeSpan = row.Hora - row.Hora.Date;

                    // Forma de trabajar
                    switch (row.Tipo)
                    {
                    // Atrasos
                    case ORegistro.ETipo.Entrada:
                        if (row.Hora.DayOfWeek != DayOfWeek.Saturday & row.Hora.DayOfWeek != DayOfWeek.Sunday)
                        {
                            // Si superas las 8,5 horas es contado como atraso
                            if (timeSpan.TotalHours > 8.5)
                            {
                                oCalculo.MinAtraso = timeSpan.TotalMinutes - 510;
                                oCalculo.Tipo      = ORegistro.ETipo.Entrada;
                                listCalculo.Add(oCalculo);
                            }
                            else
                            {
                                oCalculo.MinAtraso = 0;
                                oCalculo.Tipo      = ORegistro.ETipo.Entrada;
                                listCalculo.Add(oCalculo);
                            }
                        }
                        break;

                    case ORegistro.ETipo.Salida:
                        if (row.Hora.DayOfWeek != DayOfWeek.Saturday & row.Hora.DayOfWeek != DayOfWeek.Sunday)
                        {
                            // Si supera los 1060 minutos cuenta como hora extra
                            if (timeSpan.TotalMinutes >= 1060)
                            {
                                oCalculo.MinExtra50 = (row.Hora - row.Hora.Date.AddHours(17.50)).TotalMinutes;
                                oCalculo.Tipo       = ORegistro.ETipo.Salida;
                                listCalculo.Add(oCalculo);
                            }
                            else
                            {
                                oCalculo.MinExtra50 = 0;
                                oCalculo.Tipo       = ORegistro.ETipo.Salida;
                                listCalculo.Add(oCalculo);
                            }
                        }
                        break;
                    }
                }

                DataTable dataTable = new DataTable();
                dataTable.Columns.Add("Dia", typeof(string));
                dataTable.Columns.Add("Entrada", typeof(string));
                dataTable.Columns.Add("Atraso", typeof(string));
                dataTable.Columns.Add("Salida", typeof(string));
                dataTable.Columns.Add("Extra", typeof(string));

                double Atraso = 0;
                double Extra  = 0;

                var fecha = listCalculo.GroupBy(x => x.Dia.Date).Select(y => y.First()).ToList();

                foreach (var row in fecha)
                {
                    OCalculo entrada = listCalculo.FirstOrDefault(x => x.Dia.Date == row.Dia.Date & x.Tipo == ORegistro.ETipo.Entrada) ?? new OCalculo();
                    OCalculo salida  = listCalculo.FirstOrDefault(x => x.Dia.Date == row.Dia.Date & x.Tipo == ORegistro.ETipo.Salida) ?? new OCalculo();

                    Atraso = Atraso + entrada.MinAtraso;
                    Extra  = Extra + entrada.MinExtra50;

                    dataTable.Rows.Add(
                        $"{row.Dia:yyyy-MM-dd}",
                        $"{entrada.Dia:HH:mm:ss}",
                        $"{entrada.MinAtraso:n2}",
                        $"{salida.Dia:HH:mm:ss}",
                        $"{salida.MinExtra50:n2}");
                }

                dataGridView1.DataSource = dataTable;

                StringBuilder stringBuilder = new StringBuilder();

                stringBuilder.AppendLine($"Atrasos: {listCalculo.Select(x => x.MinAtraso).Sum():n2} min.");
                stringBuilder.AppendLine($"Extra: {listCalculo.Select(x => x.MinExtra50).Sum():n2} min. | {listCalculo.Select(x => x.MinExtra50).Sum()/60:n2} horas");

                MessageBox.Show($"{stringBuilder}");
            }
            catch (Exception ex)
            {
                MessageBox.Show($"Ha ocurrido un error; {ex.Message}");
            }
        }
예제 #5
0
 public JsonResult ValidarCorreoElectronicoDisponible(ORegistro PmtPeticion)
 {
     return(Json(_D.ValidarCorreoElectronicoDisponible(PmtPeticion).Respuesta));
 }