'''
Created on Apr 10, 2013

@author: egiraldo
'''
#--Importa la libreria de formulario para DJANGO
from django.forms import widgets
#--Importa la libreria de Serializacion
from rest_framework import serializers
#--Importa el modelo de Campo Cuenta
from campo_cuenta.models import Campo_Cuenta
#--Clase que serializa el objeto Campo Cuenta
class CampoCuentaSerializer(serializers.Serializer):
    #--Id del campo cuenta
    id_campo_cuenta = 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.
    #--Catalogo del Campo Cuenta
    catalogo = serializers.CharField(widget=widgets.Textarea,max_length=200)
    #--Auxiliar del Campo Cuenta
    auxiliar = serializers.CharField(widget=widgets.Textarea,max_length=200)
    #--Valor del campo cuenta
    valor = serializers.CharField(widget=widgets.Textarea,max_length=200)
    #--Valor de la descripcion
    valor_descripcion = serializers.CharField(widget=widgets.Textarea,max_length=200)
    #--Tercero del Campo Cuenta
    tercero = serializers.CharField(widget=widgets.Textarea,max_length=20)
    #--Definicion que se encarga de devolver ua instancia del objeto serializada
    def restore_object(self, attrs, instance=None):
        if instance:
            #--Actualiza la instancia existente
            instance.id_grupo = attrs.get('id_grupo', instance.id_grupo)
            instance.catalogo = attrs.get('catalogo', instance.catalogo)
            instance.auxiliar = attrs.get('auxiliar', instance.auxiliar)
            instance.valor = attrs.get('valor', instance.valor)
            instance.valor_descripcion = attrs.get('valor_descripcion', instance.valor_descripcion)
            #--Devuelve la instancia
            return instance
        #--Crea una nueva instancia
        return Campo_Cuenta(**attrs)
