Exemplo n.º 1
0
        public static List <Actividad> ObtenerActividades()
        {
            var lista = new List <Actividad>();

            try
            {
                using (var connection = new OleDbConnection(AccesoDB.FoxPreventaReal))
                {
                    var query   = "SELECT codigo, nombre FROM ramos order by nombre";
                    var command = AccesoDB.CrearComando(connection, query, CommandType.Text);
                    connection.Open();
                    AccesoDB.ComandosFox(connection);
                    using (var dr = command.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            var actividad = new Actividad();
                            actividad.Codigo   = dr.GetString(0).Trim();
                            actividad.Nombre   = dr.GetString(1).Trim();
                            actividad.Clientes = new List <Cliente>();
                            lista.Add(actividad);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(lista);
        }
Exemplo n.º 2
0
        public static List <Zona> ObtenerZonas()
        {
            var zonas = new List <Zona>();

            try
            {
                using (var connection = new OleDbConnection(AccesoDB.FoxPreventaReal))
                {
                    var query   = @"SELECT codigo, empresa_rel, empresa, nombre FROM zonas WHERE activada = 1 AND (operator <> ' ' OR operator2 <> ' ') order by codigo";
                    var command = AccesoDB.CrearComando(connection, query, CommandType.Text);
                    connection.Open();
                    AccesoDB.ComandosFox(connection);
                    using (var dr = command.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            var zona = new Zona();
                            zona.Codigo         = dr.GetString(0).Trim();
                            zona.CodigoEmpresa  = dr.GetString(1).ToString().Trim();
                            zona.CodigoDivision = dr.GetString(2).Trim();
                            zona.Nombre         = dr.GetString(3).Trim();
                            zonas.Add(zona);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(zonas);
        }
Exemplo n.º 3
0
        public static void CargarZonasDelVendedor(Vendedor vendedor, DateTime date)
        {
            var codigoVendedor = vendedor.Codigo;
            var diaVisita      = DatetimeToDiaSemana.Convertir(date);

            try
            {
                using (var connection = new OleDbConnection(AccesoDB.FoxPreventaReal))
                {
                    connection.Open();
                    AccesoDB.ComandosFox(connection);
                    var query   = string.Format("SELECT zonas.codigo as zona, zonas.empresa_rel as empresa, zonas.empresa as division, zonas.nombre as nombre FROM zonas INNER JOIN cron_ped ON zonas.empresa_rel = cron_ped.empresa AND zonas.empresa = cron_ped.prov AND zonas.codigo=cron_ped.zona AND '{0}'$cron_ped.pedido WHERE zonas.activada=1 and (zonas.operator='{1}' or zonas.operator2 = '{1}') and zonas.empresa_rel = '{2}' group by zonas.codigo", diaVisita, codigoVendedor, vendedor.CodigoEmpresa);
                    var command = AccesoDB.CrearComando(connection, query, CommandType.Text);
                    using (var dr = command.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            var zona = new Zona();
                            zona.Codigo         = dr.GetString(0).Trim();
                            zona.CodigoEmpresa  = dr.GetString(1).ToString().Trim();
                            zona.CodigoDivision = dr.GetString(2).Trim();
                            zona.Nombre         = dr.GetString(3).Trim();
                            vendedor.Zonas.Add(zona);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 4
0
        public static List <PointLatLng> ObtenerVerticesZona(string zona, string empresa, string division)
        {
            var lista = new List <PointLatLng>();

            try
            {
                using (var connection = new OleDbConnection(AccesoDB.FoxPreventaReal))
                {
                    var query   = string.Format("SELECT latitud, longitud FROM zonas_vertices where zona='{0}' and empresa='{1}' and subempresa='{2}'", zona, empresa, division);
                    var command = AccesoDB.CrearComando(connection, query, CommandType.Text);
                    connection.Open();
                    AccesoDB.ComandosFox(connection);
                    using (var dr = command.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            var lat     = Convert.ToDouble(dr.GetValue(0), CultureInfo.CurrentCulture);
                            var lng     = Convert.ToDouble(dr.GetValue(1), CultureInfo.CurrentCulture);
                            var vertice = new PointLatLng(lat, lng);
                            lista.Add(vertice);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(lista);
        }
Exemplo n.º 5
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;
            }
        }
        //protected override void OnDoWork(DoWorkEventArgs e)
        //{
        //    try
        //    {
        //        if (Fletero.Clientes.Count == 0)
        //        {
        //            var clientes = ControladoraWebApi.ObtenerClientes(Fletero.Codigo).Result;
        //            foreach (var cli in clientes)
        //            {
        //                if (!Fletero.Clientes.Any(c => c.Codigo.Equals(cli.Codigo)))
        //                {
        //                    Fletero.Clientes.Add(cli);
        //                }
        //            }
        //        }
        //        Fletero.CantidadClientes = Fletero.Clientes.DistinctBy(x => x.Codigo).Count();
        //        e.Result = Fletero;
        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //    finally
        //    {
        //        ReportProgress(100, "Done!");
        //    }
        //}

        protected override void OnDoWork(DoWorkEventArgs e)
        {
            try
            {
                //Fletero.Clientes.Clear();
                if (Fletero.Clientes.Count == 0)
                {
                    using (var connection = new OleDbConnection(AccesoDB.FoxPreventaReal))
                    {
                        var parameters = new OleDbParameter[] { new OleDbParameter("@fletero", Fletero.Codigo), new OleDbParameter("@fecha", fecha.Date) };
                        var sp         = AccesoDB.CrearComando(connection, "clientesfletero", CommandType.StoredProcedure, parameters);
                        connection.Open();
                        AccesoDB.ComandosFox(connection);
                        using (var dr = sp.ExecuteReader())
                        {
                            while (dr.Read())
                            {
                                string codigo = dr.GetString(0).Trim();
                                if (!Fletero.Clientes.Any(c => c.Codigo.Equals(codigo)))
                                {
                                    var cli = new ClienteFletero();
                                    cli.Codigo = codigo;
                                    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 = 0;
                                    cli.Actividad      = dr.GetString(7).Trim();
                                    cli.Roja           = dr.GetBoolean(8);
                                    cli.Contado        = Convert.ToDecimal(dr.GetValue(9));
                                    cli.CtaCte         = Convert.ToDecimal(dr.GetValue(10));
                                    Fletero.Clientes.Add(cli);
                                }
                            }
                        }
                    }
                }
                Fletero.CantidadClientes = Fletero.Clientes.DistinctBy(x => x.Codigo).Count();
                e.Result = Fletero;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                ReportProgress(100, "Done!");
            }
        }
        private void CargarDatosFletero(ref Fletero flet)
        {
            //var flet = new Fletero();

            using (var connection = new OleDbConnection(AccesoDB.FoxPreventaReal))
            {
                var query    = string.Format("SELECT nombre,domicilio FROM proveedo WHERE fletero=1 AND habilitado=1 and codigo='{0}'", flet.Codigo);
                var consulta = AccesoDB.CrearComando(connection, query, CommandType.Text);
                connection.Open();
                AccesoDB.ComandosFox(connection);
                var dr = consulta.ExecuteReader();
                if (dr.Read())
                {
                    flet.Nombre    = dr.GetString(0).Trim();
                    flet.Domicilio = dr.GetString(1).Trim();
                }
            }
            //return flet;
        }
Exemplo n.º 8
0
        public static Vendedor ObtenerVendedor(string codigo)
        {
            var vendedor = new Vendedor();

            try
            {
                using (var connection = new OleDbConnection(AccesoDB.FoxPreventaReal))
                {
                    var consulta = "select nombre,empresa,prov,calle,numero,latitud,longitud,foto from operator where codigo='" + codigo + "' and cargo=1 and mobile=1";
                    var command  = AccesoDB.CrearComando(connection, consulta, CommandType.Text);
                    connection.Open();
                    AccesoDB.ComandosFox(connection);
                    using (var dr = command.ExecuteReader())
                    {
                        if (dr.Read())
                        {
                            vendedor.Codigo         = codigo;
                            vendedor.Nombre         = dr.GetString(0).Trim();
                            vendedor.CodigoEmpresa  = dr.GetString(1).Trim();
                            vendedor.CodigoDivision = dr.GetString(2).Trim();
                            vendedor.Calle          = dr.GetString(3).Trim();
                            vendedor.Numero         = dr.GetString(4).Trim();
                            var Latitud  = Convert.ToDouble(dr.GetValue(5), CultureInfo.CurrentCulture);
                            var Longitud = Convert.ToDouble(dr.GetValue(6), CultureInfo.CurrentCulture);
                            vendedor.CoordenadaDomicilio = new PointLatLng(Latitud, Longitud);
                            vendedor.Foto = dr.GetString(7);
                            //vendedor.ZonasAsignadas = ControladorZonas.ObtenerZonasDelVendedor(vendedor.Codigo, DatetimeToDiaSemana.Convertir(DateTime.Today));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(vendedor);
        }
Exemplo n.º 9
0
        public static List <Cliente> ProcesarConsulta(string consulta)
        {
            var lista = new List <Cliente>();

            try
            {
                using (var connection = new OleDbConnection(AccesoDB.FoxPreventaReal))
                {
                    var command = AccesoDB.CrearComando(connection, consulta, CommandType.Text);
                    connection.Open();
                    AccesoDB.ComandosFox(connection);
                    using (var dr = command.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            var cliente = new Cliente();

                            cliente.Codigo = dr.GetString(0).Trim();
                            cliente.Calle  = dr.GetString(1).Trim();
                            cliente.Numero = Convert.ToString(dr.GetValue(2));
                            var lat = Convert.ToDouble(dr.GetValue(3), CultureInfo.CurrentCulture);
                            var lng = Convert.ToDouble(dr.GetValue(4), CultureInfo.CurrentCulture);
                            cliente.Coordenada = new PointLatLng(lat, lng);
                            cliente.Localidad  = dr.GetString(5).Trim();
                            lista.Add(cliente);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(lista);
        }