<?php
require_once "./Controller/Database.php";
require_once "./Controller/Setting.php";

class Organizacion extends BD {

    private $PARM;
    function __construct() {
        $this->PARM = new Setting();
    }

    public function GET() {
        $this->Permission();
        if($this->admin){
            $query = $this->consult("SELECT * FROM vorganizaciones");
            $query->execute();    
        } else {
            $query = $this->consult("SELECT * FROM vorganizaciones WHERE userid=?");
            $query->execute([$this->userid]);    
        }
        $result = $query->fetchAll(PDO::FETCH_ASSOC);
        $this->data = array(
            'admin' => $this->admin,
            'result' => $result,
            'rif' => $this->PARM->rif(),
            'estados' => $this->PARM->estados(),
            'municipios' => $this->PARM->municipios(),
            'parroquias' => $this->PARM->parroquias(),
            'actividad_economica' => $this->PARM->actividad_economica(),
            'grupo_actividad_economica' => $this->PARM->grupo_actividad_economica(),
            'tipo_organizacion' => $this->PARM->tipo_organizacion(),
            'tipo_empresa' => $this->PARM->tipo_empresa(),
        );
        $this->httpHeaders = 200;
    }

    public function PUT() {
        $this->Permission();
        $input = $this->input;
        $dat = array(
            ':direccion' => $input->direccion,
            ':estado' => $input->estado->id,
            ':municipio' => $input->municipio->id,
            ':parroquia' => $input->parroquia->id,
            ':telefono' => $input->telefono,
            ':telegram' => $input->telegram,
            ':facebook' => $input->facebook,
            ':instagram' => $input->instagram,
            ':correo' => $input->correo,
            ':correo2' => $input->correo2,
            ':pagina_web' => $input->pagina_web,
            ':latitud' => $input->latitud,
            ':longitud' => $input->longitud,           
            ':actividad_economica' => $input->actividad_economica->id,
            ':tipo_organizacion' => $input->tipo_organizacion->id,
            ':tipo_empresa' => $input->tipo_empresa->id,
            ':vinculada_inv_des' => $this->Booleano($input->vinculada_inv_des),
            ':edited_by' => $this->userid,
            ':id' => $this->id,
            ':rif' => $input->rif,
            ':tipo_rif' => $input->tipo_rif->id,
        ); 
        $query = $this->consult('UPDATE organizaciones SET direccion=:direccion,estado=:estado,municipio=:municipio,
            parroquia=:parroquia,telefono=:telefono, telegram=:telegram, facebook=:facebook, instagram=:instagram,
            correo=:correo, correo2=:correo2, pagina_web=:pagina_web, latitud=:latitud, longitud=:longitud,
            actividad_economica=:actividad_economica, tipo_organizacion=:tipo_organizacion, tipo_empresa=:tipo_empresa,
            vinculada_inv_des=:vinculada_inv_des, rif=:rif, tipo_rif=:tipo_rif,
            edited_by=:edited_by, updated_at=now() WHERE id=:id');
        if($query->execute($dat)){
            $dat = array(
                ':cargo' => $input->responsable_cargo,
                ':telefono' => $input->responsable_telefono,
                ':edited_by' => $this->userid,
                ':organizacion' => $this->id,
            ); 
            $query = $this->consult('UPDATE responsables SET cargo=:cargo, telefono=:telefono,
                edited_by=:edited_by, updated_at=now() WHERE organizacion=:organizacion');
            $query->execute($dat);
            $dat = array(
                ':cedula' => $input->legal_cedula,
                ':primer_nombre' => $input->legal_primer_nombre,
                ':segundo_nombre' => $input->legal_segundo_nombre,
                ':primer_apellido' => $input->legal_primer_apellido,
                ':segundo_apellido' => $input->legal_segundo_apellido,
                ':email' => $input->legal_email,
                ':cargo' => $input->legal_cargo,
                ':telefono' => $input->legal_telefono,
                ':edited_by' => $this->userid,
                ':organizacion' => $this->id,
            ); 
            $query = $this->consult('UPDATE responsables_legal SET cedula=:cedula, primer_nombre=:primer_nombre, 
                segundo_nombre=:segundo_nombre, primer_apellido=:primer_apellido, segundo_apellido=:segundo_apellido,
                email=:email, cargo=:cargo, telefono=:telefono,
                edited_by=:edited_by, updated_at=now() WHERE organizacion=:organizacion');
            $query->execute($dat);
            if(!$input->vinculada_inv_des){
                $query = $this->consult('UPDATE responsables_unidad SET cedula=NULL WHERE 
                    unidad IN (SELECT id FROM unidades WHERE organizacion=?)');
                $query->execute([$this->id]);
            }
            $this->httpHeaders = 200;
        }
    }

}