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.

Production.php 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. namespace common\models;
  3. use Yii;
  4. use common\models\Commande;
  5. /**
  6. * This is the model class for table "production".
  7. *
  8. * @property integer $id
  9. * @property string $date
  10. * @property integer $actif
  11. */
  12. class Production extends \yii\db\ActiveRecord {
  13. /**
  14. * @inheritdoc
  15. */
  16. public static function tableName() {
  17. return 'production';
  18. }
  19. public function getEtablissement() {
  20. return $this->hasOne(Etablissement::className(), ['id' => 'id_etablissement']);
  21. }
  22. /**
  23. * @inheritdoc
  24. */
  25. public function rules() {
  26. return [
  27. [['date'], 'required'],
  28. [['date'], 'safe'],
  29. [['actif'], 'integer']
  30. ];
  31. }
  32. /**
  33. * @inheritdoc
  34. */
  35. public function attributeLabels() {
  36. return [
  37. 'id' => 'ID',
  38. 'date' => 'Date',
  39. 'actif' => 'Actif',
  40. ];
  41. }
  42. public function getCommande() {
  43. return $this->hasMany(Commande::className(), ['id_production' => 'id']);
  44. }
  45. public function getProductionProduit() {
  46. return $this->hasMany(ProductionProduit::className(), ['id_production' => 'id']);
  47. }
  48. public function produitActif($id_produit) {
  49. if ($id_produit &&
  50. isset($this->productionProduit) &&
  51. count($this->productionProduit) > 0) {
  52. foreach ($this->productionProduit as $production_produit) {
  53. if ($production_produit['id_produit'] == $id_produit &&
  54. $production_produit['actif']) {
  55. return true;
  56. }
  57. }
  58. }
  59. return false;
  60. }
  61. public static function initProduction($date) {
  62. $production = null ;
  63. if ($date != '') {
  64. $production = Production::find()
  65. ->where(['date' => $date])
  66. ->andWhere(['id_etablissement' => Yii::$app->user->identity->id_etablissement])
  67. ->one();
  68. if (!$production) {
  69. $production = new Production;
  70. $production->date = $date;
  71. $production->livraison = 1;
  72. $production->id_etablissement = Yii::$app->user->identity->id_etablissement;
  73. $production->save();
  74. }
  75. }
  76. // production_point_vente à définir s'ils ne sont pas initialisés
  77. if ($production) {
  78. $count_productions_point_vente = ProductionPointVente::find()->
  79. where([
  80. 'id_production' => $production->id
  81. ])
  82. ->count();
  83. if (!$count_productions_point_vente) {
  84. ProductionPointVente::setAll($production->id, true);
  85. }
  86. }
  87. return $production ;
  88. }
  89. }