<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
//use App\Http\Controllers\PersonalSolitacaoController;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Yajra\DataTables\DataTables;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Storage;
use Illuminate\Http\File;
use Illuminate\Contracts\Encryption\DecryptException;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Gate;
use DateTime;

use App\Models\FuncionarioCliente;
use App\Models\Conversa;
use App\Models\Cliente;
use App\Models\DepCliente;
use App\Models\Solicitacao;
use App\Models\MensagensChat;
use App\Models\Mensagem;
use App\Models\User;
use App\Events\EnviarMensagemCliente;
use App\Events\CriarTalk;
use App\Models\Sector;
use App\Models\Funcionario;
use App\Models\Participante;
use App\Events\ExibirAssuntoCliFun;
use App\Events\SendMessageGestDoc;


class ConsultaClienteController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
     public function index()
    {
        $idEmpresa=FuncionarioCliente::trazer_Empresa_id();

        $dados=\App\Models\Cliente::join('parametrodocumentals','parametrodocumentals.cliente_id','clientes.id')
                                    ->where('clientes.id',$idEmpresa->id)
                                    ->select('parametrodocumentals.*')->distinct()->get();

        return view('usuarios.clientes.consulta.doc_digitalizados.docdigitalizados',['dados'=>$dados,'id_empresa_my'=>$idEmpresa->id,]);
    }
    
     public function indexResumo()
    {
        return view('usuarios.clientes.resumo.resumo_index');

    }

    
    
      public function  pesquisarClienteDados_caregados (Request $request)
        {  
            
            // dd($request->all());
            
         
            
            $data="";
            $idEmpresa=FuncionarioCliente::trazer_Empresa_id();
            
            
            $acesso=\App\Models\AcessoDigitalizacao::where('subparametro_id',$request->subserieclicada_base)
                                                    ->where('empresa',"CLIENTE")->where('funcionario_user',Auth::id())->first();
            
            if(empty($acesso))
            {
                $acesso_parametro=\App\Models\AcessoDigitalizacao::where('parametro_id',$request->subserieclicada_base)
                                                    ->where('empresa',"CLIENTE")->where('funcionario_user',Auth::id())->first();
                    if(empty($acesso_parametro))
                        return back();
                    
                
            }
            //dd("piano");
                $meu_id_decrypted=$request->subserieclicada_base;
    
               $minhaSerie_clicada=\App\Models\SubParametroDocumental::where('subparametrodocumentals.id',$meu_id_decrypted)->first();
    
                $id_empresa_my=$idEmpresa->id;

                $data=\App\Models\SubParametroDocumental::join('parametrodocumentals','parametrodocumentals.id','subparametrodocumentals.parametrodocumental_id')
                            ->join('clientes','clientes.id','parametrodocumentals.cliente_id')
                            ->join('colunascolunas','colunascolunas.subserie_id','subparametrodocumentals.id')
                            ->where('subparametrodocumentals.id',$meu_id_decrypted)
                            ->where('colunascolunas.deleted_at',null)
                            ->where('clientes.id',$id_empresa_my)
                            ->select('colunascolunas.*','subparametrodocumentals.subseriedoc')->get();



                            $dados=\App\Models\Cliente::join('parametrodocumentals','parametrodocumentals.cliente_id','clientes.id')
                                                        ->where('clientes.id',$idEmpresa->id)
                                                        ->select('parametrodocumentals.*')->distinct()->get();
            if($data)
            {

                                //dados__Registros
                                $dados_regsitros=\App\Models\RegistoCampoDinamico::where('subserie_id',$meu_id_decrypted)->get();
                                $primeira_foto=\App\Models\RegistoCampoDinamico::where('subserie_id',$meu_id_decrypted)->select('ficheiroguardado')->first();
                                
                    return view('usuarios.clientes.consulta.doc_digitalizados.doc_dados_founds',['dados'=>$dados,'data'=>$data,'id_empresa_my'=>$id_empresa_my,
                                                                                                 'dados_regsitros'=>$dados_regsitros,'primeira_foto'=>$primeira_foto,
                                                                                                 'minhaSerie_clicada'=>$minhaSerie_clicada]);
            }

                return redirect()->back();
        } 
        
    
    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
    
    
    
    
    //----__Ver Informaçoes das solcitaç~eos
    //-------------V i r t u a i s-----
    public function exibirDadosSolicitacoes(Request $request)
    {       
            //dd($request->meufile_solcitacao);
            $meu_id_decrypted="0";
                try {
                    $meu_id_decrypted = Crypt::decryptString($request->meufile_solcitacao);
                } catch (DecryptException $e) {
                    return back();
                }
        
            $dados=$this->buscarDadosExbixir($meu_id_decrypted,"virtual");
        return view('usuarios.clientes.solicitacao.documentacao.virtual.vermais',['dados'=>$dados]);
        
    }
    public function exibirDadosSolicitacoeConcluidas(Request $request)
    {       
            //dd($request->meufile_solcitacao);
            $meu_id_decrypted="0";
                try {
                    $meu_id_decrypted = Crypt::decryptString($request->meufile_solcitacao);
                } catch (DecryptException $e) {
                    return back();
                }
        
            $dados=$this->buscarDadosConcluidasExbixir($meu_id_decrypted,"virtual");
        return view('usuarios.clientes.solicitacao.documentacao.virtual.ver_concluido',['dados'=>$dados]);
        
    }
    
    //----__Ver Informaçoes das solcitaç~eos
    //-------------F i s i c a s-----
    public function exibirDadosSolicitacoesFisicas(Request $request)
    {       
            //dd($request->meufile_solcitacao);
            $meu_id_decrypted="0";
                try {
                    $meu_id_decrypted = Crypt::decryptString($request->meufile_solcitacao);
                } catch (DecryptException $e) {
                    return back();
                }
        
            $dados=$this->buscarDadosExbixir($meu_id_decrypted,"fisica");
        return view('usuarios.clientes.solicitacao.documentacao.fisica.verpedido_fisico',['dados'=>$dados]);
        
    }
    public function exibirDadosSolicitacoeConcluidasFisicas(Request $request)
    {       
            //dd($request->meufile_solcitacao);
            $meu_id_decrypted="0";
                try {
                    $meu_id_decrypted = Crypt::decryptString($request->meufile_solcitacao);
                } catch (DecryptException $e) {
                    return back();
                }
        
            $dados=$this->buscarDadosConcluidasExbixir($meu_id_decrypted,"fisica");
        return view('usuarios.clientes.solicitacao.documentacao.fisica.verconcluido_fisico',['dados'=>$dados]);
        
    }
    
    
    private function buscarDadosExbixir($idsolicitacao,$natureza)
    {
        $idEmpresa=FuncionarioCliente::trazer_Empresa_id();
        if($idEmpresa==null || empty($idEmpresa))
            return $dados=['semdados'=>0];
        
            $dados=Solicitacao::join('users','users.id','solicitacaos.user_id')
                        ->join('pessoas','pessoas.id','users.pessoa_id')
                        ->join('funcionarioclientes','funcionarioclientes.user_id','users.id')
                        ->join('categoriaclientes','categoriaclientes.id','funcionarioclientes.categoria_id')
                        ->where('solicitacaos.naturezasolicitacao',$natureza)
                        ->where('funcionarioclientes.cliente_id',$idEmpresa->id)
                        ->where('solicitacaos.id',$idsolicitacao)
                        ->select('solicitacaos.*','funcionarioclientes.cliente_id','pessoas.nome','categoriaclientes.categoriacliente')->first();
            return $dados;
    }
    
     private function buscarDadosConcluidasExbixir($idsolicitacao,$natureza)    
    {
        $idEmpresa=FuncionarioCliente::trazer_Empresa_id();
        if($idEmpresa==null || empty($idEmpresa))
            return $dados=['semdados'=>""];

            $dados=\App\Models\Auto::join('solicitacaos','solicitacaos.id','autos.solicitacao_id')
                                    ->join('users','users.id','solicitacaos.user_id')
                                    ->join('pessoas','pessoas.id','users.pessoa_id')
                                    ->join('funcionarioclientes','funcionarioclientes.user_id','users.id')
                                    ->join('categoriaclientes','categoriaclientes.id','funcionarioclientes.categoria_id')
                                    ->where('solicitacaos.naturezasolicitacao',$natureza)
                                    ->where('funcionarioclientes.cliente_id',$idEmpresa->id)
                                    ->where('autos.id',$idsolicitacao)
                                    ->select('autos.*','funcionarioclientes.cliente_id','pessoas.nome','categoriaclientes.categoriacliente')->first();
            
            return $dados;
    }
    
    
    
    
    
}

