maia/.svn/pristine/56/56d008966f2ecbab6fab1e963af...

185 lines
4.2 KiB
Plaintext
Executable File

package com.fp.frontend.controller.bpm;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
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.pgeneral.date.TgeneAccountingDateBranchController;
import com.fp.frontend.controller.pgeneral.gene.ParametersController;
import com.fp.frontend.helper.MessageHelper;
import com.fp.persistence.pgeneral.gene.TgeneParameters;
/**
* 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;
/**
* 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";
} 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;
}
}