--- /dev/null
+<?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;
+}
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]);
}
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 {
$user->e1_grade = 0;
$user->save();
$user->assignRole('fluidbook:client');
-
}
$quote = new FluidbookQuote();
$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();
$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;
}
use Cubist\Locale\Country;
use Illuminate\Bus\Queueable;
-use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
*/
public function build()
{
- return $this->view('view.name');
+ return $this;
}
public function setData($post)
);
$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');
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 {
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',
$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',
'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',