public static List <Detfactura> getDetsfacturaByIdPersona(Int64 pIdPersona) { List <Detfactura> lista = new List <Detfactura>(); using (MySqlConnection _con = new Conexion().Conectar()) { try { _con.Open(); MySqlCommand comando = new MySqlCommand("select df.* from detfactura as df inner join factura as f " + "on f.Id=df.IdFactura inner join Producto as p on p.Id = df.IdProducto where f.IdPersona = @pIdPersona " + " and df.Tipo = 'R' and (SELECT sum(dfs.Total) from detfactura as dfs inner join factura fs on fs.Id=dfs.IdFactura where dfs.RefNFactura=df.RefNFactura and fs.Estado='C')" + " < p.Precio and f.Estado='C' order by Id desc", _con); comando.Parameters.AddWithValue("@pIdPersona", pIdPersona); MySqlDataReader _reader = comando.ExecuteReader(); while (_reader.Read()) { Detfactura item = new Detfactura( _reader.GetInt64(0), _reader.GetString(1), _reader.GetDecimal(2), _reader.GetDecimal(3), _reader.GetString(4), _reader.IsDBNull(5) ? null : _reader.GetString(5), _reader.GetInt64(6), _reader.GetInt64(7), ProductoDAL.getProductoById(_reader.GetInt64(7)), MatricdetfacDAL.getMatricdetfacByIdDetFactura(_reader.GetInt64(0)) ); lista.Add(item); } _reader.Close(); } catch (Exception ex) { _con.Close(); throw ex; } finally { _con.Close(); } } return(lista); }
public static List <Detfactura> getDetsfacturaByIdFactura(Int64 pIdFactura) { List <Detfactura> lista = new List <Detfactura>(); using (MySqlConnection _con = new Conexion().Conectar()) { try { _con.Open(); MySqlCommand comando = new MySqlCommand("select * from detfactura where IdFactura=@pIdFactura order by Id asc", _con); comando.Parameters.AddWithValue("@pIdFactura", pIdFactura); MySqlDataReader _reader = comando.ExecuteReader(); while (_reader.Read()) { Detfactura item = new Detfactura( _reader.GetInt64(0), _reader.GetString(1), _reader.GetDecimal(2), _reader.GetDecimal(3), _reader.GetString(4), _reader.IsDBNull(5) ? null : _reader.GetString(5), _reader.GetInt64(6), _reader.GetInt64(7), ProductoDAL.getProductoById(_reader.GetInt64(7)), MatricdetfacDAL.getMatricdetfacByIdDetFactura(_reader.GetInt64(0)) ); lista.Add(item); } _reader.Close(); } catch (Exception ex) { _con.Close(); throw ex; } finally { _con.Close(); } } return(lista); }
public static Detfactura getDetfacturaById(Int64 pId) { Detfactura item = null; using (MySqlConnection _con = new Conexion().Conectar()) { try { _con.Open(); MySqlCommand cmdGetItemById = new MySqlCommand("select * from detfactura where Id=@pId", _con); cmdGetItemById.Parameters.AddWithValue("@pId", pId); MySqlDataReader _reader = cmdGetItemById.ExecuteReader(); while (_reader.Read()) { item = new Detfactura( _reader.GetInt64(0), _reader.GetString(1), _reader.GetDecimal(2), _reader.GetDecimal(3), _reader.GetString(4), _reader.IsDBNull(5)?null:_reader.GetString(5), _reader.GetInt64(6), _reader.GetInt64(7), ProductoDAL.getProductoById(_reader.GetInt64(7)), MatricdetfacDAL.getMatricdetfacByIdDetFactura(_reader.GetInt64(0)) ); } _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); }