Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-12-2020
glopez glopez is offline
Miembro
 
Registrado: ago 2003
Ubicación: Huelva
Posts: 76
Poder: 21
glopez Va por buen camino
Hola voy a intentar explicar el caso exacto que me ha pasado a ver que me aconsejáis:

1. User1 Abre el Albarán1, le da a editar, lo deja así y se va a desayunar.
2. User2 decide facturar el Albarán1. Este pasa al estado de FACTURADO.
3. User1 cuando vuelve de desayunar, confirma el Albarán1 que dejó en edición (que estaba PENDIENTE cuando lo abrió) por lo que pasa de nuevo a PENDIENTE.

Podría volver a leer los datos antes de que el User1 confirmara las modificaciones para ver si el albarán ha cambiado, pero creo que lo más correcto sería impedir que facturaran, o modificaran ese albarán mientras alguien lo esté editando aunque esté desayunando. ¿Qué opináis? ¿Creéis que se producirían muchos bloqueos?
Responder Con Cita
  #2  
Antiguo 03-12-2020
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Sí, es una mala política tener que contemplar el caso de que "alguien decida irse a desayunar dejando todo a medias", eso debería formar parte de las normas básicas de trabajo. E incluso acabarías con bloqueos del tipo: se fue la luz/ falló la conexión/ windows explotó/... que tendrías que desbloquear por otros medios.
Responder Con Cita
  #3  
Antiguo 03-12-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es muy simple, por ejemplo, cuando se pulse en el botón "Facturar", haces antes una sencilla comprobación.
Código Delphi [-]
btFacturar.Click;
begin
  qry.sql.text := 'select facturado from tbAlbaranes where serienumero="A1"';
  qry.execute;
  if qry.fields[0]='1' then 
    showmessage('El albarán ya está facturado')
  else
    Facturar( 'A1' );
end;

procedure Facturar( cAlbaran:string);
begin
  ...
  ...
  // poner el campo facturado a 1/S/True...
  albaran.facturado := 1;
end;
Responder Con Cita
  #4  
Antiguo 03-12-2020
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por glopez Ver Mensaje
Podría volver a leer los datos antes de que el User1 confirmara las modificaciones para ver si el albarán ha cambiado, pero creo que lo más correcto sería impedir que facturaran, o modificaran ese albarán mientras alguien lo esté editando aunque esté desayunando. ¿Qué opináis? ¿Creéis que se producirían muchos bloqueos?
Pues justo yo haría lo primero.
En sistemas concurrentes no tienen sentido los bloqueos de este sentido. Cuanta más concurrencia más problemas vas a tener.
Pero tú tienes la decisión final.

Técnicamente puedes hacer ambos.

El problema de los bloqueos es que tienes que pensar un sistema para liberarlos.
Si el USER1 marca un registro como bloqueado y se le cuelga la máquina o se le cierra el programa, ese registro quedará BLOQUEADO y nadie más podrá modificarlo (por pornerte un ejemplo sencillo).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 03-12-2020
glopez glopez is offline
Miembro
 
Registrado: ago 2003
Ubicación: Huelva
Posts: 76
Poder: 21
glopez Va por buen camino
Al final creo que lo que menos problemas me va a dar, es comprobar a la hora de grabar si los datos han sido modificados.

Muchas gracias a todos por vuestras respuestas.

Un saludo.
Responder Con Cita
  #6  
Antiguo 09-12-2020
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Yo lo que te recomiendo es que le agregues al albarán una marca de "Facturable".
Cuando el usuario comienza a hacer un albarán, está desmarcado.
Agregará las líneas que sea necesario.
Luego lo marcará como "Facturable".

Cualquiera que quiera facturar solo debería ver los albaranes "Facturables", lo que asegura que el albarán está finalizado.
Responder Con Cita
Respuesta



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
Bloquear un registro.... Jose Roman SQL 2 26-10-2010 04:24:18
Bloquear un registro. ppb MySQL 0 01-03-2009 12:08:18
bloquear registro!! Juan Carlos MySQL 1 17-12-2005 20:49:31
bloquear registro armando Tablas planas 2 25-10-2005 15:48:53
Bloquear 1 Registro AGAG4 Firebird e Interbase 1 14-09-2004 09:53:27


La franja horaria es GMT +2. Ahora son las 00:17:04.


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