134 lines
4.3 KiB
PHP
134 lines
4.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use App\Models\MarketPlaceConfig;
|
|
use App\Utils\UploadUtil;
|
|
|
|
class MarketPlaceConfigController extends Controller
|
|
{
|
|
protected $util;
|
|
|
|
public function __construct(UploadUtil $util)
|
|
{
|
|
$this->util = $util;
|
|
}
|
|
|
|
public function index(Request $request)
|
|
{
|
|
$item = MarketPlaceConfig::where('empresa_id', $request->empresa_id)
|
|
->first();
|
|
|
|
if($item != null){
|
|
$item->tipos_pagamento = json_decode($item->tipos_pagamento);
|
|
$item->segmento = json_decode($item->segmento);
|
|
$item->tipo_entrega = json_decode($item->tipo_entrega ? $item->tipo_entrega : '[]');
|
|
}
|
|
|
|
return view('marketplace_config.index', compact('item'));
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
|
|
$item = MarketPlaceConfig::where('empresa_id', $request->empresa_id)
|
|
->first();
|
|
|
|
$this->__validate($request, $item ? $item->id : null);
|
|
|
|
if(!isset($request->tipos_pagamento)){
|
|
$request->tipos_pagamento = [];
|
|
}
|
|
|
|
if(!isset($request->segmento)){
|
|
$request->segmento = [];
|
|
}
|
|
|
|
if(!isset($request->tipo_entrega)){
|
|
$request->tipo_entrega = [];
|
|
}
|
|
|
|
$request->merge([
|
|
'pedido_minimo' => $request->pedido_minimo ? __convert_value_bd($request->pedido_minimo) : null,
|
|
'valor_entrega' => __convert_value_bd($request->valor_entrega),
|
|
'valor_entrega_gratis' => $request->valor_entrega_gratis ? __convert_value_bd($request->valor_entrega_gratis) : null,
|
|
'tipos_pagamento' => json_encode($request->tipos_pagamento),
|
|
'segmento' => json_encode($request->segmento),
|
|
'tipo_entrega' => json_encode($request->tipo_entrega),
|
|
]);
|
|
|
|
if ($item != null) {
|
|
//update
|
|
$file_name_logo = $item->logo;
|
|
$file_name_fav = $item->fav_icon;
|
|
|
|
if ($request->hasFile('logo_image')) {
|
|
$this->util->unlinkImage($item, '/logos', 'logo');
|
|
$file_name_logo = $this->util->uploadImage($request, '/logos', 'logo_image');
|
|
}
|
|
|
|
if ($request->hasFile('fav_icon_image')) {
|
|
$this->util->unlinkImage($item, '/fav_icons', 'fav_icon');
|
|
$file_name_fav = $this->util->uploadImage($request, '/fav_icons', 'fav_icon_image');
|
|
}
|
|
$request->merge([
|
|
'logo' => $file_name_logo,
|
|
'fav_icon' => $file_name_fav
|
|
]);
|
|
|
|
$item->fill($request->all())->save();
|
|
session()->flash("flash_success", "Configuração atualizada!");
|
|
} else {
|
|
$file_name_logo = '';
|
|
$file_name_fav = '';
|
|
|
|
if ($request->hasFile('logo_image')) {
|
|
$file_name_logo = $this->util->uploadImage($request, '/logos', 'logo_image');
|
|
}
|
|
|
|
if ($request->hasFile('fav_icon_image')) {
|
|
$file_name_fav = $this->util->uploadImage($request, '/fav_icons', 'fav_icon_image');
|
|
}
|
|
|
|
$request->merge([
|
|
'logo' => $file_name_logo,
|
|
'fav_icon' => $file_name_fav
|
|
]);
|
|
|
|
MarketPlaceConfig::create($request->all());
|
|
session()->flash("flash_success", "Configuração cadastrada!");
|
|
}
|
|
return redirect()->back();
|
|
}
|
|
|
|
private function __validate(Request $request, $id)
|
|
{
|
|
$rules = [
|
|
'loja_id' => [\Illuminate\Validation\Rule::unique('market_place_configs')->ignore($id)],
|
|
];
|
|
$messages = [
|
|
'loja_id.unique' => 'Já existe uma configuração de delivery com este ID.'
|
|
];
|
|
$this->validate($request, $rules, $messages);
|
|
}
|
|
|
|
public function verLoja(Request $request){
|
|
$item = MarketPlaceConfig::where('empresa_id', $request->empresa_id)
|
|
->first();
|
|
|
|
if($item == null){
|
|
session()->flash("flash_warning", "Configure os dados do delivery!");
|
|
return redirect()->route('config-marketplace.index');
|
|
}
|
|
|
|
if($item->loja_id == null){
|
|
session()->flash("flash_warning", "Defina o Loja ID!");
|
|
return redirect()->route('config-marketplace.index');
|
|
}
|
|
|
|
return redirect()->route('food.index', "link=$item->loja_id");
|
|
|
|
}
|
|
}
|