[18, 19, 20, 21, 22, 23, 24]], ['delai_commande','in', 'range' => [1,2,3,4,5,6,7]], ['code', function($attribute, $params) { $code = $this->$attribute ; $etablissement = Etablissement::findOne(['code' => $code]) ; if($etablissement && $etablissement->id != $this->id) { $this->addError($attribute, 'Ce code est déjà utilisé par une autre boulangerie.'); } }], [['description'], 'string'], [['solde_negatif', 'credit_pain','actif'], 'boolean'], [['nom', 'siret', 'logo', 'photo', 'code_postal', 'ville','code'], 'string', 'max' => 255], ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'id' => 'ID', 'nom' => 'Nom', 'siret' => 'Siret', 'logo' => 'Logo', 'photo' => 'Photo', 'description' => 'Description', 'code_postal' => 'Code postal', 'ville' => 'Ville', 'code' => 'Code', 'heure_limite_commande' => 'Heure limite de commande', 'delai_commande' => 'Délai de commande', 'solde_negatif' => 'Solde négatif', 'credit_pain' => 'Crédit pain', 'actif' => 'Actif' ]; } public static function getEtablissementsPopulateDropdown() { $etablissements_dispos = Etablissement::find() ->where(['actif' => 1]) ->orderby('code_postal, ville ASC') ->all() ; $departements = Departements::get() ; $data_etablissements_dispos = [] ; $options_etablissements_dispos = [] ; foreach($etablissements_dispos as $e) { if($e->etatPaiement() == self::PAIEMENT_OK || $e->etatPaiement() == self::PAIEMENT_ESSAI) { if(!key_exists('d'. substr($e->code_postal, 0, 2), $data_etablissements_dispos)) { $data_etablissements_dispos['d'. substr($e->code_postal, 0, 2)] = ''.$departements[substr($e->code_postal, 0, 2)].'' ; $options_etablissements_dispos['d'. substr($e->code_postal, 0, 2)] = ['disabled' => true] ; } $data_etablissements_dispos[$e->id] = ' '.Html::encode($e->nom).' - '.Html::encode($e->code_postal).' '.Html::encode($e->ville).' ' ; if(strlen($e->code)) $options_etablissements_dispos[$e->id] = ['class' => 'lock'] ; } } return ['data' => $data_etablissements_dispos, 'options' => $options_etablissements_dispos] ; } public function etatPaiement() { $date_limite = strtotime($this->date_creation) + 30*24*60*60 ; $date = time() ; $date_paiement = strtotime($this->date_paiement) ; if($date < $date_paiement + 30*24*60*60 || $this->gratuit) { return 'ok' ; } else { if($date < $date_limite) { return 'essai' ; } else { if(!$this->date_paiement) return 'essai-terminee' ; else return 'retard-paiement' ; } } } }