private static void cargarDatos(Tareas tarea, MySqlDataReader reader) { tarea.TareaID = reader["tarea_id"].ToString(); tarea.FechaInicio = reader["fecha_inicio"].ToString(); tarea.FechaFin = reader["fecha_fin"].ToString(); tarea.Emp_id = reader["empleadoId"].ToString(); tarea.Empleado = reader["empleado"].ToString(); tarea.Sitio_id = reader["sitio_id"].ToString(); tarea.Sitio = reader["sitio"].ToString(); tarea.Asignado_por = reader["asignado_por"].ToString() + " - " + reader["asignado"].ToString(); tarea.Fecha_cierre = reader["fecha_cierre"].ToString(); tarea.Estado = reader["estado"].ToString(); decimal dTmp = 0; decimal.TryParse(reader["viatico"].ToString(), out dTmp); tarea.Viatico = dTmp; }
public List <Tareas> obtenerFiltrado(ItemFiltro[] itemFiltro, ItemOrden[] orden, bool busquedaAnd, double inicio, double fin, out double totalRegistros) { List <Tareas> ret = new List <Tareas>(); UltimoMensaje = null; MySqlConnection conexion = Database.obtenerConexion(true); MySqlCommand comando = new MySqlCommand(); comando.Connection = conexion; comando.Transaction = Database.obtenerTransaccion(); totalRegistros = 0; int parameterCount = 0; string where = ""; string tipoBusqueda = " AND "; if (!busquedaAnd) { tipoBusqueda = " OR "; } Varios.armarConsultaFiltros(itemFiltro, comando, ref parameterCount, ref where, tipoBusqueda); string cadenaOrden = ""; comando.CommandText = @"SELECT count(*) FROM (SELECT empleados_tareas.*, CONCAT(e1.apellido,', ',e1.nombre) as empleado, e1.fecha_cierre, sitios.Nombre as sitio, CONCAT(e2.apellido,', ',e2.nombre) as asignado, tareas_estados.tarea_estado_nombre as estado FROM empleados_tareas LEFT JOIN empleados e1 on empleadoId = e1.id LEFT JOIN empleados e2 on asignado_por = e2.id LEFT JOIN tareas_estados on empleados_tareas.tarea_estado_id = tareas_estados.tarea_estado_codigo LEFT JOIN sitios on sitio_id=sitios.CellID) as base " + where; try { if (Database.obtenerTransaccion() == null) { conexion.Open(); } double.TryParse(comando.ExecuteScalar().ToString(), out totalRegistros); if (inicio < 0) { inicio = 0; } if (inicio > totalRegistros) { inicio = totalRegistros - 1; } if (fin > totalRegistros || fin == -1) { fin = totalRegistros; } if (inicio < 1) { inicio = 1; } if (fin < 1) { fin = 1; } cadenaOrden = Varios.armarCadenaOrden(orden, cadenaOrden, "fecha_inicio"); //TODO: Hacer Paginacion double rowcount = fin - (inicio - 1); comando.CommandText = @"SELECT * FROM (SELECT empleados_tareas.*, CONCAT(e1.apellido,', ',e1.nombre) as empleado, e1.fecha_cierre, sitios.Nombre as sitio, CONCAT(e2.apellido,', ',e2.nombre) as asignado, tareas_estados.tarea_estado_nombre as estado FROM empleados_tareas LEFT JOIN empleados e1 on empleadoId = e1.id LEFT JOIN empleados e2 on asignado_por = e2.id LEFT JOIN tareas_estados on empleados_tareas.tarea_estado_id = tareas_estados.tarea_estado_codigo LEFT JOIN sitios on sitio_id=sitios.CellID) as base " + where + " " + cadenaOrden + " LIMIT " + (inicio - 1) + ", " + rowcount; MySqlDataReader dr = comando.ExecuteReader(); while (dr.Read()) { Tareas bar = new Tareas(); bar.Subscribe(this); cargarDatos(bar, dr); if (bar.Fecha_cierre != "") { if (Convert.ToDateTime(bar.FechaInicio) >= Convert.ToDateTime(bar.Fecha_cierre)) { ret.Add(bar); } } else { ret.Add(bar); } } dr.Close(); } catch (Exception ex) { UltimoMensaje = GestionErrores.obtenerError(ex); UltimoMensaje.cargar( System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString(), System.Reflection.MethodBase.GetCurrentMethod().ToString(), new System.Diagnostics.StackFrame(0, true).GetFileLineNumber()); UltimoMensaje.EsError = true; Notify(UltimoMensaje); } finally { comando.Parameters.Clear(); if (Database.obtenerTransaccion() == null) { if (conexion.State != ConnectionState.Closed) { conexion.Close(); } } } return(ret); }
public List <Tareas> obtener_registro_por_fecha(DateTime fecha, List <String> ids) { string[] array_id = ids.ToArray(); List <Tareas> retorno = new List <Tareas>(); MySqlConnection conexion = Database.obtenerConexion(true); string lista_ids = string.Join(",", array_id); string consulta = @" SELECT base.* ,concat(empleados.apellido, ', ', empleados.nombre) as asignado_por_empleado, empleados_grupos.nombre as empleado_grupo_nombre FROM ( SELECT empleados_tareas.*, CONCAT(empleados.apellido,', ',empleados.nombre) as empleado, empleados.fecha_cierre, empleados.grupo as empleado_grupo, sitios.Nombre as sitio, tareas_estados.tarea_estado_nombre, empleados_adelantos.importe as adelanto FROM empleados_tareas LEFT JOIN sitios on empleados_tareas.sitio_id = sitios.CellID JOIN empleados on empleados_tareas.empleadoId = empleados.id LEFT JOIN empleados_adelantos on @fecha=empleados_adelantos.fecha and empleados_tareas.empleadoId = empleados_adelantos.empleado_id LEFT JOIN tareas_estados on tarea_estado_id = tareas_estados.tarea_estado_codigo ) AS base LEFT JOIN empleados on base.asignado_por = empleados.id LEFT JOIN empleados_grupos on base.empleado_grupo=empleados_grupos.id WHERE empleadoId in (" + lista_ids + @") AND @fecha BETWEEN fecha_inicio AND fecha_fin "; MySqlCommand comando = new MySqlCommand(consulta, conexion); comando.Parameters.AddWithValue("@fecha", fecha); comando.Transaction = Database.obtenerTransaccion(); try { if (Database.obtenerTransaccion() == null) { conexion.Open(); } MySqlDataReader reader = comando.ExecuteReader(); while (reader.Read()) { Tareas ret = new Tareas(); ret.Sitio = "NO TRABAJO"; ret.TareaID = reader["tarea_id"].ToString(); ret.Emp_id = reader["empleadoId"].ToString(); ret.Empleado = reader["empleado"].ToString(); ret.Estado = reader["tarea_estado_nombre"].ToString(); ret.Estado_id = ""; ret.Sitio_id = reader["sitio_id"].ToString(); ret.Sitio = reader["sitio_id"] + " " + reader["sitio"].ToString(); ret.Trabajado = reader["trabajo"].ToString(); decimal vTmp = 0; decimal.TryParse(reader["viatico"].ToString(), out vTmp); ret.Viatico = vTmp; ret.Observaciones = reader["observaciones"].ToString(); ret.Asignado_por = reader["asignado_por"].ToString(); ret.Asignado_por_empleado = reader["asignado_por_empleado"].ToString(); ret.Empleado_grupo_nombre = reader["empleado_grupo_nombre"].ToString(); decimal dTmp = 0; decimal.TryParse(reader["adelanto"].ToString(), out dTmp); ret.tmp_adelantos = dTmp; retorno.Add(ret); } } catch (Exception ex) { UltimoMensaje = GestionErrores.obtenerError(ex); UltimoMensaje.cargar( System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString(), System.Reflection.MethodBase.GetCurrentMethod().ToString(), new System.Diagnostics.StackFrame(0, true).GetFileLineNumber()); UltimoMensaje.EsError = true; UltimoMensaje.StackTrace = ex.StackTrace; Notify(UltimoMensaje); } finally { comando.Parameters.Clear(); if (Database.obtenerTransaccion() == null) { if (conexion.State != ConnectionState.Closed) { conexion.Close(); } } } return(retorno); }
public List <Tareas> obtener_registro_por_fecha_grupo(DateTime fecha) { List <Tareas> tmp_list = new List <Tareas>(); Tareas ret = new Tareas(); MySqlConnection conexion = Database.obtenerConexion(true); string consulta = @" SELECT * FROM ( SELECT base.*, empleados_grupos.nombre AS grupo_nombre, CONCAT( empleados.apellido, ', ', empleados.nombre ) AS asignado_por_nombre FROM ( SELECT empleados_tareas.*, CONCAT( empleados.apellido, ', ', empleados.nombre ) AS empleado, empleados.grupo, sitios.Nombre AS sitio FROM empleados_tareas LEFT JOIN sitios ON empleados_tareas.sitio_id = sitios.CellID JOIN empleados ON empleados_tareas.empleadoId = empleados.id ) AS base LEFT JOIN empleados_grupos ON base.grupo = empleados_grupos.id LEFT JOIN empleados ON base.asignado_por = empleados.id ) AS base2 WHERE @fecha BETWEEN fecha_inicio AND fecha_fin"; MySqlCommand comando = new MySqlCommand(consulta, conexion); comando.Parameters.AddWithValue("@fecha", fecha); comando.Transaction = Database.obtenerTransaccion(); try { if (Database.obtenerTransaccion() == null) { conexion.Open(); } MySqlDataReader reader = comando.ExecuteReader(); while (reader.Read()) { ret.TareaID = reader["tarea_id"].ToString(); ret.Emp_id = reader["empleadoId"].ToString(); ret.Empleado = reader["empleado"].ToString(); ret.Empleado_grupo = reader["grupo"].ToString(); ret.Empleado_grupo_nombre = reader["grupo_nombre"].ToString(); ret.Estado = ""; ret.Estado_id = ""; ret.Sitio_id = reader["sitio_id"].ToString(); ret.Sitio = reader["sitio"].ToString(); ret.Trabajado = reader["trabajo"].ToString(); ret.Viatico = Convert.ToDecimal(reader["viatico"].ToString()); ret.Observaciones = ""; tmp_list.Add(ret); } } catch (Exception ex) { UltimoMensaje = GestionErrores.obtenerError(ex); UltimoMensaje.cargar( System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString(), System.Reflection.MethodBase.GetCurrentMethod().ToString(), new System.Diagnostics.StackFrame(0, true).GetFileLineNumber()); UltimoMensaje.EsError = true; UltimoMensaje.StackTrace = ex.StackTrace; Notify(UltimoMensaje); } finally { comando.Parameters.Clear(); if (Database.obtenerTransaccion() == null) { if (conexion.State != ConnectionState.Closed) { conexion.Close(); } } } return(tmp_list); }
public Tareas obtener_registro_por_fecha(DateTime fecha, string empleado_id) { Tareas ret = new Tareas(); MySqlConnection conexion = Database.obtenerConexion(true); string consulta = @" SELECT * FROM ( SELECT base.*, CONCAT( empleados.apellido, ', ', empleados.nombre ) AS asignado_por_empleado FROM ( SELECT empleados_tareas.*, CONCAT( empleados.apellido, ', ', empleados.nombre ) AS empleado, sitios.Nombre AS sitio, tareas_estados.tarea_estado_nombre, empleados_adelantos.importe AS adelanto FROM empleados_tareas LEFT JOIN sitios ON empleados_tareas.sitio_id = sitios.CellID JOIN empleados ON empleados_tareas.empleadoId = empleados.id LEFT JOIN empleados_adelantos ON @fecha = empleados_adelantos.fecha AND empleados_tareas.empleadoId = empleados_adelantos.empleado_id LEFT JOIN tareas_estados ON empleados_tareas.tarea_estado_id = tareas_estados.tarea_estado_codigo ) AS base LEFT JOIN empleados ON base.asignado_por = empleados.id ) AS base2 WHERE empleadoId = @empleado_id AND @fecha BETWEEN fecha_inicio AND fecha_fin"; MySqlCommand comando = new MySqlCommand(consulta, conexion); comando.Parameters.AddWithValue("@fecha", fecha); comando.Parameters.AddWithValue("@empleado_id", empleado_id); comando.Transaction = Database.obtenerTransaccion(); try { if (Database.obtenerTransaccion() == null) { conexion.Open(); } MySqlDataReader reader = comando.ExecuteReader(); while (reader.Read()) { ret.TareaID = reader["tarea_id"].ToString(); ret.Emp_id = reader["empleadoId"].ToString(); ret.Empleado = reader["empleado"].ToString(); ret.Estado = reader["tarea_estado_nombre"].ToString(); ret.Estado_id = reader["tarea_estado_id"].ToString(); ret.Sitio_id = reader["sitio_id"].ToString(); ret.Sitio = reader["sitio"].ToString(); ret.Trabajado = reader["trabajo"].ToString(); ret.Asignado_por = reader["asignado_por_empleado"].ToString(); decimal viatico = 0; decimal.TryParse(reader["viatico"].ToString(), out viatico); ret.Viatico = viatico; decimal dTmp = 0; decimal.TryParse(reader["adelanto"].ToString(), out dTmp); ret.tmp_adelantos = dTmp; ret.Observaciones = reader["observaciones"].ToString(); } } catch (Exception ex) { UltimoMensaje = GestionErrores.obtenerError(ex); UltimoMensaje.cargar( System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString(), System.Reflection.MethodBase.GetCurrentMethod().ToString(), new System.Diagnostics.StackFrame(0, true).GetFileLineNumber()); UltimoMensaje.EsError = true; UltimoMensaje.StackTrace = ex.StackTrace; Notify(UltimoMensaje); } finally { comando.Parameters.Clear(); if (Database.obtenerTransaccion() == null) { if (conexion.State != ConnectionState.Closed) { conexion.Close(); } } } return(ret); }
private List <Tareas> crear_tmp_list2(DateTime desde, DateTime hasta, List <string> ids) { TimeSpan ts = hasta - desde; int dias = ts.Days; List <Tareas> lista_tareas = new List <Tareas>(); Empleados empleados = new Empleados(); DAL.Empleados_Adelantos adelanto = new DAL.Empleados_Adelantos(); try { for (int i = 0; i <= dias; i++) { DateTime fecha = desde.AddDays(i); List <Tareas> lista_tareas_tmp = obtener_registro_por_fecha(fecha, ids); foreach (string item in ids) { Tareas tarea = new Tareas(); tarea.tmp_fecha = fecha.ToShortDateString(); tarea.Empleado = empleados.obtener_nombre(item); tarea.Empleado_grupo = empleados.obtener_grupo(item); foreach (Tareas lista_item in lista_tareas_tmp) { if (item == lista_item.Emp_id) { tarea.Sitio = lista_item.Sitio; tarea.Sitio_id = lista_item.Sitio_id; tarea.Viatico = lista_item.Viatico; tarea.Trabajado = lista_item.Trabajado; tarea.Asignado_por = lista_item.Asignado_por; tarea.Asignado_por_empleado = lista_item.Asignado_por_empleado; tarea.Observaciones = lista_item.Observaciones; } } if (tarea.Trabajado != "SI") { Trabajado = "NO"; tarea.Sitio = "NO TRABAJO"; } List <Empleados_Adelantos> lista_adelantos = adelanto.obtener_registro_por_fecha(fecha, item); foreach (Empleados_Adelantos item_adelanto in lista_adelantos) { tarea.tmp_adelantos += item_adelanto.importe; } //tarea.tmp_adelantos = adelanto.obtener_importe(fecha, Convert.ToInt32(item)); lista_tareas.Add(tarea); } } } catch (Exception ex) { UltimoMensaje = GestionErrores.obtenerError(ex); UltimoMensaje.cargar( System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString(), System.Reflection.MethodBase.GetCurrentMethod().ToString(), new System.Diagnostics.StackFrame(0, true).GetFileLineNumber()); UltimoMensaje.EsError = true; UltimoMensaje.StackTrace = ex.StackTrace; Notify(UltimoMensaje); } return(lista_tareas); }
public Tareas obtener(string tarea_id) { Tareas tarea = new Tareas(); MySqlConnection conexion = Database.obtenerConexion(true); string consulta = @"SELECT base.*, concat(empleados.apellido, ',', empleados.nombre) as asignado from (SELECT empleados_tareas.*, concat(empleados.apellido, ', ', empleados.nombre) as empleado, sitios.nombre as sitio from empleados_tareas LEFT JOIN sitios on sitio_id = sitios.CellID LEFT JOIN empleados on empleadoId = empleados.id) as base LEFT JOIN empleados on asignado_por = empleados.id WHERE base.tarea_id=@tarea_id"; MySqlCommand cmd = new MySqlCommand(consulta, conexion); cmd.Parameters.AddWithValue("@tarea_id", tarea_id); cmd.Transaction = Database.obtenerTransaccion(); try { if (Database.obtenerTransaccion() == null) { conexion.Open(); } MySqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { tarea.TareaID = reader["tarea_id"].ToString(); tarea.FechaInicio = reader["fecha_inicio"].ToString(); tarea.FechaFin = reader["fecha_fin"].ToString(); tarea.Emp_id = reader["empleadoId"].ToString(); tarea.Empleado = reader["empleado"].ToString(); tarea.Sitio_id = reader["sitio_id"].ToString(); tarea.Observaciones = reader["observaciones"].ToString(); tarea.Sitio = reader["sitio"].ToString(); tarea.Estado_id = reader["tarea_estado_id"].ToString(); tarea.Trabajado = reader["trabajo"].ToString(); tarea.Asignado_por = reader["asignado_por"].ToString(); decimal dTmp = 0; decimal.TryParse(reader["viatico"].ToString(), out dTmp); tarea.Viatico = dTmp; } } catch (Exception ex) { UltimoMensaje = GestionErrores.obtenerError(ex); UltimoMensaje.cargar( System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString(), System.Reflection.MethodBase.GetCurrentMethod().ToString(), new System.Diagnostics.StackFrame(0, true).GetFileLineNumber()); UltimoMensaje.EsError = true; UltimoMensaje.StackTrace = ex.StackTrace; Notify(UltimoMensaje); } finally { cmd.Parameters.Clear(); if (Database.obtenerTransaccion() == null) { if (conexion.State != ConnectionState.Closed) { conexion.Close(); } } } return(tarea); }