arcadiasuite/plus/app/Http/Controllers/API/Comanda/ClienteController.php

102 lines
2.9 KiB
PHP

<?php
namespace App\Http\Controllers\API\Comanda;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Cliente;
use App\Models\ContaReceber;
use App\Models\Cidade;
use App\Models\Empresa;
class ClienteController extends Controller
{
public function findCliente(Request $request){
$mask = '(##) #####-####';
$telefone = preg_replace('/[^0-9]/', '', $request->telefone);
$telefone = __mask($telefone, $mask);
$item = Cliente::where('telefone', $telefone)
->where('empresa_id', $request->empresa_id)->first();
return response()->json($item, 200);
}
public function index(Request $request){
$data = Cliente::where('empresa_id', $request->empresa_id)
->select('id', 'razao_social', 'cpf_cnpj', 'ie', 'rua', 'numero', 'bairro', 'telefone', 'email', 'complemento', 'cep', 'cidade_id',
'limite_credito', 'status', 'lista_preco_id', 'created_at')
->with('cidade')
->orderBy('razao_social', 'desc')
->where('status', 1)
->get();
foreach($data as $c){
$c->soma_contas = ContaReceber::where('cliente_id', $c->id)
->where('status', 0)->sum('valor_integral');
}
return response()->json($data, 200);
}
public function cidades(Request $request){
$cidades = Cidade::select('id', 'nome', 'uf', 'codigo')
->get();
$empresa = Empresa::findOrFail($request->empresa_id);
$data = [
'cidades' => $cidades,
'cidade_padrao' => $empresa->cidade_id
];
return response()->json($data, 200);
}
public function cidades2(Request $request){
$data = Cidade::select('id', 'nome', 'uf', 'codigo')
->get();
return response()->json($data, 200);
}
public function store(Request $request){
try{
Cliente::create($request->all());
return response()->json("ok", 200);
}catch(\Exception $e){
return response()->json($e->getMessage(), 401);
}
}
public function update(Request $request, $id){
try{
$item = Cliente::findOrFail($id);
$item->fill($request->all())->save();
return response()->json("ok", 200);
}catch(\Exception $e){
return response()->json($e->getMessage(), 401);
}
}
public function destroy($id){
try{
$item = Cliente::findOrFail($id);
$item->tributacao()->delete();
$item->enderecosEcommerce()->delete();
foreach($item->carrinhosDelivery as $c){
$c->itens()->delete();
$c->delete();
}
$item->delete();
return response()->json("ok", 200);
}catch(\Exception $e){
return response()->json($e->getMessage(), 401);
}
}
}