package br.com.ec.controller.managedbean;
import java.io.Serializable;
import javax.inject.Inject;
import javax.inject.Named;
import org.springframework.context.annotation.Scope;
import br.com.ec.core.generic.GenericService;
import br.com.ec.core.util.DataUtils;
import br.com.ec.core.util.VerificadorUtil;
import br.com.ec.domain.dto.ParametrosFecharCaixaDTO;
import br.com.ec.domain.model.Loja;
import br.com.ec.domain.service.fecharcaixa.FecharCaixaService;
import br.com.ec.domain.service.loja.LojaService;
import br.com.ec.web.generic.AbstractBean;
@Named
@Scope
("view")
public class FecharCaixaBean
extends AbstractBean
<ParametrosFecharCaixaDTO
> implements Serializable {
private static final long serialVersionUID = 1L
;
private ParametrosFecharCaixaDTO parametrosFecharCaixaDTO
;
private Loja lojaSelecionada
;
private FecharCaixaService fecharCaixaService
;
private LojaService lojaService
;
@Inject
public FecharCaixaBean
(FecharCaixaService fecharCaixaService, LojaService lojaService
) {
this.
fecharCaixaService = fecharCaixaService
;
this.
lojaService = lojaService
;
}
@
Override
public void preCarregamento
() {
limparEntidade
();
}
@
Override
public void limparEntidade
() {
parametrosFecharCaixaDTO =
new ParametrosFecharCaixaDTO
();
parametrosFecharCaixaDTO.
setDataVendas(DataUtils.
getDataAtual());
parametrosFecharCaixaDTO.
setLoja(getLojaSelecionada
());
}
@
Override
public GenericService
<ParametrosFecharCaixaDTO
> getService
() {
return fecharCaixaService
;
}
@
Override
public ParametrosFecharCaixaDTO getId
() {
return null;
}
public ParametrosFecharCaixaDTO getParametrosFecharCaixaDTO
() {
return parametrosFecharCaixaDTO
;
}
public void setParametrosFecharCaixaDTO
(ParametrosFecharCaixaDTO parametrosFecharCaixaDTO
) {
this.
parametrosFecharCaixaDTO = parametrosFecharCaixaDTO
;
}
public Loja getLojaSelecionada
() {
if (VerificadorUtil.
estaNulo(lojaSelecionada
)) {
Loja loja =
new Loja
();
loja.
setSequencial(new Long(getParametro
("sequencialLoja").
toString()));
lojaSelecionada = lojaService.
consultarPorId(loja
);
}
return lojaSelecionada
;
}
public void setLojaSelecionada
(Loja lojaSelecionada
) {
this.
lojaSelecionada = lojaSelecionada
;
}
public void prepararFechamentoCaixa
(Loja loja
) {
getParametrosFecharCaixaDTO
().
setLoja(getLojaSelecionada
());
setParametrosFecharCaixaDTO
(fecharCaixaService.
iniciarFechamentoCaixa(getParametrosFecharCaixaDTO
()));
}
public void realizarFechamentoDoCaixa
() {
fecharCaixaService.
realizarFechamentoDoCaixa(getParametrosFecharCaixaDTO
().
getListaVendas());
fecharCaixaService.
enviarEmailResumoDoDia(getLojaSelecionada
());
limparEntidade
();
}
}