![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Cita:
¿y no puedes crear una función en el Visual que te devuelva un string, con el formato que necesita Verifactu? si haciendo el "SYSDATETIMEOFFSET" obtienes algo como esto: "2025-04-16 16:44:01.6718891 +02:00" y Verifactu necesita algo como esto: "2025-04-16T16:44:01+02:00" entiendo que no sería difícil crear una función que haga la consulta, la ponga en el formato de Verifactu y la devuelva como string. Y si la haces y la pones aquí, ya la aprovecho yo ![]() ![]() |
|
#2
|
|||
|
|||
|
Venga... ya la hice yo, la pongo aquí que mañana es festivo y estoy de buenas
![]() Código:
Function ObtenerFechaHora() As String
Dim retorno As String = ""
'-------------------------------------------
'1 - COGEMOS LA HORA DE INTERNET
'-------------------------------------------
Try
ServicePointManager.SecurityProtocol = CType(3072, SecurityProtocolType) 'TLS 1.2
Dim webRequest As HttpWebRequest = CType(Net.WebRequest.Create("https://www2.roa.es/cgi-bin/horautc"), HttpWebRequest)
webRequest.Method = "GET"
Dim respuesta As HttpWebResponse = CType(webRequest.GetResponse(), HttpWebResponse)
If respuesta.StatusCode = HttpStatusCode.OK Then
Dim strmRespuesta As Stream = respuesta.GetResponseStream()
Dim leeRespuesta As New StreamReader(strmRespuesta)
Dim jsonRespuesta As String = leeRespuesta.ReadToEnd()
Dim ticks As Long = Long.Parse(jsonRespuesta.Replace("\n", ""))
Dim fechora As DateTime = Org.BouncyCastle.Utilities.Date.DateTimeUtilities.UnixMsToDateTime(ticks).ToLocalTime()
retorno = fechora.ToString("yyyy-MM-dd'T'HH:mm:ssK")
End If
Catch Ex As Exception
'MsgBox(Ex.Message, MsgBoxStyle.OkOnly, "ObtenerFechaHora - Internet")
End Try
'-------------------------------------------
'2 - COGEMOS LA HORA DEL SERVIDOR SQL
'-------------------------------------------
If retorno = "" Then
Try
Dim DAHora As New SqlDataAdapter
Dim DSHora As New DataSet
Dim SqlHora As String = "SELECT SYSDATETIMEOFFSET() AS FechaActual"
DSHora.Reset()
DAHora = New SqlDataAdapter(SqlHora, Conexion)
DAHora.Fill(DSHora, "Hora")
If DSHora.Tables("Hora").Rows.Count = 1 Then
Dim RowHora As DataRow = DSHora.Tables("Hora").Rows(0)
Dim fechora As DateTime = RowHora.Item("FechaActual").ToString
retorno = fechora.ToString("yyyy-MM-dd'T'HH:mm:ssK")
End If
DAHora.Dispose()
DSHora.Dispose()
Catch Ex As Exception
'MsgBox(Ex.Message, MsgBoxStyle.OkOnly, "ObtenerFechaHora - Servidor")
End Try
End If
'-------------------------------------------
'2 - COGEMOS LA HORA DEL EQUIPO
'-------------------------------------------
If retorno = "" Then
retorno = DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ssK")
End If
Return retorno
End Function
Primero intenta cogerla de internet, si no es capaz del servidor sql y si no es capaz del equipo La primera puede dar error si no hay internet o no responde ROA... la segunda debería devolver siempre (si no hay conexión al servidor ya no va a funcionar la aplicación) Espero que te sirva! |
|
#3
|
|||
|
|||
|
Cita:
Si utilizo un string para almacenar la FechaHoraHusoGenRegistro al generar el registro, ya se guarda correctamente PERO, con las clases que se genera en Visual Studio al importar el WSDL, el campo no es string sino DateTime. Para utilizar ese string tendría que hacer una de las opciones 2 o 3 que comento en el primer post y que intento evitar ![]() Muchas gracias igualmente |
|
#4
|
|||
|
|||
|
Cita:
pues a mi usando el objeto me deja asignarle un campo string: Código:
CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).FechaHoraHusoGenRegistro = Row.Item("FechaHoraHusoGenRegistro")
CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).TipoHuella = TipoHuellaType.Item01
CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).Huella = Row.Item("HuellaVerifactu")
|
|
#5
|
|||
|
|||
|
Cita:
En nuestro caso es DateTime y no puedo hacer esa asignación directa sin convertir. Al importar el WSDL dentro del fichero reference.cs genera el campo así: Código:
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=25)]
public System.DateTime FechaHoraHusoGenRegistro {
get {
return this.fechaHoraHusoGenRegistroField;
}
set {
this.fechaHoraHusoGenRegistroField = value;
this.RaisePropertyChanged("FechaHoraHusoGenRegistro");
}
}
Código:
<element name="FechaHoraHusoGenRegistro" type="dateTime" /> Gracias igualmente Última edición por rci fecha: 16-04-2025 a las 17:58:53. |
|
#6
|
|||
|
|||
|
a mi también me dice que es de tipo Date. Entiendo que a todo el mundo debería decirle lo mismo, porque estamos importando el mismo wsdl:
Código:
'''<remarks/>
Public Property FechaHoraHusoGenRegistro() As Date
Get
Return Me.fechaHoraHusoGenRegistroField
End Get
Set
Me.fechaHoraHusoGenRegistroField = value
End Set
End Property
pero me traga cuando lo que le envío es un string: Código:
CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAnulacionType).FechaHoraHusoGenRegistro = Row.Item("FechaHoraHusoGenRegistro")
|
|
#7
|
|||
|
|||
|
Cita:
![]() Imagino que Visual Basic lo trata diferente que C# ![]() De todas formas también afecta a la hora de enviar. Si el objeto es DateTime, no tiene información del huso horario y coge la configuración del ordenador que envía, y aquí viene el problema si no es la misma que el ordenador que generó el registro de facturación. Gracias Última edición por rci fecha: 16-04-2025 a las 18:27:17. |
|
#8
|
||||
|
||||
|
Fechaora internet con uso horadio
Hola @rci, Prueba esto.
public System.DateTime(System.DateTime currentDateTime) { return new DateTime(currentDateTime.Year, currentDateTime.Month, currentDateTime.Day, currentDateTime.Hour, currentDateTime.Minute, currentDateTime.Second, DateTimeKind.Local); } Si la hora no es local la convierte a local.
__________________
Uno se alegra de ser útil. (Isaac Asimov) |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| FechaHoraHusoGenRegistro y configuración de la zona horaria PC | rci | Registros de Facturacion y Eventos (XML) | 22 | 22-04-2025 14:19:28 |
| Error envio FACTURA | [email protected] | Envío de registros y sus respuestas | 3 | 26-12-2024 21:36:29 |
| Error huella factura rectificativa | florenagm | Envío de registros y sus respuestas | 8 | 20-11-2024 09:55:22 |
| Enviar factura electronica via webservice | elguille | Varios | 20 | 08-05-2023 23:31:17 |
| Error al calcular una factura | Yensis22 | Conexión con bases de datos | 72 | 05-09-2008 15:38:19 |
|