package com.fp.frontend.controller.armas.solicitud;

import java.sql.Date;
import java.util.ArrayList;
import java.util.Calendar;
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 javax.faces.context.FacesContext;

import org.primefaces.event.FileUploadEvent;
import org.primefaces.event.SelectEvent;
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.controller.armas.lov.PlanificacionTramiteLovController;
import com.fp.frontend.controller.armas.lov.SitioAlmacenamientoLovController;
import com.fp.frontend.controller.armas.parametros.CentroControlArmasController;
import com.fp.frontend.controller.armas.parametros.TarmCentroControlJurController;
import com.fp.frontend.controller.pcustomer.PersonAddressController;
import com.fp.frontend.controller.pcustomer.lov.PersonLovController;
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.MsgControlArmas;
import com.fp.frontend.utility.Utilidades;
import com.fp.persistence.parmas.ins.TarmPlanificacionTramite;
import com.fp.persistence.parmas.param.TarmCentroControl;
import com.fp.persistence.parmas.param.TarmCentroControlJur;
import com.fp.persistence.parmas.param.TarmSitioAlmacenamiento;
import com.fp.persistence.pcustomer.gene.TcustPersonAddress;
import com.fp.persistence.pcustomer.gene.TcustPersonDetail;
import com.fp.persistence.pgeneral.gene.TgeneCatalogDetail;
import com.fp.persistence.pgeneral.gene.TgeneParameters;
import com.fp.persistence.pgeneral.safe.TsafeUserDetail;

/**
 * Clase controladora del bean TgeneCatalog.
 *
 * @author C.P.
 * @version 2.1
 */
@SuppressWarnings("serial")
@ManagedBean
@ViewScoped
public class RegistroInspeccionPlaniNoPlaniController extends AbstractController<TcustPersonDetail> {

    @ManagedProperty(value = "#{inspeccionController}")
    private InspeccionController inspeccionController;

    //PARA LOS  ARCHIVOS
    @ManagedProperty(value = "#{inspeccionArchivoController}")
    private InspeccionArchivoController inspeccionArchivoController;

    @ManagedProperty(value = "#{alfrescoController}")
    private AlfrescoController alfrescoController;

    @ManagedProperty(value = "#{planificacionTramiteController}")
    PlanificacionTramiteController planificacionTramiteController;

    private TarmPlanificacionTramite planificacionTramite;

    private TcustPersonDetail tcustPersonDetailInspeccion;

    private TarmSitioAlmacenamiento sitioAlmacenamiento;

    private TsafeUserDetail tsafeUserDetail;

    private List<TgeneCatalogDetail> lplanificacion;
    /**
     * Campo para seleccionar si el tramite sigue el proceso
     */
    private Boolean tramiteProceso = Boolean.FALSE;

    private Boolean tramiteProcesoNegar = Boolean.FALSE;

    private Map<String, Object> personaPropietario;

    private TarmCentroControl centroControl;
    private String aplicaDecomiso;

    private String codigoPersonaSitioAlm;

    private String numerotrabajo;
    /**
     * Atributos para cargar los archivos
     */
    private UploadedFile file;
    private UploadedFile uploadedFileFoto1;
    private UploadedFile uploadedFileFoto2;
    private UploadedFile uploadedFileFoto3;
    /**
     * campo para desabilitar el boton
     */
    private Boolean btn = Boolean.FALSE;

    /**
     * Constructor
     *
     * @throws Exception
     */
    public RegistroInspeccionPlaniNoPlaniController() throws Exception {
        super(TcustPersonDetail.class);
    }

    /**
     * Metodo invocado despues de instanciar el controlador
     */
    @PostConstruct
    private void postconstruct() {
        this.init();
    }

    /**
     * Incializa variables del controlador, cuando se esta utilizando una pagina
     * que utliza el controlador.
     */
    private void init() {
        try {
            this.personaPropietario = new HashMap<>();
            this.recperpage = 10; // Cambiar al # reg a mirar.
            this.lrecord = new ArrayList<>();
            this.beanalias = "REGINSPECPLANINO";
            tsafeUserDetail = (TsafeUserDetail) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL");
            String legalcodepla = codigoParameter("LEGALCODE.PLAN");
            lplanificacion = CatalogDetailController.find("OPERACIONINSPECCION", legalcodepla);
            inspeccionController.create();
            inspeccionController.getRecord().setFecharegistro(new Date(new java.util.Date().getTime()));
            numerotrabajo = null;
            obtenerCentroControl();
        } catch (Exception e) {
            MessageHelper.setMessageError(e);
        }
    }

    /**
     * M&eacute;todo para obtener el centro de control
     *
     * @throws Exception
     */
    private void obtenerCentroControl() throws Exception {
        PersonAddressController personAddressController = new PersonAddressController();
        TcustPersonAddress tcustPersonAddres = personAddressController.findPrincipal(tsafeUserDetail.getPk().getPersoncode().toString());
        TarmCentroControlJur centroControlJur = TarmCentroControlJurController.findxProvincia(tcustPersonAddres.getProvincecode());
        centroControl = CentroControlArmasController.findPorCodigo(centroControlJur.getCcentrocontrol());
    }

    @SuppressWarnings("unchecked")
    @Override
    protected void querydatabase() {
        try {
            this.getMfilters().put("pk.personcode", tsafeUserDetail.getPk().getPersoncode().toString());
            addFilterDateto();
            Request request = this.callerhelper.getRequest();
            DtoQuery dto = super.getDtoQuery(false);
            dto.setOrderby("t.pk");
            HashMap<String, DtoQuery> mtables = new HashMap<String, DtoQuery>();
            mtables.put(this.beanalias, dto);
            request.setQueryTables(mtables);
            request.put("queryalias", "INSPECCIONPLANIFICADA");
            request.put("querytype", "P");
            //DATOS ADICIONALES
            if (planificacionTramite != null) {
                request.put("personcodepropietario", planificacionTramite.getModifiedData().get("personcode"));
                codigoPersonaSitioAlm = planificacionTramite.getModifiedData().get("personcode").toString();
            }
            if (tcustPersonDetailInspeccion != null) {
                request.put("personcodepropietario", tcustPersonDetailInspeccion.getPk().getPersoncode());
                codigoPersonaSitioAlm = tcustPersonDetailInspeccion.getPk().getPersoncode().toString();
            }

            request.put("ccentrocontrol", "0035");
            //com.fp.armas.rules.query.solicitud.CompletaDatosInspeccionPlan
            Response resp = this.callerhelper.executeQuery(request);
            if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) {
                this.record = new TcustPersonDetail();
                MessageHelper.setMessageError(resp);
            } else {
                this.record = (TcustPersonDetail) resp.get(this.beanalias);
                this.personaPropietario = (Map<String, Object>) resp.get("PERSONAPROPIETARIO");
                super.postQuery(this.lrecord);
            }
        } catch (Throwable e) {
            MessageHelper.setMessageError(e);
        }
    }

    private String codigoParameter(String codigo) throws Exception {
        TgeneParameters parameter = ParametersController.find(codigo, "1");
        return parameter.getTextvalue();
    }

    public void openPlanificacionTramiteLov() {
        Map<String, List<String>> params = new HashMap<>();
        List<String> lcat = new ArrayList<>();
        lcat.add(centroControl.getPk());
        params.put("centrocontrol", lcat);
        PlanificacionTramiteLovController.openLov(params);
    }

    public void onReturnPlanificacionTramiteLov(SelectEvent event) throws Exception {
        planificacionTramite = (TarmPlanificacionTramite) event.getObject();
        tcustPersonDetailInspeccion = null;
        querydatabase();
    }

    /**
     * M&eacute;todo para abrir el lov de sitio de almacenamineot
     */
    public void openSitioLov() {
        if (codigoPersonaSitioAlm == null || codigoPersonaSitioAlm.trim().length() == 0) {
            MessageHelper.setMessageError("SELECCIONE UN PROPIETARIO O RESPONSABLE");
            return;
        }
        Map<String, List<String>> params = new HashMap<>();
        List<String> lcat = new ArrayList<>();
        lcat.add(codigoPersonaSitioAlm);
        params.put("personcode", lcat);
        SitioAlmacenamientoLovController.openLov(params);
    }

    /**
     * Maneja la respuesta del Lov de Personas
     *
     * @param event
     * @throws Exception
     */
    public void onReturnSitioLov(SelectEvent event) throws Exception {
        sitioAlmacenamiento = (TarmSitioAlmacenamiento) event.getObject();
    }

    /**
     * M&eacute;todo para abrir el lov de personas
     */
    public void openPersonLov() {
        Map<String, List<String>> params = new HashMap<>();
        PersonLovController.openLov(params);
    }

    /**
     * Maneja la respuesta del Lov de Personas
     *
     * @param event
     * @throws Exception
     */
    public void onReturnPersonLov(SelectEvent event) throws Exception {
        tcustPersonDetailInspeccion = (TcustPersonDetail) event.getObject();
        planificacionTramite = null;
        querydatabase();
    }

    /**
     * M&eacute;todo para manejar el evento change en el CheckBox
     */
    public void onChangeAprobar() {
        if (tramiteProceso) {
            tramiteProcesoNegar = false;
            inspeccionController.getRecord().setTramiteproceso("Y");
        } else {
            tramiteProcesoNegar = true;
            inspeccionController.getRecord().setTramiteproceso("N");
        }
        aplicaDecomiso = null;
    }

    /**
     * M&eacute;todo para manejar el evento change en el CheckBox
     */
    public void onChangeRechazar() {
        if (tramiteProcesoNegar) {
            tramiteProceso = false;
            inspeccionController.getRecord().setTramiteproceso("N");
        } else {
            tramiteProceso = true;
            inspeccionController.getRecord().setTramiteproceso("Y");
        }
        aplicaDecomiso = "N";
    }

    @Override
    public void save() {
        Boolean msg = Boolean.FALSE;
        try {
            if (sitioAlmacenamiento == null || sitioAlmacenamiento.getPk() == null
                    || sitioAlmacenamiento.getPk().trim().length() == 0) {
                MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_seleccionenesitioinspeccion"));
                msg = Boolean.TRUE;
            }
            if (tramiteProceso == false && tramiteProcesoNegar == false) {
                MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_seleccionenegarocontinuartramiteproceso"));
                msg = Boolean.TRUE;
            }
            if (msg) {
                return;
            }
            HashMap<String, DtoSave> msave = new HashMap<String, DtoSave>();
            Request request = callerhelper.getRequest();
            if (!saveWithDocumentAlfresco()) {
                return;
            }
            if (tramiteProceso) {
                request.modifiedData().put("BPMStatus", bpmDataStatus == null ? "A" : bpmDataStatus); // A,D,R
            } else {
                if (aplicaDecomiso == null || (!aplicaDecomiso.equals("N") && !aplicaDecomiso.equals("N"))) {
                    MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_seleccionesionoenaplicadecomiso"));
                    return;
                }
                inspeccionController.getRecord().setAplicadecomiso(aplicaDecomiso);
                request.modifiedData().put("BPMStatus", bpmDataStatus == null ? "D" : bpmDataStatus); // A,D,R
            }
            request.modifiedData().put("TID", tid);
            request.modifiedData().put("BPMObs", inspeccionController.getRecord().getObservacion());

            //actualiza el campo de la planificacion
            if (planificacionTramite != null) {
                planificacionTramiteController.create();
                planificacionTramiteController.setRecord(planificacionTramite);
                planificacionTramiteController.getRecord().setInspeccion("Y");
                planificacionTramiteController.actualizar(planificacionTramiteController.getRecord());
                DtoSave dtosavePlanificacion = planificacionTramiteController.getDtoSave();
                dtosavePlanificacion.setReturnpk(true);
                dtosavePlanificacion.setPosition(3);
                msave.put(planificacionTramiteController.getBeanalias(), dtosavePlanificacion);
                inspeccionController.getRecord().setCplanificaciontramite(planificacionTramite.getPk());
            }

            inspeccionController.getRecord().setCsitioalmacenamiento(sitioAlmacenamiento.getPk());
            inspeccionController.getRecord().setPersoncode(tsafeUserDetail.getPk().getPersoncode());
            inspeccionController.getRecord().setCentrocontrol(centroControl.getPk());
            Integer canno = Calendar.getInstance().get(Calendar.YEAR);
            inspeccionController.getRecord().setAnno(Long.parseLong(canno.toString()));
            inspeccionController.update();

            DtoSave dtosaveInspeccion = inspeccionController.getDtoSave();
            dtosaveInspeccion.setReturnpk(true);
            dtosaveInspeccion.setPosition(2);
            msave.put(inspeccionController.getBeanalias(), dtosaveInspeccion);

            DtoSave dtosave = inspeccionArchivoController.getDtoSave();
            dtosave.setReturnpk(true);
            dtosave.setPosition(1);
            msave.put(inspeccionArchivoController.getBeanalias(), dtosave);

            request.setSaveTables(msave);
            //com.fp.armas.rules.save.solicitud.RegistroInspeccion (TransactionRule)
            Response resp = callerhelper.executeSave(request);
            if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) {
                this.postCommit(resp);
                inspeccionController.postCommit(resp);
                inspeccionArchivoController.postCommit(resp);
                planificacionTramiteController.postCommit(resp);
                numerotrabajo = "" + resp.get("numerotrabajo");
                MessageHelper.setMessageInfo(resp);
                btn = Boolean.TRUE;
            } else {
                MessageHelper.setMessageError(resp);
            }
        } catch (Throwable e) {
            MessageHelper.setMessageError(e);
        }
    }

    public void handleUpload(FileUploadEvent event) {
        file = event.getFile();
    }

    public void upload(FileUploadEvent event) {
        file = event.getFile();
    }

    public void upload1(FileUploadEvent event) {
        uploadedFileFoto1 = event.getFile();
    }

    public void upload2(FileUploadEvent event) {
        uploadedFileFoto2 = event.getFile();
    }

    public void upload3(FileUploadEvent event) {
        uploadedFileFoto3 = event.getFile();
    }

    /**
     * M&eacute;todo para cargar los archivos al alfresco
     *
     */
    public Boolean saveWithDocumentAlfresco() {
        try {
            Boolean msgArchivos = Boolean.FALSE;
            //pdf
            if (file == null || file.getFileName() == null) {
                MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_ingreseelformatodeinspeccion"));
                msgArchivos = Boolean.TRUE;
            }
            if (uploadedFileFoto1 == null || uploadedFileFoto1.getFileName() == null) {
                MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_ingreselafoto1"));
                msgArchivos = Boolean.TRUE;
            }
            if (uploadedFileFoto2 == null || uploadedFileFoto2.getFileName() == null) {
                MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_ingreselafoto2"));
                msgArchivos = Boolean.TRUE;
            }
            if (uploadedFileFoto3 == null || uploadedFileFoto3.getFileName() == null) {
                MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_ingreselafoto3"));
                msgArchivos = Boolean.TRUE;
            }
            if (msgArchivos) {
                return false;
            }
            String xPathLocation = null;
            if (planificacionTramite != null) {
                xPathLocation = getRutaDocumentoSolBase() + "/cm:Inspeccion/cm:NO-PLANIFICADA-" + codigoPersonaSitioAlm;
                //codigoPersonaSitioAlm=planificacionTramite.getModifiedData().get("personcode").toString();
            }
            if (tcustPersonDetailInspeccion != null) {
                xPathLocation = getRutaDocumentoSolBase() + "/cm:Inspeccion/cm:PLANIFICADA-" + codigoPersonaSitioAlm;
                //codigoPersonaSitioAlm=tcustPersonDetailInspeccion.getPk().getPersoncode().toString();
            }
            //String xphat1="FormatoInspeccion-"+forma.format(fecha)+extencionArchivo(file.getFileName());
            String xphat1 = eliminaCaractersEspeciales(Utilidades.obtieneNombreLimpio(recorteNombre(file.getFileName())));
            if (alfrescoController.uploadFile(file.getInputstream(), xphat1, xPathLocation)) {
                inspeccionArchivoController.create();
                inspeccionArchivoController.getRecord().setXpath(xPathLocation + "/cm:" + xphat1);
                String fielname = file.getFileName();
                if (fielname.length() > 99) {
                    fielname = fielname.substring(0, 95) + extencionArchivo(file.getFileName());
                }
                inspeccionArchivoController.getRecord().setDescripcion(fielname);
                inspeccionArchivoController.update();
            } else {
                return false;
            }
            //String xphat2="Foto1-"+forma.format(fecha)+extencionArchivo(uploadedFileFoto1.getFileName());
            String xphat2 = eliminaCaractersEspeciales(Utilidades.obtieneNombreLimpio(recorteNombre(uploadedFileFoto1.getFileName())));
            if (alfrescoController.uploadFile(uploadedFileFoto1.getInputstream(), xphat2, xPathLocation)) {
                inspeccionArchivoController.create();
                inspeccionArchivoController.getRecord().setXpath(xPathLocation + "/cm:" + xphat2);
                String fielname = uploadedFileFoto1.getFileName();
                if (fielname.length() > 99) {
                    fielname = fielname.substring(0, 95) + extencionArchivo(uploadedFileFoto1.getFileName());
                }
                inspeccionArchivoController.getRecord().setDescripcion(fielname);
                inspeccionArchivoController.update();
            } else {
                return false;
            }
            //String xphat3="Foto2-"+forma.format(fecha)+extencionArchivo(uploadedFileFoto2.getFileName());
            String xphat3 = eliminaCaractersEspeciales(Utilidades.obtieneNombreLimpio(recorteNombre(uploadedFileFoto2.getFileName())));
            if (alfrescoController.uploadFile(uploadedFileFoto2.getInputstream(), xphat3, xPathLocation)) {
                inspeccionArchivoController.create();
                inspeccionArchivoController.getRecord().setXpath(xPathLocation + "/cm:" + xphat3);
                String fielname = uploadedFileFoto2.getFileName();
                if (fielname.length() > 99) {
                    fielname = fielname.substring(0, 95) + extencionArchivo(uploadedFileFoto2.getFileName());
                }
                inspeccionArchivoController.getRecord().setDescripcion(fielname);
                inspeccionArchivoController.update();
            } else {
                return false;
            }
            //String xphat4="Foto3-"+forma.format(fecha)+extencionArchivo(uploadedFileFoto3.getFileName());
            String xphat4 = eliminaCaractersEspeciales(Utilidades.obtieneNombreLimpio(recorteNombre(uploadedFileFoto3.getFileName())));
            if (alfrescoController.uploadFile(uploadedFileFoto3.getInputstream(), xphat4, xPathLocation)) {
                inspeccionArchivoController.create();
                inspeccionArchivoController.getRecord().setXpath(xPathLocation + "/cm:" + xphat4);
                String fielname = uploadedFileFoto3.getFileName();
                if (fielname.length() > 99) {
                    fielname = fielname.substring(0, 95) + extencionArchivo(uploadedFileFoto3.getFileName());
                }
                inspeccionArchivoController.getRecord().setDescripcion(fielname);
                inspeccionArchivoController.update();
            } else {
                return false;
            }

        } catch (Exception e) {
            MessageHelper.setMessageError(e);
        } catch (Throwable e) {
            MessageHelper.setMessageError(e);
        }
        return true;
    }

    public String eliminaCaractersEspeciales(String nombre) {
        nombre = nombre.replace("(", "");
        nombre = nombre.replace(")", "");
        return nombre;
    }

    /**
     * obtiene la extencion del archivo
     *
     * @param nombre
     * @return
     */
    private String extencionArchivo(String nombre) {
        int pos = nombre.lastIndexOf('.');
        nombre = nombre.substring(pos);
        return nombre;
    }

    /**
     * recorta el nombre
     *
     * @param nombre
     * @return
     */
    public String recorteNombre(String nombre) {
        String fielname = nombre;
        if (fielname.length() > 30) {
            fielname = fielname.substring(0, 30) + extencionArchivo(nombre);
        }
        return fielname;
    }

    /**
     * Retorna la ruta de documento base en donde se almacenar&aacute; dicho
     * archivo
     *
     * @return
     */
    public String getRutaDocumentoSolBase() {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(inspeccionController.getRecord().getFecharegistro());
        StringBuilder ruta = new StringBuilder("cm:Solicitudes");
        ruta = ruta.append("/cm:A-").append(calendar.get(Calendar.YEAR));
        ruta = ruta.append("/cm:M-").append((calendar.get(Calendar.MONTH) + 1) <= 9 ? "0" + (calendar.get(Calendar.MONTH) + 1) : (calendar.get(Calendar.MONTH) + 1));
        return ruta.toString();
    }

    public InspeccionController getInspeccionController() {
        return inspeccionController;
    }

    public void setInspeccionController(InspeccionController inspeccionController) {
        this.inspeccionController = inspeccionController;
    }

    public TarmCentroControl getCentroControl() {
        return centroControl;
    }

    public void setCentroControl(TarmCentroControl centroControl) {
        this.centroControl = centroControl;
    }

    public Map<String, Object> getPersonaPropietario() {
        return personaPropietario;
    }

    public void setPersonaPropietario(Map<String, Object> personaPropietario) {
        this.personaPropietario = personaPropietario;
    }

    public TarmPlanificacionTramite getPlanificacionTramite() {
        return planificacionTramite;
    }

    public void setPlanificacionTramite(
            TarmPlanificacionTramite planificacionTramite) {
        this.planificacionTramite = planificacionTramite;
    }

    public TarmSitioAlmacenamiento getSitioAlmacenamiento() {
        return sitioAlmacenamiento;
    }

    public void setSitioAlmacenamiento(TarmSitioAlmacenamiento sitioAlmacenamiento) {
        this.sitioAlmacenamiento = sitioAlmacenamiento;
    }

    public AlfrescoController getAlfrescoController() {
        return alfrescoController;
    }

    public void setAlfrescoController(AlfrescoController alfrescoController) {
        this.alfrescoController = alfrescoController;
    }

    public Boolean getTramiteProceso() {
        return tramiteProceso;
    }

    public void setTramiteProceso(Boolean tramiteProceso) {
        this.tramiteProceso = tramiteProceso;
    }

    public TsafeUserDetail getTsafeUserDetail() {
        return tsafeUserDetail;
    }

    public void setTsafeUserDetail(TsafeUserDetail tsafeUserDetail) {
        this.tsafeUserDetail = tsafeUserDetail;
    }

    public Boolean getTramiteProcesoNegar() {
        return tramiteProcesoNegar;
    }

    public void setTramiteProcesoNegar(Boolean tramiteProcesoNegar) {
        this.tramiteProcesoNegar = tramiteProcesoNegar;
    }

    public String getAplicaDecomiso() {
        return aplicaDecomiso;
    }

    public void setAplicaDecomiso(String aplicaDecomiso) {
        this.aplicaDecomiso = aplicaDecomiso;
    }

    public UploadedFile getFile() {
        return file;
    }

    public void setFile(UploadedFile file) {
        this.file = file;
    }

    public UploadedFile getUploadedFileFoto1() {
        return uploadedFileFoto1;
    }

    public void setUploadedFileFoto1(UploadedFile uploadedFileFoto1) {
        this.uploadedFileFoto1 = uploadedFileFoto1;
    }

    public UploadedFile getUploadedFileFoto2() {
        return uploadedFileFoto2;
    }

    public void setUploadedFileFoto2(UploadedFile uploadedFileFoto2) {
        this.uploadedFileFoto2 = uploadedFileFoto2;
    }

    public UploadedFile getUploadedFileFoto3() {
        return uploadedFileFoto3;
    }

    public void setUploadedFileFoto3(UploadedFile uploadedFileFoto3) {
        this.uploadedFileFoto3 = uploadedFileFoto3;
    }

    public List<TgeneCatalogDetail> getLplanificacion() {
        return lplanificacion;
    }

    public void setLplanificacion(List<TgeneCatalogDetail> lplanificacion) {
        this.lplanificacion = lplanificacion;
    }

    public InspeccionArchivoController getInspeccionArchivoController() {
        return inspeccionArchivoController;
    }

    public void setInspeccionArchivoController(
            InspeccionArchivoController inspeccionArchivoController) {
        this.inspeccionArchivoController = inspeccionArchivoController;
    }

    public PlanificacionTramiteController getPlanificacionTramiteController() {
        return planificacionTramiteController;
    }

    public void setPlanificacionTramiteController(
            PlanificacionTramiteController planificacionTramiteController) {
        this.planificacionTramiteController = planificacionTramiteController;
    }

    public TcustPersonDetail getTcustPersonDetailInspeccion() {
        return tcustPersonDetailInspeccion;
    }

    public void setTcustPersonDetailInspeccion(
            TcustPersonDetail tcustPersonDetailInspeccion) {
        this.tcustPersonDetailInspeccion = tcustPersonDetailInspeccion;
    }

    public Boolean getBtn() {
        return btn;
    }

    public void setBtn(Boolean btn) {
        this.btn = btn;
    }

    public String getCodigoPersonaSitioAlm() {
        return codigoPersonaSitioAlm;
    }

    public void setCodigoPersonaSitioAlm(String codigoPersonaSitioAlm) {
        this.codigoPersonaSitioAlm = codigoPersonaSitioAlm;
    }

    public String getNumerotrabajo() {
        return numerotrabajo;
    }

    public void setNumerotrabajo(String numerotrabajo) {
        this.numerotrabajo = numerotrabajo;
    }

}
