public static Sucursal getSucursaloById(Int64 pId) { Sucursal item = null; using (MySqlConnection _con = new Conexion().Conectar()) { try { _con.Open(); MySqlCommand cmdGetItemById = new MySqlCommand("select * from sucursal where Id=@pId", _con); cmdGetItemById.Parameters.AddWithValue("@pId", pId); MySqlDataReader _reader = cmdGetItemById.ExecuteReader(); while (_reader.Read()) { item = new Sucursal( _reader.GetInt64(0), _reader.GetString(1), _reader.GetString(2), _reader.GetString(3), CursoDAL.getCursosByIdSucursal(_reader.GetInt64(0), null) ); } _reader.Close(); } catch (Exception ex) { _con.Close(); throw ex; } finally { _con.Close(); } } return(item); }
public static bool syncCuotas(Int64 pIdCurso, Int64 pUserId) { bool result = true; bool registro = false; List <Cuota> lista = new List <Cuota>(); List <Matricula> matriculas = new List <Matricula>(); Curso curso = CursoDAL.getCursoById(pIdCurso); DateTime fechaFin = Convert.ToDateTime(curso.Hasta); using (MySqlConnection _con = new Conexion().Conectar()) { try { _con.Open(); MySqlTransaction _trans = _con.BeginTransaction(); MySqlCommand cmdGetMatriculas = new MySqlCommand("select Id from matricula where IdCurso=@pIdCurso order by Id asc", _con); cmdGetMatriculas.Parameters.AddWithValue("@pIdCurso", pIdCurso); MySqlDataReader _reader = cmdGetMatriculas.ExecuteReader(); while (_reader.Read()) { matriculas.Add(MatriculaDAL.getMatriculaById(_reader.GetInt64(0))); } _reader.Close(); foreach (Matricula matricula in matriculas) { DateTime fechaIni = Convert.ToDateTime(matricula.FhRegistro); if (matricula != null) { for (int i = 0; i < (Math.Abs((fechaFin.Month - fechaIni.Month) + 12 * (fechaFin.Year - fechaIni.Year)) + 1); i++) { int val1 = (fechaIni.AddMonths(i)).Month; int val2 = (fechaIni.AddMonths(i)).Year; string fecha = fechaIni.AddMonths(i).ToString("yyyy") + "-" + fechaIni.AddMonths(i).ToString("MM") + "-" + (DateTime.DaysInMonth(fechaIni.AddMonths(i).Year, fechaIni.AddMonths(i).Month) > Convert.ToInt32(matricula.DiaLimite) ? matricula.DiaLimite : DateTime.DaysInMonth(fechaIni.AddMonths(i).Year, fechaIni.AddMonths(i).Month).ToString()); if (Convert.ToInt32(matricula.DiaLimite) < Convert.ToDateTime(curso.Desde).Day&& Convert.ToDateTime(curso.Desde).AddMonths(i).ToString("MM") == Convert.ToDateTime(matricula.FhRegistro).ToString("MM")) { fecha = fechaIni.ToString("yyyy") + "-" + fechaIni.AddMonths(i).ToString("MM") + "-" + Convert.ToDateTime(curso.Desde).Day; } Cuota cuota = getCuotaByMonth(matricula.Id, (fechaIni.AddMonths(i)).Month, (fechaIni.AddMonths(i)).Year); if (cuota == null) { MySqlCommand cmdInsertCuota = new MySqlCommand("Insert into cuota (FhRegistro,Precio,Total,IdMatricula) values ('" + fecha + "',@Precio,@Total,@IdMatricula)", _con, _trans); cmdInsertCuota.Parameters.AddWithValue("@Precio", Properties.Settings.Default.PrecioCuota); cmdInsertCuota.Parameters.AddWithValue("@Total", "0.00"); cmdInsertCuota.Parameters.AddWithValue("@IdMatricula", matricula.Id); if (cmdInsertCuota.ExecuteNonQuery() <= 0) { result = false; } else { registro = true; } } } List <Cuota> cuotas = matricula.Cuotas.Where(a => Convert.ToDateTime(a.FhRegistro) < Convert.ToDateTime(curso.Desde) || Convert.ToDateTime(a.FhRegistro) > Convert.ToDateTime(curso.Hasta)).ToList(); foreach (Cuota cuota in cuotas) { if (MatricdetfacDAL.getMatricdetfacByIdCuota(cuota.Id) == null) { MySqlCommand cmdInsertCuota = new MySqlCommand("delete from cuota where Id=@Id", _con, _trans); cmdInsertCuota.Parameters.AddWithValue("@Id", cuota.Id); if (cmdInsertCuota.ExecuteNonQuery() <= 0) { result = false; } else { registro = true; } if (result) { MySqlCommand cmdInsertAuditoria = new MySqlCommand("Insert into regemphist (Detalle,Accion,TipoRegistro,IdUserEmp) values (@Detalle,@Accion,@TipoRegistro,@IdUserEmp)", _con, _trans); cmdInsertAuditoria.Parameters.AddWithValue("@Detalle", "Sincronizó cuotas en el sistema y se elimino permanentemente la cuota con Id " + cuota.Id + " de la matricula con Id " + matricula.Id + " ya que no habia sido cancelada ni anulada en ningun caso posible."); cmdInsertAuditoria.Parameters.AddWithValue("@Accion", "Eliminar"); cmdInsertAuditoria.Parameters.AddWithValue("@TipoRegistro", "Cuotas"); cmdInsertAuditoria.Parameters.AddWithValue("@IdUserEmp", pUserId); if (cmdInsertAuditoria.ExecuteNonQuery() <= 0) { result = false; } } } } } } if (result && registro) { if (result) { MySqlCommand cmdInsertAuditoria = new MySqlCommand("Insert into regemphist (Detalle,Accion,TipoRegistro,IdUserEmp) values (@Detalle,@Accion,@TipoRegistro,@IdUserEmp)", _con, _trans); cmdInsertAuditoria.Parameters.AddWithValue("@Detalle", "Sincronizó cuotas en el sistema."); cmdInsertAuditoria.Parameters.AddWithValue("@Accion", "Registrar"); cmdInsertAuditoria.Parameters.AddWithValue("@TipoRegistro", "Cuotas"); cmdInsertAuditoria.Parameters.AddWithValue("@IdUserEmp", pUserId); if (cmdInsertAuditoria.ExecuteNonQuery() <= 0) { result = false; } } } if (result) { if (registro) { _trans.Commit(); } } else { _trans.Rollback(); } } catch (Exception ex) { _con.Close(); throw ex; } finally { _con.Close(); } } return(result); }
public static bool updateMatricula(Matricula item, Useremp pUser) { bool result = true; using (MySqlConnection _con = new Conexion().Conectar()) { _con.Open(); MySqlTransaction _trans = _con.BeginTransaction(); try { Matricula matricula = getMatriculaById(item.Id); MySqlCommand cmdUpdatePersona = new MySqlCommand("update persona set Nombre=@Nombre,Dui=@Dui,Nit=@Nit,Direccion=@Direccion,FechaNac=@FechaNac where Id=@Id", _con, _trans); cmdUpdatePersona.Parameters.AddWithValue("@Id", item.Estudiante.Persona.Id); cmdUpdatePersona.Parameters.AddWithValue("@Nombre", item.Estudiante.Persona.Nombre); cmdUpdatePersona.Parameters.AddWithValue("@Dui", item.Estudiante.Persona.Dui); cmdUpdatePersona.Parameters.AddWithValue("@Nit", item.Estudiante.Persona.Nit); cmdUpdatePersona.Parameters.AddWithValue("@Direccion", item.Estudiante.Persona.Direccion); cmdUpdatePersona.Parameters.AddWithValue("@FechaNac", Convert.ToDateTime(item.Estudiante.Persona.FechaNac).ToString("yyyy-MM-dd")); if (cmdUpdatePersona.ExecuteNonQuery() <= 0) { result = false; } MySqlCommand cmdUpdateEstudiante = new MySqlCommand("update estudiante set ApPaterno=@ApPaterno,ApMaterno=@ApMaterno, " + "Telefono=@Telefono,Enfermedad=@Enfermedad,Correo=@Correo,TelEmergencia=@TelEmergencia,ParentEmergencia=@ParentEmergencia,IdPersona=@IdPersona " + "where Id=@Id", _con, _trans); cmdUpdateEstudiante.Parameters.AddWithValue("@Id", item.Estudiante.Id); cmdUpdateEstudiante.Parameters.AddWithValue("@ApPaterno", item.Estudiante.ApPaterno); cmdUpdateEstudiante.Parameters.AddWithValue("@ApMaterno", item.Estudiante.ApMaterno); cmdUpdateEstudiante.Parameters.AddWithValue("@Telefono", item.Estudiante.Telefono); cmdUpdateEstudiante.Parameters.AddWithValue("@Enfermedad", item.Estudiante.Enfermedad); cmdUpdateEstudiante.Parameters.AddWithValue("@Correo", item.Estudiante.Correo); cmdUpdateEstudiante.Parameters.AddWithValue("@TelEmergencia", item.Estudiante.TelEmergencia); cmdUpdateEstudiante.Parameters.AddWithValue("@ParentEmergencia", item.Estudiante.ParentEmergencia); cmdUpdateEstudiante.Parameters.AddWithValue("@IdPersona", item.Estudiante.IdPersona); if (cmdUpdateEstudiante.ExecuteNonQuery() <= 0) { result = false; } MySqlCommand cmdUpdateMatricula = new MySqlCommand("update matricula set FhRegistro=@FhRegistro,Becado=@Becado,DiaLimite=@DiaLimite,IdCurso=@IdCurso where Id=@Id", _con, _trans); cmdUpdateMatricula.Parameters.AddWithValue("@Id", item.Id); cmdUpdateMatricula.Parameters.AddWithValue("@FhRegistro", item.FhRegistro); cmdUpdateMatricula.Parameters.AddWithValue("@Becado", item.Becado); cmdUpdateMatricula.Parameters.AddWithValue("@DiaLimite", item.DiaLimite); cmdUpdateMatricula.Parameters.AddWithValue("@IdCurso", item.IdCurso); if (cmdUpdateMatricula.ExecuteNonQuery() <= 0) { result = false; } if (result) { foreach (Detmatricula detMatricula in item.Padres) { if (detMatricula.Id == 0) { if (detMatricula.encargado.Id == 0) { MySqlCommand cmdInsertPersona = new MySqlCommand("Insert into persona (Nombre,Dui,Nit,Direccion) values (@Nombre, @Dui, @Nit, @Direccion)", _con, _trans); cmdInsertPersona.Parameters.AddWithValue("@Nombre", detMatricula.encargado.Persona.Nombre); cmdInsertPersona.Parameters.AddWithValue("@Dui", ""); cmdInsertPersona.Parameters.AddWithValue("@Nit", ""); cmdInsertPersona.Parameters.AddWithValue("@Direccion", detMatricula.encargado.Persona.Direccion); if (cmdInsertPersona.ExecuteNonQuery() <= 0) { result = false; } else { MySqlCommand cmdUltimoId = new MySqlCommand("select last_insert_id() as id;", _con); cmdUltimoId.Transaction = _trans; detMatricula.encargado.Persona.Id = Convert.ToInt32(cmdUltimoId.ExecuteScalar()); detMatricula.encargado.IdPersona = Convert.ToInt32(cmdUltimoId.ExecuteScalar()); } MySqlCommand cmdInsertEncargado = new MySqlCommand("Insert into encargado (LugarTrabajo,Trabajo,Telefono,IdPersona) values (@LugarTrabajo,@Trabajo,@Telefono,@IdPersona)", _con, _trans); cmdInsertEncargado.Parameters.AddWithValue("@LugarTrabajo", detMatricula.encargado.LugarTrabajo); cmdInsertEncargado.Parameters.AddWithValue("@Trabajo", detMatricula.encargado.Trabajo); cmdInsertEncargado.Parameters.AddWithValue("@Telefono", detMatricula.encargado.Telefono); cmdInsertEncargado.Parameters.AddWithValue("@IdPersona", detMatricula.encargado.IdPersona); if (cmdInsertEncargado.ExecuteNonQuery() <= 0) { result = false; } else { MySqlCommand cmdUltimoId = new MySqlCommand("select last_insert_id() as id;", _con); cmdUltimoId.Transaction = _trans; detMatricula.IdEncargado = Convert.ToInt32(cmdUltimoId.ExecuteScalar()); detMatricula.encargado.Id = Convert.ToInt32(cmdUltimoId.ExecuteScalar()); } MySqlCommand cmdInsertDetMatricula = new MySqlCommand("Insert into detmatricula (Parentesco,IdMatricula,IdEncargado) values (@Parentesco,@IdMatricula,@IdEncargado)", _con, _trans); cmdInsertDetMatricula.Parameters.AddWithValue("@Parentesco", detMatricula.Parentesco); cmdInsertDetMatricula.Parameters.AddWithValue("@IdMatricula", item.Id); cmdInsertDetMatricula.Parameters.AddWithValue("@IdEncargado", detMatricula.IdEncargado); if (cmdInsertDetMatricula.ExecuteNonQuery() <= 0) { result = false; } else { MySqlCommand cmdUltimoId = new MySqlCommand("select last_insert_id() as id;", _con); cmdUltimoId.Transaction = _trans; detMatricula.Id = Convert.ToInt32(cmdUltimoId.ExecuteScalar()); } } else { MySqlCommand cmdInsertDetMatricula = new MySqlCommand("Insert into detmatricula (Parentesco,IdMatricula,IdEncargado) values (@Parentesco,@IdMatricula,@IdEncargado)", _con, _trans); cmdInsertDetMatricula.Parameters.AddWithValue("@Parentesco", detMatricula.Parentesco); cmdInsertDetMatricula.Parameters.AddWithValue("@IdMatricula", detMatricula.IdMatricula); cmdInsertDetMatricula.Parameters.AddWithValue("@IdEncargado", detMatricula.IdEncargado); if (cmdInsertDetMatricula.ExecuteNonQuery() <= 0) { result = false; } else { MySqlCommand cmdUltimoId = new MySqlCommand("select last_insert_id() as id;", _con); cmdUltimoId.Transaction = _trans; detMatricula.Id = Convert.ToInt32(cmdUltimoId.ExecuteScalar()); } } } else { //actualizar persona MySqlCommand cmdUpdatePersonaEnc = new MySqlCommand("update persona set Nombre=@Nombre,Direccion=@Direccion where Id=@Id", _con, _trans); cmdUpdatePersonaEnc.Parameters.AddWithValue("@Id", detMatricula.encargado.Persona.Id); cmdUpdatePersonaEnc.Parameters.AddWithValue("@Nombre", detMatricula.encargado.Persona.Nombre); cmdUpdatePersonaEnc.Parameters.AddWithValue("@Direccion", detMatricula.encargado.Persona.Direccion); if (cmdUpdatePersonaEnc.ExecuteNonQuery() <= 0) { result = false; } MySqlCommand cmdUpdateEncargado = new MySqlCommand("update encargado set LugarTrabajo=@LugarTrabajo,Trabajo=@Trabajo,Telefono=@Telefono where Id=@Id", _con, _trans); cmdUpdateEncargado.Parameters.AddWithValue("@Id", detMatricula.encargado.Id); cmdUpdateEncargado.Parameters.AddWithValue("@LugarTrabajo", detMatricula.encargado.LugarTrabajo); cmdUpdateEncargado.Parameters.AddWithValue("@Trabajo", detMatricula.encargado.Trabajo); cmdUpdateEncargado.Parameters.AddWithValue("@Telefono", detMatricula.encargado.Telefono); if (cmdUpdateEncargado.ExecuteNonQuery() <= 0) { result = false; } } } } if (result) { DateTime date = Convert.ToDateTime(item.FhRegistro); Curso curso = CursoDAL.getCursoById(item.IdCurso); foreach (Cuota cuota in item.Cuotas) { MySqlCommand cmdInsertCuota = new MySqlCommand("update cuota set FhRegistro=@FhRegistro where Id=@pId", _con, _trans); cmdInsertCuota.Parameters.AddWithValue("@FhRegistro", Convert.ToDateTime(cuota.FhRegistro).ToString("yyyy") + "/" + Convert.ToDateTime(cuota.FhRegistro).ToString("MM") + "/" + (Validation.Validation.getMaxDayMonth(Convert.ToDateTime(cuota.FhRegistro).Month) > Convert.ToInt32(item.DiaLimite) ? item.DiaLimite : Validation.Validation.getMaxDayMonth(Convert.ToDateTime(cuota.FhRegistro).Month).ToString())); cmdInsertCuota.Parameters.AddWithValue("@pId", cuota.Id); if (cmdInsertCuota.ExecuteNonQuery() <= 0) { result = false; } } } if (result) { foreach (Detmatricula detMatricula in matricula.Padres) { if (item.Padres.Where(a => a.Id == detMatricula.Id).FirstOrDefault() == null) { MySqlCommand cmdDeleteDetMatricula = new MySqlCommand("Delete from detmatricula where Id=@pId;", _con, _trans); cmdDeleteDetMatricula.Parameters.AddWithValue("@pId", detMatricula.Id); if (cmdDeleteDetMatricula.ExecuteNonQuery() <= 0) { result = false; } } } } if (result) { Estudiante est = matricula.Estudiante; MySqlCommand cmdInsertAuditoria = new MySqlCommand("Insert into regemphist (Detalle,Accion,TipoRegistro,IdUserEmp) values (@Detalle,@Accion,@TipoRegistro,@IdUserEmp)", _con, _trans); cmdInsertAuditoria.Parameters.AddWithValue("@Detalle", "Actualizó la información de inscripción del alumno \"" + est.Persona.Nombre + "\" valores antiguos: \n" + "Nombre: " + est.Persona.Nombre + ", Apellido Paterno: " + est.ApPaterno + ", Apellido Materno: " + est.ApMaterno + ", Fecha de Nacimiento: " + est.Persona.FechaNac + ", " + "Enfermedad: " + est.Enfermedad + ", Dirección: " + est.Persona.Direccion + ", Correo: " + est.Correo + ", Teléfono: " + est.Telefono + ", Teléfono de emergencias: " + est.TelEmergencia + ", Parentesco o nombre: " + est.ParentEmergencia + ", Curso: " + CursoDAL.getCursoById(matricula.IdCurso).Nombre + ", Dia limite de pago: " + matricula.DiaLimite + ", Becado: " + (matricula.Becado == 0 ? "No" : "Si") + (matricula.Padres.Where(a => a.Parentesco == "Padre").FirstOrDefault() == null ? "" : ", Padre:" + matricula.Padres.Where(a => a.Parentesco == "Padre").FirstOrDefault().encargado.Persona.Nombre) + (matricula.Padres.Where(a => a.Parentesco == "Madre").FirstOrDefault() == null ? ".\n" : ", Madre: " + matricula.Padres.Where(a => a.Parentesco == "Madre").FirstOrDefault().encargado.Persona.Nombre) + "Datos Nuevos: \n" + "Nombre: " + item.Estudiante.Persona.Nombre + ", Apellido Paterno: " + item.Estudiante.ApPaterno + ", Apellido Materno: " + item.Estudiante.ApMaterno + ", Fecha de Nacimiento: " + item.Estudiante.Persona.FechaNac + ", " + "Enfermedad: " + item.Estudiante.Enfermedad + ", Dirección: " + item.Estudiante.Persona.Direccion + ", Correo: " + item.Estudiante.Correo + ", Teléfono: " + item.Estudiante.Telefono + ", Teléfono de emergencias: " + item.Estudiante.TelEmergencia + ", Parentesco o nombre: " + item.Estudiante.ParentEmergencia + ", Curso: " + CursoDAL.getCursoById(item.IdCurso).Nombre + ", Dia limite de pago: " + item.DiaLimite + ", Becado: " + (item.Becado == 0 ? "No" : "Si") + (item.Padres.Where(a => a.Parentesco == "Padre").FirstOrDefault() == null ? "" : ", Padre:" + item.Padres.Where(a => a.Parentesco == "Padre").FirstOrDefault().encargado.Persona.Nombre) + (item.Padres.Where(a => a.Parentesco == "Madre").FirstOrDefault() == null ? ".\n" : ", Madre: " + item.Padres.Where(a => a.Parentesco == "Madre").FirstOrDefault().encargado.Persona.Nombre)); cmdInsertAuditoria.Parameters.AddWithValue("@Accion", "Actualizar"); cmdInsertAuditoria.Parameters.AddWithValue("@TipoRegistro", "Curso"); cmdInsertAuditoria.Parameters.AddWithValue("@IdUserEmp", pUser.Id); if (cmdInsertAuditoria.ExecuteNonQuery() <= 0) { result = false; } } if (result) { _trans.Commit(); } else { _trans.Rollback(); } } catch (Exception ex) { _con.Close(); throw ex; } finally { _con.Close(); } } return(result); }
public static bool insertMatricula(Matricula item, Useremp pUser) { bool result = true; using (MySqlConnection _con = new Conexion().Conectar()) { _con.Open(); MySqlTransaction _trans = _con.BeginTransaction(); try { if (item.Estudiante.Id == 0) { MySqlCommand cmdInsertPersona = new MySqlCommand("Insert into persona (Nombre,Dui,Nit,FechaNac,Direccion) values (@Nombre,@Dui,@Nit,@FechaNac,@Direccion)", _con, _trans); cmdInsertPersona.Parameters.AddWithValue("@Nombre", item.Estudiante.Persona.Nombre); cmdInsertPersona.Parameters.AddWithValue("@Dui", ""); cmdInsertPersona.Parameters.AddWithValue("@Nit", ""); cmdInsertPersona.Parameters.AddWithValue("@FechaNac", item.Estudiante.Persona.FechaNac); cmdInsertPersona.Parameters.AddWithValue("@Direccion", item.Estudiante.Persona.Direccion); if (cmdInsertPersona.ExecuteNonQuery() <= 0) { result = false; } else { MySqlCommand cmdUltimoId = new MySqlCommand("select last_insert_id() as id;", _con); cmdUltimoId.Transaction = _trans; item.Estudiante.Persona.Id = Convert.ToInt32(cmdUltimoId.ExecuteScalar()); item.Estudiante.IdPersona = Convert.ToInt32(cmdUltimoId.ExecuteScalar()); } MySqlCommand cmdInsertEstudiante = new MySqlCommand("Insert into estudiante (ApPaterno,ApMaterno,Telefono,Enfermedad,Correo,TelEmergencia,ParentEmergencia,IdPersona) values " + "(@ApPaterno,@ApMaterno,@Telefono,@Enfermedad,@Correo,@TelEmergencia,@ParentEmergencia,@IdPersona)", _con, _trans); cmdInsertEstudiante.Parameters.AddWithValue("@ApPaterno", item.Estudiante.ApPaterno); cmdInsertEstudiante.Parameters.AddWithValue("@ApMaterno", item.Estudiante.ApMaterno); cmdInsertEstudiante.Parameters.AddWithValue("@Telefono", item.Estudiante.Telefono); cmdInsertEstudiante.Parameters.AddWithValue("@Enfermedad", item.Estudiante.Enfermedad); cmdInsertEstudiante.Parameters.AddWithValue("@Correo", item.Estudiante.Correo); cmdInsertEstudiante.Parameters.AddWithValue("@TelEmergencia", item.Estudiante.TelEmergencia); cmdInsertEstudiante.Parameters.AddWithValue("@ParentEmergencia", item.Estudiante.ParentEmergencia); cmdInsertEstudiante.Parameters.AddWithValue("@IdPersona", item.Estudiante.IdPersona); if (cmdInsertEstudiante.ExecuteNonQuery() <= 0) { result = false; } else { MySqlCommand cmdUltimoId = new MySqlCommand("select last_insert_id() as id;", _con); cmdUltimoId.Transaction = _trans; item.IdEstudiante = Convert.ToInt32(cmdUltimoId.ExecuteScalar()); item.Estudiante.Id = Convert.ToInt32(cmdUltimoId.ExecuteScalar()); } } if (result) { MySqlCommand cmdInsertMatricula = new MySqlCommand("Insert into matricula (FhRegistro,Becado,DiaLimite,IdCurso,IdEstudiante) values (@FhRegistro,@Becado,@DiaLimite,@IdCurso,@IdEstudiante)", _con, _trans); cmdInsertMatricula.Parameters.AddWithValue("@FhRegistro", item.FhRegistro); cmdInsertMatricula.Parameters.AddWithValue("@Becado", item.Becado); cmdInsertMatricula.Parameters.AddWithValue("@DiaLimite", item.DiaLimite); cmdInsertMatricula.Parameters.AddWithValue("@IdCurso", item.IdCurso); cmdInsertMatricula.Parameters.AddWithValue("@IdEstudiante", item.Estudiante.Id); if (cmdInsertMatricula.ExecuteNonQuery() <= 0) { result = false; } else { MySqlCommand cmdUltimoId = new MySqlCommand("select last_insert_id() as id;", _con); cmdUltimoId.Transaction = _trans; item.Id = Convert.ToInt32(cmdUltimoId.ExecuteScalar()); } } if (result) { foreach (Detmatricula detMatricula in item.Padres) { if (detMatricula.IdEncargado == 0) { MySqlCommand cmdInsertPersona = new MySqlCommand("Insert into persona (Nombre,Dui,Nit,Direccion) values (@Nombre,@Dui,@Nit,@Direccion)", _con, _trans); cmdInsertPersona.Parameters.AddWithValue("@Nombre", detMatricula.encargado.Persona.Nombre); cmdInsertPersona.Parameters.AddWithValue("@Dui", ""); cmdInsertPersona.Parameters.AddWithValue("@Nit", ""); cmdInsertPersona.Parameters.AddWithValue("@Direccion", detMatricula.encargado.Persona.Direccion); if (cmdInsertPersona.ExecuteNonQuery() <= 0) { result = false; } else { MySqlCommand cmdUltimoId = new MySqlCommand("select last_insert_id() as id;", _con); cmdUltimoId.Transaction = _trans; detMatricula.encargado.Persona.Id = Convert.ToInt32(cmdUltimoId.ExecuteScalar()); detMatricula.encargado.IdPersona = Convert.ToInt32(cmdUltimoId.ExecuteScalar()); } MySqlCommand cmdInsertEncargado = new MySqlCommand("Insert into encargado (LugarTrabajo,Trabajo,Telefono,IdPersona) values (@LugarTrabajo,@Trabajo,@Telefono,@IdPersona)", _con, _trans); cmdInsertEncargado.Parameters.AddWithValue("@LugarTrabajo", detMatricula.encargado.LugarTrabajo); cmdInsertEncargado.Parameters.AddWithValue("@Trabajo", detMatricula.encargado.Trabajo); cmdInsertEncargado.Parameters.AddWithValue("@Telefono", detMatricula.encargado.Telefono); cmdInsertEncargado.Parameters.AddWithValue("@IdPersona", detMatricula.encargado.IdPersona); if (cmdInsertEncargado.ExecuteNonQuery() <= 0) { result = false; } else { MySqlCommand cmdUltimoId = new MySqlCommand("select last_insert_id() as id;", _con); cmdUltimoId.Transaction = _trans; detMatricula.IdEncargado = Convert.ToInt32(cmdUltimoId.ExecuteScalar()); detMatricula.encargado.Id = Convert.ToInt32(cmdUltimoId.ExecuteScalar()); } } MySqlCommand cmdInsertDetMatricula = new MySqlCommand("Insert into detmatricula (Parentesco,IdMatricula,IdEncargado) values (@Parentesco,@IdMatricula,@IdEncargado)", _con, _trans); cmdInsertDetMatricula.Parameters.AddWithValue("@Parentesco", detMatricula.Parentesco); cmdInsertDetMatricula.Parameters.AddWithValue("@IdMatricula", item.Id); cmdInsertDetMatricula.Parameters.AddWithValue("@IdEncargado", detMatricula.IdEncargado); if (cmdInsertDetMatricula.ExecuteNonQuery() <= 0) { result = false; } else { MySqlCommand cmdUltimoId = new MySqlCommand("select last_insert_id() as id;", _con); cmdUltimoId.Transaction = _trans; detMatricula.Id = Convert.ToInt32(cmdUltimoId.ExecuteScalar()); } } } DateTime date = Convert.ToDateTime(item.FhRegistro); Curso curso = CursoDAL.getCursoById(item.IdCurso); int nCuotas = Math.Abs((Convert.ToDateTime(curso.Hasta).Month - Convert.ToDateTime(item.FhRegistro).Month) + 12 * (Convert.ToDateTime(curso.Hasta).Year - Convert.ToDateTime(item.FhRegistro).Year)) + 1; for (int i = 0; i < nCuotas; i++) { MySqlCommand cmdInsertCuota = new MySqlCommand("Insert into cuota (FhRegistro,Precio,Total,IdMatricula) values (@FhRegistro,@Precio,@Total,@IdMatricula)", _con, _trans); cmdInsertCuota.Parameters.AddWithValue("@FhRegistro", date.AddMonths(i).ToString("yyyy") + "/" + date.AddMonths(i).ToString("MM") + "/" + (Validation.Validation.getMaxDayMonth(Convert.ToInt32(date.AddMonths(i).ToString("MM"))) > Convert.ToInt32(item.DiaLimite) ? item.DiaLimite : Validation.Validation.getMaxDayMonth(Convert.ToInt32(date.AddMonths(i).ToString("MM"))).ToString())); cmdInsertCuota.Parameters.AddWithValue("@Precio", Properties.Settings.Default.PrecioCuota); cmdInsertCuota.Parameters.AddWithValue("@Total", "0.00"); cmdInsertCuota.Parameters.AddWithValue("@IdMatricula", item.Id); if (cmdInsertCuota.ExecuteNonQuery() <= 0) { result = false; } } if (result) { MySqlCommand cmdInsertAuditoria = new MySqlCommand("Insert into regemphist (Detalle,Accion,TipoRegistro,IdUserEmp) values (@Detalle,@Accion,@TipoRegistro,@IdUserEmp)", _con, _trans); cmdInsertAuditoria.Parameters.AddWithValue("@Detalle", "Inscribio al estudiante \"" + item.Estudiante.Persona.Nombre + "\" en el curso \"" + CursoDAL.getCursoById(item.IdCurso).Nombre + "\"" + (item.Padres.Where(a => a.Parentesco == "Madre").FirstOrDefault() == null ? "" : ", selecciono a \"" + item.Padres.Where(a => a.Parentesco == "Madre").FirstOrDefault().encargado.Persona.Nombre + "\"" + (item.Padres.Where(a => a.Parentesco == "Padre").FirstOrDefault() == null ? "." : " y a \"" + item.Padres.Where(a => a.Parentesco == "Padre").FirstOrDefault().encargado.Persona.Nombre + "\" como su padre."))); cmdInsertAuditoria.Parameters.AddWithValue("@Accion", "Registrar"); cmdInsertAuditoria.Parameters.AddWithValue("@TipoRegistro", "Inscripcion"); cmdInsertAuditoria.Parameters.AddWithValue("@IdUserEmp", pUser.Id); if (cmdInsertAuditoria.ExecuteNonQuery() <= 0) { result = false; } } if (result) { _trans.Commit(); } else { _trans.Rollback(); } } catch (Exception ex) { _con.Close(); throw ex; } finally { _con.Close(); } } return(result); }