示例#1
0
        protected void ShowSelected()
        {
            var id           = grid.SelectedIndex > -1 && grid.SelectedIndex < grid.DataKeys.Count ? Convert.ToInt32(grid.DataKeys[grid.SelectedIndex].Value) : -1;
            var intercalados = Intercalados.Get();

            ShowResults(intercalados, id);
        }
示例#2
0
        protected void reorderDetalles_ItemReorder(object sender, ReorderListItemReorderEventArgs e)
        {
            if (grid.SelectedIndex < 0)
            {
                return;
            }
            if (e.NewIndex == 0)
            {
                return;                  // Salida de base
            }
            var intercalados = Intercalados.Get();
            var selected     = Convert.ToInt32(grid.DataKeys[grid.SelectedIndex].Value);
            var distribucion = DAOFactory.ViajeDistribucionDAO.FindById(selected);

            if (distribucion.RegresoABase && e.NewIndex == distribucion.EntregasTotalCountConBases)
            {
                return;                                                                                     // Regreso a base
            }
            var puntoEntrega = DAOFactory.PuntoEntregaDAO.FindById(cbPuntoEntrega.Selected);

            var intercalador = new Intercalador(DAOFactory);

            intercalador.Load(intercalados, Horas);
            intercalador.CambiarIndice(selected, puntoEntrega, e.NewIndex);


            Intercalados.Set(intercalador.Intercalados);
            ShowSelected();
        }
示例#3
0
        protected void SetResults(List <Intercalado> intercalados)
        {
            ColorViaje.Set(null);
            Intercalados.Set(intercalados);

            grid.DataSource = intercalados;
            grid.DataBind();
            grid.SelectedIndex = intercalados == null ? -1 : 0;

            ShowSelected();
        }
示例#4
0
        protected void btGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                var intercalados = Intercalados.Get();
                var id           = grid.SelectedIndex > -1 && grid.SelectedIndex < grid.DataKeys.Count
                             ? Convert.ToInt32(grid.DataKeys[grid.SelectedIndex].Value)
                             : -1;
                if (id <= 0)
                {
                    return;
                }


                var         viaje       = DAOFactory.ViajeDistribucionDAO.FindById(id);
                Intercalado intercalado = intercalados.FirstOrDefault(i => i.Id == id);

                var nuevoDetalle = new EntregaDistribucion
                {
                    Viaje        = viaje,
                    PuntoEntrega = DAOFactory.PuntoEntregaDAO.FindById(cbPuntoEntrega.Selected)
                };
                nuevoDetalle.Cliente      = nuevoDetalle.PuntoEntrega.Cliente;
                nuevoDetalle.Descripcion  = nuevoDetalle.PuntoEntrega.Descripcion;
                nuevoDetalle.Orden        = intercalado.Index;
                nuevoDetalle.Programado   = intercalado.Hora;
                nuevoDetalle.TipoServicio = DAOFactory.TipoServicioCicloDAO.FindById(cbTipoServicio.Selected);
                viaje.InsertarEntrega(intercalado.Index, nuevoDetalle);

                DAOFactory.ViajeDistribucionDAO.SaveOrUpdate(viaje);
                ShowInfo("La entrega se ha intercalado correctamente");
                if (InformarPorMail)
                {
                    try
                    {
                        SendMail();
                    }
                    catch (Exception ex)
                    {
                        STrace.Exception("Intercalador de Entregas", ex);
                        ShowError("La entrega se ha intercalado correctamente, pero no se pudo enviar el mail");
                    }
                }
                BtnSearchClick(sender, e);
            }
            catch (Exception ex)
            {
                ShowError(ex);
            }
        }
示例#5
0
        public Intercalado CambiarIndice(int idViaje, PuntoEntrega nuevoPunto, int nuevoIndice)
        {
            var viaje = Viajes.FirstOrDefault(v => v.Id == idViaje);

            if (viaje == null)
            {
                return(null);
            }

            var intercalado = Intercalados.FirstOrDefault(i => i.Id == idViaje);

            if (intercalado == null)
            {
                return(null);
            }

            intercalado.Index = nuevoIndice;
            CalcularDirectionsIntercalado(intercalado, nuevoPunto);

            return(intercalado);
        }