maia_modificado/.svn/pristine/a2/a2f3a4321ac0f567481d3f57147...

238 lines
9.1 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 java.util.Map;
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.primefaces.event.SelectEvent;
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;
@ManagedBean (name="reporteTipoArmasController")
@ViewScoped
public class ReporteTipoArmasController extends AbstractController<AbstractDataTransport> {
private static final long serialVersionUID = 1L;
@ManagedProperty(value = "#{reportController}")
private ReportController reportController;
private List<TgeneCatalogDetail> lestados;
private TsafeUserDetail userDetail;
/**
* INSTITUCION A LA QUE PERTENECE
*/
private String institucionCentroControl;
/**
* VARIABLES PARA EL REPORTE
*/
private Date fechainicial;
private Date fechafinal;
private String estado;
private TcustPersonDetail customerperson;
@PostConstruct
private void postconstruct() {
this.init();
}
public ReporteTipoArmasController() throws Exception {
super(AbstractDataTransport.class);
}
/**
* Incializa el controlador, cuando se esta utilizando una pagina que utliza el controlador.
*/
private void init() {
try {
this.lrecord = new ArrayList<>();
this.beanalias = "REPORTETIPOARMAS";
lestados = CatalogDetailController.find("ESTADOARMA");
userDetail=(TsafeUserDetail)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL");
estado="";
obtenerCentroControl();
} catch (Exception e) {
MessageHelper.setMessageError(e);
}
}
/**
* Metodo que se debe ejecutar cuando es una transaccion de tipo verificar armas
* @throws Exception
*/
private void obtenerCentroControl() throws Exception {
TsafeUserDetail tsafeUserDetail = (TsafeUserDetail) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL");
PersonAddressController personAddressController = new PersonAddressController();
TcustPersonAddress tcustPersonAddres=personAddressController.findPrincipal(tsafeUserDetail.getPk().getPersoncode().toString());
TarmCentroControlJur centroControlJur= TarmCentroControlJurController.findxProvincia(tcustPersonAddres.getProvincecode());
TarmCentroControl centroControl= CentroControlArmasController.findPorCodigo(centroControlJur.getCcentrocontrol());
institucionCentroControl = CatalogDetailController.findxCodigoCodcatalogo( centroControl.getNombreinstitucion(), centroControl.getNombreinstitucioncodigo()).getDescription();
}
@Override
protected void querydatabase() {
}
/**
* Abre el Lov de Persona
*/
public void openPersonLov() {
Map<String, List<String>> params = new HashMap<>();
PersonLovController.openLov(params);
}
/**
* Carga los datos que se devuelven en el Lov de personas
* @param event
* @throws Exception
*/
public void onReturnPersonLov(SelectEvent event) throws Exception {
setCustomerperson( (TcustPersonDetail) event.getObject());
}
/**
* Graba los registros en la base de datos
*/
@Override
public void save() {
}
public void generarReporte(){
if(fechainicial.getTime()>fechafinal.getTime()){
MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_fechafinal"));
return;
}
String filtro=" ";
String path = "armas/reports/reporteTipoArmas";
if(customerperson!=null){
filtro=" and tarma.cregistro in "
+ " (select regarma.cregistro from tarmregistroarmas regarma where regarma.personcode='"+customerperson.getPk().getPersoncode()+"')";
}
if(estado!=null && !estado.equals("")){
if(estado.equals("APTA")){
filtro+=" and tarma.carma in (select carma from tarmarmapruebas p "
+ " where p.carmaprueba=(select max(prue.carmaprueba)"
+ " from tarmarmapruebas prue where prue.apruebaevaluacion='Y' and prue.carma in(select codar.carma from tarmarmas codar"
+ " where codar.codigoarma =(select ar.codigoarma from tarmarmas ar where carma=tarma.carma) ))) ";
}
else{
filtro+=" and tarma.estado='"+estado+"' ";
}
}else{
filtro+=" and tarma.estado!='VEND' and tarma.estado!='MING' and tarma.estado!='DUPL'";
}
//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");
try {
//Usuario logueado en la aplicacion
String nombreUsuario;
if(userDetail.getPk().getPersoncode()!=null){
nombreUsuario = PersonDetailController.find(userDetail.getPk().getPersoncode().toString()).getName();
parameters.put("personcode", userDetail.getPk().getPersoncode());
}
else{
nombreUsuario = "";
}
//filtro = "where tarma.personcode='1138'";
parameters.put("filtro", filtro);
SimpleDateFormat fechatxt=new SimpleDateFormat("dd/MM/yyyy");
parameters.put("fechainicial", fechatxt.format(fechainicial));
parameters.put("fechafinal", fechatxt.format(fechafinal));
parameters.put("usuario", nombreUsuario);
parameters.put("unidadmilitar", institucionCentroControl);
String format="xlsx";
String filename= MsgControlArmas.getProperty("lbl_nombreexcel");
//Fecha actual
Calendar fechaActualCldr = Calendar.getInstance();
StringBuilder fechaActualSB = new StringBuilder();
fechaActualSB = fechaActualSB.append((fechaActualCldr.get(Calendar.DAY_OF_MONTH)) <= 9 ? "0" + (fechaActualCldr.get(Calendar.DAY_OF_MONTH)) : (fechaActualCldr.get(Calendar.DAY_OF_MONTH)));
fechaActualSB = fechaActualSB.append("-").append((fechaActualCldr.get(Calendar.MONTH)+1) <= 9 ? "0" + (fechaActualCldr.get(Calendar.MONTH) + 1) : (fechaActualCldr.get(Calendar.MONTH)+1));
fechaActualSB = fechaActualSB.append("-").append(fechaActualCldr.get(Calendar.YEAR));
fechaActualSB = fechaActualSB.append(" ").append(fechaActualCldr.get(Calendar.HOUR_OF_DAY));
fechaActualSB = fechaActualSB.append(":").append((fechaActualCldr.get(Calendar.MINUTE)) <= 9 ? "0" + (fechaActualCldr.get(Calendar.MINUTE)) : (fechaActualCldr.get(Calendar.MINUTE)));
parameters.put("lugarfecha", fechaActualSB.toString());
this.reportController.executeXls(path, parameters, format, filename, this.getLoginController());
} catch (Exception ex) {
MessageHelper.setMessageError(ex);
}
}
public TcustPersonDetail getCustomerperson() {
return customerperson;
}
public void setCustomerperson(TcustPersonDetail customerperson) {
this.customerperson = customerperson;
}
public List<TgeneCatalogDetail> getLestados() {
return lestados;
}
public void setLestados(List<TgeneCatalogDetail> lestados) {
this.lestados = lestados;
}
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 getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
}