maia/.svn/pristine/e1/e18e211c76174432242cd8e7d4b...

256 lines
6.9 KiB
Plaintext
Executable File

package com.fp.frontend.controller.bpm;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
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 com.fp.dto.AbstractDataTransport;
import com.fp.dto.Request;
import com.fp.dto.Response;
import com.fp.frontend.controller.AbstractController;
import com.fp.frontend.controller.ReportController;
import com.fp.frontend.controller.pgeneral.date.TgeneAccountingDateBranchController;
import com.fp.frontend.controller.pgeneral.gene.ParametersController;
import com.fp.frontend.controller.security.LoginController;
import com.fp.frontend.helper.MessageHelper;
import com.fp.persistence.pcustomer.gene.TcustPersonDetail;
import com.fp.persistence.pgeneral.gene.TgeneParameters;
import com.fp.persistence.pgeneral.safe.TsafeUserDetail;
/**
* Clase controladora para exportar flujos.
*
* @author WPA
* @version 2.1
*/
@SuppressWarnings("serial")
@ManagedBean
@ViewScoped
public class ExportFlowsController extends AbstractController<AbstractDataTransport> {
public ExportFlowsController() throws Exception {
super(AbstractDataTransport.class);
}
@PostConstruct
private void postconstruct() {
this.init();
this.initDates();
// Inicializa autoconsulta
super.startQuery();
}
/**
* Atributo fecha desde
*/
private Date fromdate;
/**
* Atributo fecha hasta
*/
private Date todate;
@ManagedProperty(value = "#{reportController}")
private ReportController reportController;
private String solicitud;
private Date fec_actual;
private String codCentroControl;
private TcustPersonDetail customerperson;
private TsafeUserDetail userDetail;
private TsafeUserDetail tsafeUserDetailUsuario = null;
@ManagedProperty(value = "#{logincontroller}")
private LoginController logincontroller;
/**
* Incializa el controlador, cuando se esta utilizando una pagina que utliza el controlador.
*/
private void init() {
try {
this.recperpage = 10; // Cambiar al # reg a mirar.
this.lrecord = new ArrayList<>();
//this.beanalias = "TBPM";
this.beanalias = "REPORTE";
this.tsafeUserDetailUsuario = (TsafeUserDetail) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL");
} catch (Exception e) {
MessageHelper.setMessageError(e);
}
}
@Override
protected void querydatabase() {
MessageHelper.setMessageError("msg_notQuery");
return;
}
@Override
public void save(){
MessageHelper.setMessageError("msg_notSave");
return;
}
/**
* Ejecuta un QueryAlias
*/
public void getFileContent(){
byte[] file = null;
try {
Request request = this.callerhelper.getRequest();
request.put("queryalias", "EXPORTBPM");
request.put("querytype", "P");
request.put("creationdate", this.fromdate);
request.put("enddate", this.todate);
Response resp = this.callerhelper.executeQuery(request);
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) {
MessageHelper.setMessageError(resp);
} else {
file = (byte[])resp.get("file");
super.downloadFile(file, (String)resp.get("contentType"), (String)resp.get("extension"));
}
} catch (Throwable e) {
MessageHelper.setMessageError(e);
}
}
/**
* Inicializa las fechas
*/
private void initDates() {
int val = this.getAniosParameter();
Calendar calendar = Calendar.getInstance();
// calendar.setTime(this.getWorkingDate());
this.todate = calendar.getTime();
calendar.add(Calendar.YEAR, -val);
calendar.add(Calendar.DATE, -1);
this.fromdate = calendar.getTime();
}
/**
* Entrega la fecha de trabajo de la aplicacin.
* @return Fecah Fecha de trabajo.
* @throws Exception
*/
private Date getWorkingDate() {
Date workingDate = null;
try{
TgeneAccountingDateBranchController c = new TgeneAccountingDateBranchController();
c.getMfilters().clear();
c.getMfilters().put("pk.branchcode", "0");
c.getMfilters().put("pk.companycode", super.getLoginController().getRequest().getCompany().toString());
c.query();
workingDate = c.getRecord().getWorkingdate();
}catch(Exception ex){
//
}
return workingDate;
}
/**
* Obtiene el valor del n&uacute;mero de anios m&aacute;ximos para la consulta de flujos
* @return value
*/
private Integer getAniosParameter(){
Integer value = null;
TgeneParameters parameter = ParametersController.find("MAX_BACK", super.getLoginController().getRequest().getCompany().toString());
if(parameter!=null){
value = parameter.getNumbervalue().intValue();
}else value = 1;
return value;
}
/**
* Entrega la fecha desde
* @return formdate Fecha desde
*/
public Date getFromdate() {
return fromdate;
}
/**
* Fija la fecha desde
* @param formdate Fecha desde
*/
public void setFromdate(Date fromdate) {
this.fromdate = fromdate;
}
/**
* Entrega la fecha hasta
* @return formdate Fecha hasta
*/
public Date getTodate() {
return todate;
}
/**
* Fija la fecha hasta
* @param fromdate Fecha hasta
*/
public void setTodate(Date todate) {
this.todate = todate;
}
public ReportController getReportController() {
return reportController;
}
public void setReportController(ReportController reportController) {
this.reportController = reportController;
}
public String getSolicitud() {
return solicitud;
}
public void setSolicitud(String solicitud) {
this.solicitud = solicitud;
}
public LoginController getLogincontroller() {
return logincontroller;
}
public void setLogincontroller(LoginController logincontroller) {
this.logincontroller = logincontroller;
}
public void reporteFlujoSolicitudXls() {
try {
String gradoUsuario ="";
String path = "general/reports/flujoSolicitud";
//String filename=MsgControlArmas.getProperty("lbl_tramitesXcentro");
String filename="reporte";
//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("solicitud", solicitud);
String format = "xls";
try {
this.reportController.executeXls(path, parameters, format, filename, this.getLoginController());
} catch (Exception ex) {
MessageHelper.setMessageError(ex);
}
} catch (Exception ex) {
MessageHelper.setMessageError(ex);
}
}
}