![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#2921
|
|||
|
|||
|
Que yo sepa la declaración responsable no hace falta para hacer pruebas
|
|
#2922
|
|||
|
|||
|
Cita:
Si no sabes en qué huso horario estas o qué hora es porque se ha caído un servidor de tu entorno que normalmente te suministra la información, o la máquina que ha facturado no se recuerda de dónde está (GPS offline) o una cosa similar, entonces generas el hora de tu sistema (que se supone estará dentro de los márgenes) y lo apuntas el huso horario Z (GMT) o el huso local de tu sistema, dependiendo de si recuperas la hora UTc o la hora local, y la AEAT debe ser contenta (¡por eso sirven los husos horarios!) La AEAT compara las fechas-horas en la escala UTc, es decir independientemente de los husos horarios y de su efecto sobre las horas «locales». Es por esto que al principio algunos tenían problemas con las horas, no indicaban el huso correspondiente con la hora que suministraban por tanto había un descuadre. Pero si conservas juntas la información de la hora y del huso horario en el cual se lee esta hora, no habrá problema. Ejemplo práctico: dentro de semana y media vamos a dormir una hora más por el fin del horario de verano. Entonces después de las 02:59:59 serán las 02:00:00 (en la península). Pero no es ningún problema si se conserva los husos horarios: después de las 02:59:59+02:00 serán las 02:00:00+01:00. Y es univoco. En horario UTc (él que usa la AEAT y nuestro ordenadores internamente), los relojes pasan de 00:59:59Z a 01:00:00Z; lógico y sin problema. |
|
#2923
|
|||
|
|||
|
Cita:
Cita:
|
|
#2924
|
|||
|
|||
|
Cita:
Seria tipo "F2" y marcaria FacturaSinIdentifDestinatarioArt61d=S |
|
#2925
|
|||
|
|||
|
Cita:
Resulta el error 1190: <tikR:CodigoErrorRegistro>1190</tikR:CodigoErrorRegistro> <tikR escripcionErrorRegistro>Si TipoFactura es F2 o R5 el bloque Destinatarios no puede estar cumplimentado.</tikR escripcionErrorRegistro> |
|
#2926
|
|||
|
|||
|
Cita:
|
|
#2927
|
|||
|
|||
|
Cita:
En realidad me refería a la etiqueta FechaHoraHusoGenRegistro que mandamos en el fichero con la fecha de creación y que ya he podido comprobar en mis propias pruebas que si no cumple el margen de tiempo que estás obligado te devuelve el error <tikR:CodigoErrorRegistro>2004</tikR:CodigoErrorRegistro> <tikR escripcionErrorRegistro>El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: 120 segundos.</tikR escripcionErrorRegistro>Mi duda en que si yo genero este valor a las 9:00 de hoy según estoy haciendo el envío y su servidor está out media hora, cuando vuelva a subir el fichero me dará este error o que se supone que habrá que hacer A eso iba |
|
#2928
|
||||
|
||||
|
Cita:
Cita:
Hola, como indicaban en un post anterior, la administracion ya lo ha tenido en cuenta, simplemente se ha de indicar incidencia al realizar el envio, la forma de acerlo seria variada , por ejemplo, crear una lista de registros, en la añadir encadenadamente los registros generados, cuando no hay conexion, y en el momento de volver a tenerla, simplemente reenviar la lista completa marcando le check de incidencia, o como lo hare yo, en mi caso personal, no dejando abanzar hasta poder enviar el registro, aplicando un temporizador , reintente el envio x veces, si en esas veces no lo consigo, archivare el alta, sin dejar facturar hasta que se restablezca la conexion. Pensandolo mejor , como hasta que no tengo la confirmacion de que ha llegado bien la consulta, no guardo nada en la base de datos, ni modifico el contador de facturas, voy a emitir un mensaje con un temporizador que me indique la incidencia y que vuelva a intentar el envio en por ejemplo 60" , si veo que sigue sin funcionar, guardare la factura como proforma, para volver a intentarlo mas tarde, sin perder todo el progreso de generacion de la misma, estamos hablando de que no podemos comunicar con la administracion, no es el mismo caso que el vuestro , yo no tengo que garantizar el poder continuar enviando / entregando facturas al cliente, perfectamente puedo cobrarle una proforma y enviarle la copia de la factura en otro momento. Última edición por bmfranky fecha: 18-10-2024 a las 09:26:50. |
|
#2929
|
|||
|
|||
|
Cita:
Aclarado, muchas gracias ![]() |
|
#2930
|
|||
|
|||
|
Cita:
|
|
#2931
|
||||
|
||||
|
Cita:
Código:
//en la parte del load del form incluyo indencia = false;
voluntaria.Incidencia = ServicioVerifactu.IncidenciaType.N;
if(incidencia)
{
voluntaria.Incidencia = ServicioVerifactu.IncidenciaType.S;
}
Código:
try
{
retorno = client.RegFactuSistemaFacturacion(facAPresentar);
}
catch
{
incidencia = true;
consolaError cE = new consolaError();
cE.Text = "Ha habido un error en la conexion con el servicio web de hacienda, por favor verifique el estado de su conexion a internet, en 60\" vuelva a intentar el envio, si tampoco tiene exito, se archivara esta factura como proforma y se le indicara el numero de la misma , para que vuelva a proceder al envio de la misma mas tarde";
cE.Cuentaatras = 60;
cE.Errores = false;
cE.volverAVer.Visible = false;
cE.ShowDialog();
}
|
|
#2932
|
|||
|
|||
|
Cita:
Pero me imagino que si pasaría tal cosa, tendrá la cabeza en un montón de cosas y este problema será de los últimos que les preocupará. ![]() |
|
#2933
|
|||
|
|||
|
Cita:
Cita:
|
|
#2934
|
|||
|
|||
|
Error verificacion/carga XML
Compañeros, tengo un problema que no consigo que pase.
En el RegistroFactura / RegistroAlta </IDFactura> <NombreRazonEmisor xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"/> <TipoFactura xmlns ........................ Cuando intento cargar el xml, la linea <NombreRazonEmisor xmlns me dice Error registro : 1100, valor o tipo incorrecto de campo : NombreRazonEmisor y no consigo subsanar. Alguien puede indicarme alguna pista por donde seguir investigando Gracias |
|
#2935
|
||||
|
||||
|
Cita:
Código:
//Es por subsanacion ?
altaFactura.Subsanacion = ServicioVerifactu.SubsanacionType.N;
// Se havia rechazado ?
altaFactura.RechazoPrevio = ServicioVerifactu.RechazoPrevioType.N;
//Si alta es diferente a "ALTA" , que es el valor iniucial actuamos al respecto
if(alta == "RECHAZO")
{
//Es por subsanacion ?
altaFactura.Subsanacion = ServicioVerifactu.SubsanacionType.S;
// Se havia rechazado ?
altaFactura.RechazoPrevio = ServicioVerifactu.RechazoPrevioType.X;
}
if (alta == "SUBSANACION")
{
//Es por subsanacion ?
altaFactura.Subsanacion = ServicioVerifactu.SubsanacionType.S;
// Se havia rechazado ?
altaFactura.RechazoPrevio = ServicioVerifactu.RechazoPrevioType.N;
}
if (alta == "RECHAZO_SUBSANACION")
{
//Es por subsanacion ?
altaFactura.Subsanacion = ServicioVerifactu.SubsanacionType.S;
// Se havia rechazado ?
altaFactura.RechazoPrevio = ServicioVerifactu.RechazoPrevioType.S;
}
El estado lo asigno segun la respuesta del servicio. Código:
XmlSerializer serializaFactura2 = new XmlSerializer(typeof(RespuestaRegFactuSistemaFacturacionType));
info = "";
using (var xmlw = new StringWriter())
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.Encoding = Encoding.UTF8;
using (XmlWriter writter = XmlWriter.Create(xmlw, settings))
{
serializaFactura2.Serialize(writter, retorno);
info = xmlw.ToString();
}
}
string EstadoRegistro = "";
Match match1 = Regex.Match(info, "<EstadoRegistro>(.*?)</EstadoRegistro>", RegexOptions.IgnoreCase | RegexOptions.Singleline);
if (null != match1.Value)
{
EstadoRegistro = match1.Value.Replace("<EstadoRegistro>", "");
EstadoRegistro = EstadoRegistro.Replace("</EstadoRegistro>", "");
switch (EstadoRegistro)
{
case "Correcto":
{
txtConsulta.BackColor = Color.LawnGreen;
txtConsulta.Text = "Correcto";
huella.insertaHuella(new HuellaVerifactu(1, "CONTADO", facAPresentar.Cabecera.ObligadoEmision.NIF, txtSerie.Text, txtNfac.Text, altaFactura.FechaOperacion, altaFactura.TipoFactura.ToString(), altaFactura.CuotaTotal, altaFactura.ImporteTotal, altaFactura.Huella, altaFactura.FechaHoraHusoGenRegistro));
//esto forma parte de mi sistema para guardar las factura... :D
Program.VehiculoSeleccionado.Marca = " ";
Program.VehiculoSeleccionado.Modelo = " ";
Program.facturaSeleccionada.Tasa = " ";
if (txtPortes.Text != "")
{
Program.facturaSeleccionada.Portes = txtPortes.Text;
}
else
{
Program.facturaSeleccionada.Portes = " ";
}
Program.facturaSeleccionada.ClientUID = 0;// Program.ClienteSelecionado.ClientUID;
Program.facturaSeleccionada.TipoFactura = "CONTADO";
Program.facturaSeleccionada.Tipo = "F2";
Program.facturaSeleccionada.Motivo = "";
Program.facturaSeleccionada.Regimen = "01";
Program.facturaSeleccionada.Sujeto = "S1";
Program.facturaSeleccionada.Exento = "";
Program.facturaSeleccionada.Fecha = altaFactura.FechaOperacion;// Program.RepSeleccionada.FechaReparacion;
Program.facturaSeleccionada.Matricula = " ";
Program.facturaSeleccionada.NumReparacion = 0;
Program.facturaSeleccionada.NºHoras = " ";// Program.madobra.Cantidad;
Program.facturaSeleccionada.DTOHoras = " ";//Program.madobra.Descuento;
Program.facturaSeleccionada.PrecioHoras = " ";//Program.madobra.Precio;
Program.facturaSeleccionada.TipoIva = Program.currentIva;
Program.facturaSeleccionada.Tasa = " ";// Program.madobra.Tasa;
Program.facturaSeleccionada.Materiales = info;
//Program.facturaSeleccionada.Portes = Program.madobra.Portes;
//Program.facturaSeleccionada.Materiales = " ";// Program.RepSeleccionada.Reparacion;
Program.facturaSeleccionada.NºFactura = Convert.ToInt32(txtNfac.Text); //
Program.configTaller.NºFactura++;
ConfigDB.actualizaNfac(Program.configTaller.NºFactura.ToString());
FacturasDB.grabaFacturaSimple(Program.facturaSeleccionada, "contado", Program.currentYear);//,"");
MaterialesDB.agregar(Program.MaterialesSeleccionados, "contado"+Program.currentYear);
muestraFactura2 vf1 = FacturasDB.asignaReporteFacturaVenta();
InterfaceFunciones Interface1 = this.Owner as InterfaceFunciones;
Interface1.reiniciaBlocker("Parar");
vistaPrevia vP = new vistaPrevia(vf1);
vP.Text = "Factura Nº " + txtSerie.Text + txtNfac.Text;
vP.ShowDialog(Owner);
borra.PerformClick();
break;
}
case "AceptadoConErrores":
{
txtConsulta.BackColor = Color.Yellow;
txtConsulta.Text = "AceptadoConErrores";
if(alta=="ALTA")
{
alta = "SUBSANACION";
}
else
{
alta = "RECHAZO_SUBSANACION";
}
Match match2 = Regex.Match(info, "<CodigoErrorRegistro>(.*?)</CodigoErrorRegistro>", RegexOptions.IgnoreCase | RegexOptions.Singleline);
string codigoRegistro = match2.Value.Replace("<CodigoErrorRegistro>", "");
codigoRegistro = codigoRegistro.Replace("</CodigoErrorRegistro>", "");
Match match3 = Regex.Match(info, "<DescripcionErrorRegistro>(.*?).", RegexOptions.IgnoreCase | RegexOptions.Singleline);
string DescripcionRegistro = match2.Value.Replace("<DescripcionErrorRegistro>", "");
txt_motivo.Text = codigoRegistro + " -> " + DescripcionRegistro;
break;
}
case "Incorrecto":
{
txtConsulta.BackColor = Color.Red;
txtConsulta.Text = "Errores";
alta="RECHAZO";
Match match2 = Regex.Match(info, "<CodigoErrorRegistro>(.*?)</CodigoErrorRegistro>", RegexOptions.IgnoreCase | RegexOptions.Singleline);
string codigoRegistro = match2.Value.Replace("<CodigoErrorRegistro>", "");
codigoRegistro = codigoRegistro.Replace("</CodigoErrorRegistro>", "");
Match match3 = Regex.Match(info, "<DescripcionErrorRegistro>(.*?)</DescripcionErrorRegistro>", RegexOptions.IgnoreCase | RegexOptions.Singleline);
string DescripcionRegistro = match3.Value.Replace("<DescripcionErrorRegistro>", "");
DescripcionRegistro = DescripcionRegistro.Replace("</DescripcionErrorRegistro>", "");
txt_motivo.Text = codigoRegistro + " -> " + DescripcionRegistro;
break;
}
default://Incorrecta
{
txtConsulta.BackColor = Color.Red;
txtConsulta.Text = "Errores";
Match match2 = Regex.Match(info, "<CodigoErrorRegistro>(.*?)</CodigoErrorRegistro>", RegexOptions.IgnoreCase | RegexOptions.Singleline);
string codigoRegistro = match2.Value.Replace("<CodigoErrorRegistro>", "");
codigoRegistro = codigoRegistro.Replace("</CodigoErrorRegistro>", "");
Match match3 = Regex.Match(info, "<DescripcionErrorRegistro>(.*?)</DescripcionErrorRegistro>", RegexOptions.IgnoreCase | RegexOptions.Singleline);
string DescripcionRegistro = match3.Value.Replace("<DescripcionErrorRegistro>", "");
DescripcionRegistro = DescripcionRegistro.Replace("</DescripcionErrorRegistro>", "");
txt_motivo.Text = codigoRegistro + " -> " + DescripcionRegistro;
break;
}
}
}
No sera la forma mas limpia de hacerlo, pero a mi me funciona. |
|
#2936
|
||||
|
||||
|
Cita:
Hola, puedes postear el trozo del xml completo, para ver si esta mal formado? |
|
#2937
|
|||
|
|||
|
Cita:
<IDVersion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">1.0</IDVersion> <IDFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"> <IDEmisorFactura>33461360V</IDEmisorFactura> <NumSerieFactura>2024</NumSerieFactura> <FechaExpedicionFactura>15-10-2024</FechaExpedicionFactura> </IDFactura> <NombreRazonEmisor xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"/> con esto es suficiente o subo el xml completo |
|
#2938
|
||||
|
||||
|
Cita:
Cita:
Cita:
|
|
#2939
|
|||
|
|||
|
Como estais formando NumSerieFactura
Buenas, me surge una duda
vosotros como estáis formando el campo NumSerieFactura? las indicaciones son : Numero de Serie + Numero Factura Me gustaría que saber como lo formais. Yo, resumiendo, Tengo una tabla distinta de mi tabla de facturas llamada RegistrosFacturacion donde almaceno los registros de alta y anulacion, dicha tabla tiene un campo autoincrementado Id. NumSerieFactura lo formo así : Id/SerieNumero Ejemplo: Serie factura = 24 Numero Factura = 511 Id registro facturacion = 333 NumSerieFactura = 333/24511 Os agradezco vuestras opiniones |
|
#2940
|
|||
|
|||
|
Cita:
A mí ya me paso. |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Hijo de Informáticos | gluglu | Humor | 3 | 13-03-2007 11:05:35 |
| Adictos informaticos ... | Trigger | Humor | 2 | 11-10-2004 12:18:32 |
| Nosotros los Informáticos | Trigger | Humor | 1 | 10-10-2004 14:58:09 |
| Patrón de los Informáticos. | obiwuan | Varios | 20 | 10-09-2003 14:44:54 |
| Chistes Informaticos | jhonny | Humor | 2 | 11-08-2003 21:59:09 |
|