Skip to content

Commit

Permalink
BugID: 1348 WS - finanziamenti esterni ricerca Gae associati a Modulo
Browse files Browse the repository at this point in the history
  • Loading branch information
rpucciarelli committed Dec 17, 2014
1 parent 60fae5e commit 61bae7a
Show file tree
Hide file tree
Showing 10 changed files with 420 additions and 0 deletions.
@@ -0,0 +1,66 @@
package it.cnr.contab.config00.action;

import java.beans.IntrospectionException;
import java.lang.reflect.InvocationTargetException;
import java.rmi.RemoteException;
import java.text.ParseException;

import it.cnr.contab.config00.bp.*;
import it.cnr.contab.config00.util.Constants;
import it.cnr.contab.utenze00.bp.CNRUserContext;
import it.cnr.contab.utenze00.bp.GestioneUtenteBP;
import it.cnr.contab.utenze00.bulk.CNRUserInfo;
import it.cnr.contab.utenze00.bulk.UtenteBulk;
import it.cnr.jada.action.AbstractAction;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.action.BusinessProcessException;
import it.cnr.jada.action.Forward;
import it.cnr.jada.action.HttpActionContext;
import it.cnr.jada.util.Introspector;

public class RicercaGAEFEAction extends AbstractAction {

public RicercaGAEFEAction() {
super();
}
public Forward doDefault(ActionContext actioncontext) throws RemoteException {
RicercaGAEFEBP bp = null;
try {
((HttpActionContext)actioncontext).getSession(true).setMaxInactiveInterval(350);
String user;
bp = (RicercaGAEFEBP)actioncontext.createBusinessProcess("RicercaGAEFEBP");
actioncontext.addBusinessProcess(bp);
valorizzaParametri(actioncontext,bp,"cdr");
valorizzaParametri(actioncontext,bp,"modulo");
valorizzaParametri(actioncontext,bp,"user");
if (bp.getUser()!= null)
user = bp.getUser();
else
user = "MACRO";

CNRUserInfo ui = new CNRUserInfo();
UtenteBulk utente = new UtenteBulk();
utente.setCd_utente(user);
ui.setUserid(utente.getCd_utente());
if(bp.getEsercizio()!=null)
ui.setEsercizio(new Integer(bp.getEsercizio()));
else
ui.setEsercizio(new Integer(java.util.Calendar.getInstance().get(java.util.Calendar.YEAR)));

ui.setUtente(utente);
actioncontext.setUserInfo(ui);
actioncontext.setUserContext(new CNRUserContext(user,actioncontext.getSessionId(),ui.getEsercizio(),null,null,null));

bp.eseguiRicerca(actioncontext);

} catch (Exception e) {
bp.setCodiceErrore(Constants.ERRORE_SIP_100);
}
return actioncontext.findDefaultForward();
}
private void valorizzaParametri(ActionContext actioncontext,RicercaGAEFEBP bp,String parametro) throws IntrospectionException, InvocationTargetException, ParseException{
String valore = ((HttpActionContext)actioncontext).getParameter(parametro);
if (valore != null && !valore.trim().equals(""))
Introspector.setPropertyValue(bp,parametro,valore);
}
}
230 changes: 230 additions & 0 deletions sigla-ejb/src/main/java/it/cnr/contab/config00/bp/RicercaGAEFEBP.java
@@ -0,0 +1,230 @@
package it.cnr.contab.config00.bp;

import java.io.IOException;
import java.rmi.RemoteException;
import java.util.Iterator;
import java.util.List;

import javax.ejb.EJBException;
import javax.servlet.ServletException;
import javax.servlet.jsp.PageContext;

import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.dom.*;
import org.w3c.dom.*;
import it.cnr.contab.config00.ejb.Linea_attivitaComponentSession;
import it.cnr.contab.config00.latt.bulk.CostantiTi_gestione;
import it.cnr.contab.config00.latt.bulk.WorkpackageBulk;
import it.cnr.contab.config00.pdcfin.bulk.NaturaBulk;
import it.cnr.contab.config00.sto.bulk.CdrBulk;
import it.cnr.contab.config00.util.Constants;
import it.cnr.contab.docamm00.ejb.FatturaAttivaSingolaComponentSession;
import it.cnr.jada.action.BusinessProcess;
import it.cnr.jada.action.BusinessProcessException;
import it.cnr.jada.comp.ComponentException;
import it.cnr.jada.persistency.PersistencyException;

public class RicercaGAEFEBP extends BusinessProcess implements ResponseXMLBP{

private Integer codiceErrore;
private Integer modulo;
private Integer esercizio;


private String user;
private String cdr;
private List GAE;

public RicercaGAEFEBP() {
super();
}

public RicercaGAEFEBP(String s) {
super(s);
}

private Element generaErrore(Document xmldoc){
Element e = xmldoc.createElement("errore");
e.setAttribute("codice",codiceErrore.toString());
Node n = xmldoc.createTextNode(Constants.erroriSIP.get(codiceErrore));
e.appendChild(n);
return e;
}
private Element generaNumeroGAE(Document xmldoc){
Element e = xmldoc.createElement("numris");
Node n = xmldoc.createTextNode(new Integer(getGAE().size()).toString());
e.appendChild(n);
return e;
}
private Element generaDettaglioGAE(Document xmldoc, String cdr,String descrizioneCdr, String codice,String descrizioneGae,String denominazioneGae,
String natura, String tipoNatura ,Integer esercizioInizio,Integer esercizioFine,String tipo){

Element element = xmldoc.createElement("gae");

Element elementCdr = xmldoc.createElement("cdr");
Node nodeCdr = xmldoc.createTextNode(cdr);
elementCdr.appendChild(nodeCdr);
element.appendChild(elementCdr);

Element elementDescrizioneCdr = xmldoc.createElement("descrizioneCdr");
Node nodeDescrizioneCdr = xmldoc.createTextNode(descrizioneCdr==null?"":descrizioneCdr);
elementDescrizioneCdr.appendChild(nodeDescrizioneCdr);
element.appendChild(elementDescrizioneCdr);

Element elementCodice = xmldoc.createElement("codiceGae");
Node nodeCodice = xmldoc.createTextNode(codice);
elementCodice.appendChild(nodeCodice);
element.appendChild(elementCodice);

Element elementDescrizioneGae = xmldoc.createElement("descrizioneGae");
Node nodeDescrizioneGae = xmldoc.createTextNode(descrizioneGae==null?"":descrizioneGae);
elementDescrizioneGae.appendChild(nodeDescrizioneGae);
element.appendChild(elementDescrizioneGae);

Element elementDenominazioneGae = xmldoc.createElement("denominazioneGae");
Node nodeDenominazioneGae = xmldoc.createTextNode(denominazioneGae==null?"":denominazioneGae);
elementDenominazioneGae.appendChild(nodeDenominazioneGae);
element.appendChild(elementDenominazioneGae);

Element elementNatura = xmldoc.createElement("natura");
Node nodeNatura = xmldoc.createTextNode(natura==null?"":natura);
elementNatura.appendChild(nodeNatura);
element.appendChild(elementNatura);

Element elementTipoNatura = xmldoc.createElement("tipoNatura");
Node nodeTipoNatura = xmldoc.createTextNode(tipoNatura==null?"":tipoNatura.compareTo(NaturaBulk.TIPO_NATURA_FONTI_ESTERNE)==0?"Fonti Esterne":"Fonti Interne");
elementTipoNatura.appendChild(nodeTipoNatura);
element.appendChild(elementTipoNatura);

Element elementEsercizioInizio = xmldoc.createElement("esercizioInizio");
Node nodeEsercizioInizio = xmldoc.createTextNode(esercizioInizio==null?"":esercizioInizio.toString());
elementEsercizioInizio.appendChild(nodeEsercizioInizio);
element.appendChild(elementEsercizioInizio);

Element elementEsercizioFine = xmldoc.createElement("esercizioFine");
Node nodeEsercizioFine = xmldoc.createTextNode(esercizioFine==null?"":esercizioFine.toString());
elementEsercizioFine.appendChild(nodeEsercizioFine);
element.appendChild(elementEsercizioFine);

Element elementTipo = xmldoc.createElement("tipo");
Node nodeTipo = xmldoc.createTextNode(tipo==null?"":tipo.compareTo(CostantiTi_gestione.TI_GESTIONE_ENTRATE)==0?"Entrata":"Spesa");
elementTipo.appendChild(nodeTipo);
element.appendChild(elementTipo);

return element;
}
public void generaXML(PageContext pagecontext) throws IOException, ServletException{
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
DOMImplementation impl = builder.getDOMImplementation();
Document xmldoc = impl.createDocument(null, "root", null);
Element root = xmldoc.getDocumentElement();
root.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance", "xsi:noNamespaceSchemaLocation", "https://contab.cnr.it/SIGLA/schema/cercagaefe.xsd");
if (codiceErrore!= null){
root.appendChild(generaErrore(xmldoc));
}else{
root.appendChild(generaNumeroGAE(xmldoc));
int num = 0;
if (getGAE() != null && !getGAE().isEmpty()){
for (Iterator i = getGAE().iterator();i.hasNext();){
WorkpackageBulk linea = (WorkpackageBulk)i.next();
root.appendChild(generaDettaglioGAE(xmldoc,linea.getCd_centro_responsabilita(),linea.getCentro_responsabilita().getDs_cdr(),linea.getCd_linea_attivita(),linea.getDs_linea_attivita(),
linea.getDenominazione(),linea.getCd_natura(),linea.getNatura().getTipo(),linea.getEsercizio_inizio(),linea.getEsercizio_fine(),linea.getTi_gestione()));
num++;
}
}
}
DOMSource domSource = new DOMSource(xmldoc);
StreamResult streamResult = new StreamResult(pagecontext.getOut());
TransformerFactory tf = TransformerFactory.newInstance();
Transformer serializer = tf.newTransformer();
serializer.setOutputProperty(OutputKeys.ENCODING,"ISO-8859-1");
serializer.setOutputProperty(OutputKeys.INDENT,"yes");
serializer.setOutputProperty(OutputKeys.STANDALONE,"no");
serializer.transform(domSource, streamResult);
} catch (ParserConfigurationException e) {
} catch (TransformerConfigurationException e) {
} catch (TransformerException e) {
}
}
public void eseguiRicerca(it.cnr.jada.action.ActionContext context)throws BusinessProcessException{

if(modulo== null){
codiceErrore = Constants.ERRORE_SIP_120;
return;
}else{
try {
GAE=(((Linea_attivitaComponentSession)it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRCONFIG00_EJB_Linea_attivitaComponentSession",Linea_attivitaComponentSession.class)).findListaGAEFEWS(context.getUserContext(), getCdr(),getModulo()));
int num=0;
for (Iterator i = GAE.iterator();i.hasNext();){
WorkpackageBulk linea =(WorkpackageBulk)i.next();
//linea=(((Linea_attivitaComponentSession)it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRCONFIG00_EJB_Linea_attivitaComponentSession",Linea_attivitaComponentSession.class)).completaOggetto(context.getUserContext(), linea));
linea.setCentro_responsabilita((CdrBulk)(((FatturaAttivaSingolaComponentSession)it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRDOCAMM00_EJB_FatturaAttivaSingolaComponentSession",FatturaAttivaSingolaComponentSession.class)).completaOggetto(context.getUserContext(), linea.getCentro_responsabilita())));
linea.setNatura((NaturaBulk)(((FatturaAttivaSingolaComponentSession)it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRDOCAMM00_EJB_FatturaAttivaSingolaComponentSession",FatturaAttivaSingolaComponentSession.class)).completaOggetto(context.getUserContext(), linea.getNatura())));
getGAE().set(num,linea);
num++;
}
} catch (ComponentException e) {
codiceErrore = Constants.ERRORE_SIP_100;
} catch (RemoteException e) {
codiceErrore = Constants.ERRORE_SIP_100;
} catch (PersistencyException e) {
codiceErrore = Constants.ERRORE_SIP_100;
} catch (EJBException e) {
codiceErrore = Constants.ERRORE_SIP_100;
}
}
}

public Integer getCodiceErrore() {
return codiceErrore;
}

public void setCodiceErrore(Integer codiceErrore) {
this.codiceErrore = codiceErrore;
}

public String getUser() {
return user;
}

public Integer getEsercizio() {
return esercizio;
}

public void setEsercizio(Integer esercizio) {
this.esercizio = esercizio;
}

public void setUser(String user) {
this.user = user;
}

public String getCdr() {
return cdr;
}

public void setCdr(String cdr) {
this.cdr = cdr;
}

public List getGAE() {
return GAE;
}

public void setGAE(List gae) {
GAE = gae;
}

public Integer getModulo() {
return modulo;
}

public void setModulo(Integer modulo) {
this.modulo = modulo;
}

}
Expand Up @@ -1007,5 +1007,26 @@ else if(oggetto instanceof WorkpackageBulk) {
file.delete();
}
}
public java.util.List findListaGAEFEWS(UserContext userContext,String cdr,Integer modulo)throws ComponentException{
try {
WorkpackageHome home = (WorkpackageHome)getHome(userContext,WorkpackageBulk.class,"V_LINEA_ATTIVITA_VALIDA");
SQLBuilder sql = home.createSQLBuilder();
if(cdr!=null){
sql.addTableToHeader("V_PDG_CDR_GESTIBILI");

sql.addSQLJoin("V_LINEA_ATTIVITA_VALIDA.ESERCIZIO","V_PDG_CDR_GESTIBILI.ESERCIZIO");
sql.addSQLJoin("V_LINEA_ATTIVITA_VALIDA.CD_CENTRO_RESPONSABILITA","V_PDG_CDR_GESTIBILI.CD_CENTRO_RESPONSABILITA");

sql.addSQLClause("AND","V_PDG_CDR_GESTIBILI.CD_CDR_ROOT",sql.EQUALS,cdr);
sql.addSQLClause("AND","V_PDG_CDR_GESTIBILI.ESERCIZIO",sql.EQUALS,it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(userContext));
}else{
sql.addSQLClause("AND", "V_LINEA_ATTIVITA_VALIDA.ESERCIZIO",sql.EQUALS,it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(userContext));
}
sql.addSQLClause("AND", "V_LINEA_ATTIVITA_VALIDA.PG_PROGETTO",sql.EQUALS,modulo);
return home.fetchAll(sql);
}catch(it.cnr.jada.persistency.PersistencyException ex){
throw handleException(ex);
}
}

}
Expand Up @@ -20,4 +20,5 @@ public interface Linea_attivitaComponentSession extends it.cnr.jada.ejb.CRUDComp
java.util.List findListaGAEWS(it.cnr.jada.UserContext userContext,String cdr,String tipo,String query,String dominio,String tipoRicerca,String tipoFiltro)throws it.cnr.jada.comp.ComponentException,java.rmi.RemoteException;
WorkpackageBulk completaOggetto(UserContext userContext,WorkpackageBulk linea)throws ComponentException, PersistencyException,java.rmi.RemoteException;
void Inserimento_BLOB(UserContext userContext,it.cnr.jada.bulk.OggettoBulk oggetto,java.io.File file)throws ComponentException, PersistencyException, EJBException, java.rmi.RemoteException;
java.util.List findListaGAEFEWS(it.cnr.jada.UserContext userContext,String cdr,Integer modulo)throws it.cnr.jada.comp.ComponentException,java.rmi.RemoteException;
}
Expand Up @@ -176,4 +176,22 @@ public void Inserimento_BLOB(UserContext param0,it.cnr.jada.bulk.OggettoBulk par
throw uncaughtError(param0,componentObj,e);
}
}
public java.util.List findListaGAEFEWS(it.cnr.jada.UserContext param0,String param1,Integer param2) throws it.cnr.jada.comp.ComponentException,javax.ejb.EJBException {
pre_component_invocation(param0,componentObj);
try {
java.util.List result = ((Linea_attivitaComponent)componentObj).findListaGAEFEWS(param0,param1,param2);
component_invocation_succes(param0,componentObj);
return result;
} catch(it.cnr.jada.comp.NoRollbackException e) {
component_invocation_succes(param0,componentObj);
throw e;
} catch(it.cnr.jada.comp.ComponentException e) {
component_invocation_failure(param0,componentObj);
throw e;
} catch(RuntimeException e) {
throw uncaughtRuntimeException(param0,componentObj,e);
} catch(Error e) {
throw uncaughtError(param0,componentObj,e);
}
}
}
Expand Up @@ -401,4 +401,23 @@ public void Inserimento_BLOB(UserContext param0,it.cnr.jada.bulk.OggettoBulk par
}
}
}
public List findListaGAEFEWS(UserContext userContext, String cdr, Integer modulo)
throws ComponentException, RemoteException {
try {
return (java.util.List)invoke("findListaGAEFEWS",new Object[] {
userContext,
cdr,
modulo});
} catch(java.rmi.RemoteException e) {
throw e;
} catch(java.lang.reflect.InvocationTargetException e) {
try {
throw e.getTargetException();
} catch(it.cnr.jada.comp.ComponentException ex) {
throw ex;
} catch(Throwable ex) {
throw new java.rmi.RemoteException("Uncaugth exception",ex);
}
}
}
}
Expand Up @@ -33,6 +33,7 @@ public class Constants
public static final Integer ERRORE_SIP_117 = new Integer(117);
public static final Integer ERRORE_SIP_118 = new Integer(118);
public static final Integer ERRORE_SIP_119 = new Integer(119);
public static final Integer ERRORE_SIP_120 = new Integer(120);
public final static java.util.Dictionary<Integer,String> erroriSIP;
static {
erroriSIP = new it.cnr.jada.util.OrderedHashtable();
Expand All @@ -56,6 +57,7 @@ public class Constants
erroriSIP.put(ERRORE_SIP_117, "Non è stato definito il CDR per la ricerca");
erroriSIP.put(ERRORE_SIP_118, "Non è stato definito il tipo: 'E' Entrata o 'S' Spesa");
erroriSIP.put(ERRORE_SIP_119, "Formato Matricola errato");
erroriSIP.put(ERRORE_SIP_120, "Non è stato definito un parametro obbligatorio");
}

public static final String RICHIESTE_IN_CORSO = "C";
Expand Down

0 comments on commit 61bae7a

Please sign in to comment.