![]() |
![]() |
| 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
|
|||
|
|||
|
Termino de encontrar una función en .Net que si no me equivoco funciona bien.
Código:
Function CRC_8(ByVal Txt As String) As Byte
Dim Poly() As Byte = {1, 0, 0, 0, 0, 0, 1, 1, 1}
Dim MessageBits As New List(Of Byte)
Dim MsgBinString As String = ""
'Compute the message binary
For Each C As Char In Txt
Dim S As String = Convert.ToString(Asc(C), 2)
If S.Length < 8 Then S = New String("0"c, 8 - S.Length) & S
MsgBinString &= S
Next
For Each C As Char In MsgBinString
If C = "0"c Then MessageBits.Add(0) Else MessageBits.Add(1)
Next
'add 8 bits set to zero
MessageBits.AddRange(New Byte() {0, 0, 0, 0, 0, 0, 0, 0})
'compute CRC
While MessageBits.Count > 8
If MessageBits(0) = 0 Then
MessageBits.RemoveAt(0)
Continue While
End If
For x = 0 To 8 '<--9 bits
MessageBits(x) = MessageBits(x) Xor Poly(x)
Next
End While
'put the result in byte format and return
Dim Result As Byte = 0
For x = 0 To 7
Result = Result Or (MessageBits(7 - x) << x)
Next
Return Result
End Function
|
|
#2
|
|||
|
|||
|
Si te funciona perfecto. Pruébalo y dale.
Aunque no sé, me da la sensación de que le falta la tabla crc8 y el polynomio no me cuadra. No me hagas caso por que yo la función no la entiendo ni me he puesto a entenderla |
|
#3
|
|||
|
|||
|
Cita:
Yo uso esta clase que adapté de una versión PHP publicada en este foro (creo): Código:
public static class Crc8{
//private static const String UTF_8 = "UTF-8";
// CRC-8,
// Poly = x^8 + x^2 + x^1 + x^0
// Init = 0
// RefIn = false
// RefOut = false
// XorOut = 0
private static readonly byte[] _crc8Table = new byte[] {
(byte) 0x00, (byte) 0x07, (byte) 0x0E, (byte) 0x09, (byte) 0x1C, (byte) 0x1B, (byte) 0x12, (byte) 0x15,
(byte) 0x38, (byte) 0x3F, (byte) 0x36, (byte) 0x31, (byte) 0x24, (byte) 0x23, (byte) 0x2A, (byte) 0x2D,
(byte) 0x70, (byte) 0x77, (byte) 0x7E, (byte) 0x79, (byte) 0x6C, (byte) 0x6B, (byte) 0x62, (byte) 0x65,
(byte) 0x48, (byte) 0x4F, (byte) 0x46, (byte) 0x41, (byte) 0x54, (byte) 0x53, (byte) 0x5A, (byte) 0x5D,
(byte) 0xE0, (byte) 0xE7, (byte) 0xEE, (byte) 0xE9, (byte) 0xFC, (byte) 0xFB, (byte) 0xF2, (byte) 0xF5,
(byte) 0xD8, (byte) 0xDF, (byte) 0xD6, (byte) 0xD1, (byte) 0xC4, (byte) 0xC3, (byte) 0xCA, (byte) 0xCD,
(byte) 0x90, (byte) 0x97, (byte) 0x9E, (byte) 0x99, (byte) 0x8C, (byte) 0x8B, (byte) 0x82, (byte) 0x85,
(byte) 0xA8, (byte) 0xAF, (byte) 0xA6, (byte) 0xA1, (byte) 0xB4, (byte) 0xB3, (byte) 0xBA, (byte) 0xBD,
(byte) 0xC7, (byte) 0xC0, (byte) 0xC9, (byte) 0xCE, (byte) 0xDB, (byte) 0xDC, (byte) 0xD5, (byte) 0xD2,
(byte) 0xFF, (byte) 0xF8, (byte) 0xF1, (byte) 0xF6, (byte) 0xE3, (byte) 0xE4, (byte) 0xED, (byte) 0xEA,
(byte) 0xB7, (byte) 0xB0, (byte) 0xB9, (byte) 0xBE, (byte) 0xAB, (byte) 0xAC, (byte) 0xA5, (byte) 0xA2,
(byte) 0x8F, (byte) 0x88, (byte) 0x81, (byte) 0x86, (byte) 0x93, (byte) 0x94, (byte) 0x9D, (byte) 0x9A,
(byte) 0x27, (byte) 0x20, (byte) 0x29, (byte) 0x2E, (byte) 0x3B, (byte) 0x3C, (byte) 0x35, (byte) 0x32,
(byte) 0x1F, (byte) 0x18, (byte) 0x11, (byte) 0x16, (byte) 0x03, (byte) 0x04, (byte) 0x0D, (byte) 0x0A,
(byte) 0x57, (byte) 0x50, (byte) 0x59, (byte) 0x5E, (byte) 0x4B, (byte) 0x4C, (byte) 0x45, (byte) 0x42,
(byte) 0x6F, (byte) 0x68, (byte) 0x61, (byte) 0x66, (byte) 0x73, (byte) 0x74, (byte) 0x7D, (byte) 0x7A,
(byte) 0x89, (byte) 0x8E, (byte) 0x87, (byte) 0x80, (byte) 0x95, (byte) 0x92, (byte) 0x9B, (byte) 0x9C,
(byte) 0xB1, (byte) 0xB6, (byte) 0xBF, (byte) 0xB8, (byte) 0xAD, (byte) 0xAA, (byte) 0xA3, (byte) 0xA4,
(byte) 0xF9, (byte) 0xFE, (byte) 0xF7, (byte) 0xF0, (byte) 0xE5, (byte) 0xE2, (byte) 0xEB, (byte) 0xEC,
(byte) 0xC1, (byte) 0xC6, (byte) 0xCF, (byte) 0xC8, (byte) 0xDD, (byte) 0xDA, (byte) 0xD3, (byte) 0xD4,
(byte) 0x69, (byte) 0x6E, (byte) 0x67, (byte) 0x60, (byte) 0x75, (byte) 0x72, (byte) 0x7B, (byte) 0x7C,
(byte) 0x51, (byte) 0x56, (byte) 0x5F, (byte) 0x58, (byte) 0x4D, (byte) 0x4A, (byte) 0x43, (byte) 0x44,
(byte) 0x19, (byte) 0x1E, (byte) 0x17, (byte) 0x10, (byte) 0x05, (byte) 0x02, (byte) 0x0B, (byte) 0x0C,
(byte) 0x21, (byte) 0x26, (byte) 0x2F, (byte) 0x28, (byte) 0x3D, (byte) 0x3A, (byte) 0x33, (byte) 0x34,
(byte) 0x4E, (byte) 0x49, (byte) 0x40, (byte) 0x47, (byte) 0x52, (byte) 0x55, (byte) 0x5C, (byte) 0x5B,
(byte) 0x76, (byte) 0x71, (byte) 0x78, (byte) 0x7F, (byte) 0x6A, (byte) 0x6D, (byte) 0x64, (byte) 0x63,
(byte) 0x3E, (byte) 0x39, (byte) 0x30, (byte) 0x37, (byte) 0x22, (byte) 0x25, (byte) 0x2C, (byte) 0x2B,
(byte) 0x06, (byte) 0x01, (byte) 0x08, (byte) 0x0F, (byte) 0x1A, (byte) 0x1D, (byte) 0x14, (byte) 0x13,
(byte) 0xAE, (byte) 0xA9, (byte) 0xA0, (byte) 0xA7, (byte) 0xB2, (byte) 0xB5, (byte) 0xBC, (byte) 0xBB,
(byte) 0x96, (byte) 0x91, (byte) 0x98, (byte) 0x9F, (byte) 0x8A, (byte) 0x8D, (byte) 0x84, (byte) 0x83,
(byte) 0xDE, (byte) 0xD9, (byte) 0xD0, (byte) 0xD7, (byte) 0xC2, (byte) 0xC5, (byte) 0xCC, (byte) 0xCB,
(byte) 0xE6, (byte) 0xE1, (byte) 0xE8, (byte) 0xEF, (byte) 0xFA, (byte) 0xFD, (byte) 0xF4, (byte) 0xF3 };
/**
* Calculate the CRC value with data from input string.
* @param input input string
* @return The calculated CRC value. Left padding with zeros.
* // --NO: @throws UnsupportedEncodingException //
*/
public static string GetCrc8(string input) {
try
{
byte[] data = System.Text.Encoding.UTF8.GetBytes(input);
int len = data.Length;
byte crc = 0;
for (int i = 0; i < len; i++)
crc = _crc8Table[(crc ^ data[i]) & 0xff];
long a = (crc & 0xFFL);
return a.ToString("D3");
}
catch (System.Exception ex)
{
throw new System.Exception(ex.Message);
}
}
}
|
|
#4
|
|||
|
|||
|
Duda. Se ha acabado el trimestre y al hacer los consumidores finales, me doy cuenta de que hay una factura de 10. 000 euros por error.
Que veis mejor anulación o rectificación? Teniendo en cta que estamos ya a día 18 del mes siguente al trimestre y no quiero declara esa factura para no pagar una pasta de impuestos, pero que tampoco me caiga una inspección por no declararlo por cruce de datos. |
|
#5
|
|||
|
|||
|
Cita:
Factura rectificativa, sin duda. La anulación, según entendí por la explicación de uno de los expertos de Gipuzkoa en la videoconferencia sobre el servicio ZUZENDU, se da en supuestos contados y además es problemática porque, según entiendo yo, complica el encadenamiento (debes dejar la factura anulada para que el encadenamiento no se rompa y te queda ahí tocando las narices para la contabilidad). Así que, prácticamente siempre, entiendo yo, procede hacer factura rectificativa por error en factura original... |
|
#6
|
|||
|
|||
|
Cita:
|
|
#7
|
|||
|
|||
|
Qr
Alguien sabria decirme si este QR esta correcto?
https://tbai.egoitza.gipuzkoa.eus/qr...=512.00&cr=065 |
|
#8
|
|||
|
|||
|
Hola, buenos días,
Estoy implementando el caso de rectificar una factura que no ha sido valida. Para ello, segun los ejemplos en Guipuzkoa, es posible enviar una factura rectificativa con los importes en negativo. Al enviar el fichero XML con los importes en negativo recibo el siguiente error: <Codigo>002</Codigo> <Descripcion>Error: El fichero de alta TicketBAI no cumple el esquema XSD. Detalle del error: cvc-pattern-valid: Value '-10.00' is not facet-valid with respect to pattern '\d{1,3}(\.\d{0,2})?' for type 'Tipo3.2Type'.</Descripcion> Por lo que veo, hay una RegEx de validación que no espera un símbolo negativo. Alguien sabe como puedo entonces enviar valores negativos? Muchas gracias!! ![]() |
|
#9
|
|||
|
|||
|
Cita:
Lo estas mandando al real o al de pruebas? porque el de pruebas en lugar de "egoitza" es "prep" |
|
#10
|
|||
|
|||
|
Cita:
De todas formas estaría mal calculado el primer CR, con lo cual el segundo CR tampoco correspondería. Cita:
|
|
#11
|
|||
|
|||
|
Cita:
Sin embargo, ten en cuenta que la url que estás usando es la de producción; no la de pruebas. La de pruebas es: https://tbai.prep.gipuzkoa.eus/qr/ Supongo que ya lo sabes, pero por si no... |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice | newtron | Internet | 3716 | 19-01-2026 20:01:34 |
| Como utilizar la ayuda del nuevo Sistema Operativo | gluglu | Humor | 3 | 24-09-2007 09:39:05 |
| Aplicacion Agencia De Viajes | ArdiIIa | Varios | 9 | 20-01-2007 16:49:53 |
| El Vasco Aguirre | Al González | La Taberna | 5 | 26-05-2006 09:22:28 |
| Microsoft ha lanzado su nuevo sistema operativo | DarkByte | Humor | 0 | 25-01-2004 09:21:14 |
|