302 lines
11 KiB
PHP
302 lines
11 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\API\TokenSuperAdmin;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use App\Models\Empresa;
|
|
use App\Models\Cidade;
|
|
|
|
class EmpresaController extends Controller
|
|
{
|
|
public function index(Request $request){
|
|
|
|
$data = Empresa::all()
|
|
->each(function($row)
|
|
{
|
|
$row->setHidden(['password', 'token', 'token_nfse', 'senha', 'info', 'empresa_selecionada', 'percentual_comissao',
|
|
'tipo_contador', 'logo', 'natureza_id_pdv', 'arquivo']);
|
|
});
|
|
return response()->json($data, 200);
|
|
}
|
|
|
|
public function find(Request $request, $id){
|
|
|
|
$item = Empresa::find($id);
|
|
if($item == null){
|
|
return response()->json("Empresa não encontrado!", 403);
|
|
}
|
|
$item->setHidden(['arquivo', 'token', 'token_nfse', 'senha', 'info', 'empresa_selecionada', 'percentual_comissao',
|
|
'tipo_contador', 'logo', 'natureza_id_pdv', 'arquivo']);
|
|
return response()->json($item, 200);
|
|
}
|
|
|
|
public function store(Request $request){
|
|
|
|
try{
|
|
$validaRequest = $this->validaRequest($request);
|
|
if(sizeof($validaRequest) > 0){
|
|
return response()->json($validaRequest, 403);
|
|
}
|
|
|
|
$cidade = Cidade::where('nome', $request->cidade)
|
|
->where('uf', $request->uf)->first();
|
|
|
|
if($cidade == null){
|
|
return response()->json("Cidade não encontrada!", 403);
|
|
}
|
|
$request->merge([
|
|
'cidade_id' => $cidade->id
|
|
]);
|
|
|
|
$item = Empresa::create($request->all());
|
|
$item->setHidden(['arquivo', 'token', 'token_nfse', 'senha', 'info', 'empresa_selecionada', 'percentual_comissao',
|
|
'tipo_contador', 'logo', 'natureza_id_pdv']);
|
|
return response()->json($item, 200);
|
|
|
|
}catch(\Exception $e){
|
|
return response()->json("Algo deu errado: " . $e->getMessage(), 403);
|
|
}
|
|
}
|
|
|
|
public function update(Request $request){
|
|
|
|
try{
|
|
|
|
$item = Empresa::find($request->id);
|
|
if($item == null){
|
|
return response()->json("Empresa não encontrado!", 403);
|
|
}
|
|
|
|
if($request->cidade){
|
|
$cidade = Cidade::where('nome', $request->cidade)
|
|
->where('uf', $request->uf)->first();
|
|
|
|
if($cidade == null){
|
|
return response()->json("Cidade não encontrada!", 403);
|
|
}
|
|
|
|
$request->merge([
|
|
'cidade_id' => $cidade->id
|
|
]);
|
|
}
|
|
|
|
$item->fill($request->all())->save();
|
|
$item->setHidden(['arquivo', 'token', 'token_nfse', 'senha', 'info', 'empresa_selecionada', 'percentual_comissao',
|
|
'tipo_contador', 'logo', 'natureza_id_pdv']);
|
|
return response()->json($item, 200);
|
|
}catch(\Exception $e){
|
|
return response()->json("Algo deu errado: " . $e->getMessage(), 403);
|
|
}
|
|
}
|
|
|
|
private function validaRequest($request){
|
|
$dataMessage = [];
|
|
|
|
if(!isset($request->nome) || $request->nome == ""){
|
|
array_push($dataMessage, "Informe o nome");
|
|
}
|
|
if(!isset($request->cpf_cnpj) || $request->cpf_cnpj == ""){
|
|
array_push($dataMessage, "Informe o CPF/CNPJ, variável cpf_cnpj");
|
|
}
|
|
|
|
if(!isset($request->cep) || $request->cep == ""){
|
|
array_push($dataMessage, "Informe o CEP, variável cep");
|
|
}
|
|
if(!isset($request->rua) || $request->rua == ""){
|
|
array_push($dataMessage, "Informe a Rua, variável rua");
|
|
}
|
|
if(!isset($request->numero) || $request->numero == ""){
|
|
array_push($dataMessage, "Informe o Número, variável numero");
|
|
}
|
|
if(!isset($request->bairro) || $request->bairro == ""){
|
|
array_push($dataMessage, "Informe o Bairro, variável bairro");
|
|
}
|
|
if(!isset($request->cidade) || $request->cidade == ""){
|
|
array_push($dataMessage, "Informe a cidade");
|
|
}
|
|
if(!isset($request->uf) || $request->uf == ""){
|
|
array_push($dataMessage, "Informe a uf");
|
|
}
|
|
|
|
return $dataMessage;
|
|
}
|
|
|
|
public function delete(Request $request){
|
|
|
|
try{
|
|
|
|
$item = Empresa::find($request->id);
|
|
if($item == null){
|
|
return response()->json("Empresa não encontrado!", 403);
|
|
}
|
|
foreach($item->usuarios as $u){
|
|
$u->usuario->acessos()->delete();
|
|
}
|
|
$item->usuarios()->delete();
|
|
// $item->user()->delete();
|
|
$item->plano()->delete();
|
|
$this->deleteRegistros($item->id);
|
|
$item->delete();
|
|
|
|
return response()->json($item, 200);
|
|
|
|
}catch(\Exception $e){
|
|
return response()->json("Algo deu errado: " . $e->getMessage(), 403);
|
|
}
|
|
}
|
|
|
|
private function deleteRegistros($empresa_id){
|
|
|
|
\App\Models\ContaPagar::where('empresa_id', $empresa_id)->delete();
|
|
\App\Models\ContaReceber::where('empresa_id', $empresa_id)->delete();
|
|
$prevendas = \App\Models\PreVenda::where('empresa_id', $empresa_id)->get();
|
|
foreach($prevendas as $n){
|
|
$n->itens()->delete();
|
|
$n->fatura()->delete();
|
|
$n->delete();
|
|
}
|
|
|
|
$nfe = \App\Models\Nfe::where('empresa_id', $empresa_id)->get();
|
|
foreach($nfe as $n){
|
|
$n->itens()->delete();
|
|
$n->fatura()->delete();
|
|
$n->delete();
|
|
}
|
|
|
|
$nfce = \App\Models\Nfce::where('empresa_id', $empresa_id)->get();
|
|
foreach($nfce as $n){
|
|
$n->itens()->delete();
|
|
$n->fatura()->delete();
|
|
$n->delete();
|
|
}
|
|
|
|
$carrinhos = \App\Models\Carrinho::where('empresa_id', $empresa_id)->get();
|
|
foreach($carrinhos as $c){
|
|
$c->itens()->delete();
|
|
$c->delete();
|
|
}
|
|
|
|
$data = \App\Models\OrdemServico::where('empresa_id', $empresa_id)->get();
|
|
foreach($data as $t){
|
|
$t->itens()->delete();
|
|
$t->servicos()->delete();
|
|
$t->relatorios()->delete();
|
|
$t->funcionarios()->delete();
|
|
$t->delete();
|
|
}
|
|
|
|
|
|
\App\Models\DiaSemana::where('empresa_id', $empresa_id)->delete();
|
|
\App\Models\FuncionarioServico::where('empresa_id', $empresa_id)->delete();
|
|
\App\Models\Servico::where('empresa_id', $empresa_id)->delete();
|
|
|
|
$funcionarios = \App\Models\Funcionario::where('empresa_id', $empresa_id)->get();
|
|
foreach($funcionarios as $f){
|
|
$f->eventos()->delete();
|
|
$f->funcionamento()->delete();
|
|
$f->interrupcoes()->delete();
|
|
$f->delete();
|
|
}
|
|
|
|
$data = \App\Models\Ticket::where('empresa_id', $empresa_id)->get();
|
|
foreach($data as $t){
|
|
$t->mensagens()->delete();
|
|
$t->delete();
|
|
}
|
|
|
|
$data = \App\Models\TransferenciaEstoque::where('empresa_id', $empresa_id)->get();
|
|
foreach($data as $t){
|
|
$t->itens()->delete();
|
|
$t->delete();
|
|
}
|
|
|
|
$data = \App\Models\PedidoEcommerce::where('empresa_id', $empresa_id)->get();
|
|
foreach($data as $t){
|
|
$t->itens()->delete();
|
|
$t->delete();
|
|
}
|
|
|
|
\App\Models\CashBackConfig::where('empresa_id', $empresa_id)->delete();
|
|
\App\Models\CashBackCliente::where('empresa_id', $empresa_id)->delete();
|
|
|
|
$data = \App\Models\Cliente::where('empresa_id', $empresa_id)->get();
|
|
foreach($data as $c){
|
|
$c->enderecos()->delete();
|
|
$c->enderecosEcommerce()->delete();
|
|
$c->enderecosDelivery()->delete();
|
|
$c->delete();
|
|
}
|
|
\App\Models\Caixa::where('empresa_id', $empresa_id)->delete();
|
|
\App\Models\MotivoInterrupcao::where('empresa_id', $empresa_id)->delete();
|
|
\App\Models\Notificacao::where('empresa_id', $empresa_id)->delete();
|
|
\App\Models\EcommerceConfig::where('empresa_id', $empresa_id)->delete();
|
|
\App\Models\MarketPlaceConfig::where('empresa_id', $empresa_id)->delete();
|
|
\App\Models\ModeloEtiqueta::where('empresa_id', $empresa_id)->delete();
|
|
$data = \App\Models\VariacaoModelo::where('empresa_id', $empresa_id)->get();
|
|
foreach($data as $c){
|
|
$c->itens()->delete();
|
|
$c->delete();
|
|
}
|
|
|
|
$data = \App\Models\VendaSuspensa::where('empresa_id', $empresa_id)->get();
|
|
foreach($data as $c){
|
|
$c->itens()->delete();
|
|
$c->delete();
|
|
}
|
|
|
|
$produtos = \App\Models\Produto::where('empresa_id', $empresa_id)->get();
|
|
\App\Models\ProdutoCombo::
|
|
select('produto_combos.*')
|
|
->join('produtos', 'produtos.id', '=', 'produto_combos.produto_id')
|
|
->where('produtos.empresa_id', $empresa_id)->delete();
|
|
|
|
foreach($produtos as $p){
|
|
$p->movimentacoes()->delete();
|
|
$p->locais()->delete();
|
|
$p->variacoes()->delete();
|
|
$p->fornecedores()->delete();
|
|
|
|
if($p->estoque){
|
|
$p->estoque->delete();
|
|
}
|
|
$p->delete();
|
|
}
|
|
|
|
\App\Models\ConfigGeral::where('empresa_id', $empresa_id)->delete();
|
|
\App\Models\AcaoLog::where('empresa_id', $empresa_id)->delete();
|
|
\App\Models\PlanoPendente::where('empresa_id', $empresa_id)->delete();
|
|
\App\Models\Marca::where('empresa_id', $empresa_id)->delete();
|
|
|
|
\App\Models\CategoriaProduto::where('empresa_id', $empresa_id)->delete();
|
|
|
|
\App\Models\Fornecedor::where('empresa_id', $empresa_id)->delete();
|
|
\App\Models\NuvemShopConfig::where('empresa_id', $empresa_id)->delete();
|
|
\App\Models\NaturezaOperacao::where('empresa_id', $empresa_id)->delete();
|
|
\App\Models\PadraoTributacaoProduto::where('empresa_id', $empresa_id)->delete();
|
|
\App\Models\Role::where('empresa_id', $empresa_id)->delete();
|
|
\App\Models\FinanceiroPlano::where('empresa_id', $empresa_id)->delete();
|
|
\App\Models\ContadorEmpresa::where('empresa_id', $empresa_id)->delete();
|
|
\App\Models\DiaSemana::where('empresa_id', $empresa_id)->delete();
|
|
|
|
$usuarios = \App\Models\UsuarioEmpresa::where('empresa_id', $empresa_id)->get();
|
|
// echo $usuarios;
|
|
// die;
|
|
|
|
\App\Models\UsuarioLocalizacao::
|
|
select('usuario_localizacaos.*')
|
|
->join('localizacaos', 'localizacaos.id', '=', 'usuario_localizacaos.localizacao_id')
|
|
->where('localizacaos.empresa_id', $empresa_id)->delete();
|
|
|
|
\App\Models\Localizacao::where('empresa_id', $empresa_id)->delete();
|
|
$planos = \App\Models\PlanoConta::where('empresa_id', $empresa_id)
|
|
->orderBy('descricao', 'desc')
|
|
->get();
|
|
|
|
foreach($planos as $t){
|
|
$t->delete();
|
|
}
|
|
|
|
}
|
|
}
|