PM-3475: 0018278: Desaparecen casos al cambiar el tipo de derivacion

optimizacion de query

cambio de metodo en criteria builder

validacion SELF_SERVICE_VALUE_BASED

se considera tambien de SELF SERVICE VALUE BASED a SELF SERVICE
This commit is contained in:
marcelo.cuiza
2015-09-08 16:07:09 -04:00
parent 2f641e76cd
commit ad2faf3126

View File

@@ -498,8 +498,9 @@ class Task extends BaseTask
try { try {
$con->begin(); $con->begin();
$this->load($fields["TAS_UID"]); $oldValues = $this->load($fields["TAS_UID"]);
$this->fromArray($fields, BasePeer::TYPE_FIELDNAME); $this->fromArray($fields, BasePeer::TYPE_FIELDNAME);
$this->validateAssignType($fields,$oldValues);
if ($this->validate()) { if ($this->validate()) {
$taskDefTitlePrevious = null; $taskDefTitlePrevious = null;
@@ -787,5 +788,29 @@ class Task extends BaseTask
return $event_uid; return $event_uid;
} }
public function validateAssignType($newValues,$oldValues)
{
if(isset($newValues['TAS_ASSIGN_TYPE']) && isset($oldValues['TAS_ASSIGN_TYPE'])) {
$newAssigType = $newValues['TAS_ASSIGN_TYPE'];
$oldAssigType = $oldValues['TAS_ASSIGN_TYPE'];
if($newAssigType == 'SELF_SERVICE'){
$newAssigType = isset($newValues['TAS_GROUP_VARIABLE'])?(empty($newValues['TAS_GROUP_VARIABLE'])?'SELF_SERVICE':'SELF_SERVICE_VALUE_BASED'):'SELF_SERVICE';
}
if($oldAssigType == 'SELF_SERVICE'){
$oldAssigType = isset($oldValues['TAS_GROUP_VARIABLE'])?(empty($oldValues['TAS_GROUP_VARIABLE'])?'SELF_SERVICE':'SELF_SERVICE_VALUE_BASED'):'SELF_SERVICE';
}
if(($oldAssigType == 'SELF_SERVICE' && $newAssigType != 'SELF_SERVICE') || ($oldAssigType == 'SELF_SERVICE_VALUE_BASED' && $newAssigType != 'SELF_SERVICE_VALUE_BASED')) {
$oCriteria = new Criteria();
$oCriteria->add(AppDelegationPeer::DEL_THREAD_STATUS, "OPEN");
$oCriteria->add(AppDelegationPeer::TAS_UID, $newValues['TAS_UID']);
$oApplication = AppDelegationPeer::doSelectOne($oCriteria);
if(!empty($oApplication)) {
throw (new Exception(G::LoadTranslation('ID_CURRENT_ASSING_TYPE_WITH_CASES')));
}
}
}
}
} }