Пример #1
0
        public CargaLogica(string archivo, string pathSave)
        {
            rootPath          = pathSave;
            FullNombreArchivo = archivo;
            NombreArchivo     = Path.GetFileName(archivo);
            string nombreArchivo    = null;
            string extensionArchivo = null;

            nombreArchivo    = Path.GetFileNameWithoutExtension(NombreArchivo);
            extensionArchivo = Path.GetExtension(NombreArchivo);

            if (extensionArchivo.Contains("CAM"))
            {
                if (NombreArchivo.Split('_')[0] == "NOMINA" | NombreArchivo.Split('_')[0] == "INOMINA")
                {
                    extensionArchivo = ".CSV";
                    // SE COMENTA ESTA LINEA PARA EVITAR QUE SE RENOMBRE EL ARCHIVO NOMINA
                    NombreArchivo = nombreArchivo + extensionArchivo;
                }
                ValidaNombre = ValidaNombreArchivo(NombreArchivo);
            }
            else
            {
                ValidaNombre = false;
            }
            MensajeExcepcion = "";
        }
Пример #2
0
        public void CargarArchivo(int contratoId)
        {
            if (!NombreArchivo.Distinct().Any())
            {
                return;
            }

            if (ValidaNombre)
            {
                ObtieneTipoLinea(NombreArchivo.Split('_')[0]);
                var idestado = 0;
                idestado = LeeArchivo(NombreArchivo.Split('_')[0], TipoLinea, contratoId);
                //
                if (idestado > 2)
                {
                    MensageError    = "No se puede procesar archivo por estar aprobado/pagado";
                    ContadorErrores = ContadorErrores + 1;
                }
                else
                {
                    if (idestado == 2)
                    {
                        MensageError    = "No se puede procesar archivo por tener Checklists";
                        ContadorErrores = ContadorErrores + 1;
                    }
                }
            }
            else
            {
                MensageError    = "Nombre de archivo no cumple formato";
                ContadorErrores = ContadorErrores + 1;

                NombreArchivo = string.Empty;
            }
        }
Пример #3
0
        private void ProcesarErrores(string tipoArchivo)
        {
            if (ValidacionesArchivo(tipoArchivo, 2) == false)
            {
                //COMENTADO ESTA VALIDACION SE USA EN EL ANTIGUO SISTEMA
                //using (var context = new DISEntities())
                //{
                //    Resultado = context.pa_file_ObtieneErrorArchivo(IdArchivo);
                //    var result = context.pa_file_ObtieneErrorArchivo(IdArchivo);

                //    var nombre = "";
                //    var largo = 0;
                //    foreach (var datoLoopVariable in result)
                //    {
                //        var dato = datoLoopVariable;
                //        if (dato.NumeroLinea.Value > 0)
                //        {
                //            nombre = dato.NombreArchivo;
                //            largo = dato.LargoCampo.Value;
                //        }
                //    }
                //    if (nombre != string.Empty & largo != null)
                //    {
                //        //If largo = 25 Then
                //        var valor1 = context.pa_valida_CodigoTransferenciaNomina(nombre, IdArchivo, largo);
                //        var resultado = 0;
                //        resultado = valor1.FirstOrDefault().Value;
                //        if (resultado == 0)
                //        {
                //            Resultado = null;
                //            Observacion =
                //                "No existe liquidación, debe cargar liquidación y despúes la nómina";
                //            //End If
                //        }
                //    }
                //}
            }

            //if (ContadorErrores == 0)
            //{
            using (var context = new DISEntities())
            {
                var cantidadRes = context.pa_file_CantidadRegistroArchivo(IdArchivo).FirstOrDefault();
                moneda        = cantidadRes.Moneda;
                importe       = string.Format(formatoMoneda, cantidadRes.Importe);
                ContadorExito = Convert.ToInt32(cantidadRes.cantidad);

                Observacion = "<br> Registros procesados correctamente :" + ContadorExito.ToString() + " <br> Datos observados :" + ContadorErrores.ToString();
                //insrtar auditoria
            }
            //}

            //esto válida que los montos por cuspp no sean mayor a lo establecido
            //en la entidad: negocio.MontoAlto
            if (NombreArchivo.Substring(0, 3).ToLower() == "liq")
            {
                using (var context = new DISEntities())
                {
                    var    monto     = context.pa_valida_MontoAlto(IdArchivo, Convert.ToInt32(UsuarioModificacion));
                    string montoAlto = null;
                    montoAlto = monto.ToString();
                    if (montoAlto == "1")
                    {
                        dynamic monto1 = context.pa_devuelveresultado(IdArchivo);
                        var     correo = "";
                        foreach (var registroLoopVariable in monto1)
                        {
                            var registro = registroLoopVariable;
                            correo      = registro.correo;
                            Observacion = Observacion + "\\n Monto alto cargado al CUSPP: " +
                                          registro.Cuspp + ", por valor = " + registro.Valor.ToString;
                            InsertaAuditoria(Convert.ToInt32(UsuarioModificacion), Observacion,
                                             NombreArchivo, IdArchivo);
                        }
                        Correo = correo;
                    }
                }
            }
        }
Пример #4
0
        private void btnRutaCarpeta_Click(object sender, EventArgs e)
        {
            if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
            {
                txtRutaCarpeta.Text = folderBrowserDialog1.SelectedPath;

                // Ruta Directorio
                dirPath = folderBrowserDialog1.SelectedPath;

                #region Variables
                // Creamos una Variable Tipo Lista para almacenar los nombres de los archivos
                List <string> ListaArchivos = new List <string>();

                // Creamos una lista para almacenar los numeros de Factura Temporales
                List <string> ListaNumerosFactura = new List <string>();

                // Creamos una lista para almacenar los numeros de Factura Unicos
                List <string> ListaNumerosFacturaUnicos = new List <string>();

                // Creamos una variable tipo lista para obtener el numbre completo de cada archvio, que incluye la ruta
                List <string> ListaArchivosFullName = new List <string>();

                // Cremos una variable tipo Lista para almacenar los nombres de los directorios nuevos creados
                //List<string> ListaDirectorios = new List<string>();

                #endregion

                // Almacenamos en la variable Tipo Lista los nombres de los archivos
                ListaArchivos = Lista.ListarArchivosName(dirPath, "*.txt");

                // Almacenamos los nombres completos de los archivos en la variable ListaArchivosFullName
                ListaArchivosFullName = Lista.ListarArchivosFullName(dirPath, "*.txt");

                foreach (var NombreArchivo in ListaArchivos)
                {
                    String IdFactura;

                    // Obtener el Numero de la Factura
                    IdFactura = NombreArchivo.Substring(2, 6);

                    // Agregamos los IdFactura a la Lista de Numeros de Factura
                    ListaNumerosFactura.Add(IdFactura);
                }

                // Leemos los Nombres de las Facturas almacendads en ListaNumerosFacturas
                // Si en ListaNumerosFacturaUnicos estiste el Numero de ListaNumerosFactura, no hace nada
                // Si no existe lo ingresa en ListaNumerosFacturaUnicos
                foreach (var Numeros in ListaNumerosFactura)
                {
                    if (ListaNumerosFacturaUnicos.Contains(Numeros))
                    {
                        //MessageBox.Show("Contiene el numero " + Numeros);
                    }
                    else
                    {
                        //MessageBox.Show("No Contiene el numero " + Numeros);
                        ListaNumerosFacturaUnicos.Add(Numeros);
                    }
                }

                // Leemos los numeros unicos y creamos las carpetas con cada nombre
                foreach (var NumeroUnico in ListaNumerosFacturaUnicos)
                {
                    // Directorio
                    string folderName = dirPath;

                    // SubCarpetas - Nombres de Facturas Unicas
                    string pathString = System.IO.Path.Combine(folderName, NumeroUnico);

                    //Creacion de Carpetas
                    System.IO.Directory.CreateDirectory(pathString);
                }

                // Mover Archivos a sus Respectivos Directorios

                // Almacenamos en un arreglo el listado de los Directorios Nuevos
                string[] ListaDirectorios = System.IO.Directory.GetDirectories(dirPath);

                foreach (var Directorios in ListaDirectorios)
                {
                    foreach (var Archivo in ListaArchivosFullName)
                    {
                        // NOMBRE CARPETA

                        // Obtenemos la posicion del ultimo BackSlach para identificar donde empieza el nombre del Directorio
                        // Se añade 1 para no obtener el BackSlach
                        int PosicionUltimoSlash = Directorios.LastIndexOf("\\") + 1;
                        // Obtenemos la longitud total de la cadena
                        int LongitudNombre = Directorios.Length;
                        // Obtenemos el Nombre de la Carpeta
                        string nombreDirectorio = Directorios.Substring(PosicionUltimoSlash, LongitudNombre - PosicionUltimoSlash);

                        // NOMBRE ARCHIVO

                        // Obtenemos la posicion del ultimo BackSlach para identificar donde empieza el nombre del Archivo
                        // Se suman dos posiciones para quitar el BackSlach y las Iniciales del Archivo de RIPS
                        int PosicionUltimoSlashArchivo = Archivo.LastIndexOf("\\") + 3;
                        // Obtenemos la longitud total de la cadena
                        // Se restan 4 posiciones por la extension de los archivos
                        int LongitudNombreArchivo = Archivo.Length - 4;
                        // Obtenemos el Nombre del Archivo
                        string nombreArchivo = Archivo.Substring(PosicionUltimoSlashArchivo, LongitudNombreArchivo - PosicionUltimoSlashArchivo);

                        // Obtenemos el Nombre del Archivo incluida la Extension
                        int    Slash          = Archivo.LastIndexOf("\\") + 1;
                        int    Longitud       = Archivo.Length;
                        string nombreCompleto = Archivo.Substring(Slash, Longitud - Slash);

                        if (nombreArchivo == nombreDirectorio)
                        {
                            string archivoOrigen  = Archivo;
                            string archivoDestino = System.IO.Path.Combine(Directorios, nombreCompleto);

                            System.IO.File.Move(archivoOrigen, archivoDestino);
                        }
                    }
                }
            }
        }