Hola

El siniestro tiene los datos principales del accidente

Un siniestro contiene subsiniestros

Los subsiniestros son cada una de las personas, vehiculos o propiedades
afectadas

Subsiniestro es una superclase abstracta, personas, vehiculos, propiedades,
subclases de subsiniestro

Saludos!

Rodrigo Juarez
[email protected]
http://rodrigojuarez.com.ar
http://intap.com.ar
-----Mensaje original-----
De: [email protected]
[mailto:[email protected]] En nombre de Raul Lopez
Enviado el: jueves, 15 de enero de 2009 12:08 p.m.
Para: [email protected]
Asunto: [NHibernate-Hispano] Re: Creacion de lista de subclases


Hola Rodrigo,

No estoy entendiendo el modelo.
En tu dominio hay siniestros, propiedades, vehiculos, lesionados... 
Que es un subsiniestro?

Saludos,

Raul Lopez

Rodrigo Juarez escribió:
> Hola
> 
>  
> 
> Tengo una clase Siniestro, que posee una colección de subsiniestros, los 
> cuales pertenecen a distintas clases
> 
>  
> 
> Los subsiniestros implementan ISubSiniestro, y en este momento, la unica 
> clase que lo implementa es Lesionados, aunque luego agregare Propiedades 
> y Vehiculos
> 
>  
> 
> Como se puede ver, la clase siniestro, tiene una lista de todos los 
> ISubSiniestros, lo que yo necesito saber, es si con esta estrategia, 
> puedo tener tres listas distintas dentro de siniestro, Lesionados, 
> Propiedades y Vehiculos y como se mapean, en lugar de tener una sola 
> lista de ISubSiniestro.
> 
>  
> 
> Desde ya muchas gracias
> 
>  
> 
>  
> 
> Mapeo Lesionados
> 
>
----------------------------------------------------------------------------
-------
> 
> <?xml version="1.0" encoding="utf-8" ?>
> 
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
> namespace="Gestion.Domain.Seguros" assembly="Gestion.Domain.Seguros">
> 
>   <joined-subclass name="Lesionados" lazy="true" table="Lesionados" 
> extends="ISubSiniestro">
> 
>     <key column="uid"/>
> 
>     <property name="Transportado"/>
> 
>     <many-to-one name="Lesion" class="Lesion"/>
> 
>     <many-to-one name="EstadoGestion" class="EstadoGestion"/>
> 
>   </joined-subclass>
> 
> </hibernate-mapping>
> 
>  
> 
>  
> 
> Mapeo ISubSiniestro
> 
>
----------------------------------------------------------------------------
-------
> 
> <?xml version="1.0" encoding="utf-8" ?>
> 
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
> namespace="Gestion.Domain.Seguros" assembly="Gestion.Domain.Seguros">
> 
>   <class name="ISubSiniestro" lazy="true">
> 
>     <id name="Id" type="Int64" column="uid" unsaved-value="0">
> 
>       <generator class="NHibernate.Id.TableHiLoGenerator">
> 
>         <param name="table">uid_table</param>
> 
>         <param name="column">next_hi_value_column</param>
> 
>       </generator>
> 
>     </id>
> 
>    
> 
>     <many-to-one name="Siniestro" class="Siniestro"/>
> 
>    
> 
>     <!--Datos del Damnificado-->
> 
>     <component name="Damnificado" 
> class="Gestion.Domain.Seguros.Persona,Gestion.Domain.Seguros">
> 
>       <property name="Nombre" length ="100" column="DamnificadoNombre"/>
> 
>       <property name="Documento" length="15"
column="DamnificadoDocumento"/>
> 
>       <property name="EstadoCivil" column="DamnificadoEstadoCivil"/>
> 
>       <property name="Sexo" column="DamnificadoSexo"/>
> 
>       <property name="Nacimiento" column="DamnificadoNacimiento" 
> length="8"/>
> 
>       <property name="Nacionalidad" length="50" 
> column="DamnificadoNacionalidad"/>
> 
>       <property name="Telefono" length="30" column="DamnificadoTelefono"/>
> 
>       <component name="Direccion" 
> class="Gestion.Domain.Seguros.Direccion, Gestion.Domain.Seguros">
> 
>         <property name="Calle" length="100" column="DamnificadoCalle"/>
> 
>         <property name="Numero" column="DamnificadoCalleNumero"/>
> 
>         <property name="CP" length="7" column="DamnificadoCP"/>
> 
>         <property name="Localidad" length="50" 
> column="DamnificadoLocalidad"/>
> 
>         <property name="Provincia" length="50" 
> column="DamnificadoProvincia"/>
> 
>       </component>
> 
>     </component>
> 
>    
> 
>     <property name="SubSiniestroCategoria"/>
> 
>    
> 
>     <property name="Observaciones" length ="10000"/>
> 
>     <property name="Situacion" length ="10000"/>
> 
>    
> 
>     <property name="Reclamo"/>
> 
>     <property name="Indemnizacion"/>
> 
>     <property name="Demanda"/>
> 
>   
> 
>   </class>
> 
> </hibernate-mapping>
> 
>  
> 
>  
> 
> Mapeo Siniestro
> 
>
----------------------------------------------------------------------------
-------
> 
> <?xml version="1.0" encoding="utf-8" ?>
> 
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
> namespace="Gestion.Domain.Seguros" assembly="Gestion.Domain.Seguros">
> 
>  
> 
>   <class name="Siniestro" lazy="true">
> 
>    
> 
>     <id name="Id" type="Int64" column="uid" unsaved-value="0">
> 
>       <generator class="NHibernate.Id.TableHiLoGenerator">
> 
>         <param name="table">uid_table</param>
> 
>         <param name="column">next_hi_value_column</param>
> 
>       </generator>
> 
>     </id>
> 
>    
> 
>     <!--Datos del Siniestro-->
> 
>     <property name="Fecha"/>
> 
>     <property name="Numero"/>
> 
>     <component name="DireccionAccidente" 
> class="Gestion.Domain.Seguros.Direccion, Gestion.Domain.Seguros">
> 
>       <property name="Calle" length="100" column="AccidenteCalle"/>
> 
>       <property name="Numero" column="AccidenteCalleNumero"/>
> 
>       <property name="CP" length="7" column="AccidenteCP"/>
> 
>       <property name="Localidad" length="50" column="AccidenteLocalidad"/>
> 
>       <property name="Provincia" length="50" column="AccidenteProvincia"/>
> 
>     </component>
> 
>     <property name="Comisaria"/>
> 
>     <property name="Velocidad"/>
> 
>     <property name="Visibilidad" length="20"/>
> 
>     <property name="Bocina"/>
> 
>     <property name="Lluvia"/>
> 
>     <property name="Luces"/>
> 
>     <property name="ManoUnica"/>
> 
>  
> 
>     <!--Datos del Asegurado-->
> 
>     <property name="Poliza"/>
> 
>     <property name="Linea" length="50"/>
> 
>     <property name="Interno" length="50"/>
> 
>     <many-to-one name="Asegurado" class="Asegurado"/>
> 
>  
> 
>     <!--Datos del Chofer-->
> 
>     <component name="Chofer" 
> class="Gestion.Domain.Seguros.Persona,Gestion.Domain.Seguros">
> 
>       <property name="Nombre" length ="100" column="ChoferNombre"/>
> 
>       <property name="Documento" length="15" column="ChoferDocumento"/>
> 
>       <property name="EstadoCivil" column="ChoferEstadoCivil"/>
> 
>       <property name="Sexo" column="ChoferSexo"/>
> 
>       <property name="Nacimiento" column="ChoferNacimiento" length="8"/>
> 
>       <property name="Nacionalidad" length="50" 
> column="ChoferNacionalidad"/>
> 
>       <property name="Telefono" length="30" column="ChoferTelefono"/>
> 
>       <component name="Direccion" 
> class="Gestion.Domain.Seguros.Direccion, Gestion.Domain.Seguros">
> 
>         <property name="Calle" length="100" column="ChoferCalle"/>
> 
>         <property name="Numero" column="ChoferCalleNumero"/>
> 
>         <property name="CP" length="7" column="ChoferCP"/>
> 
>         <property name="Localidad" length="50" column="ChoferLocalidad"/>
> 
>         <property name="Provincia" length="50" column="ChoferProvincia"/>
> 
>       </component>
> 
>     </component>
> 
>     <property name="ChoferDeclaracion" type="string" length="10000"/>
> 
>  
> 
>     <property name="LicenciaClase" length="50"/>
> 
>     <property name="LicenciaNumero"/>
> 
>     <property name="LicenciaVencimiento" length="8" />
> 
>     <property name="AntiguedadEmpresa"/>
> 
>     <property name="AntiguedadConductorProfesional"/>
> 
>  
> 
>     <!--Datos del vehiculo de pasajeros-->
> 
>     <property name="VehiculoMarca" length ="100"/>
> 
>     <property name="VehiculoTipo" length ="20"/>
> 
>     <property name="Patente" length ="10"/>
> 
>     <property name="MotorNumero" length ="20"/>
> 
>     <property name="Anio"/>
> 
>  
> 
>     <!--Testigos (Componente persona)-->
> 
>  
> 
>       <!--SubClases de SubSiniestro-->
> 
>  
> 
>         <!--Vehiculos accidentados-->
> 
>        
> 
>         <!--Propiedades dañadas-->
> 
>        
> 
>         <!--Lesionados Transportados / No Transportados-->
> 
>         <bag name="SubSiniestros" inverse="true" 
> cascade="all-delete-orphan" lazy="false">
> 
>           <key column="Siniestro"/>
> 
>           <one-to-many class="ISubSiniestro"/>
> 
>         </bag>
> 
>  
> 
>   </class>
> 
>  
> 
> </hibernate-mapping>
> 
>  
> 
> Clase Lesionados
> 
>
----------------------------------------------------------------------------
-------
> 
> namespace Gestion.Domain.Seguros
> 
> {
> 
>     public class Lesionados:ISubSiniestro
> 
>     {
> 
>  
> 
>         public Lesionados()
> 
>         {
> 
>             SubSiniestroCategoria =
Seguros.SubSiniestroCategoria.Lesiones;
> 
>         }
> 
>  
> 
>         #region Implementation of ISubSiniestro
> 
>  
> 
>         public virtual long Id { get; set; }
> 
>         public virtual Siniestro Siniestro { get; set; }
> 
>         public virtual Persona Damnificado { get; set; }
> 
>         public virtual string Observaciones { get; set; }
> 
>         public virtual string Situacion { get; set; }
> 
>         public virtual double Reclamo { get; set; }
> 
>         public virtual double Indemnizacion { get; set; }
> 
>         public virtual double Demanda { get; set; }
> 
>         public virtual SubSiniestroCategoria SubSiniestroCategoria { 
> get; set; }
> 
>  
> 
>         #endregion
> 
>  
> 
>         public virtual Lesion Lesion { get; set; }
> 
>         public virtual EstadoGestion EstadoGestion { get; set; }
> 
>         public virtual bool Transportado { get; set; }
> 
>  
> 
>         //TODO: crear wrapper y usar en donde se llaman a estos metodos
> 
>         public virtual string Nombre
> 
>         {
> 
>             get
> 
>             {
> 
>                 return Damnificado.Nombre;
> 
>             }
> 
>         }
> 
>  
> 
>         //TODO: crear wrapper y usar en donde se llaman a estos metodos
> 
>         public virtual string DocumentoNumero
> 
>         {
> 
>             get
> 
>             {
> 
>                 return Damnificado.Documento;
> 
>             }
> 
>         }
> 
>  
> 
>     }
> 
> }
> 
>  
> 
>  
> 
>  
> 
> Clase ISubSiniestro
> 
>
----------------------------------------------------------------------------
-------
> 
> using System;
> 
>  
> 
> namespace Gestion.Domain.Seguros
> 
> {
> 
>     public interface ISubSiniestro
> 
>     {
> 
>  
> 
>          Int64 Id { get; set; }
> 
>          Siniestro Siniestro { get; set; }
> 
>          Persona Damnificado { get; set; }
> 
>         
> 
>          string Observaciones { get; set; }
> 
>          string Situacion { get; set; }
> 
>  
> 
>          double Reclamo { get; set; }
> 
>          double Indemnizacion { get; set; }
> 
>          double Demanda { get; set; }
> 
>  
> 
>          SubSiniestroCategoria SubSiniestroCategoria { get; set; }
> 
>  
> 
>         // IList<GestionPendiente> Pendientes { get; set; }
> 
>  
> 
>     }
> 
> }
> 
>  
> 
>  
> 
> Clase Siniestro
> 
>
----------------------------------------------------------------------------
-------
> 
> using System;
> 
> using System.Collections.Generic;
> 
>  
> 
> namespace Gestion.Domain.Seguros
> 
> {
> 
>     public class Siniestro
> 
>     {
> 
>  
> 
>         public Siniestro()
> 
>         {
> 
>             SubSiniestros = new List<ISubSiniestro>();
> 
>         }
> 
>  
> 
>         public virtual Int64 Id { get; set; }
> 
>  
> 
>         // Datos del Siniestro
> 
>         public virtual DateTime Fecha { get; set; }
> 
>         public virtual Int32 Numero { get; set; }
> 
>         public virtual Direccion DireccionAccidente { get; set; }
> 
>         public virtual int Comisaria { get; set; }
> 
>         public virtual int Velocidad { get; set; }
> 
>         public virtual string Visibilidad { get; set; }
> 
>         public virtual bool Bocina { get; set; }
> 
>         public virtual bool Lluvia { get; set; }
> 
>         public virtual bool Luces { get; set; }
> 
>         public virtual bool ManoUnica { get; set; }
> 
>  
> 
>         // Datos del Asegurado
> 
>         public virtual int Poliza { get; set; }
> 
>         public virtual string Linea { get; set; }
> 
>         public virtual string Interno { get; set; }
> 
>         public virtual Asegurado Asegurado { get; set; }
> 
>         public virtual string VehiculoMarca { get; set; }
> 
>         public virtual string VehiculoTipo { get; set; }
> 
>         public virtual string Patente { get; set; }
> 
>         public virtual string MotorNumero { get; set; }
> 
>         public virtual int Anio { get; set; }
> 
>  
> 
>         // Datos del Chofer
> 
>         public virtual Persona Chofer { get; set; }
> 
>         // Falta en UI
> 
>         public virtual string ChoferDeclaracion { get; set; }
> 
>         public virtual string LicenciaClase { get; set; }
> 
>         public virtual string LicenciaNumero { get; set; }
> 
>         public virtual string LicenciaVencimiento { get; set; }
> 
>         public virtual int AntiguedadEmpresa { get; set; }
> 
>         public virtual int AntiguedadConductorProfesional { get; set; }
> 
>  
> 
>         // Lesionados
> 
>         public virtual IList<ISubSiniestro> SubSiniestros { get; set; }
> 
>  
> 
>     }
> 
> }
> 
>  
> 
>  
> 
> Rodrigo Juarez
> 
> [email protected] <mailto:[email protected]>
> 
> http://rodrigojuarez.com.ar
> 
> http://intap.com.ar
> 
>  
> 
> 
> > 



--~--~---------~--~----~------------~-------~--~----~
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
-~----------~----~----~----~------~----~------~--~---

Responder a