]> _ Git - fluidbook-toolbox.git/commitdiff
wip #3753 @1.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 25 Nov 2020 19:58:53 +0000 (20:58 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 25 Nov 2020 19:58:53 +0000 (20:58 +0100)
app/Http/Controllers/Admin/Base/FluidbookQuoteController.php [new file with mode: 0644]
app/Http/Controllers/Admin/Operations/FluidbookQuote/CreateFromWebsite.php
app/Mail/FluidbookQuoteReceived.php
app/Models/FluidbookQuote.php

diff --git a/app/Http/Controllers/Admin/Base/FluidbookQuoteController.php b/app/Http/Controllers/Admin/Base/FluidbookQuoteController.php
new file mode 100644 (file)
index 0000000..92a7a9d
--- /dev/null
@@ -0,0 +1,13 @@
+<?php
+
+
+namespace App\Http\Controllers\Admin\Base;
+
+
+use App\Http\Controllers\Admin\Operations\FluidbookQuote\CreateFromWebsite;
+use Cubist\Backpack\app\Magic\Controllers\CubistMagicController;
+
+class FluidbookQuoteController extends CubistMagicController
+{
+    use CreateFromWebsite;
+}
index 0eb18a338fb43b29bb27b6ed98ed135c11527a05..c30d1b0b4e5bd3342a1de697a33eb02ab8d27eec 100644 (file)
@@ -10,15 +10,14 @@ use App\Http\Middleware\VerifyCsrfToken;
 use App\Mail\FluidbookQuoteReceived;
 use App\Models\Company;
 use App\Models\FluidbookQuote;
-use App\Models\QuizAttempt;
 use App\Models\User;
 use Cubist\Util\ArrayUtil;
 use Illuminate\Support\Facades\Mail;
 use Illuminate\Support\Facades\Route;
 
-class CreateFromWebsite
+trait CreateFromWebsite
 {
-    protected function setupCreateFromWebsiteRoutes($segment, $routeName, $controller)
+    protected function setupCreatefromwebsiteRoutes($segment, $routeName, $controller)
     {
         Route::match(['get'], $segment . '/create-from-website', $controller . '@createFromWebsite')->withoutMiddleware([VerifyCsrfToken::class, Authenticate::class, CheckIfAdmin::class]);
     }
@@ -35,11 +34,10 @@ class CreateFromWebsite
             if (!$spam) {
                 $r = User::where('email', $post['email']);
                 if ($r->count() == 1) {
-                    $user = $r->get();
+                    $user = $r->first();
                 } else {
-
                     $company = new Company();
-                    $company->adresse = ['address' => $post['adresse'], 'postcode' => $post['code_postal'], 'city' => $post['ville'], 'country' => $post['pays']];
+                    $company->address = ['address' => $post['adresse'], 'postcode' => $post['code_postal'], 'city' => $post['ville'], 'country' => $post['pays']];
                     if ($post['rs'] == '') {
                         $company->name = $post['prenom'] . ' ' . $post['nom'];
                     } else {
@@ -63,7 +61,6 @@ class CreateFromWebsite
                     $user->e1_grade = 0;
                     $user->save();
                     $user->assignRole('fluidbook:client');
-
                 }
 
                 $quote = new FluidbookQuote();
@@ -74,25 +71,25 @@ class CreateFromWebsite
                 $quote->message = $post['detail'];
                 $quote->coupon = $post['coupon'];
                 $quote->gclid = $post['gclid'];
-                $quote->user = $user->id;
                 $quote->reseller = 0;
                 $quote->status = 0;
                 $quote->conversion = 0;
                 $quote->admin = 0;
+                $quote->user = $user->id;
                 $quote->save();
             }
 
+            $resp['message'] = __("Votre demande de devis a bien été envoyée. Merci pour l'intérêt que vous portez à Fluidbook.");
+
             $quoteMail = new FluidbookQuoteReceived();
             $quoteMail->setData($post);
             Mail::send($quoteMail);
-
-            $resp['message'] = (__("Votre demande de devis a bien été envoyée. Merci pour l'intérêt que vous portez à Fluidbook."));
         }
 
         return response()->json($resp)->header('Access-Control-Allow-Origin', '*');
     }
 
-    protected function vaidateCreateRequest()
+    protected function validateCreateRequest()
     {
         $request = request();
 
@@ -103,7 +100,7 @@ class CreateFromWebsite
             $data = unserialize($d64);
         }
         if (!$data) {
-            mail('tech@fluidbook.com', '[Fluidbook Workshop] Erreur envoi demande de devis', $_GET['devis_form'] . "\n\n" . utf8_decode($d64), 'From: tech@fluidbook.com');
+            mail('tech@fluidbook.com', '[Fluidbook Workshop] Erreur envoi demande de devis', $request->get('data') . "\n\n" . utf8_decode($d64), 'From: tech@fluidbook.com');
             return false;
         }
 
index edb9e4d8d64d004aa00ae8e6d36074fbef069d88..05990465036ce61186dd7cede4dc57cb7ea59d9a 100644 (file)
@@ -4,7 +4,6 @@ namespace App\Mail;
 
 use Cubist\Locale\Country;
 use Illuminate\Bus\Queueable;
-use Illuminate\Contracts\Queue\ShouldQueue;
 use Illuminate\Mail\Mailable;
 use Illuminate\Queue\SerializesModels;
 
@@ -29,7 +28,7 @@ class FluidbookQuoteReceived extends Mailable
      */
     public function build()
     {
-        return $this->view('view.name');
+        return $this;
     }
 
     public function setData($post)
@@ -58,9 +57,9 @@ class FluidbookQuoteReceived extends Mailable
         );
 
         $this->from($post['email'], $post['prenom'] . ' ' . $post['nom']);
-        $this->to('tech@fluidbook.com');
+        $this->to('vincent@fluidbook.com');
         $spam = '';
-        if ($post['span'] === 'Oui') {
+        if ($post['spam'] === 'Oui') {
             $spam = ' *** SPAM ***';
         }
         $this->subject('[Fluidbook Workshop]' . $spam . ' Demande de devis');
@@ -69,13 +68,13 @@ class FluidbookQuoteReceived extends Mailable
         foreach ($fields as $f => $d) {
             if ($post[$f] != '') {
                 if ($f == 'pays') {
-                    $body .= ' * ' . $d . ' : ' . Country::translate($post['f'], 'fr') . "<br>";
+                    $body .= ' * ' . $d . ' : ' . Country::translate($post[$f], 'fr') . "<br>";
                 } else {
                     $body .= ' * ' . $d . ' : ' . $post[$f] . "<br>";
                 }
             }
         }
-        $body .= "\r\n";
+        $body .= "<br>";
         if (!$spam) {
             $body .= 'Veuillez-vous rendre sur la <a href="https://toolbox.fluidbook.com/fluidbook-quote">Toolbox</a> pour prendre en charge la demande ou la confier à un revendeur';
         } else {
index 98c3b5f44755ec8a93ea203fc284281447b9db67..c4a633c61b1de60e8abac61cf6fe998530a477e5 100644 (file)
@@ -4,11 +4,14 @@
 namespace App\Models;
 
 
+use App\Http\Controllers\Admin\Base\FluidbookQuoteController;
 use Cubedesigners\UserDatabase\User;
 use Cubist\Backpack\app\Magic\Models\CubistMagicAbstractModel;
 
 class FluidbookQuote extends CubistMagicAbstractModel
 {
+    protected $_baseController = FluidbookQuoteController::class;
+
     protected $table = 'fluidbook_quote';
     protected $_options = ['name' => 'fluidbook-quote',
         'singular' => 'demande de devis',
@@ -23,13 +26,15 @@ class FluidbookQuote extends CubistMagicAbstractModel
         $this->addField('links', 'Hidden');
         $this->addField('langs', 'Hidden');
 
-        $this->addField('user', 'SelectFromModel', 'Utilisateur', ['optionsmodel' => User::class,'attribute' => 'nameWithCompany', 'column' => true]);
+        $this->addField('user', 'SelectFromModel', 'Utilisateur', ['optionsmodel' => User::class, 'attribute' => 'nameWithCompany', 'column' => true]);
+
         $this->addField(['name' => 'created_at',
             'label' => 'Date',
             'type' => 'Datetime',
             'column' => true,
             'column_type' => 'date',
             'column_format' => null]);
+
         $this->addField(['name' => 'updated_at',
             'label' => 'Mise à jour',
             'type' => 'Hidden',
@@ -38,15 +43,21 @@ class FluidbookQuote extends CubistMagicAbstractModel
             'column_format' => null]);
 
         $this->addField('message', 'Textarea', 'Message');
+
         $this->addField('gclid', 'Text', 'Google Adwords ID (gclid)');
+
         $this->addField('coupon', 'Text', 'Coupon');
-        $this->addField('admin', 'SelectFromModel', 'Administrateur', ['optionsmodel' => User::class, 'attribute' => 'nameWithCompany', 'column' => true]);
-        $this->addField('reseller', 'SelectFromModel', 'Revendeur', ['optionsmodel' => User::class, 'attribute' => 'nameWithCompany', 'column' => true]);
+
+        $this->addField('admin', 'SelectFromModel', 'Administrateur', ['optionsmodel' => User::class, 'attribute' => 'firstname', 'column' => true]);
+
+        $this->addField('reseller', 'SelectFromModel', 'Revendeur', ['optionsmodel' => User::class, 'attribute' => 'companyName', 'column' => true]);
+
         $this->addField('status', 'SelectFromArray', 'Status', ['options' => [
             0 => 'Non traitée',
             1 => 'Confiée à un revendeur',
             2 => 'Traitée',
         ], 'column' => true]);
+
         $this->addField('conversion', 'SelectFromArray', 'Conversion', ['options' => [
             0 => 'Pas de réponse',
             1 => 'Devis en cours',