/// <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); } }
public static string generar(char sexo, string dni) { string cuil = ""; if (sexo == 'F') { cuil = CUIL.buscarDigitoVerificador("27", dni); if (cuil == "") { cuil = CUIL.buscarDigitoVerificador("23", dni); } } if (sexo == 'M') { cuil = CUIL.buscarDigitoVerificador("20", dni); if (cuil == "") { cuil = CUIL.buscarDigitoVerificador("23", dni); } } if (sexo == 'E') //en caso de empresas, el CUIT es: { cuil = CUIL.buscarDigitoVerificador("30", dni); if (cuil == "") { cuil = CUIL.buscarDigitoVerificador("33", dni); } } return(cuil); }
private void btnGenerar_Click(object sender, EventArgs e) { string cuil = ""; cuil = CUIL.generar(Convert.ToChar(Varios.Left(this.cmbSexo.Text, 1)), this.txtDNI.Text); MessageBox.Show("CUIL: " + cuil); this.txtDNI.Focus(); }
private void btnValidar_Click(object sender, EventArgs e) { if (CUIL.Validar(this.txtCUIL.Text)) { MessageBox.Show("CUIL CORRECTO"); } else { MessageBox.Show("CUIL INVALIDO !!!"); } }
/// <summary> /// busca el digito verificador dado el pre que es determinado por el sexo. /// Masculino=20, si no da con 20, pasa a ser 23 /// Femenino=27, si no da con 20, pasa a ser 23 /// </summary> /// <param name="pre"></param> /// <param name="dni"></param> /// <returns></returns> public static string buscarDigitoVerificador(string pre, string dni) { string cuil = ""; string cad = ""; Boolean ok = false; for (int j = 0; j < 10; j++) { cad = pre.PadLeft(2, '0') + dni + j.ToString(); ok = CUIL.Validar(cad); if (ok) { cuil = cad; } } return(cuil); }
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."); } }