public SolicitudCartaPresentacionPasantia crearSolicitudCartaPresentacion( Prepropuesta prepropuesta, Usuario estudiante, SolicitudCartaPresentacionPasantia solicitud, Empresa empresa, List<DocAnexoSolCartaPresentacionPasantia> documentos, StringBuffer mensajeError) { SolicitudCartaPresentacionPasantia solicitudCreada = null; // Se crea la solcitud de elaboración de carta de presentación de pasantía try { Boolean crearEmpresa = false; // Se valida la informacion if (prepropuesta == null) { String error = "Error creando solcitud de elaboración de carta de presentación de pasantía. No se ha especificado la prepropuesta a la cual esta asociada."; SimpleLogger.error(error); mensajeError.append(error); return null; } if (estudiante == null) { String error = "Error creando solcitud de elaboración de carta de presentación de pasantía. No se ha especificado el solicitante."; SimpleLogger.error(error); mensajeError.append(error); return null; } if (solicitud == null) { String error = "Error creando solcitud de elaboración de carta de presentación de pasantía. No se ha especificado correctamente la observación"; SimpleLogger.error(error); mensajeError.append(error); return null; } if (documentos == null || documentos.size() == 0) { String error = "Error creando solcitud de elaboración de carta de presentación de pasantía. No se ha especificado correctamente la observación"; SimpleLogger.error(error); mensajeError.append(error); return null; } if (solicitud.getScpp_cias() == null) { if (empresa.getCias_nomb() == null || empresa.getCias_nit() == null || empresa.getCias_descri() == null) { String error = "Error creando solcitud de elaboración de carta de presentación de pasantía. No se ha especificado correctamente la empresa"; SimpleLogger.error(error); mensajeError.append(error); return null; } else { // Se debe crear la empresa crearEmpresa = true; } } // Se crea la solicitud transaccional SqlSession session = DBManager.openSession(); Boolean sinErrores = true; try { // Se verifica si se debe crear la empresa Long cias_cias = null; if (crearEmpresa) { cias_cias = OficinaPasantiaServicio.getInstance().crearEmpresaTransaccional(session, empresa); if (cias_cias != null) { solicitud.setScpp_cias(cias_cias); } else { sinErrores = false; } } if (sinErrores) { solicitudCreada = SolicitudCartaPresentacionPasantiaControllerDB.getInstance() .crearSolicitudTransaccional( session, prepropuesta, estudiante, solicitud, mensajeError); if (solicitudCreada != null) { // Se deben crear los documentos anexos DocAnexoSolCartaPresentacionPasantiaServicio docAnexoServicio = DocAnexoSolCartaPresentacionPasantiaServicio.getInstance(); ArrayList<DocAnexoSolCartaPresentacionPasantia> documentosAlmacenados = new ArrayList<DocAnexoSolCartaPresentacionPasantia>(); for (DocAnexoSolCartaPresentacionPasantia docAnexo : documentos) { docAnexo.setDscpp_scpp(solicitudCreada.getScpp_scpp()); docAnexo.setDscpp_usua(estudiante.getUsua_usua()); sinErrores = docAnexoServicio.crearDocumentoTransaccional(session, docAnexo) && sinErrores; documentosAlmacenados.add(docAnexo); } // Se revisa que no hayan ocurrido errores if (sinErrores) { solicitudCreada.setDocumentos(documentosAlmacenados); session.commit(); } else { session.rollback(); String error = "Error: No fue posible crear la solicitud de elaboración de carta de presentación de pasantía. Error creando los documentos anexos"; SimpleLogger.error(error); mensajeError.append(error); solicitudCreada = null; } } else { session.rollback(); String error = "Error: No fue posible crear la solicitud de elaboración de carta de presentación de pasantía. Error desconocido 2"; SimpleLogger.error(error); mensajeError.append(error); solicitudCreada = null; } } else { session.rollback(); String error = "Error: No fue posible crear la solicitud de elaboración de carta de presentación de pasantía. Error creando la empresa de la pasantía"; SimpleLogger.error(error); mensajeError.append(error); solicitudCreada = null; } } catch (Exception e) { session.rollback(); String error = "Error: " + e.getMessage(); SimpleLogger.error(error); mensajeError.append(error); solicitudCreada = null; } finally { session.close(); } } catch (Exception e) { SimpleLogger.error("Error generando solicitud de carta de presentacion de pasantía ", e); solicitudCreada = null; mensajeError.append( "Error creando la solicitud de elaboración de carta de presentación de pasantía . No se ha podido finalizar la transacción correctamente"); } return solicitudCreada; }
public SolicitudCartaPresentacionPasantia finalizarSolicitudTransaccional( Long scpp_scpp, String observacion, Usuario usuario, DocAnexoSolCartaPresentacionPasantia cartaElaborada, StringBuffer mensajeError) { SqlSession session = DBManager.openSession(); SolicitudCartaPresentacionPasantia solicitudFinalizada = null; try { SolicitudCartaPresentacionPasantia solicitud = SolicitudCartaPresentacionPasantiaControllerDB.getInstance() .finalizarSolicitudTransaccional( session, scpp_scpp, observacion, usuario.getUsua_usua()); if (solicitud != null) { // Se alamacena la carta de presentacion DocAnexoSolCartaPresentacionPasantiaServicio docAnexoServicio = DocAnexoSolCartaPresentacionPasantiaServicio.getInstance(); Boolean sinErrores = true; Long idDoc = docAnexoServicio.getSiguienteID(); cartaElaborada.setDscpp_scpp(solicitud.getScpp_scpp()); cartaElaborada.setDscpp_dscpp(idDoc); cartaElaborada.setDscpp_usua(usuario.getUsua_usua()); sinErrores = docAnexoServicio.crearDocumentoTransaccional(session, cartaElaborada) && sinErrores; if (sinErrores) { session.commit(); solicitudFinalizada = getSolicitud(scpp_scpp); } else { session.rollback(); String error = "Error al finalizar la solicitud No " + scpp_scpp + " Error 1"; SimpleLogger.error(error); mensajeError.append(error); solicitudFinalizada = null; } } else { session.rollback(); String error = "Error al finalizar la solicitud No " + scpp_scpp + " Error 2"; SimpleLogger.error(error); mensajeError.append(error); solicitudFinalizada = null; } } catch (Exception e) { session.rollback(); solicitudFinalizada = null; SimpleLogger.error("Error finalizando la solicitud de carta de presentacion de pasantía ", e); mensajeError.append( "Error finalizando la solicitud de elaboración de carta de presentación de pasantía . No se ha podido finalizar la transacción correctamente"); } finally { session.close(); } return solicitudFinalizada; }