maia/.svn/pristine/b0/b0bfcf670f233e0b072f5e20243...

401 lines
13 KiB
Plaintext
Executable File

package com.fp.frontend.controller.armas.funcionalidad;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.eclipse.jdt.core.dom.ThisExpression;
import com.fp.dto.AbstractDataTransport;
import com.fp.frontend.controller.AbstractController;
import com.fp.frontend.controller.ReportController;
import com.fp.frontend.controller.armas.parametros.CentroControlArmasController;
import com.fp.frontend.controller.armas.parametros.TarmCentroControlJurController;
import com.fp.frontend.controller.pcustomer.PersonAddressController;
import com.fp.frontend.controller.pcustomer.PersonDetailController;
import com.fp.frontend.controller.pcustomer.lov.PersonLovController;
import com.fp.frontend.controller.pgeneral.gene.CatalogDetailController;
import com.fp.frontend.helper.MessageHelper;
import com.fp.frontend.utility.MsgControlArmas;
import com.fp.persistence.parmas.param.TarmCentroControl;
import com.fp.persistence.parmas.param.TarmCentroControlJur;
import com.fp.persistence.pcustomer.gene.TcustPersonAddress;
import com.fp.persistence.pcustomer.gene.TcustPersonDetail;
import com.fp.persistence.pgeneral.gene.TgeneCatalogDetail;
import com.fp.persistence.pgeneral.safe.TsafeUserDetail;
/**
* @author DLO
* Clase Controladora la cual genera el reporte de trámite por centro de control
*/
@ManagedBean
@ViewScoped
public class ReporteTramiteCentroController extends AbstractController<AbstractDataTransport> {
public ReporteTramiteCentroController() throws Exception {
super(AbstractDataTransport.class);
// TODO Auto-generated constructor stub
}
private static final long serialVersionUID = 1L;
@ManagedProperty(value = "#{reportController}")
private ReportController reportController;
@ManagedProperty(value = "#{personDetailController}")
private PersonDetailController personDetailController;
@ManagedProperty(value = "#{centroControlController}")
private CentroControlArmasController centroControlController;
private TcustPersonDetail customerperson;
private TsafeUserDetail userDetail;
private TcustPersonDetail responsableCentroControl= null;
private TsafeUserDetail tsafeUserDetailUsuario = null;
private TarmCentroControl centroControl = new TarmCentroControl();
private List<TgeneCatalogDetail> lcentros = null;
private List<TgeneCatalogDetail> lestados = null;
private String institucionCentroControl="";
private Date fechainicial;
private Date fechafinal;
private String filtro="";
private String filtro2="";
private String idCentroControl;
private String estado;
private Date fec_actual;
private String estadoDoc;
public String getInstitucionCentroControl() {
return institucionCentroControl;
}
@PostConstruct
private void postconstruct() {
this.init();
// Inicializa autoconsulta
}
/**
* Incializa el controlador, cuando se esta utilizando una pagina que utliza el controlador.
*/
private void init() {
try {
this.lrecord = new ArrayList<>();
this.beanalias = "REPORTE";
lcentros = CatalogDetailController.find("NOMBREINSTITUCION");
this.lestados = CatalogDetailController.find("ESTADODOCUMENTO");
this.responsableCentroControl = new TcustPersonDetail();
this.tsafeUserDetailUsuario = new TsafeUserDetail();
//this.obtenerResponsableCentroControl();
this.idCentroControl="";
this.estadoDoc ="";
} catch (Exception e) {
MessageHelper.setMessageError(e);
}
}
/**
* Obtiene el centro de control segun usurio logeado.
* @throws Exception
*
*/
private String obtenerCentroControl() throws Exception {
this.tsafeUserDetailUsuario = (TsafeUserDetail) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL");
PersonAddressController personAddressController = new PersonAddressController();
TcustPersonAddress tcustPersonAddres=personAddressController.findPrincipal(tsafeUserDetailUsuario.getPk().getPersoncode().toString());
if(tcustPersonAddres!=null && tcustPersonAddres.getProvincecode()!=null){
TarmCentroControlJur centroControlJur= TarmCentroControlJurController.findxProvincia(tcustPersonAddres.getProvincecode());
centroControl= CentroControlArmasController.findPorCodigo(centroControlJur.getCcentrocontrol());
return CatalogDetailController.findxCodigoCodcatalogo( centroControl.getNombreinstitucion(), centroControl.getNombreinstitucioncodigo()).getDescription();
}
else{
return "";
}
}
/**
* Obtiene el responsable del Centro de Control
*/
public void obtenerResponsableCentroControl(){
Integer responsable = this.centroControl.getPersoncode();
this.responsableCentroControl = PersonDetailController.find(responsable.toString());
}
@Override
protected void querydatabase() {
}
/**
* Graba los registros en la base de datos
*/
@Override
public void save() {
}
/**
* Obtiene el reporte de Ficha de Armas
*/
public void reporteTramitesCentro() {
try {
if(this.fechainicial.getTime()>this.fechafinal.getTime()){
MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_fechafinal"));
return;
}
String gradoUsuario ="";
String path = "armas/reports/reporteTremiteXCentro";
String filename=MsgControlArmas.getProperty("lbl_tramitesXcentro");
//String filename="reporte";
// Datos del centro de control del usuario logueado
institucionCentroControl = obtenerCentroControl();
//Fija parametros del report.
HashMap<String, Object> parameters = new HashMap<>();
parameters.put("pathLogoIzquierda", "repo:/maia/1/image/comandoconjunto");
parameters.put("pathLogoDerecha", "repo:/maia/1/image/selloarmas");
parameters.put("centroControl", institucionCentroControl);
//Centro de control
parameters.put("centroControl", this.obtenerCentroControl());
//Fecha actual
this.fec_actual = new Date();
SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
parameters.put("fecActual", sdf.format(this.fec_actual));
//usuario
customerperson=PersonDetailController.find(this.tsafeUserDetailUsuario.getPk().getPersoncode().toString());
parameters.put("usuario", customerperson.getName());
//fechas inicial y final que vienen desde el controlador
SimpleDateFormat df=new SimpleDateFormat("dd/MM/yyyy");
parameters.put("fechainicial", df.format(this.fechainicial));
parameters.put("fechafinal", df.format(this.fechafinal));
TarmCentroControl centro =null;
if(!this.idCentroControl.toString().equals("TODOS")){
centro = CentroControlArmasController.findPorCentroControl(this.idCentroControl.toString());
}
// if(centro == null){
// MessageHelper.setMessageInfo("EL CENTRO DE CONTROL DE ARMAS SELECCIONADO NO TIENE DATOS A MOSTRAR");
// return;
// }
if(centro!=null && centro.getPk()!=null && this.idCentroControl.toString()!="TODOS"){
this.filtro = " and h.ccentrocontrol = '"+centro.getPk()+"' ";
parameters.put("filtro", this.filtro);
}else {
parameters.put("filtro", "");
}
if(this.estadoDoc.equals("APR") && this.estadoDoc!=null){
this.filtro2 = " and h.estado = '"+this.estadoDoc+"' ";
parameters.put("filtro2", this.filtro2);
}else if (this.estadoDoc.equals("CAN") && this.estadoDoc!=null) {
this.filtro2 = " and h.estado = '"+this.estadoDoc+"' ";
parameters.put("filtro2", this.filtro2);
}else if (this.estadoDoc.equals("SUS") && this.estadoDoc!=null) {
this.filtro2 = " and h.estado = '"+this.estadoDoc+"' ";
parameters.put("filtro2", this.filtro2);
}else if (this.estadoDoc.equals("FIN") && this.estadoDoc!=null) {
this.filtro2 = " and h.estado = '"+this.estadoDoc+"' ";
parameters.put("filtro2", this.filtro2);
}else {
parameters.put("filtro2", "");
}
String format = "xlsx";
try {
this.reportController.executeXls(path, parameters, format, filename, this.getLoginController());
} catch (Exception ex) {
MessageHelper.setMessageError(ex);
}
} catch (Exception ex) {
MessageHelper.setMessageError(ex);
}
}
public ReportController getReportController() {
return reportController;
}
public void setReportController(ReportController reportController) {
this.reportController = reportController;
}
public TcustPersonDetail getCustomerperson() {
return customerperson;
}
public void setCustomerperson(TcustPersonDetail customerperson) {
this.customerperson = customerperson;
}
public TsafeUserDetail getUserDetail() {
return userDetail;
}
public void setUserDetail(TsafeUserDetail userDetail) {
this.userDetail = userDetail;
}
public TcustPersonDetail getResponsableCentroControl() {
return responsableCentroControl;
}
public void setResponsableCentroControl(
TcustPersonDetail responsableCentroControl) {
this.responsableCentroControl = responsableCentroControl;
}
public TsafeUserDetail getTsafeUserDetailUsuario() {
return tsafeUserDetailUsuario;
}
public void setTsafeUserDetailUsuario(TsafeUserDetail tsafeUserDetailUsuario) {
this.tsafeUserDetailUsuario = tsafeUserDetailUsuario;
}
public TarmCentroControl getCentroControl() {
return centroControl;
}
public void setCentroControl(TarmCentroControl centroControl) {
this.centroControl = centroControl;
}
public Date getFechainicial() {
return fechainicial;
}
public void setFechainicial(Date fechainicial) {
this.fechainicial = fechainicial;
}
public Date getFechafinal() {
return fechafinal;
}
public void setFechafinal(Date fechafinal) {
this.fechafinal = fechafinal;
}
public String getFiltro() {
return filtro;
}
public void setFiltro(String filtro) {
this.filtro = filtro;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
public Date getFec_actual() {
return fec_actual;
}
public void setFec_actual(Date fec_actual) {
this.fec_actual = fec_actual;
}
public void setInstitucionCentroControl(String institucionCentroControl) {
this.institucionCentroControl = institucionCentroControl;
}
public String getIdCentroControl() {
return idCentroControl;
}
public void setIdCentroControl(String idCentroControl) {
this.idCentroControl = idCentroControl;
}
public List<TgeneCatalogDetail> getLcentros() {
return lcentros;
}
public void setLcentros(List<TgeneCatalogDetail> lcentros) {
this.lcentros = lcentros;
}
public PersonDetailController getPersonDetailController() {
return personDetailController;
}
public void setPersonDetailController(
PersonDetailController personDetailController) {
this.personDetailController = personDetailController;
}
public CentroControlArmasController getCentroControlController() {
return centroControlController;
}
public void setCentroControlController(
CentroControlArmasController centroControlController) {
this.centroControlController = centroControlController;
}
public List<TgeneCatalogDetail> getLestados() {
return lestados;
}
public void setLestados(List<TgeneCatalogDetail> lestados) {
this.lestados = lestados;
}
public String getEstadoDoc() {
return estadoDoc;
}
public void setEstadoDoc(String estadoDoc) {
this.estadoDoc = estadoDoc;
}
public StringBuilder armarFormatoFechaSinHora(Calendar fechaCldr){
StringBuilder fechaStr= new StringBuilder();
fechaStr = fechaStr.append((fechaCldr.get(Calendar.DAY_OF_MONTH)) <= 9 ? "0" + (fechaCldr.get(Calendar.DAY_OF_MONTH)) : (fechaCldr.get(Calendar.DAY_OF_MONTH)));
fechaStr = fechaStr.append("-").append((fechaCldr.get(Calendar.MONTH)+1) <= 9 ? "0" + (fechaCldr.get(Calendar.MONTH) + 1) : (fechaCldr.get(Calendar.MONTH)+1));
fechaStr = fechaStr.append("-").append(fechaCldr.get(Calendar.YEAR));
return fechaStr;
}
}