private void mnViewXML_Click(object sender, EventArgs e) { // Generaremos el lote para poder dar de baja las facturas que se hayan seleccionado en el DataGrid. _LoteBajaFactRecibidas = new APInvoicesDeleteBatch(); foreach (DataGridViewRow row in grdInvoices.SelectedRows) { _LoteBajaFactRecibidas.Titular = _Titular; APInvoice _FactRecibidaBaja = new APInvoice(); RegistroRCLRFacturasRecibidas _regWrk = new RegistroRCLRFacturasRecibidas(); _regWrk = (RegistroRCLRFacturasRecibidas)row.Cells[5].Value; // Sólo daremos de baja aquellas facturas cuyo estado sean correctas, que tras realizar varias pruebas, // las anuladas también las devuelve y al seleccionarlas se puede producir un error. if (_regWrk.EstadoFactura.EstadoRegistro == "Correcta") { _FactRecibidaBaja.SellerParty = new Party { PartyName = _regWrk.FacturaRecibida.Contraparte.NombreRazon, TaxIdentificationNumber = _regWrk.FacturaRecibida.Contraparte.NIF }; if (_regWrk.FacturaRecibida.Contraparte.IDOtro != null) { _FactRecibidaBaja.CountryCode = _regWrk.FacturaRecibida.Contraparte.IDOtro.CodigoPais; } _FactRecibidaBaja.IssueDate = Convert.ToDateTime(_regWrk.IDFactura.FechaExpedicionFacturaEmisor); _FactRecibidaBaja.InvoiceNumber = _regWrk.IDFactura.NumSerieFacturaEmisor; _LoteBajaFactRecibidas.APInvoices.Add(_FactRecibidaBaja); } } try { string tmpath = Path.GetTempFileName(); // Genera el archivo xml y lo guarda en la ruta facilitada comno parámetro _LoteBajaFactRecibidas.GetXml(tmpath); FormXmlViewer frmXmlViewer = new FormXmlViewer { Path = tmpath }; frmXmlViewer.ShowDialog(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
// 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()); }
/// <summary> /// Inicia entorno. /// </summary> private void Inizialize() { _PetFactRecEnviadas = new APInvoicesQuery(); _LoteBajaFactRecibidas = new APInvoicesDeleteBatch(); _Titular = new Party(); _PetFactRecEnviadas.Titular = _Titular; ResetFactura(); // Inicializamos el campo para el país, en el caso de que sea un NIF extranjero. lbCountry.Text = ""; //BindModelBusqueda(); }
// Crea un lote de factura recibidas a eliminar private static APInvoicesDeleteBatch CrearLoteFacturaRecibidasEliminar() { // Titular del lote Party titular = new Party() { TaxIdentificationNumber = "B12959755", PartyName = "IRENE SOLUTIONS SL" }; APInvoicesDeleteBatch loteFacturasEmitidasEliminar = new APInvoicesDeleteBatch { Titular = titular }; // Creamos la primera factura enviada a eliminar APInvoice primeraFacturaEliminar = new APInvoice { IssueDate = new DateTime(2017, 1, 15), PostingDate = new DateTime(2017, 1, 15), // Fecha de contabilización SellerParty = new Party() // Acreedor (Emisor factura) { TaxIdentificationNumber = "B12756474", PartyName = "MAC ORGANIZACION SL" }, BuyerParty = titular, // Comprador InvoiceNumber = "00001" // Número de factura }; // Añadimos la factura a eliminar al lote loteFacturasEmitidasEliminar.APInvoices.Add(primeraFacturaEliminar); return(loteFacturasEmitidasEliminar); }