private void EnviaLoteEnCurso() { // Realizamos el envío del lote de facturas a borrar a la AEAT Wsd.DeleteFacturasRecibidas(_LoteBajaFactRecibidas); // Muestro el xml de respuesta recibido de la AEAT en el web browser FormXmlViewer frmXmlViewer = new FormXmlViewer { Path = Settings.Current.InboxPath + _LoteBajaFactRecibidas.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.RespuestaLRBajaFacturasRecibidas; if (respuesta == null) { DialogResult resultMsg; string _msgError = "Se ha recibido una respuesta inesperada. Pulse 'Aceptar', si quiere revisarla"; resultMsg = MessageBox.Show(_msgError, "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Error); if (resultMsg == DialogResult.OK) { frmXmlViewer.ShowDialog(); } 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; } } } MessageBox.Show($"Estado del envío realizado a la AEAT: {respuesta.EstadoEnvio}.\nCódigo CVS: {respuesta.CSV}"); }
// Ejemplo de eliminar una factura emitida comunicada anteriormente al SII public void EliminarFacturaRecibida() { // Crea un lote de facturas recibidas envíadas al SII con anterioridad a eliminar APInvoicesDeleteBatch loteFacturasRecibidasEliminar = CrearLoteFacturaRecibidasEliminar(); // Envíamos lote con las peticiones de borrado Wsd.DeleteFacturasRecibidas(loteFacturasRecibidasEliminar); // Mostramos el xml de respuesta de la AEAT en el web browser webBrw.Navigate(Settings.Current.InboxPath + loteFacturasRecibidasEliminar.GetReceivedFileName()); }