private void EnviaLoteEnCurso() { // Realizamos el envío del lote de facturas a borrar a la AEAT Wsd.DeleteOperIntracom(_LoteBajaOperIntracom); // Muestro el xml de respuesta recibido de la AEAT en el web browser FormXmlViewer frmXmlViewer = new FormXmlViewer { Path = Settings.Current.InboxPath + _LoteBajaOperIntracom.GetReceivedFileName() }; //frmXmlViewer.ShowDialog(); // Obtengo la respuesta de la baja de facturas emitidas del archivo de respuesta de la AEAT. RespuestaLRF respuesta = new Envelope(frmXmlViewer.Path).Body.RespuestaLRBajaDetOperacionesIntracomunitarias; if (respuesta == null) { SoapFault msgError = new Envelope(frmXmlViewer.Path).Body.RespuestaError; if (msgError != null) { MessageBox.Show(msgError.FaultDescription, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } foreach (DataGridViewRow row in grdInvoices.Rows) // Recorro las facturas enviadas { string numFra = row.Cells[0].Value.ToString(); // Busco en las líneas de la respuesta el número de factura var linqQryFra = from respuestaFra in respuesta.RespuestaLinea where respuestaFra.IDFactura.NumSerieFacturaEmisor == numFra select respuestaFra; // Si el estado del registro es correcto lo marco como factura eliminada foreach (RespuestaLinea respuestaFra in linqQryFra) { if (respuestaFra.EstadoRegistro == "Correcto") { row.Cells[6].Value = MSeniorSII.Properties.Resources.Tag_Delete; } else { row.Cells[6].Value = MSeniorSII.Properties.Resources.Tag_Ok; } } } string _msg = ""; if (respuesta.EstadoEnvio == "Incorrecto") { _msg = "Envío Rechazado. Para saber el motivo revise el fichero: " + frmXmlViewer.Path; } else { _msg = ($"Estado del envío realizado a la AEAT: {respuesta.EstadoEnvio}.\nCódigo CVS: {respuesta.CSV}"); } MessageBox.Show(_msg, "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); }