KataoPeriodPeer.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <?php
  2. class KataoPeriodPeer extends BaseKataoPeriodPeer {
  3. /**
  4. * KataoPeriodPeer::getActivePeriod()
  5. *
  6. * @return KataoPeriod
  7. */
  8. public static function getActivePeriod() {
  9. $criteria = new Criteria();
  10. $criteria->add(self::STATUS, KataoPeriod::STATUS_ACTIVE);
  11. return self::doSelectOne($criteria);
  12. }
  13. /**
  14. * KataoPeriodPeer::getAllByKataoNode()
  15. *
  16. * @param mixed $this
  17. * @return
  18. */
  19. public static function getAllByKataoNode(KataoNode $kataoNode) {
  20. $criteria = new Criteria();
  21. $criteria->addAnd(self::KATAO_NODE_ID, $kataoNode->getId());
  22. return self::doSelect($criteria);
  23. }
  24. public static function getAll($status = false) {
  25. $return = array();
  26. $criteria = new Criteria();
  27. $criteria->addSelectColumn(self::ID);
  28. $criteria->addSelectColumn(self::NAME);
  29. if ($status) {
  30. $criteria->add(self::STATUS, $status);
  31. }
  32. $criteria->addDescendingOrderByColumn(self::BEGIN_AT);
  33. $rs = self::doSelectRS($criteria);
  34. while ($rs->next()) {
  35. $return[$rs->getInt(1)] = $rs->getString(2);
  36. }
  37. return $return;
  38. }
  39. public static function getAllArray() {
  40. $return = array();
  41. $criteria = new Criteria();
  42. $criteria->addSelectColumn(self::ID);
  43. $criteria->addSelectColumn(self::NAME);
  44. $criteria->addSelectColumn(self::STATUS);
  45. $criteria->addDescendingOrderByColumn(self::BEGIN_AT);
  46. $rs = self::doSelectRS($criteria);
  47. while ($rs->next()) {
  48. $return[$rs->getInt(1)] = array('name' => $rs->getString(2), 'status' => $rs->getInt(3));
  49. }
  50. return $return;
  51. }
  52. public static function getAllStatuses() {
  53. return array(KataoPeriod::STATUS_DRAFT => self::getStatusStr(KataoPeriod::STATUS_DRAFT), KataoPeriod::STATUS_ACTIVE => self::getStatusStr(KataoPeriod::STATUS_ACTIVE), KataoPeriod::STATUS_ARCHIVED => self::getStatusStr(KataoPeriod::STATUS_ARCHIVED));
  54. }
  55. public static function getStatusStr($status) {
  56. switch ($status) {
  57. case KataoPeriod::STATUS_DRAFT:
  58. return 'Provisoire';
  59. case KataoPeriod::STATUS_ACTIVE:
  60. return 'Active';
  61. case KataoPeriod::STATUS_ARCHIVED:
  62. return 'Terminée';
  63. }
  64. return '';
  65. }
  66. public static function getAllActiveWithoutCart($katao_node_id) {
  67. $return = self::getAll(KataoPeriod::STATUS_ACTIVE);
  68. $criteria = new Criteria();
  69. $criteria->addSelectColumn(KataoCartPeer::KATAO_PERIOD_ID);
  70. $criteria->add(KataoCartPeer::KATAO_NODE_ID, $katao_node_id);
  71. $rs = self::doSelectRS($criteria);
  72. while ($rs->next()) {
  73. unset($return[$rs->getInt(1)]);
  74. }
  75. return $return;
  76. }
  77. public static function hasConflictedPeriodDates($begin, $end, $exclude = false) {
  78. $criteria = new Criteria();
  79. $criteria->add(self::ID, $exclude, Criteria::NOT_EQUAL);
  80. $criterion1 = $criteria->getNewCriterion(self::BEGIN_AT, date('Y-m-d', $begin), Criteria::GREATER_EQUAL);
  81. $criterion1->addAnd($criteria->getNewCriterion(self::BEGIN_AT, date('Y-m-d', $end), Criteria::LESS_EQUAL));
  82. $criterion2 = $criteria->getNewCriterion(self::BEGIN_AT, date('Y-m-d', $begin), Criteria::LESS_EQUAL);
  83. $criterion2->addAnd($criteria->getNewCriterion(self::FINISH_AT, date('Y-m-d', $begin), Criteria::GREATER_EQUAL));
  84. $criterion1->addOr($criterion2);
  85. $criteria->addAnd($criterion1);
  86. return 0 < self::doCount($criteria);
  87. }
  88. public static function getAllWithDates() {
  89. $return = array();
  90. $criteria = new Criteria();
  91. $criteria->addSelectColumn(self::ID);
  92. $criteria->addSelectColumn(self::BEGIN_AT);
  93. $criteria->addSelectColumn(self::FINISH_AT);
  94. $criteria->addAscendingOrderByColumn(self::BEGIN_AT);
  95. $criteria->addAscendingOrderByColumn(self::FINISH_AT);
  96. $rs = self::doSelectRS($criteria);
  97. while ($rs->next()) {
  98. $return[$rs->getInt(1)] = array('begin' => date('Y-m-d', strtotime((string)$rs->getString(2))), 'end' => date('Y-m-d', strtotime((string)$rs->getString(3))));
  99. }
  100. return $return;
  101. }
  102. public static function getIdFromRangeDate($date, $katao_periods = array()) {
  103. $return = 0;
  104. foreach ($katao_periods as $katao_period_id => $dates) {
  105. if (!$return && $date >= $dates['begin'] && $date <= $dates['end']) {
  106. $return = $katao_period_id;
  107. }
  108. }
  109. return $return;
  110. }
  111. }