예제 #1
0
        /// <summary>
        /// Consultar facturas emitidas.
        /// </summary>
        public void ConsultarFacturasEmitidas()
        {
            // Creo la consulta de facturas emitidas
            ARInvoicesQuery consultaFacturasEmitidas = CrearConsultaFacturasEmitidas();

            // Petición de factura emitidas envíada a la AEAT mediante el SII.
            Wsd.GetFacturasEmitidas(consultaFacturasEmitidas);


            // Mostramos el xml de respuesta de la AEAT en el web browser.
            webBrw.Navigate(Settings.Current.InboxPath +
                            consultaFacturasEmitidas.GetReceivedFileName());
        }
예제 #2
0
        /// <summary>
        /// Ejemplo de envío de un lote de facturas emitidas
        /// </summary>
        public void EnviarConsultaFactEmit()
        {
            // Creamos un lote de factura recibidas
            ARInvoicesQuery LoteDeFacturasEmitidas =
                CreaLoteDeEmitidasEnviadas();

            // Realizamos el envío del lote a la AEAT
            Wsd.GetFacturasEmitidas(LoteDeFacturasEmitidas);

            // Muestro el xml de respuesta recibido de la AEAT en el web browser
            webBrw.Navigate(Settings.Current.InboxPath +
                            LoteDeFacturasEmitidas.GetReceivedFileName());
        }
예제 #3
0
        /// <summary>
        /// Devuelve las facturas emitidas envíadas por el titular
        /// del lote en el periodo indicado.
        /// </summary>
        /// <param name="period">Periodo en formato yyyy.MM.</param>
        /// <param name="titular">Titular de las facturas a recuperar.</param>
        /// <returns>Lista de facturas emitidas en el periodo.</returns>
        private static RespuestaConsultaLRFacturasEmitidas GetByPeriodFE(string period, Party titular)
        {
            ARInvoicesQuery batchInvoiceQuery = new ARInvoicesQuery()
            {
                Titular = titular
            };
            ARInvoice templateInvoiceQuery = new ARInvoice();

            string syear  = period.Substring(0, 4);
            string smonth = period.Substring(5, 2);

            int year  = Convert.ToInt32(syear);
            int month = Convert.ToInt32(smonth);

            DateTime date = new DateTime(year, month, 1);

            // Necesitamos indicar una fecha de factura, para que se pueda calcular el ejercicio y periodo
            // que son necesarios y obligatorios para realizar esta peticiones.
            templateInvoiceQuery.IssueDate = date;
            batchInvoiceQuery.ARInvoice    = templateInvoiceQuery;

            string response = Wsd.GetFacturasEmitidas(batchInvoiceQuery);

            try
            {
                // Obtengo la respuesta de la consulta de facturas recibidas del archivo de respuesta de la AEAT.
                Envelope envelope = Envelope.FromXml(response);

                if (envelope.Body.RespuestaConsultaLRFacturasEmitidas != null)
                {
                    return(envelope.Body.RespuestaConsultaLRFacturasEmitidas);
                }

                SoapFault msgError = envelope.Body.RespuestaError;

                if (msgError != null)
                {
                    throw new Exception($"{msgError.FaultDescription}");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(null);
        }
예제 #4
0
        private void btBuscaFacts_Click(object sender, EventArgs e)
        {
            BindModelTitular();
            BindModelBusqueda();

            // Realizamos la consulta de las facturas en la AEAT
            Wsd.GetFacturasEmitidas(_PetFactEmitEnviadas);

            // Muestro el xml de respuesta recibido de la AEAT en el web browser
            FormXmlViewer frmXmlViewer = new FormXmlViewer
            {
                Path = Settings.Current.InboxPath +
                       _PetFactEmitEnviadas.GetReceivedFileName()
            };

            //frmXmlViewer.ShowDialog();

            try
            {
                // Obtengo la respuesta de la consulta de facturas recibidas del archivo de respuesta de la AEAT.
                RespuestaConsultaLRFacturasEmitidas respuesta = new Envelope(frmXmlViewer.Path).Body.RespuestaConsultaLRFacturasEmitidas;

                if (respuesta == null)
                {
                    DialogResult resultMsg;
                    string       _msg = "Se ha recibido una respuesta inesperada. Pulse 'Aceptar', si quiere revisarla";
                    resultMsg = MessageBox.Show(_msg, "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);

                    if (resultMsg == DialogResult.OK)
                    {
                        frmXmlViewer.ShowDialog();
                    }

                    return;
                }

                // Tenemos que recorrernos la respuesta y rellenar el datagrid con los datos de cada factura.
                grdInvoices.Rows.Clear();

                if (respuesta.ResultadoConsulta == "ConDatos")
                {
                    foreach (var invoice in respuesta.RegistroRCLRFacturasEmitidas)
                    {
                        System.Drawing.Icon _marcaFact = MSeniorSII.Properties.Resources.Tag_Ok;

                        if (invoice.EstadoFactura.EstadoRegistro == "Anulada")
                        {
                            _marcaFact = MSeniorSII.Properties.Resources.Tag_Delete;
                        }

                        decimal TotalTmp = Convert.ToDecimal(invoice.DatosFacturaEmitida.ImporteTotal, DefaultNumberFormatInfo);

                        grdInvoices.Rows.Add(invoice.IDFactura.NumSerieFacturaEmisor, invoice.IDFactura.FechaExpedicionFacturaEmisor,
                                             invoice.DatosFacturaEmitida.Contraparte.NIF, invoice.DatosFacturaEmitida.Contraparte.NombreRazon,
                                             TotalTmp.ToString("#,##0.00"), invoice, _marcaFact, invoice.DatosPresentacion.TimestampPresentacion, invoice.EstadoFactura.TimestampUltimaModificacion);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            txFechaBusqueda.Focus();
        }
예제 #5
0
        private void LanzarConsulta()
        {
            // Realizamos la consulta de las facturas en la AEAT
            Wsd.GetFacturasEmitidas(_PetFactEmitEnviadas);

            string responsePath = Settings.Current.InboxPath + _PetFactEmitEnviadas.GetReceivedFileName();

            Envelope envelopeRespuesta = new Envelope(responsePath);

            try
            {
                // Obtengo la respuesta de la consulta de facturas recibidas del archivo de respuesta de la AEAT.
                RespuestaConsultaLRFacturasEmitidas respuesta = envelopeRespuesta.Body.RespuestaConsultaLRFacturasEmitidas;

                if (respuesta == null && envelopeRespuesta.Body.RespuestaError != null)
                {
                    MessageBox.Show(envelopeRespuesta.Body.RespuestaError.FaultDescription, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                grdInvoices.Rows.Clear();

                if (respuesta.ResultadoConsulta == "SinDatos")
                {
                    MessageBox.Show("No se han encontrado registros", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                // Tenemos que recorrernos la respuesta y rellenar el datagrid con los datos de cada factura.
                if (respuesta.ResultadoConsulta == "ConDatos")
                {
                    foreach (var invoice in respuesta.RegistroRCLRFacturasEmitidas)
                    {
                        System.Drawing.Icon _marcaFact = MSeniorSII.Properties.Resources.Tag_Ok;

                        if (invoice.EstadoFactura.EstadoRegistro == "Anulada")
                        {
                            _marcaFact = MSeniorSII.Properties.Resources.Tag_Delete;
                        }

                        decimal TotalTmp = Convert.ToDecimal(invoice.DatosFacturaEmitida.ImporteTotal, DefaultNumberFormatInfo);

                        string NifTmp         = "";
                        string NombreRazonTmp = "";

                        if (invoice.DatosFacturaEmitida.Contraparte != null)
                        {
                            NifTmp         = invoice.DatosFacturaEmitida.Contraparte.NIF;
                            NombreRazonTmp = invoice.DatosFacturaEmitida.Contraparte.NombreRazon;
                        }

                        grdInvoices.Rows.Add(invoice.IDFactura.NumSerieFacturaEmisor, invoice.IDFactura.FechaExpedicionFacturaEmisor,
                                             NifTmp, NombreRazonTmp,
                                             TotalTmp.ToString("#,##0.00"), invoice, _marcaFact, invoice.DatosPresentacion.TimestampPresentacion, invoice.EstadoFactura.TimestampUltimaModificacion);
                    }
                }
            }
            catch (Exception ex)
            {
                string _msgError = "Error: " + ex.Message;
                MessageBox.Show(_msgError, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            txFechaBusqueda.Focus();
        }