package com.fp.armas.portal.datamanager.registro;

import java.io.ByteArrayInputStream;
import java.io.Serializable;
import java.util.Collection;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;

import com.fp.armas.portal.datamanager.base.BaseDataManager;
import com.fp.armas.portal.model.Tcustcompany;
import com.fp.armas.portal.model.Tcustpeople;
import com.fp.armas.portal.model.Tcustpersonaddress;
import com.fp.armas.portal.model.Tcustpersondetail;
import com.fp.armas.portal.model.Tcustpersonphone;
import com.fp.armas.portal.model.Tgeneactivity;
import com.fp.armas.portal.model.Tgenecanton;
import com.fp.armas.portal.model.Tgenecatalogdetail;
import com.fp.armas.portal.model.Tgenecity;
import com.fp.armas.portal.model.Tgenecountry;
import com.fp.armas.portal.model.Tgenefilesdetail;
import com.fp.armas.portal.model.Tgeneparroquia;
import com.fp.armas.portal.model.Tgeneprovince;

import ec.gob.registrocivil.consultacedula.Cedula;
import ec.gov.sri.wsconsultacontribuyente.ContribuyenteCompleto;

/**
 * Datmanager de Registro
 * 
 * @author dcruz
 *
 */
@ManagedBean
@SessionScoped
public class RegistroDataManager extends BaseDataManager implements Serializable {

	private static final long serialVersionUID = 6160075453173774293L;
	
	private Collection<Tgenecountry> paisesColl;
	
	private Collection<Tgeneprovince> provinciasColl;
	
	private Collection<Tgenecanton> cantonColl;
	
	private Collection<Tgeneparroquia> parroquiaColl;
	
	private Collection<Tgenecity> ciudadColl;
	
	private Collection<Tgenecatalogdetail> tipoDocumentoColl;
	
	private Collection<Tgenecatalogdetail> profesionColl;
	
	private Collection<Tgenecatalogdetail> estadoCivilColl;
	
	private Collection<Tgeneactivity> actividadEconomicaColl;
	
	private Tcustpersondetail persona;
	
	private Tcustpersonaddress direccionPersona;
	
	private Tcustpersonaddress correoPersona;
	
	private Tcustpersonphone telefonoPersona;
	
	private Tcustpersonphone telefonoCelular;
	
	private Tcustpeople adicionalPersona;
	
	private Tcustcompany compania;
	
	private Tgenefilesdetail foto;
	
	private StreamedContent contenidoFoto;
	
	private Cedula cedulaSnap;
	
	private ContribuyenteCompleto rucSnap;
	
	private Integer tamDocIndentificacion = 15;
	
	private String tipoMascaraIdentificacion = "alphanum";
	
	private boolean existeCedula = false;
	
	public RegistroDataManager(){
		
	}
	
	public Collection<Tgenecountry> getPaisesColl() {
		return paisesColl;
	}

	public void setPaisesColl(Collection<Tgenecountry> paisesColl) {
		this.paisesColl = paisesColl;
	}

	public Collection<Tgenecanton> getCantonColl() {
		return cantonColl;
	}

	public void setCantonColl(Collection<Tgenecanton> cantonColl) {
		this.cantonColl = cantonColl;
	}

	public Collection<Tgeneparroquia> getParroquiaColl() {
		return parroquiaColl;
	}

	public void setParroquiaColl(Collection<Tgeneparroquia> parroquiaColl) {
		this.parroquiaColl = parroquiaColl;
	}

	public Tcustpersondetail getPersona() {
		return persona;
	}

	public void setPersona(Tcustpersondetail persona) {
		this.persona = persona;
	}

	public Collection<Tgenecity> getCiudadColl() {
		return ciudadColl;
	}

	public void setCiudadColl(Collection<Tgenecity> ciudadColl) {
		this.ciudadColl = ciudadColl;
	}

	public Collection<Tgenecatalogdetail> getTipoDocumentoColl() {
		return tipoDocumentoColl;
	}

	public void setTipoDocumentoColl(
			Collection<Tgenecatalogdetail> tipoDocumentoColl) {
		this.tipoDocumentoColl = tipoDocumentoColl;
	}

	public Collection<Tgenecatalogdetail> getProfesionColl() {
		return profesionColl;
	}

	public void setProfesionColl(Collection<Tgenecatalogdetail> profesionColl) {
		this.profesionColl = profesionColl;
	}

	public Tcustpersonaddress getDireccionPersona() {
		return direccionPersona;
	}

	public void setDireccionPersona(Tcustpersonaddress direccionPersona) {
		this.direccionPersona = direccionPersona;
	}

	public Collection<Tgeneactivity> getActividadEconomicaColl() {
		return actividadEconomicaColl;
	}

	public void setActividadEconomicaColl(
			Collection<Tgeneactivity> actividadEconomicaColl) {
		this.actividadEconomicaColl = actividadEconomicaColl;
	}

	public Collection<Tgeneprovince> getProvinciasColl() {
		return provinciasColl;
	}

	public void setProvinciasColl(Collection<Tgeneprovince> provinciasColl) {
		this.provinciasColl = provinciasColl;
	}

	public Tcustpersonphone getTelefonoPersona() {
		return telefonoPersona;
	}

	public void setTelefonoPersona(Tcustpersonphone telefonoPersona) {
		this.telefonoPersona = telefonoPersona;
	}

	public Tcustpersonphone getTelefonoCelular() {
		return telefonoCelular;
	}

	public void setTelefonoCelular(Tcustpersonphone telefonoCelular) {
		this.telefonoCelular = telefonoCelular;
	}

	public Collection<Tgenecatalogdetail> getEstadoCivilColl() {
		return estadoCivilColl;
	}

	public void setEstadoCivilColl(Collection<Tgenecatalogdetail> estadoCivilColl) {
		this.estadoCivilColl = estadoCivilColl;
	}

	public Tcustpeople getAdicionalPersona() {
		return adicionalPersona;
	}

	public void setAdicionalPersona(Tcustpeople adicionalPersona) {
		this.adicionalPersona = adicionalPersona;
	}

	public Tcustpersonaddress getCorreoPersona() {
		return correoPersona;
	}

	public void setCorreoPersona(Tcustpersonaddress correoPersona) {
		this.correoPersona = correoPersona;
	}

	public Integer getTamDocIndentificacion() {
		return tamDocIndentificacion;
	}

	public void setTamDocIndentificacion(Integer tamDocIndentificacion) {
		this.tamDocIndentificacion = tamDocIndentificacion;
	}

	public String getTipoMascaraIdentificacion() {
		return tipoMascaraIdentificacion;
	}

	public void setTipoMascaraIdentificacion(String tipoMascaraIdentificacion) {
		this.tipoMascaraIdentificacion = tipoMascaraIdentificacion;
	}

	public boolean isExisteCedula() {
		return existeCedula;
	}

	public void setExisteCedula(boolean existeCedula) {
		this.existeCedula = existeCedula;
	}

	public Tcustcompany getCompania() {
		return compania;
	}

	public void setCompania(Tcustcompany compania) {
		this.compania = compania;
	}

	public Tgenefilesdetail getFoto() {
		return foto;
	}

	public void setFoto(Tgenefilesdetail foto) {
		this.foto = foto;
	}

	public StreamedContent getContenidoFoto() {
		if(foto.getImage() != null){
			contenidoFoto = new DefaultStreamedContent(new ByteArrayInputStream(foto.getImage()));
		}
		return contenidoFoto;
	}

	public void setContenidoFoto(StreamedContent contenidoFoto) {
		this.contenidoFoto = contenidoFoto;
	}

	public Cedula getCedulaSnap() {
		return cedulaSnap;
	}

	public void setCedulaSnap(Cedula cedulaSnap) {
		this.cedulaSnap = cedulaSnap;
	}

	public ContribuyenteCompleto getRucSnap() {
		return rucSnap;
	}

	public void setRucSnap(ContribuyenteCompleto rucSnap) {
		this.rucSnap = rucSnap;
	}

}
