'''
Created on Apr 10, 2013

@author: egiraldo
'''
#--Importa la libreria de formularios de DJANGO
from django.forms import widgets
#--Importa la libreria para la serializacion
from rest_framework import serializers
#--Importa el modelo del Asiento
from asientos.models import Asiento
#--Clase que serializa el objeto Asiento
class AsientoSerializer(serializers.Serializer):
    #--Id del asiento
    id_asiento = serializers.Field()  # Note: `Field` is an untyped read-only field.
    #--Id del concepto
    id_concepto = serializers.Field()  # Note: `Field` is an untyped read-only field.
    #--Id del Campo_Valor
    id_campo_valor = serializers.Field()  # Note: `Field` is an untyped read-only field.
    #--Id del grupo
    id_grupo = serializers.Field()  # Note: `Field` is an untyped read-only field.
    #--Nombre del asiento
    nombre = serializers.CharField(widget=widgets.Textarea,max_length=100)
    #--Descripcion del asiento
    descripcion = serializers.CharField(widget=widgets.Textarea,max_length=200)
    #--Catalogo del asiento
    catalogo = serializers.CharField(widget=widgets.Textarea,max_length=100)
    #--Auxiliar del asiento
    auxiliar = serializers.CharField(widget=widgets.Textarea,max_length=100)
    #--Naturaleza del asiento
    naturaleza = serializers.CharField(widget=widgets.Textarea,max_length=1)
    #--Usa o no grupo
    usa_grupo = serializers.IntegerField(widget=widgets.Textarea,max_length=1)
    #--Formula del asiento
    formula = serializers.CharField(widget=widgets.Textarea,max_length=200)
    #--Devuelve el objeto o una instancia del mismo serializado
    def restore_object(self, attrs, instance=None):
        if instance:
            # Actualiza la instancia del objeto
            instance.id_concepto = attrs.get('id_concepto', instance.id_concepto)
            instance.id_campo_valor = attrs.get('id_campo_valor', instance.id_campo_valor)
            instance.id_grupo = attrs.get('id_grupo', instance.id_grupo)
            instance.nombre = attrs.get('nombre', instance.nombre)
            instance.descripcion = attrs.get('descripcion', instance.descripcion)
            instance.catalogo = attrs.get('catalogo', instance.catalogo)
            instance.auxiliar = attrs.get('auxiliar', instance.auxiliar)
            instance.naturaleza = attrs.get('naturaleza', instance.naturaleza)
            instance.usa_grupo = attrs.get('usa_grupo', instance.usa_grupo)
            instance.formula = attrs.get('formula', instance.formula)
            #--Retorna la instancia
            return instance
        #--Crea una nueva instancia
        return Asiento(**attrs)