예제 #1
0
        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);
        }
예제 #2
0
        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;
            }
        }
예제 #3
0
        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);
        }
예제 #4
0
 /// <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;
 }
예제 #5
0
        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);
        }
예제 #6
0
 /// <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;
 }
예제 #7
0
 /// <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;
 }
예제 #8
0
        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);
        }
예제 #9
0
파일: Geocoding.cs 프로젝트: lulzzz/SAT
        /// <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);
        }
예제 #10
0
        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);
        }
예제 #11
0
 public ResultadoOperacion()
 {
     Tipo    = TipoResultado.NO_ERROR;
     Detalle = "Todo jala perfecto";
 }