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 Proceso(String id) { List <Causante> listaCausante = causanteDAO.GetCausantes(); List <Funcionario> funcionarios = new List <Funcionario>(); int counts = 0; int count = 0; int c = 0; foreach (var item in listaCausante) { String nombres = " ", apellidos = " ", nombre1 = " ", nombre2 = " ", apellido1 = " ", apellido2 = " ", subapellido1 = " ", subapellido2 = " ", subapellido3 = " "; String[] subs = item.NOMBRE_CAUSANTE.Split(' '); short id_Funcionario = (short)item.NUM_CORRELATIVO; String Rut = item.RUT_CAUSANTE; int Renta = (int)item.PROMEDIO_RENTA; short Activo = 1; if (item.NOMBRE_CAUSANTE.Substring(0, 16).Equals("CARTER DE LA PAZ")) { apellido1 = subapellido3 + " " + subapellido2 + " " + subapellido1; apellido2 = subs[0]; apellidos = apellido1 + " " + apellido2; nombre1 = subs[5]; nombre2 = subs[4]; nombres = nombre1 + " " + nombre2; subapellido1 = subs[3]; subapellido2 = subs[2]; subapellido3 = subs[1]; } else if (item.NOMBRE_CAUSANTE.Substring(0, 16).Equals("GONZALEZ ACEVEDO")) { apellido1 = subs[1]; apellido2 = subs[0]; apellidos = apellido1 + " " + apellido2; nombre1 = subs[2]; nombres = nombre1; } else { apellido1 = subs[1]; apellido2 = subs[0]; apellidos = apellido1 + " " + apellido2; nombre1 = subs[3]; nombre2 = subs[2]; nombres = nombre1 + " " + nombre2; } Funcionario funcionario = new Funcionario(); funcionario.Id_Funcionario = id_Funcionario; funcionario.Rut = Rut; funcionario.Nombres = nombres; funcionario.Apellidos = apellidos; funcionario.RentaPromedio = Renta; funcionario.Activo = Activo; funcionario.Sexo = 0; funcionario.EstadoCivil = 0; funcionario.Fec_nacimiento = null; funcionario.Direccion = "Null"; funcionarios.Add(funcionario); } foreach (var items in db.Funcionarios) { Funcionario funcionario1 = new Funcionario(); funcionario1.Id_Funcionario = items.Id_Funcionario; foreach (var item in funcionarios) { Funcionario funcionario = new Funcionario(); funcionario.Id_Funcionario = item.Id_Funcionario; funcionario.Rut = item.Rut; funcionario.Nombres = item.Nombres; funcionario.Apellidos = item.Apellidos; funcionario.RentaPromedio = item.RentaPromedio; funcionario.Activo = item.Activo; funcionario.Sexo = item.Sexo; funcionario.EstadoCivil = item.EstadoCivil; funcionario.Fec_nacimiento = item.Fec_nacimiento; funcionario.Direccion = item.Direccion; if (items.Id_Funcionario == item.Id_Funcionario && items.Rut.Equals(item.Rut)) { counts = 1; funcionario1.Activo = 1; conexion.Close(); conexion.Open(); String Cadena = "update Funcionario set Activo =" + funcionario1.Activo + "where Id_Funcionario =" + funcionario1.Id_Funcionario + ""; SqlCommand command = new SqlCommand(Cadena, conexion); int cant; cant = command.ExecuteNonQuery(); conexion.Close(); c = c + 1; break; } else { count = 1 + count; } if (count > 0) { c = c + 1; funcionario1.Activo = 0; conexion.Close(); conexion.Open(); String Cadena = "update Funcionario set Activo =" + funcionario1.Activo + "where Id_Funcionario =" + funcionario1.Id_Funcionario + ""; SqlCommand command = new SqlCommand(Cadena, conexion); int cant; cant = command.ExecuteNonQuery(); conexion.Close(); } if (counts == 0) { db.Funcionarios.Add(funcionario); db.SaveChanges(); } } } if (c == 0) { db.Funcionarios.AddRange(funcionarios); db.SaveChanges(); } return(Redirect("../Causantes/Descargar")); }
public ActionResult Proceso(String id) { // se crea dos Listas distintas una que esta guardado en el CausanteDAO y otro una lista con la clase funcionario List <Causante> listaCausante = causanteDAO.GetCausantes(); List <Funcionario> funcionarios = new List <Funcionario>(); List <Funcionario> repetidos = new List <Funcionario>(); List <Funcionario> norepetidos = new List <Funcionario>(); List <Funcionario> nuevo = new List <Funcionario>(); /* se crea 3 variables una para guardar a los nuevos funcionarios otro * para activar funcionarios y otro para desactivar los funcionarios */ int on = 1; int c = 0; int b; foreach (var item in listaCausante) { /* se crea las variables strings para guardar los nombres y apellidos, el nombre 1 es el nombre principal, * el nombre2 es el nombre secundarios, el apellido1 es el apellido paterno y el apellido 2 es para el apellido materno * el arreglo subs es para separar el nombre completo por espacio y las variables que seran almacenadas en el objectos Funcionario son el Num.Correlativo * como una Id para el funcionario el nombre como dije en lo anterior para sera separados para el nombre y apellido el Promedio_Renta en la RentaPromedio el activo * como numero preterminado sera 1 */ String nombres = " ", apellidos = " ", nombre1 = " ", nombre2 = " ", apellido1 = " ", apellido2 = " ", subapellido1 = " ", subapellido2 = " ", subapellido3 = " "; String[] subs = item.NOMBRE_CAUSANTE.Split(' '); short id_Funcionario = (short)item.NUM_CORRELATIVO; String Rut = item.RUT_CAUSANTE; int Renta = (int)item.PROMEDIO_RENTA; short Activo = 1; /* si los apellidos son "CARTER DE LA PAZ" se divide los apellidos en 4. * 3 de ellos son subsapellidos que son: DE LA PAZ que al final son un apellido unido con el segundo apellido : CARTER que al final son el resultado es: * "DE LA PAZ CARTER"*/ if (item.NOMBRE_CAUSANTE.Substring(0, 16).Equals("CARTER DE LA PAZ")) { subapellido1 = subs[3]; subapellido2 = subs[2]; subapellido3 = subs[1]; apellido1 = subapellido3 + " " + subapellido2 + " " + subapellido1; apellido2 = subs[0]; apellidos = apellido1 + " " + apellido2; nombre1 = subs[5]; nombre2 = subs[4]; nombres = nombre1 + " " + nombre2; } /* si no es el Caso y los apellidos son "GONZALEZ ACEVEDO" y terminan en un solo nombre se inviterte los apellidos y separa el nombre */ else if (item.NOMBRE_CAUSANTE.Substring(0, 16).Equals("GONZALEZ ACEVEDO")) { apellido1 = subs[1]; apellido2 = subs[0]; apellidos = apellido1 + " " + apellido2; nombre1 = subs[2]; nombres = nombre1; } /* si no es ninguno de los casos por defecto de dividira en 4 2 nombre y 2 apellidos*/ else { apellido1 = subs[1]; apellido2 = subs[0]; apellidos = apellido1 + " " + apellido2; nombre1 = subs[3]; nombre2 = subs[2]; nombres = nombre1 + " " + nombre2; } /* los datos de los causantes como Rut Nombre promedio_Renta estaran * en los funcionarios como Rut, nombre, apelldios y Renta_promedio y los deams datos en 0 o nulos */ Funcionario funcionario = new Funcionario(); funcionario.Id_Funcionario = id_Funcionario; funcionario.Rut = Rut; funcionario.Nombres = nombres; funcionario.Apellidos = apellidos; funcionario.RentaPromedio = Renta; funcionario.Activo = Activo; funcionario.Sexo = 0; funcionario.EstadoCivil = 0; funcionario.Fec_nacimiento = null; funcionario.Direccion = "Null"; /* Los objectos seran almacenados en una lista de objectos de Funcionarios */ funcionarios.Add(funcionario); } /* se va a mostrar los datos almacenados en la base de datos en el objecto Funcionario y counts se va a 0 y el objecto almacenado */ foreach (var ilem in funcionarios) { b = 0; Funcionario funcionario = new Funcionario(); funcionario.Id_Funcionario = ilem.Id_Funcionario; funcionario.Rut = ilem.Rut; funcionario.Nombres = ilem.Nombres; funcionario.Apellidos = ilem.Apellidos; funcionario.RentaPromedio = ilem.RentaPromedio; funcionario.Activo = ilem.Activo; funcionario.Sexo = ilem.Sexo; funcionario.EstadoCivil = ilem.EstadoCivil; funcionario.Fec_nacimiento = ilem.Fec_nacimiento; funcionario.Direccion = ilem.Direccion; /* se va a leer los datos del objecto Funcionario solamente su id y su rut */ foreach (var items in db.Funcionario) { Funcionario funcionario1 = new Funcionario(); funcionario1.Id_Funcionario = items.Id_Funcionario; funcionario1.Rut = items.Rut; /*si la id del funcionario de la lista es igual a la id del funcionario de la base de datos y * el rut del funcionario de la lista es igual al rut del funcionario enttonces los datos de la lista * se guardara a otra lista llamada repetidos con los mismo parametros del objectos Funcionario */ if (funcionario1.Id_Funcionario == ilem.Id_Funcionario && funcionario1.Rut.Equals(ilem.Rut)) { b = 0; c = c + 1; repetidos.Add(funcionario); } /*si no se guardara en otra lista con el nombre de los norepetidos con los datos del objeto funcionario de la base de datos * y la variable b y c se va a acumular */ else { on = 0; c = c + 1; b = b + 1; norepetidos.Add(funcionario1); } /*si la variable b es igual al conteo del foreach de la base de datos del funcionario entonces este dato es un nuevo funcionario * y se guarda en la lista de nuevo */ if (b == db.Funcionario.Count()) { nuevo.Add(funcionario); } } } /*Se crea un foreach y se va a leer los datos de la lista del norepetido y va modificar del activo va a ser 0 * como si fuera una nueva hoja de activos mayormente a todos los funcionarios van a ser 0 al inicio */ foreach (var item in norepetidos) { Funcionario funcionario = new Funcionario(); funcionario.Id_Funcionario = item.Id_Funcionario; conexion.Close(); conexion.Open(); String Cadena = "update Funcionario set Activo =" + 0 + "where Id_Funcionario =" + funcionario.Id_Funcionario + ""; SqlCommand command = new SqlCommand(Cadena, conexion); int cant; cant = command.ExecuteNonQuery(); conexion.Close(); } /* se crea un foreach para leer los datos de la lista de los repetidos va a cambiar su activo a 1 en la base de datos * entonces solo va a pasar a los funcionarios que estan repetidos */ foreach (var item in repetidos) { Funcionario funcionario = new Funcionario(); funcionario.Id_Funcionario = item.Id_Funcionario; conexion.Close(); conexion.Open(); String Cadena = "update Funcionario set Activo =" + 1 + "where Id_Funcionario =" + funcionario.Id_Funcionario + ""; SqlCommand command = new SqlCommand(Cadena, conexion); int cant; cant = command.ExecuteNonQuery(); conexion.Close(); } /* se crea un foreach para leer a los nuevos y la variable on va a ser igual a 1 */ foreach (var item in nuevo) { on = 1; } /*si la varible on es igual a 1 entonces inicia la siguiente secuencia*/ if (on == 1) { /*en caso que la base de datos esta vacia, la Variable c estara en 0 * y la lista de objectos funcionarios se guardara en la Base de datos por DEFAULT */ if (c == 0) { db.Funcionario.AddRange(funcionarios); } /* sino entonces los datos de la lista nuevo se añade a la base de datos */ else { db.Funcionario.AddRange(nuevo); } /*se elimina los datos del archivo temporal con su lista y se guarda los datos de la base de datos ademas * se redireciona al proceso de descargar */ causanteDAO.EliminarCausantes(); db.SaveChanges(); return(Redirect("../Causantes/Descargar")); } /*si on esta en 0 entonces se elimina los datos del archivo temporal con su lista y se redireciona al proceso de descargar */ else { causanteDAO.EliminarCausantes(); return(Redirect("../Causantes/Descargar")); } }
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")); }