Exferia/Exferia_KairosPro/Exferia_KairosPRO/2_Datos/Compartidas_Datos_KairosPRO.cs

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; }
}
}
}