238 lines
6.9 KiB
Plaintext
Executable File
238 lines
6.9 KiB
Plaintext
Executable File
package com.fp.frontend.controller.armas.solicitud;
|
||
|
||
import java.util.ArrayList;
|
||
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.primefaces.event.FileUploadEvent;
|
||
import org.primefaces.model.UploadedFile;
|
||
|
||
import com.fp.dto.Request;
|
||
import com.fp.dto.Response;
|
||
import com.fp.dto.query.DtoQuery;
|
||
import com.fp.dto.save.DtoSave;
|
||
import com.fp.frontend.controller.AbstractController;
|
||
import com.fp.frontend.controller.alfresco.AlfrescoController;
|
||
import com.fp.frontend.helper.MessageHelper;
|
||
import com.fp.persistence.parmas.soli.TarmSolicitudTramite;
|
||
import com.fp.persistence.pgeneral.safe.TsafeUserDetail;
|
||
|
||
/**
|
||
* Clase controladora del bean TarmSolicitudTramite.
|
||
* Se reemplaza el archivo de deposito, se filtra por el codigo de solicitud
|
||
* @author C.P.
|
||
* @version 2.1
|
||
*/
|
||
@SuppressWarnings("serial")
|
||
@ManagedBean
|
||
@ViewScoped
|
||
public class SolicitudCambioDepositoController extends AbstractController<TarmSolicitudTramite> {
|
||
|
||
public SolicitudCambioDepositoController() throws Exception {
|
||
super(TarmSolicitudTramite.class);
|
||
}
|
||
|
||
/**
|
||
* Variable que nos permite cargar el documento al Alfresco
|
||
*/
|
||
private UploadedFile uploadedFile;
|
||
|
||
@ManagedProperty(value = "#{alfrescoController}")
|
||
private AlfrescoController alfrescoController;
|
||
|
||
@PostConstruct
|
||
private void postconstruct() {
|
||
this.init();
|
||
// Inicializa autoconsulta
|
||
super.startQuery();
|
||
|
||
}
|
||
|
||
/**
|
||
* Incializa el controlador, cuando se esta utilizando una pagina que utliza el controlador.
|
||
*/
|
||
private void init() {
|
||
try {
|
||
this.recperpage = 15; // Cambiar al # reg a mirar.
|
||
this.lrecord = new ArrayList<>();
|
||
this.beanalias = "SOLICITUDDEPOSITO";
|
||
} catch (Exception e) {
|
||
MessageHelper.setMessageError(e);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Crea una instancia de TgeneTransactionProcess y marca el registro como nuevo.
|
||
*
|
||
* @throws Exception
|
||
*/
|
||
@Override
|
||
public void create() throws Exception {
|
||
super.create();
|
||
}
|
||
|
||
@SuppressWarnings("unchecked")
|
||
@Override
|
||
protected void querydatabase() {
|
||
try {
|
||
if(getMfilters().get("numerotramite")==null &&
|
||
getMfilters().get("numerotramite").toString().trim().isEmpty()){
|
||
MessageHelper.setMessageError("Ingrese el c<>digo de solicitud");
|
||
return;
|
||
}
|
||
DtoQuery dto = super.getDtoQuery(true);
|
||
dto.setOrderby("t.pk");
|
||
|
||
HashMap<String, DtoQuery> mtables = new HashMap<String, DtoQuery>();
|
||
mtables.put(this.beanalias, dto); // permite adicionar mas de una tabla.
|
||
|
||
Request request = this.callerhelper.getRequest();
|
||
request.setQueryTables(mtables);
|
||
|
||
Response resp = this.callerhelper.executeQuery(request);
|
||
|
||
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) {
|
||
this.lrecord = new ArrayList<TarmSolicitudTramite>();
|
||
MessageHelper.setMessageError(resp);
|
||
} else {
|
||
this.lrecord = (List<TarmSolicitudTramite>) resp.get(this.beanalias);
|
||
super.postQuery(this.lrecord);
|
||
}
|
||
|
||
} catch (Throwable e) {
|
||
MessageHelper.setMessageError(e);
|
||
}
|
||
}
|
||
|
||
@Override
|
||
public void save() {
|
||
try {
|
||
DtoSave dtosave = super.getDtoSave();
|
||
dtosave.setReturnpk(true);
|
||
HashMap<String, DtoSave> msave = new HashMap<String, DtoSave>();
|
||
|
||
Request request = this.callerhelper.getRequest();
|
||
msave.put(this.beanalias, dtosave);
|
||
|
||
request.setSaveTables(msave);
|
||
Response resp = this.callerhelper.executeSave(request);
|
||
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) {
|
||
this.postCommit(resp);
|
||
MessageHelper.setMessageInfo(resp);
|
||
} else {
|
||
MessageHelper.setMessageError(resp);
|
||
}
|
||
} catch (Throwable e) {
|
||
MessageHelper.setMessageError(e);
|
||
}
|
||
}
|
||
|
||
@Override
|
||
public void update(){
|
||
try {
|
||
String pathRuta="";
|
||
|
||
String xPathLocation= getRutaDocumentoSolBase(record.getXpathcomprobante());
|
||
if(uploadedFile!=null && uploadedFile.getFileName()!=null){
|
||
String nombreArchivo = uploadedFile.getFileName();
|
||
if(alfrescoController.uploadFile(uploadedFile.getInputstream(),nombreArchivo, xPathLocation)){
|
||
pathRuta=xPathLocation + "/cm:" + nombreArchivo;
|
||
record.setXpathcomprobanteorignal(record.getXpathcomprobante());
|
||
record.setXpathcomprobante(pathRuta);
|
||
TsafeUserDetail userDetail=(TsafeUserDetail)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL");
|
||
record.setUsuariocambio(userDetail.getNickname());
|
||
super.update();
|
||
}else{
|
||
MessageHelper.setMessageError("Adjunte el documento");
|
||
return;
|
||
}
|
||
}else{
|
||
MessageHelper.setMessageError("Adjunte el documento");
|
||
return;
|
||
}
|
||
save();
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Retorna la ruta base donde se almacenara dicho archivo
|
||
*
|
||
* @return
|
||
*/
|
||
public String getRutaDocumentoSolBase(String xpath) {
|
||
int index = xpath.lastIndexOf('/');
|
||
xpath = xpath.substring(0,index);
|
||
xpath = xpath+"/cm:Cambio";
|
||
System.out.println(xpath);
|
||
return xpath;
|
||
}
|
||
|
||
/**
|
||
* Metodo que retorna la extencion del documento que se desea subir al alfresco
|
||
*/
|
||
public String getNombre(String ruta) {
|
||
int index = ruta.lastIndexOf('/');
|
||
if (index == -1) {
|
||
return "cambiodocumento.jpg";
|
||
} else {
|
||
return (ruta.substring(index + 1)).replace("cm:", "");
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Carga el archivo a grabar en la memoria para su posterior persistencia en el Alfresco
|
||
*/
|
||
public void handleUpload(FileUploadEvent event){
|
||
uploadedFile = event.getFile();
|
||
}
|
||
|
||
/**
|
||
* Recorta el nombre del archivo a cargarse
|
||
* @param nombre
|
||
* @return nombre recortado
|
||
*/
|
||
public String recorteNombre(String nombre){
|
||
String fielname=nombre;
|
||
if(fielname.length()>30){
|
||
fielname=fielname.substring(0,30)+extencionArchivo(nombre);
|
||
}
|
||
return fielname;
|
||
}
|
||
|
||
/**
|
||
* Obtiene la extencion del archivo a cargar
|
||
* @param nombre
|
||
* @return
|
||
*/
|
||
private String extencionArchivo(String nombre){
|
||
int pos=nombre.lastIndexOf('.');
|
||
nombre=nombre.substring(pos);
|
||
return nombre;
|
||
}
|
||
|
||
public UploadedFile getUploadedFile() {
|
||
return uploadedFile;
|
||
}
|
||
|
||
public void setUploadedFile(UploadedFile uploadedFile) {
|
||
this.uploadedFile = uploadedFile;
|
||
}
|
||
|
||
public AlfrescoController getAlfrescoController() {
|
||
return alfrescoController;
|
||
}
|
||
|
||
public void setAlfrescoController(AlfrescoController alfrescoController) {
|
||
this.alfrescoController = alfrescoController;
|
||
}
|
||
|
||
}
|