You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

117 lines
3.2KB

  1. <?php
  2. namespace common\models;
  3. use Yii;
  4. use common\helpers\Departements ;
  5. use yii\helpers\Html ;
  6. /**
  7. * This is the model class for table "etablissement".
  8. *
  9. * @property integer $id
  10. * @property string $nom
  11. * @property string $siret
  12. * @property string $logo
  13. * @property string $photo
  14. * @property string $description
  15. * @property string $code_postal
  16. * @property string $ville
  17. */
  18. class Etablissement extends \yii\db\ActiveRecord
  19. {
  20. const PAIEMENT_OK = 'ok' ;
  21. const PAIEMENT_ESSAI = 'essai' ;
  22. const PAIEMENT_ESSAI_TERMINE = 'essai-terminee' ;
  23. const PAIEMENT_RETARD = 'retard-paiement' ;
  24. /**
  25. * @inheritdoc
  26. */
  27. public static function tableName()
  28. {
  29. return 'etablissement';
  30. }
  31. /**
  32. * @inheritdoc
  33. */
  34. public function rules()
  35. {
  36. return [
  37. [['nom', 'siret'], 'required'],
  38. [['description'], 'string'],
  39. [['nom', 'siret', 'logo', 'photo', 'code_postal', 'ville'], 'string', 'max' => 255],
  40. ];
  41. }
  42. /**
  43. * @inheritdoc
  44. */
  45. public function attributeLabels()
  46. {
  47. return [
  48. 'id' => 'ID',
  49. 'nom' => 'Nom',
  50. 'siret' => 'Siret',
  51. 'logo' => 'Logo',
  52. 'photo' => 'Photo',
  53. 'description' => 'Description',
  54. 'code_postal' => 'Code postal',
  55. 'ville' => 'Ville',
  56. ];
  57. }
  58. public static function getEtablissementsPopulateDropdown()
  59. {
  60. $etablissements_dispos = Etablissement::find()
  61. ->orderby('code_postal, ville ASC')
  62. ->all() ;
  63. $departements = Departements::get() ;
  64. $data_etablissements_dispos = [] ;
  65. $options_etablissements_dispos = [] ;
  66. foreach($etablissements_dispos as $e)
  67. {
  68. if($e->etatPaiement() == self::PAIEMENT_OK || $e->etatPaiement() == self::PAIEMENT_ESSAI)
  69. {
  70. if(!key_exists('d'. substr($e->code_postal, 0, 2), $data_etablissements_dispos))
  71. {
  72. $data_etablissements_dispos['d'. substr($e->code_postal, 0, 2)] = '<strong>'.$departements[substr($e->code_postal, 0, 2)].'</strong>' ;
  73. $options_etablissements_dispos['d'. substr($e->code_postal, 0, 2)] = ['disabled' => true] ;
  74. }
  75. $data_etablissements_dispos[$e->id] = Html::encode($e->nom).' - '.Html::encode($e->code_postal).' '.Html::encode($e->ville) ;
  76. }
  77. }
  78. return ['data' => $data_etablissements_dispos, 'options' => $options_etablissements_dispos] ;
  79. }
  80. public function etatPaiement()
  81. {
  82. $date_limite = strtotime($this->date_creation) + 30*24*60*60 ;
  83. $date = time() ;
  84. $date_paiement = strtotime($this->date_paiement) ;
  85. if($date < $date_paiement + 30*24*60*60 || $this->gratuit)
  86. {
  87. return 'ok' ;
  88. }
  89. else {
  90. if($date < $date_limite)
  91. {
  92. return 'essai' ;
  93. }
  94. else {
  95. if(!$this->date_paiement)
  96. return 'essai-terminee' ;
  97. else
  98. return 'retard-paiement' ;
  99. }
  100. }
  101. }
  102. }