use Yii; | use Yii; | ||||
use common\models\Commande; | use common\models\Commande; | ||||
use common\models\Production; | |||||
/** | /** | ||||
* This is the model class for table "production". | * This is the model class for table "production". | ||||
* @property string $date | * @property string $date | ||||
* @property integer $actif | * @property integer $actif | ||||
*/ | */ | ||||
class Production extends \yii\db\ActiveRecord { | |||||
class Production extends \yii\db\ActiveRecord | |||||
{ | |||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public static function tableName() { | |||||
public static function tableName() | |||||
{ | |||||
return 'production'; | return 'production'; | ||||
} | } | ||||
public function getEtablissement() { | |||||
public function getEtablissement() | |||||
{ | |||||
return $this->hasOne(Etablissement::className(), ['id' => 'id_etablissement']); | return $this->hasOne(Etablissement::className(), ['id' => 'id_etablissement']); | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
[['date'], 'required'], | [['date'], 'required'], | ||||
[['date'], 'safe'], | [['date'], 'safe'], | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id' => 'ID', | 'id' => 'ID', | ||||
'date' => 'Date', | 'date' => 'Date', | ||||
]; | ]; | ||||
} | } | ||||
public function getCommande() { | |||||
/* | |||||
* Relations | |||||
*/ | |||||
public function getCommande() | |||||
{ | |||||
return $this->hasMany(Commande::className(), ['id_production' => 'id']); | return $this->hasMany(Commande::className(), ['id_production' => 'id']); | ||||
} | } | ||||
public function getProductionProduit() { | |||||
public function getProductionProduit() | |||||
{ | |||||
return $this->hasMany(ProductionProduit::className(), ['id_production' => 'id']); | 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 && | if ($id_produit && | ||||
isset($this->productionProduit) && | |||||
count($this->productionProduit) > 0) { | |||||
isset($this->productionProduit) && | |||||
count($this->productionProduit) > 0) | |||||
{ | |||||
foreach ($this->productionProduit as $production_produit) { | foreach ($this->productionProduit as $production_produit) { | ||||
if ($production_produit['id_produit'] == $id_produit && | if ($production_produit['id_produit'] == $id_produit && | ||||
$production_produit['actif']) { | |||||
$production_produit['actif']) | |||||
{ | |||||
return true; | return true; | ||||
} | } | ||||
} | } | ||||
return false; | return false; | ||||
} | } | ||||
public static function initProduction($date) { | |||||
/** | |||||
* Initialise un jour de production. | |||||
* | |||||
* @param string $date | |||||
* @return Production | |||||
*/ | |||||
public static function initProduction($date) | |||||
{ | |||||
$production = null ; | $production = null ; | ||||
if ($date != '') { | if ($date != '') { | ||||
$production = Production::find() | $production = Production::find() | ||||
// production_point_vente à définir s'ils ne sont pas initialisés | // production_point_vente à définir s'ils ne sont pas initialisés | ||||
if ($production) { | if ($production) { | ||||
$count_productions_point_vente = ProductionPointVente::find()-> | $count_productions_point_vente = ProductionPointVente::find()-> | ||||
where([ | |||||
'id_production' => $production->id | |||||
]) | |||||
->count(); | |||||
where([ | |||||
'id_production' => $production->id | |||||
]) | |||||
->count(); | |||||
if (!$count_productions_point_vente) { | if (!$count_productions_point_vente) { | ||||
ProductionPointVente::setAll($production->id, true); | ProductionPointVente::setAll($production->id, true); |
* @property integer $id_point_vente | * @property integer $id_point_vente | ||||
* @property integer $livraison | * @property integer $livraison | ||||
*/ | */ | ||||
class ProductionPointVente extends \yii\db\ActiveRecord { | |||||
class ProductionPointVente extends \yii\db\ActiveRecord | |||||
{ | |||||
var $productions_point_vente; | var $productions_point_vente; | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public static function tableName() { | |||||
public static function tableName() | |||||
{ | |||||
return 'production_point_vente'; | return 'production_point_vente'; | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
[['id_production', 'id_point_vente'], 'required'], | [['id_production', 'id_point_vente'], 'required'], | ||||
[['id_production', 'id_point_vente', 'livraison'], 'integer'], | [['id_production', 'id_point_vente', 'livraison'], 'integer'], | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id_production' => 'Id Production', | 'id_production' => 'Id Production', | ||||
'id_point_vente' => 'Id Point Vente', | 'id_point_vente' => 'Id Point Vente', | ||||
]; | ]; | ||||
} | } | ||||
public function getProduction() { | |||||
/* | |||||
* Relations | |||||
*/ | |||||
public function getProduction() | |||||
{ | |||||
return $this->hasOne(Production::className(), ['id' => 'id_production']); | return $this->hasOne(Production::className(), ['id' => 'id_production']); | ||||
} | } | ||||
public function getPointVente() { | |||||
public function getPointVente() | |||||
{ | |||||
return $this->hasOne(PointVente::className(), ['id' => 'id_point_vente']); | 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()-> | $count_productions_point_vente = self::find()-> | ||||
where([ | where([ | ||||
'id_production' => $id_production | 'id_production' => $id_production |
* @property integer $id_produit | * @property integer $id_produit | ||||
* @property integer $actif | * @property integer $actif | ||||
*/ | */ | ||||
class ProductionProduit extends \yii\db\ActiveRecord { | |||||
class ProductionProduit extends \yii\db\ActiveRecord | |||||
{ | |||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public static function tableName() { | |||||
public static function tableName() | |||||
{ | |||||
return 'production_produit'; | return 'production_produit'; | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
[['id_production', 'id_produit', 'actif', 'quantite_max'], 'integer'] | [['id_production', 'id_produit', 'actif', 'quantite_max'], 'integer'] | ||||
]; | ]; | ||||
} | } | ||||
public function getProduit() { | |||||
/* | |||||
* Relations | |||||
*/ | |||||
public function getProduit() | |||||
{ | |||||
return $this->hasOne(Produit::className(), ['id' => 'id_produit']); | return $this->hasOne(Produit::className(), ['id' => 'id_produit']); | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id' => 'ID', | 'id' => 'ID', | ||||
'id_production' => 'Id Production', | 'id_production' => 'Id Production', | ||||
]; | ]; | ||||
} | } | ||||
/** | |||||
* Recherche les enregistrement ProductionProduit liés à une production. | |||||
* | |||||
* @param integer $id_production | |||||
* @return array | |||||
*/ | |||||
public static function findProduits($id_production) { | public static function findProduits($id_production) { | ||||
$production_produits = ProductionProduit::find() | $production_produits = ProductionProduit::find() |