|
- <?php
-
- namespace common\services;
-
- use common\helpers\Password;
- use common\models\Producer;
- use common\models\UserProducer;
-
- class ProducerService
- {
- public function createInstance()
- {
- $producer = new Producer;
-
- $producer->order_deadline = 20;
- $producer->order_delay = 1;
-
- return $producer;
- }
-
- public function init($producer)
- {
- $this->initSlug($producer);
- $this->initCode($producer);
- }
-
- public function initSlug($producer)
- {
- $producerRepository = Yii::$app->logic->getProducerContainer()->getRepository();
- $cptSlug = 0 ;
- do {
- $slug = \common\helpers\Url::slugify($producer->name) ;
- if($cptSlug) {
- $slug .= $cptSlug ;
- }
- $producer->slug = $slug ;
- $cptSlug ++ ;
- } while($producerRepository->getOneBySlug($producer->slug)) ;
- }
-
- public function initCode($producer)
- {
- $producer->code = Password::generate();
- }
-
- public function sendEmailNewProducer($producer)
- {
- Yii::$app->mailer->compose(
- [
- 'html' => 'new-producer-html',
- 'text' => 'new-producer-text'
- ], [
- 'producer' => $producer
- ])
- ->setTo(Yii::$app->params['adminEmail'])
- ->setFrom([Yii::$app->params['adminEmail'] => 'distrib'])
- ->setSubject('[Opendistrib] Nouveau producteur')
- ->send();
- }
-
- /**
- * Lie un utilisateur à un producteur.
- *
- * @param integer $id_user
- * @param integer $id_producer
- * @return UserProducer
- */
- public static function addUser($idUser, $idProducer, $bookmark = 1)
- {
- $userProducer = UserProducer::searchOne([
- 'user_producer.id_user' => $idUser,
- 'user_producer.id_producer' => $idProducer
- ]);
-
- if (!$userProducer) {
- $newUserProducer = new UserProducer;
- $newUserProducer->id_producer = $idProducer;
- $newUserProducer->id_user = $idUser;
- $newUserProducer->credit = 0;
- $newUserProducer->active = 1;
- $newUserProducer->bookmark = (int)$bookmark;
- $newUserProducer->save();
- } else {
- if (!$userProducer->active) {
- $userProducer->active = 1;
- $userProducer->save();
- }
- }
-
- return $userProducer;
- }
- }
|