Autor Tema: Evitar que se guarde en una fecha anterior  (Leído 15237 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Evitar que se guarde en una fecha anterior
« Respuesta #15 en: Octubre 20, 2011, 11:23:00 am »
Aca lo de internet hay que descartar si o si el Patron NO QUIERE QUE TENGA INTERNT. Entonces no puedo sinconizar desde internet la fecha.
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Evitar que se guarde en una fecha anterior
« Respuesta #16 en: Octubre 20, 2011, 11:49:10 am »
Hola seba123neo mis saludos ...

El time sea por sincronización o por lo que sea siempre dependerá de un dipositivo (en este caso una PC) y de un programa (En este caso windows)... lo traigas remotamente o lo hagas como lo hagas ...

El tema de la solución que planteo es muy simple ... solo que deje el comentario abierto al ingenio ...

Entoces ... si tu obtienes la fecha y hora de forma remota, desde un servidor que debe cumplir ciertas especificaciones técnicas, el cual no esta tan expuesto como un terminal (No se la infraestructura del lugar), estos datos se tornan fiables ... y ademas imposibles de alterar desde el terminal ... por lo que pasaría a tercer plano si cambian las fecha y hora del terminal ...

Esto se usa en sistemas de control de acceso, sistemas auditores, sistemas de gestión de datos con registro de hora etc ...

Tampoco quise plantear un solución para depender de terceros, por medio de la sincronización del timer de windows y mucho menos ponerme a hacer un planteamiento e indicar como configurar un server DTS (bajo windows o linux) ... me parece matar un mosquito con un cañon .... salu2

y porque no haces que tu sistema maneje una fecha independiente la fecha del sistema ?  asi hacena lgunos sistemas, tienen su propia fecha y por ams que le cambies al windows la fecha, el sistema sigue con su fecha, esto obliga al usuario a "cerrar el dia" y asi pasar al siguiente dia para vender.

Si lees tu propia cita verás que estoy en lo cierto ... cual es tu punto de partida ...como sincronizas ese timer que quieres independizar del sistema ... salu2 ...

HOLA!!!

pero eso sigue dependiendo de la hora de windows.

El piensa que el servidor es impune y que nadie tiene acceso o mete mano.  :P



I N T R O:
Saca la fecha de esta web:
http://wwp.greenwichmeantime.com/time/scripts/clock-8/runner.php

GRACIAS POR LEER!!!

Correcto Enter ... el server si es realmente un server nadie debe meter mano. Tu respuesta es buena, pero te hace dependiente de internet y ademas sigue dependiendo de un SO remoto que manejan terceros ... (a eso me refería que simpre estaremos atado a un programa y dipositivo por medio)

no se para donde te fuiste  :P, en el tema no se hablo de servidores ni nada, es una aplicacion simple en una pc que necesita ser independiente de la hora de windows, lo que yo planteo no se me ocurrio a mi, sino que lo usan sistemas de gestion grandes que tienen puestos de trabajo y facturan ahi mismo y cierran el dia, aparte pueden tener varias fechas de trabajo a la ves.
« última modificación: Octubre 20, 2011, 12:19:16 pm por seba123neo »

79137913

  • Megabyte
  • ***
  • Mensajes: 185
  • Reputación: +21/-4
  • 4 Esquinas
    • Ver Perfil
    • Eco.Resumen Resumenes Cs. Economicas
Re:Evitar que se guarde en una fecha anterior
« Respuesta #17 en: Octubre 20, 2011, 11:53:16 am »
HOLA!!!

Investiga sobre el comando Net Time , aca un ejemplo:
net time \\SrvHora /set /yes (Sincroniza la hora local con la de SrvHora)

GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*                                                          Resumenes Cs.Economicas

erbuson

  • Kilobyte
  • **
  • Mensajes: 75
  • Reputación: +11/-1
    • Ver Perfil
Re:Evitar que se guarde en una fecha anterior
« Respuesta #18 en: Octubre 20, 2011, 12:56:33 pm »
Yo pienso que algo así, encriptando, ocultando, etc, ... puede ser mas que suficiente:

Código: [Seleccionar]
Option Explicit
Dim FechaDia As Date

Private Sub Form_Load()
  FechaDia = Date
  If ErrorFecha Then GoTo FechaMal
  '...
  '...
  Exit Sub
FechaMal:
  End
End Sub

Private Sub cmdCierre_Click()
  Dim Canal As Integer
  Canal = FreeFile
  Open App.Path & "\Cierre.txt" For Output As #Canal
  Print #Canal, FechaDia
  Close #Canal
End Sub

Private Function ErrorFecha()
  ' Devuelve Verdadero si Archivo no existe o FechaDia es menor a último cierre
  ' Podría comparar con >= pero así permite mas cierres en el mismo día
  'On Error GoTo ForzarError
  Dim Canal As Integer, FechaCierre As String
  Canal = FreeFile
  Open App.Path & "\Cierre.txt" For Input As #Canal
  Input #Canal, FechaCierre
  Close #Canal
  If CDate(FechaCierre) > FechaDia Then ErrorFecha = True
  Exit Function
ForzarError:
  ErrorFecha = True
End Function

Como puede verse, el boton de CIERRE DE CAJA, actualiza la fecha del último cierre.

Si la fecha del sistema es anterior el programa no se iniciará, siempre cabe la opción de FORZAR la fecha del sistema con la del último cierre y así no das pistas de porque no se inicia el programa.

No es mas que la opcion propuesta por seba123neo aplicada sin afectar para nada a la base de datos que tengamos definida.

Otra opción algo mas 'escondida' pero que utilizaría el mismo truco sería modificar la fecha del Ejecutable en lugar de crear un archivo, después podrías comparar de la misma manera la fecha del ejecutable y obrar en consecuencia.

Saludos
« última modificación: Octubre 20, 2011, 01:05:46 pm por erbuson »

79137913

  • Megabyte
  • ***
  • Mensajes: 185
  • Reputación: +21/-4
  • 4 Esquinas
    • Ver Perfil
    • Eco.Resumen Resumenes Cs. Economicas
Re:Evitar que se guarde en una fecha anterior
« Respuesta #19 en: Octubre 20, 2011, 03:34:07 pm »
HOLA!!!

Se me ocurrio algo...

Podes usar GetTickCount() para saber hace cuanto tiempo esta encendida la pc :P

GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*                                                          Resumenes Cs.Economicas

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Evitar que se guarde en una fecha anterior
« Respuesta #20 en: Octubre 20, 2011, 03:36:25 pm »
YA VEO  :P

Me confundi con lo de 3 cajeros ... y pensé ... tiene que haber un server ... jejejeje

Lo que citas

Citar
sino que lo usan sistemas de gestion grandes que tienen puestos de trabajo y facturan ahi mismo y cierran el dia, aparte pueden tener varias fechas de trabajo a la ves.

Tiene que tener punto de referencia el timer (por lo general es el server o algún que otro servidor DTS sea wan o local, etc ),  que el programa lleve un clock interno aliniado por las dudas que se caiga la red y sigan en opcion offline es una cosa ... pero el punto de sincronización inicial debe ser uno y establecerse en todos los terminales  ... estamos de acuerdo en eso?  :o

veo a que apuntabas ... pero saque de contexto tu comentario por interpretar una red cliente y servidor ...  ;D

no hay problema jeje, todo bien, mira te cuento que para sincronizar es a mano, supongamos que el cliente comienza a usar el sistema hoy, en la base de datos se le mete el valor de la fecha de hoy y despues el sistema comienza a trabajar a partir de esa fecha y listo, aclaro que es solo una fecha nada de minutos ni segundos.

los clientes no saben nada de computacion ni que la fecha de trabajo esta en la base de datos, ni en que tabla esta, ya que hay mas de 300 tablas. y por mas que supieran y le llegan a cambiar algo, se joden ellos mismos y e sistema va a hacer desastre, aparte hay mas chequeos y validaciones para que esto no ocurra, pero basicamente es asi.


raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Evitar que se guarde en una fecha anterior
« Respuesta #21 en: Octubre 20, 2011, 07:13:00 pm »
Podes usar GetTickCount() para saber hace cuanto tiempo esta encendida la pc :P
Ya se lo plantie yo :P