コード例 #1
0
        /// <summary>
        /// Función para tratar el registro de factura que se acaba de leer.
        /// </summary>
        /// <param name="_CamposReg"></param>
        /// <returns></returns>
        private RegistroLRFacturasRecibidas TratarFactRecibida(string[] _CamposReg)
        {
            RegistroLRFacturasRecibidas _RegLRFactReciWRK = new RegistroLRFacturasRecibidas();

            // Informamos el periodo impositivo.
            PeriodoImpositivo _PeriodoWrk = new PeriodoImpositivo
            {
                Ejercicio = _CamposReg[1],
                Periodo   = _CamposReg[2]
            };

            _RegLRFactReciWRK.PeriodoImpositivo = _PeriodoWrk;

            // Informamos el IDFactura.
            IDFactura       _IDFactWrk    = new IDFactura();
            IDEmisorFactura _IDEmisorFact = new IDEmisorFactura();
            Contraparte     _ReceptorWrk  = new Contraparte();

            if (string.IsNullOrWhiteSpace(_CamposReg[4]))
            {
                _IDEmisorFact.NIF = _CamposReg[3];
                _ReceptorWrk.NIF  = _IDEmisorFact.NIF;
            }
            else
            {
                IDOtro _ProveedorExtWrk = new IDOtro
                {
                    CodigoPais = _CamposReg[4],
                    IDType     = _CamposReg[5],
                    ID         = _CamposReg[3]
                };
                _IDEmisorFact.IDOtro = _ProveedorExtWrk;

                _ReceptorWrk.IDOtro = _IDEmisorFact.IDOtro;
            }
            _IDFactWrk.IDEmisorFactura = _IDEmisorFact;

            _IDFactWrk.NumSerieFacturaEmisor        = _CamposReg[6].Trim();
            _IDFactWrk.FechaExpedicionFacturaEmisor = _CamposReg[7];

            _RegLRFactReciWRK.IDFactura = _IDFactWrk;

            // Procedemos a tratar la factura actual.
            FacturaRecibida _FacturaActual = new FacturaRecibida
            {
                //Aquí indicamos si se trata de una factura 'normal' o es 'rectificativa'.
                TipoFactura = _CamposReg[8],
                ClaveRegimenEspecialOTrascendencia = _CamposReg[9],
                ImporteTotal   = ((_CamposReg[10]).Trim()).Replace(',', '.'),
                FechaOperacion = _CamposReg[17]
            };

            if (string.IsNullOrWhiteSpace(_CamposReg[11]))
            {
                _CamposReg[11] = "Hay que informar el concepto de la factura";
            }
            _FacturaActual.DescripcionOperacion = _CamposReg[11].Trim();

            // Informamos la contraparte, que según pruebas con el SOAP, este tiene que ser igual que el IDEmisorFactura
            _ReceptorWrk.NombreRazon   = _CamposReg[12].Trim();
            _FacturaActual.Contraparte = _ReceptorWrk;

            _FacturaActual.FechaRegContable = _CamposReg[13];

            // Procedemos a informar los campos en el caso de que se trate del envio de una factura rectificativa.
            if (!string.IsNullOrWhiteSpace(_CamposReg[14]))
            {
                _FacturaActual.TipoRectificativa = _CamposReg[14];

                ImporteRectificacion _ImpRectifWrk = new ImporteRectificacion
                {
                    BaseRectificada  = ((_CamposReg[15]).Trim()).Replace(',', '.'),
                    CuotaRectificada = ((_CamposReg[16]).Trim()).Replace(',', '.')
                };
                _FacturaActual.ImporteRectificacion = _ImpRectifWrk;
            }

            // Procedemos a informar la cuota deducible en el caso de que corresponda.
            // Si no viene informada la cuota deducible, pondremos '-1' con el fin de que al volver a generarse el lote
            // la ponga a cero, y si no la calcule.
            if (string.IsNullOrWhiteSpace(_CamposReg[18]))
            {
                _FacturaActual.CuotaDeducible = "-1";
            }
            else
            {
                _FacturaActual.CuotaDeducible = ((_CamposReg[18]).Trim()).Replace(',', '.');
            }

            _RegLRFactReciWRK.FacturaRecibida = _FacturaActual;


            return(_RegLRFactReciWRK);
        }
コード例 #2
0
 /// <summary>
 /// Constructor clase IDFactura.
 /// </summary>
 public ClavePaginacion()
 {
     IDEmisorFactura = new IDEmisorFactura();
 }
コード例 #3
0
 /// <summary>
 /// Constructor clase IDFactura.
 /// </summary>
 public IDFactura()
 {
     IDEmisorFactura = new IDEmisorFactura();
 }