/// <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); } }
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."); } }