/// <summary> /// Sirve pero lo comento para no usarlo /// </summary> /// <param name="zona"></param> //public static List<Zona> ObtenerZonasPorEmpresa(string codigoEmpresa) //{ // return ControladorZonas.ObtenerZonas().Where(x => x.CodigoEmpresa == codigoEmpresa).ToList(); //} public static void CargarClientes(Zona zona, ModoClientesRuteo modoVerClientes = ModoClientesRuteo.Todos) { try { zona.Clientes.Clear(); using (var connection = new OleDbConnection(AccesoDB.FoxPreventaReal)) { var query = string.Empty; switch (modoVerClientes) { case ModoClientesRuteo.ConRecorrido: query = string.Format("SELECT c.codigo, c.nombre, c.street, c.number, c.latitud, c.longitud, c.observ, cz.recorrido, r.nombre, c.tipo_tarjeta = '03' as roja FROM clientes c INNER JOIN ramos r ON c.ramo=r.codigo INNER JOIN config_zona cz ON cz.cliente=c.codigo WHERE cz.zona='{0}' and cz.empresa='{1}' and cz.subempresa='{2}' and cz.baja=0 and c.inactivo=0 and c.potencial=0 and c.legales=0 and c.suspendido=0 and cz.recorrido>0 ", zona.Codigo, zona.CodigoEmpresa, zona.CodigoDivision); break; case ModoClientesRuteo.SinRecorrido: query = string.Format("SELECT c.codigo, c.nombre, c.street, c.number, c.latitud, c.longitud, c.observ, cz.recorrido, r.nombre, c.tipo_tarjeta = '03' as roja FROM clientes c INNER JOIN ramos r ON c.ramo=r.codigo INNER JOIN config_zona cz ON cz.cliente=c.codigo WHERE cz.zona='{0}' and cz.empresa='{1}' and cz.subempresa='{2}' and cz.baja=0 and c.inactivo=0 and c.potencial=0 and c.legales=0 and c.suspendido=0 and cz.recorrido=0 ", zona.Codigo, zona.CodigoEmpresa, zona.CodigoDivision); break; case ModoClientesRuteo.Ninguno: query = string.Format("SELECT c.codigo, c.nombre, c.street, c.number, c.latitud, c.longitud, c.observ, cz.recorrido, r.nombre, c.tipo_tarjeta = '03' as roja FROM clientes c INNER JOIN ramos r ON c.ramo=r.codigo INNER JOIN config_zona cz ON cz.cliente=c.codigo WHERE cz.zona='{0}' and cz.empresa='{1}' and cz.subempresa='{2}' and cz.baja=0 and c.inactivo=0 and c.potencial=0 and c.legales=0 and c.suspendido=0 and cz.recorrido<0 ", zona.Codigo, zona.CodigoEmpresa, zona.CodigoDivision); break; case ModoClientesRuteo.Todos: default: query = string.Format("SELECT c.codigo, c.nombre, c.street, c.number, c.latitud, c.longitud, c.observ, cz.recorrido, r.nombre, c.tipo_tarjeta = '03' as roja FROM clientes c INNER JOIN ramos r ON c.ramo=r.codigo INNER JOIN config_zona cz ON cz.cliente=c.codigo WHERE cz.zona='{0}' and cz.empresa='{1}' and cz.subempresa='{2}' and cz.baja=0 and c.inactivo=0 and c.potencial=0 and c.legales=0 and c.suspendido=0 ", zona.Codigo, zona.CodigoEmpresa, zona.CodigoDivision); break; } query += "order by cz.recorrido"; var command = AccesoDB.CrearComando(connection, query, CommandType.Text); connection.Open(); AccesoDB.ComandosFox(connection); using (var dr = command.ExecuteReader()) { while (dr.Read()) { var cli = new Cliente(); cli.Codigo = dr.GetString(0); cli.Nombre = dr.GetString(1).Trim(); cli.Calle = dr.GetString(2).Trim(); cli.Numero = dr.GetValue(3).ToString(); var Latitud = Convert.ToDouble(dr.GetValue(4), CultureInfo.CurrentCulture); var Longitud = Convert.ToDouble(dr.GetValue(5), CultureInfo.CurrentCulture); cli.Coordenada = new PointLatLng(Latitud, Longitud); cli.Observacion = dr.GetString(6).Trim(); cli.OrdenRecorrido = Convert.ToInt32(dr.GetValue(7)); cli.Actividad = dr.GetString(8).Trim(); cli.Roja = dr.GetBoolean(9); zona.Clientes.Add(cli); } } } } catch (Exception ex) { throw ex; } }
public static void CargarClientes(Vendedor vendedor, DateTime dia, ModoClientesRuteo modo) { try { if (vendedor.Zonas.Count == 0) { ControladorZonas.CargarZonasDelVendedor(vendedor, dia); } vendedor.CantidadClientes = 0; foreach (var zona in vendedor.Zonas) { ControladorZonas.CargarClientes(zona, modo); vendedor.CantidadClientes += zona.Clientes.Count; } } catch (Exception ex) { throw ex; } }