-- obtenerCitas
SELECT
    A.N_CITA AS 'ID',

    CONCAT(
        A.CODIGOPACIENTE,
        ' - ',
        CONCAT_WS(
            ' ',
            P.NOMBRE,
            P.APELLIDO_PATERNO,
            P.APELLIDO_MATERNO
        )
    ) AS 'Paciente',

    A.HORAINICIAL AS 'Fecha inicial',
    A.HORAFINAL AS 'Fecha final',

    CASE A.C_ESTATUS
        WHEN 0 THEN 'NO CONFIRMADA'
        WHEN 1 THEN 'CONFIRMADA'
        WHEN 2 THEN 'REALIZADA'
        WHEN 3 THEN 'NO ASISTIÓ'
        WHEN 4 THEN 'CANCELADA'
        WHEN 6 THEN 'EN SALA DE ESPERA'
        ELSE ''
    END AS 'Estatus',

    E.NOMBRE AS 'Etiqueta',

    CASE A.TIPO_CITA
        WHEN 0 THEN 'Presencial'
        WHEN 1 THEN 'Videoconsulta'
        ELSE ''
    END AS 'Tipo cita',

    C.NOMBRECLINICA AS 'Sucursal',

    CONCAT_WS(
        ' ',
        M.NOMBRE,
        M.APELLIDO_PATERNO,
        M.APELLIDO_MATERNO
    ) AS 'Médico'

FROM D_AGENDA A
LEFT JOIN PACIENTE P
    ON A.CODIGOPACIENTE = P.CODIGOPACIENTE
LEFT JOIN MEDICOS M
    ON A.CODIGOMEDICO = M.CODIGOMEDICO
LEFT JOIN CLINICA C
    ON A.SUCURSAL = C.CODIGOCLINICA
LEFT JOIN VIDEOCONSULTAS V
    ON A.N_CITA = V.ID_CITA
LEFT JOIN C_CONCEPTOS_INGRESOS I
    ON V.CONCEPTO = I.CODIGO
LEFT JOIN C_ETIQUETAS_AGENDA E
    ON A.ETIQUETAS = E.ID
LEFT JOIN C_USUARIO U
    ON A.CODIGOUSUARIO = U.CODIGOUSUARIO
/* filtroMedico */
ORDER BY A.HORAINICIAL DESC;

-- obtenerNoLaborables
SELECT
    CASE
        WHEN NL.CODIGOMEDICO = 0 THEN 'TODOS'
        ELSE CONCAT( NL.CODIGOMEDICO,' - ', CONCAT_WS(' ', M.NOMBRE, COALESCE(M.APELLIDO_PATERNO, ''),  COALESCE(M.APELLIDO_MATERNO, '')))
    END AS 'Médico',
    NL.F_EXCLUIDA AS 'Fecha',
    NL.MOTIVO AS 'Motivo',
    TIME(NL.HORAINICIAL) AS 'Hora inicial',
    TIME(NL.HORAFINAL) AS 'Hora final',
    CASE NL.TIPO
        WHEN 0 THEN 'No laborable'
        WHEN 1 THEN 'Evento'
        ELSE CONCAT('Tipo ', NL.TIPO)
    END AS 'Tipo',
    C.NOMBRECLINICA AS 'Sucursal'
FROM A_MEDICOFECHANOLABORABLE NL
LEFT JOIN MEDICOS M
    ON M.CODIGOMEDICO = NL.CODIGOMEDICO
LEFT JOIN CLINICA C
    ON C.CODIGOCLINICA = NL.SUCURSAL
/* filtroMedico */
ORDER BY NL.F_EXCLUIDA DESC;

-- obtenerCitasdeControl
SELECT
    C.ID AS 'ID',
   CONCAT(C.CODIGOPACIENTE,' - ', CONCAT_WS(' ', P.NOMBRE, P.APELLIDO_PATERNO, P.APELLIDO_MATERNO)) AS 'Paciente',
    CASE
        WHEN C.CODIGOMEDICO = 0 THEN 'TODOS'
        ELSE CONCAT( C.CODIGOMEDICO,  ' - ', CONCAT_WS( ' ', M.NOMBRE, COALESCE(M.APELLIDO_PATERNO, ''), COALESCE(M.APELLIDO_MATERNO, '') ))
    END AS 'Médico',
    C.FECHA AS 'Fecha',
    C.MOTIVO AS 'Motivo',
    CL.NOMBRECLINICA AS 'Sucursal'
FROM CITAS_CONTROL C
LEFT JOIN PACIENTE P
    ON C.CODIGOPACIENTE = P.CODIGOPACIENTE
LEFT JOIN MEDICOS M
    ON C.CODIGOMEDICO = M.CODIGOMEDICO
LEFT JOIN CLINICA CL
    ON C.SUCURSAL = CL.CODIGOCLINICA
/* filtroMedico */
ORDER BY C.FECHA DESC, C.ID DESC;
