package br.com.ec.controller;
import java.io.ByteArrayInputStream;
import java.io.Serializable;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;
import javax.servlet.ServletContext;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;
import org.springframework.context.annotation.Scope;
import br.com.ec.core.util.ArquivoUtil;
import br.com.ec.domain.model.tipos.TipoComissionamento;
import br.com.ec.domain.model.tipos.TipoEscolaridade;
import br.com.ec.domain.model.tipos.TipoEstadoCivil;
import br.com.ec.domain.model.tipos.TipoRacaCor;
import br.com.ec.domain.service.PessoaService;
@Named
@Scope
("view")
public class DocumentosBean
implements Serializable {
private static final long serialVersionUID = 1L
;
private PessoaService pessoaService
;
@Inject
public DocumentosBean
(PessoaService pessoaService
) {
this.
pessoaService = pessoaService
;
}
public TipoEstadoCivil
[] getTiposEstadoCivil
() {
return TipoEstadoCivil.
values();
}
public TipoRacaCor
[] getTiposRacaCor
() {
return TipoRacaCor.
values();
}
public TipoEscolaridade
[] getTiposEscolaridade
() {
return TipoEscolaridade.
values();
}
// public TipoRegimeTributario[] getTiposRegimeTributario() {
// return TipoRegimeTributario.values();
// }
public TipoComissionamento
[] getTiposComissionamento
() {
return TipoComissionamento.
values();
}
/***********************************************************/
public StreamedContent emitirFichaColaboradorEsocial
(Long sequencialPessoa
) throws Exception {
ByteArrayInputStream input =
new ByteArrayInputStream(pessoaService.
emitirFichaColaboradorEsocial((ServletContext
)FacesContext.
getCurrentInstance().
getExternalContext().
getContext(), sequencialPessoa
));
return DefaultStreamedContent.
builder().
contentType(ArquivoUtil.
retornarContentTypeArquivo("doc")).
name("formulario_esocial.doc").
stream(() -
> input
).
build();
}
public StreamedContent emitirSolicitacaoExameAdmissional
(Long sequencialPessoa
) throws Exception {
ByteArrayInputStream input =
new ByteArrayInputStream(pessoaService.
emitirSolicitacaoExameAdmissional((ServletContext
)FacesContext.
getCurrentInstance().
getExternalContext().
getContext(), sequencialPessoa
));
return DefaultStreamedContent.
builder().
contentType(ArquivoUtil.
retornarContentTypeArquivo("docx")).
name("exameAdmissional.docx").
stream(() -
> input
).
build();
}
public StreamedContent emitirSolicitacaoExameDemissional
(Long sequencialPessoa
) throws Exception {
ByteArrayInputStream input =
new ByteArrayInputStream(pessoaService.
emitirSolicitacaoExameDemissional((ServletContext
)FacesContext.
getCurrentInstance().
getExternalContext().
getContext(), sequencialPessoa
));
return DefaultStreamedContent.
builder().
contentType(ArquivoUtil.
retornarContentTypeArquivo("docx")).
name("exameDemissional.docx").
stream(() -
> input
).
build();
}
public StreamedContent emitirSolicitacaoExamePeriodico
(Long sequencialPessoa
) throws Exception {
ByteArrayInputStream input =
new ByteArrayInputStream(pessoaService.
emitirSolicitacaoExamePeriodico((ServletContext
)FacesContext.
getCurrentInstance().
getExternalContext().
getContext(), sequencialPessoa
));
return DefaultStreamedContent.
builder().
contentType(ArquivoUtil.
retornarContentTypeArquivo("docx")).
name("examePeriodico.docx").
stream(() -
> input
).
build();
}
public StreamedContent emitirSolicitacaoAberturaContaBancaria
(Long sequencialPessoa
) throws Exception {
ByteArrayInputStream input =
new ByteArrayInputStream(pessoaService.
emitirSolicitacaoAberturaContaBancaria((ServletContext
)FacesContext.
getCurrentInstance().
getExternalContext().
getContext(), sequencialPessoa
));
return DefaultStreamedContent.
builder().
contentType(ArquivoUtil.
retornarContentTypeArquivo("docx")).
name("aberturaContaBancaria.docx").
stream(() -
> input
).
build();
}
public StreamedContent emitirAdesaoValeTransporte
(Long sequencialPessoa
) throws Exception {
ByteArrayInputStream input =
new ByteArrayInputStream(pessoaService.
emitirAdesaoValeTransporte((ServletContext
)FacesContext.
getCurrentInstance().
getExternalContext().
getContext(), sequencialPessoa
));
return DefaultStreamedContent.
builder().
contentType(ArquivoUtil.
retornarContentTypeArquivo("docx")).
name("adesaoValeTransporte.docx").
stream(() -
> input
).
build();
}
}