private void EnviaLoteEnCurso() { // Realizamos el envío del lote a la AEAT Wsd.SendCobrosFacturasEmitidas(_LoteDeCobrosEmitidas); // Muestro el xml de respuesta recibido de la AEAT en el web browser FormXmlViewer frmXmlViewer = new FormXmlViewer { Path = Settings.Current.InboxPath + _LoteDeCobrosEmitidas.GetReceivedFileName() }; //frmXmlViewer.ShowDialog(); // Obtengo la respuesta de facturas recibidas del archivo de // respuesta de la AEAT. RespuestaLRF respuesta = new Envelope(frmXmlViewer.Path).Body.RespuestaLRCobrosEmitidas; 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 ok foreach (RespuestaLinea respuestaFra in linqQryFra) { if (respuestaFra.EstadoRegistro == "Correcto") { row.Cells[5].Value = MSeniorSII.Properties.Resources.circle_green; } else { row.Cells[5].Value = MSeniorSII.Properties.Resources.circle_red; row.Cells[6].Value = respuestaFra.DescripcionErrorRegistro; } } } if (respuesta.EstadoEnvio == "Correcto") { string _msg = ($"Estado del envío realizado a la AEAT: {respuesta.EstadoEnvio}.\nCódigo CSV: {respuesta.CSV}"); MessageBox.Show(_msg, "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void EnviaLoteEnCurso() { // Realizamos el envío del lote a la AEAT Wsd.SendCobrosFacturasEmitidas(_LoteDeCobrosEmitidas); // Muestro el xml de respuesta recibido de la AEAT en el web browser FormXmlViewer frmXmlViewer = new FormXmlViewer { Path = Settings.Current.InboxPath + _LoteDeCobrosEmitidas.GetReceivedFileName() }; //frmXmlViewer.ShowDialog(); // Obtengo la respuesta de facturas recibidas del archivo de // respuesta de la AEAT. RespuestaLRF respuesta = new Envelope(frmXmlViewer.Path).Body.RespuestaLRCobrosEmitidas; 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 ok foreach (RespuestaLinea respuestaFra in linqQryFra) { if (respuestaFra.EstadoRegistro == "Correcto") { row.Cells[5].Value = MSeniorSII.Properties.Resources.circle_green; } else { row.Cells[5].Value = MSeniorSII.Properties.Resources.circle_red; } } } MessageBox.Show($"Estado del envío realizado a la AEAT: {respuesta.EstadoEnvio}.\nCódigo CVS: {respuesta.CSV}"); }
/// <summary> /// Rutina de ejemplo de envío de lote de cobros al SII de la AEAT. /// </summary> public void EnviarLoteCobrosFacturasEmitidas() { // Creamos un lote de cobros de facturas emitidas en regimen especial de caja ARInvoicesPaymentsBatch LoteCobrosFacturasEmitidas = CrearLoteCobrosFacturasEmitidas(); // Realizamos el envío del lote a la AEAT Wsd.SendCobrosFacturasEmitidas(LoteCobrosFacturasEmitidas); // Muestro el xml de respuesta recibido de la AEAT en el web browser webBrw.Navigate(Settings.Current.InboxPath + LoteCobrosFacturasEmitidas.GetReceivedFileName()); }