arcadiasuite/plus/app/Http/Controllers/ConfigGeralController.php

144 lines
5.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\ConfigGeral;
use App\Models\Nfce;
use Illuminate\Http\Request;
use App\Models\ConfiguracaoCardapio;
use Illuminate\Support\Facades\File;
class ConfigGeralController extends Controller
{
public function create()
{
$item = ConfigGeral::where('empresa_id', request()->empresa_id)->first();
$config = ConfiguracaoCardapio::where('empresa_id', request()->empresa_id)->first();
if($item != null){
$item->notificacoes = json_decode($item->notificacoes);
$item->tipos_pagamento_pdv = $item != null && $item->tipos_pagamento_pdv ? json_decode($item->tipos_pagamento_pdv) : [];
$item->acessos_pdv_off = $item != null && $item->acessos_pdv_off ? json_decode($item->acessos_pdv_off) : [];
$item->home_componentes = $item != null && $item->home_componentes ? json_decode($item->home_componentes) : [];
}
$path = public_path('assets/images/small');
$smallImages = File::files($path);
$tiposPagamento = Nfce::tiposPagamento();
// dd($tiposPagamento);
if($item != null){
$temp = [];
if(sizeof($item->tipos_pagamento_pdv) > 0){
foreach($tiposPagamento as $key => $t){
if(in_array($t, $item->tipos_pagamento_pdv)){
$temp[$key] = $t;
}
}
$tiposPagamento = $temp;
}
}
return view('config_geral.index', compact('item', 'config', 'smallImages', 'tiposPagamento'));
}
public function store(Request $request)
{
$item = ConfigGeral::where('empresa_id', request()->empresa_id)->first();
$config = ConfiguracaoCardapio::where('empresa_id', request()->empresa_id)->first();
try {
if($config){
$config->api_token = $request->api_token;
$config->save();
}else{
ConfiguracaoCardapio::create([
'empresa_id' => $request->empresa_id,
'nome_restaurante' => '',
'logo' => '',
'fav_icon' => '',
'telefone' => '',
'rua' => '',
'numero' => '',
'bairro' => '',
'cidade_id' => 1,
'api_token' => $request->api_token ?? '',
]);
}
if(!isset($request->notificacoes)){
$request->merge([
'notificacoes' => '[]'
]);
}else{
$request->merge([
'notificacoes' => json_encode($request->notificacoes)
]);
}
if(!isset($request->tipos_pagamento_pdv)){
$request->merge([
'tipos_pagamento_pdv' => '[]'
]);
}else{
$request->merge([
'tipos_pagamento_pdv' => json_encode($request->tipos_pagamento_pdv)
]);
}
if(!isset($request->acessos_pdv_off)){
$request->merge([
'acessos_pdv_off' => '[]'
]);
}else{
$request->merge([
'acessos_pdv_off' => json_encode($request->acessos_pdv_off)
]);
}
if(!isset($request->home_componentes)){
$request->merge([
'home_componentes' => '[]'
]);
}else{
$request->merge([
'home_componentes' => json_encode($request->home_componentes)
]);
}
// dd($request->all());
$request->merge([
'margem_combo' => $request->margem_combo ? __convert_value_bd($request->margem_combo) : 50,
'percentual_lucro_produto' => $request->percentual_lucro_produto ?? 0,
'ultimo_codigo_produto' => $request->ultimo_codigo_produto ?? 0,
'ultimo_codigo_cliente' => $request->ultimo_codigo_cliente ?? 0,
'margem_lateral_impressao' => $request->margem_lateral_impressao ?? 0,
'itens_por_pagina' => $request->itens_por_pagina ?? 30,
'tipo_pagamento_padrao' => $request->tipo_pagamento_padrao ?? 30,
'ultimo_codigo_fornecedor' => $request->ultimo_codigo_fornecedor ?? 0,
'mensagem_padrao_impressao_venda' => $request->mensagem_padrao_impressao_venda ?? '',
'mensagem_wpp_link' => $request->mensagem_wpp_link ?? '',
'mensagem_padrao_impressao_os' => $request->mensagem_padrao_impressao_os ?? '',
'cliente_padrao_pdv_off' => isset($request->cliente_padrao_pdv_off) ? $request->cliente_padrao_pdv_off : null,
'enviar_danfe_wpp_link' => $request->enviar_danfe_wpp_link ? 1 : 0,
'enviar_xml_wpp_link' => $request->enviar_xml_wpp_link ? 1 : 0,
'enviar_pedido_a4_wpp_link' => $request->enviar_pedido_a4_wpp_link ? 1 : 0,
]);
if ($item == null) {
ConfigGeral::create($request->all());
session()->flash("flash_success", "Dados cadastrados com sucesso!");
} else {
$item->fill($request->all())->save();
session()->flash("flash_success", "Dados alterados com sucesso!");
}
} catch (\Exception $e) {
session()->flash("flash_error", "Algo deu errado: " . $e->getMessage());
}
return redirect()->back();
}
}