package com.ejie.ad74a.model;

import java.util.Date;

import com.ejie.x38.serialization.JsonDateDeserializer;
import com.ejie.x38.serialization.JsonDateSerializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

/**
 * DocumentosTarea generated by UDA, 05-abr-2023 13:07:44.
 * 
 * @author UDA
 */

public class DocumentosTarea extends DocumentoExpediente {

	private static final long serialVersionUID = 1L;
	private Long idDocTarea18;
	private Long idTareaTram18;
	private Long idTipoDoc18;
	// private String oiddokusi18; super OidDocumento
	// private String nombreDoc18; super NombreDocumento
	private String rutapif18;
	private String localizador18;
	private Integer obligatorio18;
	private String tipoAdjunto18;
	private String depEntrega18;
	private Date fEntrega18;
	private Integer estadoDoc18;
	private Date fAlta18;
	private String usuAlta18;
	private Date fModif18;
	private String usuModif18;

	private MaestroTiposDoc maestroTiposDoc;

	private Long idExpediente;

	private String invocationTimestamp;
	private String invocationResult;

	private boolean requerido;

	// para saber si un documento es de origen externo o interno a la hora de hacer
	// una aportacion
	private boolean esExterno;

	private String documentListStringify;

	/**
	 * Method 'DocumentosTarea'.
	 */
	public DocumentosTarea() {
		super();
	}

	/**
	 * Method 'DocumentosTarea'.
	 * 
	 * @param idDocTarea18 Long
	 */
	public DocumentosTarea(Long idDocTarea18) {
		super();
		this.idDocTarea18 = idDocTarea18;
	}

	/**
	 * Method 'DocumentosTarea'.
	 * 
	 * @param idDocTarea18    Long
	 * @param idTareaTram18   Long
	 * @param idTipoDoc18     Long
	 * @param oiddokusi18     String
	 * @param nombreDoc18     String
	 * @param rutapif18       String
	 * @param localizador18   String
	 * @param obligatorio18   Integer
	 * @param tipoAdjunto18   String
	 * @param depEntrega18    String
	 * @param fEntrega18      Date
	 * @param estadoDoc18     Integer
	 * @param fAlta18         Date
	 * @param usuAlta18       String
	 * @param fModif18        Date
	 * @param usuModif18      String
	 * @param maestroTiposDoc MaestroTiposDoc
	 */
	public DocumentosTarea(Long idDocTarea18, Long idTareaTram18, Long idTipoDoc18, String oiddokusi18,
			String nombreDoc18, String rutapif18, String localizador18, Integer obligatorio18, String tipoAdjunto18,
			String depEntrega18, Date fEntrega18, Integer estadoDoc18, Date fAlta18, String usuAlta18, Date fModif18,
			String usuModif18, MaestroTiposDoc maestroTiposDoc) {
		super();
		this.idDocTarea18 = idDocTarea18;
		this.idTareaTram18 = idTareaTram18;
		this.idTipoDoc18 = idTipoDoc18;
		super.setOidDocumento(oiddokusi18);
		super.setNombreDocumento(nombreDoc18);
		this.rutapif18 = rutapif18;
		this.localizador18 = localizador18;
		this.obligatorio18 = obligatorio18;
		this.tipoAdjunto18 = tipoAdjunto18;
		this.depEntrega18 = depEntrega18;
		this.fEntrega18 = fEntrega18;
		this.estadoDoc18 = estadoDoc18;
		this.fAlta18 = fAlta18;
		this.usuAlta18 = usuAlta18;
		this.fModif18 = fModif18;
		this.usuModif18 = usuModif18;
		this.maestroTiposDoc = maestroTiposDoc;
	}

	/**
	 * Method 'getIdDocTarea18'.
	 *
	 * @return Long
	 */

	public Long getIdDocTarea18() {
		return this.idDocTarea18;
	}

	/**
	 * Method 'setIdDocTarea18'.
	 *
	 * @param idDocTarea18 Long
	 * @return
	 */

	public void setIdDocTarea18(Long idDocTarea18) {
		this.idDocTarea18 = idDocTarea18;
	}

	/**
	 * Method 'getIdTareaTram18'.
	 *
	 * @return Long
	 */

	public Long getIdTareaTram18() {
		return this.idTareaTram18;
	}

	/**
	 * Method 'setIdTareaTram18'.
	 *
	 * @param idTareaTram18 Long
	 * @return
	 */

	public void setIdTareaTram18(Long idTareaTram18) {
		this.idTareaTram18 = idTareaTram18;
	}

	/**
	 * Method 'getIdTipoDoc18'.
	 *
	 * @return Long
	 */

	public Long getIdTipoDoc18() {
		return this.idTipoDoc18;
	}

	/**
	 * Method 'setIdTipoDoc18'.
	 *
	 * @param idTipoDoc18 Long
	 * @return
	 */

	public void setIdTipoDoc18(Long idTipoDoc18) {
		this.idTipoDoc18 = idTipoDoc18;
	}

	/**
	 * Method 'getOiddokusi18'.
	 *
	 * @return String
	 */

	public String getOiddokusi18() {
		return super.getOidDocumento();
	}

	/**
	 * Method 'setOiddokusi18'.
	 *
	 * @param oiddokusi18 String
	 * @return
	 */

	public void setOiddokusi18(String oiddokusi18) {
		super.setOidDocumento(oiddokusi18);
	}

	/**
	 * Method 'getNombreDoc18'.
	 *
	 * @return String
	 */

	public String getNombreDoc18() {
		return super.getNombreDocumento();
	}

	/**
	 * Method 'setNombreDoc18'.
	 *
	 * @param nombreDoc18 String
	 * @return
	 */

	public void setNombreDoc18(String nombreDoc18) {
		super.setNombreDocumento(nombreDoc18);
	}

	/**
	 * Method 'getRutapif18'.
	 *
	 * @return String
	 */

	public String getRutapif18() {
		return this.rutapif18;
	}

	/**
	 * Method 'setRutapif18'.
	 *
	 * @param rutapif18 String
	 * @return
	 */

	public void setRutapif18(String rutapif18) {
		this.rutapif18 = rutapif18;
	}

	/**
	 * Method 'getLocalizador18'.
	 *
	 * @return String
	 */

	public String getLocalizador18() {
		return this.localizador18;
	}

	/**
	 * Method 'setLocalizador18'.
	 *
	 * @param localizador18 String
	 * @return
	 */

	public void setLocalizador18(String localizador18) {
		this.localizador18 = localizador18;
	}

	/**
	 * Method 'getObligatorio18'.
	 *
	 * @return Integer
	 */

	public Integer getObligatorio18() {
		return this.obligatorio18;
	}

	/**
	 * Method 'setObligatorio18'.
	 *
	 * @param obligatorio18 Integer
	 * @return
	 */

	public void setObligatorio18(Integer obligatorio18) {
		this.obligatorio18 = obligatorio18;
	}

	/**
	 * Method 'getTipoAdjunto18'.
	 *
	 * @return String
	 */

	public String getTipoAdjunto18() {
		return this.tipoAdjunto18;
	}

	/**
	 * Method 'setTipoAdjunto18'.
	 *
	 * @param tipoAdjunto18 String
	 * @return
	 */

	public void setTipoAdjunto18(String tipoAdjunto18) {
		this.tipoAdjunto18 = tipoAdjunto18;
	}

	/**
	 * Method 'getDepEntrega18'.
	 *
	 * @return String
	 */

	public String getDepEntrega18() {
		return this.depEntrega18;
	}

	/**
	 * Method 'setDepEntrega18'.
	 *
	 * @param depEntrega18 String
	 * @return
	 */

	public void setDepEntrega18(String depEntrega18) {
		this.depEntrega18 = depEntrega18;
	}

	/**
	 * Method 'getfEntrega18'.
	 *
	 * @return java.util.Date
	 */

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getfEntrega18() {
		return this.fEntrega18;
	}

	/**
	 * Method 'setFEntrega18'.
	 *
	 * @param FEntrega18 java.util.Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setfEntrega18(Date fEntrega18) {
		this.fEntrega18 = fEntrega18;
	}

	/**
	 * Method 'getEstadoDoc18'.
	 *
	 * @return Integer
	 */

	public Integer getEstadoDoc18() {
		return this.estadoDoc18;
	}

	/**
	 * Method 'setEstadoDoc18'.
	 *
	 * @param estadoDoc18 Integer
	 * @return
	 */

	public void setEstadoDoc18(Integer estadoDoc18) {
		this.estadoDoc18 = estadoDoc18;
	}

	/**
	 * Method 'getfAlta18'.
	 *
	 * @return java.util.Date
	 */

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getfAlta18() {
		return this.fAlta18;
	}

	/**
	 * Method 'setfAlta18'.
	 *
	 * @param fAlta18 java.util.Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setfAlta18(Date fAlta18) {
		this.fAlta18 = fAlta18;
	}

	/**
	 * Method 'getUsuAlta18'.
	 *
	 * @return String
	 */

	public String getUsuAlta18() {
		return this.usuAlta18;
	}

	/**
	 * Method 'setUsuAlta18'.
	 *
	 * @param usuAlta18 String
	 * @return
	 */

	public void setUsuAlta18(String usuAlta18) {
		this.usuAlta18 = usuAlta18;
	}

	/**
	 * Method 'getfModif18'.
	 *
	 * @return java.util.Date
	 */

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getfModif18() {
		return this.fModif18;
	}

	/**
	 * Method 'setfModif18'.
	 *
	 * @param fModif18 java.util.Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setfModif18(Date fModif18) {
		this.fModif18 = fModif18;
	}

	/**
	 * Method 'getUsuModif18'.
	 *
	 * @return String
	 */

	public String getUsuModif18() {
		return this.usuModif18;
	}

	/**
	 * Method 'setUsuModif18'.
	 *
	 * @param usuModif18 String
	 * @return
	 */

	public void setUsuModif18(String usuModif18) {
		this.usuModif18 = usuModif18;
	}

	/**
	 * Intended only for logging and debugging.
	 * 
	 * Here, the contents of every main field are placed into the result.
	 * 
	 * @return String
	 */
	@Override
	public String toString() {
		StringBuilder result = new StringBuilder();
		result.append(this.getClass().getName()).append(" Object { ");
		result.append(" [ idDocTarea18: ").append(this.idDocTarea18).append(" ]");
		result.append(", [ idTareaTram18: ").append(this.idTareaTram18).append(" ]");
		result.append(", [ idTipoDoc18: ").append(this.idTipoDoc18).append(" ]");
		result.append(", [ oiddokusi18: ").append(super.getOidDocumento()).append(" ]");
		result.append(", [ nombreDoc18: ").append(super.getNombreDocumento()).append(" ]");
		result.append(", [ rutapif18: ").append(this.rutapif18).append(" ]");
		result.append(", [ localizador18: ").append(this.localizador18).append(" ]");
		result.append(", [ obligatorio18: ").append(this.obligatorio18).append(" ]");
		result.append(", [ tipoAdjunto18: ").append(this.tipoAdjunto18).append(" ]");
		result.append(", [ depEntrega18: ").append(this.depEntrega18).append(" ]");
		result.append(", [ fEntrega18: ").append(this.fEntrega18).append(" ]");
		result.append(", [ estadoDoc18: ").append(this.estadoDoc18).append(" ]");
		result.append(", [ fAlta18: ").append(this.fAlta18).append(" ]");
		result.append(", [ usuAlta18: ").append(this.usuAlta18).append(" ]");
		result.append(", [ fModif18: ").append(this.fModif18).append(" ]");
		result.append(", [ usuModif18: ").append(this.usuModif18).append(" ]");
		result.append("}");
		return result.toString();
	}

	/**
	 * Method 'getMaestroTiposDoc'.
	 *
	 * @return MaestroTiposDoc
	 */
	public MaestroTiposDoc getMaestroTiposDoc() {
		return maestroTiposDoc;
	}

	/**
	 * Method 'setMaestroTiposDoc'.
	 *
	 * @param maestroTiposDoc MaestroTiposDoc
	 * @return
	 */
	public void setMaestroTiposDoc(MaestroTiposDoc maestroTiposDoc) {
		this.maestroTiposDoc = maestroTiposDoc;
	}

	/**
	 * Method 'getIdExpediente'.
	 *
	 * @return Long
	 */
	public Long getIdExpediente() {
		return idExpediente;
	}

	/**
	 * Method 'setIdExpediente'.
	 *
	 * @param idExpediente Long
	 * @return
	 */
	public void setIdExpediente(Long idExpediente) {
		this.idExpediente = idExpediente;
	}

	/**
	 * Method 'getInvocationTimestamp'.
	 *
	 * @return String
	 */
	public String getInvocationTimestamp() {
		return invocationTimestamp;
	}

	/**
	 * Method 'setInvocationTimestamp'.
	 *
	 * @param invocationTimestamp String
	 * @return
	 */
	public void setInvocationTimestamp(String invocationTimestamp) {
		this.invocationTimestamp = invocationTimestamp;
	}

	/**
	 * Method 'getInvocationResult'.
	 *
	 * @return String
	 */
	public String getInvocationResult() {
		return invocationResult;
	}

	/**
	 * Method 'setInvocationResult'.
	 *
	 * @param invocationResult String
	 * @return
	 */
	public void setInvocationResult(String invocationResult) {
		this.invocationResult = invocationResult;
	}

	/**
	 * Method 'isRequerido'.
	 *
	 * @return boolean
	 */
	public boolean isRequerido() {
		return requerido;
	}

	/**
	 * Method 'setRequerido'.
	 *
	 * @param requerido boolean
	 * @return
	 */
	public void setRequerido(boolean requerido) {
		this.requerido = requerido;
	}

	/**
	 * Method 'getDocumentListStringify'.
	 *
	 * @return String
	 */
	public String getDocumentListStringify() {
		return documentListStringify;
	}

	/**
	 * Method 'setDocumentListStringify'.
	 *
	 * @param documentListStringify String
	 * @return
	 */
	public void setDocumentListStringify(String documentListStringify) {
		this.documentListStringify = documentListStringify;
	}

	/**
	 * Method 'isEsExterno'.
	 *
	 * @return boolean
	 */
	public boolean isEsExterno() {
		return esExterno;
	}

	/**
	 * Method 'setEsExterno'.
	 *
	 * @param exExterno boolean
	 * @return
	 */
	public void setEsExterno(boolean exExterno) {
		this.esExterno = exExterno;
	}

	public String getTpoDocumento() {
		return this.getNumExpediente() + " - " + this.getTipoSolicitudDesc();

	}

	public void setTpoDocumento(String d) {

	}
}
