@@ -40,6 +40,7 @@ namespace common\models; | |||
use Yii; | |||
use common\models\Commande; | |||
use common\models\Production; | |||
/** | |||
* This is the model class for table "production". | |||
@@ -48,23 +49,27 @@ use common\models\Commande; | |||
* @property string $date | |||
* @property integer $actif | |||
*/ | |||
class Production extends \yii\db\ActiveRecord { | |||
class Production extends \yii\db\ActiveRecord | |||
{ | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public static function tableName() { | |||
public static function tableName() | |||
{ | |||
return 'production'; | |||
} | |||
public function getEtablissement() { | |||
public function getEtablissement() | |||
{ | |||
return $this->hasOne(Etablissement::className(), ['id' => 'id_etablissement']); | |||
} | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public function rules() { | |||
public function rules() | |||
{ | |||
return [ | |||
[['date'], 'required'], | |||
[['date'], 'safe'], | |||
@@ -75,7 +80,8 @@ class Production extends \yii\db\ActiveRecord { | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public function attributeLabels() { | |||
public function attributeLabels() | |||
{ | |||
return [ | |||
'id' => 'ID', | |||
'date' => 'Date', | |||
@@ -83,22 +89,37 @@ class Production extends \yii\db\ActiveRecord { | |||
]; | |||
} | |||
public function getCommande() { | |||
/* | |||
* Relations | |||
*/ | |||
public function getCommande() | |||
{ | |||
return $this->hasMany(Commande::className(), ['id_production' => 'id']); | |||
} | |||
public function getProductionProduit() { | |||
public function getProductionProduit() | |||
{ | |||
return $this->hasMany(ProductionProduit::className(), ['id_production' => 'id']); | |||
} | |||
public function produitActif($id_produit) { | |||
/** | |||
* Retourne si un produit est actif ou non. | |||
* | |||
* @param integer $id_produit | |||
* @return boolean | |||
*/ | |||
public function produitActif($id_produit) | |||
{ | |||
if ($id_produit && | |||
isset($this->productionProduit) && | |||
count($this->productionProduit) > 0) { | |||
isset($this->productionProduit) && | |||
count($this->productionProduit) > 0) | |||
{ | |||
foreach ($this->productionProduit as $production_produit) { | |||
if ($production_produit['id_produit'] == $id_produit && | |||
$production_produit['actif']) { | |||
$production_produit['actif']) | |||
{ | |||
return true; | |||
} | |||
} | |||
@@ -107,7 +128,14 @@ class Production extends \yii\db\ActiveRecord { | |||
return false; | |||
} | |||
public static function initProduction($date) { | |||
/** | |||
* Initialise un jour de production. | |||
* | |||
* @param string $date | |||
* @return Production | |||
*/ | |||
public static function initProduction($date) | |||
{ | |||
$production = null ; | |||
if ($date != '') { | |||
$production = Production::find() | |||
@@ -126,10 +154,10 @@ class Production extends \yii\db\ActiveRecord { | |||
// production_point_vente à définir s'ils ne sont pas initialisés | |||
if ($production) { | |||
$count_productions_point_vente = ProductionPointVente::find()-> | |||
where([ | |||
'id_production' => $production->id | |||
]) | |||
->count(); | |||
where([ | |||
'id_production' => $production->id | |||
]) | |||
->count(); | |||
if (!$count_productions_point_vente) { | |||
ProductionPointVente::setAll($production->id, true); |
@@ -49,21 +49,24 @@ use common\models\Production; | |||
* @property integer $id_point_vente | |||
* @property integer $livraison | |||
*/ | |||
class ProductionPointVente extends \yii\db\ActiveRecord { | |||
class ProductionPointVente extends \yii\db\ActiveRecord | |||
{ | |||
var $productions_point_vente; | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public static function tableName() { | |||
public static function tableName() | |||
{ | |||
return 'production_point_vente'; | |||
} | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public function rules() { | |||
public function rules() | |||
{ | |||
return [ | |||
[['id_production', 'id_point_vente'], 'required'], | |||
[['id_production', 'id_point_vente', 'livraison'], 'integer'], | |||
@@ -73,7 +76,8 @@ class ProductionPointVente extends \yii\db\ActiveRecord { | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public function attributeLabels() { | |||
public function attributeLabels() | |||
{ | |||
return [ | |||
'id_production' => 'Id Production', | |||
'id_point_vente' => 'Id Point Vente', | |||
@@ -81,15 +85,29 @@ class ProductionPointVente extends \yii\db\ActiveRecord { | |||
]; | |||
} | |||
public function getProduction() { | |||
/* | |||
* Relations | |||
*/ | |||
public function getProduction() | |||
{ | |||
return $this->hasOne(Production::className(), ['id' => 'id_production']); | |||
} | |||
public function getPointVente() { | |||
public function getPointVente() | |||
{ | |||
return $this->hasOne(PointVente::className(), ['id' => 'id_point_vente']); | |||
} | |||
public static function setAll($id_production, $bool_livraison) { | |||
/** | |||
* Définit les jours de livraisons des points de vente pour un jour de | |||
* production donné. | |||
* | |||
* @param integer $id_production | |||
* @param boolean $bool_livraison | |||
*/ | |||
public static function setAll($id_production, $bool_livraison) | |||
{ | |||
$count_productions_point_vente = self::find()-> | |||
where([ | |||
'id_production' => $id_production |
@@ -49,32 +49,41 @@ use Yii; | |||
* @property integer $id_produit | |||
* @property integer $actif | |||
*/ | |||
class ProductionProduit extends \yii\db\ActiveRecord { | |||
class ProductionProduit extends \yii\db\ActiveRecord | |||
{ | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public static function tableName() { | |||
public static function tableName() | |||
{ | |||
return 'production_produit'; | |||
} | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public function rules() { | |||
public function rules() | |||
{ | |||
return [ | |||
[['id_production', 'id_produit', 'actif', 'quantite_max'], 'integer'] | |||
]; | |||
} | |||
public function getProduit() { | |||
/* | |||
* Relations | |||
*/ | |||
public function getProduit() | |||
{ | |||
return $this->hasOne(Produit::className(), ['id' => 'id_produit']); | |||
} | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public function attributeLabels() { | |||
public function attributeLabels() | |||
{ | |||
return [ | |||
'id' => 'ID', | |||
'id_production' => 'Id Production', | |||
@@ -84,6 +93,12 @@ class ProductionProduit extends \yii\db\ActiveRecord { | |||
]; | |||
} | |||
/** | |||
* Recherche les enregistrement ProductionProduit liés à une production. | |||
* | |||
* @param integer $id_production | |||
* @return array | |||
*/ | |||
public static function findProduits($id_production) { | |||
$production_produits = ProductionProduit::find() |