193 lines
8.6 KiB
Plaintext
Executable File
193 lines
8.6 KiB
Plaintext
Executable File
package com.fp.general.security.rules;
|
|
|
|
import com.fp.dto.rules.TransactionRule;
|
|
import com.fp.dto.save.SaveBean;
|
|
import com.fp.dto.save.SaveRequest;
|
|
import com.fp.persistence.commondb.PersistenceHelper;
|
|
import com.fp.persistence.pgeneral.menu.TgeneMenuLevel;
|
|
import com.fp.persistence.pgeneral.menu.TgeneMenuLevelDesc;
|
|
import com.fp.persistence.pgeneral.menu.TgeneMenuLevelKey;
|
|
import com.fp.persistence.pgeneral.menu.TgeneMenuSubLevel;
|
|
import com.fp.persistence.pgeneral.menu.TgeneMenuSubLevelDesc;
|
|
import com.fp.persistence.pgeneral.menu.TgeneMenuSubLevelKey;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
import javax.persistence.Query;
|
|
|
|
/**
|
|
* Clase que se encarga de del mantenimiento de menu para que se vuelva mas simple su manejo
|
|
* @author scastillo
|
|
*/
|
|
public class MaintenanceMenu extends TransactionRule {
|
|
|
|
/**
|
|
* Metodo que se ejecuta en modo normal
|
|
* @param pSaveRequest
|
|
* @return
|
|
* @throws Exception
|
|
*/
|
|
@Override
|
|
public SaveRequest normalProcess(SaveRequest pSaveRequest) throws Exception {
|
|
List<Object> lmodifyMenuLevel = pSaveRequest.getSaveBeanModifiedRecords("TGENEMENULEVELDESC");
|
|
this.completeMenuLevel(pSaveRequest, lmodifyMenuLevel);
|
|
|
|
List<Object> ldeleteMenuLevel = pSaveRequest.getSaveBeanDeletedRecords("TGENEMENULEVELDESC");
|
|
this.deleteMenuLevel(pSaveRequest, ldeleteMenuLevel);
|
|
List<Object> lmodifyMenuSubLevel = pSaveRequest.getSaveBeanModifiedRecords("TGENEMENUSUBLEVELDESC");
|
|
this.completeMenuSubLevel(pSaveRequest, lmodifyMenuSubLevel);
|
|
|
|
List<Object> ldeleteMenuSubLevel = pSaveRequest.getSaveBeanDeletedRecords("TGENEMENUSUBLEVELDESC");
|
|
this.deleteMenuSubLevel(pSaveRequest, ldeleteMenuSubLevel);
|
|
return pSaveRequest;
|
|
}
|
|
|
|
/**
|
|
* Metodo que se encarga de verificar los datos cuando estos son eliminados
|
|
* @param pSaveRequest
|
|
* @param lmodifyMenuLevel
|
|
* @throws Exception
|
|
*/
|
|
private void completeMenuLevel(SaveRequest pSaveRequest, List<Object> lmodifyMenuLevel) throws Exception {
|
|
if (lmodifyMenuLevel != null) {
|
|
List<TgeneMenuLevel> lTgeneMenuLevel = new ArrayList<TgeneMenuLevel>();
|
|
for (int i = 0; i < lmodifyMenuLevel.size(); i++) {
|
|
TgeneMenuLevelDesc tgeneMenuLevelDesc = (TgeneMenuLevelDesc) lmodifyMenuLevel.get(i);
|
|
Integer presentationorder = new Integer(tgeneMenuLevelDesc.get("presentationorder").toString());
|
|
|
|
TgeneMenuLevelKey TgeneMenuLevelKey = new TgeneMenuLevelKey();
|
|
TgeneMenuLevelKey.setMenucode(tgeneMenuLevelDesc.getPk().getMenucode());
|
|
TgeneMenuLevelKey.setLevelcode(tgeneMenuLevelDesc.getPk().getLevelcode());
|
|
TgeneMenuLevel tgeneMenuLevel = TgeneMenuLevel.find(PersistenceHelper.getEntityManager(), TgeneMenuLevelKey);
|
|
if (tgeneMenuLevel == null) {
|
|
tgeneMenuLevel = new TgeneMenuLevel();
|
|
tgeneMenuLevel.setPk(TgeneMenuLevelKey);
|
|
tgeneMenuLevel.setHavesublevel("Y");
|
|
tgeneMenuLevel.setPresentationorder(presentationorder);
|
|
lTgeneMenuLevel.add(tgeneMenuLevel);
|
|
} else {
|
|
if (tgeneMenuLevel.getPresentationorder() != presentationorder) {
|
|
tgeneMenuLevel.setPresentationorder(presentationorder);
|
|
lTgeneMenuLevel.add(tgeneMenuLevel);
|
|
}
|
|
}
|
|
}
|
|
if (lTgeneMenuLevel.size() > 0) {
|
|
pSaveRequest.putSaveBean("TGENEMENULEVEL", lTgeneMenuLevel, 1);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param pSaveRequest
|
|
* @param ldeleteMenuLevel
|
|
* @throws Exception
|
|
*/
|
|
private void deleteMenuLevel(SaveRequest pSaveRequest, List<Object> ldeleteMenuLevel) throws Exception {
|
|
if(ldeleteMenuLevel == null){
|
|
return;
|
|
}
|
|
List<Object> ldeleterecors = new ArrayList<Object>();
|
|
for (int i = 0; i < ldeleteMenuLevel.size(); i++) {
|
|
TgeneMenuLevelDesc tgeneMenuLevelDesc = (TgeneMenuLevelDesc) ldeleteMenuLevel.get(i);
|
|
TgeneMenuLevelKey TgeneMenuLevelKey = new TgeneMenuLevelKey();
|
|
TgeneMenuLevelKey.setMenucode(tgeneMenuLevelDesc.getPk().getMenucode());
|
|
TgeneMenuLevelKey.setLevelcode(tgeneMenuLevelDesc.getPk().getLevelcode());
|
|
TgeneMenuLevel tgeneMenuLevel = TgeneMenuLevel.find(PersistenceHelper.getEntityManager(), TgeneMenuLevelKey);
|
|
if (tgeneMenuLevel != null) {
|
|
ldeleterecors.add(tgeneMenuLevel);
|
|
}
|
|
}
|
|
if(!ldeleterecors.isEmpty()){
|
|
SaveBean sb = (SaveBean)pSaveRequest.get("TGENEMENULEVEL");
|
|
if(sb!=null){
|
|
sb.setDeletedRecords(ldeleterecors);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Metodo que completa y modificalos datos para subniveles
|
|
* @param pSaveRequest
|
|
* @param lmodifyMenuSubLevel
|
|
* @throws Exception
|
|
*/
|
|
private void completeMenuSubLevel(SaveRequest pSaveRequest, List<Object> lmodifyMenuSubLevel) throws Exception {
|
|
if (lmodifyMenuSubLevel != null) {
|
|
List<TgeneMenuSubLevel> lTgeneMenuSubLevel = new ArrayList<TgeneMenuSubLevel>();
|
|
for (int i = 0; i < lmodifyMenuSubLevel.size(); i++) {
|
|
TgeneMenuSubLevelDesc tgeneMenuSubLevelDesc = (TgeneMenuSubLevelDesc) lmodifyMenuSubLevel.get(i);
|
|
Integer presentationorder = new Integer(tgeneMenuSubLevelDesc.get("presentationorder").toString());
|
|
TgeneMenuSubLevelKey tgeneMenuSubLevelKey = new TgeneMenuSubLevelKey();
|
|
tgeneMenuSubLevelKey.setMenucode(tgeneMenuSubLevelDesc.getPk().getMenucode());
|
|
tgeneMenuSubLevelKey.setLevelcode(tgeneMenuSubLevelDesc.getPk().getLevelcode());
|
|
tgeneMenuSubLevelKey.setSublevel(tgeneMenuSubLevelDesc.getPk().getSublevel());
|
|
TgeneMenuSubLevel tgeneMenuSubLevel = TgeneMenuSubLevel.find(PersistenceHelper.getEntityManager(), tgeneMenuSubLevelKey);
|
|
if (tgeneMenuSubLevel == null) {
|
|
tgeneMenuSubLevel = new TgeneMenuSubLevel();
|
|
tgeneMenuSubLevel.setPk(tgeneMenuSubLevelKey);
|
|
tgeneMenuSubLevel.setPresentationorder(presentationorder);
|
|
lTgeneMenuSubLevel.add(tgeneMenuSubLevel);
|
|
} else {
|
|
if (tgeneMenuSubLevel.getPresentationorder() != presentationorder) {
|
|
tgeneMenuSubLevel.setPresentationorder(presentationorder);
|
|
lTgeneMenuSubLevel.add(tgeneMenuSubLevel);
|
|
}
|
|
}
|
|
}
|
|
if (lTgeneMenuSubLevel.size() > 0) {
|
|
pSaveRequest.putSaveBean("TGENEMENUSUBLEVEL", lTgeneMenuSubLevel, 1);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param pSaveRequest
|
|
* @param ldeleteMenuLevel
|
|
* @throws Exception
|
|
*/
|
|
private void deleteMenuSubLevel(SaveRequest pSaveRequest, List<Object> ldeleteMenuSubLevel) throws Exception {
|
|
if(ldeleteMenuSubLevel == null){
|
|
return;
|
|
}
|
|
List<Object> ldeleterecors = new ArrayList<Object>();
|
|
for (int i = 0; i < ldeleteMenuSubLevel.size(); i++) {
|
|
TgeneMenuSubLevelDesc tgeneMenuSubLevelDesc = (TgeneMenuSubLevelDesc) ldeleteMenuSubLevel.get(i);
|
|
TgeneMenuSubLevelKey TgeneMenuSubLevelKey = new TgeneMenuSubLevelKey();
|
|
TgeneMenuSubLevelKey.setMenucode(tgeneMenuSubLevelDesc.getPk().getMenucode());
|
|
TgeneMenuSubLevelKey.setLevelcode(tgeneMenuSubLevelDesc.getPk().getLevelcode());
|
|
TgeneMenuSubLevelKey.setSublevel(tgeneMenuSubLevelDesc.getPk().getSublevel());
|
|
TgeneMenuSubLevel tgeneMenuSubLevel = TgeneMenuSubLevel.find(PersistenceHelper.getEntityManager(), TgeneMenuSubLevelKey);
|
|
PersistenceHelper.delete(tgeneMenuSubLevelDesc);
|
|
if (tgeneMenuSubLevel != null) {
|
|
PersistenceHelper.delete(tgeneMenuSubLevel);
|
|
//ldeleterecors.add(tgeneMenuSubLevel);
|
|
}
|
|
}
|
|
SaveBean sb = (SaveBean)pSaveRequest.get("TGENEMENUSUBLEVELDESC");
|
|
if(sb!=null){
|
|
sb.setDeletedRecords(new ArrayList<>());
|
|
}
|
|
//if(!ldeleterecors.isEmpty()){
|
|
// SaveBean sb = (SaveBean)pSaveRequest.get("TGENEMENUSUBLEVEL");
|
|
// if(sb!=null){
|
|
// sb.setDeletedRecords(ldeleterecors);
|
|
// }
|
|
//}
|
|
}
|
|
|
|
/**
|
|
* Metodo que se ejecuta en modo reverso
|
|
* @param pSaveRequest
|
|
* @return
|
|
* @throws Exception
|
|
*/
|
|
@Override
|
|
public SaveRequest reverseProcess(SaveRequest pSaveRequest) throws Exception {
|
|
return pSaveRequest;
|
|
}
|
|
}
|