101 lines
3.4 KiB
Java
101 lines
3.4 KiB
Java
package xml;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
import mnp.xml.dao.msp.NotifyCreditTransferDonorESP;
|
|
|
|
import testUtil.TestProcessCache;
|
|
|
|
import db.ManagerDAO;
|
|
|
|
public class XMLNotificaMspCoopTcGenerator extends AbstractXmlGenerator {
|
|
|
|
protected TestProcessCache testProcessCache = TestProcessCache.getInstance();
|
|
|
|
public XMLNotificaMspCoopTcGenerator() {
|
|
managerDAO = new ManagerDAO();
|
|
}
|
|
|
|
/**
|
|
* generateXml
|
|
*
|
|
* NOTIFICA TRASFERIMENTO CREDITO
|
|
* args[0] selettore per il tipo di notifica da effettuare ('MSPCOOP_TC')
|
|
* args[1] processType (tipo di processo: DON, DON_VIRT, REC_VIRT)
|
|
* args[2] tipo evento (trasferimento = 01, sblocco credito anomalo = 02, sblocco importo = 03)
|
|
* args[3] id richiesta (id della richiesta dbc associata)
|
|
* args[4] credito residuo (xxxxx.xx)
|
|
* args[5] verifica credito anomalo (flag Y|N)
|
|
*
|
|
* @return String
|
|
* @throws Exception
|
|
*/
|
|
public String[] generateXml(String[] args) throws Exception {
|
|
|
|
if(args.length != 5)
|
|
throw new Exception("Numero parametri errato!");
|
|
|
|
String records[] = null;
|
|
String idRichiesta = args[1];
|
|
String processType = args[2];
|
|
String tipoEvento = args[3];
|
|
String creditoResiduo = args[4];
|
|
|
|
checkFields(processType, tipoEvento, creditoResiduo);
|
|
|
|
List request = new ArrayList();
|
|
|
|
NotifyCreditTransferDonorESP richiestaTc = new NotifyCreditTransferDonorESP();
|
|
if("NULL".equals(idRichiesta)){
|
|
if(tipoEvento.equals("01")){
|
|
request = managerDAO.getIdRichiestaMspCoop(processType);
|
|
} else if(tipoEvento.equals("03")) {
|
|
request = managerDAO.getIdRichiestaMspCoopByState(processType, tipoEvento);
|
|
}
|
|
//ciclo sulle coppie di id_richiesta/ business id acquisite
|
|
if(request != null && request.size() > 0){
|
|
records = new String[request.size()];
|
|
for(int i = 0; i < request.size(); i++){
|
|
richiestaTc.setID_RICHIESTA_DBC((String)request.get(i));
|
|
richiestaTc.setIMPORTO_CREDITO_RESIDUO(creditoResiduo);
|
|
richiestaTc.setTIPO_EVENTO(tipoEvento);
|
|
records[i] = getXmlFromCastorObject(richiestaTc, false);
|
|
}
|
|
} else
|
|
throw new Exception("NON SONO PRESENTI SUL DB DATI COMPATIBILI CON I PARAMETRI DI INPUT");
|
|
} else {
|
|
String businessId = managerDAO.verificaEsistenzaIdRichiestaMspCoop(processType, idRichiesta);
|
|
// if(tipoEvento.equals("01")){
|
|
// do nothing
|
|
// } else
|
|
if(tipoEvento.equals("03")) {
|
|
request = managerDAO.verificaEsistenzaRichiestaTcMspCoop(processType, idRichiesta, tipoEvento);
|
|
if(request == null || request.size() == 0)
|
|
throw new Exception("SUL DB NON E' PRESENTE NESSUNA RICHIESTA DI TC AVENTE ID RICHIESTA = " + idRichiesta);
|
|
}
|
|
richiestaTc.setID_RICHIESTA_DBC(idRichiesta);
|
|
richiestaTc.setIMPORTO_CREDITO_RESIDUO(creditoResiduo);
|
|
richiestaTc.setTIPO_EVENTO(tipoEvento);
|
|
records = new String[1];
|
|
records[0] = getXmlFromCastorObject(richiestaTc, false);
|
|
}
|
|
|
|
return records;
|
|
}
|
|
|
|
private void checkFields(String processType, String tipoEvento, String creditoResiduo) throws Exception {
|
|
if( !( processType.equals("DON") || processType.equals("DON_VIRT") || processType.equals("REC_VIRT") ) )
|
|
throw new Exception("PROCESS TYPE ERRATO!");
|
|
|
|
if( !( tipoEvento.equals("01") || tipoEvento.equals("03") ) )
|
|
throw new Exception("TIPO EVENTO ERRATO!");
|
|
|
|
String pattern = "[0-9]{1,5}[.][0-9]{2,2}";
|
|
if(!creditoResiduo.matches(pattern))
|
|
throw new Exception("VALORE CREDITO RESIDUO NON VALIDO!");
|
|
|
|
}
|
|
|
|
}
|