/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package db.entidades;

import global.Global;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 *
 * @author lluis
 */
public class PlanoActuacao {

	private static final SimpleDateFormat D_F = new SimpleDateFormat( "dd-MM-yyyy" );

    private Integer id;
    private Integer estabelecimento_id;
    private String nome_estabelecimento;
    private Integer empresa_id;
    private String nome_empresa;
    private Integer fase;
    private Integer fase_anterior;    
    private String descricao;
    private List<Area> areas;
    private List<Risco> riscos;
    
    //
    private Date data_visita;
    private String data_visita_str;
    private Date data_relatorio;
    private Integer tecnico_hs_id;
    private String fase_nome;
    private String tecnico_hs_nome;
    private String loja_nome;
    
    private Boolean validacao_director_loja;
    private Boolean validacao_dns;
    private Boolean validacao_hs;
    private String observacoes_dl;
    private String observacoes_dns;    
    private String obs_correcao;
    
    private int total_riscos;
    
    private String correcao;
    private Integer fase_antes_correcao;
    private Date data_validacao_dir_loja;
    private Integer user_dir_loja;
    private Date data_validacao_dns;
    private Integer user_dns;
    private Date data_validacao_hs;
    private Integer user_hs;

    
    private String data_validacao_dir_loja_str;
    private String data_validacao_dns_str;
    private String data_validacao_hs_str;
    
    private Date data_controlo;
    private Date data_email_controlo;

	private Boolean concluido_por_desactivacao;
	private Date data_desactivacao;

	private Integer tecnico_superior_hs_id;
	private String tecnico_superior_hs_nome;

	private String tecnicos_nomes;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getEstabelecimento_id() {
        return estabelecimento_id;
    }

    public void setEstabelecimento_id(Integer estabelecimento_id) {
        this.estabelecimento_id = estabelecimento_id;
    }

    public Integer getFase() {
        return fase;
    }

    public void setFase(Integer fase) {
        this.fase = fase;
		fase_nome = Global.FASES_TEXTO[fase.intValue()-1];
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public List<Risco> getRiscos() {
        return riscos;
    }

    public void setRiscos(List<Risco> riscos) {
        this.riscos = riscos;
    }

    public Date getData_visita() {
        return data_visita;
    }

    public void setData_visita(Date data_visita) {
        this.data_visita = data_visita;
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
        data_visita_str = formatter.format(data_visita); 
   }

    public Integer getTecnico_hs_id() {
        return tecnico_hs_id;
    }

    public void setTecnico_hs_id(Integer tecnico_hs_id) {
        this.tecnico_hs_id = tecnico_hs_id;
    }

    public String getFase_nome() {
		String fn = fase_nome;

		if ( fase.intValue() == Global.FASE_CONCLUIDO )
		{
			if ( getConcluidoPorDesactivacao() != null && getConcluidoPorDesactivacao() )
			{
				fn = "Prazo Expirado";

				if ( getDataDesactivacao() != null )
				{
					fn += " (em " + D_F.format( getDataDesactivacao() ) + ")";
				}
			}
		}

		return fn;
//		if ( fase.intValue() == Global.FASE_CONCLUIDO && getConcluidoPorDesactivacao() != null && getConcluidoPorDesactivacao() )
//		{
//			return "Prazo Expirado";
//		}
//        return fase_nome;
    }

    public void setFase_nome(String fase_nome) {
        this.fase_nome = fase_nome;
    }

    public String getTecnico_hs_nome() {
        return tecnico_hs_nome;
    }

    public void setTecnico_hs_nome(String tecnico_hs_nome) {
        this.tecnico_hs_nome = tecnico_hs_nome;
    }

    public String getLoja_nome() {
        return loja_nome;
    }

    public void setLoja_nome(String loja_nome) {
        this.loja_nome = loja_nome;
    }

    public String getData_visita_str() {
        return data_visita_str;
    }

    public void setData_visita_str(String data_visita_str) {
        this.data_visita_str = data_visita_str;
    }

    public String getNome_estabelecimento() {
        return nome_estabelecimento;
    }

    public void setNome_estabelecimento(String nome_estabelecimento) {
        this.nome_estabelecimento = nome_estabelecimento;
    }

    public List<Area> getAreas() {
        return areas;
    }

    public void setAreas(List<Area> areas) {
        this.areas = areas;
    }

    public int getTotal_riscos() {
        return total_riscos;
    }

    public void setTotal_riscos(int total_riscos) {
        this.total_riscos = total_riscos;
    }

    public Boolean getValidacao_director_loja() {
        return validacao_director_loja;
    }

    public void setValidacao_director_loja(Boolean validacao_director_loja) {
        this.validacao_director_loja = validacao_director_loja;
    }

    public Boolean getValidacao_dns() {
        return validacao_dns;
    }

    public void setValidacao_dns(Boolean validacao_dns) {
        this.validacao_dns = validacao_dns;
    }

    public Boolean getValidacao_hs() {
        return validacao_hs;
    }

    public void setValidacao_hs(Boolean validacao_hs) {
        this.validacao_hs = validacao_hs;
    }

    public String getObs_correcao() {
        return obs_correcao;
    }

    public void setObs_correcao(String obs_correcao) {
        this.obs_correcao = obs_correcao;
    }

    public String getCorrecao() {
        return correcao;
    }

    public void setCorrecao(String correcao) {
        this.correcao = correcao;
    }

    public Integer getFase_antes_correcao() {
        return fase_antes_correcao;
    }

    public void setFase_antes_correcao(Integer fase_antes_correcao) {
        this.fase_antes_correcao = fase_antes_correcao;
    }

    public Date getData_validacao_dir_loja() {
        return data_validacao_dir_loja;
    }

    public void setData_validacao_dir_loja(Date data_validacao_dir_loja) {
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
        if(data_validacao_dir_loja != null)
        {
            data_validacao_dir_loja_str = formatter.format(data_validacao_dir_loja);                     
        }

        this.data_validacao_dir_loja = data_validacao_dir_loja;
    }

    public Integer getUser_dir_loja() {
        return user_dir_loja;
    }

    public void setUser_dir_loja(Integer user_dir_loja) {
        this.user_dir_loja = user_dir_loja;
    }

    public Date getData_validacao_dns() {
        return data_validacao_dns;
    }

    public void setData_validacao_dns(Date data_validacao_dns) {
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
        if(data_validacao_dns != null)
        {
            data_validacao_dns_str = formatter.format(data_validacao_dns);                             
        }
        this.data_validacao_dns = data_validacao_dns;
    }

    public Integer getUser_dns() {
        return user_dns;
    }

    public void setUser_dns(Integer user_dns) {
        this.user_dns = user_dns;
    }

    public Date getData_validacao_hs() {
        return data_validacao_hs;
    }

    public void setData_validacao_hs(Date data_validacao_hs) {
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
        if(data_validacao_hs != null)
        {
            data_validacao_hs_str = formatter.format(data_validacao_hs);                             
        }

        this.data_validacao_hs = data_validacao_hs;
    }

    public Integer getUser_hs() {
        return user_hs;
    }

    public void setUser_hs(Integer user_hs) {
        this.user_hs = user_hs;
    }

    public String getData_validacao_dir_loja_str() {
        return data_validacao_dir_loja_str;
    }

    public void setData_validacao_dir_loja_str(String data_validacao_dir_loja_str) {
        this.data_validacao_dir_loja_str = data_validacao_dir_loja_str;
    }

    public String getData_validacao_dns_str() {
        return data_validacao_dns_str;
    }

    public void setData_validacao_dns_str(String data_validacao_dns_str) {
        this.data_validacao_dns_str = data_validacao_dns_str;
    }

    public String getData_validacao_hs_str() {
        return data_validacao_hs_str;
    }

    public void setData_validacao_hs_str(String data_validacao_hs_str) {
        this.data_validacao_hs_str = data_validacao_hs_str;
    }

    public String getObservacoes_dl() {
        return observacoes_dl;
    }

    public void setObservacoes_dl(String observacoes_dl) {
        this.observacoes_dl = observacoes_dl;
    }

    public String getObservacoes_dns() {
        return observacoes_dns;
    }

    public void setObservacoes_dns(String observacoes_dns) {
        this.observacoes_dns = observacoes_dns;
    }

    public Integer getFase_anterior() {
        return fase_anterior;
    }

    public void setFase_anterior(Integer fase_anterior) {
        this.fase_anterior = fase_anterior;
    }

    public Date getData_controlo() {
        return data_controlo;
    }

    public void setData_controlo(Date data_controlo) {
        this.data_controlo = data_controlo;
    }

    public Date getData_email_controlo() {
        return data_email_controlo;
    }

    public void setData_email_controlo(Date data_email_controlo) {
        this.data_email_controlo = data_email_controlo;
    }

    public Integer getEmpresa_id() {
        return empresa_id;
    }

    public void setEmpresa_id(Integer empresa_id) {
        this.empresa_id = empresa_id;
    }

    public String getNome_empresa() {
        return nome_empresa;
    }

    public void setNome_empresa(String nome_empresa) {
        this.nome_empresa = nome_empresa;
    }

    public Date getData_relatorio() {
        return data_relatorio;
    }

    public void setData_relatorio(Date data_relatorio) {
        this.data_relatorio = data_relatorio;
    }

	public Boolean getConcluidoPorDesactivacao()
	{
		return concluido_por_desactivacao;
	}

	public void setConcluidoPorDesactivacao( boolean value )
	{
		this.concluido_por_desactivacao = value;
	}

	public Date getDataDesactivacao()
	{
		return data_desactivacao;
	}

	public void setDataDesactivacao( Date data_desactivacao )
	{
		this.data_desactivacao = data_desactivacao;
	}

	public Integer getTecnico_superior_hs_id()
	{
		return tecnico_superior_hs_id;
	}

	public void setTecnico_superior_hs_id( Integer tecnico_superior_hs_id )
	{
		this.tecnico_superior_hs_id = tecnico_superior_hs_id;
	}

	public String getTecnico_superior_hs_nome() {
        return tecnico_superior_hs_nome;
    }

    public void setTecnico_superior_hs_nome(String tecnico_superior_hs_nome) {
        this.tecnico_superior_hs_nome = tecnico_superior_hs_nome;
    }

	public String getTecnicos_nomes()
	{
		String nomes = getTecnico_hs_nome();
		if ( getTecnico_superior_hs_nome() != null )
		{
			nomes = nomes == null ? getTecnico_superior_hs_nome() : nomes + ", " + getTecnico_superior_hs_nome();
		}

		setTecnicos_nomes( nomes );
		return tecnicos_nomes;
	}

	public void setTecnicos_nomes(String tecnicos_nomes) {
		this.tecnicos_nomes = tecnicos_nomes;
	}


}
