maia/.svn/pristine/17/17dce5c7a9fb60886f9dd0b9dbd...

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;
}
}