223 lines
15 KiB
C#
223 lines
15 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Microsoft.VisualBasic.CompilerServices;
|
|
|
|
namespace tsUtilidades.Modelo190
|
|
{
|
|
public class DatosModelo190
|
|
{
|
|
public RegistroDeclarante Declarante { get; set; }
|
|
public List<RegistroPerceptor> Perceptores { get; set; }
|
|
}
|
|
|
|
public class RegistroDeclarante
|
|
{
|
|
public string TipoRegistro { get; set; } = "1"; // 1
|
|
public string ModeloDeclaracion { get; set; } = "190"; // 2-4
|
|
public string Ejercicio { get; set; } = ""; // 5-8
|
|
public string NifDeclarante { get; set; } = ""; // 9-17
|
|
public string ApeNombreRsoDeclarante { get; set; } = ""; // 18-57
|
|
public string TipodeSoporte { get; set; } = "T"; // 58
|
|
public string PerConQuienRelacionarseTlf { get; set; } = ""; // 59-67
|
|
public string PerConQuienRelacionarseNom { get; set; } = ""; // 68-107
|
|
public string NumIdenDecla { get; set; } = ""; // 108-120
|
|
public string DeclComploSust { get; set; } = ""; // 121-122
|
|
public string NumIdenDeclaAnt { get; set; } = ""; // 123-135
|
|
public string NumTotaldePercepciones { get; set; } = ""; // 136-144
|
|
public string ImpTotPercepcionesSigno { get; set; } = ""; // 145
|
|
// Public Property ImpTotPercepciones As String = "" ' 146-160 146-158 parte entera 159-160 parte decimal
|
|
public string ImpTotPercepcionesParEnt { get; set; } = ""; // 146-158
|
|
public string ImpTotPercepcionesParDec { get; set; } = ""; // 159-160
|
|
public string ImpTotRetencionesParEnt { get; set; } = ""; // 161-173
|
|
public string ImpTotRetencionesParDec { get; set; } = ""; // 174-175
|
|
// Public Property ImpTotRetenciones As String = "" ' 161-175 161-173 parte entera 174-175 parte decimal
|
|
public string CorreoElectronicoPerConQuienRelacionarse { get; set; } = ""; // 176-225
|
|
public string Blancos { get; set; } = " ".PadRight(262, ' '); // 226-487
|
|
public string SelloElectronico { get; set; } = " ".PadRight(13, ' '); // 488-500
|
|
|
|
|
|
|
|
}
|
|
public class RegistroPerceptor
|
|
{
|
|
public string TipoRegistro { get; set; }
|
|
public string ModeloDeclaracion { get; set; } = "190";
|
|
public string Ejercicio { get; set; } = ""; // 5-8
|
|
public string NifDeclarante { get; set; } = ""; // 9-17
|
|
public string NifPerceptor { get; set; } = ""; // 18-26
|
|
public string NifRepresentateLegal { get; set; } = ""; // 27-35
|
|
public string ApeNombreRsoPerceptor { get; set; } = ""; // 36-75
|
|
public string CodigoProvincial { get; set; } = "41"; // 76-77
|
|
public string ClavePercepcion { get; set; } = ""; // 78
|
|
public string SubClave { get; set; } = ""; // 79-80
|
|
public string PerDineNoIncaLabSigno { get; set; } = ""; // 81
|
|
public double PerDineNoIncaLabPerint { get; set; } = 0d;
|
|
public string PerDineNoIncaLabPerintParEnt { get; set; } = ""; // 82-92
|
|
public string PerDineNoIncaLabPerintParDec { get; set; } = ""; // 93-94
|
|
public double PerDineNoIncaLabRetPra { get; set; } = 0d;
|
|
public string PerDineNoIncaLabRetPraParEnt { get; set; } = ""; // 95-105
|
|
public string PerDineNoIncaLabRetPraParDec { get; set; } = ""; // 106-107
|
|
public string PerEspNoIncaLabSigno { get; set; } = ""; // 108
|
|
public double PerEspNoIncaLabPerint { get; set; } = 0d;
|
|
public string PerEspNoIncaLabPerintParEnt { get; set; } = ""; // 109-119
|
|
public string PerEspNoIncaLabPerintParDec { get; set; } = ""; // 120-121
|
|
public double PerEspNoIncaLabRetPra { get; set; } = 0d; // 122-132
|
|
public string PerEspNoIncaLabRetPraParEnt { get; set; } = ""; // 122-132
|
|
public string PerEspNoIncaLabRetPraParDec { get; set; } = ""; // 133-134
|
|
public double PerEspNoIncaLabRetRep { get; set; } = 0d;
|
|
public string PerEspNoIncaLabRetRepParEnt { get; set; } = ""; // 135-145
|
|
public string PerEspNoIncaLabRetRepParDec { get; set; } = ""; // 146-147
|
|
public string EjercicioDevengo { get; set; } = "0000"; // 148-151
|
|
public string CeutaOMelilla { get; set; } = ""; // 152
|
|
public string AñoNacimiento { get; set; } = ""; // 153-156
|
|
public string SituacionFamilia { get; set; } = ""; // 157
|
|
public string NifConyuge { get; set; } = ""; // 158-166
|
|
public string Discapacidad { get; set; } = ""; // 167
|
|
public string ContratoRelacion { get; set; } = ""; // 168
|
|
public string Guion { get; set; } = ""; // 169
|
|
public string MovilidadGeografica { get; set; } = ""; // 170
|
|
public string ReduccionesAplicable { get; set; } = ""; // 171-181 parte entera 182-183 parte decimal
|
|
public double GastosDeducibles { get; set; } = 0d;
|
|
public string GastosDeduciblesEnt { get; set; } = ""; // 184-194 parte entera
|
|
public string GastosDeduciblesDec { get; set; } = ""; // 195-196 parte decimal
|
|
public double PensionCompensatoria { get; set; } = 0d;
|
|
public string PensionCompensatoriaEnt { get; set; } = ""; // 197-207 parte entera
|
|
public string PensionCompensatoriaDec { get; set; } = ""; // 208-209 parte decimal
|
|
public double AnualidadporAlimentos { get; set; } = 0d;
|
|
public string AnualidadporAlimentosEnt { get; set; } = ""; // 210-220 parte entera
|
|
public string AnualidadporAlimentosDec { get; set; } = ""; // 221-222 parte decimal
|
|
public string HijosyOtrosDecendientes { get; set; } = ""; // 223-228
|
|
public string HijosyOtrosDecendientesConDiscapacidad { get; set; } = ""; // 229-240
|
|
public string Ascendientes { get; set; } = ""; // 241-244
|
|
public string AscendientesConDiscapacidad { get; set; } = ""; // 245-250
|
|
public string Com3PrimerosHijos { get; set; } = ""; // 251-253
|
|
public string ComuPresVivHab { get; set; } = ""; // 254
|
|
public string PerDineDerIncaLabSigno { get; set; } = ""; // 255
|
|
public double PerDineIncaLabPerint { get; set; } = 0d;
|
|
public string PerDineIncaLabPerintParEnt { get; set; } = ""; // 256-266
|
|
public string PerDineIncaLabPerintParDec { get; set; } = ""; // 267-268
|
|
public double PerDineIncaLabRetPra { get; set; } = 0d;
|
|
public string PerDineIncaLabRetPraParEnt { get; set; } = ""; // 269-279
|
|
public string PerDineIncaLabRetPraParDec { get; set; } = ""; // 280-281
|
|
public string PerEspDerIncaLabSigno { get; set; } = ""; // 282
|
|
public double PerEspIncaLabPerint { get; set; } = 0d;
|
|
public string PerEspIncaLabPerintParEnt { get; set; } = ""; // 283-293
|
|
public string PerEspIncaLabPerintParDec { get; set; } = ""; // 294-295
|
|
public double PerEspIncaLabRetPra { get; set; } = 0d;
|
|
public string PerEspIncaLabRetPraParEnt { get; set; } = ""; // 296-306
|
|
public string PerEspIncaLabRetPraParDec { get; set; } = ""; // 307-308
|
|
public double PerEspIncaLabRetRep { get; set; } = 0d;
|
|
public string PerEspIncaLabRetRepParEnt { get; set; } = ""; // 309-319
|
|
public string PerEspIncaLabRetRepParDec { get; set; } = ""; // 320-321
|
|
public double TotalPercepcionesIntegras { get; set; } = 0d;
|
|
public double TotalRetencionesIntegras { get; set; } = 0d;
|
|
public string Blancos { get; set; } = " ".PadRight(179, ' '); // 322-500
|
|
|
|
}
|
|
public class Utilidades
|
|
{
|
|
public static void GeneraFichero(DatosModelo190 Datos, string Fichero)
|
|
{
|
|
try
|
|
{
|
|
|
|
|
|
// Dim fs As New IO.FileStream(Fichero, IO.FileMode.CreateNew)
|
|
// Dim sw As New IO.StreamWriter(fs, System.Text.Encoding.GetEncoding("iso-8859-1"))
|
|
var sw = new System.IO.StreamWriter(Fichero, false, System.Text.Encoding.GetEncoding("iso-8859-1"));
|
|
string RegDeclarante;
|
|
RegDeclarante = Datos.Declarante.TipoRegistro.PadLeft(1, ' ');
|
|
RegDeclarante += Datos.Declarante.ModeloDeclaracion.PadRight(3, ' ');
|
|
RegDeclarante += Datos.Declarante.Ejercicio.PadLeft(4, '0');
|
|
RegDeclarante += Datos.Declarante.NifDeclarante.PadLeft(9, '0');
|
|
RegDeclarante += Datos.Declarante.ApeNombreRsoDeclarante.Replace(",", "").PadRight(40, ' ');
|
|
RegDeclarante += Datos.Declarante.TipodeSoporte.PadLeft(1, ' ');
|
|
RegDeclarante += Datos.Declarante.PerConQuienRelacionarseTlf.PadLeft(9, '0');
|
|
RegDeclarante += Datos.Declarante.PerConQuienRelacionarseNom.PadRight(40, ' ');
|
|
RegDeclarante += Datos.Declarante.NumIdenDecla.PadLeft(13, '0');
|
|
RegDeclarante += Datos.Declarante.DeclComploSust.PadRight(2, ' ');
|
|
RegDeclarante += Datos.Declarante.NumIdenDeclaAnt.PadLeft(13, '0');
|
|
RegDeclarante += Datos.Declarante.NumTotaldePercepciones.PadLeft(9, '0');
|
|
RegDeclarante += Datos.Declarante.ImpTotPercepcionesSigno.PadLeft(1, ' ');
|
|
RegDeclarante += Datos.Declarante.ImpTotPercepcionesParEnt.PadLeft(13, '0'); // 146-158
|
|
RegDeclarante += Datos.Declarante.ImpTotPercepcionesParDec.PadLeft(2, '0'); // 159-160
|
|
RegDeclarante += Datos.Declarante.ImpTotRetencionesParEnt.PadLeft(13, '0'); // 161-173
|
|
RegDeclarante += Datos.Declarante.ImpTotRetencionesParDec.PadLeft(2, '0'); // 174-175
|
|
RegDeclarante += Datos.Declarante.CorreoElectronicoPerConQuienRelacionarse.PadRight(50, ' ');
|
|
RegDeclarante += Datos.Declarante.Blancos.PadRight(262, ' ');
|
|
RegDeclarante += Datos.Declarante.SelloElectronico.PadRight(13, ' ');
|
|
sw.WriteLine(RegDeclarante);
|
|
foreach (var p in Datos.Perceptores)
|
|
{
|
|
string RegPerceptor;
|
|
RegPerceptor = p.TipoRegistro.PadLeft(1, ' ');
|
|
RegPerceptor += p.ModeloDeclaracion.PadRight(3, ' ');
|
|
RegPerceptor += p.Ejercicio.PadLeft(4, '0');
|
|
RegPerceptor += p.NifDeclarante.PadLeft(9, '0');
|
|
RegPerceptor += p.NifPerceptor.PadLeft(9, '0');
|
|
RegPerceptor += p.NifRepresentateLegal.PadLeft(9, ' ');
|
|
RegPerceptor += p.ApeNombreRsoPerceptor.Replace(",", " ").Replace("Á", "A").Replace("É", "E").Replace("Í", "I").Replace("Ó", "O").Replace("Ú", "U").Replace("Ü", "U").Replace("Ñ", "N").Replace(" ", " ").PadRight(40, ' ').Substring(0, 40);
|
|
RegPerceptor += p.CodigoProvincial.PadLeft(2, Conversions.ToChar("00"));
|
|
RegPerceptor += p.ClavePercepcion.PadLeft(1, ' ');
|
|
RegPerceptor += p.SubClave.PadLeft(2, Conversions.ToChar("00"));
|
|
RegPerceptor += p.PerDineNoIncaLabSigno.PadLeft(1, ' ');
|
|
RegPerceptor += p.PerDineNoIncaLabPerintParEnt.PadLeft(11, '0');
|
|
RegPerceptor += p.PerDineNoIncaLabPerintParDec.PadLeft(2, '0');
|
|
RegPerceptor += p.PerDineNoIncaLabRetPraParEnt.PadLeft(11, '0'); // 95-105
|
|
RegPerceptor += p.PerDineNoIncaLabRetPraParDec.PadLeft(2, '0'); // 106-107
|
|
RegPerceptor += p.PerEspNoIncaLabSigno.PadLeft(1, ' ');
|
|
RegPerceptor += p.PerEspNoIncaLabPerintParEnt.PadLeft(11, '0'); // 109-119
|
|
RegPerceptor += p.PerEspNoIncaLabPerintParDec.PadLeft(2, '0'); // 120-121
|
|
RegPerceptor += p.PerEspNoIncaLabRetPraParEnt.PadLeft(11, '0'); // 122-132
|
|
RegPerceptor += p.PerEspNoIncaLabRetPraParDec.PadLeft(2, '0'); // 133-134
|
|
RegPerceptor += p.PerEspNoIncaLabRetRepParEnt.PadLeft(11, '0'); // 135-145
|
|
RegPerceptor += p.PerEspNoIncaLabRetRepParDec.PadLeft(2, '0'); // 146-147
|
|
RegPerceptor += p.EjercicioDevengo.PadLeft(4, '0');
|
|
RegPerceptor += p.CeutaOMelilla.PadLeft(1, '0');
|
|
RegPerceptor += p.AñoNacimiento.PadLeft(4, '0');
|
|
RegPerceptor += p.SituacionFamilia.PadLeft(1, '0');
|
|
RegPerceptor += p.NifConyuge.PadLeft(9, ' ');
|
|
RegPerceptor += p.Discapacidad.PadLeft(1, '0');
|
|
RegPerceptor += p.ContratoRelacion.PadLeft(1, '0');
|
|
RegPerceptor += p.Guion.PadLeft(1, ' ');
|
|
RegPerceptor += p.MovilidadGeografica.PadLeft(1, '0');
|
|
RegPerceptor += p.ReduccionesAplicable.PadLeft(13, '0');
|
|
RegPerceptor += p.GastosDeduciblesEnt.PadLeft(11, '0'); // 184-194 parte entera
|
|
RegPerceptor += p.GastosDeduciblesDec.PadLeft(2, '0'); // 195-196 parte decimal
|
|
RegPerceptor += p.PensionCompensatoriaEnt.PadLeft(11, '0'); // 197-207 parte entera
|
|
RegPerceptor += p.PensionCompensatoriaDec.PadLeft(2, '0'); // 208-209 parte decimal
|
|
RegPerceptor += p.AnualidadporAlimentosEnt.PadLeft(11, '0'); // 210-220 parte entera
|
|
RegPerceptor += p.AnualidadporAlimentosDec.PadLeft(2, '0'); // 221-222 parte decimal
|
|
RegPerceptor += p.HijosyOtrosDecendientes.PadLeft(6, '0');
|
|
RegPerceptor += p.HijosyOtrosDecendientesConDiscapacidad.PadLeft(12, '0');
|
|
RegPerceptor += p.Ascendientes.PadLeft(4, '0');
|
|
RegPerceptor += p.AscendientesConDiscapacidad.PadLeft(6, '0');
|
|
RegPerceptor += p.Com3PrimerosHijos.PadLeft(3, '0');
|
|
RegPerceptor += p.ComuPresVivHab.PadLeft(1, '0');
|
|
RegPerceptor += p.PerDineDerIncaLabSigno.PadLeft(1, ' ');
|
|
RegPerceptor += p.PerDineIncaLabPerintParEnt.PadLeft(11, '0'); // 256-266
|
|
RegPerceptor += p.PerDineIncaLabPerintParDec.PadLeft(2, '0'); // 267-268
|
|
RegPerceptor += p.PerDineIncaLabRetPraParEnt.PadLeft(11, '0'); // 269-279
|
|
RegPerceptor += p.PerDineIncaLabRetPraParDec.PadLeft(2, '0'); // 280-281
|
|
RegPerceptor += p.PerEspDerIncaLabSigno.PadLeft(1, ' ');
|
|
RegPerceptor += p.PerEspIncaLabPerintParEnt.PadLeft(11, '0'); // 283-293
|
|
RegPerceptor += p.PerEspIncaLabPerintParDec.PadLeft(2, '0'); // 294-295
|
|
RegPerceptor += p.PerEspIncaLabRetPraParEnt.PadLeft(11, '0'); // 296-306
|
|
RegPerceptor += p.PerEspIncaLabRetPraParDec.PadLeft(2, '0'); // 307-308
|
|
RegPerceptor += p.PerEspIncaLabRetRepParEnt.PadLeft(11, '0'); // 309-319
|
|
RegPerceptor += p.PerEspIncaLabRetRepParDec.PadLeft(2, '0'); // 320-321
|
|
RegPerceptor += p.Blancos.PadRight(179, ' ');
|
|
|
|
sw.WriteLine(RegPerceptor);
|
|
}
|
|
sw.Close();
|
|
}
|
|
// fs.Close()
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message, ex);
|
|
}
|
|
}
|
|
}
|
|
|
|
} |