GithubHelp home page GithubHelp logo

gestion-de-datos's People

Contributors

lhoms avatar mgnizz avatar

Watchers

 avatar  avatar  avatar  avatar

gestion-de-datos's Issues

sp_crear_afiliado() son muchos campos, asique puede dividirse en crear usuario->crear persona->crear afiliado, solamente necesitaria que crear_usuario tenga retorno del id que dio el identity y que maneje errores igual que sp_login; los campos son: user_id numeric(18,0) user_tipodoc numeric(18,0) user_username varchar(255) user_pass varchar(255) pers_id numeric(18,0) pers_nombre varchar(255) pers_apellido varchar(255) pers_tipo_doc numeric(18,0) pers_doc numeric(18,0) pers_dire varchar(255) pers_tel numeric(18,0) pers_mail varchar(255) pers_sexo char(1) pers_fecha_nac datetime afil_id numeric(18,0) afil_estado numeric(18,0) afil_plan_med numeric(18,0) afil_nro_afiliado numeric(18,0) afil_familiares tinyint afil_nro_consulta numeric(18,0)

Comentarios - DER

1- Relación Usuario-Persona: ¿ un usuario no necesariamente pertenece a una persona ? Está como opcional del lado de la persona
¿ o sería al revés: que una persona puede NO tener un usuario ?
2- Relación Profesional-PErsona: ¿ un profesional puede no estar en la entidad Persona ? Está como opcional del lado de la persona
¿ o sería al revés: que una persona puede NO ser un profesional ?
Del lado del afiliado me parece que está bien y debería ser así del lado del profesional.
3- No entiendo bien la relación Agenda-Dia-Agenda_día: ¿ por qué quedó el FK vacío ? ¿ la PK sería dia_id y agenda_id(en la tabla Agenda_dia) ?
no entiendo bien qué representa esto, pero debo ser yo, así que lo único que corregiría es el tema de las FK vacías o desfasadas, no sé(ésto aplica a casi todo el DER).

4- En turno: ¿ no faltan un par de FK ? Por ej: turno_afiliado supongoq ue es el ID del afiliado. turno_profesional supongo que es el ID del profesional, etc.

5- Relación Cancelación-Tipo cancelación: Yo pondría opcional del lado de cancelación porque algún tipo de cancelación puede no haberse dado nunca.

Turnos disponibles: NUL.sp_get_disp_profesional(@id_prof numeric(18,0), @esp_id numeric(18,0), @fec_inicio datetime, @fec_fin datetime)

declare @fec_inicio datetime, @fec_fin datetime

set @fec_inicio = '2015-01-01 08:00:00.000'
set @fec_fin = '2015-01-01 17:00:00.000'

--Limito los registros que salen al día actual y los dos siguientes, entre las 8 y las 17 horas
select @fec_inicio, @fec_fin

--Construcción de un registro cada 15 minutos
;with FECHAS(fecha) AS (
SELECT cast(@fec_inicio as datetime) fecha
UNION ALL
SELECT DATEADD(mi, 30, fecha) fecha
FROM FECHAS
WHERE fecha < @fec_fin
)
,Agenda_filtrada as (--Rango de horas en función de la tabla Cronos
select AD.agenda_id, AD.dia_id, A.agenda_prof_id, A.agenda_prof_esp_id, F.Fecha,
HORA_DESDE = AD.dia_hora_inicio,
HORA_HASTA = AD.dia_hora_fin
from NUL.Agenda_dia AD, NUL.Agenda A, FECHAS F
where
@fec_inicio > GETDATE() --> Sólo se muestran los registros que aún no han empezado
--and F.fecha between --> Sólo las horas que estén agendadas
--cast(convert(char(8), @fec_inicio, 112) + ' ' + AD.dia_hora_inicio as smalldatetime) and
--cast(convert(char(8), @fec_fin, 112) + ' ' + dateadd(MI, -30, AD.dia_hora_fin) as smalldatetime)
--> El último turno no es el de la hora final, sino 15 minutos antes de la hora final
)
-- Muestro empleado y actividad para facilitar la asignación posterior, realmente el combo no lo mostraría
select
Profesional = min(AF.agenda_prof_id), Especialidad = min(AF.agenda_prof_esp_id), FECHA = AF.fecha,
Dato_Combo = CONVERT(char(5), AF.fecha, 114) + ' - ' + CONVERT(char(5), dateadd(MI, 30, AF.fecha), 114)
from Agenda_filtrada AF
left join NUL.Turno T on T.turno_fecha_hora = convert(char(8), AF.fecha, 112) + CONVERT(char(5), AF.fecha, 114) + ' - ' + CONVERT(char(5), dateadd(MI, 30, AF.fecha), 114)
where
T.turno_id is null --> Las horas ya cogidas no han de mostrarse
group by --> Se agrupa para no mostrar duplicados, hay turnos que se solapan
AF.FECHA, CONVERT(char(5), AF.FECHA, 114) + ' - ' + CONVERT(char(5), dateadd(MI, 30, AF.FECHA), 114)
order by Fecha, Dato_Combo
OPTION (MaxRecursion 0);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.