Example #1
0
        /// <summary>
        /// Gets the actual entity.
        /// </summary>
        /// <param name="isDuplicate">Determines if the entity is a clone of an existing one.</param>
        /// <returns></returns>
        public Entidad GetEntidad(bool isDuplicate)
        {
            var entidad = isDuplicate ? new Entidad() : Entidad;

            ValidateEntity();

            entidad.Apellido      = txtApellido.Text;
            entidad.Nombre        = txtNombre.Text;
            entidad.NroDocumento  = txtDocumento.Text;
            entidad.TipoDocumento = txtTipo.Text;
            entidad.Cuil          = txtCuil.Text;

            if (DireccionSearch1.Selected != null)
            {
                if (entidad.Direccion == null)
                {
                    entidad.Direccion = new Direccion {
                        Vigencia = new Vigencia {
                            Inicio = DateTime.UtcNow
                        }
                    }
                }
                ;
                entidad.Direccion.CloneData(DireccionSearch1.Selected);
            }
            else
            {
                entidad.Direccion = null;
            }

            if (isDuplicate)
            {
                entidad.Id = 0;

                if (entidad.Direccion != null)
                {
                    //entidad.Direccion.Id = 0;
                    var dir = new Direccion {
                        Vigencia = new Vigencia {
                            Inicio = DateTime.UtcNow
                        }
                    };
                    dir.CloneData(entidad.Direccion);
                    entidad.Direccion = dir;
                }
            }

            return(entidad);
        }
Example #2
0
        public ReferenciaGeografica GetNewGeoRefference()
        {
            if (!EditMode)
            {
                EditObject.Linea   = IdLinea > 0 ? DAOFactory.LineaDAO.FindById(IdLinea) : null;
                EditObject.Empresa = EditObject.Linea != null
                                               ? EditObject.Linea.Empresa
                                               : IdEmpresa > 0 ? DAOFactory.EmpresaDAO.FindById(IdEmpresa) : null;
            }
            EditObject.TipoReferenciaGeografica = DAOFactory.TipoReferenciaGeograficaDAO.FindById(cbTipoReferenciaGeografica.Selected);

            if (!EditMode)
            {
                EditObject.Descripcion = EditGeoRef1.Direccion != null ? EditGeoRef1.Direccion.Descripcion : "Sin Descripcion";
            }
            EditObject.Icono          = IconId > 0 ? DAOFactory.IconoDAO.FindById(IconId) : null;
            EditObject.Color.HexValue = Color;
            EditObject.InhibeAlarma   = EditObject.TipoReferenciaGeografica.InhibeAlarma;
            EditObject.EsInicio       = EditObject.TipoReferenciaGeografica.EsInicio;
            EditObject.EsIntermedio   = EditObject.TipoReferenciaGeografica.EsIntermedio;
            EditObject.EsFin          = EditObject.TipoReferenciaGeografica.EsFin;

            var lastDir = EditObject.Direccion;
            var newDir  = EditGeoRef1.Direccion;

            var lastPol = EditObject.Poligono;
            var newPol  = EditGeoRef1.Poligono;

            var now              = txtVigenciaDesde.SelectedDate.HasValue ? txtVigenciaDesde.SelectedDate.Value : DateTime.UtcNow;
            var ChangedPolygon   = EditObject.Poligono == null ? EditGeoRef1.Poligono != null : !EditObject.Poligono.Equals(EditGeoRef1.Poligono);
            var ChangedDireccion = EditObject.Direccion == null ? EditGeoRef1.Direccion != null : !EditObject.Direccion.Equals(EditGeoRef1.Direccion);

            if (ChangedDireccion || ChangedPolygon)
            {
                if (lastPol != null && lastPol.Vigencia == null)
                {
                    lastPol.Vigencia = new Vigencia();
                }
                if (lastDir != null && lastDir.Vigencia == null)
                {
                    lastDir.Vigencia = new Vigencia();
                }
                if (ChangedPolygon && lastPol != null)
                {
                    lastPol.Vigencia.Fin = now;
                }
                if (ChangedDireccion && lastDir != null)
                {
                    lastDir.Vigencia.Fin = now;
                }

                var hist = EditObject.GetHistoria(now);
                if (hist != null && hist.Vigencia == null)
                {
                    hist.Vigencia = new Vigencia();
                }
                if (hist != null)
                {
                    hist.Vigencia.Fin = now;
                }

                if (ChangedDireccion && EditObject.Direccion != null)
                {
                    if (EditObject.Direccion.Vigencia == null)
                    {
                        EditObject.Direccion.Vigencia = new Vigencia();
                    }
                    EditObject.Direccion.Vigencia.Fin = now;
                }
                if (ChangedPolygon && EditObject.Poligono != null)
                {
                    if (EditObject.Poligono.Vigencia == null)
                    {
                        EditObject.Poligono.Vigencia = new Vigencia();
                    }
                    EditObject.Poligono.Vigencia.Fin = now;
                }


                var newDireccion = EditObject.Direccion;
                var newPoligono  = EditObject.Poligono;
                if (ChangedDireccion)
                {
                    if (newDir == null)
                    {
                        newDireccion = null;
                    }
                    else
                    {
                        newDireccion = new Direccion {
                            Vigencia = new Vigencia {
                                Inicio = now
                            }
                        };
                        newDireccion.CloneData(newDir);
                    }
                }
                if (ChangedPolygon)
                {
                    if (newPol == null)
                    {
                        newPoligono = null;
                    }
                    else
                    {
                        newPoligono = new Poligono {
                            Vigencia = new Vigencia {
                                Inicio = now
                            }
                        };
                        newPoligono.AddPoints(newPol.ToPointFList());
                        newPoligono.Radio = newPol.Radio;
                    }
                }

                if (newDireccion == null && newPoligono == null)
                {
                    return(null);
                }

                EditObject.AddHistoria(newDireccion, newPoligono, now);
            }
            else if (EditObject.Direccion == null && EditObject.Poligono == null)
            {
                return(null);
            }

            if (EditObject.TipoReferenciaGeografica.ControlaVelocidad)
            {
                EditObject.VelocidadesMaximas.Clear();

                foreach (TipoReferenciaVelocidad maxima in EditObject.TipoReferenciaGeografica.VelocidadesMaximas)
                {
                    var gv = new ReferenciaVelocidad
                    {
                        ReferenciaGeografica = EditObject,
                        TipoVehiculo         = maxima.TipoVehiculo,
                        VelocidadMaxima      = maxima.VelocidadMaxima
                    };

                    EditObject.VelocidadesMaximas.Add(gv);
                }
            }

            return(EditObject);
        }
Example #3
0
        /// <summary>
        /// Saves the Direccion
        /// </summary>
        protected override void OnSave()
        {
            EditObject.Linea   = cbLinea.Selected > 0 ? DAOFactory.LineaDAO.FindById(cbLinea.Selected) : null;
            EditObject.Empresa = EditObject.Linea != null ? EditObject.Linea.Empresa : cbEmpresa.Selected > 0 ? DAOFactory.EmpresaDAO.FindById(cbEmpresa.Selected) : null;

            EditObject.TipoReferenciaGeografica = DAOFactory.TipoReferenciaGeograficaDAO.FindById(cbTipoReferenciaGeografica.Selected);
            EditObject.Descripcion     = txtDescripcion.Text.Trim();
            EditObject.Codigo          = txtCodigo.Text.Trim();
            EditObject.Observaciones   = txtObservaciones.Text.Trim();
            EditObject.Icono           = SelectIcon2.Selected > 0 ? DAOFactory.IconoDAO.FindById(SelectIcon2.Selected) : null;
            EditObject.Color.HexValue  = cpColor.Color;
            EditObject.InhibeAlarma    = chkInhibeAlarma.Checked;
            EditObject.EsInicio        = chkInicio.Checked;
            EditObject.EsIntermedio    = chkIntermedio.Checked;
            EditObject.EsFin           = chkFin.Checked;
            EditObject.IgnoraLogiclink = chkIgnoraLogiclink.Checked;

            if (EditObject.Vigencia == null)
            {
                EditObject.Vigencia = new Vigencia();
            }

            EditObject.Vigencia.Inicio = txtFechaDesde.SelectedDate.HasValue ? txtFechaDesde.SelectedDate.Value.ToDataBaseDateTime() : DateTime.UtcNow;
            EditObject.Vigencia.Fin    = txtFechaHasta.SelectedDate.HasValue ? (DateTime?)txtFechaHasta.SelectedDate.Value.ToDataBaseDateTime() : null;

            var lastDir = EditObject.Direccion;
            var newDir  = EditGeoRef1.Direccion;

            var lastPol = EditObject.Poligono;
            var newPol  = EditGeoRef1.Poligono;

            var now = txtVigenciaDesde.SelectedDate.HasValue ? txtVigenciaDesde.SelectedDate.Value.ToDataBaseDateTime() : DateTime.UtcNow;

            var changedDir = lastDir == null ? newDir != null : !lastDir.Equals(newDir);
            var changedPol = lastPol == null ? newPol != null : !lastPol.Equals(newPol);

            if (changedDir || changedPol)
            {
                if (lastPol != null && lastPol.Vigencia == null)
                {
                    lastPol.Vigencia = new Vigencia();
                }
                if (lastDir != null && lastDir.Vigencia == null)
                {
                    lastDir.Vigencia = new Vigencia();
                }
                if (changedPol && lastPol != null)
                {
                    lastPol.Vigencia.Fin = now;
                }
                if (changedDir && lastDir != null)
                {
                    lastDir.Vigencia.Fin = now;
                }

                if (changedDir && EditObject.Direccion != null)
                {
                    if (EditObject.Direccion.Vigencia == null)
                    {
                        EditObject.Direccion.Vigencia = new Vigencia();
                    }

                    EditObject.Direccion.Vigencia.Fin = now;
                }

                if (changedPol && EditObject.Poligono != null)
                {
                    if (EditObject.Poligono.Vigencia == null)
                    {
                        EditObject.Poligono.Vigencia = new Vigencia();
                    }

                    EditObject.Poligono.Vigencia.Fin = now;
                }

                var newDireccion = EditObject.Direccion;
                var newPoligono  = EditObject.Poligono;

                if (changedDir)
                {
                    if (newDir == null)
                    {
                        newDireccion = null;
                    }
                    else
                    {
                        newDireccion = new Direccion {
                            Vigencia = new Vigencia {
                                Inicio = now
                            }
                        };

                        newDireccion.CloneData(newDir);
                    }
                }

                if (changedPol)
                {
                    if (newPol == null)
                    {
                        newPoligono = null;
                    }
                    else
                    {
                        newPoligono = new Poligono {
                            Vigencia = new Vigencia {
                                Inicio = now
                            }
                        };
                        newPoligono.AddPoints(newPol.ToPointFList());
                        newPoligono.Radio = newPol.Radio;
                    }
                }

                EditObject.AddHistoria(newDireccion, newPoligono, now);
            }

            if (EditObject.TipoReferenciaGeografica.ControlaVelocidad)
            {
                AddSpeedLimits();
            }

            DAOFactory.ReferenciaGeograficaDAO.SingleSaveOrUpdate(EditObject);
            STrace.Trace("QtreeReset", "GeoRefAlta");
        }