maia/.svn/pristine/9a/9a5cbc9073490188fdfd349394d...

223 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 com.fp.dto.Request;
import com.fp.dto.Response;
import com.fp.dto.query.DtoQuery;
import com.fp.dto.query.SubQuery;
import com.fp.dto.save.DtoSave;
import com.fp.frontend.controller.AbstractController;
import com.fp.frontend.helper.MessageHelper;
import com.fp.persistence.parmas.soli.TarmSolicitud;
/**
* Controlador que se encarga del manejo de {@link TarmSolicitud}
* @author dcruz
*
*/
public class SolicitudController extends AbstractController<TarmSolicitud> {
private static final long serialVersionUID = 1L;
public SolicitudController() throws Exception{
super(TarmSolicitud.class);
}
@PostConstruct
public void postConstruct(){
this.init();
// super.startQuery();
}
private void init(){
this.beanalias = "SOLICITUD";
this.recperpage = 15;
}
@SuppressWarnings("unchecked")
@Override
protected void querydatabase() {
try {
DtoQuery dto = super.getDtoQuery(true);
SubQuery qryprovorigen = new SubQuery("TgeneProvince", "description", "provinciaorigen", "i.pk.countrycode = t.cpaisorigen and i.pk.provincecode=t.cprovinciaorigen");
dto.addSubQuery(qryprovorigen);
SubQuery qryctnorigen = new SubQuery("TgeneCanton", "description", "cantonorigen", "i.pk.countrycode = t.cpaisorigen and i.pk.provincecode=t.cprovinciaorigen and i.pk.cantoncode=t.ccantonorigen");
dto.addSubQuery(qryctnorigen);
SubQuery qryprovdest = new SubQuery("TgeneProvince", "description", "provinciadestino", "i.pk.countrycode = t.cpaisdestino and i.pk.provincecode=t.cprovinciadestino");
dto.addSubQuery(qryprovdest);
SubQuery qryctndest = new SubQuery("TgeneCanton", "description", "cantondestino", "i.pk.countrycode = t.cpaisdestino and i.pk.provincecode=t.cprovinciadestino and i.pk.cantoncode=t.ccantondestino");
dto.addSubQuery(qryctndest);
SubQuery qrycprovincecode = new SubQuery("TarmCentroControl", "provincecode", "provincecode", "i.pk = t.ccentrocontrol");
dto.addSubQuery(qrycprovincecode);
//dto.setOrderby("t.nombre");
HashMap<String, DtoQuery> mtables = new HashMap<String, DtoQuery>();
mtables.put(beanalias, dto); // permite adicionar mas de una tabla.
Request request = callerhelper.getRequest();
request.setQueryTables(mtables);
Response resp = callerhelper.executeQuery(request);
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) {
lrecord = new ArrayList<TarmSolicitud>();
MessageHelper.setMessageError(resp);
} else {
lrecord = (List<TarmSolicitud>) resp.get(beanalias);
if(!lrecord.isEmpty()){
record=lrecord.get(0);
}
super.postQuery(lrecord);
}
} catch (Throwable e) {
MessageHelper.setMessageError(e);
}
}
public static List<TarmSolicitud> find() {
return null;
}
public static List<TarmSolicitud> findSolicitudxPersona(String personcode) {
try{
SolicitudController cc = new SolicitudController();
cc.init();
cc.recperpage = 300;
cc.addFilter("personcode",personcode);
cc.querydatabase();
if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) {
return cc.lrecord;
}
return null;
} catch (Throwable e) {
MessageHelper.setMessageError(e);
return null;
}
}
public static TarmSolicitud findSolicitudxcodsolicitud(String csolicitud) {
System.out.println("Codigo de solicitud SolicitudCOntroller.." + csolicitud);
try{
SolicitudController cc = new SolicitudController();
cc.init();
cc.recperpage = 300;
cc.addFilter("pk",csolicitud);
cc.querydatabase();
if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) {
return cc.lrecord.get(0);
}
return null;
} catch (Throwable e) {
MessageHelper.setMessageError(e);
return null;
}
}
/**
* Metodo para encontrar por numero de solicitud
* @param numeroSolicitud
* @return solicitud encontrada con este numero
*/
public static TarmSolicitud findSolicitudxnumerosolicitud(String numeroSolicitud) {
try{
SolicitudController cc = new SolicitudController();
cc.init();
cc.recperpage = 300;
cc.addFilter("numerosolicitud",numeroSolicitud);
cc.querydatabase();
if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) {
return cc.lrecord.get(0);
}
return null;
} catch (Throwable e) {
MessageHelper.setMessageError(e);
return null;
}
}
/**
* Metodo que obtiene una solicitud por el codigo del tramite
* @param csolicitud
* @return
*/
public static TarmSolicitud findSolicitudByCtramite(String ctramite) {
try{
SolicitudController cc = new SolicitudController();
cc.init();
cc.recperpage = 300;
cc.addFilter("ctramite",ctramite);
cc.querydatabase();
if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) {
return cc.lrecord.get(0);
}
return null;
} catch (Throwable e) {
MessageHelper.setMessageError(e);
return null;
}
}
/**
* Find con el cual se valida una persona con una solicitud
* @param personcode
* @param csolicitud
* @return
*/
public static Boolean existeRegistroPersona(Integer personcode, String csolicitud){
try {
SolicitudController cc = new SolicitudController();
cc.init();
cc.recperpage = 300;
cc.addFilter("pk", csolicitud);
cc.addFilter("personcode",personcode.toString());
cc.querydatabase();
if (cc.lrecord != null && !cc.lrecord.isEmpty()) {
return true;
}
return false;
} catch (Throwable e) {
MessageHelper.setMessageError(e);
return false;
}
}
@Override
public void save() {
try {
DtoSave dtosave = super.getDtoSave();
dtosave.setReturnpk(true); // Para que el core devuelva el pk de los registros nuevos.
HashMap<String, DtoSave> msave = new HashMap<String, DtoSave>();
Request request = callerhelper.getRequest();
msave.put(beanalias, dtosave); // adicionar metadata de mantenimiento para cada tabla.
request.setSaveTables(msave);
Response resp = 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);
}
}
public void updateSolicitud(TarmSolicitud bean) throws Exception{
this.beanalias = "SOLICITUD";
this.record = bean;
super.update();
this.save();
}
}