private void LanzarConsulta() { // Realizamos la consulta de las facturas en la AEAT Wsd.GetFacturasRecibidas(_PetFactRecEnviadas); string responsePath = Settings.Current.InboxPath + _PetFactRecEnviadas.GetReceivedFileName(); Envelope envelopeRespuesta = new Envelope(responsePath); try { // Obtengo la respuesta de la consulta de facturas recibidas del archivo de respuesta de la AEAT. RespuestaConsultaLRFacturasRecibidas respuesta = envelopeRespuesta.Body.RespuestaConsultaLRFacturasRecibidas; if (respuesta == null && envelopeRespuesta.Body.RespuestaError != null) { MessageBox.Show(envelopeRespuesta.Body.RespuestaError.FaultDescription, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // Tenemos que recorrernos la respuesta y rellenar el datagrid con los datos de cada factura. grdInvoices.Rows.Clear(); if (respuesta.ResultadoConsulta == "SinDatos") { MessageBox.Show("No se han encontrado registros", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (respuesta.ResultadoConsulta == "ConDatos") { foreach (var invoice in respuesta.RegistroRCLRFacturasRecibidas) { 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.FacturaRecibida.ImporteTotal, DefaultNumberFormatInfo); grdInvoices.Rows.Add(invoice.IDFactura.NumSerieFacturaEmisor, invoice.IDFactura.FechaExpedicionFacturaEmisor, invoice.FacturaRecibida.Contraparte.NIF, invoice.FacturaRecibida.Contraparte.NombreRazon, 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(); }
public void ConsultarFacturasRecibidas() { // Creo un objeto consulta de facturas recibidas APInvoicesQuery consultaFacturasRecibidas = CrearConsultaFacturasRecibidas(); // Envío la consulta Wsd.GetFacturasRecibidas(consultaFacturasRecibidas); // Muestro el archivo xml de respuesta webBrw.Navigate(Settings.Current.InboxPath + consultaFacturasRecibidas.GetReceivedFileName()); }
/// <summary> /// Devuelve las facturas recibidas 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 recibidas en el periodo.</returns> private static RespuestaConsultaLRFacturasRecibidas GetByPeriodFR(string period, Party titular) { APInvoicesQuery batchInvoiceQuery = new APInvoicesQuery() { Titular = titular }; APInvoice templateInvoiceQuery = new APInvoice(); // Necesitamos indicar una fecha de factura, para que se pueda calcular el ejercicio y periodo // que son necesarios y obligatorios para realizar esta peticiones. 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); templateInvoiceQuery.IssueDate = date; batchInvoiceQuery.APInvoice = templateInvoiceQuery; string response = Wsd.GetFacturasRecibidas(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.RespuestaConsultaLRFacturasRecibidas != null) { return(envelope.Body.RespuestaConsultaLRFacturasRecibidas); } 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.GetFacturasRecibidas(_PetFactRecEnviadas); // Muestro el xml de respuesta recibido de la AEAT en el web browser FormXmlViewer frmXmlViewer = new FormXmlViewer { Path = Settings.Current.InboxPath + _PetFactRecEnviadas.GetReceivedFileName() }; //frmXmlViewer.ShowDialog(); try { // Obtengo la respuesta de la consulta de facturas recibidas del archivo de respuesta de la AEAT. RespuestaConsultaLRFacturasRecibidas respuesta = new Envelope(frmXmlViewer.Path).Body.RespuestaConsultaLRFacturasRecibidas; 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.RegistroRCLRFacturasRecibidas) { 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.FacturaRecibida.ImporteTotal, DefaultNumberFormatInfo); grdInvoices.Rows.Add(invoice.IDFactura.NumSerieFacturaEmisor, invoice.IDFactura.FechaExpedicionFacturaEmisor, invoice.FacturaRecibida.Contraparte.NIF, invoice.FacturaRecibida.Contraparte.NombreRazon, TotalTmp.ToString("#,##0.00"), invoice, _marcaFact, invoice.DatosPresentacion.TimestampPresentacion, invoice.EstadoFactura.TimestampUltimaModificacion); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } txFechaBusqueda.Focus(); }