289 lines
13 KiB
C#
289 lines
13 KiB
C#
using Exferia_Aplicacion.General;
|
|
using Exferia_Aplicacion.Modelos_Listado_Filtros;
|
|
using Exferia_KairosPRO_EF;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Exferia_KairosPRO._2_Datos
|
|
{
|
|
public class Compartidas_Datos_KairosPRO
|
|
{
|
|
|
|
#region BuscarCodigoSiguiente
|
|
public static string Buscar_CodigoSiguiente(string _str_Tabla_Nombre,
|
|
string _str_Campo_Nombre,
|
|
bool _bol_TieneFechaBorrado,
|
|
int _int_Campo_CaracteresMaximo)
|
|
{
|
|
KairosProEntities obj_KairosProEntities = null;
|
|
string str_CodigoSiguiente = "1";
|
|
|
|
try
|
|
{
|
|
obj_KairosProEntities = new KairosProEntities();
|
|
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
|
|
|
|
string str_SQL = "SELECT convert(bigint," + _str_Campo_Nombre + ") as Valor FROM " + _str_Tabla_Nombre + " WHERE ISNUMERIC(" + _str_Campo_Nombre + " + '.0e0')= 1 and codigoCliente=" + Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO + " " ;
|
|
|
|
//Orden
|
|
str_SQL += " ORDER BY convert(bigint," + _str_Campo_Nombre + ") DESC ";
|
|
|
|
INTERNA_SQLQUERY_LONG mdl_INTERNA_SQLQUERY_LONG = obj_KairosProEntities.Database.SqlQuery<INTERNA_SQLQUERY_LONG>(str_SQL).FirstOrDefault();
|
|
|
|
if (mdl_INTERNA_SQLQUERY_LONG != null && mdl_INTERNA_SQLQUERY_LONG.Valor > 0)
|
|
{
|
|
str_CodigoSiguiente = (mdl_INTERNA_SQLQUERY_LONG.Valor + 1).ToString();
|
|
}
|
|
|
|
//Si el tamaño del campo es menor que el del valor calculado
|
|
if (str_CodigoSiguiente.Length > _int_Campo_CaracteresMaximo)
|
|
{
|
|
str_CodigoSiguiente = "-1";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Control_Errores(Mensajes.G_STR_MENSAJES_GENERAL_ERROR_BUSCARCODIGOSIGUIENTE(), ex, nameof(Compartidas_Datos_KairosPRO) + "/" + nameof(Buscar_CodigoSiguiente), true);
|
|
}
|
|
finally
|
|
{
|
|
obj_KairosProEntities.Database.Connection.Close();
|
|
obj_KairosProEntities.Dispose();
|
|
}
|
|
|
|
return str_CodigoSiguiente;
|
|
}
|
|
public static string Buscar_CodigoSiguiente(string _str_Tabla_Nombre,
|
|
string _str_Campo_Nombre,
|
|
string _str_CampoAuxiliar_Nombre,
|
|
long _lng_CampoAuxiliar_Valor,
|
|
bool _bol_TieneFechaBorrado,
|
|
int _int_Campo_CaracteresMaximo)
|
|
{
|
|
KairosProEntities obj_KairosProEntities = null;
|
|
string str_CodigoSiguiente = "1";
|
|
|
|
try
|
|
{
|
|
obj_KairosProEntities = new KairosProEntities();
|
|
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
|
|
|
|
string str_SQL = "SELECT convert(bigint," + _str_Campo_Nombre + ") as Valor FROM " + _str_Tabla_Nombre + " WHERE ISNUMERIC(" + _str_Campo_Nombre + " + '.0e0')= 1 and codigoCliente=" + Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO + " " ;
|
|
|
|
//Campo Auxiliar
|
|
str_SQL += " AND " + _str_CampoAuxiliar_Nombre + "=" + _lng_CampoAuxiliar_Valor;
|
|
|
|
//Filtrar que la fecha Borrado sea Nula si la Tuviera
|
|
if (_bol_TieneFechaBorrado)
|
|
{
|
|
str_SQL += " AND fechaBorrado is null ";
|
|
}
|
|
|
|
//Orden
|
|
str_SQL += " ORDER BY convert(bigint," + _str_Campo_Nombre + ") DESC ";
|
|
|
|
INTERNA_SQLQUERY_LONG mdl_INTERNA_SQLQUERY_LONG = obj_KairosProEntities.Database.SqlQuery<INTERNA_SQLQUERY_LONG>(str_SQL).FirstOrDefault();
|
|
|
|
if (mdl_INTERNA_SQLQUERY_LONG != null && mdl_INTERNA_SQLQUERY_LONG.Valor > 0)
|
|
{
|
|
str_CodigoSiguiente = (mdl_INTERNA_SQLQUERY_LONG.Valor + 1).ToString();
|
|
}
|
|
|
|
//Si el tamaño del campo es menor que el del valor calculado
|
|
if (str_CodigoSiguiente.Length > _int_Campo_CaracteresMaximo)
|
|
{
|
|
str_CodigoSiguiente = "-1";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Control_Errores(Mensajes.G_STR_MENSAJES_GENERAL_ERROR_BUSCARCODIGOSIGUIENTE(), ex, nameof(Compartidas_Datos_KairosPRO) + "/" + nameof(Buscar_CodigoSiguiente), true);
|
|
}
|
|
finally
|
|
{
|
|
obj_KairosProEntities.Database.Connection.Close();
|
|
obj_KairosProEntities.Dispose();
|
|
}
|
|
|
|
return str_CodigoSiguiente;
|
|
}
|
|
|
|
public static string Buscar_CodigoSiguiente_Numerico(string _str_Tabla_Nombre,
|
|
string _str_Campo_Nombre,
|
|
bool _bol_TieneFechaBorrado,
|
|
int _int_Campo_CaracteresMaximo)
|
|
{
|
|
KairosProEntities obj_KairosProEntities = null;
|
|
string str_CodigoSiguiente = "1";
|
|
|
|
try
|
|
{
|
|
obj_KairosProEntities = new KairosProEntities();
|
|
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
|
|
|
|
string str_SQL = "SELECT " + _str_Campo_Nombre + " as Valor FROM " + _str_Tabla_Nombre;
|
|
|
|
string str_Where = "WHERE codigoCliente=" + Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO + " ";
|
|
|
|
//Filtrar que la fecha Borrado sea Nula si la Tuviera
|
|
if (_bol_TieneFechaBorrado)
|
|
{
|
|
str_Where += " AND fechaBorrado is null ";
|
|
}
|
|
|
|
//Orden
|
|
str_SQL += " ORDER BY " + _str_Campo_Nombre + " DESC ";
|
|
|
|
INTERNA_SQLQUERY_LONG mdl_INTERNA_SQLQUERY_LONG = obj_KairosProEntities.Database.SqlQuery<INTERNA_SQLQUERY_LONG>(str_SQL).FirstOrDefault();
|
|
|
|
if (mdl_INTERNA_SQLQUERY_LONG != null && mdl_INTERNA_SQLQUERY_LONG.Valor > 0)
|
|
{
|
|
str_CodigoSiguiente = (mdl_INTERNA_SQLQUERY_LONG.Valor + 1).ToString();
|
|
}
|
|
|
|
//Si el tamaño del campo es menor que el del valor calculado
|
|
if (str_CodigoSiguiente.Length > _int_Campo_CaracteresMaximo)
|
|
{
|
|
str_CodigoSiguiente = "-1";
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Control_Errores(Mensajes.G_STR_MENSAJES_GENERAL_ERROR_BUSCARCODIGOSIGUIENTE(), ex, nameof(Compartidas_Datos_KairosPRO) + "/" + nameof(Buscar_CodigoSiguiente_Numerico), true);
|
|
}
|
|
finally
|
|
{
|
|
obj_KairosProEntities.Database.Connection.Close();
|
|
obj_KairosProEntities.Dispose();
|
|
}
|
|
|
|
return str_CodigoSiguiente;
|
|
}
|
|
|
|
public static string Buscar_CodigoSiguiente_Numerico(string _str_Tabla_Nombre,
|
|
string _str_Campo_Nombre,
|
|
string _str_CampoAuxiliar_Nombre,
|
|
long _lng_CampoAuxiliar_Valor,
|
|
bool _bol_TieneFechaBorrado,
|
|
int _int_Campo_CaracteresMaximo)
|
|
{
|
|
KairosProEntities obj_KairosProEntities = null;
|
|
string str_CodigoSiguiente = "1";
|
|
|
|
try
|
|
{
|
|
obj_KairosProEntities = new KairosProEntities();
|
|
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
|
|
|
|
string str_SQL = "SELECT " + _str_Campo_Nombre + " as Valor FROM " + _str_Tabla_Nombre + " WHERE codigoCliente = " + Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO + " ";
|
|
|
|
//Campo Auxiliar
|
|
str_SQL += " AND " + _str_CampoAuxiliar_Nombre + "=" + _lng_CampoAuxiliar_Valor;
|
|
|
|
//Filtrar que la fecha Borrado sea Nula si la Tuviera
|
|
if (_bol_TieneFechaBorrado)
|
|
{
|
|
str_SQL += " AND fechaBorrado is null ";
|
|
}
|
|
|
|
//Orden
|
|
str_SQL += " ORDER BY " + _str_Campo_Nombre + " DESC ";
|
|
|
|
INTERNA_SQLQUERY_LONG mdl_INTERNA_SQLQUERY_LONG = obj_KairosProEntities.Database.SqlQuery<INTERNA_SQLQUERY_LONG>(str_SQL).FirstOrDefault();
|
|
|
|
if (mdl_INTERNA_SQLQUERY_LONG != null && mdl_INTERNA_SQLQUERY_LONG.Valor > 0)
|
|
{
|
|
str_CodigoSiguiente = (mdl_INTERNA_SQLQUERY_LONG.Valor + 1).ToString();
|
|
}
|
|
|
|
//Si el tamaño del campo es menor que el del valor calculado
|
|
if (str_CodigoSiguiente.Length > _int_Campo_CaracteresMaximo)
|
|
{
|
|
str_CodigoSiguiente = "-1";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Control_Errores(Mensajes.G_STR_MENSAJES_GENERAL_ERROR_BUSCARCODIGOSIGUIENTE(), ex, nameof(Compartidas_Datos_KairosPRO) + "/" + nameof(Buscar_CodigoSiguiente_Numerico), true);
|
|
}
|
|
finally
|
|
{
|
|
obj_KairosProEntities.Database.Connection.Close();
|
|
obj_KairosProEntities.Dispose();
|
|
}
|
|
|
|
return str_CodigoSiguiente;
|
|
}
|
|
#endregion
|
|
|
|
|
|
public static List<INTERNO_Listado_Simple_Modelo> Buscar_Datos_Filtros_Relacionados(string _str_Tabla_Nombre,
|
|
string _str_Campo_Id,
|
|
string _str_Campo_Codigo,
|
|
string _str_Campo_Descripcion,
|
|
string _str_Campo_FechaBorrado,
|
|
string _str_Where)
|
|
{
|
|
KairosProEntities obj_KairosProEntities = null;
|
|
List<INTERNO_Listado_Simple_Modelo> lst_INTERNO_Listado_Simple_Modelo = null;
|
|
|
|
try
|
|
{
|
|
obj_KairosProEntities = new KairosProEntities();
|
|
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
|
|
|
|
//Formar los campos a Devolver ........................................................................
|
|
string str_Campos = "";
|
|
str_Campos += _str_Campo_Id + " as " + nameof(INTERNO_Listado_Simple_Modelo.ID) + ",";
|
|
str_Campos += _str_Campo_Codigo + " as " + nameof(INTERNO_Listado_Simple_Modelo.CODIGO) + ",";
|
|
str_Campos += _str_Campo_Descripcion + " as " + nameof(INTERNO_Listado_Simple_Modelo.DESCRIPCION) + ",";
|
|
|
|
if (_str_Campo_FechaBorrado.Trim().Length > 0)
|
|
{
|
|
str_Campos += _str_Campo_FechaBorrado + " as " + nameof(INTERNO_Listado_Simple_Modelo.FECHABORRADO) + ",";
|
|
}
|
|
str_Campos = str_Campos.Substring(0, str_Campos.Length - 1);
|
|
|
|
if (_str_Where.Trim().Length > 0)
|
|
{
|
|
_str_Where = " WHERE " + _str_Where;
|
|
}
|
|
|
|
//Formar Consulta SQLServer ....................................................
|
|
string str_SQL = "SELECT " + str_Campos + " FROM " + _str_Tabla_Nombre + _str_Where;
|
|
|
|
//Ejecutar Conuslta
|
|
lst_INTERNO_Listado_Simple_Modelo = obj_KairosProEntities.Database.SqlQuery<INTERNO_Listado_Simple_Modelo>(str_SQL).ToList();
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Control_Errores("", ex, nameof(Compartidas_Datos_KairosPRO) + "/" + nameof(Buscar_Datos_Filtros_Relacionados), true);
|
|
}
|
|
finally
|
|
{
|
|
obj_KairosProEntities.Database.Connection.Close();
|
|
obj_KairosProEntities.Dispose();
|
|
}
|
|
|
|
return lst_INTERNO_Listado_Simple_Modelo;
|
|
}
|
|
|
|
internal class INTERNA_SQLQUERY_INT
|
|
{
|
|
public int Valor { get; set; }
|
|
|
|
}
|
|
|
|
internal class INTERNA_SQLQUERY_LONG
|
|
{
|
|
public long Valor { get; set; }
|
|
|
|
}
|
|
}
|
|
}
|