Gracias a todos por sus comentarios.

Como dice Carlos son todos excelentes consejos.

Carlos, mis apreciaciones
----
en mi opinion no deberias tener una referencia desde la Factura a la
Retencion.
---

Esta logica me ha estado sonando bastante desde ayer.

-----
Pregunta: si la factura no tiene retencion, sigue siendo una factura? si la
respuesta es SI, entonces no es correcto colocar esa referencia.
-----

Efectivamente la respuesta es si, pero mi duda de principiante, por que no
es correcto colocar esta referencia aqui ?
Este es síntoma de un mal analisis de mi parte ?, el por que me ayudaría a
enteder mejor mi problema

----
Lo mismo para la retencion: si la retencion no tiene factura, sigue siendo
una retencion? creo que la respuesta es NO, no puede existir retencion sin
el comprobante asociado (sea factura u otro).
----

Nuevamente es correcta esta apreciacion, la respuesta es no

Pero
---
Otro punto seria: la factura necesita la retencion para algun calculo? que
pasa cuando no la hay? como funciona ese calculo?
---

Si la factura no necesita retencion, los calculos son iguales, hay un
subtotal+impuestos, lo que nos da un total
Si la factura requiere una retencion, los calculos cambian.

Retencion = PorcentajeDeRetencion * Subtotal
SaldoApagar = total-Retencion

El nuevo total de factura es igual a SaldoAPagar.
Aqui, para efectos de mis calculos, que posiblemente mi analisis preliminar
este mal planteado.

Verificaba que si mi objeto Factura.Retencion == null, SaldoAPagar = Total,
caso contrario, efectuaba los calculos anteriormente expuestos

Gracias por sus comentarios

Saludos

Edgar

El 29 de junio de 2011 04:55, Carlos Peix <[email protected]> escribió:

> Hola Edgar,
>
> Advertencia: esta es una respuesta disruptiva con el hilo.
>
> Como dice el tano, cuanto mejor es tu modelo de objetos, mas facil es
> mapearlo con un ORM.
>
> Tu dignostico es correcto: "Me he liado un poco con la relacion de estos
> objetos" pero creo que estas buscando la solucion en el lugar equivocado.
>
> Al margen de los excelentes consejos que te estan dando, en mi opinion no
> deberias tener una referencia desde la Factura a la Retencion.
>
> Pregunta: si la factura no tiene retencion, sigue siendo una factura? si la
> respuesta es SI, entonces no es correcto colocar esa referencia.
>
> Lo mismo para la retencion: si la retencion no tiene factura, sigue siendo
> una retencion? creo que la respuesta es NO, no puede existir retencion sin
> el comprobante asociado (sea factura u otro).
>
> Otro punto seria: la factura necesita la retencion para algun calculo? que
> pasa cuando no la hay? como funciona ese calculo?
>
> ----------------------------------
> Carlos Peix
>
> 2011/6/28 Edgar Ramos <[email protected]>
>
>> Gente un Saludo
>>
>> Me he liado un poco con la relacion de estos objetos
>>
>> Factura y Retencion
>>
>> A una Factura le corresponde una retencion, siempre y cuando el cliente lo
>> exija, caso contrario no aplica, para este efecto
>>
>>
>> Mis clases
>>
>> public class Factura
>> {
>>        .......
>>         public virtual RetencionFuenteVenta Retencion { get; set; }
>>        .......
>> }
>>
>>  public class RetencionFuenteVenta
>>  {
>>          ........
>>           public virtual Factura FacturaAplicada { get; set; }
>>          ......
>>  }
>>
>> Mis mappings
>>
>> <class name="RetencionFuenteVenta">
>>     <id name="Id">
>>       <generator class="hilo"/>
>>     </id>
>>
>>    .........
>>    <many-to-one name="FacturaAplicada" class="Factura" column="FacturaId"
>> />
>>   </class>
>>
>> <class name="Factura">
>>     <id name="Id">
>>       <generator class="hilo"/>
>>     </id>
>>
>>    <many-to-one name="Retencion" class="RetencionFuenteVenta"
>> column="RetencionId" cascade="all" />
>>   </class>
>>
>> En el esquema de la bdd, la tabla Factura tiene el campo RetencionId como
>> permitir valores nulos, que para mi
>> caso es lo que requiero.
>> Por otro lado La tabla RetencionFuenteVenta, campo FacturaId, tiene
>> tambien permitir valores nulos, no me parece
>> que sea lo correcto, pero lo puesto asi para que nh persista estas
>> entidades y lo hace sin problemas
>>
>> Pero al quitar de RetencionFuenteVenta, campo FacturaID el permitir
>> valores nulos, nh me tira un error
>> -------------------------------
>> {"No se puede insertar el valor NULL en la columna 'FacturaID', tabla
>> 'RetencionFuenteVenta'. La columna no admite valores NULL. INSERT falla.\r\n
>> Se terminó la instrucción."}
>> ---------------------------------
>>
>> Cualquier comentario o sugerencia les estoy muy agradecido
>>
>> Saludos
>>
>> Edgar
>>
>>
>>
>>  --
>> Para escribir al Grupo, hágalo a esta dirección:
>> [email protected]
>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>>
>
>  --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>

-- 
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