<?php

class PersonasSQL {

    const DATOS_COMPLETOS = <<<sql
    
SELECT 
  Personas .* 
    
    , PersonasCorreos.correoID AS personascorreoID 
    , PersonasCorreos.correoDIRECCION AS personasCorreoPRINCIPAL 
    , PersonasDirDomicilio.direccionID AS direccionIDDOMICILIO 
    , PersonasDirDomicilio.direccionNOMENCLATURA AS direccionDOMICILIO 
    , PersonasDirComercial.direccionID AS direccionIDCOMERCIAL 
    , PersonasDirComercial.direccionNOMENCLATURA AS direccionCOMERCIAL 
    , PersonasDirComercial.direccionCIUDAD AS ciudadRESIDENCIA
    , GeoMunicipios.municipioTITULO AS municipioTITULO
    , PersonasTelfFijo.telefonoID AS telefonoIDFIJO 
    , PersonasTelfFijo.telefonoNUMERO AS telefonoFIJO 
    , PersonasTelfCelular.telefonoID AS telefonoIDCELULAR  
    , PersonasTelfCelular.telefonoNUMERO AS telefonoCELULAR  
    , PersonasMatricula.registroMatriculaNUMERO AS PersonasMATRICULA 
    , PersonasMatricula.registroPublicoID AS PersonasREGISTROPUBLICO 
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 GeoMunicipios AS GeoMunicipios 
        ON (PersonasDirComercial.direccionCIUDAD = GeoMunicipios.municipioID )     
    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')  
    LEFT JOIN RegistrosPublicosMatriculas AS PersonasMatricula 
        ON (Personas.personaID = PersonasMatricula.personaID 
            AND  PersonasMatricula.registroPublicoID = 2 )
            
sql;

const JOIN_DATOS_COMPLETOS = <<<sql

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')  
    LEFT JOIN RegistrosPublicosMatriculas AS PersonasMatricula 
        ON (Personas.personaID = PersonasMatricula.personaID 
            AND  PersonasMatricula.registroPublicoID = 2 )
            
sql;

    const DATOS_TABLA_PERSONAS = <<<sql
    SELECT 
        Personas.*
    FROM
        Personas
sql;

    const DATOS_BASICOS = <<<sql
    SELECT
    	Personas.personaID,
    	Personas.tipoPersonaID,
    	Personas.tiposOrganizacionID,
    	Personas.tipoIdentificacionID,
    	Personas.personaLUGAREXPEDICIONCC,
    	Personas.personaIDENTIFICACION,
    	Personas.personaRAZONSOCIAL,
    	Personas.personaNOMBRES,
    	Personas.personaAPELLIDOS,
    	Personas.personaNACIONALIDAD,
    	Personas.personaIMAGEN,
    	Personas.personaFCHNACIMIENTO,
    	Personas.personaLUGARNACIMIENTO,
    	Personas.personaSEXO,
    	Personas.personaTIPOSANGRE,
    	Personas.personaESTADOCIVIL,
    	Personas.personaAFILIADO,
    	Personas.personaFCHCREADO,
    	Personas.personaUSRCREA,
    	Personas.personaFCHMODIFICADO,
    	Personas.personaUSRMODIFICA,
    	Personas.personaPAGINAWEB,
    	TiposPersonas.tipoPersonaCODIGO,
    	TiposPersonas.tipoPersonaTITULO,
    	TiposIdentificacion.tipoIdentificacionCODIGO,
    	TiposIdentificacion.tipoIdentificacionTITULO
    FROM
    	Personas
    INNER JOIN TiposPersonas ON Personas.tipoPersonaID = TiposPersonas.tipoPersonaID
    INNER JOIN TiposIdentificacion ON Personas.tipoIdentificacionID = TiposIdentificacion.tipoIdentificacionID
sql;

    const DATOS_TELEFONICOS = <<<sql
    SELECT
    	PersonasTelefonos.telefonoESTADO,
    	PersonasTelefonos.telefonoERRADO,
    	PersonasTelefonos.telefonoNUMERO,
    	PersonasTelefonos.telefonoTIPO,
    	PersonasTelefonos.personasID,
    	PersonasTelefonos.telefonoID
    FROM
    	PersonasTelefonos
sql;

const DATOS_DIRECCION = <<<sql
    SELECT
    	PersonasDirecciones.direccionID,
    	PersonasDirecciones.personasID,
    	PersonasDirecciones.direccionTIPO,
    	PersonasDirecciones.direccionNOMENCLATURA,
    	PersonasDirecciones.direccionPAIS,
    	PersonasDirecciones.direccionREGION,
    	PersonasDirecciones.direccionCIUDAD,
    	PersonasDirecciones.direccionZONA,
    	PersonasDirecciones.direccionBARRIO,
    	PersonasDirecciones.direccionPREDIO,
    	PersonasDirecciones.direccionPOSTAL,
    	PersonasDirecciones.direccionERRADA,
    	PersonasDirecciones.direccionESTADO,
    	PersonasDirecciones.direccionFCHACTIVO,
    	PersonasDirecciones.direccionUSRACTIVO,
    	PersonasDirecciones.direccionFCHDESACTIVO,
    	PersonasDirecciones.direccionUSRDESACTIVO
    FROM
    	PersonasDirecciones
sql;


const DATOS_CORREO = <<<sql
    SELECT
    	PersonasCorreos.correoID,
    	PersonasCorreos.personaID,
    	PersonasCorreos.correoTIPO,
    	PersonasCorreos.correoDIRECCION,
    	PersonasCorreos.correoLISTANEGRA,
    	PersonasCorreos.correoESTADO,
    	PersonasCorreos.correoFCHACTIVO,
    	PersonasCorreos.correoUSRACTIVA,
    	PersonasCorreos.correoFCHDESACTIVA,
    	PersonasCorreos.correoUSRDESACTIVA
    FROM
    	PersonasCorreos
sql;


const CREAR_REGISTRO = <<<sql
    INSERT INTO Personas(tipoPersonaID, tipoIdentificacionID, personaIDENTIFICACION, personaRAZONSOCIAL ,personaNOMBRES , personaAPELLIDOS, personaFCHNACIMIENTO , personaSEXO,  personaUSRCREA) VALUES (?,?,?,?,?,?,?,?,?);
sql;
    
}

