Beispiel #1
0
        protected void UiVistaPolignos_CustomCallback(object sender, DevExpress.Web.ASPxGridViewCustomCallbackEventArgs e)
        {
            if (!ValidarConexionYUsuarioLogueado(sender))
            {
                return;
            }
            try
            {
                switch (e.Parameters.Split('|')[0])
                {
                case "ObtenerPuntos":
                    UiVistaPolignos.JSProperties.Add("cpFormarPoligonos", PoligonosTipoRegion);
                    break;

                case "CargarPoligonos":
                    UsuarioDeseaOptenerPoligonosTipoRegion?.Invoke(sender, new PoligonoArgumento {
                        Poligono = new Poligono {
                            POLYGON_TYPE = Enums.GetStringValue(TiposDePoligono.Region)
                        }
                    });
                    UsuarioDeseaObtenerPuntosDePoligono?.Invoke(sender, new PoligonoArgumento {
                        Poligono = new Poligono {
                            POLYGON_TYPE = Enums.GetStringValue(TiposDePoligono.Region)
                        }
                    });
                    UiVistaPolignos.JSProperties.Add("cpFormarPoligonos", PoligonosTipoRegion);
                    break;

                case "ObtenerPoligo":
                    var poligono = new Poligono();
                    foreach (var item in PoligonosTipoRegion.Where(item => item.POLYGON_ID == int.Parse(e.Parameters.Split('|')[1])))
                    {
                        poligono = item;
                        break;
                    }
                    UiVistaPolignos.JSProperties.Add("cpEstablecerPoligonoEncabezado", poligono);
                    break;

                case "GurdarPoligono":

                    var poligonoDibjugado = new Poligono
                    {
                        POLYGON_ID = int.Parse(UiPoligonoCodigo.Text)
                        ,
                        POLYGON_NAME = UiPoligonoNombre.Text
                        ,
                        POLYGON_DESCRIPTION = UiMemoDescripocion.Text
                        ,
                        COMMENT = UiMemoComentario.Text
                        ,
                        POLYGON_TYPE = Enums.GetStringValue(TiposDePoligono.Region)
                        ,
                        Puntos = new List <PoligonoPuntos>()
                        ,
                        LAST_UPDATE_BY = Session["LOGIN"].ToString()
                    };

                    var validarSiSoloSeActualiza = false;
                    if (poligonoDibjugado.POLYGON_ID != 0)
                    {
                        if (PoligonosTipoRegion.Any(poligonoExistente => poligonoDibjugado.POLYGON_ID == poligonoExistente.POLYGON_ID && poligonoExistente.HAS_CHILD == 1))
                        {
                            validarSiSoloSeActualiza = true;
                        }
                    }

                    if (!validarSiSoloSeActualiza)
                    {
                        var cordenadas = e.Parameters.Split('|')[2].Split('(');

                        for (int i = 0; i < cordenadas.Length; i++)
                        {
                            if (string.IsNullOrEmpty(cordenadas[i]))
                            {
                                continue;
                            }
                            var punto = cordenadas[i].Split(',');

                            var poligonoPunto = new PoligonoPuntos
                            {
                                POSITION = i
                                ,
                                LATITUDE = punto[0].Trim()
                                ,
                                LONGITUDE = punto[1].Replace(")", "").Trim()
                            };
                            poligonoDibjugado.Puntos.Add(poligonoPunto);
                        }
                        UsuarioDeseaGrabarPoligonoTipoRegion?.Invoke(sender, new PoligonoArgumento {
                            Poligono = poligonoDibjugado, ListaDeTareas = new List <string>()
                        });
                    }
                    else
                    {
                        UsuarioDeseaActualizarSoloEncabezdo?.Invoke(sender, new PoligonoArgumento {
                            Poligono = poligonoDibjugado
                        });
                    }

                    break;

                case "BorrarPoligono":
                    var poligonoBorrar = new Poligono
                    {
                        POLYGON_ID = int.Parse(UiPoligonoCodigo.Text)
                    };

                    UsuarioDeseaBorrarPoligonoTipoRegion?.Invoke(sender, new PoligonoArgumento {
                        Poligono = poligonoBorrar
                    });
                    break;
                }
            }
            catch (Exception ex)
            {
                EstablecerError(ex.Message, sender);
            }
        }
Beispiel #2
0
        protected void UiVistaPolignos_CustomCallback(object sender, DevExpress.Web.ASPxGridViewCustomCallbackEventArgs e)
        {
            if (!ValidarConexionYUsuarioLogueado(sender))
            {
                return;
            }

            try
            {
                switch (e.Parameters.Split('|')[0])
                {
                case "ObtenerPuntosPadre":
                    UsuarioDeseaObtenerPuntosDePoligonoPadre?.Invoke(sender, new PoligonoArgumento {
                        Poligono = new Poligono {
                            POLYGON_ID = int.Parse(UiListaSector.Value.ToString().Split('|')[0])
                        }
                    });
                    if (PuntosDePoligonoPadre.Count > 0)
                    {
                        if (e.Parameters.Split('|')[1] == "0")
                        {
                            UiVistaPolignos.JSProperties.Add("cpFormarPoligonoPadre", new Poligono {
                                POLYGON_ID = int.Parse(UiListaSector.Value.ToString().Split('|')[0]), POLYGON_NAME = UiListaSector.Value.ToString().Split('|')[1], Puntos = PuntosDePoligonoPadre
                            });
                            //UiVistaPolignos.JSProperties.Add("cpFormarPoligonoPadre", PuntosDePoligonoPadre);
                        }
                        UiVistaPolignos.JSProperties.Add("cpCargarClienteDePoligono", ClientesDePoligno);

                        PoligonosTipoRuta = new List <Poligono>();
                    }
                    break;

                case "CargarPoligonos":
                    if (!string.IsNullOrEmpty(UiListaSector.Value?.ToString()))
                    {
                        UsuarioDeseaOptenerPoligonosTipoRuta?.Invoke(sender, new PoligonoArgumento {
                            Poligono = new Poligono {
                                POLYGON_TYPE = Enums.GetStringValue(TiposDePoligono.Ruta), POLYGON_ID_PARENT = int.Parse(UiListaSector.Value.ToString().Split('|')[0])
                            }
                        });
                        UsuarioDeseaObtenerPuntosDePoligono?.Invoke(sender, new PoligonoArgumento {
                            Poligono = new Poligono {
                                POLYGON_TYPE = Enums.GetStringValue(TiposDePoligono.Ruta), POLYGON_ID_PARENT = int.Parse(UiListaSector.Value.ToString().Split('|')[0])
                            }
                        });
                        UiVistaPolignos.JSProperties.Add("cpFormarPoligonos", PoligonosTipoRuta);


                        PoligonosTipoRuta = PoligonosTipoRuta.Where(poligonoAbuscar => poligonoAbuscar.IS_MULTIPOLYGON == int.Parse(Enums.GetStringValue(SiNo.No))).Where(poligonoAbuscar => poligonoAbuscar.AVAILABLE == int.Parse(Enums.GetStringValue(SiNo.No))).ToList();
                    }

                    break;

                case "ObtenerPoligo":
                    var poligono = new Poligono();
                    foreach (var item in PoligonosTipoRuta.Where(item => item.POLYGON_ID == int.Parse(e.Parameters.Split('|')[1])))
                    {
                        poligono = item;
                        break;
                    }

                    UiVistaPolignos.JSProperties.Add("cpEstablecerPoligonoEncabezado", poligono);
                    break;

                case "GurdarPoligono":

                    var vendedor = new Vendedor
                    {
                        SELLER_CODE = UiListaVendedor.Value.ToString(),
                        SELLER_NAME =
                            UiListaVendedor.GridView.GetRowValues(UiListaVendedor.GridView.FocusedRowIndex,
                                                                  "SELLER_NAME").ToString()
                    };


                    var poligonoDibjugado = new Poligono
                    {
                        POLYGON_ID = int.Parse(UiPoligonoCodigo.Text)
                        ,
                        POLYGON_NAME = UiPoligonoNombre.Text
                        ,
                        POLYGON_DESCRIPTION = UiMemoDescripocion.Text
                        ,
                        COMMENT = UiMemoComentario.Text
                        ,
                        POLYGON_TYPE = Enums.GetStringValue(TiposDePoligono.Ruta)
                        ,
                        Puntos = new List <PoligonoPuntos>()
                        ,
                        LAST_UPDATE_BY = Session["LOGIN"].ToString()

                        ,
                        POLYGON_ID_PARENT = int.Parse(UiListaSector.Value.ToString().Split('|')[0])
                        ,
                        TYPE_TASK = null
                        ,
                        SAVE_ROUTE = int.Parse(Enums.GetStringValue(SiNo.Si))
                        ,
                    };

                    var listaTareas = (from object tipoTarea in UiListaCheckTipoDeTarea.SelectedValues select tipoTarea.ToString()).ToList();

                    var validarSiSoloSeActualiza = false;
                    if (poligonoDibjugado.POLYGON_ID != 0)
                    {
                        if (PoligonosTipoRuta.Any(poligonoExistente => poligonoDibjugado.POLYGON_ID == poligonoExistente.POLYGON_ID && poligonoExistente.HAS_CHILD == 1))
                        {
                            validarSiSoloSeActualiza = true;
                        }
                    }

                    if (!validarSiSoloSeActualiza)
                    {
                        var cordenadas = e.Parameters.Split('|')[2].Split('(');

                        for (var i = 0; i < cordenadas.Length; i++)
                        {
                            if (string.IsNullOrEmpty(cordenadas[i]))
                            {
                                continue;
                            }
                            var punto = cordenadas[i].Split(',');

                            var poligonoPunto = new PoligonoPuntos
                            {
                                POSITION = i
                                ,
                                LATITUDE = punto[0].Trim()
                                ,
                                LONGITUDE = punto[1].Replace(")", "").Trim()
                            };
                            poligonoDibjugado.Puntos.Add(poligonoPunto);
                        }
                        UsuarioDeseaGrabarPoligonoTipoRuta?.Invoke(sender, new PoligonoArgumento {
                            Poligono = poligonoDibjugado, Vendedor = vendedor, ListaDeTareas = listaTareas
                        });
                    }
                    else
                    {
                        UsuarioDeseaActualizarSoloEncabezdo?.Invoke(sender, new PoligonoArgumento {
                            Poligono = poligonoDibjugado, Vendedor = vendedor, ListaDeTareas = listaTareas
                        });
                    }
                    break;

                case "BorrarPoligono":
                    var poligonoBorrar = new Poligono
                    {
                        POLYGON_ID = int.Parse(UiPoligonoCodigo.Text)
                    };

                    UsuarioDeseaBorrarPoligonoTipoRuta?.Invoke(sender, new PoligonoArgumento {
                        Poligono = poligonoBorrar
                    });
                    break;

                case "ObtenerCliente":
                    var cliente = new Cliente();

                    foreach (var itemCliente in ClientesDePoligno.Where(itemCliente => itemCliente.CODE_CUSTOMER.Equals(e.Parameters.Split('|')[1])))
                    {
                        cliente = itemCliente;
                        break;
                    }
                    UiVistaPolignos.JSProperties.Add("cpEstablecerCliente", cliente);

                    UsuarioDeseaObtenerScoutingDeCliente?.Invoke(sender, new ClienteArgumento {
                        Data = cliente
                    });
                    //UiImagenScouting.ImageUrl = "";
                    UiVistaPolignos.JSProperties.Add("cpEstablecerFoto", Scouting);

                    break;

                case "GrabarFrecuenciaDeCliente":
                    var codigoFrecuencia = ClientesDePoligno.Where(itemCliente => itemCliente.CODE_CUSTOMER.Equals(e.Parameters.Split('|')[1].ToString())).Select(itemCliente => itemCliente.CODE_FREQUENCY).FirstOrDefault();

                    var frecuencia = new Frecuencia(); frecuencia.ID_FREQUENCY = codigoFrecuencia;
                    frecuencia.CODE_CUSTOMER    = e.Parameters.Split('|')[1]; //UiCodigoCliente.Text;
                    frecuencia.SUNDAY           = (UiCheckListaCliente.Items[0].Selected) ? 1 : 0;
                    frecuencia.MONDAY           = (UiCheckListaCliente.Items[1].Selected) ? 1 : 0;
                    frecuencia.TUESDAY          = (UiCheckListaCliente.Items[2].Selected) ? 1 : 0;
                    frecuencia.WEDNESDAY        = (UiCheckListaCliente.Items[3].Selected) ? 1 : 0;
                    frecuencia.THURSDAY         = (UiCheckListaCliente.Items[4].Selected) ? 1 : 0;
                    frecuencia.FRIDAY           = (UiCheckListaCliente.Items[5].Selected) ? 1 : 0;
                    frecuencia.SATURDAY         = (UiCheckListaCliente.Items[6].Selected) ? 1 : 0;
                    frecuencia.FREQUENCY_WEEKS  = int.Parse(UiListaSemanasCliente.Value.ToString());
                    frecuencia.POLYGON_ID       = int.Parse(UiPoligonoCodigo.Text);
                    frecuencia.REFERENCE_SOURCE = "BO";

                    var fecha = UiFechaUltimaVisita.Date;
                    while (DayOfWeek.Sunday != fecha.DayOfWeek)
                    {
                        fecha = fecha.AddDays(-1);
                    }

                    frecuencia.LAST_DATE_VISITED = fecha;
                    frecuencia.LAST_UPDATED_BY   = Session["LOGIN"].ToString();

                    UsuarioDeseaGrabarFrecuenciaCliente?.Invoke(sender, new FrecuenciaArgumento {
                        Data = frecuencia
                    });



                    foreach (var itemCliente in ClientesDePoligno.Where(itemCliente => itemCliente.CODE_CUSTOMER.Equals(e.Parameters.Split('|')[1])))
                    {
                        UiVistaPolignos.JSProperties.Add("cpEstablecerDatosCliente", itemCliente);
                        break;
                    }

                    UiVistaPolignos.JSProperties.Add("cpOcultarPopupCargaRuta", "Enabled");
                    break;

                case "DesAsociar":

                    if (UiPoligonoCodigo.Text.Length <= 0 || UiPoligonoCodigo.Text == "0")
                    {
                        throw new Exception("Debe de seleccionar un poligono.");
                    }

                    var rutaADesasociar = new Ruta
                    {
                        CODE_ROUTE = UiPoligonoCodigo.Text
                    };
                    UsuarioDeseaDesAsociarVendedorDeRuta?.Invoke(sender, new RutaArgumento {
                        Data = rutaADesasociar
                    });
                    UiVistaPolignos.JSProperties.Add("cpCargarPoligonos", "cpCargarPoligonos");
                    break;
                }
            }
            catch (Exception ex)
            {
                EstablecerError(ex.Message, sender);
            }
        }