Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-11-2018
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
crear AGENDA de pedidos

Hola amigos.
Iniciando un nuevo proyecto con DELPHI 6 y Firebird 2.5.

Explico: Me están solicitando una agenda para registrar pedidos, los cuales en fechas criticasquieren solamente atender 10 pedidos por cada hora, el pedido No.11 se irá al siguiente horario disponible.

No tengo nada hecho todavía (ni la estructura de la tabla !! jejeje), mas bien solicitarles su apoyo para que me sugieran ideas de como hacerlo y que componentes usar, he leído acerca de TDBPlanner de TMS aqui en el club, pero la verdad no tengo dinero para comprarlos así que si saben de algunos gratuitos se los agredecere.

He jugado un poco de como construirlo, viendo precisamente una agenda en físico y de como lo llevan en el negocio de mi cliente, para emular su funcionamiento manual y llevarlo acabo en el sistema q estoy desarrollando, en realidad no me parece nada complicado desarrollarlo, pero talvez existan mejores ideas y maneras creativas de hacer algo parecido a una agenda, asi que espero sus comentarios.

De antemano, muchísimas gracias por su tiempo que le dediquen a mi consulta.

SALUDOS !!
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #2  
Antiguo 26-11-2018
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
(Estoy revisando los links q están al final de mi post)
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #3  
Antiguo 26-11-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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.
Responder Con Cita
  #4  
Antiguo 26-11-2018
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
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.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #5  
Antiguo 27-11-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y la asignación de horas a los pedidos es automática consecutiva o lo elige el usuario o el cliente?
Responder Con Cita
  #6  
Antiguo 27-11-2018
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Creo que esto se simplifica mucho mas.

Usa un FIFO Queue. Cojes pedidos y llenas, digamos de a 10.

Inicias un contador de cantidad y uno de tiempo.


Antes de tomar seguiente pedido, checas los contadores.

Vas tomando pedidos, y acumulas.

Cuando los contadores llegan a tope, esperas instruccion de continuar y reinicias. Si te quedas sin pedidos, cojes los siguientes 10 hasta que te quedes sin mas trabajo.

Asi, solo te importa la tabla de pedidos y no hay que complicarse con fechas. Solo importa cuantos se hace por un tiempo X.
__________________
El malabarista.
Responder Con Cita
  #7  
Antiguo 01-12-2018
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por mamcx Ver Mensaje
Creo que esto se simplifica mucho mas.

Usa un FIFO Queue. Cojes pedidos y llenas, digamos de a 10.

Inicias un contador de cantidad y uno de tiempo.


Antes de tomar seguiente pedido, checas los contadores.

Vas tomando pedidos, y acumulas.

Cuando los contadores llegan a tope, esperas instruccion de continuar y reinicias. Si te quedas sin pedidos, cojes los siguientes 10 hasta que te quedes sin mas trabajo.

Asi, solo te importa la tabla de pedidos y no hay que complicarse con fechas. Solo importa cuantos se hace por un tiempo X.
Excelente idea...!!. Vera que tan factible es de implementar.

Gracias.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #8  
Antiguo 01-12-2018
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Y la asignación de horas a los pedidos es automática consecutiva o lo elige el usuario o el cliente?
Es lo que estoy viendo...como seria conveniente que se registrara, me parece que la forma AUTOMÁTICA podría ser la mas factible, dejársela al usuario que la captura, puede ser contraproducente...la idea es que el usuario registre solo 10 pedidos por cada hora...el pedido 11 tendría que ser en el siguiente bloque de pedidos, en la hora siguiente, entonces....mm...el horario se asignaría de manera automática (ahora q lo escribo me están viniendo las ideas !!).

Gracias Casimiro por tu tiempo.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Gestión de pedidos a través de la Web Delphitest Delphi para la web 4 22-05-2015 10:44:08
Crear una agenda Victorialerda Varios 5 13-07-2012 23:36:52
pedidos sergioperez Tablas planas 23 21-01-2011 23:53:56
Crear Agenda con componentes standard de Delphi FNADALO Varios 3 26-07-2004 14:04:53
Crear una agenda MAGRANA Varios 5 02-07-2004 14:16:24


La franja horaria es GMT +2. Ahora son las 11:59:44.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi