KataoInvoicePeer.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. /**
  3. * Subclass for performing query and update operations on the 'katao_invoice' table.
  4. *
  5. * @package lib.model
  6. */
  7. class KataoInvoicePeer extends BaseKataoInvoicePeer {
  8. public static function getAllStatuses() {
  9. return array(KataoInvoice::STATUS_GENERATED => self::getStatusStr(KataoInvoice::STATUS_GENERATED), KataoInvoice::STATUS_DELIVERED => self::getStatusStr(KataoInvoice::STATUS_DELIVERED), KataoInvoice::STATUS_VALIDATED => self::getStatusStr(KataoInvoice::STATUS_VALIDATED), KataoInvoice::STATUS_SENT => self::getStatusStr(KataoInvoice::STATUS_SENT));
  10. }
  11. public static function getStatusStr($status) {
  12. switch ($status) {
  13. case KataoInvoice::STATUS_GENERATED:
  14. return 'Générée';
  15. case KataoInvoice::STATUS_DELIVERED:
  16. return 'Délivrée';
  17. case KataoInvoice::STATUS_VALIDATED:
  18. return 'Validée';
  19. case KataoInvoice::STATUS_SENT:
  20. return 'Envoyée';
  21. }
  22. return '';
  23. }
  24. /**
  25. * KataoInvoicePeer::countAll()
  26. *
  27. * @param int $katao_node_id
  28. * @return int
  29. */
  30. public static function countAll($katao_node_id) {
  31. $criteria = new Criteria();
  32. if ($katao_node_id) {
  33. $criteria->add(self::KATAO_NODE_ID, $katao_node_id);
  34. }
  35. return self::doCount($criteria);
  36. }
  37. /**
  38. * KataoInvoicePeer::sumAll()
  39. *
  40. * @param int $katao_node_id
  41. * @param int $year
  42. * @return float
  43. */
  44. public static function sumAll($katao_node_id = false, $year = false) {
  45. $return = 0;
  46. $criteria = new Criteria();
  47. $criteria->addSelectColumn(KataoInvoiceProductPeer::KATAO_INVOICE_ID);
  48. $criteria->addAsColumn('sum_products', sprintf('SUM(%s * %s)', KataoInvoiceProductPeer::PRODUCT_PRICE_EURO, KataoInvoiceProductPeer::QUANTITY));
  49. $criteria->addJoin(KataoInvoiceProductPeer::KATAO_INVOICE_ID, self::ID);
  50. if ($katao_node_id) {
  51. $criteria->add(self::KATAO_NODE_ID, $katao_node_id);
  52. }
  53. if ($year) {
  54. $criteria->add(self::CREATED_AT, sprintf('DATE_FORMAT(%s, "%%Y") = %d', self::CREATED_AT, $year), Criteria::CUSTOM);
  55. }
  56. $criteria->addGroupByColumn(KataoInvoiceProductPeer::KATAO_INVOICE_ID);
  57. $criteria->setDistinct();
  58. $rs = KataoInvoiceProductPeer::doSelectRS($criteria);
  59. while ($rs->next()) {
  60. $return += $rs->getFloat(2);
  61. }
  62. return $return;
  63. }
  64. /**
  65. * KataoInvoicePeer::addAll()
  66. *
  67. * @param int $katao_node_id
  68. * @param int $year
  69. * @return float
  70. */
  71. public static function addAll($katao_node_id = false, $year = false) {
  72. $return = 0;
  73. $criteria = new Criteria();
  74. $criteria->addSelectColumn(KataoInvoiceProductPeer::KATAO_INVOICE_ID);
  75. $criteria->addAsColumn('sum_quantities', sprintf('SUM(%s)', KataoInvoiceProductPeer::QUANTITY));
  76. $criteria->addJoin(KataoInvoiceProductPeer::KATAO_INVOICE_ID, self::ID);
  77. if ($katao_node_id) {
  78. $criteria->add(self::KATAO_NODE_ID, $katao_node_id);
  79. }
  80. if ($year) {
  81. $criteria->add(self::CREATED_AT, sprintf('DATE_FORMAT(%s, "%%Y") = %d', self::CREATED_AT, $year), Criteria::CUSTOM);
  82. }
  83. $criteria->addGroupByColumn(KataoInvoiceProductPeer::KATAO_INVOICE_ID);
  84. $criteria->setDistinct();
  85. $rs = KataoInvoiceProductPeer::doSelectRS($criteria);
  86. while ($rs->next()) {
  87. $return += $rs->getInt(2);
  88. }
  89. return $return;
  90. }
  91. }