package com.ejie.ab04b.model.solicitud;

import java.util.Date;

import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.map.annotate.JsonDeserialize;
import org.codehaus.jackson.map.annotate.JsonSerialize;

import com.ejie.ab04b.model.nora.Municipio;
import com.ejie.ab04b.model.nora.Pais;
import com.ejie.ab04b.model.nora.Provincia;
import com.ejie.x38.serialization.JsonDateDeserializer;
import com.ejie.x38.serialization.JsonDateSerializer;

/**
 * Ab0483s01 generated by UDA, 12-abr-2017 11:44:45.
 * 
 * @author UDA
 */

public class SolicProyectista implements java.io.Serializable {

	private static final long serialVersionUID = 1L;

	// Clave compuesta
	private SolicObra obra;
	private String tipdoc083;
	private String numdoc083;
	private Date fecalt083;

	private Date fecbaj083;
	private String nompry083;
	private String paispry083;
	private String prvpry083;
	private String munpry083;
	private String dmunpry083;
	private String dirpry083;
	private String cpopry083;
	private Long ordexp083;
	private String usualt083;
	private Date fecmod083;
	private String usumod083;
	private String descpry083;

	// añadidos
	private Pais pais;
	private Provincia provincia;
	private Municipio municipio;

	/**
	 * Method 'SolicProyectista'.
	 */
	public SolicProyectista() {
	}

	/**
	 * Method 'SolicProyectista'.
	 * 
	 *  obra
	 *            SolicObra
	 *  tipdoc083
	 *            String
	 *  numdoc083
	 *            String
	 *  fecalt083
	 *            Date
	 *
	 * @param obra the obra
	 * @param tipdoc083 the tipdoc 083
	 * @param numdoc083 the numdoc 083
	 * @param fecalt083 the fecalt 083
	 */
	public SolicProyectista(SolicObra obra, String tipdoc083, String numdoc083,
			Date fecalt083) {
		this.obra = obra;
		this.tipdoc083 = tipdoc083;
		this.numdoc083 = numdoc083;
		this.fecalt083 = fecalt083;
	}

	/**
	 * Method 'SolicProyectista'.
	 * 
	 *  obra
	 *            SolicObra
	 *  tipdoc083
	 *            String
	 *  numdoc083
	 *            String
	 *  fecalt083
	 *            Date
	 *  fecbaj083
	 *            Date
	 *  nompry083
	 *            String
	 *  paispry083
	 *            String
	 *  prvpry083
	 *            String
	 *  munpry083
	 *            String
	 *  dmunpry083
	 *            String
	 *  dirpry083
	 *            String
	 *  cpopry083
	 *            String
	 *  ordexp083
	 *            Long
	 *  usualt083
	 *            String
	 *  fecmod083
	 *            Date
	 *  usumod083
	 *            String
	 *  descpry083
	 *            String
	 *
	 * @param obra the obra
	 * @param tipdoc083 the tipdoc 083
	 * @param numdoc083 the numdoc 083
	 * @param fecalt083 the fecalt 083
	 * @param fecbaj083 the fecbaj 083
	 * @param nompry083 the nompry 083
	 * @param paispry083 the paispry 083
	 * @param prvpry083 the prvpry 083
	 * @param munpry083 the munpry 083
	 * @param dmunpry083 the dmunpry 083
	 * @param dirpry083 the dirpry 083
	 * @param cpopry083 the cpopry 083
	 * @param ordexp083 the ordexp 083
	 * @param usualt083 the usualt 083
	 * @param fecmod083 the fecmod 083
	 * @param usumod083 the usumod 083
	 * @param descpry083 the descpry 083
	 */
	public SolicProyectista(SolicObra obra, String tipdoc083, String numdoc083,
			Date fecalt083, Date fecbaj083, String nompry083,
			String paispry083, String prvpry083, String munpry083,
			String dmunpry083, String dirpry083, String cpopry083,
			Long ordexp083, String usualt083, Date fecmod083, String usumod083,
			String descpry083) {

		this.obra = obra;
		this.tipdoc083 = tipdoc083;
		this.numdoc083 = numdoc083;
		this.fecalt083 = fecalt083;
		this.fecbaj083 = fecbaj083;
		this.nompry083 = nompry083;
		this.paispry083 = paispry083;
		this.prvpry083 = prvpry083;
		this.munpry083 = munpry083;
		this.dmunpry083 = dmunpry083;
		this.dirpry083 = dirpry083;
		this.cpopry083 = cpopry083;
		this.ordexp083 = ordexp083;
		this.usualt083 = usualt083;
		this.fecmod083 = fecmod083;
		this.usumod083 = usumod083;
		this.descpry083 = descpry083;
	}

	/**
	 * Method 'getObra'.
	 * 
	 *  SolicObra
	 *
	 * @return the obra
	 */
	@JsonIgnore
	public SolicObra getObra() {
		return this.obra;
	}

	/**
	 * Method 'setObra'.
	 * 
	 *  obra
	 *            SolicObra
	 *
	 * @param obra the new obra
	 */

	public void setObra(SolicObra obra) {
		this.obra = obra;
	}

	/**
	 * Method 'getProvincia'.
	 * 
	 *  String
	 *
	 * @return the provincia
	 */
	public String getProvincia() {
		if (this.provincia != null) {
			return this.provincia.getDescripcion();
		} else {
			return null;
		}
	}

	/**
	 * Method 'getMunicipio'.
	 * 
	 *  String
	 *
	 * @return the municipio
	 */
	public String getMunicipio() {
		if (this.municipio != null) {
			return this.municipio.getDescripcion();
		} else {
			return null;
		}
	}

	/**
	 * Method 'getProvincia'.
	 * 
	 *  String
	 *
	 * @return the cod provincia
	 */
	public String getCodProvincia() {
		if (this.provincia != null) {
			return this.provincia.getCodProvincia();
		} else {
			return null;
		}
	}

	/**
	 * Method 'getMunicipio'.
	 * 
	 *  String
	 *
	 * @return the cod municipio
	 */
	public String getCodMunicipio() {
		if (this.municipio != null) {
			return this.municipio.getCodMunicipio();
		} else {
			return null;
		}
	}

	/**
	 * Method 'getTipdoc083'.
	 * 
	 *  String
	 *
	 * @return the tipdoc 083
	 */

	public String getTipdoc083() {
		return this.tipdoc083;
	}

	/**
	 * Method 'setTipdoc083'.
	 * 
	 *  tipdoc083
	 *            String
	 *
	 * @param tipdoc083 the new tipdoc 083
	 */

	public void setTipdoc083(String tipdoc083) {
		this.tipdoc083 = tipdoc083;
	}

	/**
	 * Method 'getNumdoc083'.
	 * 
	 *  String
	 *
	 * @return the numdoc 083
	 */

	public String getNumdoc083() {
		return this.numdoc083;
	}

	/**
	 * Method 'setNumdoc083'.
	 * 
	 *  numdoc083
	 *            String
	 *
	 * @param numdoc083 the new numdoc 083
	 */

	public void setNumdoc083(String numdoc083) {
		this.numdoc083 = numdoc083;
	}

	/**
	 * Method 'getFecalt083'.
	 * 
	 *  Date
	 *
	 * @return the fecalt 083
	 */

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

	/**
	 * Method 'setFecalt083'.
	 * 
	 *  fecalt083
	 *            Date
	 *
	 * @param fecalt083 the new fecalt 083
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecalt083(Date fecalt083) {
		this.fecalt083 = fecalt083;
	}

	/**
	 * Method 'getFecbaj083'.
	 * 
	 *  java.util.Date
	 *
	 * @return the fecbaj 083
	 */

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

	/**
	 * Method 'setFecbaj083'.
	 * 
	 *  fecbaj083
	 *            java.util.Date
	 *
	 * @param fecbaj083 the new fecbaj 083
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecbaj083(Date fecbaj083) {
		this.fecbaj083 = fecbaj083;
	}

	/**
	 * Method 'getNompry083'.
	 * 
	 *  String
	 *
	 * @return the nompry 083
	 */

	public String getNompry083() {
		return this.nompry083;
	}

	/**
	 * Method 'setNompry083'.
	 * 
	 *  nompry083
	 *            String
	 *
	 * @param nompry083 the new nompry 083
	 */

	public void setNompry083(String nompry083) {
		this.nompry083 = nompry083;
	}

	/**
	 * Method 'getPaispry083'.
	 * 
	 *  String
	 *
	 * @return the paispry 083
	 */

	public String getPaispry083() {
		return this.paispry083;
	}

	/**
	 * Method 'setPaispry083'.
	 * 
	 *  paispry083
	 *            String
	 *
	 * @param paispry083 the new paispry 083
	 */

	public void setPaispry083(String paispry083) {
		this.paispry083 = paispry083;
	}

	/**
	 * Method 'getPrvpry083'.
	 * 
	 *  String
	 *
	 * @return the prvpry 083
	 */

	public String getPrvpry083() {
		return this.prvpry083;
	}

	/**
	 * Method 'setPrvpry083'.
	 * 
	 *  prvpry083
	 *            String
	 *
	 * @param prvpry083 the new prvpry 083
	 */

	public void setPrvpry083(String prvpry083) {
		this.prvpry083 = prvpry083;
	}

	/**
	 * Method 'getMunpry083'.
	 * 
	 *  String
	 *
	 * @return the munpry 083
	 */

	public String getMunpry083() {
		return this.munpry083;
	}

	/**
	 * Method 'setMunpry083'.
	 * 
	 *  munpry083
	 *            String
	 *
	 * @param munpry083 the new munpry 083
	 */

	public void setMunpry083(String munpry083) {
		this.munpry083 = munpry083;
	}

	/**
	 * Method 'getDmunpry083'.
	 * 
	 *  String
	 *
	 * @return the dmunpry 083
	 */

	public String getDmunpry083() {
		return this.dmunpry083;
	}

	/**
	 * Method 'setDmunpry083'.
	 * 
	 *  dmunpry083
	 *            String
	 *
	 * @param dmunpry083 the new dmunpry 083
	 */

	public void setDmunpry083(String dmunpry083) {
		this.dmunpry083 = dmunpry083;
	}

	/**
	 * Method 'getDirpry083'.
	 * 
	 *  String
	 *
	 * @return the dirpry 083
	 */

	public String getDirpry083() {
		return this.dirpry083;
	}

	/**
	 * Method 'setDirpry083'.
	 * 
	 *  dirpry083
	 *            String
	 *
	 * @param dirpry083 the new dirpry 083
	 */

	public void setDirpry083(String dirpry083) {
		this.dirpry083 = dirpry083;
	}

	/**
	 * Method 'getCpopry083'.
	 * 
	 *  String
	 *
	 * @return the cpopry 083
	 */

	public String getCpopry083() {
		return this.cpopry083;
	}

	/**
	 * Method 'setCpopry083'.
	 * 
	 *  cpopry083
	 *            String
	 *
	 * @param cpopry083 the new cpopry 083
	 */

	public void setCpopry083(String cpopry083) {
		this.cpopry083 = cpopry083;
	}

	/**
	 * Method 'getOrdexp083'.
	 * 
	 *  Long
	 *
	 * @return the ordexp 083
	 */

	public Long getOrdexp083() {
		return this.ordexp083;
	}

	/**
	 * Method 'setOrdexp083'.
	 * 
	 *  ordexp083
	 *            Long
	 *
	 * @param ordexp083 the new ordexp 083
	 */

	public void setOrdexp083(Long ordexp083) {
		this.ordexp083 = ordexp083;
	}

	/**
	 * Method 'getUsualt083'.
	 * 
	 *  String
	 *
	 * @return the usualt 083
	 */

	public String getUsualt083() {
		return this.usualt083;
	}

	/**
	 * Method 'setUsualt083'.
	 * 
	 *  usualt083
	 *            String
	 *
	 * @param usualt083 the new usualt 083
	 */

	public void setUsualt083(String usualt083) {
		this.usualt083 = usualt083;
	}

	/**
	 * Method 'getFecmod083'.
	 * 
	 *  java.util.Date
	 *
	 * @return the fecmod 083
	 */

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

	/**
	 * Method 'setFecmod083'.
	 * 
	 *  fecmod083
	 *            java.util.Date
	 *
	 * @param fecmod083 the new fecmod 083
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecmod083(Date fecmod083) {
		this.fecmod083 = fecmod083;
	}

	/**
	 * Method 'getUsumod083'.
	 * 
	 *  String
	 *
	 * @return the usumod 083
	 */

	public String getUsumod083() {
		return this.usumod083;
	}

	/**
	 * Method 'setUsumod083'.
	 * 
	 *  usumod083
	 *            String
	 *
	 * @param usumod083 the new usumod 083
	 */

	public void setUsumod083(String usumod083) {
		this.usumod083 = usumod083;
	}

	/**
	 * Method 'getDescpry083'.
	 * 
	 *  String
	 *
	 * @return the descpry 083
	 */

	public String getDescpry083() {
		return this.descpry083;
	}

	/**
	 * Method 'setDescpry083'.
	 * 
	 *  descpry083
	 *            String
	 *
	 * @param descpry083 the new descpry 083
	 */

	public void setDescpry083(String descpry083) {
		this.descpry083 = descpry083;
	}

	/**
	 * public Provincia getProvincia() { return provincia; }
	 * 
	 * /**
	 * 
	 *  provincia
	 *            the provincia to set.
	 *
	 * @param provincia the new provincia
	 */
	public void setProvincia(Provincia provincia) {
		this.provincia = provincia;
	}

	/**
	 * public Municipio getMunicipio() { return municipio; }
	 * 
	 * /**
	 * 
	 *  municipio
	 *            the municipio to set.
	 *
	 * @param municipio the new municipio
	 */
	public void setMunicipio(Municipio municipio) {
		this.municipio = municipio;
	}

	/**
	 * Gets the pais.
	 *
	 * @return the pais
	 */
	public Pais getPais() {
		return pais;
	}

	/**
	 * Sets the pais.
	 *
	 * @param pais the new pais
	 */
	public void setPais(Pais pais) {
		this.pais = pais;
	}

	/**
	 * Intended only for logging and debugging.
	 * 
	 * Here, the contents of every main field are placed into the result.
	 * 
	 *  String
	 *
	 * @return the string
	 */
	@Override
	public String toString() {
		StringBuilder result = new StringBuilder();
		result.append(this.getClass().getName()).append(" Object { ");
		// Clave compuesta

		result.append("[ ab0482s01: ").append(this.obra).append(" ]");

		result.append(", [ tipdoc083: ").append(this.tipdoc083).append(" ]");

		result.append(", [ numdoc083: ").append(this.numdoc083).append(" ]");

		result.append(", [ fecalt083: ").append(this.fecalt083).append(" ]");
		result.append(", [ fecbaj083: ").append(this.fecbaj083).append(" ]");
		result.append(", [ nompry083: ").append(this.nompry083).append(" ]");
		result.append(", [ paispry083: ").append(this.paispry083).append(" ]");
		result.append(", [ prvpry083: ").append(this.prvpry083).append(" ]");
		result.append(", [ munpry083: ").append(this.munpry083).append(" ]");
		result.append(", [ dmunpry083: ").append(this.dmunpry083).append(" ]");
		result.append(", [ dirpry083: ").append(this.dirpry083).append(" ]");
		result.append(", [ cpopry083: ").append(this.cpopry083).append(" ]");
		result.append(", [ ordexp083: ").append(this.ordexp083).append(" ]");
		result.append(", [ usualt083: ").append(this.usualt083).append(" ]");
		result.append(", [ fecmod083: ").append(this.fecmod083).append(" ]");
		result.append(", [ usumod083: ").append(this.usumod083).append(" ]");
		result.append(", [ descpry083: ").append(this.descpry083).append(" ]");
		result.append("}");
		return result.toString();
	}

}
