@@ -1,171 +0,0 @@ | |||
<?php | |||
/** | |||
Copyright La boîte à pain (2018) | |||
contact@laboiteapain.net | |||
Ce logiciel est un programme informatique servant à aider les producteurs | |||
à distribuer leur production en circuits courts. | |||
Ce logiciel est régi par la licence CeCILL soumise au droit français et | |||
respectant les principes de diffusion des logiciels libres. Vous pouvez | |||
utiliser, modifier et/ou redistribuer ce programme sous les conditions | |||
de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA | |||
sur le site "http://www.cecill.info". | |||
En contrepartie de l'accessibilité au code source et des droits de copie, | |||
de modification et de redistribution accordés par cette licence, il n'est | |||
offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, | |||
seule une responsabilité restreinte pèse sur l'auteur du programme, le | |||
titulaire des droits patrimoniaux et les concédants successifs. | |||
A cet égard l'attention de l'utilisateur est attirée sur les risques | |||
associés au chargement, à l'utilisation, à la modification et/ou au | |||
développement et à la reproduction du logiciel par l'utilisateur étant | |||
donné sa spécificité de logiciel libre, qui peut le rendre complexe à | |||
manipuler et qui le réserve donc à des développeurs et des professionnels | |||
avertis possédant des connaissances informatiques approfondies. Les | |||
utilisateurs sont donc invités à charger et tester l'adéquation du | |||
logiciel à leurs besoins dans des conditions permettant d'assurer la | |||
sécurité de leurs systèmes et ou de leurs données et, plus généralement, | |||
à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. | |||
Le fait que vous puissiez accéder à cet en-tête signifie que vous avez | |||
pris connaissance de la licence CeCILL, et que vous en avez accepté les | |||
termes. | |||
*/ | |||
namespace common\models; | |||
use Yii; | |||
use yii\base\Model; | |||
use common\models\CommandeAuto; | |||
use common\models\CommandeAutoProduit; | |||
/** | |||
* Login form | |||
*/ | |||
class CommandeAutoForm extends Model | |||
{ | |||
public $id; | |||
public $id_user; | |||
public $username; | |||
public $id_etablissement; | |||
public $id_point_vente; | |||
public $date_debut; | |||
public $date_fin; | |||
public $lundi; | |||
public $mardi; | |||
public $mercredi; | |||
public $jeudi; | |||
public $vendredi; | |||
public $samedi; | |||
public $dimanche; | |||
public $periodicite_semaine; | |||
public $produits; | |||
public $paiement_automatique; | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public function rules() | |||
{ | |||
return [ | |||
[['id_etablissement', 'periodicite_semaine', 'id_point_vente'], 'integer'], | |||
[['date_debut', 'date_fin'], 'date', 'format' => 'php:d/m/Y'], | |||
[['lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche', 'paiement_automatique'], 'boolean'], | |||
[['id_point_vente', 'id_etablissement', 'date_debut'], 'required', 'message' => 'Champs obligatoire'], | |||
[['produits', 'id_user', 'username'], 'safe'], | |||
['id_user', function ($attribute, $params) { | |||
if (!$this->id_user && !strlen($this->username)) { | |||
$this->addError($attribute, 'Vous devez sélectionner ou saisir un utilisateur.'); | |||
} | |||
}, 'skipOnEmpty' => false], | |||
]; | |||
} | |||
public function attributeLabels() | |||
{ | |||
return [ | |||
'id' => 'ID', | |||
'id_user' => 'Utilisateur', | |||
'id_etablissement' => 'ID Etablissement', | |||
'id_point_vente' => 'Point de vente', | |||
'date_debut' => 'Date de début', | |||
'date_fin' => 'Date de fin', | |||
'lundi' => 'Lundi', | |||
'mardi' => 'Mardi', | |||
'mercredi' => 'Mercredi', | |||
'jeudi' => 'Jeudi', | |||
'vendredi' => 'Vendredi', | |||
'samedi' => 'Samedi', | |||
'dimanche' => 'Dimanche', | |||
'periodicite_semaine' => 'Périodicité (semaines)', | |||
'username' => 'Nom d\'utilisateur', | |||
'paiement_automatique' => 'Paiement automatique' | |||
]; | |||
} | |||
/** | |||
* Enregistre la CommandeAuto. | |||
* | |||
* @return boolean | |||
*/ | |||
public function save() | |||
{ | |||
if ($this->id) { | |||
$commandeauto = CommandeAuto::findOne($this->id); | |||
} | |||
else { | |||
$commandeauto = new CommandeAuto; | |||
} | |||
if ($commandeauto) { | |||
$commandeauto->id_user = $this->id_user; | |||
$commandeauto->username = $this->username; | |||
$commandeauto->id_etablissement = $this->id_etablissement; | |||
$commandeauto->id_point_vente = $this->id_point_vente; | |||
$commandeauto->date_debut = date( | |||
'Y-m-d', | |||
strtotime(str_replace('/', '-', $this->date_debut) | |||
)); | |||
if (strlen($this->date_fin)) { | |||
$commandeauto->date_fin = date( | |||
'Y-m-d', | |||
strtotime(str_replace('/', '-', $this->date_fin) | |||
)); | |||
} | |||
$commandeauto->lundi = $this->lundi; | |||
$commandeauto->mardi = $this->mardi; | |||
$commandeauto->mercredi = $this->mercredi; | |||
$commandeauto->jeudi = $this->jeudi; | |||
$commandeauto->vendredi = $this->vendredi; | |||
$commandeauto->samedi = $this->samedi; | |||
$commandeauto->dimanche = $this->dimanche; | |||
$commandeauto->periodicite_semaine = $this->periodicite_semaine; | |||
$commandeauto->paiement_automatique = $this->paiement_automatique; | |||
$commandeauto->save(); | |||
// produits | |||
if ($this->id) { | |||
CommandeAutoProduit::deleteAll(['id_commande_auto' => $this->id]); | |||
} | |||
foreach ($this->produits as $name_input => $quantite) { | |||
if ($quantite) { | |||
$id_produit = str_replace('produit_', '', $name_input); | |||
$commandeauto_produit = new CommandeAutoProduit; | |||
$commandeauto_produit->id_commande_auto = $commandeauto->id; | |||
$commandeauto_produit->id_produit = $id_produit; | |||
$commandeauto_produit->quantite = $quantite; | |||
$commandeauto_produit->save(); | |||
} | |||
} | |||
} | |||
return true; | |||
} | |||
} |
@@ -0,0 +1,171 @@ | |||
<?php | |||
/** | |||
Copyright La boîte à pain (2018) | |||
contact@laboiteapain.net | |||
Ce logiciel est un programme informatique servant à aider les producteurs | |||
à distribuer leur production en circuits courts. | |||
Ce logiciel est régi par la licence CeCILL soumise au droit français et | |||
respectant les principes de diffusion des logiciels libres. Vous pouvez | |||
utiliser, modifier et/ou redistribuer ce programme sous les conditions | |||
de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA | |||
sur le site "http://www.cecill.info". | |||
En contrepartie de l'accessibilité au code source et des droits de copie, | |||
de modification et de redistribution accordés par cette licence, il n'est | |||
offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, | |||
seule une responsabilité restreinte pèse sur l'auteur du programme, le | |||
titulaire des droits patrimoniaux et les concédants successifs. | |||
A cet égard l'attention de l'utilisateur est attirée sur les risques | |||
associés au chargement, à l'utilisation, à la modification et/ou au | |||
développement et à la reproduction du logiciel par l'utilisateur étant | |||
donné sa spécificité de logiciel libre, qui peut le rendre complexe à | |||
manipuler et qui le réserve donc à des développeurs et des professionnels | |||
avertis possédant des connaissances informatiques approfondies. Les | |||
utilisateurs sont donc invités à charger et tester l'adéquation du | |||
logiciel à leurs besoins dans des conditions permettant d'assurer la | |||
sécurité de leurs systèmes et ou de leurs données et, plus généralement, | |||
à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. | |||
Le fait que vous puissiez accéder à cet en-tête signifie que vous avez | |||
pris connaissance de la licence CeCILL, et que vous en avez accepté les | |||
termes. | |||
*/ | |||
namespace common\models; | |||
use Yii; | |||
use yii\base\Model; | |||
use common\models\Subscription; | |||
use common\models\SubscriptionProduct; | |||
/** | |||
* Login form | |||
*/ | |||
class SubscriptionForm extends Model | |||
{ | |||
public $id; | |||
public $id_user; | |||
public $username; | |||
public $id_producer; | |||
public $id_point_sale; | |||
public $date_begin; | |||
public $date_end; | |||
public $monday; | |||
public $tuesday; | |||
public $wednesday; | |||
public $thursday; | |||
public $friday; | |||
public $saterday; | |||
public $sunday; | |||
public $week_frequency; | |||
public $products; | |||
public $auto_payment; | |||
/** | |||
* @inheritdoc | |||
*/ | |||
public function rules() | |||
{ | |||
return [ | |||
[['id_producer', 'week_frequency', 'id_point_sale'], 'integer'], | |||
[['date_begin', 'date_end'], 'date', 'format' => 'php:d/m/Y'], | |||
[['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saterday', 'sunday', 'auto_payment'], 'boolean'], | |||
[['id_point_sale', 'id_producer', 'date_begin'], 'required', 'message' => 'Champs obligatoire'], | |||
[['products', 'id_user', 'username'], 'safe'], | |||
['id_user', function ($attribute, $params) { | |||
if (!$this->id_user && !strlen($this->username)) { | |||
$this->addError($attribute, 'Vous devez sélectionner ou saisir un utilisateur.'); | |||
} | |||
}, 'skipOnEmpty' => false], | |||
]; | |||
} | |||
public function attributeLabels() | |||
{ | |||
return [ | |||
'id' => 'ID', | |||
'id_user' => 'Utilisateur', | |||
'id_producer' => 'Producteur', | |||
'id_point_sale' => 'Point de vente', | |||
'date_begin' => 'Date de début', | |||
'date_end' => 'Date de fin', | |||
'monday' => 'Lundi', | |||
'tuesday' => 'Mardi', | |||
'wednesday' => 'Mercredi', | |||
'thursday' => 'Jeudi', | |||
'friday' => 'Vendredi', | |||
'saterday' => 'Samedi', | |||
'sunday' => 'Dimanche', | |||
'week_frequency' => 'Périodicité (semaines)', | |||
'username' => 'Nom d\'utilisateur', | |||
'auto_payment' => 'Paiement automatique' | |||
]; | |||
} | |||
/** | |||
* Enregistre l'abonnement. | |||
* | |||
* @return boolean | |||
*/ | |||
public function save() | |||
{ | |||
if ($this->id) { | |||
$subscription = Subscription::searchOne(['id' => $this->id]) ; | |||
} | |||
else { | |||
$subscription = new Subscription ; | |||
} | |||
if ($subscription) { | |||
$subscription->id_user = $this->id_user; | |||
$subscription->username = $this->username; | |||
$subscription->id_producer = $this->id_producer; | |||
$subscription->id_point_sale = $this->id_point_sale; | |||
$subscription->date_begin = date( | |||
'Y-m-d', | |||
strtotime(str_replace('/', '-', $this->date_begin) | |||
)); | |||
if (strlen($this->date_end)) { | |||
$subscription->date_end = date( | |||
'Y-m-d', | |||
strtotime(str_replace('/', '-', $this->date_end) | |||
)); | |||
} | |||
$subscription->monday = $this->monday; | |||
$subscription->tuesday = $this->tuesday; | |||
$subscription->wednesday = $this->wednesday; | |||
$subscription->thursday = $this->thursday; | |||
$subscription->friday = $this->friday; | |||
$subscription->saterday = $this->saterday; | |||
$subscription->sunday = $this->sunday; | |||
$subscription->week_frequency = $this->week_frequency; | |||
$subscription->auto_payment = $this->auto_payment; | |||
$subscription->save(); | |||
// produits | |||
if ($this->id) { | |||
ProductSubscription::deleteAll(['id_subscription' => $this->id]); | |||
} | |||
foreach ($this->products as $nameInput => $quantity) { | |||
if ($quantity) { | |||
$idProduct = str_replace('produit_', '', $nameInput); | |||
$subscriptionProduct = new ProductSubscription; | |||
$subscriptionProduct->id_subscription = $subscription->id; | |||
$subscriptionProduct->id_product = $id_product; | |||
$subscriptionProduct->quantity = $quantity; | |||
$subscriptionProduct->save(); | |||
} | |||
} | |||
} | |||
return true; | |||
} | |||
} |