maia/.svn/pristine/5c/5cd40b41cd0f041ecc759496752...

323 lines
12 KiB
Plaintext
Executable File

package com.fp.frontend.controller.armas.solicitud;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import com.fp.dto.Request;
import com.fp.dto.Response;
import com.fp.dto.query.DtoQuery;
import com.fp.dto.query.Filter;
import com.fp.dto.save.DtoSave;
import com.fp.frontend.controller.AbstractController;
import com.fp.frontend.helper.MessageHelper;
import com.fp.persistence.parmas.soli.TarmDecomisoArma;
import com.fp.persistence.parmas.soli.TarmDecomisoArmaTransaccion;
@SuppressWarnings("serial")
@ManagedBean
@ViewScoped
public class DecomisoArmaTransaccionController extends AbstractController<TarmDecomisoArmaTransaccion> {
public DecomisoArmaTransaccionController()
throws Exception {
super(TarmDecomisoArmaTransaccion.class);
}
@Override
protected void querydatabase() {
try {
Request request = this.callerhelper.getRequest();
DtoQuery dto = super.getDtoQuery(true);
HashMap<String, DtoQuery> mtables = new HashMap<String, DtoQuery>();
mtables.put(this.beanalias, dto); // permite adicionar mas de una tabla.
request.setQueryTables(mtables);
Response resp = this.callerhelper.executeQuery(request);
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) {
this.lrecord = new ArrayList<TarmDecomisoArmaTransaccion>();
MessageHelper.setMessageError(resp);
} else {
this.lrecord = (List<TarmDecomisoArmaTransaccion>) resp.get(this.beanalias);
super.postQuery(this.lrecord);
}
} catch (Throwable e) {
MessageHelper.setMessageError(e);
}
}
@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 {
recperpage = 10; // Cambiar al # reg a mirar.
lrecord = new ArrayList<>();
beanalias = "DECOMISOARMATRANSACCION";
querydatabase();
} catch (Exception e) {
MessageHelper.setMessageError(e);
}
}
public void save() {
try {
update();
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);
}
}
/**
* Metodo para encontrar por numero de env&iacute;o
* @param envio
* @param esRecepcion
* @return listado de los registros que cumplen el criterio de busqueda
*/
public static List<TarmDecomisoArmaTransaccion> findPorEnvio(String envio,boolean esRecepcion) {
try {
DecomisoArmaTransaccionController cc = new DecomisoArmaTransaccionController();
cc.init();
cc.recperpage = 15;
cc.addFilter("numerotransaccion", envio);
if(esRecepcion){
cc.addFilter("estadofirma", "Y");
}
cc.querydatabase();
if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) {
return cc.lrecord;
}
return null;
} catch (Throwable e) {
MessageHelper.setMessageError(e);
return null;
}
}
/**
* Metodo para encontrar por el pk
* @param cdeocmisoarmatransaccion
*/
public static TarmDecomisoArmaTransaccion find(String cdeocmisoarmatransaccion) {
try {
DecomisoArmaTransaccionController cc = new DecomisoArmaTransaccionController();
cc.init();
cc.recperpage = 15;
cc.addFilter("pk", cdeocmisoarmatransaccion);
cc.querydatabase();
if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) {
return cc.lrecord.get(0);
}
return null;
} catch (Throwable e) {
MessageHelper.setMessageError(e);
return null;
}
}
/**
*
* @param envio
* @return
*/
public static List<TarmDecomisoArmaTransaccion> findPorEnvioNroDecomiso(String tipoDecomiso, Long numeroDecomiso) {
try {
DecomisoArmaTransaccionController cc = new DecomisoArmaTransaccionController();
cc.init();
cc.recperpage = 15;
cc.querydatabaseManu(tipoDecomiso, numeroDecomiso);
if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) {
return cc.lrecord;
}
return null;
} catch (Throwable e) {
MessageHelper.setMessageError(e);
return null;
}
}
protected void querydatabaseManu(String tipoDecomiso, Long numeroDecomiso) {
try {
Request request = this.callerhelper.getRequest();
DtoQuery dto = super.getDtoQuery(true);
if (numeroDecomiso != null) {
Filter f = null;
f = new Filter();
if("ENTREGA".equals(tipoDecomiso)){
f.setSql("t.pk in (select tr.cdecomisoarmatransaccion from com.fp.persistence.parmas.soli.TarmDecomisoArma tr where tr.cdecomiso = " + numeroDecomiso + ")");
}else if("RECEPCION".equals(tipoDecomiso)){
f.setSql("t.pk in (select tr.cdecarmtranrecepcion from com.fp.persistence.parmas.soli.TarmDecomisoArma tr where tr.cdecomiso = " + numeroDecomiso + ")");
}
dto.addFiltro(f);
}
HashMap<String, DtoQuery> mtables = new HashMap<String, DtoQuery>();
mtables.put(this.beanalias, dto); // permite adicionar mas de una tabla.
request.setQueryTables(mtables);
Response resp = this.callerhelper.executeQuery(request);
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) {
this.lrecord = new ArrayList<TarmDecomisoArmaTransaccion>();
MessageHelper.setMessageError(resp);
} else {
this.lrecord = (List<TarmDecomisoArmaTransaccion>) resp.get(this.beanalias);
super.postQuery(this.lrecord);
}
} catch (Throwable e) {
MessageHelper.setMessageError(e);
}
}
/**
*
* @param envio
* @return
*/
public static List<TarmDecomisoArmaTransaccion> findPorOrganismoUnidad(String codigoUnidadControl, Date fechaCorte, String operacion) {
try {
DecomisoArmaTransaccionController cc = new DecomisoArmaTransaccionController();
cc.init();
cc.recperpage = 10000;
cc.querydatabaseByFechaCorte(fechaCorte, codigoUnidadControl, operacion);
if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) {
return cc.lrecord;
}
return null;
} catch (Throwable e) {
MessageHelper.setMessageError(e);
return null;
}
}
protected void querydatabaseByFechaCorte(Date fechaCorte, String codigoUnidadControl, String operacion) {
try {
Request request = this.callerhelper.getRequest();
DtoQuery dto = super.getDtoQuery(true);
Filter f = null;
f = new Filter();
SimpleDateFormat formato= new SimpleDateFormat("yyyy-MM-dd");
String ccentrocontrol = "";
ccentrocontrol = "tb.ccentrocontroldestino = '" + codigoUnidadControl+"'" ;
// if(operacion.equals("ENVIO")){
// ccentrocontrol = "tb.ccentrocontroldestino = '" + codigoUnidadControl+"'" ;
// }else{
// ccentrocontrol = "tb.ccentrocontrolorigen = '" + codigoUnidadControl+"'" ;
// }
f.setSql("trunc(t.ftransaccion) <= " + "TO_DATE('" +formato.format(fechaCorte)+ "','yyyy-MM-dd')"
+ " and t.pk in (select tb.cdecomisoarmatransaccion from com.fp.persistence.parmas.soli.TarmTransaccionArmaBodega tb where "
+ ccentrocontrol + " and tb.operacion = '"+ operacion+"') and estadofirma = 'Y'"
);
dto.addFiltro(f);
HashMap<String, DtoQuery> mtables = new HashMap<String, DtoQuery>();
mtables.put(this.beanalias, dto); // permite adicionar mas de una tabla.
request.setQueryTables(mtables);
Response resp = this.callerhelper.executeQuery(request);
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) {
this.lrecord = new ArrayList<TarmDecomisoArmaTransaccion>();
MessageHelper.setMessageError(resp);
} else {
this.lrecord = (List<TarmDecomisoArmaTransaccion>) resp.get(this.beanalias);
super.postQuery(this.lrecord);
}
} catch (Throwable e) {
MessageHelper.setMessageError(e);
}
}
/**
*
* @param envio
* @return
*/
public static List<TarmDecomisoArmaTransaccion> findParaReception(String codigoUnidadControl) {
try {
DecomisoArmaTransaccionController cc = new DecomisoArmaTransaccionController();
cc.init();
cc.recperpage = 100;
cc.querydatabaseForReception(codigoUnidadControl);
if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) {
return cc.lrecord;
}
return null;
} catch (Throwable e) {
MessageHelper.setMessageError(e);
return null;
}
}
protected void querydatabaseForReception(String codigoUnidadControl) {
try {
Request request = this.callerhelper.getRequest();
DtoQuery dto = super.getDtoQuery(true);
Filter f = new Filter();
f.setSql("t.estadoflujo = 'ENV' and t.estadofirma = 'Y' and "
+ " t.pk in (select tb.cdecomisoarmatransaccion from com.fp.persistence.parmas.soli.TarmDecomisoArma tb where tb.coperaciontransaccion = 'ENVIO')"
+ " and t.pk in (select tba.cdecomisoarmatransaccion from com.fp.persistence.parmas.soli.TarmTransaccionArmaBodega tba where tba.ccentrocontroldestino = '" + codigoUnidadControl + "')");
dto.addFiltro(f);
HashMap<String, DtoQuery> mtables = new HashMap<String, DtoQuery>();
mtables.put(this.beanalias, dto); // permite adicionar mas de una tabla.
request.setQueryTables(mtables);
Response resp = this.callerhelper.executeQuery(request);
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) {
this.lrecord = new ArrayList<TarmDecomisoArmaTransaccion>();
MessageHelper.setMessageError(resp);
} else {
this.lrecord = (List<TarmDecomisoArmaTransaccion>) resp.get(this.beanalias);
super.postQuery(this.lrecord);
}
} catch (Throwable e) {
MessageHelper.setMessageError(e);
}
}
}