maia/.svn/pristine/6a/6ac6f065643d6d791bc7ff104df...

309 lines
9.6 KiB
Plaintext
Executable File

package com.fp.frontend.controller.armas.solicitud;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import org.primefaces.context.RequestContext;
import com.fp.dto.AbstractDataTransport;
import com.fp.dto.Request;
import com.fp.dto.Response;
import com.fp.dto.save.DtoSave;
import com.fp.frontend.controller.AbstractController;
import com.fp.frontend.controller.pgeneral.gene.CatalogDetailController;
import com.fp.frontend.controller.pgeneral.gene.ParametersController;
import com.fp.frontend.helper.MessageHelper;
import com.fp.frontend.utility.MsgGeneral;
import com.fp.persistence.parmas.soli.TarmCabRepDestruirArmas;
import com.fp.persistence.parmas.soli.TarmDecomisoArma;
import com.fp.persistence.parmas.soli.TarmDetRepDestruirArmas;
import com.fp.persistence.pgeneral.gene.TgeneCatalogDetail;
import com.fp.persistence.pgeneral.gene.TgeneParameters;
/**
* Clase controladora de la revision de reporte de armas a destruirse por parte del jefe de departamento
* @author JALVARADO
*
*/
@SuppressWarnings("serial")
@ManagedBean
@ViewScoped
public class RevisarRprteArmasADestJefDepController extends AbstractController<AbstractDataTransport> {
private Integer creporte;
private Date fechaCorte;
private String estado;
/**
* lista del catalogo de las acciones (Aceptar o rechazar)
**/
private List<TgeneCatalogDetail> laccion;
/**
* Variable que indica si el funcionario esta negado para iniciar el flujo y enviar el reporte a su superior para aprobacion
*/
private Boolean isDenied;
private String observacion;
private TarmCabRepDestruirArmas tarmCabRepDestruirArmas;
@ManagedProperty(value="#{cabRepDestruirArmasController}")
private CabRepDestruirArmasController cabRepDestruirArmasController;
@ManagedProperty(value="#{detRepDestruirArmasController}")
private DetRepDestruirArmasController detRepDestruirArmasController;
@ManagedProperty(value="#{decomisoArmaController}")
private DecomisoArmaController decomisoArmaController;
public RevisarRprteArmasADestJefDepController() throws Exception {
super(AbstractDataTransport.class);
// TODO Auto-generated constructor stub
}
@PostConstruct
private void postconstruct() {
super.startQuery();
if(this.getMfilters().get("creporte")!=null){
creporte = Integer.parseInt(this.getMfilters().get("creporte"));
}
if(creporte!=null){
this.getMfilters().clear();
this.init();
this.querydatabase();
}
else{
detRepDestruirArmasController.setLrecord(new ArrayList<TarmDetRepDestruirArmas>());
}
}
/**
* Incializa el controlador, cuando se esta utilizando una pagina que utliza el controlador.
*/
private void init() {
try {
isDenied = Boolean.FALSE;
tarmCabRepDestruirArmas = CabRepDestruirArmasController.findByCodigo(creporte.toString());
detRepDestruirArmasController.addFilter("creporte", creporte.toString());
detRepDestruirArmasController.query();
TgeneParameters tgeneparam=ParametersController.find("CODIGO.AR", "1");
laccion=CatalogDetailController.find("ESTADOSOLICITUD",tgeneparam.getTextvalue());
} catch (Exception e) {
MessageHelper.setMessageError(e);
}
}
@Override
public void next(){
try {
if(creporte!=null){
this.detRepDestruirArmasController.next();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void previous(){
try {
if(creporte!=null){
this.detRepDestruirArmasController.previous();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
protected void querydatabase() {
}
public Integer getCreporte() {
return creporte;
}
public void setCreporte(Integer creporte) {
this.creporte = creporte;
}
public Date getFechaCorte() {
return fechaCorte;
}
public void setFechaCorte(Date fechaCorte) {
this.fechaCorte = fechaCorte;
}
public CabRepDestruirArmasController getCabRepDestruirArmasController() {
return cabRepDestruirArmasController;
}
public void setCabRepDestruirArmasController(
CabRepDestruirArmasController cabRepDestruirArmasController) {
this.cabRepDestruirArmasController = cabRepDestruirArmasController;
}
public DetRepDestruirArmasController getDetRepDestruirArmasController() {
return detRepDestruirArmasController;
}
public void setDetRepDestruirArmasController(
DetRepDestruirArmasController detRepDestruirArmasController) {
this.detRepDestruirArmasController = detRepDestruirArmasController;
}
public TarmCabRepDestruirArmas getTarmCabRepDestruirArmas() {
return tarmCabRepDestruirArmas;
}
public void setTarmCabRepDestruirArmas(
TarmCabRepDestruirArmas tarmCabRepDestruirArmas) {
this.tarmCabRepDestruirArmas = tarmCabRepDestruirArmas;
}
public DecomisoArmaController getDecomisoArmaController() {
return decomisoArmaController;
}
public void setDecomisoArmaController(
DecomisoArmaController decomisoArmaController) {
this.decomisoArmaController = decomisoArmaController;
}
public List<TgeneCatalogDetail> getLaccion() {
return laccion;
}
public void setLaccion(List<TgeneCatalogDetail> laccion) {
this.laccion = laccion;
}
public Boolean getIsDenied() {
return isDenied;
}
public void setIsDenied(Boolean isDenied) {
this.isDenied = isDenied;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
public String getObservacion() {
return observacion;
}
public void setObservacion(String observacion) {
this.observacion = observacion;
}
/**
* Metodo que retorna un parametro del sistema el cual es el codigo para Aprobar una solicitud en un flujo
**/
public String codigoAceptado() throws Exception {
TgeneParameters f = ParametersController.find("ACEPTADO", "1");
return f.getTextvalue();
}
@Override
public void save() {
try {
Request request = this.callerhelper.getRequest();
HashMap<String, DtoSave> msave = new HashMap<String, DtoSave>();
if(observacion!=null){
request.modifiedData().put("observacion", observacion);
tarmCabRepDestruirArmas.setObsjefecc(observacion);
tarmCabRepDestruirArmas.setIsnew(Boolean.FALSE);
cabRepDestruirArmasController.update(tarmCabRepDestruirArmas);
DtoSave dtoSaveCAC = cabRepDestruirArmasController.getDtoSave();
if(dtoSaveCAC.pendingProcess()){
dtoSaveCAC.setPosition(1);
msave.put(cabRepDestruirArmasController.getBeanalias(), dtoSaveCAC);
}
}
// Si el reporte es rechazado se vuelven las armas del reporte a la lista de armas para ser seleccionadas en nuevos reportes
if (!codigoAceptado().equals(estado)){
for(TarmDetRepDestruirArmas armasDecomRprteObj:detRepDestruirArmasController.getLrecord()){
TarmDecomisoArma armasDecomisadasObj = DecomisoArmaController.findByCodigo(armasDecomRprteObj.getCdecomisoarma());
armasDecomisadasObj.setAdestruirse(null);
armasDecomisadasObj.setAdestruirsecode(null);
armasDecomisadasObj.setIsnew(Boolean.FALSE);
decomisoArmaController.update(armasDecomisadasObj);
}
DtoSave dtoSaveDAC = decomisoArmaController.getDtoSave();
if(dtoSaveDAC.pendingProcess()){
dtoSaveDAC.setPosition(2);
msave.put(decomisoArmaController.getBeanalias(), dtoSaveDAC);
}
}
request.setSaveTables(msave);
Response resp = this.callerhelper.executeSave(request);
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) {
this.postCommit(resp);
this.cabRepDestruirArmasController.postCommit(resp);
this.decomisoArmaController.postCommit(resp);
this.setShowRow(true);
MessageHelper.setMessageInfo(resp);
} else {
MessageHelper.setMessageError(resp);
}
completarTarea();
} catch (Throwable e) {
MessageHelper.setMessageError(e);
}
}
/**
* Metodo para finalizar la tarea del flujo
*/
public void completarTarea() {
try {
Request request = callerhelper.getRequest();
super.cleanRequest(request);
// validamos si cargamos los datos cuando apruebe
Map<String,Object>datosmail = new HashMap<String,Object>();
request.modifiedData().put("TID", tid);
request.modifiedData().put("creporte", creporte);
request.modifiedData().put("BPMObs", observacion);
if (codigoAceptado().equals(estado)) {
request.modifiedData().put("BPMStatus", "A");
}else{
request.modifiedData().put("BPMStatus", "D");
}
Response resp = callerhelper.executeSave(request);
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) {
MessageHelper.setMessageInfo(resp, MsgGeneral.getProperty("msg_initFlow") + "jefe dpto - CREPORTE: " + creporte);
isDenied = Boolean.TRUE;
RequestContext.getCurrentInstance().execute("Maia.refreshusertasks()");
} else {
MessageHelper.setMessageError(resp);
}
} catch (Throwable e) {
MessageHelper.setMessageError(e);
}
}
}