private void TraspasaArchivo(string tipoArchivo) { try { var destDirectory = string.Format(@"{0}\{1}\", rootPath, tipoArchivo); //InsertaAuditoria(Convert.ToInt32(UsuarioModificacion), directorioArchivo, NombreArchivo,IdArchivo); if (!Directory.Exists(destDirectory)) { Directory.CreateDirectory(destDirectory); } //InsertaAuditoria(Convert.ToInt32(UsuarioModificacion), "despues de validar directorio", NombreArchivo, IdArchivo); var rutaArchivos = destDirectory + NombreArchivo; if (File.Exists(rutaArchivos)) { File.Delete(rutaArchivos); } //InsertaAuditoria(Convert.ToInt32(UsuarioModificacion),"despues de validar si el archivo existe en el directorio: " + rutaArchivos, NombreArchivo,IdArchivo); File.Copy(FullNombreArchivo, rutaArchivos); //InsertaAuditoria(Convert.ToInt32(UsuarioModificacion), "despues de copiar archivo en directorio",NombreArchivo, IdArchivo); if (tipoArchivo == "PRIMAPAG") { var nombre = FullNombreArchivo.Replace("PRIMAPAG", "PRIMPAGA"); dynamic nombreArch = Path.GetFileName(nombre); destDirectory = string.Format(@"{0}\{1}\", rootPath, "PRIMPAGA"); if (!Directory.Exists(destDirectory)) { Directory.CreateDirectory(destDirectory); } rutaArchivos = destDirectory + nombreArch; if (File.Exists(rutaArchivos)) { File.Delete(rutaArchivos); } ContadorErrores = 0; using (var writer = new StreamWriter(rutaArchivos)) { using (var sr = new StreamReader(FullNombreArchivo)) { var texto = sr.ReadLine() + "\r"; while ((sr.Peek() >= 0)) { if (texto.Contains("PAP")) { var linea = texto.Substring(0, 1) + "PRE" + texto.Substring(4); texto = linea; } writer.Write(texto); texto = sr.ReadLine() + "\r"; } if (texto != string.Empty) { writer.Write(texto); } } } //Insertar en tabla using (var context = new DISEntities()) { var m = context.pa_file_InsertaReferenciaArchivo(nombreArch, UsuarioModificacion); IdArchivo = m; InsertaAuditoria(Convert.ToInt32(UsuarioModificacion), "Se genero archivo(PrimPaga) en Servidor", nombreArch, IdArchivo); } } File.Delete(FullNombreArchivo); InsertaAuditoria(Convert.ToInt32(UsuarioModificacion), "Se guarda archivo en Servidor", NombreArchivo, IdArchivo); return; } catch (Exception ex) { InsertaAuditoria(Convert.ToInt32(UsuarioModificacion), ex.Message, NombreArchivo, IdArchivo); Observacion = ex.Message; return; } }
public int LeeArchivo(string tipoArchivo, StringCollection tipoLinea, int contratoId) { var text = LineaArchivo(); var eContratoSis = new nContratoSis().listContratoByID(new CONTRATO_SYS() { IDE_CONTRATO = contratoId }); //Consultar en tabla el estado del archivo //entregara 0 si no existe //using (var context = new DISEntities()) //{ // var estadoArchivo = context.pa_file_ConsultaEstadoArchivo(NombreArchivo).FirstOrDefault(); // if (estadoArchivo != null) Estado = estadoArchivo.Value; //} //InsertaAuditoria(Convert.ToInt32(UsuarioModificacion), "Consulta estado archivo", // "pa_file_ConsultaEstadoArchivo '" + NombreArchivo + "'", 0); //valor anterior = 3 //Si el valor es menor que 2, significa 2 cosas: //1.- que la nomina no esta aprobada y puede ser cargado nuevos archivos. //2.- que no hay checklist sobre el o los cuspp de la liquidacion //if (Estado < 2) //{ //Insertar en tabla //if (Estado == 1) //{ // MensageError = "Archivo ya cargado previamente"; //} using (var context = new DISEntities()) { var archivo = context.pa_file_InsertaReferenciaArchivo(NombreArchivo, UsuarioModificacion).FirstOrDefault(); if (archivo != null) { IdArchivo = archivo.Value; } } //InsertaAuditoria(Me.UsuarioModificacion, "Inserta Referencia Archivo", "pa_file_InsertaReferenciaArchivo '" + Me.NombreArchivo + "'", Me.idArchivo) for (var indexLinea = 0; indexLinea <= text.Length - 1; indexLinea++) { var caracterInicial = Mid(text[indexLinea].Trim(), 0, 1); var carterInicialNumer = 0; if (int.TryParse(caracterInicial, out carterInicialNumer)) { caracterInicial = "*"; } if (tipoLinea.Contains(caracterInicial)) { using (var context = new DISEntities()) { if (!_reglasLineaPorTipo.ContainsKey(caracterInicial)) { _reglasLineaPorTipo.Add(caracterInicial, ObtieneReglaLinea(context.pa_file_ObtieneReglasArchivoPorLinea(tipoArchivo, caracterInicial, Convert.ToInt32(eContratoSis.NRO_CONTRATO)))); } } //InsertaAuditoria(Me.UsuarioModificacion, "Obtiene Regla de archivo por línea", "pa_file_ObtieneReglasArchivoPorLinea '" + tipoLinea + "', " + CaracterInicial, Me.idArchivo) try { var propertyValues = new Dictionary <string, object>(); var exitoLinea = 1; //if (!caracterInicial.Equals("T")) //{ foreach (var regla in _reglasLineaPorTipo[caracterInicial]) { try { exitoLinea &= EvaluarRegla(tipoArchivo, regla, text, indexLinea, propertyValues); } catch (Exception ex) { throw ex; } } //} GrabarFilaArchivo(caracterInicial, IdArchivo, indexLinea + 1, propertyValues, contratoId, exitoLinea, tipoArchivo); } catch (Exception ex) { MensajeExcepcion = ex.Message; return(0); } } else { if (text[indexLinea].Trim().Any()) { using (var context = new DISEntities()) { context.pa_file_InsertaHistorialCarga(IdArchivo, 451, "#", indexLinea + 1, 1, text[indexLinea].Trim().Count(), text[indexLinea], 0); } //InsertaAuditoria(Me.UsuarioModificacion, "Inserta Historial de CargaLogica", "pa_file_InsertaHistorialCarga 451" + ", " + "'#'" + ", " + (x + 1).ToString() + ", " + "1" + ", " + text[x].Trim()().Count().ToString() + ", '" + Me.campoActual + "', " + "0", Me.idArchivo) ContadorErrores = ContadorErrores + 1; } } } //aca se debe realizar el bolcado de archivo sin errores try { //Antes de traspasar el archivo si verifica que todas las filas se hayan cargado ccorrectamente if (ContadorErrores > 0 && tipoArchivo != "NOMINA") { new dPagoCargado().setAatualizarEstadoArchivo(CodigoCabecera); } ; //actualizar la cabecera con el archivo id de la nomina (NOMINA) if (tipoArchivo == "NOMINA") { var archivo = new nArchivo().getArchivoByNombre(new Archivo() { NombreArchivo = NombreArchivo }); //new dAprobacionCa archivo.ArchivoId = IdArchivo; new nAprobacionCarga().actulaizarArchivoIdNomina(archivo); if (ContadorErrores > 0) { new nNomina().actualizarEstadoFallido(IdArchivo, contratoId); } } TraspasaArchivo(tipoArchivo); ProcesarErrores(tipoArchivo); ContadorErrores = ContadorErrores > 0 ? ContadorErrores : 0; } catch (Exception ex) { Observacion = ex.Message + "// TraspasaArchivo...!"; } //} //else //{ // Observacion = "Ya está aprobado"; // return Estado; //} return(0); }