public Mensaje consultaGenerica(DBContextAdapter dbContext, TipoResultado tipoResultado, TipoOperacion tipoOperacion, string tabla, OperadorSelect operadorSelect, List <CamposFrom> listCamposFrom, List <CamposWhere> listCamposWhere, List <CamposGrupo> listCamposGrupo, List <CamposOrden> listCamposOrden, ValoresRango valoresRango) { Mensaje resultado = null; ConnectionDB conexion = dbContext.connectionDB; //Code 12630 // Type type = dbContext.context.Database.Connection.GetType(); TypeDB tipoServer = conexion.tipoServer; //Add the type of database string query = generadorQueries.construyeQuery(tipoServer, tipoOperacion, "", operadorSelect, listCamposFrom, listCamposWhere, listCamposGrupo, listCamposOrden, valoresRango); if (tipoServer == TypeDB.MySQL) { } else if (tipoServer == TypeDB.Oracle) { } if (tipoServer == TypeDB.PostgreSQL) { } else { resultado = creaConexionSQLServer(conexion, query, tipoResultado); } return(resultado); }
public void EjecutarExperimiento() { int[,] matrizContadores = new int[n, n]; double[,] pCaracteristica = new double[n, n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { matrizContadores[i, j] = elementos[i, j].Contador; } } pCaracteristica[0, 0] = Convert.ToDouble(matrizContadores[0, 0] + matrizContadores[0, 1]) / totalData; pCaracteristica[0, 1] = Convert.ToDouble(matrizContadores[1, 0] + matrizContadores[1, 1]) / totalData; pCaracteristica[1, 0] = Convert.ToDouble(matrizContadores[0, 0] + matrizContadores[1, 0]) / totalData; pCaracteristica[1, 1] = Convert.ToDouble(matrizContadores[0, 1] + matrizContadores[1, 1]) / totalData; chiCalculado = CalcularChi(matrizContadores, pCaracteristica); if (chiCalculado > chiSq1gl) { resultado = TipoResultado.Dependiente; } else { resultado = TipoResultado.Independiente; } }
private object creaConexionMYSql(ConnectionDB connexion, string query, TipoResultado tipoResultado) { List <object> resultado = new List <object>(); //////using (MySqlConnection conn = (MySqlConnection)genereDbConnection(connexion)) //////{ ////// conn.Open(); ////// MySqlCommand command = new MySqlCommand(query, conn); ////// foreach (var item in generadorQueries.valoresParametrosQuery) ////// { ////// command.Parameters.Add(new MySqlParameter(item.Key, item.Value)); ////// } ////// //Type clasePrincipal = null; ////// //object instancia = null; ////// //foreach (var item in generadorQueries.tipoDatosSelect) ////// //{ ////// // clasePrincipal = item; ////// // break; ////// //} ////// object instancia = null; ////// object[] valores; ////// using (MySqlDataReader reader = command.ExecuteReader()) ////// { ////// int cont = 0, columnas = reader.FieldCount; ////// while (reader.Read()) ////// { ////// valores = new object[generadorQueries.tipoDatosSelect.Count]; ////// foreach (var item in generadorQueries.tipoDatosSelect) ////// { ////// instancia = generaInstanciaValores(reader, item, cont); ////// valores[cont] = instancia; ////// cont++; ////// Console.WriteLine(instancia); ////// } ////// resultado.Add(valores); ////// cont = 0; ////// //instancia = generaInstanciaValores(reader, clasePrincipal, cont); ////// //resultado.Add(instancia); ////// } ////// } //////} //////if (tipoResultado == TipoResultado.Unico) //////{ ////// if (resultado.Count > 0) ////// { ////// return resultado[0]; ////// } //////} return(resultado); }
/// <summary> /// Construye un objeto tipo ResultadoLogin y asigna sus datos /// </summary> /// <param name="resultado">El resultado de la operación.</param> /// <param name="usuarioLogin">El usuario resultante.</param> public ResultadoLogin(TipoResultado resultado, Usuario usuarioLogin) { ResultadoActual = resultado; UsuarioActual = usuarioLogin; }
private TipoResultado ActualizarMazoEspecial(Carta cartauno, Carta cartados) { TipoResultado resultado = 0; this.JugadorUno.Cartas.Remove(cartauno); this.JugadorDos.Cartas.Remove(cartados); switch (cartauno.Tipo) { case Carta.TipoCarta.Roja: { JugadorUno.Cartas.Add(cartados); if (this.JugadorDos.Cartas.Count != 0) { var aux = this.JugadorDos.Cartas.First(); this.JugadorDos.Cartas.Remove(aux); this.JugadorUno.Cartas.Add(aux); } resultado = TipoResultado.Roja; this.IdGanadorMano = this.JugadorUno.ConecctionID; this.IdPerdedorMano = this.JugadorDos.ConecctionID; return(resultado); } break; case Carta.TipoCarta.Amarilla: { if (cartados.Tipo != Carta.TipoCarta.Roja) { JugadorUno.Cartas.Add(cartados); resultado = TipoResultado.Amarilla; this.IdGanadorMano = this.JugadorUno.ConecctionID; this.IdPerdedorMano = this.JugadorDos.ConecctionID; return(resultado); } } break; } switch (cartados.Tipo) { case Carta.TipoCarta.Roja: { JugadorDos.Cartas.Add(cartauno); if (this.JugadorUno.Cartas.Count != 0) { var aux = this.JugadorUno.Cartas.First(); this.JugadorUno.Cartas.Remove(aux); this.JugadorDos.Cartas.Add(aux); } resultado = TipoResultado.Roja; this.IdGanadorMano = this.JugadorDos.ConecctionID; this.IdPerdedorMano = this.JugadorUno.ConecctionID; return(resultado); } break; case Carta.TipoCarta.Amarilla: { if (cartauno.Tipo != Carta.TipoCarta.Roja) { JugadorDos.Cartas.Add(cartauno); resultado = TipoResultado.Amarilla; this.IdGanadorMano = this.JugadorDos.ConecctionID; this.IdPerdedorMano = this.JugadorUno.ConecctionID; return(resultado); } } break; } return(resultado); }
/// <summary> /// Construye un objeto tipo ResultadoRegistro y asigna sus datos /// </summary> /// <param name="resultado">El resultado de la operación.</param> /// <param name="usuarioLogin">El usuario resultante.</param> public ResultadoRegistro(TipoResultado resultado, Usuario usuarioLogin) { this.ResultadoActual = resultado; this.UsuarioActual = usuarioLogin; }
/// <summary> /// Construye un objeto tipo ResultadoConexion y asigna sus datos /// </summary> /// <param name="resultado">El resultado de la operación.</param> /// <param name="conexiones">La conexión resultante.</param> public ResultadoConexion(TipoResultado resultado, Conexion conexiones) { ResultadoActual = resultado; ConexionGuardar = conexiones; }
private Mensaje creaConexionSQLServer(ConnectionDB connexion, string query, TipoResultado tipoResultado) { List <object> resultado = new List <object>(); ////SqlTransaction sqlTrans = null; inicializaVariableMensaje(); try { //Code 12630 //(SqlConnection)dbContext.Database.Connection ///new SqlConnection(dbContext.Database.Connection.ConnectionString) using (SqlConnection conn = (SqlConnection)EntityFrameworkCxn.createDbConnection(connexion)) { conn.Open(); //sqlTrans = conn.BeginTransaction(); SqlCommand command = new SqlCommand(query, conn); //, sqlTrans foreach (var item in generadorQueries.valoresParametrosQuery) { command.Parameters.Add(new SqlParameter(item.Key, item.Value)); } object instancia = null; object[] valores; using (SqlDataReader reader = command.ExecuteReader()) { int cont = 0, columnas = reader.FieldCount; while (reader.Read()) { valores = new object[generadorQueries.tipoDatosSelect.Count]; foreach (var item in generadorQueries.tipoDatosSelect) { instancia = generaInstanciaValores(reader, item, cont); valores[cont] = instancia; cont++; Console.WriteLine(instancia); } resultado.Add(valores); cont = 0; } } } // sqlTrans.Commit(); mensajeResultado.noError = 0; mensajeResultado.error = ""; if (tipoResultado == TipoResultado.Unico) { if (resultado.Count > 0) { if (generadorQueries.tipoDatosSelect.Count == 1) { object[] valor = (object[])resultado[0]; mensajeResultado.resultado = valor[0]; } else { mensajeResultado.resultado = resultado[0]; } return(mensajeResultado); } else { mensajeResultado.resultado = null; } } else { mensajeResultado.resultado = resultado; } } catch (Exception ex) { //if (sqlTrans != null) //{ // sqlTrans.Rollback(); //} System.Diagnostics.Debug.WriteLine(concatena.Remove(0, concatena.Length).Append(msgError).Append("creaConexionSQLServer()1_Error: ").Append(ex)); mensajeResultado.noError = ControlErroresEntity.buscaNoErrorPorExcepcion(ex); mensajeResultado.error = ex.GetBaseException().ToString(); mensajeResultado.resultado = null; } return(mensajeResultado); }
/// <summary> /// Realiza la petición de geocodificación inversa devolviendo el resultado en formato XML /// </summary> /// <param name="lat">Latitud</param> /// <param name="lng">Longitud</param> /// <param name="tipo_ubicacion">Tipo de Ubicación a buscar</param> /// <param name="tipo_resultado">Tipo de resultado deseado</param> /// <param name="idioma_respuesta">Idioma de la respuesta esperada</param> /// <param name="respuesta_predeterminada">En caso de existir algún incidente en la obtención de la geocodificación inversa, se utilizará este valor como retorno predeterminado</param> /// <returns></returns> public RetornoOperacion ObtenerGeocofificacionInversa(double lat, double lng, TipoUbicacion tipo_ubicacion, TipoResultado tipo_resultado, IdiomaRespuesta idioma_respuesta, string respuesta_predeterminada) { //Filtros de búsqueda string tipoResultado = tipo_resultado.Equals(TipoResultado.def) ? "" : "&result_type=" + tipo_resultado.ToString().ToLower(); string tipoUbicacion = tipo_ubicacion.Equals(TipoUbicacion.DEF) ? "" : "&location_type=" + tipo_ubicacion.ToString().ToUpper(); //Declarando objeto de retorno y generando consumo de API RetornoOperacion resultado = HTTPWeb.CrearPeticionYRespuesta(string.Format("{0}/xml?latlng={1},{2}&key={3}&language={4}{5}{6}", this._url, lat.ToString(), lng.ToString(), this._key, idioma_respuesta.ToString().ToLower(), tipoResultado, tipoUbicacion), HTTPWeb.Metodo.POST); //Si no hay errores en petición if (resultado.OperacionExitosa) { try { //Convirtiendo respuesta a XML XDocument doc = XDocument.Parse(resultado.Mensaje); if (doc.Root.Element("status").Value.Equals("OK")) { //Validando contenido de respuesta string res = doc.Root.Element("result").Element("formatted_address").Value; resultado = new RetornoOperacion(res, true); } else { resultado = new RetornoOperacion(respuesta_predeterminada, false); } } catch (Exception) { resultado = new RetornoOperacion(respuesta_predeterminada, false); } } //Devolviendo respuesta return(resultado); }
private Mensaje obtenerQueryPerzonalizado(string identificador, List <CamposWhere> listCamposWhere, bool uniqueResult, DBContextAdapter dbContext, DBContextAdapter dbContextMaestra) { List <object> camposWhere = new List <object>(); mensajeResultado.error = ""; mensajeResultado.noError = 0; CamposSelect campoSelect; OperadorSelect operadorSelect; List <CamposFrom> listCamposFrom; CamposOrden campoOrden; //Code 12630 DBContextAdapter conexionUsada; if (dbContext != null) { conexionUsada = dbContext; } else { conexionUsada = dbContextMaestra; } TipoResultado tipoResultado = TipoResultado.Lista; if (uniqueResult) { tipoResultado = TipoResultado.Unico; } if (identificador.Equals("QueryEmpleadoFiniquito")) { campoSelect = new CamposSelect("FiniqLiquidPlazas.plazasPorEmpleado.empleados", TipoFuncion.NINGUNO); operadorSelect = new OperadorSelect(new List <CamposSelect>() { campoSelect }); listCamposFrom = new List <CamposFrom>() { new CamposFrom("FiniqLiquidPlazas", TipoJoin.LEFT_JOIN), new CamposFrom("FiniqLiquidPlazas.finiquitosLiquida", TipoJoin.RIGHT_JOIN), new CamposFrom("FiniqLiquidPlazas.plazasPorEmpleado", TipoJoin.RIGHT_JOIN), new CamposFrom("FiniqLiquidPlazas.plazasPorEmpleado.empleados", TipoJoin.RIGHT_JOIN), new CamposFrom("FiniqLiquidPlazas.plazasPorEmpleado.razonesSociales", TipoJoin.RIGHT_JOIN) }; listCamposWhere = listCamposWhere == null ? new List <CamposWhere>() : listCamposWhere; if (listCamposWhere.Count > 0) { listCamposWhere[listCamposWhere.Count - 2].campo = "FiniqLiquidPlazas.plazasPorEmpleado.razonesSociales.clave"; listCamposWhere[listCamposWhere.Count - 1].campo = "FiniqLiquidPlazas.finiquitosLiquida.modoBaja"; listCamposWhere[listCamposWhere.Count - 1].operadorComparacion = OperadorComparacion.DIFERENTE; listCamposWhere[listCamposWhere.Count - 1].operadorLogico = OperadorLogico.OR; List <CamposWhere> listSubCamposWhere = new List <CamposWhere>() { new CamposWhere("FiniqLiquidPlazas.id", 0, OperadorComparacion.IS_NULL, OperadorLogico.AND) }; listCamposWhere[listCamposWhere.Count - 1].listCamposAgrupados = listSubCamposWhere; } campoOrden = new CamposOrden("FiniqLiquidPlazas.plazasPorEmpleado.empleados.clave"); mensajeResultado = conectorQuerysGenericos.consultaGenerica(conexionUsada, tipoResultado, TipoOperacion.SELECT, "", operadorSelect, listCamposFrom, listCamposWhere, null, new List <CamposOrden>() { campoOrden }, null); return(mensajeResultado); } else if (identificador.Equals("QueryEmpleadoEspecial") | identificador.Equals("QueryEmpleadoEspecialMovimientosNomina")) { if (identificador.ToUpper().Equals("QueryEmpleadoEspecial")) { operadorSelect = new OperadorSelect(new List <CamposSelect>() { new CamposSelect("PlazasPorEmpleadosMov.tipoNomina", TipoFuncion.NINGUNO), new CamposSelect("PlazasPorEmpleadosMov.plazasPorEmpleado.empleados", TipoFuncion.NINGUNO) }); } else { operadorSelect = new OperadorSelect(new List <CamposSelect>() { new CamposSelect("PlazasPorEmpleadosMov", TipoFuncion.NINGUNO), new CamposSelect("PlazasPorEmpleadosMov.plazasPorEmpleado.empleados", TipoFuncion.NINGUNO) }); } CamposWhere campoWherePrincipal = new CamposWhere("PlazasPorEmpleadosMov.id", null, OperadorComparacion.IN, OperadorLogico.AND); SubConsulta subConsulta = new SubConsulta(); CamposSelect campoSelectSub = new CamposSelect("PlazasPorEmpleadosMov.id", TipoFuncion.MAXIMO); OperadorSelect operadorSelectSub = new OperadorSelect(new List <CamposSelect>() { campoSelectSub }); if (listCamposWhere.Count > 0) { int cont = 0, index = 0; if (listCamposWhere.Count > 4) { index = 1; } bool aplicarRestriccionEmpleadoDadoDeBaja = false; foreach (var campoWhere in listCamposWhere) { if (String.IsNullOrEmpty(campoWhere.campo)) { if (cont == 0 + index) { campoWhere.campo = "PlazasPorEmpleadosMov.plazasPorEmpleado.razonesSociales.clave"; } else if (cont == (1 + index) & campoWhere.valor != null) { if (campoWhere.valor.GetType().Equals(typeof(TipoCorrida))) { TipoCorrida corrida = (TipoCorrida)campoWhere.valor; if (corrida.clave.ToUpper().Equals("FIN") || corrida.clave.ToUpper().Equals("LIQ")) { aplicarRestriccionEmpleadoDadoDeBaja = false; } //consulta and parametros i++ = parametro i ++ sabe em que se use mal codigo } } else if (cont == 2 + index) { if (aplicarRestriccionEmpleadoDadoDeBaja) { campoWhere.campo = "PlazasPorEmpleadosMov.fechaInicial"; campoWhere.operadorComparacion = OperadorComparacion.MENOR_IGUAL; campoWhere.operadorLogico = OperadorLogico.OR; CamposWhere campoWhereSub = new CamposWhere("PlazasPorEmpleadosMov.fechaInicial", campoWhere.valor, OperadorComparacion.BETWEEN, OperadorLogico.AND); campoWhere.listCamposAgrupados = new List <CamposWhere>() { campoWhereSub }; } else { campoWhere.campo = "PlazasPorEmpleadosMov.fechaInicial"; campoWhere.operadorComparacion = OperadorComparacion.IGUAL; campoWhere.operadorLogico = OperadorLogico.AND; } } else if (cont == 3 + index) { if (aplicarRestriccionEmpleadoDadoDeBaja) { campoWhere.campo = "PlazasPorEmpleadosMov.plazasPorEmpleado.fechaFinal"; campoWhere.operadorComparacion = OperadorComparacion.MAYOR_IGUAL; campoWhere.operadorLogico = OperadorLogico.OR; CamposWhere campoWhereSub = new CamposWhere("PlazasPorEmpleadosMov.plazasPorEmpleado.fechaFinal", campoWhere.valor, OperadorComparacion.BETWEEN, OperadorLogico.AND); campoWhere.listCamposAgrupados = new List <CamposWhere>() { campoWhereSub }; } else { campoWhere.campo = "PlazasPorEmpleadosMov.plazasPorEmpleado.fechaFinal"; campoWhere.operadorComparacion = OperadorComparacion.IGUAL; campoWhere.operadorLogico = OperadorLogico.AND; } } cont++; } else { if (!campoWhere.campo.Contains(typeof(PlazasPorEmpleadosMov).Name)) { campoWhere.campo = String.Concat(typeof(PlazasPorEmpleadosMov).Name, ".", campoWhere.campo); } } } } CamposGrupo campoGrupo = new CamposGrupo("PlazasPorEmpleadosMov.plazasPorEmpleado.empleados.clave"); campoOrden = new CamposOrden("PlazasPorEmpleadosMov.plazasPorEmpleado.empleados.clave"); mensajeResultado = conectorQuerysGenericos.consultaGenerica(conexionUsada, tipoResultado, TipoOperacion.SELECT, "", operadorSelect, null, listCamposWhere, new List <CamposGrupo>() { campoGrupo }, new List <CamposOrden>() { campoOrden, new CamposOrden("PlazasPorEmpleadosMov.fechaInicial") }, null); } else if (identificador.Equals("queryPlazasEmpleadoEspecial")) { bool manejoPagoPorHora = false; ManejoHorasPor manejoPorHoras = ManejoHorasPor.HSM; ManejoSalarioDiario manejoSalarioDiario = ManejoSalarioDiario.QUINCENAL; try { setSession(dbContext.context); getSession().Database.BeginTransaction(); #region Maneja pago por horas operadorSelect = new OperadorSelect(new List <CamposSelect>() { new CamposSelect("Cruce.valor", TipoFuncion.NINGUNO) }); var query = (from cr in getSession().Set <Cruce>() join pr in getSession().Set <Parametros>() on cr.parametros_ID equals pr.id join ea in getSession().Set <ElementosAplicacion>() on cr.elementosAplicacion_ID equals ea.id where pr.clave == (decimal)ClavesParametrosModulos.claveParametroPagosPorHora && ea.clave.Equals(ClavesParametrosModulos.claveElementoAplicacionRazonSocial) && cr.claveElemento.Equals(listCamposWhere[listCamposWhere.Count - 1].valor) select cr.valor ); string valor = query.FirstOrDefault(); //List<CamposWhere> listSubCamposWhere = new List<CamposWhere>() { new CamposWhere("Cruce.parametros.clave", claveParametroPagosPorHora, OperadorComparacion.IGUAL, OperadorLogico.AND), // new CamposWhere("Cruce.elementosAplicacion.clave", claveElementoAplicacionRazonSocial, OperadorComparacion.IGUAL, OperadorLogico.AND), // new CamposWhere("Cruce.claveElemento", listCamposWhere[listCamposWhere.Count - 1].valor, OperadorComparacion.IGUAL, OperadorLogico.AND)}; //mensajeResultado = conectorQuerysGenericos.consultaGenerica(conexionPendiente, TipoResultado.Unico, TipoOperacion.SELECT, // "", operadorSelect, null, listSubCamposWhere, null, null, null); //if (mensajeResultado.noError != 0) { // return mensajeResultado; //} //string valor = (string) mensajeResultado.resultado; if (String.IsNullOrEmpty(valor)) { // operadorSelect = new OperadorSelect(new List<CamposSelect>() { new CamposSelect("Parametros.valor", TipoFuncion.NINGUNO) }); // listSubCamposWhere = new List<CamposWhere>() { new CamposWhere("Parametros.clave", claveParametroPagosPorHora, OperadorComparacion.IGUAL, OperadorLogico.AND), // new CamposWhere("Parametros.modulo.clave", claveModuloGlobal, OperadorComparacion.IGUAL, OperadorLogico.AND)}; // mensajeResultado = conectorQuerysGenericos.consultaGenerica(conexionPendiente, TipoResultado.Unico, TipoOperacion.SELECT, //"", operadorSelect, null, listSubCamposWhere, null, null, null); // if (mensajeResultado.noError != 0) // { // return mensajeResultado; // } // valor = (string)mensajeResultado.resultado; query = (from pr in getSession().Set <Parametros>() join m in getSession().Set <Modulo>() on pr.modulo_ID equals m.id where pr.clave == (decimal)ClavesParametrosModulos.claveParametroPagosPorHora && m.clave.Equals(ClavesParametrosModulos.claveModuloGlobal) select pr.valor ); valor = query.FirstOrDefault(); } if (valor.Equals(ClavesParametrosModulos.opcionParametroPagarPorHoras)) { manejoPagoPorHora = true; } else { manejoPagoPorHora = false; } #endregion #region Manejo horas por ////operadorSelect = new OperadorSelect(new List<CamposSelect>() { new CamposSelect("Cruce.valor", TipoFuncion.NINGUNO) }); query = (from cr in getSession().Set <Cruce>() join pr in getSession().Set <Parametros>() on cr.parametros_ID equals pr.id join ea in getSession().Set <ElementosAplicacion>() on cr.elementosAplicacion_ID equals ea.id where pr.clave == (decimal)ClavesParametrosModulos.claveParametroManejarHorasPor && ea.clave.Equals(ClavesParametrosModulos.claveElementoAplicacionRazonSocial) && cr.claveElemento.Equals(listCamposWhere[listCamposWhere.Count - 1].valor) select cr.valor ); valor = query.FirstOrDefault(); ////listSubCamposWhere = new List<CamposWhere>() { new CamposWhere("Cruce.parametros.clave", claveParametroManejarHorasPor, OperadorComparacion.IGUAL, OperadorLogico.AND), //// new CamposWhere("Cruce.elementosAplicacion.clave", claveElementoAplicacionRazonSocial, OperadorComparacion.IGUAL, OperadorLogico.AND), //// new CamposWhere("Cruce.claveElemento", listCamposWhere[listCamposWhere.Count - 1].valor, OperadorComparacion.IGUAL, OperadorLogico.AND)}; ////mensajeResultado = conectorQuerysGenericos.consultaGenerica(conexionPendiente, TipoResultado.Unico, TipoOperacion.SELECT, //// "", operadorSelect, null, listSubCamposWhere, null, null, null); ////if (mensajeResultado.noError != 0) ////{ //// return mensajeResultado; ////} ////valor = (string)mensajeResultado.resultado; if (String.IsNullOrEmpty(valor)) { // operadorSelect = new OperadorSelect(new List<CamposSelect>() { new CamposSelect("Parametros.valor", TipoFuncion.NINGUNO) }); // listSubCamposWhere = new List<CamposWhere>() { new CamposWhere("Parametros.clave", claveParametroManejarHorasPor, OperadorComparacion.IGUAL, OperadorLogico.AND), // new CamposWhere("Parametros.modulo.clave", claveModuloGlobal, OperadorComparacion.IGUAL, OperadorLogico.AND)}; // mensajeResultado = conectorQuerysGenericos.consultaGenerica(conexionPendiente, TipoResultado.Unico, TipoOperacion.SELECT, //"", operadorSelect, null, listSubCamposWhere, null, null, null); // if (mensajeResultado.noError != 0) // { // return mensajeResultado; // } // valor = (string)mensajeResultado.resultado; query = (from pr in getSession().Set <Parametros>() join m in getSession().Set <Modulo>() on pr.modulo_ID equals m.id where pr.clave == (decimal)ClavesParametrosModulos.claveParametroManejarHorasPor && m.clave.Equals(ClavesParametrosModulos.claveModuloGlobal) select pr.valor ); valor = query.FirstOrDefault(); } string opcionParametroHorasNaturales = "1"; if (valor.Equals(opcionParametroHorasNaturales)) { manejoPorHoras = ManejoHorasPor.HORASNATURALES; } else { manejoPorHoras = ManejoHorasPor.HSM; } #endregion #region Manejo salario diario ////operadorSelect = new OperadorSelect(new List<CamposSelect>() { new CamposSelect("Cruce.valor", TipoFuncion.NINGUNO) }); query = (from cr in getSession().Set <Cruce>() join pr in getSession().Set <Parametros>() on cr.parametros_ID equals pr.id join ea in getSession().Set <ElementosAplicacion>() on cr.elementosAplicacion_ID equals ea.id where pr.clave == (decimal)ClavesParametrosModulos.claveParametroManejarSalarioDiarioPor && ea.clave.Equals(ClavesParametrosModulos.claveElementoAplicacionRazonSocial) && cr.claveElemento.Equals(listCamposWhere[listCamposWhere.Count - 1].valor) select cr.valor ); valor = query.FirstOrDefault(); ////listSubCamposWhere = new List<CamposWhere>() { new CamposWhere("Cruce.parametros.clave", claveParametroManejarSalarioDiarioPor, OperadorComparacion.IGUAL, OperadorLogico.AND), //// new CamposWhere("Cruce.elementosAplicacion.clave", claveElementoAplicacionRazonSocial, OperadorComparacion.IGUAL, OperadorLogico.AND), //// new CamposWhere("Cruce.claveElemento", listCamposWhere[listCamposWhere.Count - 1].valor, OperadorComparacion.IGUAL, OperadorLogico.AND)}; ////mensajeResultado = conectorQuerysGenericos.consultaGenerica(conexionPendiente, TipoResultado.Unico, TipoOperacion.SELECT, //// "", operadorSelect, null, listSubCamposWhere, null, null, null); ////if (mensajeResultado.noError != 0) ////{ //// return mensajeResultado; ////} ////valor = (string)mensajeResultado.resultado; if (String.IsNullOrEmpty(valor)) { // operadorSelect = new OperadorSelect(new List<CamposSelect>() { new CamposSelect("Parametros.valor", TipoFuncion.NINGUNO) }); // listSubCamposWhere = new List<CamposWhere>() { new CamposWhere("Parametros.clave", claveParametroManejarSalarioDiarioPor, OperadorComparacion.IGUAL, OperadorLogico.AND), // new CamposWhere("Parametros.modulo.clave", claveModuloGlobal, OperadorComparacion.IGUAL, OperadorLogico.AND)}; // mensajeResultado = conectorQuerysGenericos.consultaGenerica(conexionPendiente, TipoResultado.Unico, TipoOperacion.SELECT, //"", operadorSelect, null, listSubCamposWhere, null, null, null); // if (mensajeResultado.noError != 0) // { // return mensajeResultado; // } // valor = (string)mensajeResultado.resultado; query = (from pr in getSession().Set <Parametros>() join m in getSession().Set <Modulo>() on pr.modulo_ID equals m.id where pr.clave == (decimal)ClavesParametrosModulos.claveParametroManejarSalarioDiarioPor && m.clave.Equals(ClavesParametrosModulos.claveModuloGlobal) select pr.valor ); valor = query.FirstOrDefault(); } if (valor.Equals(ClavesParametrosModulos.opcionParametroSalarioDiario)) { manejoSalarioDiario = ManejoSalarioDiario.DIARIO; } else if (valor.Equals(ClavesParametrosModulos.opcionParametroSalarioSemanal)) { manejoSalarioDiario = ManejoSalarioDiario.SEMANAL; } else if (valor.Equals(ClavesParametrosModulos.opcionParametroSalarioQuincenal)) { manejoSalarioDiario = ManejoSalarioDiario.QUINCENAL; } else { manejoSalarioDiario = ManejoSalarioDiario.MENSUAL; } #endregion getSession().Database.CurrentTransaction.Commit(); setSession(dbContext.context); getSession().Database.BeginTransaction(); var queryPrincipal = (from p in getSession().Set <PlazasPorEmpleadosMov>() join pe in getSession().Set <PlazasPorEmpleado>() on p.plazasPorEmpleado_ID equals pe.id into pe_join from pe in pe_join.DefaultIfEmpty() join emp2 in getSession().Set <Empleados>() on pe.empleados_ID equals emp2.id into emp2_join from emp2 in emp2_join.DefaultIfEmpty() where (from m in getSession().Set <PlazasPorEmpleadosMov>() join pe2 in getSession().Set <PlazasPorEmpleado>() on m.plazasPorEmpleado_ID equals pe2.id into pe2_join from pe2 in pe2_join.DefaultIfEmpty() join rs in getSession().Set <RazonesSociales>() on pe2.razonesSociales_ID equals rs.id into rs_join from rs in rs_join.DefaultIfEmpty() join emp3 in getSession().Set <Empleados>() on pe2.empleados_ID equals emp3.id into emp3_join from emp3 in emp3_join.DefaultIfEmpty() where rs.clave.Equals(listCamposWhere[listCamposWhere.Count - 1].valor) && (DateTime.Now >= m.fechaInicial && DateTime.Now <= pe2.fechaFinal) group new { pe2, m } by new { pe2.referencia } into g select new { Column1 = g.Max(pp => pp.m.id) }).Contains(new { Column1 = p.id }) select new { p, pe, emp2 } ); for (int i = 0; i < listCamposWhere.Count - 2; i++) { if (!String.IsNullOrEmpty(listCamposWhere[i].campo)) { if (listCamposWhere[i].campo.Equals("ClaveEmpleado")) { queryPrincipal = (from subquery in queryPrincipal where subquery.emp2.clave.Equals(listCamposWhere[i].valor) select subquery); } if (listCamposWhere[i].campo.Equals("ClavePlazaEmpleado")) { queryPrincipal = (from subquery in queryPrincipal where subquery.pe.referencia.Equals(listCamposWhere[i].valor) select subquery); } if (listCamposWhere[i].campo.Equals("FechaInicial")) { queryPrincipal = (from subquery in queryPrincipal where subquery.p.fechaInicial == (DateTime)listCamposWhere[i].valor select subquery); } if (listCamposWhere[i].campo.Equals("FechaFinal")) { queryPrincipal = (from subquery in queryPrincipal where subquery.pe.fechaFinal == (DateTime)listCamposWhere[i].valor select subquery); } if (listCamposWhere[i].campo.Equals("Horas")) { queryPrincipal = (from subquery in queryPrincipal where subquery.p.horas == (int)listCamposWhere[i].valor select subquery); } if (listCamposWhere[i].campo.Equals("Importe")) { queryPrincipal = (from subquery in queryPrincipal where subquery.p.importe == (double)listCamposWhere[i].valor select subquery); } if (listCamposWhere[i].campo.Equals("DescripcionCentroCosto")) { queryPrincipal = (from subquery in queryPrincipal join cc in getSession().Set <CentroDeCosto>() on subquery.p.centroDeCosto_ID equals cc.id into cc_join from cc in cc_join.DefaultIfEmpty() where cc.descripcion.Equals(listCamposWhere[i].valor) select subquery); } if (listCamposWhere[i].campo.Equals("DescripcionPuesto")) { queryPrincipal = (from subquery in queryPrincipal join pt in getSession().Set <Puestos>() on subquery.p.puestos_ID equals pt.id into pt_join from pt in pt_join.DefaultIfEmpty() where pt.descripcion.Equals(listCamposWhere[i].valor) select subquery); } if (listCamposWhere[i].campo.Equals("ClavePlaza")) { queryPrincipal = (from subquery in queryPrincipal join pz in getSession().Set <Plazas>() on subquery.p.plazas_ID equals pz.id into pz_join from pz in pz_join.DefaultIfEmpty() where pz.clave.Equals(listCamposWhere[i].valor) select subquery); } } } var queryFinal = (from subquery in queryPrincipal orderby subquery.emp2.clave, subquery.p.fechaInicial select new DatosPlazasEmpleado() { plazasPorEmpleadosMov = subquery.p, fechaIngreso = ((from ingresos in getSession().Set <IngresosBajas>() where ingresos.id == (from ol in getSession().Set <IngresosBajas>() where ol.fechaIngreso <= (from o2 in getSession().Set <IngresosBajas>() join emp in getSession().Set <Empleados>() on ol.empleados_ID equals emp.id into emp_join from emp in emp_join.DefaultIfEmpty() where o2.fechaBaja >= DateTime.Now && emp.clave == subquery.emp2.clave select new { o2.fechaIngreso }).Max(pp => pp.fechaIngreso) select new { ol.id }).Max(pp => pp.id) select new { ingresos.fechaIngreso }).First().fechaIngreso), manejaPagosPorHora = manejoPagoPorHora ? 0 : 1, manejoHorasPor = (int)manejoPorHoras, manejoSalarioDiario = (int)manejoSalarioDiario }); if (uniqueResult) { mensajeResultado.noError = 0; mensajeResultado.resultado = queryFinal.SingleOrDefault(); } else { mensajeResultado.noError = 0; mensajeResultado.resultado = queryFinal.ToList(); } getSession().Database.CurrentTransaction.Commit(); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(concatena.Remove(0, concatena.Length).Append(msgError).Append("buscaCFDIEmpleadosFiltrado()1_Error: ").Append(ex)); mensajeResultado.noError = ControlErroresEntity.buscaNoErrorPorExcepcion(ex); mensajeResultado.error = ex.GetBaseException().ToString(); mensajeResultado.resultado = null; getSession().Database.CurrentTransaction.Rollback(); } } return(mensajeResultado); }
public ResultadoOperacion() { Tipo = TipoResultado.NO_ERROR; Detalle = "Todo jala perfecto"; }