Changeset 2042 for trunk/workflow
- Timestamp:
- 02/22/10 16:23:36 (14 years ago)
- Location:
- trunk/workflow
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/workflow/inc/class.bo_orgchart.inc.php
r1245 r2042 524 524 function listArea($params) 525 525 { 526 $result = $this->so->getArea($params['organizacao_id'] );526 $result = $this->so->getArea($params['organizacao_id'], $params['area_id']); 527 527 $this->disconnect_all(); 528 528 … … 552 552 function addArea($params) 553 553 { 554 $result = $this->so->addArea($params['centro_custo_id'], $params['organizacao_id'], $params['area_status_id'], $this->_nullReplace($params[' substituto_funcionario_id']), $this->_nullReplace($params['titular_funcionario_id']), $this->_nullReplace($params['superior_area_id']), $params['sigla'], $params['descricao'], $params['ativa'], $this->_nullReplace($params['auxiliar_funcionario_id']));554 $result = $this->so->addArea($params['centro_custo_id'], $params['organizacao_id'], $params['area_status_id'], $this->_nullReplace($params['titular_funcionario_id']), $this->_nullReplace($params['superior_area_id']), $params['sigla'], $params['descricao'], $params['ativa'], $this->_nullReplace($params['auxiliar_funcionario_id'])); 555 555 $this->disconnect_all(); 556 556 … … 566 566 function updateArea($params) 567 567 { 568 $result = $this->so->updateArea($params['centro_custo_id'], $params['organizacao_id'], $params['area_status_id'], $this->_nullReplace($params[' substituto_funcionario_id']), $this->_nullReplace($params['titular_funcionario_id']), $this->_nullReplace($params['superior_area_id']), $params['sigla'], $params['descricao'], $params['ativa'], $this->_nullReplace($params['auxiliar_funcionario_id']), $params['area_id']);568 $result = $this->so->updateArea($params['centro_custo_id'], $params['organizacao_id'], $params['area_status_id'], $this->_nullReplace($params['titular_funcionario_id']), $this->_nullReplace($params['superior_area_id']), $params['sigla'], $params['descricao'], $params['ativa'], $this->_nullReplace($params['auxiliar_funcionario_id']), $params['area_id']); 569 569 $this->disconnect_all(); 570 570 … … 669 669 return $result; 670 670 } 671 672 /** 673 * Add a substitution to an specific area 674 * @param array $params An array filled by the substitution parameters 675 * @return bool TRUE if we are successfull, FALSE otherwise 676 * @access public 677 */ 678 function addSubstitution( $params ) 679 { 680 $result = $this -> so -> addSubstitution( $params[ 'organizacao_id' ], $params[ 'area_id' ], $params[ 'substituto_funcionario_id' ], $params[ 'data_inicio' ], $params[ 'data_fim' ] ); 681 $this->disconnect_all( ); 682 683 return $result; 684 } 685 686 /** 687 * Update a substitution 688 * @param array $params An array filled by the substitution parameters 689 * @return bool TRUE if we are successfull, FALSE otherwise 690 * @access public 691 */ 692 function updateSubstitution( $params ) 693 { 694 $result = $this -> so -> updateSubstitution( $params[ 'organizacao_id' ], $params[ 'area_id' ], $params[ 'substituto_funcionario_id' ], $params[ 'data_inicio' ], $params[ 'data_fim' ], $params['substituicao_id'] ); 695 $this->disconnect_all( ); 696 697 return $result; 698 } 699 700 /** 701 * List the substitutions for a given area. 702 * @param array $params An array containing the areaID 703 * @return array Substitution's list 704 * @access public 705 */ 706 function listSubstitution( $params ) 707 { 708 $result = $this -> so -> getSubstitutions( $params['organizacao_id'], $params[ 'area_id' ] ); 709 $this -> disconnect_all( ); 710 711 return $result; 712 } 713 714 /** 715 * Remove a substitution 716 * @param array $params An array containing a substitutionID 717 * @return bool 718 * @access public 719 */ 720 function removeSubstitution( $params ) 721 { 722 $result = $this -> so -> removeSubstitution( $params['organizacao_id'], $params[ 'substituicao_id' ] ); 723 $this -> disconnect_all( ); 724 725 return $result; 726 } 671 727 } 672 728 ?> -
trunk/workflow/inc/class.so_orgchart.inc.php
r1446 r2042 739 739 $unifiedResult = array(); 740 740 741 /* FIXME - this piece of code should use the new CacheLdap class */ 741 742 if (is_numeric($searchTerm)) 742 743 { … … 890 891 * @access public 891 892 */ 892 function getArea($organizationID )893 function getArea($organizationID, $areaID = -1) 893 894 { 894 895 $this->_checkAccess($organizationID); 895 896 896 897 $output = array(); 897 898 $query = "SELECT area_id, centro_custo_id, organizacao_id, area_status_id, substituto_funcionario_id, titular_funcionario_id, superior_area_id, sigla, descricao, ativa, auxiliar_funcionario_id FROM area WHERE organizacao_id = ? ORDER BY sigla"; 899 $result = $this->db->query($query, array($organizationID)); 898 $values = array($organizationID); 899 900 // if we are looking for a specific area 901 $area_condition = ""; 902 if (($areaID != -1) && !empty($areaID)) { 903 $area_condition = " AND area_id = ? "; 904 $values[]= $areaID; 905 } 906 907 $query = "SELECT area_id, centro_custo_id, organizacao_id, area_status_id, titular_funcionario_id, superior_area_id, sigla, descricao, ativa, auxiliar_funcionario_id FROM area WHERE organizacao_id = ? " . $area_condition . " ORDER BY sigla"; 908 $result = $this->db->query($query, $values); 900 909 $this->_checkError($result); 901 910 … … 958 967 * @param int $organizationID O ID da organização. 959 968 * @param int $areaStatusID O ID do status da área. 960 * @param int $backupEmployeeID O ID do funcionário que está substituindo o superior da área.961 969 * @param int $supervisorID O ID do funcionário que é superior da área. 962 970 * @param int $superiorAreaID O ID da área que é superior a que está sendo adicionada (NULL caso não possua área superior). … … 968 976 * @access public 969 977 */ 970 function addArea($costCenterID, $organizationID, $areaStatusID, $ backupEmployeeID, $supervisorID, $superiorAreaID, $acronym, $description, $active, $assistantID)971 { 972 $this->_checkAccess($organizationID); 973 974 $checkEmployees = array($ backupEmployeeID, $supervisorID, $assistantID);978 function addArea($costCenterID, $organizationID, $areaStatusID, $supervisorID, $superiorAreaID, $acronym, $description, $active, $assistantID) 979 { 980 $this->_checkAccess($organizationID); 981 982 $checkEmployees = array($supervisorID, $assistantID); 975 983 $errors = array(); 976 984 foreach ($checkEmployees as $checkEmployee) … … 991 999 } 992 1000 993 $query = "INSERT INTO area(centro_custo_id, organizacao_id, area_status_id, substituto_funcionario_id, titular_funcionario_id, superior_area_id, sigla, descricao, ativa, auxiliar_funcionario_id) VALUES (?,?, ?, ?, ?, ?, ?, ?, ?, ?)";994 $result = $this->db->query($query, array($costCenterID, $organizationID, $areaStatusID, $ backupEmployeeID, $supervisorID, $superiorAreaID, $acronym, $description, $active, $assistantID));1001 $query = "INSERT INTO area(centro_custo_id, organizacao_id, area_status_id, titular_funcionario_id, superior_area_id, sigla, descricao, ativa, auxiliar_funcionario_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"; 1002 $result = $this->db->query($query, array($costCenterID, $organizationID, $areaStatusID, $supervisorID, $superiorAreaID, $acronym, $description, $active, $assistantID)); 995 1003 $this->_checkError($result); 996 1004 … … 1003 1011 * @param int $organizationID O ID da organização. 1004 1012 * @param int $areaStatusID O ID do status da área. 1005 * @param int $backupEmployeeID O ID do funcionário que está substituindo o superior da área.1006 1013 * @param int $supervisorID O ID do funcionário que é superior da área. 1007 1014 * @param int $superiorAreaID O ID da área que é superior a que está sendo atualizada (NULL caso não possua área superior). … … 1014 1021 * @access public 1015 1022 */ 1016 function updateArea($costCenterID, $organizationID, $areaStatusID, $ backupEmployeeID, $supervisorID, $superiorAreaID, $acronym, $description, $active, $assistantID, $areaID)1017 { 1018 $this->_checkAccess($organizationID); 1019 1020 $checkEmployees = array($ backupEmployeeID, $supervisorID, $assistantID);1023 function updateArea($costCenterID, $organizationID, $areaStatusID, $supervisorID, $superiorAreaID, $acronym, $description, $active, $assistantID, $areaID) 1024 { 1025 $this->_checkAccess($organizationID); 1026 1027 $checkEmployees = array($supervisorID, $assistantID); 1021 1028 $errors = array(); 1022 1029 foreach ($checkEmployees as $checkEmployee) … … 1033 1040 { 1034 1041 $errors[] = '-----------------'; 1035 $errors[] = 'Somente funcionários que estão vinculados a alguma área podem ser colocados na posição de titular , substitutoou auxiliar administrativo.';1042 $errors[] = 'Somente funcionários que estão vinculados a alguma área podem ser colocados na posição de titular ou auxiliar administrativo.'; 1036 1043 $this->endExecution($errors); 1037 1044 } 1038 1045 1039 $query = "UPDATE area SET centro_custo_id = ?, organizacao_id = ?, area_status_id = ?, substituto_funcionario_id = ?,titular_funcionario_id = ?, superior_area_id = ?, sigla = ?, descricao = ?, ativa = ?, auxiliar_funcionario_id = ? WHERE (area_id = ?)";1040 $result = $this->db->query($query, array($costCenterID, $organizationID, $areaStatusID, $ backupEmployeeID, $supervisorID, $superiorAreaID, $acronym, $description, $active, $assistantID, $areaID));1046 $query = "UPDATE area SET centro_custo_id = ?, organizacao_id = ?, area_status_id = ?, titular_funcionario_id = ?, superior_area_id = ?, sigla = ?, descricao = ?, ativa = ?, auxiliar_funcionario_id = ? WHERE (area_id = ?)"; 1047 $result = $this->db->query($query, array($costCenterID, $organizationID, $areaStatusID, $supervisorID, $superiorAreaID, $acronym, $description, $active, $assistantID, $areaID)); 1041 1048 $this->_checkError($result); 1042 1049 … … 1080 1087 1081 1088 $cachedLDAP = $GLOBALS['workflow']['factory']->newInstance('CachedLDAP'); 1089 1090 /* here we need fresh information. Let's access ldap first */ 1082 1091 $cachedLDAP->setOperationMode($cachedLDAP->OPERATION_MODE_LDAP_DATABASE); 1083 1092 $employeeEntry = $cachedLDAP->getEntryByID($employeeID); … … 1357 1366 return ( ( $result === false ) ? false : true ); 1358 1367 } 1368 1369 /** 1370 * Validate start and end dates for a substitution 1371 * @param int $areaID Area's ID. 1372 * @param string $date_start Substitution's start date. 1373 * @param string $date_start Substitution's end date. 1374 * @return bool 1375 * @access private 1376 */ 1377 function validateSubstitutionDates($areaID, $date_start, $date_end, $substitutionID = -1) 1378 { 1379 /* TODO 1380 * I'm not supose to be here.. (date validations speaking) 1381 * move me to some validation class! 1382 */ 1383 1384 /* validating dates */ 1385 $date_pattern = '/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[0-2])\/[12][0-9]{3}$/'; 1386 1387 if (!preg_match($date_pattern, $date_start)) 1388 $this->endExecution("Formato inválido para data de início."); 1389 if (!preg_match($date_pattern, $date_end)) 1390 $this->endExecution("Formato inválido para data de término. "); 1391 1392 $date_start_arr = explode('/', $date_start); 1393 $date_end_arr = explode('/', $date_end); 1394 1395 /* is it a gregorian date? */ 1396 if (!checkdate($date_start_arr[1], $date_start_arr[0], $date_start_arr[2])) 1397 $this->endExecution("Data de início inválida."); 1398 if (!checkdate($date_end_arr[1], $date_end_arr[0], $date_end_arr[2])) 1399 $this->endExecution("Data de término inválida. "); 1400 1401 /* is date_end greater then date_start? */ 1402 if (mktime(0,0,0, $date_start_arr[1], $date_start_arr[0], $date_start_arr[2]) >= mktime(0,0,0, $date_end_arr[1], $date_end_arr[0], $date_end_arr[2])) 1403 $this->endExecution("A data de término deve ser maior que a data de início."); 1404 1405 /* preparing dates to database */ 1406 $date_start = implode('-', array_reverse($date_start_arr)); 1407 $date_end = implode('-', array_reverse($date_end_arr)); 1408 1409 /* checking if there is a substitution in conflict with these dates */ 1410 $query = "SELECT * FROM substituicao WHERE "; 1411 $query .= " area_id = ? "; 1412 $query .= " AND "; 1413 $query .= " substituicao_id != ? "; 1414 $query .= " AND "; 1415 $query .= " ("; 1416 $query .= " (? BETWEEN data_inicio AND data_fim) "; 1417 $query .= " OR "; 1418 $query .= " (? BETWEEN data_inicio AND data_fim)"; 1419 $query .= " OR "; 1420 $query .= " (data_inicio BETWEEN ? AND ?)"; 1421 $query .= " ) "; 1422 1423 // raise an error if there is any record 1424 if ($row = $this->db->query($query, array( $areaID, $substitutionID, $date_start, $date_end, $date_start, $date_end ))->fetchRow()) 1425 { 1426 $row['data_inicio'] = implode('/', array_reverse(explode('-', $row['data_inicio']))); 1427 $row['data_fim'] = implode('/', array_reverse(explode('-', $row['data_fim']))); 1428 $this->endExecution('Já existe uma substituição no período de '. $row['data_inicio'] . ' a ' . $row['data_fim']); 1429 } 1430 return true; 1431 } 1432 1433 /** 1434 * Add a substitution. 1435 * @param int $organizationID Organization's ID. 1436 * @param int $areaID Area's ID. 1437 * @param int $substituteID Substitute's employee ID. 1438 * @param string $date_start Substitution's start date. 1439 * @param string $date_start Substitution's end date. 1440 * @return bool 1441 * @access public 1442 */ 1443 function addSubstitution( $organizationID, $areaID, $substituteID, $date_start, $date_end ) 1444 { 1445 $this->_checkAccess( $organizationID ); 1446 1447 if (!$this->validateSubstitutionDates($areaID, $date_start, $date_end)) 1448 return false; 1449 1450 /* formating dates */ 1451 $date_start = implode('-', array_reverse(explode('/', $date_start))); 1452 $date_end = implode('-', array_reverse(explode('/', $date_end))); 1453 1454 $query = "INSERT INTO substituicao (area_id, funcionario_id, data_inicio, data_fim) VALUES (?, ?, ?, ?)"; 1455 $result = $this -> db -> query( $query, array( $areaID, $substituteID, $date_start, $date_end ) ); 1456 $this->_checkError( $result ); 1457 1458 return ( ( $result === false ) ? false : true ); 1459 } 1460 1461 /** 1462 * Update a substitution. 1463 * @param int $organizationID Organization's ID. 1464 * @param int $areaID Area's ID. 1465 * @param int $substituteID Substitute's employee ID. 1466 * @param string $date_start Substitution's start date. 1467 * @param string $date_start Substitution's end date. 1468 * @return bool 1469 * @access public 1470 */ 1471 function updateSubstitution( $organizationID, $areaID, $substituteID, $date_start, $date_end, $substitutionID ) 1472 { 1473 $this->_checkAccess( $organizationID ); 1474 1475 if (!$this->validateSubstitutionDates($areaID, $date_start, $date_end, $substitutionID)) 1476 return false; 1477 1478 /* formating dates */ 1479 $date_start = implode('-', array_reverse(explode('/', $date_start))); 1480 $date_end = implode('-', array_reverse(explode('/', $date_end))); 1481 1482 $query = "UPDATE substituicao SET funcionario_id = ?, data_inicio = ?, data_fim = ? WHERE substituicao_id = ?"; 1483 $result = $this -> db -> query( $query, array( $substituteID, $date_start, $date_end, $substitutionID ) ); 1484 $this->_checkError( $result ); 1485 1486 return ( ( $result === false ) ? false : true ); 1487 } 1488 1489 /** 1490 * List all the substituions for a given area 1491 * @return array List of the substitutions 1492 * @access public 1493 */ 1494 function getSubstitutions( $organizationID, $areaID ) 1495 { 1496 $this -> _checkAccess( $organizationID ); 1497 1498 /* we must join area table to get organizacao_id */ 1499 $query = "SELECT s.*, a.organizacao_id FROM substituicao s INNER JOIN area a USING(area_id) WHERE area_id = ? ORDER BY data_inicio DESC"; 1500 $result = $this -> db -> query( $query, array( $areaID ) ); 1501 $this -> _checkError( $result ); 1502 1503 /* we must query ldap to get full user names. In workflow db we just store uids */ 1504 $cachedLDAP = $GLOBALS['workflow']['factory']->newInstance('CachedLDAP'); 1505 1506 $cachedLDAP->getEntryByID(); 1507 1508 $output = $result->GetArray(-1); 1509 for ($i = 0; $i < count($output); $i++) { 1510 for ($j = 0; $j < $result->_numOfFields; $j++) 1511 unset($output[$i][$j]); 1512 1513 /* including substitute full name */ 1514 $ldap_result = $cachedLDAP->getEntryByID($output[$i]['funcionario_id']); 1515 $output[$i]['substituto_funcionario_id'] = $output[$i]['funcionario_id']; 1516 $output[$i]['substituto_funcionario_id_desc'] = $ldap_result['cn']; 1517 1518 /* formating dates */ 1519 $output[$i]['data_inicio'] = implode('/', array_reverse(explode('-', $output[$i]['data_inicio']))); 1520 $output[$i]['data_fim'] = implode('/', array_reverse(explode('-', $output[$i]['data_fim']))); 1521 } 1522 return $output; 1523 } 1524 1525 /** 1526 * Remove a substitution 1527 * @param int $organizationID Organization's ID 1528 * @param int $telephoneID Substitution's ID 1529 * @return bool 1530 * @access public 1531 */ 1532 function removeSubstitution( $organizationID, $substitutionID ) 1533 { 1534 $this->_checkAccess( $organizationID ); 1535 1536 $query = "DELETE FROM substituicao WHERE substituicao_id = ?"; 1537 $result = $this -> db -> query( $query, array( $substitutionID ) ); 1538 $this -> _checkError( $result ); 1539 1540 return ( ( $result === false ) ? false : true ); 1541 } 1359 1542 } 1360 1543 ?> -
trunk/workflow/inc/class.so_userinterface.inc.php
r1470 r2042 509 509 function getAreaWithSubtituteBoss( $organizationID ) 510 510 { 511 $result = $this -> db -> query( "SELECT sigla as area, titular_funcionario_id as titular, substituto_funcionario_id as substituto FROM area WHERE (organizacao_id = ?) and substituto_funcionario_id is not nullORDER BY area", array( $organizationID ) );511 $result = $this -> db -> query( "SELECT a.sigla as area, a.titular_funcionario_id as titular, s.funcionario_id as substituto, s.data_inicio, s.data_fim FROM area a INNER JOIN substituicao s USING (area_id) WHERE (organizacao_id = ?) and CURRENT_DATE BETWEEN data_inicio AND data_fim ORDER BY area", array( $organizationID ) ); 512 512 513 513 $cachedLDAP = $GLOBALS[ 'workflow' ][ 'factory' ] -> newInstance( 'CachedLDAP' ); … … 527 527 if ( $entry && ( ! is_null( $entry[ 'cn' ] ) ) ) 528 528 $output[ $i ][ 'substituto' ] = $entry[ 'cn' ]; 529 530 $output[$i]['data_inicio'] = implode('/', array_reverse(explode('-', $output[$i]['data_inicio']))); 531 $output[$i]['data_fim'] = implode('/', array_reverse(explode('-', $output[$i]['data_fim']))); 529 532 } 530 533 -
trunk/workflow/inc/local/classes/class.wf_orgchart.php
r1320 r2042 133 133 function getOrganizationAreas($organizationID) 134 134 { 135 $query = "SELECT organizacao_id, area_id, area_status_id, " . 136 " superior_area_id, centro_custo_id, titular_funcionario_id," . 137 " substituto_funcionario_id, sigla, descricao, ativa, auxiliar_funcionario_id" . 138 " FROM area" . 139 " WHERE (organizacao_id = ?)" . 140 " ORDER BY sigla, descricao"; 135 $query = "SELECT a.organizacao_id, a.area_id, a.area_status_id, " . 136 " a.superior_area_id, a.centro_custo_id, a.titular_funcionario_id, " . 137 " a.sigla, a.descricao, a.ativa, a.auxiliar_funcionario_id, " . 138 " s.funcionario_id as substituto_funcionario_id " . 139 " FROM area a " . 140 " LEFT OUTER JOIN substituicao s " . 141 " USING(area_id) " . 142 " WHERE " . 143 " (a.organizacao_id = ?) " . 144 " AND " . 145 " ((CURRENT_DATE BETWEEN s.data_inicio AND s.data_fim) " . 146 " OR " . 147 " (s.substituicao_id is null)) " . 148 " ORDER BY a.sigla, a.descricao"; 141 149 142 150 $result = $this->db->query($query, array($organizationID)); … … 320 328 function getArea($areaID) 321 329 { 322 $query = "SELECT organizacao_id, area_id, area_status_id, " . 323 " superior_area_id, centro_custo_id, titular_funcionario_id," . 324 " substituto_funcionario_id, sigla, descricao, ativa, auxiliar_funcionario_id" . 325 " FROM area" . 326 " WHERE (area_id = ?)"; 330 $query = "SELECT a.organizacao_id, a.area_id, a.area_status_id, " . 331 " a.superior_area_id, a.centro_custo_id, a.titular_funcionario_id, " . 332 " a.sigla, a.descricao, a.ativa, a.auxiliar_funcionario_id, " . 333 " s.funcionario_id as substituto_funcionario_id " . 334 " FROM area a " . 335 " LEFT OUTER JOIN substituicao s " . 336 " USING(area_id) " . 337 " WHERE " . 338 " (a.area_id = ?) " . 339 " AND " . 340 " ((CURRENT_DATE BETWEEN s.data_inicio AND s.data_fim) " . 341 " OR " . 342 " (s.substituicao_id is null)) " . 343 " ORDER BY a.sigla, a.descricao"; 344 327 345 328 346 $result = $this->db->query($query, array($areaID)); … … 357 375 function getAreaByName($acronym, $organizationID = 1) 358 376 { 359 $query = "SELECT organizacao_id, area_id, area_status_id, " . 360 " superior_area_id, centro_custo_id, titular_funcionario_id," . 361 " substituto_funcionario_id, sigla, descricao, ativa, auxiliar_funcionario_id" . 362 " FROM area" . 363 " WHERE (UPPER(sigla) = UPPER(?) and (organizacao_id = ?))"; 377 $query = "SELECT a.organizacao_id, a.area_id, a.area_status_id, " . 378 " a.superior_area_id, a.centro_custo_id, a.titular_funcionario_id, " . 379 " a.sigla, a.descricao, a.ativa, a.auxiliar_funcionario_id, " . 380 " s.funcionario_id as substituto_funcionario_id " . 381 " FROM area a " . 382 " LEFT OUTER JOIN substituicao s " . 383 " USING(area_id) " . 384 " WHERE " . 385 " (UPPER(a.sigla) = UPPER(?)) " . 386 " AND " . 387 " (a.organizacao_id = ?) " . 388 " AND " . 389 " ((CURRENT_DATE BETWEEN s.data_inicio AND s.data_fim) " . 390 " OR " . 391 " (s.substituicao_id is null)) " . 392 " ORDER BY a.sigla, a.descricao"; 393 364 394 365 395 $result = $this->db->query($query, array($acronym, (int) $organizationID)); … … 395 425 $result = array(); 396 426 397 $query = "SELECT organizacao_id, area_id, area_status_id, " . 398 " superior_area_id, centro_custo_id, titular_funcionario_id," . 399 " substituto_funcionario_id, sigla, descricao, ativa, auxiliar_funcionario_id" . 400 " FROM area" . 401 " WHERE (area_status_id = ?)"; 427 $query = "SELECT a.organizacao_id, a.area_id, a.area_status_id, " . 428 " a.superior_area_id, a.centro_custo_id, a.titular_funcionario_id, " . 429 " a.sigla, a.descricao, a.ativa, a.auxiliar_funcionario_id, " . 430 " s.funcionario_id as substituto_funcionario_id " . 431 " FROM area a " . 432 " LEFT OUTER JOIN substituicao s " . 433 " USING(area_id) " . 434 " WHERE " . 435 " (a.area_status_id = ?) " . 436 " AND " . 437 " ((CURRENT_DATE BETWEEN s.data_inicio AND s.data_fim) " . 438 " OR " . 439 " (s.substituicao_id is null)) " . 440 " ORDER BY a.sigla, a.descricao"; 441 442 402 443 403 444 $result = $this->db->query($query, array($areaStatusID)); … … 436 477 $areas = implode(', ', $areaIDs); 437 478 438 $query = "SELECT organizacao_id, area_id, area_status_id, " . 439 " superior_area_id, centro_custo_id, titular_funcionario_id," . 440 " substituto_funcionario_id, sigla, descricao, ativa, auxiliar_funcionario_id" . 441 " FROM area" . 442 " WHERE area_id IN ($areas)" . 443 " ORDER BY sigla, descricao"; 479 $query = "SELECT a.organizacao_id, a.area_id, a.area_status_id, " . 480 " a.superior_area_id, a.centro_custo_id, a.titular_funcionario_id, " . 481 " a.sigla, a.descricao, a.ativa, a.auxiliar_funcionario_id, " . 482 " s.funcionario_id as substituto_funcionario_id " . 483 " FROM area a " . 484 " LEFT OUTER JOIN substituicao s " . 485 " USING(area_id) " . 486 " WHERE " . 487 " (a.area_id IN ($areas)) " . 488 " AND " . 489 " ((CURRENT_DATE BETWEEN s.data_inicio AND s.data_fim) " . 490 " OR " . 491 " (s.substituicao_id is null)) " . 492 " ORDER BY a.sigla, a.descricao"; 444 493 445 494 // A execução é realizada sem o segundo parâmetro pois este não pode estar entre aspas … … 506 555 function getSubAreasByParentAreaID($parentAreaID, $onlyActiveAreas = false) 507 556 { 508 $query = "SELECT organizacao_id, area_id, area_status_id, " . 509 " superior_area_id, centro_custo_id, titular_funcionario_id," . 510 " substituto_funcionario_id, sigla, descricao, ativa, auxiliar_funcionario_id" . 511 " FROM area" . 512 " WHERE superior_area_id = ?"; 557 $query = "SELECT a.organizacao_id, a.area_id, a.area_status_id, " . 558 " a.superior_area_id, a.centro_custo_id, a.titular_funcionario_id, " . 559 " a.sigla, a.descricao, a.ativa, a.auxiliar_funcionario_id, " . 560 " s.funcionario_id as substituto_funcionario_id " . 561 " FROM area a " . 562 " LEFT OUTER JOIN substituicao s " . 563 " USING(area_id) " . 564 " WHERE " . 565 " (a.superior_area_id = ?) " . 566 " AND " . 567 " ((CURRENT_DATE BETWEEN s.data_inicio AND s.data_fim) " . 568 " OR " . 569 " (s.substituicao_id is null)) "; 570 513 571 514 572 if ($onlyActiveAreas){ 515 573 $query .= " AND ativa = 'S'"; 516 574 } 517 $query .= " ORDER BY sigla,descricao";575 $query .= " ORDER BY a.sigla, a.descricao"; 518 576 519 577 $result = $this->db->query($query, array($parentAreaID)); -
trunk/workflow/js/jscode/common_functions.js
r795 r2042 90 90 return false; 91 91 } 92 93 function formatDateField(e, obj) 94 { 95 // assuring it works on IE 96 var e = window.event || e; 97 var code = e.charCode || e.keyCode; 98 99 switch (code) { 100 case (8): // backspace 101 case (9): // tab 102 case (35): // end 103 case (36): // home 104 case (37): // left arrow 105 case (39): // right arrow 106 case (46): // delete 107 return true; 108 } 109 110 if (obj.value.length == 2) 111 obj.value += '/'; 112 else if (obj.value.length == 5) 113 obj.value += '/'; 114 else if (obj.value.length >= 10) 115 return false; 116 117 // just numbers! 118 return ((code >= 48) && (code <= 57))? true : false; 119 } -
trunk/workflow/js/orgchart/organization.js
r1279 r2042 169 169 if (data.length == 0) 170 170 { 171 displayArea.innerHTML += '<br/><br/><center><strong>Nenhum registro encontrado</strong></center>'; 171 //displayArea.innerHTML += '<br/><br/><center><strong>Nenhum registro encontrado</strong></center>'; 172 elem = document.createElement('div'); 173 elem.id = this.name.capitalize() + 'List'; 174 elem.innerHTML = '<br/><br/><center><strong>Nenhum registro encontrado</strong></center>'; 175 displayArea.appendChild(elem); 172 176 return true; 173 177 } … … 369 373 Object.extend(objTelephones, CadastroTelefone); 370 374 375 var CadastroSubstituto = 376 { 377 name: 'substitution', 378 required: new Array('organizacao_id', 'area_id', 'descricao', 'titular_funcionario_id', 'substituto_funcionario_id', 'data_inicio', 'data_fim'), 379 tableHeader: {'substituto_funcionario_id_desc': 'Nome', 'data_inicio': 'Data de início', 'data_fim': 'Data de término'}, 380 combo: {} 381 }; 382 var objSubstitution = new CadastroAjax(); 383 Object.extend(objSubstitution, CadastroSubstituto); 384 385 371 386 function createOrganizationLayout(organizationID, organizationDiv) 372 387 { … … 397 412 content += '<option onclick="loadAddEmployeeUI(' + organizationID + ');" class="lbOn">Funcionários</option>' 398 413 content += '<option onclick="loadAddTelephoneUI(' + organizationID + ');" class="lbOn">Telefones</option>' 414 content += '<option onclick="loadAddSubstitutionUI(' + organizationID + ');" class="lbOn">Substituições</option>' 399 415 content += '</select></li>'; 400 416 content += '<li><a><input type="text" name="search_term" id="search_term" onkeypress="if (((window.Event) ? event.which : event.keyCode) == 13) $(\'search_span_' + organizationID + '\').onclick(); return true;" /> <span id="search_span_' + organizationID + '" onclick="tmp = $$(\'div#orgchartAreas_' + organizationID + ' a.destaque\'); if (tmp[0]) tmp[0].removeClassName(\'destaque\'); searchEmployee(' + organizationID + ', $(\'orgchartEmployees_' + organizationID + '\')); return false;">busca</span></a></li>'; … … 745 761 content += ' <a href="javascript:void(0)" onclick="$(\'titular_funcionario_id\').value=\'\'; $(\'titular_funcionario_id_desc\').value=\'\'; return false;"><img border="0" width="16" height="16" src="workflow/templateFile.php?file=images/delete_user.png" /></a>'; 746 762 content += '</td></tr>'; 747 content += '<tr><td><label for="substituto_funcionario_id">Substituto</label></td><td>';748 content += '<input type="hidden" name="substituto_funcionario_id" id="substituto_funcionario_id" value="" />';749 content += '<input type="input" name="substituto_funcionario_id_desc" id="substituto_funcionario_id_desc" value="" readonly="true" size="40" />';750 content += '<a href="javascript:void(0)" onclick="openParticipants(\'substituto_funcionario_id\', \'uid=1&hidegroups=1\');"><img border="0" width="16" height="16" src="workflow/templateFile.php?file=images/add_user.png" /></a>';751 content += ' <a href="javascript:void(0)" onclick="$(\'substituto_funcionario_id\').value=\'\'; $(\'substituto_funcionario_id_desc\').value=\'\'; return false;"><img border="0" width="16" height="16" src="workflow/templateFile.php?file=images/delete_user.png" /></a>';752 content += '</td></tr>';753 763 content += '<tr><td><label for="auxiliar_funcionario_id">Auxiliar Administrativo</label></td><td>'; 754 764 content += '<input type="hidden" name="auxiliar_funcionario_id" id="auxiliar_funcionario_id" value="" />'; … … 808 818 } 809 819 820 821 function loadAddSubstitutionUI(organizationID) 822 { 823 var area_id = 'combo_area'; 824 var content; 825 826 content = '<h2 id="modalTitle">Adicionar Substituição</h2>'; 827 content += '<form name="orgchartForm" id="orgchartForm">'; 828 content += '<input type="hidden" name="organizacao_id" id="organizacao_id" value="' + organizationID + '" />'; 829 content += "<table>"; 830 content += '<tr><td><label for="area_id">Sigla</label>'; 831 content += '<input type="hidden" name="area_id" id="area_id" value="" />'; 832 content += '</td><td id="comboArea"><i>carregando</i></td></tr>'; 833 content += '<tr><td><label for="descricao">Nome</label></td><td><input type="text" name="descricao" id="descricao" readonly="true" size="40" /></td></tr>'; 834 content += '<tr><td><label for="titular_funcionario_id">Titular</label></td><td>'; 835 content += '<input type="hidden" name="titular_funcionario_id" id="titular_funcionario_id" value="" readonly="true" />'; 836 content += '<input type="input" name="titular_funcionario_id_desc" id="titular_funcionario_id_desc" value="" readonly="true" size="40" />'; 837 content += '</td></tr>'; 838 content += '<tr><td><label for="substituto_funcionario_id">Substituto</label></td><td>'; 839 content += '<input type="hidden" name="substituto_funcionario_id" id="substituto_funcionario_id" value="" />'; 840 content += '<input type="input" name="substituto_funcionario_id_desc" id="substituto_funcionario_id_desc" value="" readonly="true" size="40" />'; 841 content += '<a href="javascript:void(0)" onclick="openParticipants(\'substituto_funcionario_id\', \'uid=1&hidegroups=1\');"><img border="0" width="16" height="16" src="workflow/templateFile.php?file=images/add_user.png" /></a>'; 842 content += ' <a href="javascript:void(0)" onclick="$(\'substituto_funcionario_id\').value=\'\'; $(\'substituto_funcionario_id_desc\').value=\'\'; return false;"><img border="0" width="16" height="16" src="workflow/templateFile.php?file=images/delete_user.png" /></a>'; 843 content += '</td></tr>'; 844 content += '<tr><td><label for="data_inicio">Data de início</label></td><td><input type="text" name="data_inicio" id="data_inicio" size="15" onkeypress="return formatDateField(event, this);" /></td></tr>'; 845 content += '<tr><td><label for="data_fim">Data de término</label></td><td><input type="text" name="data_fim" id="data_fim" size="15" onkeypress="return formatDateField(event, this);"/></td></tr>'; 846 content += "</table>"; 847 content += '</form>'; 848 content += '<button id="inserir" onclick="objSubstitution.add(); return false;">Inserir</button>'; 849 content += '<button onclick="valid.deactivate(); return false;">Cancelar</button>'; 850 851 var divLB = $('lbContent'); 852 divLB.innerHTML = content; 853 854 // function that must be called after loading areas on the combobox 855 var areas_callback = function () { 856 857 // every change on the combo box must query for area information 858 $(area_id).onchange = function () { 859 if ($('SubstitutionList')) 860 $('SubstitutionList').remove(); 861 862 var info_callback = function (data) { 863 864 // just to be sure 865 if (!data[0]) { 866 alert("Não foi possível encontrar os dados."); 867 } 868 869 // we received an empty response. Let's reset the form. 870 if ((data[0]['area_id'] == '') || (data[0]['area_id'] == null)) { 871 alert('RESET'); 872 $('area_id').value = ''; 873 $('descricao').value = ''; 874 $('titular_funcionario_id').value = ''; 875 $('titular_funcionario_id_desc').value = ''; 876 } 877 // fill the form 878 else { 879 $('area_id').value = data[0]['area_id']; 880 $('descricao').value = data[0]['descricao']; 881 $('titular_funcionario_id').value = data[0]['titular_funcionario_id']; 882 $('titular_funcionario_id_desc').value = data[0]['titular_funcionario_id_desc']; 883 } 884 885 // get the list of substitutions 886 objSubstitution.generateUpdateTable({'organization_id': organizationID, 'area_id': $(area_id).value}, divLB); 887 } 888 objArea.list(info_callback, {'organizacao_id': organizationID, 'area_id': $(area_id).value}); 889 890 } 891 } 892 objArea.generateComboBox({'organizacao_id': organizationID}, $('comboArea'), true, area_id, areas_callback); 893 } 894 810 895 function getEmployeeInfoTimer(e, employeeID, organizationID) 811 896 { -
trunk/workflow/js/orgchart/utils.js
r795 r2042 3 3 /*** constrói a tabela ***/ 4 4 var table = document.createElement("TABLE"); 5 6 table.style.marginTop = "10px"; 5 7 6 8 /* configura a tabela */ -
trunk/workflow/js/userinterface/orgchart.js
r1452 r2042 171 171 var content = '<center><h2>Substituição de Chefia</h2></center>'; 172 172 content += '<table class="employeeList">'; 173 content += '<tr><th>Área</th><th>Titular</th><th>Substituto</th>< /tr>';173 content += '<tr><th>Área</th><th>Titular</th><th>Substituto</th><th>Data de início</th><th>Data de término</th></tr>'; 174 174 var current; 175 175 for (var i = 0; i < data.length; i++) … … 180 180 content += '<td>' + current['titular'] + '</td>'; 181 181 content += '<td>' + current['substituto'] + '</td>'; 182 content += '<td>' + current['data_inicio'] + '</td>'; 183 content += '<td>' + current['data_fim'] + '</td>'; 182 184 content += '</tr>'; 183 185 } -
trunk/workflow/setup/default_records.inc.php
r1980 r2042 86 86 $workflowDB->query('CREATE TABLE localidade (organizacao_id integer NOT NULL, localidade_id serial NOT NULL, centro_custo_id integer, descricao character varying(50) NOT NULL, empresa CHARACTER VARYING(100), endereco CHARACTER VARYING(100), complemento CHARACTER VARYING(50), cep CHARACTER VARYING(9), bairro CHARACTER VARYING(30), cidade CHARACTER VARYING(50), uf CHARACTER(2))'); 87 87 $workflowDB->query('CREATE TABLE funcionario (funcionario_id int4 NOT NULL, area_id integer NOT NULL, localidade_id integer NOT NULL, centro_custo_id integer, organizacao_id integer NOT NULL, funcionario_status_id integer NOT NULL, cargo_id int4, nivel int2, funcionario_categoria_id int4, titulo CHARACTER VARYING(30))'); 88 $workflowDB->query('CREATE TABLE area (organizacao_id integer NOT NULL, area_id serial NOT NULL, area_status_id integer NOT NULL, areasup_organizacao_id integer, superior_area_id integer, centro_custo_id integer, titular_funcionario_id int4, s ubstituto_funcionario_id int4, sigla character varying(20) NOT NULL, descricao character varying(100) NOT NULL, ativa character varying(1) NOT NULL, auxiliar_funcionario_id int4)');88 $workflowDB->query('CREATE TABLE area (organizacao_id integer NOT NULL, area_id serial NOT NULL, area_status_id integer NOT NULL, areasup_organizacao_id integer, superior_area_id integer, centro_custo_id integer, titular_funcionario_id int4, sigla character varying(20) NOT NULL, descricao character varying(100) NOT NULL, ativa character varying(1) NOT NULL, auxiliar_funcionario_id int4)'); 89 89 $workflowDB->query('CREATE TABLE funcionario_status (funcionario_status_id serial NOT NULL, descricao character varying(50) NOT NULL, exibir character varying(1) NOT NULL, organizacao_id integer NOT NULL)'); 90 90 $workflowDB->query('CREATE TABLE cargo (cargo_id serial NOT NULL, descricao character varying(150), organizacao_id int4)'); 91 91 $workflowDB->query('CREATE TABLE funcionario_categoria (funcionario_categoria_id serial NOT NULL, descricao character varying(150), organizacao_id int4)'); 92 92 $workflowDB->query('CREATE TABLE telefone (telefone_id serial NOT NULL, descricao character varying(50) NOT NULL, numero character varying(50) NOT NULL, organizacao_id integer NOT NULL)'); 93 $workflowDB->query('CREATE TABLE substituicao (substituicao_id serial NOT NULL, area_id integer NOT NULL, funcionario_id integer NOT NULL, data_inicio date NOT NULL, data_fim date NOT NULL)'); 94 93 95 94 96 /* add the constraints */ … … 100 102 $workflowDB->query('ALTER TABLE ONLY localidade ADD CONSTRAINT localidade_pkey PRIMARY KEY (organizacao_id, localidade_id)'); 101 103 $workflowDB->query('ALTER TABLE ONLY funcionario ADD CONSTRAINT funcionario_pkey PRIMARY KEY (funcionario_id)'); 102 $workflowDB->query('ALTER TABLE ONLY area ADD CONSTRAINT area_pkey PRIMARY KEY ( organizacao_id,area_id)');104 $workflowDB->query('ALTER TABLE ONLY area ADD CONSTRAINT area_pkey PRIMARY KEY (area_id)'); 103 105 $workflowDB->query('ALTER TABLE ONLY funcionario_status ADD CONSTRAINT funcionario_status_pkey PRIMARY KEY (funcionario_status_id)'); 104 106 $workflowDB->query('ALTER TABLE ONLY telefone ADD CONSTRAINT telefone_pkey PRIMARY KEY (telefone_id)'); 107 $workflowDB->query('ALTER TABLE ONLY substituicao ADD CONSTRAINT substituicao_pkey PRIMARY KEY (substituicao_id)'); 108 105 109 106 110 /* foreign keys */ … … 119 123 $workflowDB->query('ALTER TABLE ONLY area ADD CONSTRAINT "$2" FOREIGN KEY (centro_custo_id, organizacao_id) REFERENCES centro_custo(centro_custo_id, organizacao_id)'); 120 124 $workflowDB->query('ALTER TABLE ONLY area ADD CONSTRAINT "$3" FOREIGN KEY (titular_funcionario_id) REFERENCES funcionario(funcionario_id)'); 121 $workflowDB->query('ALTER TABLE ONLY area ADD CONSTRAINT "$4" FOREIGN KEY (substituto_funcionario_id) REFERENCES funcionario(funcionario_id)'); 122 $workflowDB->query('ALTER TABLE ONLY area ADD CONSTRAINT "$5" FOREIGN KEY (organizacao_id) REFERENCES organizacao(organizacao_id)'); 123 $workflowDB->query('ALTER TABLE ONLY area ADD CONSTRAINT "$6" FOREIGN KEY (area_status_id, organizacao_id) REFERENCES area_status(area_status_id, organizacao_id)'); 124 $workflowDB->query('ALTER TABLE ONLY area ADD CONSTRAINT "$7" FOREIGN KEY (auxiliar_funcionario_id) REFERENCES funcionario(funcionario_id)'); 125 $workflowDB->query('ALTER TABLE ONLY area ADD CONSTRAINT "$4" FOREIGN KEY (organizacao_id) REFERENCES organizacao(organizacao_id)'); 126 $workflowDB->query('ALTER TABLE ONLY area ADD CONSTRAINT "$5" FOREIGN KEY (area_status_id, organizacao_id) REFERENCES area_status(area_status_id, organizacao_id)'); 127 $workflowDB->query('ALTER TABLE ONLY area ADD CONSTRAINT "$6" FOREIGN KEY (auxiliar_funcionario_id) REFERENCES funcionario(funcionario_id)'); 125 128 $workflowDB->query('ALTER TABLE ONLY telefone ADD CONSTRAINT "$1" FOREIGN KEY (organizacao_id) REFERENCES organizacao(organizacao_id)'); 129 $workflowDB->query('ALTER TABLE ONLY substituicao ADD CONSTRAINT "$1" FOREIGN KEY (area_id) REFERENCES area(area_id)'); 130 $workflowDB->query('ALTER TABLE ONLY substituicao ADD CONSTRAINT "$2" FOREIGN KEY (funcionario_id) REFERENCES funcionario(funcionario_id)'); 131 126 132 127 133 /* set the permissions to the database objects */ 128 $dbObjects = array('organizacao', 'area_status', 'centro_custo', 'localidade', 'funcionario', 'area', 'funcionario_status', 'telefone', ' organizacao_organizacao_id_seq', 'area_status_area_status_id_seq', 'centro_custo_centro_custo_id_seq', 'localidade_localidade_id_seq', 'area_area_id_seq', 'funcionario_status_funcionario_status_id_seq', 'cargo', 'cargo_cargo_id_seq', 'funcionario_categoria', 'funcionario_categoria_funcionario_categoria_id_seq', 'telefone_telefone_id_seq');134 $dbObjects = array('organizacao', 'area_status', 'centro_custo', 'localidade', 'funcionario', 'area', 'funcionario_status', 'telefone', 'substituicao', 'organizacao_organizacao_id_seq', 'area_status_area_status_id_seq', 'centro_custo_centro_custo_id_seq', 'localidade_localidade_id_seq', 'area_area_id_seq', 'funcionario_status_funcionario_status_id_seq', 'cargo', 'cargo_cargo_id_seq', 'funcionario_categoria', 'funcionario_categoria_funcionario_categoria_id_seq', 'telefone_telefone_id_seq', 'substituicao_substituicao_id_seq'); 129 135 130 136 foreach ($dbObjects as $dbObject) -
trunk/workflow/setup/setup.inc.php
r1974 r2042 13 13 $setup_info['workflow']['name'] = 'workflow'; 14 14 $setup_info['workflow']['title'] = 'Workflow management'; 15 $setup_info['workflow']['version'] = '2. 1.000';15 $setup_info['workflow']['version'] = '2.2.000'; 16 16 $setup_info['workflow']['app_order'] = 10; 17 17 $setup_info['workflow']['enable'] = 1; -
trunk/workflow/setup/tables_update.inc.php
r1981 r2042 451 451 $workflowDB->query('ALTER TABLE ONLY localidade ADD CONSTRAINT localidade_pkey PRIMARY KEY (organizacao_id, localidade_id)'); 452 452 $workflowDB->query('ALTER TABLE ONLY funcionario ADD CONSTRAINT funcionario_pkey PRIMARY KEY (funcionario_id)'); 453 $workflowDB->query('ALTER TABLE ONLY area ADD CONSTRAINT area_pkey PRIMARY KEY ( organizacao_id,area_id)');453 $workflowDB->query('ALTER TABLE ONLY area ADD CONSTRAINT area_pkey PRIMARY KEY (area_id)'); 454 454 $workflowDB->query('ALTER TABLE ONLY funcionario_status ADD CONSTRAINT funcionario_status_pkey PRIMARY KEY (funcionario_status_id)'); 455 455 $workflowDB->query('ALTER TABLE ONLY area_status ADD CONSTRAINT "$1" FOREIGN KEY (organizacao_id) REFERENCES organizacao(organizacao_id)'); … … 1219 1219 return $GLOBALS['setup_info']['workflow']['currentver']; 1220 1220 } 1221 $test[] = '2.1.000'; 1222 function workflow_upgrade2_1_000() 1223 { 1224 if (!$GLOBALS['phpgw_setup']->oProc->m_bDeltaOnly) 1225 { 1226 $workflowHostInfo = extractDatabaseParameters(); 1227 1228 /* connect to workflow database */ 1229 $workflowDB = $GLOBALS['phpgw']->ADOdb; 1230 if ($workflowDB->connect($workflowHostInfo['host'], $workflowHostInfo['user'], $workflowHostInfo['password'], 'workflow')) 1231 { 1232 /* creating table substitution */ 1233 $workflowDB->query('CREATE TABLE substituicao (substituicao_id serial NOT NULL, area_id integer NOT NULL, funcionario_id integer NOT NULL, data_inicio date NOT NULL, data_fim date NOT NULL)'); 1234 1235 $workflowDB->query('ALTER TABLE ONLY public.substituicao ADD CONSTRAINT substituicao_pkey PRIMARY KEY (substituicao_id)'); 1236 $workflowDB->query('ALTER TABLE ONLY public.substituicao ADD CONSTRAINT "$1" FOREIGN KEY (area_id) REFERENCES area(area_id)'); 1237 $workflowDB->query('ALTER TABLE ONLY public.substituicao ADD CONSTRAINT "$2" FOREIGN KEY (funcionario_id) REFERENCES funcionario(funcionario_id)'); 1238 1239 /* granting privilegies */ 1240 $workflowDB->query("GRANT ALL ON TABLE public.substituicao TO admin_workflow"); 1241 $workflowDB->query("GRANT ALL ON TABLE public.substituicao TO postgres"); 1242 $workflowDB->query("GRANT SELECT ON TABLE public.substituicao TO public"); 1243 $workflowDB->query("GRANT ALL ON TABLE public.substituicao_substituicao_id_seq TO admin_workflow"); 1244 $workflowDB->query("GRANT ALL ON TABLE public.substituicao_substituicao_id_seq TO postgres"); 1245 $workflowDB->query("GRANT SELECT ON TABLE public.substituicao_substituicao_id_seq TO public"); 1246 1247 /* migrating records */ 1248 $result = $workflowDB->query('SELECT area_id, substituto_funcionario_id FROM area WHERE substituto_funcionario_id IS NOT NULL'); 1249 if ($result) 1250 while ($row = $result->fetchRow()) { 1251 $values = array($row['area_id'], $row['substituto_funcionario_id']); 1252 $workflowDB->query('INSERT INTO substituicao (area_id, funcionario_id, data_inicio, data_fim) VALUES (?, ?, CURRENT_DATE, CURRENT_DATE+integer \'7\')', $values); 1253 } 1254 1255 1256 /* erasing old atributes */ 1257 $workflowDB->query("ALTER TABLE area DROP COLUMN substituto_funcionario_id"); 1258 } 1259 1260 /* reconnect to the previous database */ 1261 $GLOBALS['phpgw']->ADOdb->connect($workflowHostInfo['host'], $workflowHostInfo['user'], $workflowHostInfo['password'], $workflowHostInfo['dbname']); 1262 } 1263 1264 #updating the current version 1265 $GLOBALS['setup_info']['workflow']['currentver'] = '2.2.000'; 1266 return $GLOBALS['setup_info']['workflow']['currentver']; 1267 } 1221 1268 ?>
Note: See TracChangeset
for help on using the changeset viewer.