package com.ejie.m62fb.model.documento;


import java.io.IOException;
import java.math.BigDecimal;
import java.sql.Blob;
import java.sql.SQLException;
import java.util.Date;

import javax.sql.rowset.serial.SerialBlob;
import javax.sql.rowset.serial.SerialException;

import org.codehaus.jackson.map.annotate.JsonDeserialize;
import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.springframework.web.multipart.MultipartFile;

import com.ejie.m62fb.model.Plantilla;
import com.ejie.m62fb.model.tipos.TipoSiNo;
import com.ejie.x38.serialization.JsonDateDeserializer;
import com.ejie.x38.serialization.JsonDateSerializer;

/**
 * 
XXXX
 *
 */
public class Documento extends ContenidoDocumento implements java.io.Serializable {
	
	private static final long serialVersionUID = 1L;
			private BigDecimal numDocumento;
            private String nomDocumento;
            private Plantilla plantilla;
            private String numExpediente;

            private TipoSiNo indAcuseRecibo;
            private Date fecEnvio;
            private Date fecRecibi;
            private String codTipoPlantilla;
            private TipoSiNo indAnexado;
            private TipoSiNo indDocuAnulado;
            
            
//            private String codAplicacion;
//            private TipoPlantilla tipoPlantilla;
//            private TipoFigura tipoFigura;
//            private TipoAyuda tipoAyuda;
//            private String codNumPlantilla;
//
//            private String codRehab;
//            private Long numCertif;
//            private Long numCertifIndiv;
//            private Long numResolucion;
//            private Long numSubsanacion;
//            private Long numNotificacion;
//            private Long numFactura;
//            private Long numDocumentoOld;
//            private Boolean indDocAnulado;
//            private List<ContenidoDocumento> contenidos = new ArrayList<ContenidoDocumento>();
            //private List<M62r01td> m62r01tds = new ArrayList<M62r01td>();
            //private List<M62r12td> m62r12tds = new ArrayList<M62r12td>();
            //private M62r13td m62r13td;
            //private List<M62e15t0> m62e15t0s = new ArrayList<M62e15t0>();

	/** 
	 * Method 'M62e14t0'.
	 */
    public Documento() {
    }


	
    
    /**
	 * @param contenido
	 */
	public Documento(Blob contenido) {
		super(contenido);
	}


	/** 
     * Method 'M62e14t0'.
     * @param numDocumento BigDecimal
     */    
     public Documento(BigDecimal numDocumento) {
          this.setNumDocumento(numDocumento);
	}




	/**
	 * @param numDocumento the numDocumento to set
	 */
	public void setNumDocumento(BigDecimal numDocumento) {
		this.numDocumento = numDocumento;
	}




	/**
	 * @return the numDocumento
	 */
	public BigDecimal getNumDocumento() {
		return numDocumento;
	}




	/**
	 * @return the nomDocumento
	 */
	public String getNomDocumento() {
		return nomDocumento;
	}




	/**
	 * @param nomDocumento the nomDocumento to set
	 */
	public void setNomDocumento(String nomDocumento) {
		this.nomDocumento = nomDocumento;
	}




	/**
	 * @return the plantilla
	 */
	public Plantilla getPlantilla() {
		return plantilla;
	}




	/**
	 * @param plantilla the plantilla to set
	 */
	public void setPlantilla(Plantilla plantilla) {
		this.plantilla = plantilla;
	}




	/**
	 * @return the indAcuseRecibo
	 */
	public TipoSiNo getIndAcuseRecibo() {
		return indAcuseRecibo;
	}




	/**
	 * @param indAcuseRecibo the indAcuseRecibo to set
	 */
	public void setIndAcuseRecibo(TipoSiNo indAcuseRecibo) {
		this.indAcuseRecibo = indAcuseRecibo;
	}




	/**
	 * @return the fecEnvio
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecEnvio() {
		return fecEnvio;
	}




	/**
	 * @param fecEnvio the fecEnvio to set
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecEnvio(Date fecEnvio) {
		this.fecEnvio = fecEnvio;
	}




	/**
	 * @return the fecRecibi
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecRecibi() {
		return fecRecibi;
	}




	/**
	 * @param fecRecibi the fecRecibi to set
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecRecibi(Date fecRecibi) {
		this.fecRecibi = fecRecibi;
	}




	/**
	 * @return the codTipoPlantilla
	 */
	public String getCodTipoPlantilla() {
		return codTipoPlantilla;
	}




	/**
	 * @param codTipoPlantilla the codTipoPlantilla to set
	 */
	public void setCodTipoPlantilla(String codTipoPlantilla) {
		this.codTipoPlantilla = codTipoPlantilla;
	}




	/**
	 * @return the indAnexado
	 */
	public TipoSiNo getIndAnexado() {
		return indAnexado;
	}




	/**
	 * @param indAnexado the indAnexado to set
	 */
	public void setIndAnexado(TipoSiNo indAnexado) {
		this.indAnexado = indAnexado;
	}




	/**
	 * @return the indDocuAnulado
	 */
	public TipoSiNo getIndDocuAnulado() {
		return indDocuAnulado;
	}




	/**
	 * @param indDocuAnulado the indDocuAnulado to set
	 */
	public void setIndDocuAnulado(TipoSiNo indDocuAnulado) {
		this.indDocuAnulado = indDocuAnulado;
	}




	public String getNumExpediente() {
		return numExpediente!=null?numExpediente.toUpperCase():null;
	}




	public void setNumExpediente(String numExpediente) {
		this.numExpediente = numExpediente!=null?numExpediente.toUpperCase():null;
	}


    
}

