Пример #1
0
        /// <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;
            }
        }
Пример #2
0
 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;
     }
 }