示例#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);
            }
        }
示例#2
0
        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);
        }
示例#3
0
        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();
        }
示例#4
0
 private void btnValidar_Click(object sender, EventArgs e)
 {
     if (CUIL.Validar(this.txtCUIL.Text))
     {
         MessageBox.Show("CUIL CORRECTO");
     }
     else
     {
         MessageBox.Show("CUIL INVALIDO !!!");
     }
 }
示例#5
0
        /// <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);
        }
示例#6
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.");
            }
        }