background.inc.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. // Copyright (C) 2017 Combodo SARL
  3. //
  4. // This file is part of iTop.
  5. //
  6. // iTop is free software; you can redistribute it and/or modify
  7. // it under the terms of the GNU Affero General Public License as published by
  8. // the Free Software Foundation, either version 3 of the License, or
  9. // (at your option) any later version.
  10. //
  11. // iTop is distributed in the hope that it will be useful,
  12. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. // GNU Affero General Public License for more details.
  15. //
  16. // You should have received a copy of the GNU Affero General Public License
  17. // along with iTop. If not, see <http://www.gnu.org/licenses/>
  18. /**
  19. * Tasks performed in the background
  20. *
  21. * @copyright Copyright (C) 2017 Combodo SARL
  22. * @license http://opensource.org/licenses/AGPL-3.0
  23. */
  24. class ObsolescenceDateUpdater implements iBackgroundProcess
  25. {
  26. public function GetPeriodicity()
  27. {
  28. return MetaModel::GetConfig()->Get('obsolescence.date_update_interval'); // 10 mn
  29. }
  30. public function Process($iUnixTimeLimit)
  31. {
  32. $iCountSet = 0;
  33. $iCountReset = 0;
  34. $iClasses = 0;
  35. foreach (MetaModel::EnumObsoletableClasses() as $sClass)
  36. {
  37. $oObsoletedToday = new DBObjectSearch($sClass);
  38. $oObsoletedToday->AddCondition('obsolescence_flag', 1, '=');
  39. $oObsoletedToday->AddCondition('obsolescence_date', null, '=');
  40. $sToday = date(AttributeDate::GetSQLFormat());
  41. $iCountSet += MetaModel::BulkUpdate($oObsoletedToday, array('obsolescence_date' => $sToday));
  42. $oObsoletedToday = new DBObjectSearch($sClass);
  43. $oObsoletedToday->AddCondition('obsolescence_flag', 1, '!=');
  44. $oObsoletedToday->AddCondition('obsolescence_date', null, '!=');
  45. $iCountReset += MetaModel::BulkUpdate($oObsoletedToday, array('obsolescence_date' => null));
  46. }
  47. echo "Obsolescence date updated (classes: $iClasses ; set: $iCountSet ; reset: $iCountReset)\n";
  48. }
  49. }