util = $util; } public function index(Request $request){ $config = ConfiguracaoSuper::first(); if($config == null){ session()->flash('flash_error', 'Sem dados de configuração superadmin!'); return redirect()->back(); } if($config->token_auth_nfse == null){ session()->flash('flash_error', 'Sem dados do token integra notas de configuração superadmin!'); return redirect()->back(); } $item = NotaServicoConfig::where('empresa_id', $request->empresa_id) ->first(); $empresa = Empresa::findOrFail($request->empresa_id); $tokenNfse = $empresa->token_nfse; return view('nota_servico_config.index', compact('item', 'tokenNfse')); } public function store(Request $request){ try{ $file_name = null; if($request->hasFile('image')){ $file_name = $this->util->uploadImage($request, '/logos'); } $request->merge([ 'logo' => $file_name ]); $item = NotaServicoConfig::create($request->all()); $resp = $this->storeSofthouse($request); if($resp->codigo == 200){ $item->token = $resp->token; $item->save(); $empresa = Empresa::findOrFail($request->empresa_id); $empresa->token_nfse = $resp->token; $empresa->save(); session()->flash("flash_success", "Configurado com sucesso!"); }else{ session()->flash('flash_error', $resp->mensagem); } }catch(\Exception $e){ session()->flash('flash_error', 'Algo deu errado: ' . $e->getMessage()); } return redirect()->back(); } private function storeSofthouse($request){ try { $config = ConfiguracaoSuper::first(); $params = [ 'token' => $config->token_auth_nfse, 'ambiente' => Softhouse::AMBIENTE_PRODUCAO, 'options' => [ 'debug' => false, 'timeout' => 60, 'port' => 443, 'http_version' => CURL_HTTP_VERSION_NONE ], "debug" => false, "timeout" => 60, "port" => 443, "http_version" => CURL_HTTP_VERSION_NONE ]; $softhouse = new Softhouse($params); $documento = preg_replace('/[^0-9]/', '', $request->documento); $telefone = preg_replace('/[^0-9]/', '', $request->telefone); $cep = preg_replace('/[^0-9]/', '', $request->cep); $cidade = Cidade::findOrFail($request->cidade_id); $ie = $request->ie; if($ie == 'ISENTO'){ $ie = null; } $payload = [ "nome" => $request->nome, "razao" => $request->razao_social, "cnae" => $request->cnae, "crt" => $request->regime == 'simples' ? 1 : 3, "ie" => $ie, "im" => $request->im, "login_prefeitura" => $request->login_prefeitura, "senha_prefeitura" => $request->senha_prefeitura, "telefone" => $telefone, "email" => $request->email, "rua" => $request->rua, "numero" => $request->numero, "complemento" => $request->complemento, "bairro" => $request->bairro, "municipio" => $cidade->nome, "cmun" => $cidade->codigo, "uf" => $cidade->uf, "cep" => $cep, "plano" => 'Emitente', "documentos" => [ "nfse" => true, ] ]; if(strlen($documento) == 11){ $payload['cpf'] = $documento; }else{ $payload['cnpj'] = $documento; } // dd($payload); $resp = $softhouse->criaEmitente($payload); $resp = json_decode($resp); return $resp; }catch(\Exception $e){ session()->flash('flash_error', 'Algo deu errado: ' . $e->getMessage()); } } public function update(Request $request, $id){ try{ $item = NotaServicoConfig::findOrFail($id); $file_name = $item->logo; if($request->hasFile('image')){ $file_name = $this->util->uploadImage($request, '/logos'); } $request->merge([ 'logo' => $file_name ]); $item->fill($request->all())->save(); $resp = $this->storeSofthouse($request); if($resp->codigo == 200){ $item->token = $resp->token; $item->save(); session()->flash("flash_success", "Empresa cadastrada na api com sucesso!"); }else{ if($resp->codigo == 5001){ session()->flash('flash_error', $resp->mensagem . " - " . $resp->erros[0]->erro); } $resp = $this->atualizaSofthouse($request, $item); if($resp == null){ session()->flash('flash_error', 'Algo deu errado: TOKEN não configurado para atualizar!'); }else{ session()->flash("flash_success", "Atualizado com sucesso!"); } } }catch(\Exception $e){ session()->flash('flash_error', 'Algo deu errado: ' . $e->getMessage()); } return redirect()->back(); } private function atualizaSofthouse($request, $item){ try { $config = ConfiguracaoSuper::first(); $params = [ 'token' => $item->token, 'ambiente' => Softhouse::AMBIENTE_PRODUCAO, 'options' => [ 'debug' => false, 'timeout' => 60, 'port' => 443, 'http_version' => CURL_HTTP_VERSION_NONE ], 'debug' => false, 'timeout' => 60, 'port' => 443, 'http_version' => CURL_HTTP_VERSION_NONE ]; $softhouse = new Emitente($params); $documento = preg_replace('/[^0-9]/', '', $request->documento); $telefone = preg_replace('/[^0-9]/', '', $request->telefone); $cep = preg_replace('/[^0-9]/', '', $request->cep); $cidade = Cidade::findOrFail($request->cidade_id); $ie = $request->ie; if($ie == 'ISENTO'){ $ie = null; } $payload = [ "nome" => $request->nome, "razao" => $request->razao_social, "cnae" => $request->cnae, "crt" => $request->regime == 'simples' ? 1 : 3, "ie" => $ie, "im" => $request->im, "login_prefeitura" => $request->login_prefeitura, "senha_prefeitura" => $request->senha_prefeitura, "telefone" => $telefone, "email" => $request->email, "rua" => $request->rua, "numero" => $request->numero, "complemento" => $request->complemento, "bairro" => $request->bairro, "municipio" => $cidade->nome, "cmun" => $cidade->codigo, "uf" => $cidade->uf, "cep" => $cep, "plano" => 'Emitente', "documentos" => [ "nfse" => true, ] ]; if(strlen($documento) == 11){ $payload['cpf'] = $documento; }else{ $payload['cnpj'] = $documento; } if($item->logo != null){ if(file_exists(public_path('uploads/logos/').$item->logo)){ $file = file_get_contents(public_path('uploads/logos/').$item->logo); $payload['logo'] = base64_encode($file); } } // dd($payload); $resp = $softhouse->atualiza($payload); $resp = json_decode($resp); return $resp; }catch(\Exception $e){ session()->flash('flash_error', 'Algo deu errado: ' . $e->getMessage()); } } public function certificado(){ $config = ConfiguracaoSuper::first(); if($config == null){ session()->flash('flash_error', 'Sem dados de configuração superadmin!'); return redirect()->back(); } $certificadoApi = $this->getCertificado(); return view('nota_servico_config.certificado', compact('certificadoApi')); } private function getCertificado(){ $item = NotaServicoConfig::where('empresa_id', request()->empresa_id) ->first(); $params = [ 'token' => $item->token, 'ambiente' => Certificado::AMBIENTE_PRODUCAO, 'options' => [ 'debug' => false, 'timeout' => 60, 'port' => 443, 'http_version' => CURL_HTTP_VERSION_NONE ], "debug" => false, "timeout" => 60, "port" => 443, "http_version" => CURL_HTTP_VERSION_NONE ]; $certificado = new Certificado($params); $resp = $certificado->mostra(); $resp = json_decode($resp); return $resp; } public function uploadCertificado(Request $request){ // if(!is_dir(public_path('certificado_temp'))){ // mkdir(public_path('certificado_temp'), 0777, true); // } if(!$request->hasFile('file')){ session()->flash('flash_error', 'Selecione o Certificado!'); return redirect()->back(); } $file = base64_encode(file_get_contents($request->file('file')->path())); // dd($file); $senha = $request->senha; try { $config = ConfiguracaoSuper::first(); $item = NotaServicoConfig::where('empresa_id', $request->empresa_id) ->first(); $params = [ 'token' => $item->token, 'ambiente' => Certificado::AMBIENTE_PRODUCAO, 'options' => [ 'debug' => false, 'timeout' => 60, 'port' => 443, 'http_version' => CURL_HTTP_VERSION_NONE ], 'debug' => false, 'timeout' => 60, 'port' => 443, 'http_version' => CURL_HTTP_VERSION_NONE ]; $certificado = new Certificado($params); $payload = [ 'certificado' => $file, 'senha' => $senha ]; $resp = $certificado->atualiza($payload); $resp = json_decode($resp); if($resp->codigo == 200){ session()->flash('flash_success', 'Upload realizado com sucesso!'); }else{ session()->flash('flash_error', $resp->mensagem); } }catch(\Exception $e){ session()->flash('flash_error', 'Algo deu errado: ' . $e->getMessage()); } return redirect()->back(); } }