From 061a350158c994b01a41b98e9dcf1395c52fca99 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Wed, 25 Nov 2020 20:58:53 +0100 Subject: [PATCH] wip #3753 @1.5 --- .../Admin/Base/FluidbookQuoteController.php | 13 ++++++++++++ .../FluidbookQuote/CreateFromWebsite.php | 21 ++++++++----------- app/Mail/FluidbookQuoteReceived.php | 11 +++++----- app/Models/FluidbookQuote.php | 17 ++++++++++++--- 4 files changed, 41 insertions(+), 21 deletions(-) create mode 100644 app/Http/Controllers/Admin/Base/FluidbookQuoteController.php diff --git a/app/Http/Controllers/Admin/Base/FluidbookQuoteController.php b/app/Http/Controllers/Admin/Base/FluidbookQuoteController.php new file mode 100644 index 000000000..92a7a9d01 --- /dev/null +++ b/app/Http/Controllers/Admin/Base/FluidbookQuoteController.php @@ -0,0 +1,13 @@ +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; } diff --git a/app/Mail/FluidbookQuoteReceived.php b/app/Mail/FluidbookQuoteReceived.php index edb9e4d8d..059904650 100644 --- a/app/Mail/FluidbookQuoteReceived.php +++ b/app/Mail/FluidbookQuoteReceived.php @@ -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') . "
"; + $body .= ' * ' . $d . ' : ' . Country::translate($post[$f], 'fr') . "
"; } else { $body .= ' * ' . $d . ' : ' . $post[$f] . "
"; } } } - $body .= "\r\n"; + $body .= "
"; if (!$spam) { $body .= 'Veuillez-vous rendre sur la Toolbox pour prendre en charge la demande ou la confier à un revendeur'; } else { diff --git a/app/Models/FluidbookQuote.php b/app/Models/FluidbookQuote.php index 98c3b5f44..c4a633c61 100644 --- a/app/Models/FluidbookQuote.php +++ b/app/Models/FluidbookQuote.php @@ -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', -- 2.39.5