Files
tsUtilidades/Hacienda/Modelo190.cs
2025-05-29 17:58:18 +02:00

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);
}
}
}
}