138 lines
5.5 KiB
Plaintext
Executable File
138 lines
5.5 KiB
Plaintext
Executable File
package com.fp.person.rules.save;
|
|
|
|
import java.sql.Timestamp;
|
|
import java.util.ArrayList;
|
|
import java.util.Calendar;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
|
|
import org.joda.time.DateTime;
|
|
|
|
import com.fp.dto.rules.TransactionRule;
|
|
import com.fp.dto.save.SaveRequest;
|
|
import com.fp.persistence.commondb.PersistenceHelper;
|
|
import com.fp.persistence.commondb.helper.FormatDates;
|
|
import com.fp.persistence.pcustomer.company.TcustCompany;
|
|
import com.fp.persistence.pcustomer.company.TcustCompanyKey;
|
|
import com.fp.persistence.pcustomer.gene.TcustPerson;
|
|
import com.fp.persistence.pcustomer.gene.TcustPersonAddress;
|
|
import com.fp.persistence.pcustomer.gene.TcustPersonAddressKey;
|
|
import com.fp.persistence.pcustomer.gene.TcustPersonDetail;
|
|
import com.fp.persistence.pcustomer.gene.TcustPersonDetailKey;
|
|
import com.fp.persistence.pcustomer.gene.TcustPersonPhone;
|
|
import com.fp.persistence.pcustomer.gene.TcustPersonPhoneKey;
|
|
import com.fp.sessionbeans.helper.Sequence;
|
|
|
|
public class JuridicalPerson extends TransactionRule {
|
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
@SuppressWarnings("unchecked")
|
|
@Override
|
|
public SaveRequest normalProcess(SaveRequest pSaveRequest) throws Exception {
|
|
try {
|
|
TcustPersonDetail detallesPersona=(TcustPersonDetail)pSaveRequest.get("PERSON");
|
|
TcustCompany company=(TcustCompany)pSaveRequest.get("COMPANY");
|
|
List<TcustPersonAddress> direcciones=(List<TcustPersonAddress>)pSaveRequest.get("ADDRESSES");
|
|
List<TcustPersonPhone> telefonos=(List<TcustPersonPhone>)pSaveRequest.get("PHONES");
|
|
|
|
//Persistiendo el TCUSTPERSON
|
|
TcustPersonDetailKey pkDetallesPersona=new TcustPersonDetailKey();
|
|
|
|
Calendar calendarioDateto=Calendar.getInstance();
|
|
calendarioDateto.set(Calendar.YEAR, 2999);
|
|
calendarioDateto.set(Calendar.MONTH, Calendar.DECEMBER);
|
|
calendarioDateto.set(Calendar.DAY_OF_MONTH,31);
|
|
calendarioDateto.set(Calendar.MILLISECOND, 0);
|
|
calendarioDateto.set(Calendar.SECOND, 0);
|
|
calendarioDateto.set(Calendar.MINUTE, 0);
|
|
calendarioDateto.set(Calendar.HOUR, 0);
|
|
|
|
//Caso en que la persona es nueva
|
|
if(detallesPersona.isnew && (detallesPersona.getPk()==null || detallesPersona.getPk().getPersoncode()==null)){
|
|
Sequence sequence = new Sequence();
|
|
Integer personcode=Integer.valueOf(sequence.getNextValue("PERSONCODE").toString());
|
|
TcustPerson persona=new TcustPerson();
|
|
if(personcode!=null){
|
|
persona.setPk(personcode);
|
|
pkDetallesPersona.setPersoncode(personcode);
|
|
//PersistenceHelper.getEntityManager().persist(persona);
|
|
}
|
|
|
|
pkDetallesPersona.setDateto(FormatDates.getDefaultExpiryTimestamp());
|
|
detallesPersona.setPk(pkDetallesPersona);
|
|
}else{
|
|
pkDetallesPersona=detallesPersona.getPk();
|
|
}
|
|
|
|
//Persistiendo el TCUSTPERSONDETAIL
|
|
if(!detallesPersona.isnew){
|
|
detallesPersona=(TcustPersonDetail)PersistenceHelper.getEntityManager().merge(detallesPersona);
|
|
}
|
|
//PersistenceHelper.getEntityManager().persist(detallesPersona);
|
|
|
|
//Persistiendo el TCUSTCOMPANY
|
|
//Caso en que la compannia es nueva
|
|
// if(company.isnew && (company.getPk()==null || company.getPk().getPersoncode()==null)){
|
|
TcustCompanyKey pkJuridica=new TcustCompanyKey();
|
|
// pkJuridica.setDateto(new Timestamp(calendarioDateto.getTimeInMillis()));
|
|
pkJuridica.setDateto(FormatDates.getDefaultExpiryTimestamp());
|
|
pkJuridica.setPersoncode(pkDetallesPersona.getPersoncode());
|
|
company.setPk(pkJuridica);
|
|
// }
|
|
|
|
/* if(!company.isnew){
|
|
company=(TcustCompany)PersistenceHelper.getEntityManager().merge(company);
|
|
}*/
|
|
// PersistenceHelper.getEntityManager().persist(company);
|
|
|
|
//Persistiendo las direcciones
|
|
for (TcustPersonAddress direccion : direcciones) {
|
|
if(direccion.getPk()!=null && direccion.getPk().getAddressnumber()!=null && direccion.getPk().getPersoncode()!=null && direccion.getPk().getDateto()!=null){
|
|
direccion=PersistenceHelper.getEntityManager().merge(direccion);
|
|
//PersistenceHelper.getEntityManager().persist(direccion);
|
|
}else{
|
|
TcustPersonAddressKey pkDireccion=new TcustPersonAddressKey();
|
|
pkDireccion.setPersoncode(pkDetallesPersona.getPersoncode());
|
|
pkDireccion.setDateto(FormatDates.getDefaultExpiryTimestamp());
|
|
|
|
direccion.setPk(pkDireccion);
|
|
direccion.setDatefrom(new Timestamp(Calendar.getInstance().getTimeInMillis()));
|
|
PersistenceHelper.getEntityManager().persist(direccion);
|
|
}
|
|
}
|
|
|
|
//Persistiendo los telefonos
|
|
for (TcustPersonPhone telefono : telefonos) {
|
|
if(telefono.getPk()!=null && telefono.getPk().getPersoncode()!=null){
|
|
telefono=PersistenceHelper.getEntityManager().merge(telefono);
|
|
//PersistenceHelper.getEntityManager().persist(telefono);
|
|
}else{
|
|
TcustPersonPhoneKey pkTelefono=new TcustPersonPhoneKey();
|
|
pkTelefono.setPersoncode(pkDetallesPersona.getPersoncode());
|
|
pkTelefono.setDateto(FormatDates.getDefaultExpiryTimestamp());
|
|
|
|
telefono.setPk(pkTelefono);
|
|
telefono.setDatefrom(new Timestamp(Calendar.getInstance().getTimeInMillis()));
|
|
PersistenceHelper.getEntityManager().persist(telefono);
|
|
}
|
|
}
|
|
|
|
// PersistenceHelper.getEntityManager().flush();
|
|
|
|
} catch (Exception e) {
|
|
return pSaveRequest;
|
|
}
|
|
return pSaveRequest;
|
|
}
|
|
|
|
@Override
|
|
public SaveRequest reverseProcess(SaveRequest arg0) throws Exception {
|
|
|
|
return arg0;
|
|
}
|
|
|
|
|
|
|
|
}
|