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.

87 lines
2.1KB

  1. <?php
  2. namespace common\models;
  3. use yii\base\Object;
  4. use Yii;
  5. /**
  6. * This is the model class for table "production_produit".
  7. *
  8. * @property integer $id
  9. * @property integer $id_production
  10. * @property integer $id_produit
  11. * @property integer $actif
  12. */
  13. class ProductionProduit extends \yii\db\ActiveRecord
  14. {
  15. /**
  16. * @inheritdoc
  17. */
  18. public static function tableName()
  19. {
  20. return 'production_produit';
  21. }
  22. /**
  23. * @inheritdoc
  24. */
  25. public function rules()
  26. {
  27. return [
  28. [['id_production', 'id_produit', 'actif','quantite_max'], 'integer']
  29. ];
  30. }
  31. public function getProduit()
  32. {
  33. return $this->hasOne(Produit::className(), ['id'=>'id_produit']) ;
  34. }
  35. /**
  36. * @inheritdoc
  37. */
  38. public function attributeLabels()
  39. {
  40. return [
  41. 'id' => 'ID',
  42. 'id_production' => 'Id Production',
  43. 'id_produit' => 'Id Produit',
  44. 'actif' => 'Actif',
  45. 'quantite_max' => 'Quantité max',
  46. ];
  47. }
  48. public static function findProduits($id_production) {
  49. $production_produits = ProductionProduit::find()->with('produit')->where(['id_production'=>$id_production])->all() ;
  50. $arr_production_produits = [] ;
  51. $commandes = Commande::find()
  52. ->with('commandeProduits','user')
  53. ->joinWith('production')
  54. ->where(['production.id'=>$id_production])
  55. ->orderBy('date ASC')
  56. ->all() ;
  57. foreach($production_produits as $pp) {
  58. //$arr_production_produits[$pp->id_produit] = (int) $pp->actif ;
  59. //$arr_production_produits[$pp->id_produit] = $pp ;
  60. $arr_production_produits[$pp->id_produit] = [
  61. 'actif'=> (int) $pp->actif,
  62. 'epuise' => (int) $pp->produit->epuise,
  63. 'vrac' => (int) $pp->produit->vrac,
  64. 'quantite_max' => $pp->quantite_max,
  65. 'quantite_commandee' => Commande::getQuantiteProduit($pp->id_produit, $commandes),
  66. 'quantite_restante' => $pp->quantite_max - Commande::getQuantiteProduit($pp->id_produit, $commandes)
  67. ] ;
  68. }
  69. return $arr_production_produits ;
  70. }
  71. }