Esempio n. 1
0
        /// <summary>
        /// Construye una nueva instancia de la clase QueryAeatLine.
        /// </summary>
        /// <param name="respuesta"></param>
        public QueryAeatInvoice(dynamic respuesta)
        {
            if (respuesta.DatosPresentacion != null)
            {
                CSV = respuesta.DatosPresentacion.CSV;
            }

            Lines = new List <QueryAeatInvoiceLine>();

            EstadoFactura estado = respuesta.EstadoFactura;

            Estado = estado.EstadoRegistro;
            ExternStatus exStatus = (ExternStatus)Convert.ToInt32(estado.EstadoCuadre);

            EstadoCuadre = $"{exStatus}";

            switch (respuesta.GetType().Name)
            {
            case "RegistroRCLRFacturasEmitidas":
                _RegistroRCLRFacturasEmitidas = (RegistroRCLRFacturasEmitidas)respuesta;
                Libro = "FE";
                GetLinesFE();
                break;

            case "RegistroRCLRFacturasRecibidas":
                _RegistroRCLRFacturasRecibidas = (RegistroRCLRFacturasRecibidas)respuesta;
                Libro = "FR";
                GetLinesFR();
                break;
            }
        }
Esempio n. 2
0
        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 Batch(BatchActionKeys.DR, BatchActionPrefixes.BajaLR, BatchTypes.FacturasRecibidas);

            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, ya 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.BatchItems.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)
            {
                string _msgError = "Error: " + ex.Message;
                MessageBox.Show(_msgError, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }