/// <summary> /// Devuelve el lote de Operaciones de Seguros como un archivo xml para soap según las /// especificaciones de la aeat. /// </summary> /// <param name="xmlPath">Ruta donde se guardará el archivo generado.</param> /// <returns>Xaml generado.</returns> public XmlDocument GetXml(string xmlPath) { return(SIIParser.GetXml(GetEnvelope(), xmlPath)); }
public void GenerarXMLRecibidasEnvel(string _NombreFichero) { RecibidasEnvel funcion = new RecibidasEnvel(); string _NomFicheroWrk = _NombreFichero; try { Envelope _EnvelWrk = new Envelope(); SuministroLRFacturasRecibidas _SumLRFactReci = new SuministroLRFacturasRecibidas(); RegistroLRFacturasRecibidas _RegLRFactReci = new RegistroLRFacturasRecibidas(); Cabecera _Cabecera = new Cabecera(); bool _NuevaFact = false; int lineasFisc = 0; bool _NuevoDetalle = true; using (StreamReader _Lector = new StreamReader(_NomFicheroWrk)) { while (_Lector.Peek() > -1) { string _RegFichero = _Lector.ReadLine(); if (!String.IsNullOrEmpty(_RegFichero)) { // Con creamos un Array con los distintos campos que contiene el registro separados por ";" string[] _CamposReg = _RegFichero.Split(';'); string _TipoReg = _CamposReg[0]; switch (_TipoReg) { case "CABE": _Cabecera = funcion.TratarRegCabecera(_CamposReg); _SumLRFactReci.Cabecera = _Cabecera; break; case "FACT": if (_NuevaFact) // Si se trata de una nueva factura, añadiremos la 'antigua' al fichero { _SumLRFactReci.RegistroLRFacturasRecibidas.Add(_RegLRFactReci); _NuevaFact = false; } _RegLRFactReci = new RegistroLRFacturasRecibidas(); _RegLRFactReci = funcion.TratarFactRecibida(_CamposReg); lineasFisc = 0; _NuevoDetalle = true; break; case "RECT": _RegLRFactReci = funcion.AgregarFactRectifica(_CamposReg, _RegLRFactReci); break; case "FISC": _NuevaFact = true; lineasFisc++; if (lineasFisc > 1) { _NuevoDetalle = false; } _RegLRFactReci = funcion.AgregarDesgloseIVA(_CamposReg, _RegLRFactReci, _NuevoDetalle); break; case "FINI": // Tenemos que incluir la última factura que hemos tratado. _SumLRFactReci.RegistroLRFacturasRecibidas.Add(_RegLRFactReci); // Incluimos todas las facturas tratadas en el Envelope. _EnvelWrk.Body.SuministroLRFacturasRecibidas = _SumLRFactReci; //Obtenemos la fecha actual sin la hora y procedemos a crear la ruta/nombre del fichero resultante DateTime _FechaActual = DateTime.Today; string nombrefichero = "SII_Recibidas_" + _Cabecera.Titular.NIF + "_" + _FechaActual.ToString("yyyyMMdd") + ".XML"; string XmlResult = "C:/Temp/" + nombrefichero; // Con la siguiente instruccion se genera el XML en la direccion anteriormente indicada. XmlDocument tmpXML = SIIParser.GetXml(_EnvelWrk, XmlResult); string _msg = "Fichero XML generado: " + XmlResult; MessageBox.Show(_msg, "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); break; default: string _msgAviso = "Tipo Registro incorrecto: " + _TipoReg; MessageBox.Show(_msgAviso, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); break; } } } } } catch (Exception ex) { string _msgError = "Error: " + ex.Message; MessageBox.Show(_msgError, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void GenerarXMLIntracomEnvel(string _NombreFichero) { IntracomEnvel funcion = new IntracomEnvel(); string _NomFicheroWrk = _NombreFichero; try { Envelope _EnvelWrk = new Envelope(); SuministroLRDetOperacionIntracomunitaria _SumLROperIntracom = new SuministroLRDetOperacionIntracomunitaria(); RegistroLRDetOperacionIntracomunitaria _RegLROperIntracom = new RegistroLRDetOperacionIntracomunitaria(); Cabecera _Cabecera = new Cabecera(); using (StreamReader _Lector = new StreamReader(_NomFicheroWrk)) { while (_Lector.Peek() > -1) { string _RegFichero = _Lector.ReadLine(); if (!String.IsNullOrEmpty(_RegFichero)) { // Con creamos un Array con los distintos campos que contiene el registro separados por ";" string[] _CamposReg = _RegFichero.Split(';'); string _TipoReg = _CamposReg[0]; switch (_TipoReg) { case "CABE": _Cabecera = funcion.TratarRegCabecera(_CamposReg); _SumLROperIntracom.Cabecera = _Cabecera; break; case "FACT": _RegLROperIntracom = new RegistroLRDetOperacionIntracomunitaria(); _RegLROperIntracom = funcion.TratarOperIntracom(_CamposReg); _SumLROperIntracom.RegistroLRDetOperacionIntracomunitaria.Add(_RegLROperIntracom); break; case "FINI": // Incluimos todas las facturas tratadas en el Envelope. _EnvelWrk.Body.SuministroLRDetOperacionIntracomunitaria = _SumLROperIntracom; //Obtenemos la fecha actual sin la hora y procedemos a crear la ruta/nombre del fichero resultante DateTime _FechaActual = DateTime.Today; string nombrefichero = "SII_Intracom_" + _Cabecera.Titular.NIF + "_" + _FechaActual.ToString("yyyyMMdd") + ".XML"; string XmlResult = "C:/Temp/" + nombrefichero; // Con la siguiente instruccion se genera el XML en la direccion anteriormente indicada. XmlDocument tmpXML = SIIParser.GetXml(_EnvelWrk, XmlResult); string _msg = "Fichero XML generado: " + XmlResult; MessageBox.Show(_msg, "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); break; default: string _msgAviso = "Tipo Registro incorrecto: " + _TipoReg; MessageBox.Show(_msgAviso, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); break; } } } } } catch (Exception ex) { string _msgError = "Error: " + ex.Message; MessageBox.Show(_msgError, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Devuelve el lote de facturas como un archivo xml para soap según las /// especificaciones de la aeat. /// </summary> /// <param name="xmlPath">Ruta donde se guardará el archivo generado.</param> /// <returns>Xaml generado.</returns> public XmlDocument GetXmlExtern(string xmlPath) { return(SIIParser.GetXml(GetEnvelopeExtern(), xmlPath, SIINamespaces.con)); }
/// <summary> /// Devuelve el lote de facturas como un archivo xml para soap según las /// especificaciones de la aeat. /// </summary> /// <param name="xmlPath">Ruta donde se guardará el archivo generado.</param> /// <returns>Xaml generado.</returns> public XmlDocument GetXml(string xmlPath) { return(SIIParser.GetXml(GetEnvelope(), xmlPath, SIINamespaces.con, SIINamespaces.sum)); }