using System; using System.Collections.Generic; using Microsoft.VisualBasic.CompilerServices; namespace tsUtilidades.Modelo190 { public class DatosModelo190 { public RegistroDeclarante Declarante { get; set; } public List 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); } } } }