Beispiel #1
0
    protected void btnmodificar_Click(object sender, EventArgs e)
    {
        string        departamento = "";
        string        localidad    = "";
        string        nombre       = "";
        int           habitantes   = 0;
        List <string> oLista       = (List <string>)Session["Lista"];

        if (txtdepartamento.Text.Trim().Length != 0)
        {
            departamento = txtdepartamento.Text;
        }
        else
        {
            mostrarMensajeError("Ingrese el departamento.<br>");
            return;
        }
        if (txtlocalidad.Text.Trim().Length != 0)
        {
            localidad = txtlocalidad.Text;
        }
        else
        {
            mostrarMensajeError("Ingrese la localidad.<br>");
            return;
        }
        if (txtnombre.Text.Trim().Length != 0)
        {
            nombre = txtnombre.Text;
        }
        else
        {
            mostrarMensajeError("Ingrese el nombre<br>");
            return;
        }
        try
        {
            habitantes = Convert.ToInt32(txthabitantes.Text);
        }
        catch
        {
            mostrarMensajeError("Ingrese los habitantes<br>");
            return;
        }
        Zonas unaZona = null;

        try
        {
            unaZona = new Zonas(departamento, localidad, nombre, habitantes, oLista);
            FabricaLogica.GetLogicaZona().Modificar(unaZona);
            lblerror.Text = "La zona fue modificada con éxito";

            LimpiarFormulario();
        }
        catch (ExcepcionPersonalizada ex)
        {
            mostrarMensajeError(ex.Message);
            return;
        }
        catch
        {
            mostrarMensajeError("Ocurrió un problema al modificar la Zona.");
            return;
        }
    }
Beispiel #2
0
        public async Task <ActionResult <Feacture> > mtdInsertarZonaConSecciones([FromBody] Zonas zona)
        {
            try
            {
                int idZona = 0;
                ParametrosController    par = new ParametrosController(context);
                ActionResult <DateTime> horadeTransaccion = par.mtdObtenerHora();

                // string jsonFeature = zona.str_poligono;
                // var results = JsonConvert.DeserializeObject<Feacture>(zona.str_poligono);
                dynamic results = JsonConvert.DeserializeObject <dynamic>(zona.str_poligono);

                string zon = results.ToString();

                var zona1 = new Zonas()
                {
                    created_by        = zona.created_by,
                    created_date      = horadeTransaccion.Value,
                    bit_status        = true,
                    str_descripcion   = zona.str_descripcion,
                    str_color         = zona.str_color,
                    str_poligono      = zon,
                    int_id_ciudad_id  = zona.int_id_ciudad_id,
                    intidconcesion_id = zona.intidconcesion_id,
                    str_latitud       = zona.str_latitud,
                    str_longitud      = zona.str_longitud
                };
                context.tbzonas.Add(zona1);
                context.SaveChanges();
                idZona = zona1.id;


                foreach (var token in results["features"])
                {
                    string strT     = token.ToString();
                    string tipo     = token.geometry.type;
                    string strClave = token.properties.desc;
                    //string strColor = token.properties.color;
                    string strPoligono = token.ToString();


                    if (tipo == "LineString")
                    {
                        context.tbsecciones.Add(new Secciones()
                        {
                            str_seccion  = strClave,
                            str_color    = zona.str_color,
                            str_poligono = strPoligono,
                            intidzona_id = idZona,
                            bit_status   = true
                        });

                        context.SaveChanges();
                    }
                    else
                    {
                        var    strCor  = token.geometry.coordinates;
                        string strL    = strCor[1];
                        string strLong = strCor[0];
                        context.tbespacios.Add(new Espacios()
                        {
                            str_clave    = strClave,
                            str_marcador = strPoligono,
                            str_color    = zona.str_color,
                            bit_ocupado  = false,
                            id_zona      = idZona,
                            str_latitud  = strL,
                            str_longitud = strLong,
                            bit_status   = true
                        });;

                        context.SaveChanges();
                    }
                }

                return(Ok());
            }
            catch (Exception ex)
            {
                return(Json(new { token = ex.Message }));
            }
        }
Beispiel #3
0
        public async Task <ActionResult <Zonas> > mtdModificarZona(int intIdZona, [FromBody] Zonas zona)
        {
            try
            {
                ParametrosController    par = new ParametrosController(context);
                ActionResult <DateTime> horadeTransaccion = par.mtdObtenerHora();
                var response = await context.tbzonas.FirstOrDefaultAsync(x => x.id == intIdZona);

                dynamic results = JsonConvert.DeserializeObject <dynamic>(zona.str_poligono);

                string zon = results.ToString();

                if (response.id != intIdZona)
                {
                    return(NotFound());
                }

                response.last_modified_by   = zona.last_modified_by;
                response.last_modified_date = horadeTransaccion.Value;;
                response.str_descripcion    = zona.str_descripcion;
                response.str_latitud        = zona.str_latitud;
                response.str_longitud       = zona.str_longitud;
                response.str_color          = zona.str_color;
                response.str_poligono       = zon;
                response.int_id_ciudad_id   = zona.int_id_ciudad_id;
                response.intidconcesion_id  = zona.intidconcesion_id;

                await context.SaveChangesAsync();

                //return Ok();

                context.tbsecciones.Where(x => x.intidzona_id == intIdZona).ToList().ForEach(x => context.tbsecciones.Remove(x));
                await context.SaveChangesAsync();

                context.tbespacios.Where(x => x.id_zona == intIdZona).ToList().ForEach(x => context.tbespacios.Remove(x));
                await context.SaveChangesAsync();

                foreach (var token in results["features"])
                {
                    string strT     = token.ToString();
                    string tipo     = token.geometry.type;
                    string strClave = token.properties.desc;
                    //string strColor = token.properties.color;
                    string strPoligono = token.ToString();


                    if (tipo == "LineString")
                    {
                        context.tbsecciones.Add(new Secciones()
                        {
                            str_seccion  = strClave,
                            str_color    = zona.str_color,
                            str_poligono = strPoligono,
                            intidzona_id = intIdZona,
                            bit_status   = true
                        });

                        context.SaveChanges();
                    }
                    else
                    {
                        var    strCor  = token.geometry.coordinates;
                        string strL    = strCor[0];
                        string strLong = strCor[1];
                        context.tbespacios.Add(new Espacios()
                        {
                            str_clave    = strClave,
                            str_marcador = strPoligono,
                            str_color    = zona.str_color,
                            bit_ocupado  = false,
                            id_zona      = intIdZona,
                            str_latitud  = strL,
                            str_longitud = strLong,
                            bit_status   = true
                        });;

                        context.SaveChanges();
                    }
                }

                return(Ok());
            }
            catch (Exception ex)
            {
                //ModelState.AddModelError("token", ex.Message);
                //return BadRequest(ModelState);
                return(Json(new { token = ex.Message }));
            }
        }
Beispiel #4
0
        private static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            Task.Run(() =>
            {
                GlobalConf.cargar_Todas_Accounts();
                LuaManejadorScript.inicializar_Funciones();
                XElement.Parse(Properties.Resources.interactivos).Descendants("SKILL").ToList().ForEach(i => new ObjetoInteractivoModelo(i.Element("nombre").Value, i.Element("gfx").Value, bool.Parse(i.Element("caminable").Value), i.Element("habilidades").Value, bool.Parse(i.Element("recolectable").Value)));
                PaqueteRecibido.Inicializar();
            }).ContinueWith(t =>
            {
                XElement.Parse(Properties.Resources.hechizos).Descendants("HECHIZO").ToList().ForEach(mapa =>
                {
                    Hechizo hechizo = new Hechizo(short.Parse(mapa.Attribute("ID").Value), mapa.Element("NOMBRE").Value);

                    mapa.Descendants("NIVEL").ToList().ForEach(stats =>
                    {
                        HechizoStats hechizo_stats = new HechizoStats();

                        hechizo_stats.coste_pa       = byte.Parse(stats.Attribute("COSTE_PA").Value);
                        hechizo_stats.alcanze_minimo = byte.Parse(stats.Attribute("RANGO_MINIMO").Value);
                        hechizo_stats.alcanze_maximo = byte.Parse(stats.Attribute("RANGO_MAXIMO").Value);

                        hechizo_stats.es_lanzado_linea       = bool.Parse(stats.Attribute("LANZ_EN_LINEA").Value);
                        hechizo_stats.es_lanzado_con_vision  = bool.Parse(stats.Attribute("NECESITA_VISION").Value);
                        hechizo_stats.es_celda_vacia         = bool.Parse(stats.Attribute("NECESITA_CELDA_LIBRE").Value);
                        hechizo_stats.es_alcanze_modificable = bool.Parse(stats.Attribute("RANGO_MODIFICABLE").Value);

                        hechizo_stats.lanzamientos_por_turno    = byte.Parse(stats.Attribute("MAX_LANZ_POR_TURNO").Value);
                        hechizo_stats.lanzamientos_por_objetivo = byte.Parse(stats.Attribute("MAX_LANZ_POR_OBJETIVO").Value);
                        hechizo_stats.intervalo = byte.Parse(stats.Attribute("COOLDOWN").Value);

                        stats.Descendants("EFECTO").ToList().ForEach(efecto => hechizo_stats.agregar_efecto(new HechizoEfecto(int.Parse(efecto.Attribute("TIPO").Value), Zonas.Parse(efecto.Attribute("ZONA").Value)), bool.Parse(efecto.Attribute("ES_CRITICO").Value)));
                        hechizo.get_Agregar_Hechizo_Stats(byte.Parse(stats.Attribute("NIVEL").Value), hechizo_stats);
                    });
                });
            }).Wait();

            Application.Run(new Principal());
        }
Beispiel #5
0
 public HechizoEfecto(int _id, Zonas zona)
 {
     id          = _id;
     zona_efecto = zona;
 }
Beispiel #6
0
        public Apartamento Buscar(int padron)

        {
            SqlConnection conexion = null;
            SqlDataReader drApto   = null;

            try
            {
                conexion = new SqlConnection(Conexion.CadenaConexion);

                SqlCommand cmdBuscarApto = new SqlCommand("BuscarApartamento", conexion);
                cmdBuscarApto.CommandType = CommandType.StoredProcedure;

                cmdBuscarApto.Parameters.AddWithValue("@padron", padron);

                SqlParameter valorRetorno = new SqlParameter("@valorRetorno", SqlDbType.Int);
                valorRetorno.Direction = ParameterDirection.ReturnValue;
                cmdBuscarApto.Parameters.Add(valorRetorno);

                conexion.Open();

                cmdBuscarApto.ExecuteNonQuery();

                switch ((int)valorRetorno.Value)
                {
                case -2:
                    throw new ExcepcionPersonalizada("Ocurrio un error al buscar la propiedad.");
                    break;
                }

                drApto = cmdBuscarApto.ExecuteReader();

                Apartamento apto = null;

                if (drApto.HasRows)
                {
                    drApto.Read();
                    InterfacePersistenciaEmpleado interEmpleado = PersistenciaEmpleado.GetInstancia();
                    Empleado empleado = interEmpleado.Buscar((string)drApto["Empleado"]);

                    InterfacePersistenciaZona interZona = PersistenciaZona.GetInstancia();
                    Zonas zona = interZona.Buscar((string)drApto["Departamento"], (string)drApto["Localidad"]);

                    apto = new Apartamento((int)drApto["Padron"], (string)drApto["Direccion"], (int)drApto["Precio"], (string)drApto["Accion"],
                                           (int)drApto["Baños"], (int)drApto["Habitaciones"], (double)drApto["Area"], (int)drApto["Piso"], (bool)drApto["Ascensor"], empleado, zona);
                }

                return(apto);
            }
            catch (ExcepcionPersonalizada ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw new ExcepcionPersonalizada("Ocurrió un problema al acceder a la base de datos.", ex);
            }
            finally
            {
                if (drApto != null)
                {
                    drApto.Close();
                }

                if (conexion != null)
                {
                    conexion.Close();
                }
            }
        }
Beispiel #7
0
        public List <Apartamento> Listar()
        {
            SqlConnection      conexion = null;
            SqlDataReader      drApto   = null;
            List <Apartamento> lista    = new List <Apartamento>();

            try
            {
                conexion = new SqlConnection(Conexion.CadenaConexion);

                SqlCommand cmdListarApto = new SqlCommand("ListarApartamento", conexion);
                cmdListarApto.CommandType = CommandType.StoredProcedure;

                SqlParameter valorRetorno = new SqlParameter("@valorRetorno", SqlDbType.Int);
                valorRetorno.Direction = ParameterDirection.ReturnValue;
                cmdListarApto.Parameters.Add(valorRetorno);

                conexion.Open();
                cmdListarApto.ExecuteNonQuery();

                if ((int)valorRetorno.Value == -1)
                {
                    throw new ExcepcionPersonalizada("Ocurrio un problema al listar.");
                }

                drApto = cmdListarApto.ExecuteReader();

                Apartamento unApto = null;
                if (drApto.HasRows)
                {
                    while (drApto.Read())
                    {
                        InterfacePersistenciaEmpleado interEmpleado = PersistenciaEmpleado.GetInstancia();
                        Empleado empleado = interEmpleado.Buscar((string)drApto["Empleado"]);

                        InterfacePersistenciaZona interZona = PersistenciaZona.GetInstancia();
                        Zonas zona = interZona.Buscar((string)drApto["Departamento"], (string)drApto["Localidad"]);

                        unApto = new Apartamento((int)drApto["Padron"], (string)drApto["Direccion"], (int)drApto["Precio"], (string)drApto["Accion"],
                                                 (int)drApto["Baños"], (int)drApto["Habitaciones"], (double)drApto["Area"], (int)drApto["Piso"], (bool)drApto["Ascensor"], empleado, zona);
                        lista.Add(unApto);
                    }
                }
                return(lista);
            }
            catch (ExcepcionPersonalizada ex)
            {
                throw ex;
            }
            catch
            {
                throw new ExcepcionPersonalizada("Ocurrio un problema al acceder a la base de datos.");
            }
            finally
            {
                if (drApto != null)
                {
                    drApto.Close();
                }
                if (conexion != null)
                {
                    conexion.Close();
                }
            }
        }
        public void data(Zonas datos)
        {
            int a = 0;

            a = a + 1;
        }
Beispiel #9
0
        public async void obtenerDatosDelServicioZonasTrabajoAsync(int codigoUsuario)
        {
            googleMaps.Circles.Clear();
            googleMaps.Pins.Clear();
            String IP_LEGAL = App.Current.Properties["IpPublicado"].ToString();
            Zonas  zonas    = new Zonas();
            String url      = IP_LEGAL + "/legal/ZonaTrabajo/ZonaTrabajoListarJsonExterno?id=" + codigoUsuario;
            var    content  = await _Client.GetStringAsync(url);

            var service = new RestClient <Zonas>();

            zonas = await service.GetRestServicieDataAsync(url);

            bool habilitarAcceso   = false;
            int  userObtenerID     = 0;
            int  codigoZonaTrabajo = 0;

            double       distance   = 0.0d;
            const double metersInKm = 1000.0d;

            for (int i = 0; i < zonas.zonas.Length; i++)
            {
                var position = new Position(zonas.zonas[i].Latitud, zonas.zonas[i].Longitud);
                googleMaps.Pins.Add(new Pin
                {
                    Position = position,
                    Label    = zonas.zonas[i].Direccion
                });
                circle             = new Circle();
                circle.IsClickable = true;
                circle.Center      = position;
                circle.Radius      = Distance.FromMeters(zonas.zonas[i].Radio);
                circle.StrokeColor = Color.SaddleBrown;
                circle.StrokeWidth = 3f;
                //circle.FillColor = Color.FromRgba(0, 0, 255, 32); //error  intensifica el color por cada peticion
                circle.FillColor = Color.Transparent;
                circle.Tag       = zonas.zonas[i].Direccion; // Can set any object
                googleMaps.Circles.Add(circle);

                distance = Location.CalculateDistance(userCurrentlocation, position.Latitude,
                                                      position.Longitude, DistanceUnits.Kilometers);//this result give in KM
                distance = distance * metersInKm;

                userObtenerID = zonas.zonas[i].UsuarioID;
                if (distance < zonas.zonas[i].Radio && codigoUsuario.Equals(userObtenerID))
                {
                    habilitarAcceso   = true;
                    codigoZonaTrabajo = zonas.zonas[i].ZonaTrabajoId;
                }
                else
                {
                    habilitarAcceso = (habilitarAcceso) ? habilitarAcceso : false;
                }
            }
            String situacion     = "0";
            bool   existeUsuario = false;

            for (int i = 0; i < zonas.zonas.Length; i++)
            {
                if (zonas.zonas[i].UsuarioID.Equals(codigoUsuario))
                {
                    existeUsuario = true;
                    break;
                }
            }
            if (existeUsuario == false)
            {
                situacion = " sin Zona de Trabajo asignado";
            }
            else
            {
                situacion = habilitarAcceso ? " Acceso Habilitado y Zona: " + codigoZonaTrabajo : "Se encuentra fuera de una Zona de Trabajo asignado";
            }
            String mensaje = "Usuario " + situacion;

            //Si no hay zonas de Trabajo con ese usario no guarda su historial
            if (existeUsuario == false)
            {
                mensajeEstaDentroZonaUsuarioAsync(mensaje, existeUsuario, habilitarAcceso);
            }
            else
            {
                Position             positionGMaps = new Position(userCurrentlocation.Latitude, userCurrentlocation.Longitude);
                Geocoder             geocoder      = new Geocoder();
                IEnumerable <string> address       = await geocoder.GetAddressesForPositionAsync(positionGMaps);

                var pais      = "4";
                var ciudad    = "2";
                var direccion = "0";
                direccion = address.ElementAt(0);
                ciudad    = address.ElementAt(2);
                pais      = address.ElementAt(4);
                string imei = CrossDeviceInfo.Current.Id;
                HistorialAccesoInsertarJsonExternoAsync(codigoUsuario, imei,
                                                        userCurrentlocation.Latitude,
                                                        userCurrentlocation.Longitude,
                                                        pais,
                                                        ciudad,
                                                        direccion);

                if (habilitarAcceso)
                {
                    habilitarAccesoAZonaTrabajoUsuarioAsync(codigoZonaTrabajo, "1");

                    obtenerTokenDelUsuarioAsync(codigoUsuario);
                }
                else
                {
                    //habilitarAccesoAZonaTrabajoUsuario(codigoZonaTrabajo,"0");
                    labelToken.Text = "Token";
                    if (_timer.Enabled)
                    {
                        _timer.Stop();
                        labelTokenTiempoRestante.Text = "tiempo restante";
                    }
                }

                mensajeEstaDentroZonaUsuarioAsync(mensaje, existeUsuario, habilitarAcceso);
            }
        }
    protected Apartamento CargarApartamento()
    {
        int      padron;
        string   direccion = txtDireccion.Text;
        string   accion    = ddlAccion.SelectedValue;
        int      precio;
        double   tamaño;
        int      habitacion;
        int      baños;
        int      piso;
        bool     ascensor = false;
        Empleado empleado = null;
        Zonas    zona     = null;

        if (String.IsNullOrWhiteSpace(txtLoca.Text))
        {
            throw new ExcepcionPersonalizada("Debe indcar la localidad.");
        }
        string dep = ddlDepa.SelectedValue;
        string loc = txtLoca.Text;

        try
        {
            empleado = (Empleado)Session["USER"];
        }
        catch (ExcepcionPersonalizada ex)
        {
            throw ex;
        }
        catch
        {
            throw new ExcepcionPersonalizada("Ocurrio un problema al buscar al empleado");
        }

        try
        {
            InterfaceLogicaZona inter = FabricaLogica.GetLogicaZona();
            zona = inter.Buscar(dep, loc);

            if (zona == null)
            {
                throw new ExcepcionPersonalizada("Debe ingresar una zona valida.");
            }
        }
        catch (ExcepcionPersonalizada ex)
        {
            throw ex;
        }
        catch
        {
            throw new ExcepcionPersonalizada("Ocurrio un problema al buscar la zona");
        }

        try
        {
            padron = Convert.ToInt32(txtPadron.Text);
        }
        catch (FormatException)
        {
            throw new  ExcepcionPersonalizada("El Padron debe ser un numero entero.");
        }
        try
        {
            precio = Convert.ToInt32(txtPrecio.Text);
        }
        catch (FormatException)
        {
            throw new ExcepcionPersonalizada("El Precio debe ser un numero entero.");
        }
        try
        {
            tamaño = Convert.ToDouble(txtTamaño.Text);
        }
        catch (FormatException)
        {
            throw new ExcepcionPersonalizada("El Tamaño debe ser un numero decimal.");
        }
        try
        {
            habitacion = Convert.ToInt32(txtHabitacion.Text);
        }
        catch (FormatException)
        {
            throw new ExcepcionPersonalizada("El numero de habitaciones debe ser un numero entero.");
        }
        try
        {
            baños = Convert.ToInt32(txtBaño.Text);
        }
        catch (FormatException)
        {
            throw new ExcepcionPersonalizada("El numero de baños debe ser un numero entero.");
        }
        try
        {
            piso = Convert.ToInt32(txtPiso.Text);
        }
        catch (FormatException)
        {
            throw new ExcepcionPersonalizada("El Piso debe ser un numero entero.");
        }

        if (rbtnSi.Checked)
        {
            ascensor = true;
        }

        Apartamento apartamento = new Apartamento(padron, direccion, precio, accion, baños, habitacion, tamaño, piso, ascensor, empleado, zona);

        return(apartamento);
    }
Beispiel #11
0
        public List <Visita> Listar(int padron)
        {
            SqlConnection conexion = null;
            SqlDataReader drVisita = null;
            List <Visita> visitas  = new List <Visita>();

            try
            {
                conexion = new SqlConnection(Conexion.CadenaConexion);

                SqlCommand cmdListarVisitas = new SqlCommand("ListarVisitas", conexion);
                cmdListarVisitas.CommandType = CommandType.StoredProcedure;

                cmdListarVisitas.Parameters.AddWithValue("@padron", padron);

                SqlParameter valorRetorno = new SqlParameter("@valorRetorno", SqlDbType.Int);
                valorRetorno.Direction = ParameterDirection.ReturnValue;
                cmdListarVisitas.Parameters.Add(valorRetorno);

                conexion.Open();

                cmdListarVisitas.ExecuteNonQuery();

                switch ((int)valorRetorno.Value)
                {
                case -1:
                    throw new ExcepcionPersonalizada("La propiedad con el padron " + padron + " no existe.");
                    break;

                case -2:
                    throw new ExcepcionPersonalizada("Ocurrio un error al listar las visitas.");
                    break;
                }

                drVisita = cmdListarVisitas.ExecuteReader();

                Visita visita = null;

                if (drVisita.HasRows)
                {
                    while (drVisita.Read())
                    {
                        InterfacePersistenciaEmpleado interEmpleado = PersistenciaEmpleado.GetInstancia();
                        Empleado empleado = interEmpleado.Buscar((string)drVisita["Empleado"]);

                        InterfacePersistenciaZona interZona = PersistenciaZona.GetInstancia();
                        Zonas zona = interZona.Buscar((string)drVisita["Departamento"], (string)drVisita["Localidad"]);

                        Propiedad propiedad = new Propiedad((int)drVisita["Padron"], (string)drVisita["Direccion"], (int)drVisita["Precio"], (string)drVisita["Accion"], (int)drVisita["Baños"], (int)drVisita["Habitaciones"], (double)drVisita["Area"], empleado, zona);

                        visita = new Visita((int)drVisita["Id"], (DateTime)drVisita["Fecha"], (string)drVisita["Visitante"], (string)drVisita["Telefono"], propiedad);
                        visitas.Add(visita);
                    }
                }
                return(visitas);
            }
            catch (ExcepcionPersonalizada ex)
            {
                throw ex;
            }
            catch
            {
                throw new ExcepcionPersonalizada("Ocurrio un problema al acceder a la base de datos.");
            }
            finally
            {
                if (drVisita != null)
                {
                    drVisita.Close();
                }
                if (conexion != null)
                {
                    conexion.Close();
                }
            }
        }
Beispiel #12
0
        public ResultAndError <Recuento> IniciarRecuento(string center, string almacen, string product, string zona)
        {
            Center oCenter = cnBS.Get("088");//TODO modificar cuando este el login
            ResultAndError <Recuento> recount = new ResultAndError <Recuento>();
            var almacenes = db.AlmacenZPs
                            .Include(o => o.Location)
                            .Include(o => o.Zonas)
                            .Include(o => o.Product)
                            .Where(o => o.LocationCode == almacen)
                            .GroupBy(o => o.LocationCode)
                            .ToList();

            if (almacenes.Count() == 0)
            {
                return(recount.AddError("No hay datos"));
            }

            List <string> zonas = zona.Split(',').ToList();

            recount = CheckZonaRecuento(zonas, recount);

            if (recount.HasErrors)
            {
                return(recount);
            }

            CabeceraRecuento oCabecera = new CabeceraRecuento()
            {
                Status = 0
            };

            cBS.Update(oCabecera, true);

            Recuento oRecuento = new Recuento();

            //Recorremos el group by del almacen
            foreach (var group in almacenes)
            {
                //Aqui recorremos los items que esten agrupados en este almacen
                foreach (AlmacenZP alm in group.ToList())
                {
                    oRecuento.Almacen = alm.Location.Name;
                    List <Zonas> zonaAlmacen = new List <Zonas>();
                    //Recorremos las zonas seleccionadas
                    foreach (string z in zonas)
                    {
                        var tempAlmacenes = group.Where(o => o.Zona == z).ToList();
                        if (tempAlmacenes.Count() == 0)
                        {
                            continue;                             //Si no hay zona saltamos a la siguiente vuelta
                        }
                        Zonas oZona = new Zonas();
                        foreach (AlmacenZP zP in tempAlmacenes)//Recorremos los productos
                        {
                            oZona = new Zonas()
                            {
                                Zona      = zP.Zonas.Name,
                                Productos = tempAlmacenes.OrderBy(o => o.Product.Description).ToList()
                            };//Creamos el objeto Zonas
                            recount = CheckProductoRecuento(zP.ProductNo, recount);
                            if (recount.HasErrors)
                            {
                                return(recount);
                            }
                            //Creamos el objeto HojaRecuento
                            HojaRecuento oHoja = new HojaRecuento()
                            {
                                Codigo       = "HR" + oCabecera.IdRecuento,
                                Date         = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month)),
                                CenterCode   = center,
                                LocationCode = zP.LocationCode,
                                Zone         = zP.Zona,
                                ProductNo    = zP.ProductNo,
                                Quantity     = zP.Product.StockActual
                            };
                            Update(oHoja, true);//Creamos la hoja del producto
                        }
                        zonaAlmacen.Add(oZona);
                    }
                    oRecuento.Zonas = zonaAlmacen.OrderBy(o => o.Zona).ToList();
                    break;
                }
            }

            recount.AddResult(oRecuento);
            return(recount);
        }
        public string InsertarZona(out int id_zona, Zonas zona)
        {
            id_zona = 0;
            int    contador = 0;
            string rpta     = "";

            string consulta = "INSERT INTO Zonas (Id_ciudad, Nombre_zona, Observaciones_zona, Estado_zona) " +
                              "VALUES(@Id_ciudad, @Nombre_zona, @Observaciones_zona, @Estado_zona) " +
                              "SET @Id_zona = SCOPE_IDENTITY() ";

            SqlConnection SqlCon = new SqlConnection();

            SqlCon.InfoMessage += new SqlInfoMessageEventHandler(SqlCon_InfoMessage);
            SqlCon.FireInfoMessageEventOnUserErrors = true;
            try
            {
                SqlCon.ConnectionString = DConexion.Cn;
                SqlCon.Open();
                SqlCommand SqlCmd = new SqlCommand
                {
                    Connection  = SqlCon,
                    CommandText = consulta,
                    CommandType = CommandType.Text
                };

                SqlParameter Id_zona = new SqlParameter
                {
                    ParameterName = "@Id_zona",
                    SqlDbType     = SqlDbType.Int,
                    Direction     = ParameterDirection.Output
                };
                SqlCmd.Parameters.Add(Id_zona);

                SqlParameter Id_ciudad = new SqlParameter
                {
                    ParameterName = "@Id_ciudad",
                    SqlDbType     = SqlDbType.Int,
                    Value         = zona.Id_ciudad
                };
                SqlCmd.Parameters.Add(Id_ciudad);
                contador += 1;

                SqlParameter Nombre_zona = new SqlParameter
                {
                    ParameterName = "@Nombre_zona",
                    SqlDbType     = SqlDbType.VarChar,
                    Size          = 50,
                    Value         = zona.Nombre_zona.Trim()
                };
                SqlCmd.Parameters.Add(Nombre_zona);
                contador += 1;

                SqlParameter Observaciones_zona = new SqlParameter
                {
                    ParameterName = "@Observaciones_zona",
                    SqlDbType     = SqlDbType.VarChar,
                    Size          = 150,
                    Value         = zona.Observaciones_zona.Trim()
                };
                SqlCmd.Parameters.Add(Observaciones_zona);
                contador += 1;

                SqlParameter Estado_zona = new SqlParameter
                {
                    ParameterName = "@Estado_zona",
                    SqlDbType     = SqlDbType.VarChar,
                    Size          = 50,
                    Value         = zona.Estado_zona.Trim()
                };
                SqlCmd.Parameters.Add(Estado_zona);
                contador += 1;

                //Ejecutamos nuestro comando
                rpta = SqlCmd.ExecuteNonQuery() >= 1 ? "OK" : "NO SE INGRESÓ";
                if (!rpta.Equals("OK"))
                {
                    if (this.Mensaje_respuesta != null)
                    {
                        rpta = this.Mensaje_respuesta;
                    }
                }
                else
                {
                    id_zona = Convert.ToInt32(SqlCmd.Parameters["@Id_zona"].Value);
                }
            }
            //Mostramos posible error que tengamos
            catch (SqlException ex)
            {
                rpta = ex.Message;
            }
            catch (Exception ex)
            {
                rpta = ex.Message;
            }
            finally
            {
                //Si la cadena SqlCon esta abierta la cerramos
                if (SqlCon.State == ConnectionState.Open)
                {
                    SqlCon.Close();
                }
            }
            return(rpta);
        }
        public string EditarZona(int id_zona, Zonas zona)
        {
            int    contador = 0;
            string rpta     = "";

            string consulta = "UPDATE Zonas SET " +
                              "Id_ciudad = @Id_ciudad, " +
                              "Nombre_zona = @Nombre_zona, " +
                              "Observaciones_zona = @Observaciones_zona, " +
                              "Estado_zona = @Estado_zona " +
                              "WHERE Id_zona = @Id_zona ";

            SqlConnection SqlCon = new SqlConnection();

            SqlCon.InfoMessage += new SqlInfoMessageEventHandler(SqlCon_InfoMessage);
            SqlCon.FireInfoMessageEventOnUserErrors = true;
            try
            {
                SqlCon.ConnectionString = DConexion.Cn;
                SqlCon.Open();
                SqlCommand SqlCmd = new SqlCommand
                {
                    Connection  = SqlCon,
                    CommandText = consulta,
                    CommandType = CommandType.Text
                };

                SqlParameter Id_zona = new SqlParameter
                {
                    ParameterName = "@Id_zona",
                    SqlDbType     = SqlDbType.Int,
                    Value         = id_zona,
                };
                SqlCmd.Parameters.Add(Id_zona);

                SqlParameter Id_ciudad = new SqlParameter
                {
                    ParameterName = "@Id_ciudad",
                    SqlDbType     = SqlDbType.Int,
                    Value         = zona.Id_ciudad
                };
                SqlCmd.Parameters.Add(Id_ciudad);
                contador += 1;

                SqlParameter Nombre_zona = new SqlParameter
                {
                    ParameterName = "@Nombre_zona",
                    SqlDbType     = SqlDbType.VarChar,
                    Size          = 50,
                    Value         = zona.Nombre_zona.Trim()
                };
                SqlCmd.Parameters.Add(Nombre_zona);
                contador += 1;

                SqlParameter Observaciones_zona = new SqlParameter
                {
                    ParameterName = "@Observaciones_zona",
                    SqlDbType     = SqlDbType.VarChar,
                    Size          = 150,
                    Value         = zona.Observaciones_zona.Trim()
                };
                SqlCmd.Parameters.Add(Observaciones_zona);
                contador += 1;

                SqlParameter Estado_zona = new SqlParameter
                {
                    ParameterName = "@Estado_zona",
                    SqlDbType     = SqlDbType.VarChar,
                    Size          = 50,
                    Value         = zona.Estado_zona.Trim()
                };
                SqlCmd.Parameters.Add(Estado_zona);
                contador += 1;

                //Ejecutamos nuestro comando
                rpta = SqlCmd.ExecuteNonQuery() >= 1 ? "OK" : "NO SE INGRESÓ";
                if (!rpta.Equals("OK"))
                {
                    if (this.Mensaje_respuesta != null)
                    {
                        rpta = this.Mensaje_respuesta;
                    }
                }
            }
            //Mostramos posible error que tengamos
            catch (SqlException ex)
            {
                rpta = ex.Message;
            }
            catch (Exception ex)
            {
                rpta = ex.Message;
            }
            finally
            {
                //Si la cadena SqlCon esta abierta la cerramos
                if (SqlCon.State == ConnectionState.Open)
                {
                    SqlCon.Close();
                }
            }
            return(rpta);
        }
        public static string InsertarZona(out int id_zona, Zonas zona)
        {
            DZonas DZonas = new DZonas();

            return(DZonas.InsertarZona(out id_zona, zona));
        }
        public static string EditarZona(int id_zona, Zonas zona)
        {
            DZonas DZonas = new DZonas();

            return(DZonas.EditarZona(id_zona, zona));
        }