BUG 5785 Fix Bug Validation of the parent and existing department.

This commit is contained in:
Hector Cortez
2012-01-27 17:53:06 -04:00
parent b36d870200
commit 1658b48c09
3 changed files with 45 additions and 19 deletions

View File

@@ -964,7 +964,17 @@ class wsBase
return $result; return $result;
} }
$department = new department(); $department = new Department();
if ( ($parentUID != '') && !($department->existsDepartment($parentUID)) ) {
$result = new wsCreateDepartmentResponse (26, G::loadTranslation ('ID_PARENT_DEPARTMENT_NOT_EXIST'), $parentUID);
return $result;
}
if ( $department->checkDepartmentName($departmentName, $parentUID ) ) {
$result = new wsCreateDepartmentResponse (27, G::loadTranslation ('ID_DEPARTMENT_EXISTS'), '');
return $result;
}
$row['DEP_TITLE'] = $departmentName; $row['DEP_TITLE'] = $departmentName;
$row['DEP_PARENT'] = $parentUID; $row['DEP_PARENT'] = $parentUID;

View File

@@ -444,6 +444,37 @@ function getDepartments( $DepParent ) {
} }
} }
/**
* Check department name exist in the level
* @param string $departmentName name of the department
* @param string $parentUID parent UID of the department
* @param string $departmentUID department UID
* @return boolean $Fields true or false
*
*/
function checkDepartmentName($departmentName, $parentUID, $departmentUID = '' )
{
$oCriteria = new Criteria('workflow');
$oCriteria->clearSelectColumns();
$oCriteria->addSelectColumn( ContentPeer::CON_CATEGORY );
$oCriteria->addSelectColumn( ContentPeer::CON_VALUE );
$oCriteria->addSelectColumn( DepartmentPeer::DEP_PARENT );
$oCriteria->add(ContentPeer::CON_CATEGORY, 'DEPO_TITLE');
$oCriteria->addJoin(ContentPeer::CON_ID, DepartmentPeer::DEP_UID, Criteria::LEFT_JOIN);
$oCriteria->add(ContentPeer::CON_VALUE, $departmentName);
$oCriteria->add(DepartmentPeer::DEP_UID, $departmentUID, Criteria::NOT_EQUAL);
$oCriteria->add(ContentPeer::CON_LANG, SYS_LANG );
$oCriteria->add(DepartmentPeer::DEP_PARENT, $parentUID);
$oDataset = DepartmentPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$aRow = $oDataset->getRow();
return ($aRow) ? true : false;
}
function getUsersFromDepartment( $sDepUid, $sManagerUid ) { function getUsersFromDepartment( $sDepUid, $sManagerUid ) {
try { try {
$oCriteria = new Criteria('workflow'); $oCriteria = new Criteria('workflow');

View File

@@ -185,24 +185,9 @@ switch ($_POST['action'])
$dep_name = $_REQUEST['name']; $dep_name = $_REQUEST['name'];
$dep_uid = $_REQUEST['uid']; $dep_uid = $_REQUEST['uid'];
$oCriteria = new Criteria('workflow'); $oDepartment = new Department();
$oCriteria->clearSelectColumns(); $checkVal = $oDepartment->checkDepartmentName($dep_name, $parent, $dep_uid );
$oCriteria->addSelectColumn( ContentPeer::CON_CATEGORY ); echo ( !$checkVal ) ? 'true' : 'false';
$oCriteria->addSelectColumn( ContentPeer::CON_VALUE );
$oCriteria->addSelectColumn(DepartmentPeer::DEP_PARENT);
$oCriteria->add(ContentPeer::CON_CATEGORY, 'DEPO_TITLE');
$oCriteria->addJoin(ContentPeer::CON_ID, DepartmentPeer::DEP_UID, Criteria::LEFT_JOIN);
$oCriteria->add(ContentPeer::CON_VALUE, $dep_name);
$oCriteria->add(DepartmentPeer::DEP_UID,$dep_uid,Criteria::NOT_EQUAL);
$oCriteria->add(ContentPeer::CON_LANG, SYS_LANG );
$oCriteria->add(DepartmentPeer::DEP_PARENT,$parent);
$oDataset = DepartmentPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$aRow = $oDataset->getRow();
echo (!$aRow) ? 'true' : 'false';
break; break;
case 'saveDepartment': case 'saveDepartment':