Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

127 lines
3.3KB

  1. <?php
  2. namespace common\models;
  3. use Yii;
  4. /**
  5. * This is the model class for table "produit".
  6. *
  7. * @property integer $id
  8. * @property string $nom
  9. * @property string $description
  10. * @property integer $actif
  11. * @property string $illustration
  12. * @property string $photo
  13. * @property string $saison
  14. * @property double $prix
  15. * @property double $poids
  16. * @property string $recette
  17. */
  18. class Produit extends \yii\db\ActiveRecord
  19. {
  20. var $total = 0 ;
  21. /**
  22. * @inheritdoc
  23. */
  24. public static function tableName()
  25. {
  26. return 'produit';
  27. }
  28. /**
  29. * @inheritdoc
  30. */
  31. public function rules()
  32. {
  33. return [
  34. [['nom', 'id_etablissement'], 'required'],
  35. [['actif','order','quantite_max', 'id_etablissement'], 'integer'],
  36. [['lundi','mardi','mercredi','jeudi','vendredi','samedi','dimanche','epuise'], 'boolean'],
  37. [['prix', 'poids'], 'number'],
  38. [['illustration','photo'], 'file'],
  39. [['nom', 'description', 'illustration', 'photo', 'saison','diminutif'], 'string', 'max' => 255],
  40. [['recette'], 'string','max'=>1000],
  41. ];
  42. }
  43. /**
  44. * @inheritdoc
  45. */
  46. public function attributeLabels()
  47. {
  48. return [
  49. 'id' => 'ID',
  50. 'nom' => 'Nom',
  51. 'description' => 'Description',
  52. 'actif' => 'Actif',
  53. 'illustration' => 'Illustration',
  54. 'photo' => 'Photo',
  55. 'saison' => 'Saison',
  56. 'prix' => 'Prix',
  57. 'poids' => 'Poids (g)',
  58. 'recette' => 'Recette',
  59. 'lundi' => 'Lundi',
  60. 'mardi' => 'Mardi',
  61. 'mercredi' => 'Mercredi',
  62. 'jeudi' => 'Jeudi',
  63. 'vendredi' => 'Vendredi',
  64. 'samedi' => 'Samedi',
  65. 'dimanche' => 'Dimanche',
  66. 'order' => 'Ordre',
  67. 'quantite_max' => 'Quantité max par défaut',
  68. 'epuise' => 'Épuisé',
  69. ];
  70. }
  71. public function getDescription() {
  72. $description = $this->description ;
  73. if(isset($this->poids) && is_numeric($this->poids) && $this->poids > 0) {
  74. if($this->poids >= 1000) {
  75. $description .= ' ('.($this->poids / 1000).'kg)' ;
  76. }
  77. else {
  78. $description .= ' ('.$this->poids.'g)' ;
  79. }
  80. }
  81. return $description ;
  82. }
  83. public function getLibelleAdmin()
  84. {
  85. return $this->nom ;
  86. }
  87. public function save($runValidation = true, $attributeNames = NULL)
  88. {
  89. $this->id_etablissement = Yii::$app->user->identity->id_etablissement ;
  90. return parent::save($runValidation, $attributeNames) ;
  91. }
  92. public function getAll()
  93. {
  94. return Produit::find()
  95. ->where([
  96. 'id_etablissement' => Yii::$app->user->identity->id_etablissement,
  97. ])
  98. ->orderBy('order ASC')
  99. ->all();
  100. }
  101. public function getByProduction($id_production)
  102. {
  103. return Produit::find()
  104. ->leftJoin('production_produit', 'produit.id = production_produit.id_produit')
  105. ->where([
  106. 'id_etablissement' => Yii::$app->user->identity->id_etablissement,
  107. 'production_produit.id_production' => $id_production
  108. ])
  109. ->orderBy('production_produit.actif DESC, produit.order ASC')
  110. ->all();
  111. }
  112. }