Cita:
Empezado por Casimiro Notevi
No explicas nada sobre cómo se va a usar eso, pero básicamente crearía una tabla con los horarios disponibles, otra tabla donde almacenar asociación de pedido-horario, y le asignaría pedidos hasta completar 10 por cada horario. Una vez ha llegado a 10, pasar al siguiente horario de la tabla horarios disponibles.
|
Gracias casimiro...efectivamente no explique nada de como se va a usar. Explico:
El cliente quiere no saturase de trabajo y poder controlar la cantidad de pedidos a realizar para no quedar mal con sus clientes, así que me encargo que el sistema cuidara que por cada hora solo se permitan 10 pedidos....
Lo que llevo: (pruebas)
Cree una tabla llamada FECHA_CRITICA, en la cual tiene estos campos:
Código:
mes numeric(2)
anio numeric(4)
hora_inicial time
hora_final time
maximo_pedidos numeric(2)
y otra tabla con los pedidos, que básicamente solo le cree 3 campos:
Código:
id_pedido numeric(2)
fecha_levantamiento_pedido date /*que pude ser también timestamp, para no tener 2 campos*/
hora_levantamiento_pedido time
A la tabla de PEDIDOS le cree un trigger para que valide la fecha y el horario por cada INSERT o UPDATE q se le haga a la tabla.
Código SQL
[-]
CREATE TRIGGER TRG_VALIDAR_FECHA_CRITICA FOR AGENDA_PEDIDO
ACTIVE AFTER INSERT OR UPDATE POSITION 0
AS
declare variable vmaximopedidos numeric(2);
declare variable vtotpedidos numeric(3);
begin
select a.maximo_pedidos,
count(*) as tot_pedidos
from fecha_critica a,
agenda_pedido b
where a.mes =extract(month from new.fecha_pedido)
and a.anio=extract (year from new.fecha_pedido)
and new.hora_pedido between a.hora_inicial and a.hora_final
group by a.maximo_pedidos
into :vmaximopedidos,
:vtotpedidos;
if (:vTotPedidos>=:vMaximoPedidos) then
begin
exception exc_horario_saturado;
end
end
Hasta ahorita esto me ha resultado...pero no sé si sea la mas adecuada, sigo probando.
Gracias por tus comentarios y tu tiempo Casimiro!...y a todos los q consulten y lean este hilo, también muchas gracias.
Saludos.