/// <summary> /// Consultar facturas emitidas. /// </summary> public void ConsultarFacturasEmitidas() { // Creo la consulta de facturas emitidas ARInvoicesQuery consultaFacturasEmitidas = CrearConsultaFacturasEmitidas(); // Petición de factura emitidas envíada a la AEAT mediante el SII. Wsd.GetFacturasEmitidas(consultaFacturasEmitidas); // Mostramos el xml de respuesta de la AEAT en el web browser. webBrw.Navigate(Settings.Current.InboxPath + consultaFacturasEmitidas.GetReceivedFileName()); }
/// <summary> /// Ejemplo de envío de un lote de facturas emitidas /// </summary> public void EnviarConsultaFactEmit() { // Creamos un lote de factura recibidas ARInvoicesQuery LoteDeFacturasEmitidas = CreaLoteDeEmitidasEnviadas(); // Realizamos el envío del lote a la AEAT Wsd.GetFacturasEmitidas(LoteDeFacturasEmitidas); // Muestro el xml de respuesta recibido de la AEAT en el web browser webBrw.Navigate(Settings.Current.InboxPath + LoteDeFacturasEmitidas.GetReceivedFileName()); }
/// <summary> /// Devuelve las facturas emitidas envíadas por el titular /// del lote en el periodo indicado. /// </summary> /// <param name="period">Periodo en formato yyyy.MM.</param> /// <param name="titular">Titular de las facturas a recuperar.</param> /// <returns>Lista de facturas emitidas en el periodo.</returns> private static RespuestaConsultaLRFacturasEmitidas GetByPeriodFE(string period, Party titular) { ARInvoicesQuery batchInvoiceQuery = new ARInvoicesQuery() { Titular = titular }; ARInvoice templateInvoiceQuery = new ARInvoice(); string syear = period.Substring(0, 4); string smonth = period.Substring(5, 2); int year = Convert.ToInt32(syear); int month = Convert.ToInt32(smonth); DateTime date = new DateTime(year, month, 1); // Necesitamos indicar una fecha de factura, para que se pueda calcular el ejercicio y periodo // que son necesarios y obligatorios para realizar esta peticiones. templateInvoiceQuery.IssueDate = date; batchInvoiceQuery.ARInvoice = templateInvoiceQuery; string response = Wsd.GetFacturasEmitidas(batchInvoiceQuery); try { // Obtengo la respuesta de la consulta de facturas recibidas del archivo de respuesta de la AEAT. Envelope envelope = Envelope.FromXml(response); if (envelope.Body.RespuestaConsultaLRFacturasEmitidas != null) { return(envelope.Body.RespuestaConsultaLRFacturasEmitidas); } SoapFault msgError = envelope.Body.RespuestaError; if (msgError != null) { throw new Exception($"{msgError.FaultDescription}"); } } catch (Exception ex) { throw ex; } return(null); }
private void btBuscaFacts_Click(object sender, EventArgs e) { BindModelTitular(); BindModelBusqueda(); // Realizamos la consulta de las facturas en la AEAT Wsd.GetFacturasEmitidas(_PetFactEmitEnviadas); // Muestro el xml de respuesta recibido de la AEAT en el web browser FormXmlViewer frmXmlViewer = new FormXmlViewer { Path = Settings.Current.InboxPath + _PetFactEmitEnviadas.GetReceivedFileName() }; //frmXmlViewer.ShowDialog(); try { // Obtengo la respuesta de la consulta de facturas recibidas del archivo de respuesta de la AEAT. RespuestaConsultaLRFacturasEmitidas respuesta = new Envelope(frmXmlViewer.Path).Body.RespuestaConsultaLRFacturasEmitidas; if (respuesta == null) { DialogResult resultMsg; string _msg = "Se ha recibido una respuesta inesperada. Pulse 'Aceptar', si quiere revisarla"; resultMsg = MessageBox.Show(_msg, "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Error); if (resultMsg == DialogResult.OK) { frmXmlViewer.ShowDialog(); } return; } // Tenemos que recorrernos la respuesta y rellenar el datagrid con los datos de cada factura. grdInvoices.Rows.Clear(); if (respuesta.ResultadoConsulta == "ConDatos") { foreach (var invoice in respuesta.RegistroRCLRFacturasEmitidas) { System.Drawing.Icon _marcaFact = MSeniorSII.Properties.Resources.Tag_Ok; if (invoice.EstadoFactura.EstadoRegistro == "Anulada") { _marcaFact = MSeniorSII.Properties.Resources.Tag_Delete; } decimal TotalTmp = Convert.ToDecimal(invoice.DatosFacturaEmitida.ImporteTotal, DefaultNumberFormatInfo); grdInvoices.Rows.Add(invoice.IDFactura.NumSerieFacturaEmisor, invoice.IDFactura.FechaExpedicionFacturaEmisor, invoice.DatosFacturaEmitida.Contraparte.NIF, invoice.DatosFacturaEmitida.Contraparte.NombreRazon, TotalTmp.ToString("#,##0.00"), invoice, _marcaFact, invoice.DatosPresentacion.TimestampPresentacion, invoice.EstadoFactura.TimestampUltimaModificacion); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } txFechaBusqueda.Focus(); }
private void LanzarConsulta() { // Realizamos la consulta de las facturas en la AEAT Wsd.GetFacturasEmitidas(_PetFactEmitEnviadas); string responsePath = Settings.Current.InboxPath + _PetFactEmitEnviadas.GetReceivedFileName(); Envelope envelopeRespuesta = new Envelope(responsePath); try { // Obtengo la respuesta de la consulta de facturas recibidas del archivo de respuesta de la AEAT. RespuestaConsultaLRFacturasEmitidas respuesta = envelopeRespuesta.Body.RespuestaConsultaLRFacturasEmitidas; if (respuesta == null && envelopeRespuesta.Body.RespuestaError != null) { MessageBox.Show(envelopeRespuesta.Body.RespuestaError.FaultDescription, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } grdInvoices.Rows.Clear(); if (respuesta.ResultadoConsulta == "SinDatos") { MessageBox.Show("No se han encontrado registros", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } // Tenemos que recorrernos la respuesta y rellenar el datagrid con los datos de cada factura. if (respuesta.ResultadoConsulta == "ConDatos") { foreach (var invoice in respuesta.RegistroRCLRFacturasEmitidas) { System.Drawing.Icon _marcaFact = MSeniorSII.Properties.Resources.Tag_Ok; if (invoice.EstadoFactura.EstadoRegistro == "Anulada") { _marcaFact = MSeniorSII.Properties.Resources.Tag_Delete; } decimal TotalTmp = Convert.ToDecimal(invoice.DatosFacturaEmitida.ImporteTotal, DefaultNumberFormatInfo); string NifTmp = ""; string NombreRazonTmp = ""; if (invoice.DatosFacturaEmitida.Contraparte != null) { NifTmp = invoice.DatosFacturaEmitida.Contraparte.NIF; NombreRazonTmp = invoice.DatosFacturaEmitida.Contraparte.NombreRazon; } grdInvoices.Rows.Add(invoice.IDFactura.NumSerieFacturaEmisor, invoice.IDFactura.FechaExpedicionFacturaEmisor, NifTmp, NombreRazonTmp, TotalTmp.ToString("#,##0.00"), invoice, _marcaFact, invoice.DatosPresentacion.TimestampPresentacion, invoice.EstadoFactura.TimestampUltimaModificacion); } } } catch (Exception ex) { string _msgError = "Error: " + ex.Message; MessageBox.Show(_msgError, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } txFechaBusqueda.Focus(); }