package br.com.ec.controller.managedbean;
import java.io.Serializable;
import javax.inject.Inject;
import javax.inject.Named;
import org.primefaces.model.StreamedContent;
import org.springframework.context.annotation.Scope;
import br.com.ec.controller.managedbean.consultademanda.TransmissaoSngpcConsultaPorDemanda;
import br.com.ec.core.consulta.ParametrosConsulta;
import br.com.ec.core.generic.GenericService;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.dto.anvisa.MensagemSNGPC;
import br.com.ec.domain.model.TransmissaoSngpc;
import br.com.ec.domain.service.anvisa.TransmissaoSngpcService;
import br.com.ec.web.exception.VerificadorLancamentoException;
import br.com.ec.web.exception.VerificadorLancamentoException.CommandRelatorioStreamedContent;
import br.com.ec.web.generic.AbstractBean;
@Named
@Scope
("view")
public class TransmissaoSngpcBean
extends AbstractBean
<TransmissaoSngpc
> implements Serializable {
private static final long serialVersionUID = 1L
;
private TransmissaoSngpcService transmissaoSngpcService
;
private TransmissaoSngpcConsultaPorDemanda lazy
;
@Inject
public TransmissaoSngpcBean
(TransmissaoSngpcService transmissaoSngpcService, TransmissaoSngpcConsultaPorDemanda lazy
) {
this.
transmissaoSngpcService = transmissaoSngpcService
;
this.
lazy = lazy
;
}
@
Override
public void preCarregamento
() {
entidade =
new TransmissaoSngpc
();
parametrosConsulta =
new ParametrosConsulta
<TransmissaoSngpc
>();
parametrosConsulta.
setEntidade(entidade
);
}
@
Override
public void limparEntidade
() {
setEntidade
(new TransmissaoSngpc
());
}
@
Override
public GenericService
<TransmissaoSngpc
> getService
() {
return transmissaoSngpcService
;
}
@
Override
public TransmissaoSngpc getEntidade
() {
return entidade
;
}
@
Override
public TransmissaoSngpc getId
() {
return getEntidade
();
}
public TransmissaoSngpcConsultaPorDemanda getLazy
() {
prepararConsultaDemanda
();
return lazy
;
}
public void setLazy
(TransmissaoSngpcConsultaPorDemanda lazy
) {
this.
lazy = lazy
;
}
public void prepararConsultaDemanda
() {
lazy.
setarParametrosConsulta(getParametrosConsulta
());
}
/***************************************************************/
public void iniciarTransmissao
() {
// CONSULTAR DADOS DA ULTIMA TRANSMISSAO
// SETAR DATA DE INICIO, APOS DATA FINAL DA ULTIMA TRANSMISSAO
setEntidade
(new TransmissaoSngpc
());
}
public void prepararAlteracao
(TransmissaoSngpc transmissaoSngpc
) {
setEntidade
(transmissaoSngpc
);
}
public void gerarXmlTransmissao
() {
if (VerificadorUtil.
naoEstaNulo(getEntidade
())) {
MensagemSNGPC mensagemSNGPC =
new MensagemSNGPC
();
getEntidade
().
setXmlTransmissao(mensagemSNGPC.
gerarXmlTransmissao(getEntidade
()));
}
}
public StreamedContent downloadXmlTransmissao
(final TransmissaoSngpc transmissaoSngpc
) {
return new VerificadorLancamentoException
().
verificarLancamentoException(new CommandRelatorioStreamedContent
() {
@
Override
public StreamedContent execute
() {
return transmissaoSngpcService.
retornarArquivoParaTransmissao(transmissaoSngpc
);
}
});
}
}