Exemple #1
0
        /// <summary>
        /// Valida el numero de CUIL/CUIT recalculando el digito verificador
        /// </summary>
        /// <param name="cuit">Numero de CUIL/CUIT</param>
        /// <returns>Verdadero si es valido, Falso si es invalido</returns>
        public static Boolean Validar(string cuil)
        {
            Double resto;
            Double suma;
            Double cociente;

            //Limpio el cuit
            cuil = CUIL.Limpiar(cuil);
            if (cuil.Length == 11)
            {
                suma     = char.GetNumericValue(cuil[0]) * 5;
                suma     = suma + char.GetNumericValue(cuil[1]) * 4;
                suma     = suma + char.GetNumericValue(cuil[2]) * 3;
                suma     = suma + char.GetNumericValue(cuil[3]) * 2;
                suma     = suma + char.GetNumericValue(cuil[4]) * 7;
                suma     = suma + char.GetNumericValue(cuil[5]) * 6;
                suma     = suma + char.GetNumericValue(cuil[6]) * 5;
                suma     = suma + char.GetNumericValue(cuil[7]) * 4;
                suma     = suma + char.GetNumericValue(cuil[8]) * 3;
                suma     = suma + char.GetNumericValue(cuil[9]) * 2;
                suma     = suma * 10;
                cociente = suma / 11;
                resto    = suma - (int)cociente * 11;
                return(!(resto != char.GetNumericValue(cuil[10]) || cociente == 0));
            }
            else
            {
                return(false);
            }
        }
Exemple #2
0
        private void btnGenerarArchivo_Click(object sender, EventArgs e)
        {
            int          legajo         = 0;
            int          totalRegistros = 0;
            int          cantRegistros  = 0;
            string       contenido      = "";
            string       registro       = "";
            DbDataReader rsCampos;
            DbDataReader rsLegajos;

            totalRegistros         = (int)Model.DB.ejecutarScalar(Model.TipoComando.SP, "liquidacionesConsultarTotalLegajosParaCargas", "@anioMes", liqui.AnioMes);
            this.pbProceso.Minimum = 0;
            this.pbProceso.Maximum = totalRegistros;

            this.saveFileDialogCargas.Filter   = "Texto TXT (*.txt)|*.txt";
            this.saveFileDialogCargas.FileName = "SIJP";
            this.Refresh();

            if (saveFileDialogCargas.ShowDialog() == DialogResult.OK)
            {
                StreamWriter sw = new StreamWriter(this.saveFileDialogCargas.FileName);

                rsLegajos = Model.DB.ejecutarDataReader(Model.TipoComando.SP, "sijpConsultarLegajos", "@anioMes", liqui.AnioMes);
                while (rsLegajos.Read())  //para cada legajo recorro todos los campos definidos en tablas
                {
                    cantRegistros++;
                    if (cantRegistros <= pbProceso.Maximum)
                    {
                        this.pbProceso.Value = cantRegistros;
                    }

                    registro            = "";
                    legajo              = Convert.ToInt32(rsLegajos["legajo"]);
                    this.txtLegajo.Text = legajo.ToString();
                    this.txtLegajo.Refresh();

                    rsCampos = Model.DB.ejecutarDataReader(Model.TipoComando.SP, "tablasConsultarFormatosExportacion", "@tabla", "sijp");
                    while (rsCampos.Read())
                    {
                        //////campos explicitos para sijp//////
                        if (Convert.ToInt32(rsCampos["posicion"]) == 1)
                        {
                            contenido = CUIL.Limpiar(Model.DB.ejecutarScalar(Model.TipoComando.SP, "empleadosSueldosConsultarValorLegajo", "@legajo", legajo, "@codigo", 18).ToString());
                        }
                        else
                        {
                            if (Convert.ToInt32(rsCampos["posicion"]) == 12)
                            {///elimino caracteres especiales en el nombre por problemas en importacion
                                contenido = Varios.Left(ConsultaEmpleados.consultarApellidoYnombresConBajas(legajo), 30);
                                contenido = contenido.Replace('Ñ', 'N');
                                contenido = contenido.Replace('Á', 'A');
                                contenido = contenido.Replace('É', 'E');
                                contenido = contenido.Replace('Í', 'I');
                                contenido = contenido.Replace('Ó', 'O');
                                contenido = contenido.Replace('Ú', 'U');
                            }
                            else
                            {
                                contenido = Model.DB.ejecutarScalar(Model.TipoComando.SP, "sijpConsultarValorLegajo", "@anioMes", liqui.AnioMes, "legajo", legajo, "codigo", Convert.ToInt32(rsCampos["posicion"])).ToString();
                                //contenido = contenido.Replace('.', ',');
                            }
                        }

                        if (rsCampos["tipoCampo"].ToString() == "9")  //si es numerico completa con ceros.
                        {
                            registro = registro + contenido.PadLeft(Convert.ToInt32(rsCampos["longitud"]), '0');
                        }
                        else                                        //si es texto completa con espacios.
                        {
                            registro = registro + contenido.PadRight(Convert.ToInt32(rsCampos["longitud"]), ' ');
                        }
                    }
                    sw.WriteLine(registro);
                    Console.WriteLine(registro);

                    System.Windows.Forms.Application.DoEvents();
                }
                sw.Close();
                Model.DB.desconectarDB();

                this.pbProceso.Value = totalRegistros;
                MessageBox.Show("El archivo se generó con éxito.");
            }
        }