<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of PersonaRelacionFamiliar
 *
 * @author Desarrollo
 */
class PersonasRelaciones {

    //put your code here

    const RELACIONPADRE = 'PADRE';
    const RELACIONMADRE = 'MADRE';
    const RELACIONHIJO = 'HIJO';
    const RELACIONCONYUGUE = 'CONYUGUE';

    static $sqlBasica = <<<sql
SELECT 
  Personas .*  
    , PersonasCorreos.correoDIRECCION AS personasCorreoPRINCIPAL 
    , PersonasDirDomicilio.direccionNOMENCLATURA AS personasDireccionesDOMICILIO 
    , PersonasDirComercial.direccionNOMENCLATURA AS personasDireccionesCOMERCIAL 
    , PersonasTelfFijo.telefonoNUMERO AS personasTelefonosFIJO 
    , PersonasTelfCelular.telefonoNUMERO AS personasTelefonosCELULAR  
    
    , PersonasCorreos.correoID AS personascorreoID 
    , PersonasCorreos.correoDIRECCION AS personasCorreoPRINCIPAL 
    , PersonasDirDomicilio.direccionID AS direccionIDDOMICILIO 
    , PersonasDirDomicilio.direccionNOMENCLATURA AS direccionDOMICILIO 
    , PersonasDirComercial.direccionID AS direccionIDCOMERCIAL 
    , PersonasDirComercial.direccionNOMENCLATURA AS direccionCOMERCIAL 
    , PersonasTelfFijo.telefonoID AS telefonoIDFIJO 
    , PersonasTelfFijo.telefonoNUMERO AS telefonoFIJO 
    , PersonasTelfCelular.telefonoID AS telefonoIDCELULAR  
    , PersonasTelfCelular.telefonoNUMERO AS telefonoCELULAR  
    , PersonasRelaciones.personaRelacionPRINCIPAL
    , PersonasRelaciones.personaRelacionCATEGORIA
    , PersonasRelaciones.personaRelacionFALLECIDO
FROM Personas  
LEFT JOIN PersonasCorreos AS PersonasCorreos 
        ON (Personas.personaID = PersonasCorreos.personaID 
        AND PersonasCorreos.correoTIPO = 'PRINCIPAL'  AND PersonasCorreos.correoESTADO = 'ACTIVO'  ) 
LEFT JOIN PersonasDirecciones AS PersonasDirDomicilio 
        ON (Personas.personaID = PersonasDirDomicilio.personasID  
        AND PersonasDirDomicilio.direccionTIPO = 'DOMICILIO'  AND PersonasDirDomicilio.direccionESTADO = 'ACTIVO') 
LEFT JOIN PersonasDirecciones AS PersonasDirComercial 
        ON (Personas.personaID = PersonasDirComercial.personasID 
        AND PersonasDirComercial.direccionTIPO = 'COMERCIAL'  AND PersonasDirComercial.direccionESTADO = 'ACTIVO') 
LEFT JOIN PersonasTelefonos AS PersonasTelfFijo 
        ON (Personas.personaID = PersonasTelfFijo.personasID  
        AND PersonasTelfFijo.telefonoTIPO = 'FIJO'  AND PersonasTelfFijo.telefonoESTADO = 'ACTIVO') 
LEFT JOIN PersonasTelefonos AS PersonasTelfCelular 
        ON (Personas.personaID = PersonasTelfCelular.personasID 
        AND PersonasTelfCelular.telefonoTIPO = 'CELULAR'  AND PersonasTelfCelular.telefonoESTADO = 'ACTIVO') 
INNER JOIN PersonasRelaciones ON (Personas.personaID=PersonasRelaciones.personaRelacionSECUNDARIA) 
WHERE PersonasRelaciones.personaRelacionPRINCIPAL=? 
sql;

    public static function relacionesPersonasPorIDPersonas($personaID) {
        $sqlQuery = self::$sqlBasica;
        return SicamDB::selectVariasFilas($sqlQuery, array($personaID));
    }

    public static function guardar($personaRelacionPRINCIPAL, $personaRelacionSECUNDARIA, $personaRelacionCATEGORIA, $familiarFallecido) {
        $sqlQuery = "INSERT INTO PersonasRelaciones ( personaRelacionPRINCIPAL, personaRelacionSECUNDARIA, personaRelacionCATEGORIA, personaRelacionFALLECIDO ) VALUES	(  ?, ?, ?, ? );";
        return SicamDB::insertFila($sqlQuery,
                        array($personaRelacionPRINCIPAL, $personaRelacionSECUNDARIA,
                    $personaRelacionCATEGORIA, $familiarFallecido));
    }

}
