public ActionResult Proceso_de_guardado() { CausantesDAO causanteDAO = new CausantesDAO(); List <Causante> causantesguardados = causanteDAO.GetCausantes(); return(View(causantesguardados.OrderBy(Y => Y.NUM_CORRELATIVO).ToList())); }
public ActionResult Proceso_de_guardado() { /* en la parte get se mostrara si los datos en la lista temporal de CausanteDAO en order por su numero Correlativo */ CausantesDAO causanteDAO = new CausantesDAO(); List <Causante> causantesguardados = causanteDAO.GetCausantes(); return(View(causantesguardados.OrderBy(Y => Y.NUM_CORRELATIVO).ToList())); }
public ActionResult Proceso_de_guardado(String id) { CausantesDAO causanteDAO = new CausantesDAO(); List <Causante> causantesguardados = causanteDAO.GetCausantes(); List <Causante> Repetidos = new List <Causante>(); List <Causante> guardados = new List <Causante>(); foreach (var items in causantesguardados) { int count = 0; Causante c = new Causante(); c.NUM_CORRELATIVO = items.NUM_CORRELATIVO; c.RUT_CAUSANTE = items.RUT_CAUSANTE; c.NOMBRE_CAUSANTE = items.NOMBRE_CAUSANTE; c.CODIGO_TIPO_CAUSANTE = items.CODIGO_TIPO_CAUSANTE; c.TIPO_CAUSANTE = items.TIPO_CAUSANTE; c.RUT_BENEFICIARIO = items.RUT_BENEFICIARIO; c.NOMBRE_BENEFICIARIO = items.NOMBRE_BENEFICIARIO; c.CODIGO_TIPO_BENEFICIARIO = items.CODIGO_TIPO_BENEFICIARIO; c.TIPO_BENEFICIARIO = items.TIPO_BENEFICIARIO; c.CODIGO_TIPO_BENEFICIO = items.CODIGO_TIPO_BENEFICIO; c.TIPO_BENEFICIO = items.TIPO_BENEFICIO; c.RUT_EMPLEADOR = items.RUT_EMPLEADOR; c.NOMBRE_EMPLEADOR = items.NOMBRE_EMPLEADOR; c.FECHA_RECONOCIMIENTO = items.FECHA_RECONOCIMIENTO; c.TRAMO = items.TRAMO; c.MONTO_BENEFICIO = items.MONTO_BENEFICIO; c.CODIGO_ESTADO_TUPLA = items.CODIGO_ESTADO_TUPLA; c.GLOSA_ESTADO_TUPLA = items.GLOSA_ESTADO_TUPLA; c.PROMEDIO_RENTA = items.PROMEDIO_RENTA; foreach (var item in db.Causantes) { count = 0; Causante ca = new Causante(); ca.NUM_CORRELATIVO = item.NUM_CORRELATIVO; ca.RUT_CAUSANTE = item.RUT_CAUSANTE; if (c.NUM_CORRELATIVO == ca.NUM_CORRELATIVO && c.RUT_CAUSANTE.Equals(ca.RUT_CAUSANTE)) { Repetidos.Add(c); count = count + 1; break; } } if (count == 0) { db.Causantes.Add(c); db.SaveChanges(); } } return(Redirect("../Funcionarios/Proceso")); }
public ActionResult Insertar(HttpPostedFileBase Files) { CausantesDAO causanteDAO = new CausantesDAO(); List <Causante> causa = new List <Causante>(); DocumentoDAO documentoDAO = new DocumentoDAO(); if (Files == null || Files.ContentLength == 0) { return(Content("file not selected")); } else { try { String fileName = Path.GetFileName(Files.FileName); String folderpath = Path.Combine(Server.MapPath("~/Views/Causantes/descargas"), fileName); Files.SaveAs(folderpath); StreamReader streamReader = new StreamReader(Files.InputStream); List <string> ListaA = new List <string>(); List <string> ListaB = new List <string>(); List <string> ListaC = new List <string>(); int count = 0; while (!streamReader.EndOfStream) { var line = streamReader.ReadLine(); if (line.Equals("")) { line = "null|null"; var values = line.Split('|'); ListaA.Add(values[0]); ListaB.Add(values[1]); count = count + 1; } else { var values = line.Split('|'); if (count <= 4 || count == 4) { ListaA.Add(values[0]); ListaB.Add(values[1]); count = count + 1; } else if (count == 5) { ListaC.Add(values[0]); ListaC.Add(values[1]); ListaC.Add(values[2]); ListaC.Add(values[3]); ListaC.Add(values[4]); ListaC.Add(values[5]); ListaC.Add(values[6]); ListaC.Add(values[7]); ListaC.Add(values[8]); ListaC.Add(values[9]); ListaC.Add(values[10]); ListaC.Add(values[11]); ListaC.Add(values[12]); ListaC.Add(values[13]); ListaC.Add(values[14]); ListaC.Add(values[15]); ListaC.Add(values[16]); ListaC.Add(values[17]); count = count + 1; } else { Causante causantes = new Causante(); string utf8_String = values[2]; byte[] bytes = Encoding.Default.GetBytes(utf8_String); short Num_Correlativo = Convert.ToInt16(values[0]); int Codigo_tipo_causante = Int32.Parse(values[3]); int Codigo_tipo_beneficiario = Int32.Parse(values[7]); int Codigo_tipo_beneficio = Int32.Parse(values[9]); DateTime Fecha_Reconocimiento = DateTime.Parse(values[13]); short Tramo = Convert.ToInt16(values[14]); int Monto_Beneficio = Int32.Parse(values[15]); int Codigo_estado_Tupla = Int32.Parse(values[16]); int Promedio_Renta; try { Promedio_Renta = Int32.Parse(values[18]); } catch (Exception) { Promedio_Renta = 0; } causantes.NUM_CORRELATIVO = Num_Correlativo; causantes.RUT_CAUSANTE = values[1]; causantes.NOMBRE_CAUSANTE = Encoding.UTF8.GetString(bytes); causantes.CODIGO_TIPO_CAUSANTE = Codigo_tipo_causante; causantes.TIPO_CAUSANTE = values[4]; causantes.RUT_BENEFICIARIO = values[5]; causantes.NOMBRE_BENEFICIARIO = values[6]; causantes.CODIGO_TIPO_BENEFICIARIO = Codigo_tipo_beneficiario; causantes.TIPO_BENEFICIARIO = values[8]; causantes.CODIGO_TIPO_BENEFICIO = Codigo_tipo_beneficio; causantes.TIPO_BENEFICIO = values[10]; causantes.RUT_EMPLEADOR = values[11]; causantes.NOMBRE_EMPLEADOR = values[12]; causantes.FECHA_RECONOCIMIENTO = Fecha_Reconocimiento; causantes.TRAMO = Tramo; causantes.MONTO_BENEFICIO = Monto_Beneficio; causantes.CODIGO_ESTADO_TUPLA = Codigo_estado_Tupla; causantes.GLOSA_ESTADO_TUPLA = values[17]; causantes.PROMEDIO_RENTA = Promedio_Renta; causanteDAO.Crear(causantes); count = count + 1; } } } byte[] files = null; Stream stream = Files.InputStream; using (MemoryStream MS = new MemoryStream()) { stream.CopyTo(MS); files = MS.ToArray(); } String Fechas = DateTime.Now.Date.ToString("dd-MM-yyyy"); Documento doc = new Documento(); int id = 1; doc.id_Documento = id; doc.Nombre = Files.FileName.Trim(); doc.documento1 = files; doc.NombreReal = fileName; doc.Fecha = DateTime.Parse(Fechas); documentoDAO.Crear(doc); ViewBag.Message = "Archivo Subiendo"; return(Redirect("Proceso_de_guardado")); } catch (Exception ex) { ViewBag.Message = "Archivo erroneo"; ViewBag.Message = ex; return(View()); } } }
public ActionResult Proceso_de_guardado(String Guardar) { /* si aceptan con todos los datos comienza el proceso de guardado que se guardara los datos de la clase Causante y Documento * a la base de datos ademas que crean 3 listas una en la clase Documento que se almacena en la lista tempora de DocumentoDAO y las dos en la clase Causante una para guardar los repetidos * y otro que esta guardado en la lista temporal de CausanteDAO */ int docs = 0; DocumentoDAO documentoDAO = new DocumentoDAO(); List <Documento> documentos = documentoDAO.GetDocumentos(); CausantesDAO causanteDAO = new CausantesDAO(); List <Causante> causantesguardados = causanteDAO.GetCausantes(); List <Causante> Repetidos = new List <Causante>(); /* primero comienza en los datos guardados en la lista temporal de CausanteDAO se mostrara de uno por uno */ foreach (var items in causantesguardados) { int count = 0; Causante c = new Causante(); c.NUM_CORRELATIVO = items.NUM_CORRELATIVO; c.RUT_CAUSANTE = items.RUT_CAUSANTE; c.NOMBRE_CAUSANTE = items.NOMBRE_CAUSANTE; c.CODIGO_TIPO_CAUSANTE = items.CODIGO_TIPO_CAUSANTE; c.TIPO_CAUSANTE = items.TIPO_CAUSANTE; c.RUT_BENEFICIARIO = items.RUT_BENEFICIARIO; c.NOMBRE_BENEFICIARIO = items.NOMBRE_BENEFICIARIO; c.CODIGO_TIPO_BENEFICIARIO = items.CODIGO_TIPO_BENEFICIARIO; c.TIPO_BENEFICIARIO = items.TIPO_BENEFICIARIO; c.CODIGO_TIPO_BENEFICIO = items.CODIGO_TIPO_BENEFICIO; c.TIPO_BENEFICIO = items.TIPO_BENEFICIO; c.RUT_EMPLEADOR = items.RUT_EMPLEADOR; c.NOMBRE_EMPLEADOR = items.NOMBRE_EMPLEADOR; c.FECHA_RECONOCIMIENTO = items.FECHA_RECONOCIMIENTO; c.TRAMO = items.TRAMO; c.MONTO_BENEFICIO = items.MONTO_BENEFICIO; c.CODIGO_ESTADO_TUPLA = items.CODIGO_ESTADO_TUPLA; c.GLOSA_ESTADO_TUPLA = items.GLOSA_ESTADO_TUPLA; c.PROMEDIO_RENTA = items.PROMEDIO_RENTA; /* aqui se mostrara los datos que estan en la Base de Datos solo se mostrara los datos de NUM_CORRELATIVO y Rut del Causante */ foreach (var item in db.Causante) { count = 0; Causante ca = new Causante(); ca.NUM_CORRELATIVO = item.NUM_CORRELATIVO; ca.RUT_CAUSANTE = item.RUT_CAUSANTE; /* en caso que si el numero NUM_CORRELATIVO de la lista es igual al NUM_CORRELATIVO de la base de datos y el RUT del CAUSANTE de la lista temporal * es igual RUT del CAUSANTE de la base datos entonces se guarda los datos de la lista temporal en otra lista llamada repetidos */ if (c.NUM_CORRELATIVO == ca.NUM_CORRELATIVO && c.RUT_CAUSANTE.Equals(ca.RUT_CAUSANTE)) { Repetidos.Add(c); count = count + 1; break; } } /* si se ha mostrado todos los datos de la base dato y no ha parecido ninguna se guardara como un nuevo causante incluso si * la base de datos esta vacia se los datos del causante se guardara por defecto */ if (count == 0) { db.Causante.Add(c); db.SaveChanges(); } } /* este proceso se mostrara el la lista temporal de DocumetoDAO * */ foreach (var item in documentos) { Documento documento = new Documento(); documento.Archivo = item.Archivo; documento.Tamaño = item.Tamaño; documento.tipo = item.tipo; documento.Fecha = item.Fecha; String fechadoc = item.Fecha.Date.ToString(); fechadoc = fechadoc.Substring(0, 10); String[] Fechacompletadoc = fechadoc.Split('/'); fechadoc = Fechacompletadoc[2] + "/" + Fechacompletadoc[1] + "/" + Fechacompletadoc[0]; /* se muestra los datos de el documeto o los documentos que esta en la base de datos */ foreach (var items in db.Documento) { docs = 0; Documento Documentos = new Documento(); Documentos.Id_documento = items.Id_documento; Documentos.Archivo = items.Archivo; Documentos.Tamaño = items.Tamaño; Documentos.tipo = items.tipo; Documentos.Fecha = items.Fecha; /* si el nombre nombre del el archivo de la lista temporal es igual al nombre de la base de datos * y tipo de la lista temporal es igual al tipo de la base de datos entonces se actualiza la fecha de el documento de la base de datos */ if (Documentos.Archivo.Equals(documento.Archivo) && Documentos.tipo.Equals(documento.tipo)) { docs = docs + 1; conexion.Close(); conexion.Open(); String Cadena = " update Documento set Fecha=" + "'" + documento.Fecha + "'where Id_documento=" + Documentos.Id_documento + ""; SqlCommand command = new SqlCommand(Cadena, conexion); int cant; cant = command.ExecuteNonQuery(); conexion.Close(); break; } } /* si se ha mostrado todos los datos de la base datos y no ha parecido ninguna se guardara como un nuevo Documento incluso si * la base de datos esta vacia se los datos del Documento se guardara por defecto */ if (docs == 0) { db.Documento.Add(documento); db.SaveChanges(); } } /* en el caso de la lista repetido se van actualiza los datos repetidos que estan la base de datos */ foreach (var item in Repetidos) { Causante c = new Causante(); c.NUM_CORRELATIVO = item.NUM_CORRELATIVO; c.RUT_CAUSANTE = item.RUT_CAUSANTE; c.NOMBRE_CAUSANTE = item.NOMBRE_CAUSANTE; c.CODIGO_TIPO_CAUSANTE = item.CODIGO_TIPO_CAUSANTE; c.TIPO_CAUSANTE = item.TIPO_CAUSANTE; c.RUT_BENEFICIARIO = item.RUT_BENEFICIARIO; c.NOMBRE_BENEFICIARIO = item.NOMBRE_BENEFICIARIO; c.CODIGO_TIPO_BENEFICIARIO = item.CODIGO_TIPO_BENEFICIARIO; c.TIPO_BENEFICIARIO = item.TIPO_BENEFICIARIO; c.CODIGO_TIPO_BENEFICIO = item.CODIGO_TIPO_BENEFICIO; c.TIPO_BENEFICIO = item.TIPO_BENEFICIO; c.RUT_EMPLEADOR = item.RUT_EMPLEADOR; c.NOMBRE_EMPLEADOR = item.NOMBRE_EMPLEADOR; c.FECHA_RECONOCIMIENTO = item.FECHA_RECONOCIMIENTO.Date; c.TRAMO = item.TRAMO; c.MONTO_BENEFICIO = item.MONTO_BENEFICIO; c.CODIGO_ESTADO_TUPLA = item.CODIGO_ESTADO_TUPLA; c.GLOSA_ESTADO_TUPLA = item.GLOSA_ESTADO_TUPLA; c.PROMEDIO_RENTA = item.PROMEDIO_RENTA; String fecha = c.FECHA_RECONOCIMIENTO.Date.ToString(); fecha = fecha.Substring(0, 10); String[] Fechacompleta = fecha.Split('/'); fecha = Fechacompleta[2] + "/" + Fechacompleta[1] + "/" + Fechacompleta[0]; conexion.Close(); conexion.Open(); String Cadena = "update Causante set RUT_CAUSANTE=" + "'" + c.RUT_CAUSANTE + "',NOMBRE_CAUSANTE=" + "'" + c.NOMBRE_CAUSANTE + "', CODIGO_TIPO_CAUSANTE=" + c.CODIGO_TIPO_CAUSANTE + ", TIPO_CAUSANTE=" + "'" + c.TIPO_CAUSANTE + "',RUT_BENEFICIARIO=" + "'" + c.RUT_BENEFICIARIO + "', NOMBRE_BENEFICIARIO=" + "'" + c.NOMBRE_BENEFICIARIO + "',CODIGO_TIPO_BENEFICIARIO=" + c.CODIGO_TIPO_BENEFICIARIO + ", TIPO_BENEFICIARIO=" + "'" + c.TIPO_BENEFICIARIO + "', CODIGO_TIPO_BENEFICIO=" + c.CODIGO_TIPO_BENEFICIO + ", TIPO_BENEFICIO=" + "'" + c.TIPO_BENEFICIO + "', RUT_EMPLEADOR=" + "'" + c.RUT_EMPLEADOR + "', FECHA_RECONOCIMIENTO=" + "'" + fecha + "', TRAMO=" + c.TRAMO + ",MONTO_BENEFICIO=" + c.MONTO_BENEFICIO + ",CODIGO_ESTADO_TUPLA=" + c.CODIGO_ESTADO_TUPLA + ", GLOSA_ESTADO_TUPLA= " + "'" + c.GLOSA_ESTADO_TUPLA + "', PROMEDIO_RENTA= " + c.PROMEDIO_RENTA + " where NUM_CORRELATIVO=" + c.NUM_CORRELATIVO + ""; SqlCommand command = new SqlCommand(Cadena, conexion); int cant; cant = command.ExecuteNonQuery(); conexion.Close(); } /* se elimina el documentos que estan en la lista del archivo temporal */ documentoDAO.EliminarDocumento(); /* Direcciona a proceso */ return(Redirect("../Funcionarios/Proceso")); }
public ActionResult Insertar(HttpPostedFileBase Files) { /* se crea dos clase de Dao una para el Causante y otro para el Documento esas clases son para almacenamiento temporal * en caso que en la parte de proceso de guardado se Cancele se tiene que volver al proceso de insertar otra vez, ademas * el documento y todo el almacenamiento que estaban en la Clase DAO se borrara automaticamente * */ CausantesDAO causanteDAO = new CausantesDAO(); DocumentoDAO documentoDAO = new DocumentoDAO(); causanteDAO.EliminarCausantes(); documentoDAO.EliminarDocumento(); List <Causante> causa = new List <Causante>(); /* en caso de que no hay nada en el documento se enviara un mensaje de Archivo Vacio*/ if (Files == null || Files.ContentLength == 0) { return(ViewBag.Message = "Archivo Vacio"); } else { try { /* toma el nombre y el contenido del documento , lo envia y lo guarda en una carpeta llamada "descargas" */ String fileName = Path.GetFileName(Files.FileName); String folderpath = Path.Combine(Server.MapPath("~/Views/Causantes/descargas"), fileName); Files.SaveAs(folderpath); /* toma el contenido del la tabla lo dividi en tres listas las Listas A y B son para contenido que no se guarda * use una variable Llamada Count si el count estan en menor o igual a 4 el contenido * estara en la lista A y B en caso de si una de las filas esta vacia se agregan el Valor Null, * se guardan en las listas A y B si Count es igual a 5 los datos se guardara en la lista C * que son para la Columnas del causante ej: Num.Correlativo , Rut Causante, etc. */ StreamReader streamReader = new StreamReader(Files.InputStream, System.Text.Encoding.UTF8); List <string> ListaA = new List <string>(); List <string> ListaB = new List <string>(); List <string> ListaC = new List <string>(); int count = 0; while (!streamReader.EndOfStream) { var line = streamReader.ReadLine(); if (line.Equals("")) { line = "null|null"; var values = line.Split('|'); ListaA.Add(values[0]); ListaB.Add(values[1]); count = count + 1; } else { var values = line.Split('|'); if (count <= 4 || count == 4) { ListaA.Add(values[0]); ListaB.Add(values[1]); count = count + 1; } else if (count == 5) { ListaC.Add(values[0]); ListaC.Add(values[1]); ListaC.Add(values[2]); ListaC.Add(values[3]); ListaC.Add(values[4]); ListaC.Add(values[5]); ListaC.Add(values[6]); ListaC.Add(values[7]); ListaC.Add(values[8]); ListaC.Add(values[9]); ListaC.Add(values[10]); ListaC.Add(values[11]); ListaC.Add(values[12]); ListaC.Add(values[13]); ListaC.Add(values[14]); ListaC.Add(values[15]); ListaC.Add(values[16]); ListaC.Add(values[17]); count = count + 1; } else { /* ya si Count esta mayor a 5 se guardara los datos de los causantes que al inicio estaran en String al inicio * y algunos datos del causante se conviete en variables Int o Short ej: NUM_CORRELATIVO, CODIGO_TIPO_CAUSANTE * CODIGO_TIPO_BENEFICIARIO, CODIGO_TIPO_BENEFICIO, TRAMO, MONTO_BENEFICIO, CODIGO_ESTADO_TUPLA y PROMEDIO_RENTA * ademas que la fechas son guardardas en la varible DATE y todo los datos de la clase Causante se guardan una Lista Temporal * Llamada CausanteDAO */ Causante causantes = new Causante(); short Num_Correlativo = Convert.ToInt16(values[0]); int Codigo_tipo_causante = Int32.Parse(values[3]); int Codigo_tipo_beneficiario = Int32.Parse(values[7]); int Codigo_tipo_beneficio = Int32.Parse(values[9]); DateTime Fecha_Reconocimiento = DateTime.Parse(values[13].Replace("/", "-")); short Tramo = Convert.ToInt16(values[14]); int Monto_Beneficio = Int32.Parse(values[15]); int Codigo_estado_Tupla = Int32.Parse(values[16]); int Promedio_Renta; /* se enviara un try en caso que el promedio renta sea Null se cambiara un 0 * si no es el caso entonces se enviara el numero que esta en el archivo */ try { Promedio_Renta = Int32.Parse(values[18]); } catch (Exception) { Promedio_Renta = 0; } causantes.NUM_CORRELATIVO = Num_Correlativo; causantes.RUT_CAUSANTE = values[1]; causantes.NOMBRE_CAUSANTE = values[2]; causantes.CODIGO_TIPO_CAUSANTE = Codigo_tipo_causante; causantes.TIPO_CAUSANTE = values[4]; causantes.RUT_BENEFICIARIO = values[5]; causantes.NOMBRE_BENEFICIARIO = values[6]; causantes.CODIGO_TIPO_BENEFICIARIO = Codigo_tipo_beneficiario; causantes.TIPO_BENEFICIARIO = values[8]; causantes.CODIGO_TIPO_BENEFICIO = Codigo_tipo_beneficio; causantes.TIPO_BENEFICIO = values[10]; causantes.RUT_EMPLEADOR = values[11]; causantes.NOMBRE_EMPLEADOR = values[12]; causantes.FECHA_RECONOCIMIENTO = Fecha_Reconocimiento; causantes.TRAMO = Tramo; causantes.MONTO_BENEFICIO = Monto_Beneficio; causantes.CODIGO_ESTADO_TUPLA = Codigo_estado_Tupla; causantes.GLOSA_ESTADO_TUPLA = values[17]; causantes.PROMEDIO_RENTA = Promedio_Renta; causanteDAO.Crear(causantes); count = count + 1; } } } /* si el nombre del documento es igual a nombre del documento que hemos subido entonces se vas a extraer * el nombre, el tamaño, la extension y la fecha del el dia que se subio yse guardara en el archivo temporal de documentoDAO * para mas informacion de la extension dirijase al metodo GetFileTypeByExtension */ String result = string.Empty; String Fechas = DateTime.Now.Date.ToString("yyyy/MM/dd"); foreach (string strfile in Directory.GetFiles(Server.MapPath("~/Views/Causantes/descargas"))) { FileInfo fi = new FileInfo(strfile); if (fi.Name.Equals(fileName)) { Documento documento = new Documento(); documento.Archivo = fi.Name; documento.Tamaño = fi.Length; documento.tipo = GetFileTypeByExtension(fi.Extension); documento.Fecha = DateTime.Parse(Fechas); documentoDAO.Creardocumento(documento); } } /* despues sera enviado al controlador de Proceso_de_guardado */ ViewBag.Message = "Archivo Subiendo"; return(Redirect("Proceso_de_guardado")); } /* en caso qyue el doucmento son sea igual al formato entonces se enviara * un mensaje de error diciedo Archivo Erroneo */ catch (Exception ex) { ViewBag.Message = "Archivo erroneo"; ViewBag.Message = ex; return(View()); } } }