if (abs($commande->montant - $montant_paye) < 0.0001) { | if (abs($commande->montant - $montant_paye) < 0.0001) { | ||||
$html .= '<span class="label label-success">Payé</span>'; | $html .= '<span class="label label-success">Payé</span>'; | ||||
$buttons_credit = Html::a('Rembourser ' . $commande->getMontantFormat(), 'javascript:void(0);', ['class' => 'btn btn-default btn-xs rembourser', 'data-montant' => $commande->montant, 'data-type' => 'remboursement']); | |||||
$buttons_credit = Html::a('Rembourser ' . $commande->getMontant(true), 'javascript:void(0);', ['class' => 'btn btn-default btn-xs rembourser', 'data-montant' => $commande->montant, 'data-type' => 'remboursement']); | |||||
} elseif ($commande->montant > $montant_paye) { | } elseif ($commande->montant > $montant_paye) { | ||||
$montant_payer = $commande->montant - $montant_paye; | $montant_payer = $commande->montant - $montant_paye; | ||||
$html .= '<span class="label label-danger">Non payé</span> reste <strong>' . number_format($montant_payer, 2) . ' €</strong> à payer'; | $html .= '<span class="label label-danger">Non payé</span> reste <strong>' . number_format($montant_payer, 2) . ' €</strong> à payer'; |
/** | /** | ||||
* ContactForm is the model behind the contact form. | * ContactForm is the model behind the contact form. | ||||
*/ | */ | ||||
class CreditForm extends Model { | |||||
class CreditForm extends Model | |||||
{ | |||||
public $id_user ; | public $id_user ; | ||||
public $id_user_action ; | public $id_user_action ; | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
[['montant'], 'required'], | [['montant'], 'required'], | ||||
[['id_user', 'id_user_action', 'id_etablissement'], 'integer'], | [['id_user', 'id_user_action', 'id_etablissement'], 'integer'], | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id_user' => 'Utilisateur', | 'id_user' => 'Utilisateur', | ||||
'id_user_action' => 'Utilisateur', | 'id_user_action' => 'Utilisateur', | ||||
]; | ]; | ||||
} | } | ||||
public function save() { | |||||
/** | |||||
* Enregistre un modèle CreditHistorique. | |||||
*/ | |||||
public function save() | |||||
{ | |||||
if ($this->validate()) { | if ($this->validate()) { | ||||
$credit_historique = new CreditHistorique ; | $credit_historique = new CreditHistorique ; | ||||
$credit_historique->id_user = $this->id_user; | $credit_historique->id_user = $this->id_user; | ||||
'credit_form' => $this | 'credit_form' => $this | ||||
]) ; | ]) ; | ||||
} | } | ||||
} | } | ||||
} | } | ||||
/** | /** | ||||
* ContactForm is the model behind the contact form. | * ContactForm is the model behind the contact form. | ||||
*/ | */ | ||||
class MailForm extends Model { | |||||
class MailForm extends Model | |||||
{ | |||||
public $subject; | public $subject; | ||||
public $body; | public $body; | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
// name, email, subject and body are required | // name, email, subject and body are required | ||||
[['subject', 'body'], 'required', 'message' => 'Champs obligatoire'], | [['subject', 'body'], 'required', 'message' => 'Champs obligatoire'], | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'subject' => 'Sujet', | 'subject' => 'Sujet', | ||||
'body' => 'Message', | 'body' => 'Message', | ||||
* @param string $email the target email address | * @param string $email the target email address | ||||
* @return boolean whether the email was sent | * @return boolean whether the email was sent | ||||
*/ | */ | ||||
public function sendEmail($email) { | |||||
public function sendEmail($email) | |||||
{ | |||||
return Yii::$app->mailer->compose() | return Yii::$app->mailer->compose() | ||||
->setTo($email) | ->setTo($email) |
<?php endif; ?> | <?php endif; ?> | ||||
<div class="clr"></div> | <div class="clr"></div> | ||||
<?php $etat_paiement_etablissement = Yii::$app->user->identity->etatPaiementEtablissement(); ?> | |||||
<?php if ($etat_paiement_etablissement == 'essai'): ?> | |||||
<span id="etat-paiement-etablissement">Période d'essai gratuite | |||||
<span class="strong"><?php echo Yii::$app->user->identity->periodeEssai(); ?> jours</span> <a class="btn btn-success" href="<?php echo Yii::$app->urlManager->createUrl(['paiement/index']) ?>">S'abonner</a> | |||||
</span> | |||||
<?php elseif ($etat_paiement_etablissement == Etablissement::PAIEMENT_ESSAI_TERMINE || $etat_paiement_etablissement == Etablissement::PAIEMENT_RETARD): ?> | |||||
<span id="etat-paiement-etablissement"> | |||||
<span class="strong"> | |||||
<?php if ($etat_paiement_etablissement == Etablissement::PAIEMENT_ESSAI_TERMINE): ?>Période d'essai gratuite terminée | |||||
<?php elseif ($etat_paiement_etablissement == Etablissement::PAIEMENT_RETARD): ?>Retard de paiement | |||||
<?php endif; ?> | |||||
</span> | |||||
</span> | |||||
<?php endif; ?> | |||||
</div> | </div> | ||||
<?php endif; ?> | <?php endif; ?> | ||||
$this->title = 'Paiement'; | $this->title = 'Paiement'; | ||||
$etat_paiement = Yii::$app->user->identity->etatPaiementEtablissement() ; | |||||
?> | ?> | ||||
<h1>Paiement</h1> | <h1>Paiement</h1> | ||||
<div class="alert alert-warning"> | |||||
<?php if($etat_paiement == Etablissement::PAIEMENT_ESSAI_TERMINE): ?> | |||||
Votre période d'essai gratuite est terminée.<br /> | |||||
Vous pouvez continuer à bénéficier de ce service en vous abonnant à <strong>La boîte à pain</strong> | |||||
pour <strong>30 € / mois</strong> | |||||
<?php elseif($etat_paiement == Etablissement::PAIEMENT_RETARD): ?> | |||||
Nous constatons un retard de paiement sur votre compte.<br /> | |||||
Nous vous invitons à vérifier que tout est en ordre au niveau de votre compte Paypal ou à vous | |||||
abonner à nouveau en utilisant le bouton ci-dessous (<strong>30 € / mois</strong>). | |||||
<?php elseif($etat_paiement == Etablissement::PAIEMENT_ESSAI): ?> | |||||
Si vous souhaitez profiter de ce service au-delà de la période d'essai gratuite, | |||||
abonnez-vous à <strong>La boîte à pain</strong> pour <strong>30 € / mois</strong>. | |||||
<?php endif; ?> | |||||
</div> | |||||
<div class="alert alert-info">Si vous rencontrez des difficultés, n'hésitez pas à nous contacter.</div> | |||||
<!--<h2>Prod</h2> | |||||
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_top"> | |||||
<input type="hidden" name="cmd" value="_s-xclick"> | |||||
<input type="hidden" name="hosted_button_id" value="K96K2WLBSBDSA"> | |||||
<input name="custom" value="<?php echo Yii::$app->user->identity->id; ?>" type="hidden" /> | |||||
<input type="image" src="https://www.paypalobjects.com/fr_FR/FR/i/btn/btn_subscribeCC_LG.gif" border="0" name="submit" alt="PayPal, le réflexe sécurité pour payer en ligne"> | |||||
<img alt="" border="0" src="https://www.paypalobjects.com/fr_FR/i/scr/pixel.gif" width="1" height="1"> | |||||
</form>--> | |||||
<!--<h2>Test</h2>--> | |||||
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_top"> | |||||
<input type="hidden" name="cmd" value="_s-xclick"> | |||||
<input type="hidden" name="hosted_button_id" value="USASPWAC39S4N"> | |||||
<input name="custom" value="<?php echo Yii::$app->user->identity->id; ?>" type="hidden" /> | |||||
<input type="image" src="https://www.sandbox.paypal.com/fr_FR/FR/i/btn/btn_subscribeCC_LG.gif" border="0" name="submit" alt="PayPal, le réflexe sécurité pour payer en ligne"> | |||||
<img alt="" border="0" src="https://www.sandbox.paypal.com/fr_FR/i/scr/pixel.gif" width="1" height="1"> | |||||
</form> | |||||
<td class="historique"><?= $c->getStrHistorique() ; ?></td> | <td class="historique"><?= $c->getStrHistorique() ; ?></td> | ||||
<td><?= $c->getResumePanier() ; ?></td> | <td><?= $c->getResumePanier() ; ?></td> | ||||
<td><?= $c->getResumePointVente() ; ?></td> | <td><?= $c->getResumePointVente() ; ?></td> | ||||
<td><?= $c->getStrMontant() ; ?></td> | |||||
<td><?= $c->getMontant(true) ; ?></td> | |||||
</tr> | </tr> | ||||
<?php endforeach; ?> | <?php endforeach; ?> | ||||
</tbody> | </tbody> |
* @property integer $id_production | * @property integer $id_production | ||||
* @property boolean $paiement_automatique | * @property boolean $paiement_automatique | ||||
*/ | */ | ||||
class Commande extends \yii\db\ActiveRecord { | |||||
var $montant = 0; | |||||
var $montant_pain = 0; | |||||
var $montant_vrac = 0; | |||||
var $montant_paye = 0; | |||||
var $poids_pain = 0; | |||||
var $poids_vrac = 0; | |||||
class Commande extends \yii\db\ActiveRecord | |||||
{ | |||||
var $montant = 0 ; | |||||
var $montant_paye = 0 ; | |||||
var $poids = 0 ; | |||||
const TYPE_AUTO = 'auto'; | const TYPE_AUTO = 'auto'; | ||||
const TYPE_USER = 'user'; | const TYPE_USER = 'user'; | ||||
const TYPE_ADMIN = 'admin'; | const TYPE_ADMIN = 'admin'; | ||||
const STATUT_PAYEE = 'payee'; | const STATUT_PAYEE = 'payee'; | ||||
const STATUT_IMPAYEE = 'impayee'; | const STATUT_IMPAYEE = 'impayee'; | ||||
const STATUT_SURPLUS = 'surplus'; | const STATUT_SURPLUS = 'surplus'; | ||||
const ETAT_MODIFIABLE = 'ouverte'; | const ETAT_MODIFIABLE = 'ouverte'; | ||||
const ETAT_PREPARATION = 'preparation'; | const ETAT_PREPARATION = 'preparation'; | ||||
const ETAT_LIVREE = 'livree'; | const ETAT_LIVREE = 'livree'; | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public static function tableName() { | |||||
public static function tableName() | |||||
{ | |||||
return 'commande'; | return 'commande'; | ||||
} | } | ||||
public function init() { | |||||
if (isset($this->commandeProduits)) { | |||||
foreach ($this->commandeProduits as $p) { | |||||
if ($p->mode_vente == 'unite') { | |||||
$this->montant_pain += $p->prix * $p->quantite; | |||||
if(isset($p->produit)) | |||||
$this->poids_pain += ($p->quantite * $p->produit->poids) / 1000 ; | |||||
} elseif ($p->mode_vente == 'poids') { | |||||
$this->montant_pain += $p->prix * $p->quantite / 1000; | |||||
} | |||||
} | |||||
$this->montant = $this->montant_vrac + $this->montant_pain; | |||||
} | |||||
if (isset($this->creditHistorique) && !$this->montant_paye) { | |||||
foreach ($this->creditHistorique as $ch) { | |||||
if ($ch->type == CreditHistorique::TYPE_PAIEMENT) | |||||
$this->montant_paye += $ch->montant; | |||||
elseif ($ch->type == CreditHistorique::TYPE_REMBOURSEMENT) | |||||
$this->montant_paye -= $ch->montant; | |||||
} | |||||
} | |||||
} | |||||
public static function getQuantiteProduit($id_produit, $commandes) { | |||||
$quantite = 0; | |||||
if (isset($commandes) && is_array($commandes) && count($commandes)) { | |||||
foreach ($commandes as $c) { | |||||
if(is_null($c->date_delete)) { | |||||
foreach ($c->commandeProduits as $cp) { | |||||
if ($cp->id_produit == $id_produit) | |||||
$quantite += $cp->quantite; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
return $quantite; | |||||
} | |||||
/* | /* | ||||
* relations | * relations | ||||
*/ | */ | ||||
public function getUser() { | |||||
public function getUser() | |||||
{ | |||||
return $this->hasOne(User::className(), ['id' => 'id_user']); | return $this->hasOne(User::className(), ['id' => 'id_user']); | ||||
} | } | ||||
public function getCommandeProduits() { | |||||
return $this->hasMany(CommandeProduit::className(), ['id_commande' => 'id'])->with('produit'); | |||||
public function getCommandeProduits() | |||||
{ | |||||
return $this->hasMany(CommandeProduit::className(),['id_commande' => 'id']) | |||||
->with('produit'); | |||||
} | } | ||||
public function getProduction() { | |||||
return $this->hasOne(Production::className(), ['id' => 'id_production'])->with('etablissement'); | |||||
public function getProduction() | |||||
{ | |||||
return $this->hasOne(Production::className(), ['id' => 'id_production']) | |||||
->with('etablissement'); | |||||
} | } | ||||
public function getPointVente() { | |||||
return $this->hasOne(PointVente::className(), ['id' => 'id_point_vente'])->with('pointVenteUser'); | |||||
public function getPointVente() | |||||
{ | |||||
return $this->hasOne(PointVente::className(), ['id' => 'id_point_vente']) | |||||
->with('pointVenteUser'); | |||||
} | } | ||||
public function getCreditHistorique() { | |||||
public function getCreditHistorique() | |||||
{ | |||||
return $this->hasMany(CreditHistorique::className(), ['id_commande' => 'id']); | return $this->hasMany(CreditHistorique::className(), ['id_commande' => 'id']); | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
[['id_user', 'date', 'id_point_vente', 'id_production'], 'required', 'message' => ''], | [['id_user', 'date', 'id_point_vente', 'id_production'], 'required', 'message' => ''], | ||||
[['id_user', 'id_point_vente', 'id_production'], 'integer'], | [['id_user', 'id_point_vente', 'id_production'], 'integer'], | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id' => 'ID', | 'id' => 'ID', | ||||
'id_user' => 'Id User', | 'id_user' => 'Id User', | ||||
'id_production' => 'Date de production', | 'id_production' => 'Date de production', | ||||
]; | ]; | ||||
} | } | ||||
public function strListeVrac() { | |||||
$str = ''; | |||||
foreach ($this->commandeProduits as $cp) { | |||||
if ($cp->produit->vrac) { | |||||
$str .= $cp->quantite . ' ' . Html::encode($cp->produit->diminutif) . ', '; | |||||
/** | |||||
* Initialise le montant total, le montant déjà payé et le poids de la | |||||
* commande | |||||
*/ | |||||
public function init() | |||||
{ | |||||
// Montant | |||||
if (isset($this->commandeProduits)) { | |||||
foreach ($this->commandeProduits as $p) { | |||||
if ($p->mode_vente == 'unite') { | |||||
$this->montant += $p->prix * $p->quantite; | |||||
if(isset($p->produit)) { | |||||
$this->poids += ($p->quantite * $p->produit->poids) / 1000 ; | |||||
} | |||||
} | |||||
elseif ($p->mode_vente == 'poids') { | |||||
$this->montant += $p->prix * $p->quantite / 1000; | |||||
} | |||||
} | |||||
} | |||||
// Montant payé | |||||
if (isset($this->creditHistorique) && !$this->montant_paye) { | |||||
foreach ($this->creditHistorique as $ch) { | |||||
if ($ch->type == CreditHistorique::TYPE_PAIEMENT) { | |||||
$this->montant_paye += $ch->montant; | |||||
} | |||||
elseif ($ch->type == CreditHistorique::TYPE_REMBOURSEMENT) { | |||||
$this->montant_paye -= $ch->montant; | |||||
} | |||||
} | } | ||||
} | } | ||||
return substr($str, 0, strlen($str) - 2); | |||||
} | } | ||||
/** | |||||
* Retourne la quantité d'un produit donné de plusieurs commandes. | |||||
* | |||||
* @param integer $id_produit | |||||
* @param array $commandes | |||||
* | |||||
* @return integer | |||||
*/ | |||||
public static function getQuantiteProduit($id_produit, $commandes) | |||||
{ | |||||
$quantite = 0; | |||||
if (isset($commandes) && is_array($commandes) && count($commandes)) { | |||||
foreach ($commandes as $c) { | |||||
if(is_null($c->date_delete)) { | |||||
foreach ($c->commandeProduits as $cp) { | |||||
if ($cp->id_produit == $id_produit) { | |||||
$quantite += $cp->quantite; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
public function getMontantPaye() { | |||||
return $quantite; | |||||
} | |||||
/** | |||||
* Retourne le montant payé de la commande. | |||||
* | |||||
* @return float | |||||
*/ | |||||
public function getMontantPaye() | |||||
{ | |||||
if ($this->montant_paye) { | if ($this->montant_paye) { | ||||
return $this->montant_paye; | return $this->montant_paye; | ||||
} else { | |||||
} | |||||
else { | |||||
$historique = CreditHistorique::find() | $historique = CreditHistorique::find() | ||||
->where(['id_commande' => $this->id]) | ->where(['id_commande' => $this->id]) | ||||
->all(); | ->all(); | ||||
$montant = 0; | $montant = 0; | ||||
foreach ($historique as $ch) { | foreach ($historique as $ch) { | ||||
if ($ch->type == CreditHistorique::TYPE_PAIEMENT) | |||||
if ($ch->type == CreditHistorique::TYPE_PAIEMENT) { | |||||
$montant += $ch->montant; | $montant += $ch->montant; | ||||
elseif ($ch->type == CreditHistorique::TYPE_REMBOURSEMENT) | |||||
} | |||||
elseif ($ch->type == CreditHistorique::TYPE_REMBOURSEMENT) { | |||||
$montant -= $ch->montant; | $montant -= $ch->montant; | ||||
} | |||||
} | } | ||||
return $montant; | return $montant; | ||||
} | } | ||||
} | } | ||||
public function getMontant($format = false) { | |||||
if ($format) | |||||
/** | |||||
* Retourne le montant de la commande. | |||||
* | |||||
* @param boolean $format | |||||
* @return float | |||||
*/ | |||||
public function getMontant($format = false) | |||||
{ | |||||
if ($format) { | |||||
return number_format($this->getMontant(), 2) . ' €'; | return number_format($this->getMontant(), 2) . ' €'; | ||||
else | |||||
} | |||||
else { | |||||
return $this->montant; | return $this->montant; | ||||
} | |||||
} | } | ||||
public function getMontantFormat() { | |||||
return number_format($this->getMontant(), 2) . ' €'; | |||||
} | |||||
public function getMontantRestant($format = false) { | |||||
/** | |||||
* Retourne le montant restant à payer. | |||||
* | |||||
* @param boolean $format | |||||
* @return float | |||||
*/ | |||||
public function getMontantRestant($format = false) | |||||
{ | |||||
$montant_restant = $this->getMontant() - $this->getMontantPaye(); | $montant_restant = $this->getMontant() - $this->getMontantPaye(); | ||||
if ($format) | |||||
if ($format) { | |||||
return number_format($montant_restant, 2) . ' €'; | return number_format($montant_restant, 2) . ' €'; | ||||
else | |||||
} | |||||
else { | |||||
return $montant_restant; | return $montant_restant; | ||||
} | |||||
} | } | ||||
public function getMontantSurplus($format = false) { | |||||
/** | |||||
* Retourne le montant payé en surplus. | |||||
* | |||||
* @param boolean $format | |||||
* @return float | |||||
*/ | |||||
public function getMontantSurplus($format = false) | |||||
{ | |||||
$montant_surplus = $this->getMontantPaye() - $this->getMontant(); | $montant_surplus = $this->getMontantPaye() - $this->getMontant(); | ||||
if ($format) | |||||
if ($format) { | |||||
return number_format($montant_surplus, 2) . ' €'; | return number_format($montant_surplus, 2) . ' €'; | ||||
else | |||||
} | |||||
else { | |||||
return $montant_surplus; | return $montant_surplus; | ||||
} | |||||
} | } | ||||
public function getDataJson() { | |||||
/** | |||||
* Retourne les informations relatives à la commande au format JSON. | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function getDataJson() | |||||
{ | |||||
$commande = Commande::find()->with('commandeProduits')->where(['id' => $this->id])->one(); | $commande = Commande::find()->with('commandeProduits')->where(['id' => $this->id])->one(); | ||||
$commande->init(); | $commande->init(); | ||||
$json_commande = [ | $json_commande = [ | ||||
'str_montant' => $commande->getMontantFormat(), | 'str_montant' => $commande->getMontantFormat(), | ||||
'montant_paye' => $commande->getMontantPaye(), | 'montant_paye' => $commande->getMontantPaye(), | ||||
'commentaire' => $commande->commentaire, | 'commentaire' => $commande->commentaire, | ||||
]; | |||||
]; | |||||
foreach ($commande->commandeProduits as $commande_produit) { | foreach ($commande->commandeProduits as $commande_produit) { | ||||
$json_commande['produits'][$commande_produit->id_produit] = $commande_produit->quantite; | $json_commande['produits'][$commande_produit->id_produit] = $commande_produit->quantite; | ||||
return json_encode($json_commande); | return json_encode($json_commande); | ||||
} | } | ||||
public function creditHistorique($type, $montant, $id_etablissement, $id_user, $id_user_action) { | |||||
/** | |||||
* Enregistre un modèle de type CreditHistorique. | |||||
* | |||||
* @param string $type | |||||
* @param float $montant | |||||
* @param integer $id_etablissement | |||||
* @param integer $id_user | |||||
* @param integer $id_user_action | |||||
*/ | |||||
public function creditHistorique($type, $montant, $id_etablissement, $id_user, $id_user_action) | |||||
{ | |||||
$credit_historique = new CreditHistorique; | $credit_historique = new CreditHistorique; | ||||
$credit_historique->id_user = $this->id_user; | $credit_historique->id_user = $this->id_user; | ||||
$credit_historique->id_commande = $this->id; | $credit_historique->id_commande = $this->id; | ||||
$credit_historique->save(); | $credit_historique->save(); | ||||
} | } | ||||
public function getStatutPaiement() { | |||||
/** | |||||
* Retourne le statut de paiement de la commande (payée, surplus, ou impayée). | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function getStatutPaiement() | |||||
{ | |||||
// payé | // payé | ||||
if ($this->getMontant() - $this->getMontantPaye() < 0.01 && | if ($this->getMontant() - $this->getMontantPaye() < 0.01 && | ||||
$this->getMontant() - $this->getMontantPaye() >= 0) { | |||||
$this->getMontant() - $this->getMontantPaye() >= 0) | |||||
{ | |||||
return self::STATUT_PAYEE; | return self::STATUT_PAYEE; | ||||
} | } | ||||
// à rembourser | // à rembourser | ||||
return self::STATUT_IMPAYEE; | return self::STATUT_IMPAYEE; | ||||
} | } | ||||
} | } | ||||
public function getResumePanier() { | |||||
if (!isset($this->commandeProduits)) | |||||
/** | |||||
* Retourne le résumé du panier au format HTML. | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function getResumePanier() | |||||
{ | |||||
if (!isset($this->commandeProduits)) { | |||||
$this->commandeProduits = CommandeProduit::find()->where(['id_commande' => $this->id])->all(); | $this->commandeProduits = CommandeProduit::find()->where(['id_commande' => $this->id])->all(); | ||||
} | |||||
$html = ''; | $html = ''; | ||||
$count = count($this->commandeProduits); | $count = count($this->commandeProduits); | ||||
$i = 0; | $i = 0; | ||||
foreach ($this->commandeProduits as $p) { | foreach ($this->commandeProduits as $p) { | ||||
if (isset($p->produit)) { | if (isset($p->produit)) { | ||||
$html .= $p->quantite . ' x ' . Html::encode($p->produit->nom); | $html .= $p->quantite . ' x ' . Html::encode($p->produit->nom); | ||||
if (++$i != $count) | |||||
if (++$i != $count) { | |||||
$html .= '<br />'; | $html .= '<br />'; | ||||
} | |||||
} | } | ||||
} | } | ||||
return $html; | return $html; | ||||
} | } | ||||
public function getResumePointVente() { | |||||
/** | |||||
* Retourne le résumé du point de vente lié à la commande au format HTML. | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function getResumePointVente() | |||||
{ | |||||
$html = ''; | $html = ''; | ||||
if (isset($this->pointVente)) { | if (isset($this->pointVente)) { | ||||
return $html; | return $html; | ||||
} | } | ||||
public function getStrMontant() { | |||||
return number_format($this->montant, 2) . ' €'; | |||||
} | |||||
public function getResumeMontant() { | |||||
/** | |||||
* Retourne le résumé du paiement (montant, statut). | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function getResumeMontant() | |||||
{ | |||||
$html = ''; | $html = ''; | ||||
$html .= $this->getStrMontant() . '<br />'; | |||||
$html .= $this->getMontant(true) . '<br />'; | |||||
if ($this->montant_paye) { | if ($this->montant_paye) { | ||||
if ($this->getStatutPaiement() == Commande::STATUT_PAYEE) { | if ($this->getStatutPaiement() == Commande::STATUT_PAYEE) { | ||||
} elseif ($this->getStatutPaiement() == Commande::STATUT_SURPLUS) { | } elseif ($this->getStatutPaiement() == Commande::STATUT_SURPLUS) { | ||||
$html .= '<span class="label label-success">Payée</span>'; | $html .= '<span class="label label-success">Payée</span>'; | ||||
} | } | ||||
} else { | |||||
} | |||||
else { | |||||
$html .= '<span class="label label-default">À régler sur place</span>'; | $html .= '<span class="label label-default">À régler sur place</span>'; | ||||
} | } | ||||
return $html; | return $html; | ||||
} | } | ||||
public function getStrUser() { | |||||
/** | |||||
* Retourne une chaine de caractère décrivant l'utilisateur lié à la commande. | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function getStrUser() | |||||
{ | |||||
if (isset($this->user)) { | if (isset($this->user)) { | ||||
return Html::encode($this->user->prenom . ' ' . $this->user->nom); | return Html::encode($this->user->prenom . ' ' . $this->user->nom); | ||||
} elseif (strlen($this->username)) { | } elseif (strlen($this->username)) { | ||||
} | } | ||||
} | } | ||||
public static function findBy($params = []) { | |||||
/** | |||||
* Recherche dans les commandes suivant les paramètres suivants : | |||||
* - id_etablissement | |||||
* - condition | |||||
* - date | |||||
* - type | |||||
* - orderby | |||||
* - limit | |||||
* | |||||
* @param array $params | |||||
* @return array | |||||
*/ | |||||
public static function findBy($params = []) | |||||
{ | |||||
if (!isset($params['id_etablissement'])) | if (!isset($params['id_etablissement'])) | ||||
$params['id_etablissement'] = Yii::$app->user->identity->id_etablissement; | $params['id_etablissement'] = Yii::$app->user->identity->id_etablissement; | ||||
return $commandes; | return $commandes; | ||||
} | } | ||||
public function getEtat() { | |||||
/** | |||||
* Retourne l'état de la commande (livrée, modifiable ou en préparation) | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function getEtat() | |||||
{ | |||||
$delai_commande = Etablissement::getConfig('delai_commande', $this->production->id_etablissement); | $delai_commande = Etablissement::getConfig('delai_commande', $this->production->id_etablissement); | ||||
$heure_limite = Etablissement::getConfig('heure_limite_commande', $this->production->id_etablissement); | $heure_limite = Etablissement::getConfig('heure_limite_commande', $this->production->id_etablissement); | ||||
if ($nb_jours <= 0) { | if ($nb_jours <= 0) { | ||||
return self::ETAT_LIVREE; | return self::ETAT_LIVREE; | ||||
} elseif ($nb_jours >= $delai_commande && | |||||
} | |||||
elseif ($nb_jours >= $delai_commande && | |||||
($nb_jours != $delai_commande || | ($nb_jours != $delai_commande || | ||||
($nb_jours == $delai_commande && $heure_today < $heure_limite))) { | |||||
($nb_jours == $delai_commande && $heure_today < $heure_limite))) | |||||
{ | |||||
return self::ETAT_MODIFIABLE; | return self::ETAT_MODIFIABLE; | ||||
} | } | ||||
return self::ETAT_PREPARATION; | return self::ETAT_PREPARATION; | ||||
} | } | ||||
/** | |||||
* Retourne le type de la commande (client, automatique ou admin) sous forme | |||||
* texte ou HTML. | |||||
* | |||||
* @param boolean $with_label | |||||
* @return string | |||||
*/ | |||||
public function getStrType($with_label = false) { | public function getStrType($with_label = false) { | ||||
$class_label = ''; | $class_label = ''; | ||||
$str = ''; | $str = ''; | ||||
return $str; | return $str; | ||||
} | } | ||||
public function getStrHistorique() { | |||||
/** | |||||
* Retourne l'historique de la commande (ajoutée, modifiée, supprimée) au format | |||||
* HTML. | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function getStrHistorique() | |||||
{ | |||||
$arr = [ | $arr = [ | ||||
'class' => 'create', | 'class' => 'create', | ||||
'glyphicon' => 'plus', | 'glyphicon' => 'plus', | ||||
return $html ; | return $html ; | ||||
} | } | ||||
public function getClassHistorique() { | |||||
/** | |||||
* Retourne une classe identifiant l'historique de la commande (ajoutée, | |||||
* modifiée, supprimée). | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function getClassHistorique() | |||||
{ | |||||
if(!is_null($this->date_delete)) { | if(!is_null($this->date_delete)) { | ||||
return 'commande-delete' ; | return 'commande-delete' ; | ||||
} | } | ||||
return 'commande-create' ; | return 'commande-create' ; | ||||
} | } | ||||
} | |||||
} |
* @property string $username | * @property string $username | ||||
* @property string $paiement_automatique | * @property string $paiement_automatique | ||||
*/ | */ | ||||
class CommandeAuto extends \yii\db\ActiveRecord { | |||||
class CommandeAuto extends \yii\db\ActiveRecord | |||||
{ | |||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public static function tableName() { | |||||
public static function tableName() | |||||
{ | |||||
return 'commande_auto'; | return 'commande_auto'; | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
[['id_etablissement', 'id_point_vente'], 'required'], | [['id_etablissement', 'id_point_vente'], 'required'], | ||||
[['id_user', 'id_etablissement', 'id_point_vente', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche', 'periodicite_semaine'], 'integer'], | [['id_user', 'id_etablissement', 'id_point_vente', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche', 'periodicite_semaine'], 'integer'], | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id' => 'ID', | 'id' => 'ID', | ||||
'id_user' => 'Utilisateur', | 'id_user' => 'Utilisateur', | ||||
]; | ]; | ||||
} | } | ||||
public function getUser() { | |||||
/* | |||||
* Relations | |||||
*/ | |||||
public function getUser() | |||||
{ | |||||
return $this->hasOne(User::className(), ['id' => 'id_user']); | return $this->hasOne(User::className(), ['id' => 'id_user']); | ||||
} | } | ||||
public function getEtablissement() { | |||||
public function getEtablissement() | |||||
{ | |||||
return $this->hasOne(Etablissement::className(), ['id' => 'id_etablissement']); | return $this->hasOne(Etablissement::className(), ['id' => 'id_etablissement']); | ||||
} | } | ||||
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 function getCommandeAutoProduit() { | |||||
public function getCommandeAutoProduit() | |||||
{ | |||||
return $this->hasMany(CommandeAutoProduit::className(), ['id_commande_auto' => 'id'])->with('produit'); | return $this->hasMany(CommandeAutoProduit::className(), ['id_commande_auto' => 'id'])->with('produit'); | ||||
} | } | ||||
public static function getAll($date) { | |||||
/** | |||||
* Retourne les commandes récurrentes pour une date donnée. | |||||
* | |||||
* @param string $date | |||||
* @return array | |||||
*/ | |||||
public static function getAll($date) | |||||
{ | |||||
$date = date('Y-m-d', strtotime($date)); | $date = date('Y-m-d', strtotime($date)); | ||||
// commandes auto | // commandes auto | ||||
foreach ($commandes_auto as $c) { | foreach ($commandes_auto as $c) { | ||||
// vérif dates | // vérif dates | ||||
if ($date >= $c->date_debut && | if ($date >= $c->date_debut && | ||||
(!$c->date_fin || $date <= $c->date_fin)) { | |||||
(!$c->date_fin || $date <= $c->date_fin)) | |||||
{ | |||||
// périodicite | // périodicite | ||||
$nb_jours = (strtotime($date) - strtotime($c->date_debut)) / (24 * 60 * 60); | $nb_jours = (strtotime($date) - strtotime($c->date_debut)) / (24 * 60 * 60); | ||||
if ($nb_jours % ($c->periodicite_semaine * 7) < 7) { | if ($nb_jours % ($c->periodicite_semaine * 7) < 7) { | ||||
return $arr_commandes_auto; | return $arr_commandes_auto; | ||||
} | } | ||||
public static function addAll($date, $force = false) { | |||||
/** | |||||
* Ajoute les commandes pour une date donnée à partir des commnandes | |||||
* récurrentes. | |||||
* | |||||
* @param string $date | |||||
* @param boolean $force | |||||
*/ | |||||
public static function addAll($date, $force = false) | |||||
{ | |||||
// production | // production | ||||
$production = Production::findOne([ | $production = Production::findOne([ | ||||
'date' => date('Y-m-d', strtotime($date)), | |||||
'id_etablissement' => Yii::$app->user->identity->id_etablissement | |||||
]); | |||||
'date' => date('Y-m-d', strtotime($date)), | |||||
'id_etablissement' => Yii::$app->user->identity->id_etablissement | |||||
]); | |||||
if ($production) { | if ($production) { | ||||
$count_commandes_prod = Commande::find() | $count_commandes_prod = Commande::find() | ||||
->where(['id_production' => $production->id]) | |||||
->count(); | |||||
->where(['id_production' => $production->id]) | |||||
->count(); | |||||
if (!$count_commandes_prod || $force) { | if (!$count_commandes_prod || $force) { | ||||
$commandes_auto = self::getAll($date); | $commandes_auto = self::getAll($date); | ||||
} | } | ||||
} | } | ||||
public function add($date) { | |||||
/** | |||||
* Ajoute la commande récurrente pour une date donnée. | |||||
* | |||||
* @param string $date | |||||
*/ | |||||
public function add($date) | |||||
{ | |||||
// production | // production | ||||
$production = Production::find() | $production = Production::find() | ||||
->where([ | ->where([ |
/** | /** | ||||
* Login form | * Login form | ||||
*/ | */ | ||||
class CommandeAutoForm extends Model { | |||||
class CommandeAutoForm extends Model | |||||
{ | |||||
public $id; | public $id; | ||||
public $id_user; | public $id_user; | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
[['id_etablissement', 'periodicite_semaine', 'id_point_vente'], 'integer'], | [['id_etablissement', 'periodicite_semaine', 'id_point_vente'], 'integer'], | ||||
[['date_debut', 'date_fin'], 'date', 'format' => 'php:d/m/Y'], | [['date_debut', 'date_fin'], 'date', 'format' => 'php:d/m/Y'], | ||||
]; | ]; | ||||
} | } | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id' => 'ID', | 'id' => 'ID', | ||||
'id_user' => 'Utilisateur', | 'id_user' => 'Utilisateur', | ||||
]; | ]; | ||||
} | } | ||||
public function save() { | |||||
/** | |||||
* Enregistre la CommandeAuto. | |||||
* | |||||
* @return boolean | |||||
*/ | |||||
public function save() | |||||
{ | |||||
if ($this->id) { | if ($this->id) { | ||||
$commandeauto = CommandeAuto::findOne($this->id); | $commandeauto = CommandeAuto::findOne($this->id); | ||||
} else { | |||||
} | |||||
else { | |||||
$commandeauto = new CommandeAuto; | $commandeauto = new CommandeAuto; | ||||
} | } | ||||
$commandeauto->username = $this->username; | $commandeauto->username = $this->username; | ||||
$commandeauto->id_etablissement = $this->id_etablissement; | $commandeauto->id_etablissement = $this->id_etablissement; | ||||
$commandeauto->id_point_vente = $this->id_point_vente; | $commandeauto->id_point_vente = $this->id_point_vente; | ||||
$commandeauto->date_debut = date('Y-m-d', strtotime(str_replace('/', '-', $this->date_debut))); | |||||
$commandeauto->date_debut = date( | |||||
'Y-m-d', | |||||
strtotime(str_replace('/', '-', $this->date_debut) | |||||
)); | |||||
if (strlen($this->date_fin)) { | if (strlen($this->date_fin)) { | ||||
$commandeauto->date_fin = date('Y-m-d', strtotime(str_replace('/', '-', $this->date_fin))); | |||||
$commandeauto->date_fin = date( | |||||
'Y-m-d', | |||||
strtotime(str_replace('/', '-', $this->date_fin) | |||||
)); | |||||
} | } | ||||
$commandeauto->lundi = $this->lundi; | $commandeauto->lundi = $this->lundi; | ||||
$commandeauto->mardi = $this->mardi; | $commandeauto->mardi = $this->mardi; | ||||
} | } | ||||
} | } | ||||
} | } | ||||
return true; | return true; | ||||
} | } | ||||
* @property integer $id_produit | * @property integer $id_produit | ||||
* @property double $quantite | * @property double $quantite | ||||
*/ | */ | ||||
class CommandeAutoProduit extends \yii\db\ActiveRecord { | |||||
class CommandeAutoProduit extends \yii\db\ActiveRecord | |||||
{ | |||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public static function tableName() { | |||||
public static function tableName() | |||||
{ | |||||
return 'commande_auto_produit'; | return 'commande_auto_produit'; | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
[['id_commande_auto', 'id_produit'], 'required'], | [['id_commande_auto', 'id_produit'], 'required'], | ||||
[['id_commande_auto', 'id_produit'], 'integer'], | [['id_commande_auto', 'id_produit'], 'integer'], | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id' => 'ID', | 'id' => 'ID', | ||||
'id_commande_auto' => 'Id Commande Auto', | 'id_commande_auto' => 'Id Commande Auto', | ||||
]; | ]; | ||||
} | } | ||||
public function getProduit() { | |||||
/* | |||||
* Relations | |||||
*/ | |||||
public function getProduit() | |||||
{ | |||||
return $this->hasOne(Produit::className(), ['id' => 'id_produit']); | return $this->hasOne(Produit::className(), ['id' => 'id_produit']); | ||||
} | } | ||||
* @property integer $id_produit | * @property integer $id_produit | ||||
* @property double $quantite | * @property double $quantite | ||||
*/ | */ | ||||
class CommandeProduit extends \yii\db\ActiveRecord { | |||||
class CommandeProduit extends \yii\db\ActiveRecord | |||||
{ | |||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public static function tableName() { | |||||
public static function tableName() | |||||
{ | |||||
return 'commande_produit'; | return 'commande_produit'; | ||||
} | } | ||||
* Relations | * Relations | ||||
*/ | */ | ||||
public function getProduit() { | |||||
public function getProduit() | |||||
{ | |||||
return $this->hasOne(Produit::className(), ['id' => 'id_produit']); | return $this->hasOne(Produit::className(), ['id' => 'id_produit']); | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
[['id_commande', 'id_produit', 'quantite'], 'required'], | [['id_commande', 'id_produit', 'quantite'], 'required'], | ||||
[['id_commande', 'id_produit'], 'integer'], | [['id_commande', 'id_produit'], 'integer'], | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id' => 'ID', | 'id' => 'ID', | ||||
'id_commande' => 'Id Commande', | 'id_commande' => 'Id Commande', | ||||
]; | ]; | ||||
} | } | ||||
} | |||||
} |
/** | /** | ||||
* ContactForm is the model behind the contact form. | * ContactForm is the model behind the contact form. | ||||
*/ | */ | ||||
class ContactForm extends Model { | |||||
class ContactForm extends Model | |||||
{ | |||||
public $name; | public $name; | ||||
public $email; | public $email; | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
// name, email, subject and body are required | // name, email, subject and body are required | ||||
[['name', 'email', 'subject', 'body'], 'required', 'message' => 'Champs obligatoire'], | [['name', 'email', 'subject', 'body'], 'required', 'message' => 'Champs obligatoire'], | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'name' => 'Nom', | 'name' => 'Nom', | ||||
'email' => 'Email', | 'email' => 'Email', | ||||
* @param string $email the target email address | * @param string $email the target email address | ||||
* @return boolean whether the email was sent | * @return boolean whether the email was sent | ||||
*/ | */ | ||||
public function sendEmail($email) { | |||||
public function sendEmail($email) | |||||
{ | |||||
return Yii::$app->mailer->compose([ | return Yii::$app->mailer->compose([ | ||||
'html' => 'contact-html', | 'html' => 'contact-html', |
* @property integer $id_etablissement | * @property integer $id_etablissement | ||||
* @property string $moyen_paiement | * @property string $moyen_paiement | ||||
*/ | */ | ||||
class CreditHistorique extends ActiveRecord { | |||||
class CreditHistorique extends ActiveRecord | |||||
{ | |||||
const TYPE_CREDIT_INITIAL = 'credit-initial'; | const TYPE_CREDIT_INITIAL = 'credit-initial'; | ||||
const TYPE_CREDIT = 'credit'; | const TYPE_CREDIT = 'credit'; | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public static function tableName() { | |||||
public static function tableName() | |||||
{ | |||||
return 'credit_historique'; | return 'credit_historique'; | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
[['montant'], 'required'], | [['montant'], 'required'], | ||||
[['id_user', 'id_user_action', 'id_commande', 'id_etablissement'], 'integer'], | [['id_user', 'id_user_action', 'id_commande', 'id_etablissement'], 'integer'], | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id' => 'ID', | 'id' => 'ID', | ||||
'id_user' => 'Utilisateur', | 'id_user' => 'Utilisateur', | ||||
]; | ]; | ||||
} | } | ||||
public function getUser() { | |||||
/* | |||||
* Relations | |||||
*/ | |||||
public function getUser() | |||||
{ | |||||
return $this->hasOne(User::className(), ['id' => 'id_user']); | return $this->hasOne(User::className(), ['id' => 'id_user']); | ||||
} | } | ||||
public function getUserAction() { | |||||
public function getUserAction() | |||||
{ | |||||
return $this->hasOne(User::className(), ['id' => 'id_user_action']); | return $this->hasOne(User::className(), ['id' => 'id_user_action']); | ||||
} | } | ||||
public function getCommande() { | |||||
public function getCommande() | |||||
{ | |||||
return $this->hasOne(Commande::className(), ['id' => 'id_commande']); | return $this->hasOne(Commande::className(), ['id' => 'id_commande']); | ||||
} | } | ||||
public function getLibelleType() { | |||||
/** | |||||
* Retourne le type de CreditHistorique (paiement, remboursement ou débit). | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function getLibelleType() | |||||
{ | |||||
switch ($this->type) { | switch ($this->type) { | ||||
case 'paiement': | case 'paiement': | ||||
return 'Paiement'; | return 'Paiement'; | ||||
} | } | ||||
} | } | ||||
public function save($runValidation = true, $attributeNames = NULL) { | |||||
/** | |||||
* Enregistre le modèle. | |||||
* | |||||
* @param boolean $runValidation | |||||
* @param array $attributeNames | |||||
*/ | |||||
public function save($runValidation = true, $attributeNames = NULL) | |||||
{ | |||||
// initialisation du commentaire avant sauvegarde | // initialisation du commentaire avant sauvegarde | ||||
$this->commentaire .= $this->getStrCommentaire() ; | $this->commentaire .= $this->getStrCommentaire() ; | ||||
} | } | ||||
} | } | ||||
public function isTypeDebit() { | |||||
/** | |||||
* Retourne si le CreditHistorique est un débit ou non. | |||||
* | |||||
* @return boolean | |||||
*/ | |||||
public function isTypeDebit() | |||||
{ | |||||
return in_array($this->type, [ | return in_array($this->type, [ | ||||
self::TYPE_DEBIT, | self::TYPE_DEBIT, | ||||
self::TYPE_PAIEMENT, | self::TYPE_PAIEMENT, | ||||
]) ; | ]) ; | ||||
} | } | ||||
public function isTypeCredit() { | |||||
/** | |||||
* Retourne si le CreditHistorique est un crédit ou non. | |||||
* | |||||
* @return boolean | |||||
*/ | |||||
public function isTypeCredit() | |||||
{ | |||||
return in_array($this->type, [ | return in_array($this->type, [ | ||||
self::TYPE_CREDIT, | self::TYPE_CREDIT, | ||||
self::TYPE_CREDIT_INITIAL, | self::TYPE_CREDIT_INITIAL, | ||||
]) ; | ]) ; | ||||
} | } | ||||
public function getMontant($format = false) { | |||||
/** | |||||
* Retourne le montant. | |||||
* | |||||
* @param boolean $format | |||||
* @return float | |||||
*/ | |||||
public function getMontant($format = false) | |||||
{ | |||||
if($format) | if($format) | ||||
return number_format($this->montant,2) .' €' ; | return number_format($this->montant,2) .' €' ; | ||||
else | else | ||||
return $this->montant ; | return $this->montant ; | ||||
} | } | ||||
public function getStrLibelle() { | |||||
/** | |||||
* Retourne le libellé du CreditHistorique informant de son type et | |||||
* éventuellement de la date de sa commande associée. | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function getStrLibelle() | |||||
{ | |||||
$str = '' ; | $str = '' ; | ||||
if($this->type == self::TYPE_CREDIT_INITIAL) { | if($this->type == self::TYPE_CREDIT_INITIAL) { | ||||
} | } | ||||
} | } | ||||
return $str ; | return $str ; | ||||
} | } | ||||
public function getStrCommentaire() { | |||||
/** | |||||
* Retourne les informations à ajouter au commentaire du CreditHistorique | |||||
* (libellé, montant, client, action) au format HTML. | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function getStrCommentaire() | |||||
{ | |||||
$str = '' ; | $str = '' ; | ||||
if(strlen($this->commentaire)) { | if(strlen($this->commentaire)) { | ||||
$str .= '<br />' ; | $str .= '<br />' ; | ||||
return $str ; | return $str ; | ||||
} | } | ||||
public function getDate($format = false) { | |||||
/** | |||||
* Retourne la date. | |||||
* | |||||
* @param boolean $format | |||||
* @return string | |||||
*/ | |||||
public function getDate($format = false) | |||||
{ | |||||
if($format) | if($format) | ||||
return date('d/m/Y à H:i:s',strtotime($this->date)) ; | return date('d/m/Y à H:i:s',strtotime($this->date)) ; | ||||
else | else | ||||
return $this->date ; | return $this->date ; | ||||
} | } | ||||
public function getStrMoyenPaiement() { | |||||
/** | |||||
* Retourne le moyen de paiement. | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function getStrMoyenPaiement() | |||||
{ | |||||
switch($this->moyen_paiement) { | switch($this->moyen_paiement) { | ||||
case CreditHistorique::MOYEN_ESPECES : return 'Espèces' ; | case CreditHistorique::MOYEN_ESPECES : return 'Espèces' ; | ||||
case CreditHistorique::MOYEN_CHEQUE : return 'Chèque' ; | case CreditHistorique::MOYEN_CHEQUE : return 'Chèque' ; | ||||
} | } | ||||
} | } | ||||
public function strUserAction() { | |||||
/** | |||||
* Retourne le libellé de l'utilisateur ayant initié l'action. | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function strUserAction() | |||||
{ | |||||
if($this->userAction) { | if($this->userAction) { | ||||
return $this->userAction->nom . ' ' . $this->userAction->prenom ; | return $this->userAction->nom . ' ' . $this->userAction->prenom ; | ||||
} | } |
* @property string $statut | * @property string $statut | ||||
* @property double $estimation_temps | * @property double $estimation_temps | ||||
*/ | */ | ||||
class Developpement extends \yii\db\ActiveRecord { | |||||
class Developpement extends \yii\db\ActiveRecord | |||||
{ | |||||
const STATUT_OPEN = 'open'; | const STATUT_OPEN = 'open'; | ||||
const STATUT_CLOSED = 'closed'; | const STATUT_CLOSED = 'closed'; | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public static function tableName() { | |||||
public static function tableName() | |||||
{ | |||||
return 'developpement'; | return 'developpement'; | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
[['objet', 'date'], 'required'], | [['objet', 'date'], 'required'], | ||||
[['id', 'avancement'], 'integer'], | [['id', 'avancement'], 'integer'], | ||||
]; | ]; | ||||
} | } | ||||
public function getDeveloppementPriorite() { | |||||
/* | |||||
* Relations | |||||
*/ | |||||
public function getDeveloppementPriorite() | |||||
{ | |||||
return $this->hasMany(DeveloppementPriorite::className(), ['id_developpement' => 'id'])->with('etablissement'); | return $this->hasMany(DeveloppementPriorite::className(), ['id_developpement' => 'id'])->with('etablissement'); | ||||
} | } | ||||
public function getDeveloppementPrioriteCurrentEtablissement() { | |||||
public function getDeveloppementPrioriteCurrentEtablissement() | |||||
{ | |||||
return $this->hasOne(DeveloppementPriorite::className(), ['id_developpement' => 'id'])->where(['id_etablissement' => Yii::$app->user->identity->id_etablissement])->with('etablissement'); | return $this->hasOne(DeveloppementPriorite::className(), ['id_developpement' => 'id'])->where(['id_etablissement' => Yii::$app->user->identity->id_etablissement])->with('etablissement'); | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id' => 'ID', | 'id' => 'ID', | ||||
'objet' => 'Sujet', | 'objet' => 'Sujet', | ||||
'date_livraison' => 'Date de livraison' | 'date_livraison' => 'Date de livraison' | ||||
]; | ]; | ||||
} | } | ||||
/** | |||||
* Définit une date de livraison. | |||||
* | |||||
* @param string $date | |||||
*/ | |||||
public function setDateLivraison($date = '') { | public function setDateLivraison($date = '') { | ||||
if (strlen($date)) | if (strlen($date)) |
* @property integer $id_user | * @property integer $id_user | ||||
* @property integer $id_developpement | * @property integer $id_developpement | ||||
*/ | */ | ||||
class DeveloppementPriorite extends \yii\db\ActiveRecord { | |||||
class DeveloppementPriorite extends \yii\db\ActiveRecord | |||||
{ | |||||
const PRIORITE_HAUTE = 'haute'; | const PRIORITE_HAUTE = 'haute'; | ||||
const PRIORITE_NORMALE = 'normale'; | const PRIORITE_NORMALE = 'normale'; | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public static function tableName() { | |||||
public static function tableName() | |||||
{ | |||||
return 'developpement_priorite'; | return 'developpement_priorite'; | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
[['id_etablissement', 'id_developpement'], 'required'], | [['id_etablissement', 'id_developpement'], 'required'], | ||||
[['id_etablissement', 'id_developpement'], 'integer'], | [['id_etablissement', 'id_developpement'], 'integer'], | ||||
[['priorite'], 'string'], | [['priorite'], 'string'], | ||||
]; | ]; | ||||
} | } | ||||
/* | |||||
* Relations | |||||
*/ | |||||
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 attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id_etablissement' => 'Établissement', | 'id_etablissement' => 'Établissement', | ||||
'id_developpement' => 'Développement', | 'id_developpement' => 'Développement', | ||||
]; | ]; | ||||
} | } | ||||
public function getStrPriorite() { | |||||
/** | |||||
* Retourne la priorité. | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function getStrPriorite() | |||||
{ | |||||
switch ($this->priorite) { | switch ($this->priorite) { | ||||
case self::PRIORITE_BASSE : return 'Basse'; | case self::PRIORITE_BASSE : return 'Basse'; | ||||
break; | break; | ||||
} | } | ||||
} | } | ||||
public function getClassCssStyleBouton() { | |||||
/** | |||||
* Retourne la classe CSS du bouton servant à définir la priorité. | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function getClassCssStyleBouton() | |||||
{ | |||||
$style_bouton = 'default'; | $style_bouton = 'default'; | ||||
if ($this->priorite == DeveloppementPriorite::PRIORITE_BASSE) | if ($this->priorite == DeveloppementPriorite::PRIORITE_BASSE) | ||||
$style_bouton = 'info'; | $style_bouton = 'info'; |
* @property string $code_postal | * @property string $code_postal | ||||
* @property string $ville | * @property string $ville | ||||
*/ | */ | ||||
class Etablissement extends \yii\db\ActiveRecord { | |||||
class Etablissement extends \yii\db\ActiveRecord | |||||
{ | |||||
const PAIEMENT_OK = 'ok'; | const PAIEMENT_OK = 'ok'; | ||||
const PAIEMENT_ESSAI = 'essai'; | const PAIEMENT_ESSAI = 'essai'; | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public static function tableName() { | |||||
public static function tableName() | |||||
{ | |||||
return 'etablissement'; | return 'etablissement'; | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
[['nom', 'siret', 'heure_limite_commande', 'delai_commande','type'], 'required'], | [['nom', 'siret', 'heure_limite_commande', 'delai_commande','type'], 'required'], | ||||
[['heure_limite_commande', 'delai_commande'], 'integer'], | [['heure_limite_commande', 'delai_commande'], 'integer'], | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id' => 'ID', | 'id' => 'ID', | ||||
'nom' => 'Nom', | 'nom' => 'Nom', | ||||
]; | ]; | ||||
} | } | ||||
public function getUserEtablissement() { | |||||
return $this->hasMany(UserEtablissement::className(), ['id_etablissement' => 'id']); | |||||
/* | |||||
* Relations | |||||
*/ | |||||
public function getUserEtablissement() | |||||
{ | |||||
return $this->hasMany( | |||||
UserEtablissement::className(), | |||||
['id_etablissement' => 'id'] | |||||
); | |||||
} | } | ||||
public function getUser() { | |||||
public function getUser() | |||||
{ | |||||
return $this->hasMany(User::className(), ['id_etablissement' => 'id']); | return $this->hasMany(User::className(), ['id_etablissement' => 'id']); | ||||
} | } | ||||
public function getContact() { | |||||
return $this->hasMany(User::className(), ['id_etablissement' => 'id'])->where(['status' => User::STATUS_BOULANGER]); | |||||
public function getContact() | |||||
{ | |||||
return $this->hasMany(User::className(),['id_etablissement' => 'id']) | |||||
->where(['status' => User::STATUS_BOULANGER]); | |||||
} | } | ||||
public static function getEtablissementsPopulateDropdown() { | |||||
/** | |||||
* Retourne la liste des établissements pour l'initialisation d'une liste | |||||
* sélective. | |||||
* | |||||
* @return array | |||||
*/ | |||||
public static function getEtablissementsPopulateDropdown() | |||||
{ | |||||
$etablissements_dispos = Etablissement::find() | $etablissements_dispos = Etablissement::find() | ||||
->where(['actif' => 1]) | ->where(['actif' => 1]) | ||||
->orderby('code_postal, ville ASC') | ->orderby('code_postal, ville ASC') | ||||
return ['data' => $data_etablissements_dispos, 'options' => $options_etablissements_dispos]; | 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'; | |||||
} | |||||
} | |||||
} | |||||
public function getCA($periode = '', $format = false) { | |||||
/** | |||||
* Retourne le CA de l'établissement pour un mois donné. | |||||
* | |||||
* @param string $periode | |||||
* @param boolean $format | |||||
* @return string | |||||
*/ | |||||
public function getCA($periode = '', $format = false) | |||||
{ | |||||
if (!$periode) | if (!$periode) | ||||
$periode = date('Y-m'); | $periode = date('Y-m'); | ||||
$connection = Yii::$app->getDb(); | $connection = Yii::$app->getDb(); | ||||
$command = $connection->createCommand(' | $command = $connection->createCommand(' | ||||
SELECT SUM(IF(produit.vrac,0,commande_produit.prix * commande_produit.quantite)) AS CA | |||||
FROM commande, commande_produit, production, produit | |||||
WHERE commande.id = commande_produit.id_commande | |||||
AND production.id_etablissement = :id_etablissement | |||||
AND commande.id_production = production.id | |||||
AND commande_produit.id_produit = produit.id | |||||
AND production.date > :date_debut | |||||
AND production.date < :date_fin', [ | |||||
':date_debut' => date('Y-m-31', strtotime("-1 month", strtotime($periode))), | |||||
':date_fin' => date('Y-m-01', strtotime("+1 month", strtotime($periode))), | |||||
':id_etablissement' => $this->id | |||||
SELECT SUM(IF(produit.vrac,0,commande_produit.prix * commande_produit.quantite)) AS CA | |||||
FROM commande, commande_produit, production, produit | |||||
WHERE commande.id = commande_produit.id_commande | |||||
AND production.id_etablissement = :id_etablissement | |||||
AND commande.id_production = production.id | |||||
AND commande_produit.id_produit = produit.id | |||||
AND production.date > :date_debut | |||||
AND production.date < :date_fin', [ | |||||
':date_debut' => date('Y-m-31', strtotime("-1 month", strtotime($periode))), | |||||
':date_fin' => date('Y-m-01', strtotime("+1 month", strtotime($periode))), | |||||
':id_etablissement' => $this->id | |||||
]); | ]); | ||||
$result = $command->queryOne(); | $result = $command->queryOne(); | ||||
return $ca; | return $ca; | ||||
} | } | ||||
public function getMontantFacturer($periode = '', $ca = 0, $format = false) { | |||||
/** | |||||
* Retourne le montant à facturer pour une période donnée. | |||||
* | |||||
* @param string $periode | |||||
* @param float $ca | |||||
* @param boolean $format | |||||
* @return string | |||||
*/ | |||||
public function getMontantFacturer($periode = '', $ca = 0, $format = false) | |||||
{ | |||||
if (!$periode) | if (!$periode) | ||||
$periode = date('Y-m'); | $periode = date('Y-m'); | ||||
} | } | ||||
} | } | ||||
public function getFacture($periode = '') { | |||||
/** | |||||
* Retourne la facture d'une période donnée. | |||||
* | |||||
* @param string $periode | |||||
* @return Facture | |||||
*/ | |||||
public function getFacture($periode = '') | |||||
{ | |||||
if (!$periode) | if (!$periode) | ||||
$periode = date('Y-m', strtotime('-1 month')); | $periode = date('Y-m', strtotime('-1 month')); | ||||
return $facture; | return $facture; | ||||
} | } | ||||
public function factureMoisDernier() { | |||||
/** | |||||
* Retourne la facture du mois dernier. | |||||
* | |||||
* @return Facture | |||||
*/ | |||||
public function factureMoisDernier() | |||||
{ | |||||
return $this->getFacture(date('Y-m', strtotime('-1 month'))); | return $this->getFacture(date('Y-m', strtotime('-1 month'))); | ||||
} | } | ||||
public static function getConfig($config = '', $id_etablissement = 0) { | |||||
/** | |||||
* Retourne une configuration d'un établissement donné. | |||||
* | |||||
* @param string $config | |||||
* @param integer $id_etablissement | |||||
* @return mixed | |||||
*/ | |||||
public static function getConfig($config = '', $id_etablissement = 0) | |||||
{ | |||||
if (strlen($config)) { | if (strlen($config)) { | ||||
if (!$id_etablissement) | |||||
if (!$id_etablissement) { | |||||
$id_etablissement = Yii::$app->user->identity->id_etablissement; | $id_etablissement = Yii::$app->user->identity->id_etablissement; | ||||
} | |||||
$etablissement = self::findOne($id_etablissement); | $etablissement = self::findOne($id_etablissement); | ||||
if ($etablissement) { | if ($etablissement) { | ||||
return $etablissement->$config; | return $etablissement->$config; | ||||
return false; | return false; | ||||
} | } | ||||
public function getPrixLibre() { | |||||
/** | |||||
* Retourne le montant de l'abonnement à prix libre définit par | |||||
* l'établissement | |||||
* | |||||
* @param boolean $format | |||||
* @return mixed | |||||
*/ | |||||
public function getPrixLibre($format = true) | |||||
{ | |||||
if (!is_null($this->prix_libre)) { | if (!is_null($this->prix_libre)) { | ||||
return number_format($this->prix_libre, 2, ',', false) . ' € HT'; | |||||
if($format) { | |||||
return number_format($this->prix_libre, 2, ',', false) . ' € HT'; | |||||
} | |||||
else { | |||||
return $this->prix_libre; | |||||
} | |||||
} | } | ||||
} | } | ||||
public static function addUser($id_user, $id_producer) { | |||||
/** | |||||
* Lie un utilisateur à un producteur. | |||||
* | |||||
* @param integer $id_user | |||||
* @param integer $id_producer | |||||
* @return UserProducer | |||||
*/ | |||||
public static function addUser($id_user, $id_producer) | |||||
{ | |||||
$user_producer = UserEtablissement::find() | $user_producer = UserEtablissement::find() | ||||
->where([ | ->where([ | ||||
'id_user' => $id_user, | 'id_user' => $id_user, |
* @property string $date_paiement | * @property string $date_paiement | ||||
* @property string $methode_paiement | * @property string $methode_paiement | ||||
*/ | */ | ||||
class Facture extends \yii\db\ActiveRecord { | |||||
class Facture extends \yii\db\ActiveRecord | |||||
{ | |||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public static function tableName() { | |||||
public static function tableName() | |||||
{ | |||||
return 'facture'; | return 'facture'; | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
[['id_etablissement', 'paye'], 'integer'], | [['id_etablissement', 'paye'], 'integer'], | ||||
[['date', 'date_paiement'], 'safe'], | [['date', 'date_paiement'], 'safe'], | ||||
]; | ]; | ||||
} | } | ||||
public function getEtablissement() { | |||||
/* | |||||
* Relations | |||||
*/ | |||||
public function getEtablissement() | |||||
{ | |||||
return $this->hasOne(Etablissement::className(), ['id' => 'id_etablissement']); | return $this->hasOne(Etablissement::className(), ['id' => 'id_etablissement']); | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id' => 'ID', | 'id' => 'ID', | ||||
'id_etablissement' => 'Id Etablissement', | 'id_etablissement' => 'Id Etablissement', | ||||
]; | ]; | ||||
} | } | ||||
public static function getLastFacture() { | |||||
/** | |||||
* Retourne la dernière facture émise. | |||||
* | |||||
* @return Facture | |||||
*/ | |||||
public static function getLastFacture() | |||||
{ | |||||
return Facture::find() | return Facture::find() | ||||
->orderBy('reference DESC') | ->orderBy('reference DESC') | ||||
->one(); | ->one(); |
/** | /** | ||||
* Login form | * Login form | ||||
*/ | */ | ||||
class LoginForm extends Model { | |||||
class LoginForm extends Model | |||||
{ | |||||
public $username; | public $username; | ||||
public $password; | public $password; | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
['email', 'filter', 'filter' => 'trim'], | ['email', 'filter', 'filter' => 'trim'], | ||||
* @param string $attribute the attribute currently being validated | * @param string $attribute the attribute currently being validated | ||||
* @param array $params the additional name-value pairs given in the rule | * @param array $params the additional name-value pairs given in the rule | ||||
*/ | */ | ||||
public function validatePassword($attribute, $params) { | |||||
public function validatePassword($attribute, $params) | |||||
{ | |||||
if (!$this->hasErrors()) { | if (!$this->hasErrors()) { | ||||
$user = $this->getUser(); | $user = $this->getUser(); | ||||
if (!$user || !$user->validatePassword($this->password)) { | if (!$user || !$user->validatePassword($this->password)) { | ||||
* | * | ||||
* @return boolean whether the user is logged in successfully | * @return boolean whether the user is logged in successfully | ||||
*/ | */ | ||||
public function login() { | |||||
public function login() | |||||
{ | |||||
if ($this->validate()) { | if ($this->validate()) { | ||||
$this->updateDerniereConnexion(); | $this->updateDerniereConnexion(); | ||||
return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0); | return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0); | ||||
* | * | ||||
* @return User|null | * @return User|null | ||||
*/ | */ | ||||
public function getUser() { | |||||
public function getUser() | |||||
{ | |||||
if ($this->_user === false) { | if ($this->_user === false) { | ||||
$this->_user = User::findByEmail($this->email); | $this->_user = User::findByEmail($this->email); | ||||
} | } | ||||
return $this->_user; | return $this->_user; | ||||
} | } | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id' => 'ID', | 'id' => 'ID', | ||||
'username' => 'Identifiant', | 'username' => 'Identifiant', | ||||
]; | ]; | ||||
} | } | ||||
public function updateDerniereConnexion() { | |||||
/** | |||||
* Met à jour la date de dernière connexion de l'utilisateur. | |||||
*/ | |||||
public function updateDerniereConnexion() | |||||
{ | |||||
$user = $this->getUser(); | $user = $this->getUser(); | ||||
$user->date_derniere_connexion = date('Y-m-d H:i:s'); | $user->date_derniere_connexion = date('Y-m-d H:i:s'); | ||||
$user->save(); | $user->save(); |
* @property string $adresse | * @property string $adresse | ||||
* @property integer $id_boulangerie | * @property integer $id_boulangerie | ||||
*/ | */ | ||||
class PointVente extends \yii\db\ActiveRecord { | |||||
class PointVente extends \yii\db\ActiveRecord | |||||
{ | |||||
var $commandes = []; | var $commandes = []; | ||||
var $recettes = 0; | var $recettes = 0; | ||||
var $recettes_pain = 0; | var $recettes_pain = 0; | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public static function tableName() { | |||||
public static function tableName() | |||||
{ | |||||
return 'point_vente'; | return 'point_vente'; | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
[['nom'], 'required'], | [['nom'], 'required'], | ||||
[['acces_restreint'], 'boolean'], | [['acces_restreint'], 'boolean'], | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id' => 'ID', | 'id' => 'ID', | ||||
'nom' => 'Nom', | 'nom' => 'Nom', | ||||
]; | ]; | ||||
} | } | ||||
public function getPointVenteUser() { | |||||
/* | |||||
* Relations | |||||
*/ | |||||
public function getPointVenteUser() | |||||
{ | |||||
return $this->hasMany(PointVenteUser::className(), ['id_point_vente' => 'id']); | return $this->hasMany(PointVenteUser::className(), ['id_point_vente' => 'id']); | ||||
} | } | ||||
public function getProductionPointVente() { | |||||
public function getProductionPointVente() | |||||
{ | |||||
return $this->hasMany(ProductionPointVente::className(), ['id_point_vente' => 'id']); | return $this->hasMany(ProductionPointVente::className(), ['id_point_vente' => 'id']); | ||||
} | } | ||||
public function initCommandes($commandes) { | |||||
/** | |||||
* Initialise les commandes liées au point de vente. | |||||
* | |||||
* @param array $commandes | |||||
*/ | |||||
public function initCommandes($commandes) | |||||
{ | |||||
$this->commandes = []; | $this->commandes = []; | ||||
$this->recettes = 0; | $this->recettes = 0; | ||||
$this->recettes_pain = 0; | $this->recettes_pain = 0; | ||||
} | } | ||||
} | } | ||||
public function getCommandes() { | |||||
/** | |||||
* Retourne les commandes liées à ce point de vente. | |||||
* | |||||
* @return array | |||||
*/ | |||||
public function getCommandes() | |||||
{ | |||||
return $this->commandes; | return $this->commandes; | ||||
} | } | ||||
public function strListeVrac() { | |||||
$str = ''; | |||||
$produits = Produit::find()->orderBy('order ASC')->all(); | |||||
foreach ($produits as $p) { | |||||
if ($p->vrac) { | |||||
$quantite = Commande::getQuantiteProduit($p->id, $this->commandes); | |||||
if ($quantite) { | |||||
$str .= $quantite . ' ' . Html::encode($p->diminutif) . ', '; | |||||
} | |||||
} | |||||
} | |||||
return substr($str, 0, strlen($str) - 2); | |||||
} | |||||
public function save($runValidation = true, $attributeNames = NULL) { | |||||
/** | |||||
* Enregistre le point de vente. | |||||
* | |||||
* @param boolean $runValidation | |||||
* @param array $attributeNames | |||||
* @return type | |||||
*/ | |||||
public function save($runValidation = true, $attributeNames = NULL) | |||||
{ | |||||
$this->id_etablissement = Yii::$app->user->identity->id_etablissement; | $this->id_etablissement = Yii::$app->user->identity->id_etablissement; | ||||
$this->pain = 1; | $this->pain = 1; | ||||
return parent::save($runValidation, $attributeNames); | return parent::save($runValidation, $attributeNames); | ||||
} | } | ||||
public function gestionPointFabrication() { | |||||
/** | |||||
* Traite la mise à jour de l'attribut 'point_fabrication'. | |||||
*/ | |||||
public function gestionPointFabrication() | |||||
{ | |||||
if ($this->point_fabrication) { | if ($this->point_fabrication) { | ||||
PointVente::updateAll( | PointVente::updateAll( | ||||
['point_fabrication' => 0], ['id_etablissement' => $this->id_etablissement] | ['point_fabrication' => 0], ['id_etablissement' => $this->id_etablissement] | ||||
} | } | ||||
} | } | ||||
public function gestionAccesRestreint() { | |||||
/** | |||||
* Traite les accès restreints d'un point de vente. | |||||
*/ | |||||
public function gestionAccesRestreint() | |||||
{ | |||||
PointVenteUser::deleteAll(['id_point_vente' => $this->id]); | PointVenteUser::deleteAll(['id_point_vente' => $this->id]); | ||||
if (is_array($this->users) && count($this->users)) { | if (is_array($this->users) && count($this->users)) { | ||||
$point_vente_user = new PointVenteUser; | $point_vente_user = new PointVenteUser; | ||||
$point_vente_user->id_user = $val; | $point_vente_user->id_user = $val; | ||||
$point_vente_user->id_point_vente = $this->id; | $point_vente_user->id_point_vente = $this->id; | ||||
if (isset($this->users_commentaire[$val]) && strlen($this->users_commentaire[$val])) | |||||
if (isset($this->users_commentaire[$val]) && strlen($this->users_commentaire[$val])) { | |||||
$point_vente_user->commentaire = $this->users_commentaire[$val]; | $point_vente_user->commentaire = $this->users_commentaire[$val]; | ||||
} | |||||
$point_vente_user->save(); | $point_vente_user->save(); | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
public function getCommentaire() { | |||||
/** | |||||
* Retourne le commentaire de l'utilisateur courant lié au point de vente. | |||||
* | |||||
* @return string|null | |||||
*/ | |||||
public function getCommentaire() | |||||
{ | |||||
if (isset($this->pointVenteUser)) { | if (isset($this->pointVenteUser)) { | ||||
foreach ($this->pointVenteUser as $pvu) { | foreach ($this->pointVenteUser as $pvu) { | ||||
if ($pvu->id_user == Yii::$app->user->identity->id) { | if ($pvu->id_user == Yii::$app->user->identity->id) { | ||||
} | } | ||||
} | } | ||||
} | } | ||||
return null ; | |||||
} | } | ||||
public static function count() { | |||||
/** | |||||
* Retourne le nombre de points de vente pour l'établissement courant. | |||||
* | |||||
* @return integer | |||||
*/ | |||||
public static function count() | |||||
{ | |||||
return PointVente::find() | return PointVente::find() | ||||
->where([ | ->where([ | ||||
'id_etablissement' => Yii::$app->user->identity->id_etablissement | 'id_etablissement' => Yii::$app->user->identity->id_etablissement | ||||
->count(); | ->count(); | ||||
} | } | ||||
public function verifCode($code) { | |||||
/** | |||||
* Vérifie le code d'accès à un point de vente. | |||||
* | |||||
* @param string $code | |||||
* @return boolean | |||||
*/ | |||||
public function verifCode($code) | |||||
{ | |||||
if (strlen($this->code)) { | if (strlen($this->code)) { | ||||
if (trim(strtolower($code)) == trim(strtolower($this->code))) { | if (trim(strtolower($code)) == trim(strtolower($this->code))) { | ||||
return true; | return true; | ||||
} | } | ||||
} | } | ||||
/** | |||||
* Retourne les jours de livraison du point de vente sous forme d'une chaine | |||||
* de caractères. | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function strJoursLivraison() { | public function strJoursLivraison() { | ||||
$str = '' ; | $str = '' ; | ||||
if($this->livraison_lundi) $str .= 'lundi, ' ; | if($this->livraison_lundi) $str .= 'lundi, ' ; | ||||
return '' ; | return '' ; | ||||
} | } | ||||
/** | |||||
* Retourne un commentaire informant l'utilisateur sur les détails de | |||||
* livraison d'un point de vente et pour un jour donné. | |||||
* | |||||
* @param string $jour | |||||
* @return string | |||||
*/ | |||||
public function strInfos($jour) { | public function strInfos($jour) { | ||||
$str = '' ; | $str = '' ; | ||||
$champs = 'horaires_'.$jour ; | $champs = 'horaires_'.$jour ; |
* @property integer $id_point_vente | * @property integer $id_point_vente | ||||
* @property integer $id_user | * @property integer $id_user | ||||
*/ | */ | ||||
class PointVenteUser extends \yii\db\ActiveRecord { | |||||
class PointVenteUser extends \yii\db\ActiveRecord | |||||
{ | |||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public static function tableName() { | |||||
public static function tableName() | |||||
{ | |||||
return 'point_vente_user'; | return 'point_vente_user'; | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
[['id_point_vente', 'id_user'], 'required'], | [['id_point_vente', 'id_user'], 'required'], | ||||
[['id_point_vente', 'id_user'], 'integer'], | [['id_point_vente', 'id_user'], 'integer'], | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id_point_vente' => 'Id Point Vente', | 'id_point_vente' => 'Id Point Vente', | ||||
'id_user' => 'Id User', | 'id_user' => 'Id User', |
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() |
* @property double $poids | * @property double $poids | ||||
* @property string $recette | * @property string $recette | ||||
*/ | */ | ||||
class Produit extends \yii\db\ActiveRecord { | |||||
class Produit extends \yii\db\ActiveRecord | |||||
{ | |||||
var $total = 0; | var $total = 0; | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public static function tableName() { | |||||
public static function tableName() | |||||
{ | |||||
return 'produit'; | return 'produit'; | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
[['nom', 'id_etablissement'], 'required'], | [['nom', 'id_etablissement'], 'required'], | ||||
[['actif', 'order', 'quantite_max', 'id_etablissement'], 'integer'], | [['actif', 'order', 'quantite_max', 'id_etablissement'], 'integer'], | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id' => 'ID', | 'id' => 'ID', | ||||
'nom' => 'Nom', | 'nom' => 'Nom', | ||||
]; | ]; | ||||
} | } | ||||
public function getDescription() { | |||||
/** | |||||
* Retourne la description du produit. | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function getDescription() | |||||
{ | |||||
$description = $this->description; | $description = $this->description; | ||||
if (isset($this->poids) && is_numeric($this->poids) && $this->poids > 0) { | if (isset($this->poids) && is_numeric($this->poids) && $this->poids > 0) { | ||||
if ($this->poids >= 1000) { | if ($this->poids >= 1000) { | ||||
return $description; | return $description; | ||||
} | } | ||||
public function getLibelleAdmin() { | |||||
/** | |||||
* Retourne le libellé (admin) du produit. | |||||
* @return type | |||||
*/ | |||||
public function getLibelleAdmin() | |||||
{ | |||||
return $this->nom; | return $this->nom; | ||||
} | } | ||||
public function save($runValidation = true, $attributeNames = NULL) { | |||||
/** | |||||
* Enregistre le produit. | |||||
* | |||||
* @param boolean $runValidation | |||||
* @param array $attributeNames | |||||
* @return boolean | |||||
*/ | |||||
public function save($runValidation = true, $attributeNames = NULL) | |||||
{ | |||||
$this->id_etablissement = Yii::$app->user->identity->id_etablissement; | $this->id_etablissement = Yii::$app->user->identity->id_etablissement; | ||||
return parent::save($runValidation, $attributeNames); | return parent::save($runValidation, $attributeNames); | ||||
} | } | ||||
public function getAll() { | |||||
/** | |||||
* Retourne les produits de l'établissement courant. | |||||
* | |||||
* @return array | |||||
*/ | |||||
public function getAll() | |||||
{ | |||||
return Produit::find() | return Produit::find() | ||||
->where([ | ->where([ | ||||
'id_etablissement' => Yii::$app->user->identity->id_etablissement, | 'id_etablissement' => Yii::$app->user->identity->id_etablissement, | ||||
->all(); | ->all(); | ||||
} | } | ||||
public function getByProduction($id_production) { | |||||
/** | |||||
* Retourne les produits d'une production donnée. | |||||
* | |||||
* @param integer $id_production | |||||
* @return array | |||||
*/ | |||||
public function getByProduction($id_production) | |||||
{ | |||||
return Produit::find() | return Produit::find() | ||||
->leftJoin('production_produit', 'produit.id = production_produit.id_produit') | ->leftJoin('production_produit', 'produit.id = production_produit.id_produit') | ||||
->where([ | ->where([ | ||||
->all(); | ->all(); | ||||
} | } | ||||
public static function count() { | |||||
/** | |||||
* Retourne le nombre de produits du producteur courant. | |||||
* | |||||
* @return integer | |||||
*/ | |||||
public static function count() | |||||
{ | |||||
return Produit::find() | return Produit::find() | ||||
->where([ | ->where([ | ||||
'id_etablissement' => Yii::$app->user->identity->id_etablissement | 'id_etablissement' => Yii::$app->user->identity->id_etablissement |
namespace common\models; | namespace common\models; | ||||
use yii\web\IdentityInterface; | use yii\web\IdentityInterface; | ||||
use yii\db\Query ; | |||||
/** | /** | ||||
* User model | * User model | ||||
* @property string $password write-only password | * @property string $password write-only password | ||||
* @property boolean $confiance | * @property boolean $confiance | ||||
*/ | */ | ||||
class User extends ActiveRecord implements IdentityInterface { | |||||
class User extends ActiveRecord implements IdentityInterface | |||||
{ | |||||
const STATUS_DELETED = 0; | const STATUS_DELETED = 0; | ||||
const STATUS_ACTIVE = 10; | const STATUS_ACTIVE = 10; | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public static function tableName() { | |||||
public static function tableName() | |||||
{ | |||||
return '{{%user}}'; | return '{{%user}}'; | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function behaviors() { | |||||
public function behaviors() | |||||
{ | |||||
return [ | return [ | ||||
TimestampBehavior::className(), | TimestampBehavior::className(), | ||||
]; | ]; | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
['confiance', 'default', 'value' => 1], | ['confiance', 'default', 'value' => 1], | ||||
[['no_mail', 'mail_prod_lundi', 'mail_prod_mardi', 'mail_prod_mercredi', 'mail_prod_jeudi', 'mail_prod_vendredi', 'mail_prod_samedi', 'mail_prod_dimanche'], 'boolean'], | [['no_mail', 'mail_prod_lundi', 'mail_prod_mardi', 'mail_prod_mercredi', 'mail_prod_jeudi', 'mail_prod_vendredi', 'mail_prod_samedi', 'mail_prod_dimanche'], 'boolean'], | ||||
]; | ]; | ||||
} | } | ||||
public function verifyPasswordOld($attribute, $params) { | |||||
/** | |||||
* Vérifie le mot de passe envoyé par l'utilisateur. | |||||
* | |||||
* @param string $attribute | |||||
* @param array $params | |||||
*/ | |||||
public function verifyPasswordOld($attribute, $params) | |||||
{ | |||||
if (strlen($this->password_old)) { | if (strlen($this->password_old)) { | ||||
if (!$this->validatePassword($this->password_old)) { | if (!$this->validatePassword($this->password_old)) { | ||||
$this->addError($attribute, 'Mot de passe invalide.'); | $this->addError($attribute, 'Mot de passe invalide.'); | ||||
} | } | ||||
} | } | ||||
public function verifyPasswordNew($attribute, $params) { | |||||
/** | |||||
* Vérifie le mot de passe de l'utilisateur. | |||||
* | |||||
* @param string $attribute | |||||
* @param array $params | |||||
*/ | |||||
public function verifyPasswordNew($attribute, $params) | |||||
{ | |||||
if (strlen($this->password_new) < 6) { | if (strlen($this->password_new) < 6) { | ||||
$this->addError($attribute, 'Votre mot de passe doit comporter au moins 6 caractères.'); | $this->addError($attribute, 'Votre mot de passe doit comporter au moins 6 caractères.'); | ||||
} | } | ||||
} | } | ||||
public function verifyPasswordNewConfirm($attribute, $params) { | |||||
/** | |||||
* Vérifie la confirmation de mot de passe de l'utilisateur. | |||||
* | |||||
* @param string $attribute | |||||
* @param array $params | |||||
*/ | |||||
public function verifyPasswordNewConfirm($attribute, $params) | |||||
{ | |||||
if ($this->password_new != $this->password_new_confirm) { | if ($this->password_new != $this->password_new_confirm) { | ||||
$this->addError($attribute, 'Les deux mots de passe doivent être identiques'); | $this->addError($attribute, 'Les deux mots de passe doivent être identiques'); | ||||
} | } | ||||
} | } | ||||
public function verifyEmail($attribute, $params) { | |||||
/** | |||||
* Vérifie l'email de l'utilisateur. | |||||
* | |||||
* @param string $attribute | |||||
* @param array $params | |||||
*/ | |||||
public function verifyEmail($attribute, $params) | |||||
{ | |||||
$user = User::find()->where("email LIKE :email AND id != :id")->params(array(':email' => '%' . $this->email . '%', ':id' => $this->id))->one(); | $user = User::find()->where("email LIKE :email AND id != :id")->params(array(':email' => '%' . $this->email . '%', ':id' => $this->id))->one(); | ||||
if ($user) | if ($user) | ||||
$this->addError($attribute, 'Cette adresse email est déjà utilisée par un autre utilisateur '); | $this->addError($attribute, 'Cette adresse email est déjà utilisée par un autre utilisateur '); | ||||
} | } | ||||
public function getUserEtablissement() { | |||||
/* | |||||
* Relations | |||||
*/ | |||||
public function getUserEtablissement() | |||||
{ | |||||
return $this->hasMany(UserEtablissement::className(), ['id_user' => 'id']); | return $this->hasMany(UserEtablissement::className(), ['id_user' => 'id']); | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public static function findIdentity($id) { | |||||
public static function findIdentity($id) | |||||
{ | |||||
return static::findOne(['id' => $id/* , 'status' => self::STATUS_ACTIVE */]); | return static::findOne(['id' => $id/* , 'status' => self::STATUS_ACTIVE */]); | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public static function findIdentityByAccessToken($token, $type = null) { | |||||
public static function findIdentityByAccessToken($token, $type = null) | |||||
{ | |||||
throw new NotSupportedException('"findIdentityByAccessToken" is not implemented.'); | throw new NotSupportedException('"findIdentityByAccessToken" is not implemented.'); | ||||
} | } | ||||
* @param string $username | * @param string $username | ||||
* @return static|null | * @return static|null | ||||
*/ | */ | ||||
public static function findByUsername($username) { | |||||
return static::findOne(['username' => $username/* , 'status' => self::STATUS_ACTIVE */]); | |||||
public static function findByUsername($username) | |||||
{ | |||||
return static::findOne(['username' => $username]); | |||||
} | } | ||||
public static function findByEmail($email) { | |||||
return static::findOne(['email' => $email /* , 'status' => self::STATUS_ACTIVE */]); | |||||
/** | |||||
* Recherche un utilisateur via son adresse email. | |||||
* | |||||
* @param string $email | |||||
* @return User | |||||
*/ | |||||
public static function findByEmail($email) | |||||
{ | |||||
return static::findOne(['email' => $email]); | |||||
} | } | ||||
/** | /** | ||||
* @param string $token password reset token | * @param string $token password reset token | ||||
* @return static|null | * @return static|null | ||||
*/ | */ | ||||
public static function findByPasswordResetToken($token) { | |||||
public static function findByPasswordResetToken($token) | |||||
{ | |||||
if (!static::isPasswordResetTokenValid($token)) { | if (!static::isPasswordResetTokenValid($token)) { | ||||
return null; | return null; | ||||
} | } | ||||
]); | ]); | ||||
} | } | ||||
public static function findBy($params = []) { | |||||
/** | |||||
* Recherche des utilisateurs suivant les paramètres : id_etablissement, | |||||
* inactifs, id_point_vente, nom, prenom, email, telephone. | |||||
* | |||||
* @param array $params | |||||
* @return Query | |||||
*/ | |||||
public static function findBy($params = []) | |||||
{ | |||||
if (!isset($params['id_etablissement'])) | if (!isset($params['id_etablissement'])) | ||||
$params['id_etablissement'] = Yii::$app->user->identity->id_etablissement; | $params['id_etablissement'] = Yii::$app->user->identity->id_etablissement; | ||||
$query = (new \yii\db\Query()) | |||||
$query = (new Query()) | |||||
->select(['user.id AS user_id', 'user.prenom', 'user.nom', 'user.telephone', 'user.email', 'user.created_at', 'user.date_derniere_connexion', 'user_etablissement.*']) | ->select(['user.id AS user_id', 'user.prenom', 'user.nom', 'user.telephone', 'user.email', 'user.created_at', 'user.date_derniere_connexion', 'user_etablissement.*']) | ||||
->from('user'); | ->from('user'); | ||||
->groupBy('user.id'); | ->groupBy('user.id'); | ||||
} | } | ||||
if (isset($params['nom'])) | |||||
if (isset($params['nom'])) { | |||||
$query->andFilterWhere(['like', 'nom', $params['nom']]); | $query->andFilterWhere(['like', 'nom', $params['nom']]); | ||||
if (isset($params['prenom'])) | |||||
} | |||||
if (isset($params['prenom'])) { | |||||
$query->andFilterWhere(['like', 'prenom', $params['prenom']]); | $query->andFilterWhere(['like', 'prenom', $params['prenom']]); | ||||
if (isset($params['email'])) | |||||
} | |||||
if (isset($params['email'])) { | |||||
$query->andFilterWhere(['like', 'email', $params['email']]); | $query->andFilterWhere(['like', 'email', $params['email']]); | ||||
if (isset($params['telephone'])) | |||||
} | |||||
if (isset($params['telephone'])) { | |||||
$query->andFilterWhere(['like', 'telephone', $params['telephone']]); | $query->andFilterWhere(['like', 'telephone', $params['telephone']]); | ||||
} | |||||
return $query; | return $query; | ||||
} | } | ||||
* @param string $token password reset token | * @param string $token password reset token | ||||
* @return boolean | * @return boolean | ||||
*/ | */ | ||||
public static function isPasswordResetTokenValid($token) { | |||||
public static function isPasswordResetTokenValid($token) | |||||
{ | |||||
if (empty($token)) { | if (empty($token)) { | ||||
return false; | return false; | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function getId() { | |||||
public function getId() | |||||
{ | |||||
return $this->getPrimaryKey(); | return $this->getPrimaryKey(); | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function getAuthKey() { | |||||
public function getAuthKey() | |||||
{ | |||||
return $this->auth_key; | return $this->auth_key; | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function validateAuthKey($authKey) { | |||||
public function validateAuthKey($authKey) | |||||
{ | |||||
return $this->getAuthKey() === $authKey; | return $this->getAuthKey() === $authKey; | ||||
} | } | ||||
* @param string $password password to validate | * @param string $password password to validate | ||||
* @return boolean if password provided is valid for current user | * @return boolean if password provided is valid for current user | ||||
*/ | */ | ||||
public function validatePassword($password) { | |||||
public function validatePassword($password) | |||||
{ | |||||
return Yii::$app->security->validatePassword($password, $this->password_hash); | return Yii::$app->security->validatePassword($password, $this->password_hash); | ||||
} | } | ||||
* | * | ||||
* @param string $password | * @param string $password | ||||
*/ | */ | ||||
public function setPassword($password) { | |||||
public function setPassword($password) | |||||
{ | |||||
$this->password_hash = Yii::$app->security->generatePasswordHash($password); | $this->password_hash = Yii::$app->security->generatePasswordHash($password); | ||||
} | } | ||||
/** | /** | ||||
* Generates "remember me" authentication key | * Generates "remember me" authentication key | ||||
*/ | */ | ||||
public function generateAuthKey() { | |||||
public function generateAuthKey() | |||||
{ | |||||
$this->auth_key = Yii::$app->security->generateRandomString(); | $this->auth_key = Yii::$app->security->generateRandomString(); | ||||
} | } | ||||
/** | /** | ||||
* Generates new password reset token | * Generates new password reset token | ||||
*/ | */ | ||||
public function generatePasswordResetToken() { | |||||
public function generatePasswordResetToken() | |||||
{ | |||||
$this->password_reset_token = Yii::$app->security->generateRandomString() . '_' . time(); | $this->password_reset_token = Yii::$app->security->generateRandomString() . '_' . time(); | ||||
} | } | ||||
/** | /** | ||||
* Removes password reset token | * Removes password reset token | ||||
*/ | */ | ||||
public function removePasswordResetToken() { | |||||
public function removePasswordResetToken() | |||||
{ | |||||
$this->password_reset_token = null; | $this->password_reset_token = null; | ||||
} | } | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id' => 'ID', | 'id' => 'ID', | ||||
'username' => 'Identifiant', | 'username' => 'Identifiant', | ||||
]; | ]; | ||||
} | } | ||||
public function isBoulanger() { | |||||
/** | |||||
* Retourne si l'utilisateur est un boulanger ou non. | |||||
* | |||||
* @return boolean | |||||
*/ | |||||
public function isBoulanger() | |||||
{ | |||||
return ($this->status == User::STATUS_ADMIN || $this->status == User::STATUS_BOULANGER) && $this->id_etablissement; | return ($this->status == User::STATUS_ADMIN || $this->status == User::STATUS_BOULANGER) && $this->id_etablissement; | ||||
} | } | ||||
public function getNomMagasin() { | |||||
/** | |||||
* Retourne le nom du producteur. | |||||
* | |||||
* @return string | |||||
*/ | |||||
public function getNomMagasin() | |||||
{ | |||||
$etablissement = Etablissement::findOne($this->id_etablissement); | $etablissement = Etablissement::findOne($this->id_etablissement); | ||||
return $etablissement->nom; | return $etablissement->nom; | ||||
} | } | ||||
public function getEtablissementsFavoris() { | |||||
/** | |||||
* Retourne les établissements liés à l'utilisateur. | |||||
* | |||||
* @return array | |||||
*/ | |||||
public function getEtablissementsFavoris() | |||||
{ | |||||
$etabs = (new \yii\db\Query()) | $etabs = (new \yii\db\Query()) | ||||
->select('*') | ->select('*') | ||||
->from(['user_etablissement', 'etablissement']) | ->from(['user_etablissement', 'etablissement']) | ||||
return $etabs; | return $etabs; | ||||
} | } | ||||
public function etatPaiementEtablissement() { | |||||
$etablissement = Etablissement::findOne($this->id_etablissement); | |||||
if ($etablissement) { | |||||
return $etablissement->etatPaiement(); | |||||
} | |||||
} | |||||
public function periodeEssai() { | |||||
$etablissement = Etablissement::findOne($this->id_etablissement); | |||||
if ($etablissement) { | |||||
$date_limite = strtotime($etablissement->date_creation) + 30 * 24 * 60 * 60; | |||||
$date = time(); | |||||
if ($date < $date_limite) { | |||||
$date = $date_limite - $date; | |||||
return (int) ($date / (24 * 60 * 60)); | |||||
} else { | |||||
return 0; | |||||
} | |||||
} | |||||
} | |||||
public function getCredit($id_etablissement) { | |||||
/** | |||||
* Retourne le crédit de l'utilisateur pour un producteur donné. | |||||
* | |||||
* @param integer $id_etablissement | |||||
* @return float | |||||
*/ | |||||
public function getCredit($id_etablissement) | |||||
{ | |||||
$user_etablissement = UserEtablissement::find() | $user_etablissement = UserEtablissement::find() | ||||
->where([ | |||||
'id_user' => $this->id, | |||||
'id_etablissement' => $id_etablissement | |||||
]) | |||||
->one(); | |||||
->where([ | |||||
'id_user' => $this->id, | |||||
'id_etablissement' => $id_etablissement | |||||
]) | |||||
->one(); | |||||
if ($user_etablissement) { | if ($user_etablissement) { | ||||
return $user_etablissement->credit; | return $user_etablissement->credit; | ||||
return 0; | return 0; | ||||
} | } | ||||
public function updateDerniereConnexion() { | |||||
/** | |||||
* Met à jour la date de dernière connexion de l'utilisateur. | |||||
*/ | |||||
public function updateDerniereConnexion() | |||||
{ | |||||
$this->date_derniere_connexion = date('Y-m-d H:i:s'); | $this->date_derniere_connexion = date('Y-m-d H:i:s'); | ||||
$this->save(); | $this->save(); | ||||
} | } | ||||
public function sendMailWelcome($password) { | |||||
/** | |||||
* Envoie un email de bienvenue à l'utilisateur lors de son inscription | |||||
* via le backend du site. | |||||
* | |||||
* @param string $password | |||||
*/ | |||||
public function sendMailWelcome($password) | |||||
{ | |||||
if (strlen($this->email)) { | if (strlen($this->email)) { | ||||
$etablissement = Etablissement::findOne(Yii::$app->user->identity->id_etablissement); | $etablissement = Etablissement::findOne(Yii::$app->user->identity->id_etablissement); | ||||
Yii::$app->mailer->compose(); | Yii::$app->mailer->compose(); |
* @property boolean $actif | * @property boolean $actif | ||||
* @property boolean $favoris | * @property boolean $favoris | ||||
*/ | */ | ||||
class UserEtablissement extends \yii\db\ActiveRecord { | |||||
class UserEtablissement extends \yii\db\ActiveRecord | |||||
{ | |||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public static function tableName() { | |||||
public static function tableName() | |||||
{ | |||||
return 'user_etablissement'; | return 'user_etablissement'; | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
[['id_user', 'id_etablissement'], 'required'], | [['id_user', 'id_etablissement'], 'required'], | ||||
[['id_user', 'id_etablissement'], 'integer'], | [['id_user', 'id_etablissement'], 'integer'], | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id_user' => 'Id User', | 'id_user' => 'Id User', | ||||
'id_etablissement' => 'Id Etablissement', | 'id_etablissement' => 'Id Etablissement', |
/** | /** | ||||
* ContactForm is the model behind the contact form. | * ContactForm is the model behind the contact form. | ||||
*/ | */ | ||||
class AddEtablissementForm extends Model { | |||||
class AddEtablissementForm extends Model | |||||
{ | |||||
public $id_etablissement; | public $id_etablissement; | ||||
public $code; | public $code; | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
['id_etablissement', 'integer'], | ['id_etablissement', 'integer'], | ||||
['id_etablissement', 'required'], | ['id_etablissement', 'required'], | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id_etablissement' => 'Établissement', | 'id_etablissement' => 'Établissement', | ||||
'code' => 'Code', | 'code' => 'Code', | ||||
* @param string $email the target email address | * @param string $email the target email address | ||||
* @return boolean whether the email was sent | * @return boolean whether the email was sent | ||||
*/ | */ | ||||
public function add() { | |||||
public function add() | |||||
{ | |||||
$etablissement = Etablissement::findOne($this->id_etablissement); | $etablissement = Etablissement::findOne($this->id_etablissement); | ||||
$user_etablissement_exist = UserEtablissement::find() | $user_etablissement_exist = UserEtablissement::find() |
/** | /** | ||||
* Password reset request form | * Password reset request form | ||||
*/ | */ | ||||
class PasswordResetRequestForm extends Model { | |||||
class PasswordResetRequestForm extends Model | |||||
{ | |||||
public $email; | public $email; | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
['email', 'filter', 'filter' => 'trim'], | ['email', 'filter', 'filter' => 'trim'], | ||||
['email', 'required'], | ['email', 'required'], | ||||
* | * | ||||
* @return boolean whether the email was send | * @return boolean whether the email was send | ||||
*/ | */ | ||||
public function sendEmail() { | |||||
public function sendEmail() | |||||
{ | |||||
/* @var $user User */ | /* @var $user User */ | ||||
$user = User::findOne([ | $user = User::findOne([ | ||||
'email' => $this->email, | 'email' => $this->email, |
/** | /** | ||||
* Producer Code form | * Producer Code form | ||||
*/ | */ | ||||
class ProducerCodeForm extends Model { | |||||
class ProducerCodeForm extends Model | |||||
{ | |||||
public $id_producer ; | public $id_producer ; | ||||
public $code; | public $code; | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
['id_producer','required','message' => 'Champs obligatoire'], | ['id_producer','required','message' => 'Champs obligatoire'], | ||||
['id_producer', 'integer'], | ['id_producer', 'integer'], | ||||
]; | ]; | ||||
} | } | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'id_producer' => 'Producteur', | 'id_producer' => 'Producteur', | ||||
'code' => 'Code de l\'établissement', | 'code' => 'Code de l\'établissement', |
/** | /** | ||||
* Password reset form | * Password reset form | ||||
*/ | */ | ||||
class ResetPasswordForm extends Model { | |||||
class ResetPasswordForm extends Model | |||||
{ | |||||
public $password; | public $password; | ||||
* @param array $config name-value pairs that will be used to initialize the object properties | * @param array $config name-value pairs that will be used to initialize the object properties | ||||
* @throws \yii\base\InvalidParamException if token is empty or not valid | * @throws \yii\base\InvalidParamException if token is empty or not valid | ||||
*/ | */ | ||||
public function __construct($token, $config = []) { | |||||
public function __construct($token, $config = []) | |||||
{ | |||||
if (empty($token) || !is_string($token)) { | if (empty($token) || !is_string($token)) { | ||||
throw new InvalidParamException('Password reset token cannot be blank.'); | throw new InvalidParamException('Password reset token cannot be blank.'); | ||||
} | } | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
['password', 'required'], | ['password', 'required'], | ||||
['password', 'string', 'min' => 6], | ['password', 'string', 'min' => 6], | ||||
* | * | ||||
* @return boolean if password was reset. | * @return boolean if password was reset. | ||||
*/ | */ | ||||
public function resetPassword() { | |||||
public function resetPassword() | |||||
{ | |||||
$user = $this->_user; | $user = $this->_user; | ||||
$user->setPassword($this->password); | $user->setPassword($this->password); | ||||
$user->removePasswordResetToken(); | $user->removePasswordResetToken(); | ||||
return $user->save(); | return $user->save(); | ||||
} | } | ||||
public function attributeLabels() { | |||||
public function attributeLabels() | |||||
{ | |||||
return [ | return [ | ||||
'password' => 'Mot de passe', | 'password' => 'Mot de passe', | ||||
]; | ]; |
/** | /** | ||||
* Signup form | * Signup form | ||||
*/ | */ | ||||
class SignupForm extends Model { | |||||
class SignupForm extends Model | |||||
{ | |||||
public $username; | public $username; | ||||
public $email; | public $email; | ||||
/** | /** | ||||
* @inheritdoc | * @inheritdoc | ||||
*/ | */ | ||||
public function rules() { | |||||
public function rules() | |||||
{ | |||||
return [ | return [ | ||||
['email', 'filter', 'filter' => 'trim'], | ['email', 'filter', 'filter' => 'trim'], | ||||
['email', 'required', 'message' => 'Champs obligatoire'], | ['email', 'required', 'message' => 'Champs obligatoire'], | ||||
['prix_libre', 'number'], | ['prix_libre', 'number'], | ||||
]; | ]; | ||||
} | } | ||||
public function attributeLabels() | |||||
{ | |||||
return [ | |||||
'id' => 'ID', | |||||
'username' => 'Identifiant', | |||||
'password' => 'Mot de passe', | |||||
'rememberMe' => 'Se souvenir de moi', | |||||
'prenom' => 'Prénom', | |||||
'telephone' => 'Téléphone', | |||||
'is_boulanger' => "Je suis professionnel et souhaite mettre en place un système de réservation dans mon établissement", | |||||
'nom_magasin' => 'Nom de l\'établissement', | |||||
'siret' => 'Numéro SIRET', | |||||
'code_postal' => 'Code postal', | |||||
'ville' => 'Commune', | |||||
'id_etablissement' => 'Producteur', | |||||
'type' => 'Type d\'établissement', | |||||
'prix_libre' => 'Prix libre' | |||||
]; | |||||
} | |||||
/** | /** | ||||
* Signs user up. | * Signs user up. | ||||
* | * | ||||
* @return User|null the saved model or null if saving fails | * @return User|null the saved model or null if saving fails | ||||
*/ | */ | ||||
public function signup() { | |||||
public function signup() | |||||
{ | |||||
if ($this->validate()) { | if ($this->validate()) { | ||||
$user = new User(); | $user = new User(); | ||||
$user->username = $this->email; | $user->username = $this->email; | ||||
return null; | return null; | ||||
} | } | ||||
public function attributeLabels() { | |||||
return [ | |||||
'id' => 'ID', | |||||
'username' => 'Identifiant', | |||||
'password' => 'Mot de passe', | |||||
'rememberMe' => 'Se souvenir de moi', | |||||
'prenom' => 'Prénom', | |||||
'telephone' => 'Téléphone', | |||||
'is_boulanger' => "Je suis professionnel et souhaite mettre en place un système de réservation dans mon établissement", | |||||
'nom_magasin' => 'Nom de l\'établissement', | |||||
'siret' => 'Numéro SIRET', | |||||
'code_postal' => 'Code postal', | |||||
'ville' => 'Commune', | |||||
'id_etablissement' => 'Producteur', | |||||
'type' => 'Type d\'établissement', | |||||
'prix_libre' => 'Prix libre' | |||||
]; | |||||
} | |||||
} | } |