105 lines
3.2 KiB
PHP
105 lines
3.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use App\Models\EcommerceConfig;
|
|
use App\Utils\UploadUtil;
|
|
|
|
class EcommerceConfigController extends Controller
|
|
{
|
|
protected $util;
|
|
|
|
public function __construct(UploadUtil $util)
|
|
{
|
|
$this->util = $util;
|
|
}
|
|
|
|
public function index(Request $request)
|
|
{
|
|
$item = EcommerceConfig::where('empresa_id', $request->empresa_id)
|
|
->first();
|
|
|
|
if($item != null){
|
|
$item->tipos_pagamento = json_decode($item->tipos_pagamento);
|
|
}
|
|
return view('ecommerce_config.index', compact('item'));
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$item = EcommerceConfig::where('empresa_id', $request->empresa_id)
|
|
->first();
|
|
|
|
$this->_validate($request, $item ? $item->id : null);
|
|
|
|
if(!isset($request->tipos_pagamento)){
|
|
$request->tipos_pagamento = [];
|
|
}
|
|
|
|
$request->merge([
|
|
'frete_gratis_valor' => $request->frete_gratis_valor ? __convert_value_bd($request->frete_gratis_valor) : null,
|
|
'tipos_pagamento' => json_encode($request->tipos_pagamento),
|
|
'politica_privacidade' => $request->politica_privacidade ?? '',
|
|
'termos_condicoes' => $request->termos_condicoes ?? '',
|
|
'dados_deposito' => $request->dados_deposito ?? ''
|
|
]);
|
|
|
|
if ($item != null) {
|
|
//update
|
|
$file_name_logo = $item->logo;
|
|
|
|
if ($request->hasFile('logo_image')) {
|
|
$this->util->unlinkImage($item, '/logos', 'logo');
|
|
$file_name_logo = $this->util->uploadImage($request, '/logos', 'logo_image');
|
|
}
|
|
|
|
$request->merge([
|
|
'logo' => $file_name_logo,
|
|
]);
|
|
|
|
$item->fill($request->all())->save();
|
|
session()->flash("flash_success", "Configuração atualizada!");
|
|
} else {
|
|
$file_name_logo = '';
|
|
|
|
if ($request->hasFile('logo_image')) {
|
|
$file_name_logo = $this->util->uploadImage($request, '/logos', 'logo_image');
|
|
}
|
|
|
|
$request->merge([
|
|
'logo' => $file_name_logo,
|
|
]);
|
|
|
|
EcommerceConfig::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('ecommerce_configs')->ignore($id)],
|
|
];
|
|
|
|
$messages = [
|
|
'loja_id.unique' => 'Já existe uma configuração de ecommerce com este ID.'
|
|
];
|
|
$this->validate($request, $rules, $messages);
|
|
}
|
|
|
|
public function verSite(Request $request){
|
|
$item = EcommerceConfig::where('empresa_id', $request->empresa_id)
|
|
->first();
|
|
|
|
if($item == null){
|
|
session()->flash("flash_warning", "Configure os dados do ecommerce!");
|
|
return redirect()->route('config-ecommerce.index');
|
|
}
|
|
|
|
// return redirect(env("APP_URL") . "/loja/" . $item->loja_id);
|
|
return redirect()->route('loja.index', "link=$item->loja_id");
|
|
}
|
|
|
|
}
|