This commit is contained in:
Antonio Gonzalez
2020-12-02 21:14:57 -07:00
3 changed files with 635 additions and 34 deletions

View File

@@ -120,6 +120,83 @@ Public Class ClsClaseBase
SqlAdapter.SelectCommand.Parameters.Add(name, tipo).Value = valor
End If
End Sub
Public Function runQuerystr(Query As String, Optional Listaparametros As List(Of parametroQuery) = Nothing, Optional msgError As String = "", Optional mostrarError As Boolean = True) As Boolean
Dim retorno As Boolean = False
Try
If SqlConexion.State = ConnectionState.Open Then
SqlAdapter.SelectCommand.Parameters.Clear()
SqlAdapter.SelectCommand.CommandText = Query
SqlAdapter.SelectCommand.CommandType = CommandType.Text
Data = New DataTable()
If Not IsNothing(Listaparametros) Then
For Each pr As parametroQuery In Listaparametros
If Not IsNothing(pr.SqlDataType) Then
If Not IsNothing(pr.ParameterDirection) Then
SqlAdapter.SelectCommand.Parameters.Add(pr.ParameterName, pr.SqlDataType).Direction = pr.ParameterDirection
Else
SqlAdapter.SelectCommand.Parameters.Add(pr.ParameterName, pr.SqlDataType).Value = If(Not IsNothing(pr.SqlValue), pr.SqlValue, DBNull.Value)
End If
Else
SqlAdapter.SelectCommand.Parameters.AddWithValue(pr.ParameterName, pr.SqlValue)
End If
Next
End If
SqlAdapter.Fill(Data)
retorno = True
Else
Dim InfoAdicional As String = "Se intenta realizar una conexion con una conexion cerrada"
InfoAdicional = $"{InfoAdicional}{Environment.NewLine}{msgError}{Environment.NewLine}"
GuardaLog(InfoAdicional)
End If
Catch sqEx As SqlException
retorno = False
setOnError(msgError, sqEx)
Catch ex As Exception
retorno = False
setOnError(msgError, ex)
End Try
Return retorno
End Function
Public Function ExecQuery(Query As String, Optional Listaparametros As List(Of parametroQuery) = Nothing, Optional msgError As String = "", Optional mostrarError As Boolean = True) As Integer
Dim retorno As Integer = -1
Try
If SqlConexion.State = ConnectionState.Open Then
SqlAdapter.SelectCommand.Parameters.Clear()
SqlAdapter.SelectCommand.CommandText = Query
SqlAdapter.SelectCommand.CommandType = CommandType.Text
If Not IsNothing(Listaparametros) Then
For Each pr As parametroQuery In Listaparametros
If Not IsNothing(pr.SqlDataType) Then
If Not IsNothing(pr.ParameterDirection) Then
SqlAdapter.SelectCommand.Parameters.Add(pr.ParameterName, pr.SqlDataType).Direction = pr.ParameterDirection
Else
SqlAdapter.SelectCommand.Parameters.Add(pr.ParameterName, pr.SqlDataType).Value = If(Not IsNothing(pr.SqlValue), pr.SqlValue, DBNull.Value)
End If
Else
SqlAdapter.SelectCommand.Parameters.AddWithValue(pr.ParameterName, pr.SqlValue)
End If
Next
End If
retorno = SqlAdapter.SelectCommand.ExecuteNonQuery()
Else
Dim InfoAdicional As String = "Se intenta realizar una conexion con una conexion cerrada"
InfoAdicional = $"{InfoAdicional}{Environment.NewLine}{msgError}{Environment.NewLine}"
GuardaLog(InfoAdicional)
End If
Catch sqEx As SqlException
retorno = -1
setOnError(msgError, sqEx)
Catch ex As Exception
retorno = -1
setOnError(msgError, ex)
End Try
Return retorno
End Function
Protected Function RunQuery(msgOnError As String) As Boolean
Dim retorno As Boolean = False
@@ -203,3 +280,19 @@ Public Class ClsClaseBase
End Sub
End Class
Public Class parametroQuery
Public Sub New(parameterName As String, sqlValue As Object, Optional sqlDataType As SqlDbType = Nothing, Optional parameterDirection As ParameterDirection = Nothing)
Me.ParameterName = parameterName
Me.SqlDataType = sqlDataType
Me.ParameterDirection = parameterDirection
Me.SqlValue = sqlValue
End Sub
Public Property ParameterName As String
Public Property SqlDataType As SqlDbType
Public Property ParameterDirection As ParameterDirection
Public Property SqlValue As Object
End Class

View File

@@ -3,6 +3,26 @@
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.dSala {
width: 90px;
}
.dlab {
width: 50px;
}
.dSala input {
width: 80px;
text-align: right;
}
.dlab input {
width: 40px;
text-align: right;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
<script>$('body').removeClass('rhumanosbody').addClass('rhumanosbody')</script>
@@ -51,7 +71,7 @@
<asp:UpdatePanel ID="upDatosPA_N" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<div class="col-md-3 col-md-offset-1">
<div class="col-md-2 col-md-offset-1">
<div class="dashboard-stat blue">
<div class="visual"><i class="fa fa-sort-numeric-desc"></i></div>
<div class="details">
@@ -59,35 +79,55 @@
<asp:Literal ID="LtlTotal" runat="server"></asp:Literal>
</div>
<div class="desc">
Total Aguinaldo
Total aguinaldo
</div>
</div>
</div>
</div>
<div class="col-md-3 col-md-offset-1">
<div class="col-md-2 col-md-offset-1">
<div class="dashboard-stat green">
<div class="visual"><i class="fa fa-line-chart"></i></div>
<div class="details">
<div class="number">
<asp:Literal ID="LtlAutorizado" runat="server"></asp:Literal></div>
<asp:Literal ID="LtlAutorizado" runat="server"></asp:Literal>
</div>
<div class="desc">
Autorizado
</div>
</div>
</div>
</div>
<div class="col-md-3 col-md-offset-1">
<div class="col-md-2 col-md-offset-1">
<div class="dashboard-stat green">
<div class="visual"><i class="fa fa-line-chart"></i></div>
<div class="details">
<div class="number">
<asp:Literal ID="LtldiasEjercicio" runat="server"></asp:Literal></div>
<asp:Literal ID="LtldiasEjercicio" runat="server"></asp:Literal>
</div>
<div class="desc">
Días ejercicio
</div>
</div>
</div>
</div>
<div class="col-md-2 col-md-offset-1">
<div class="dashboard-stat green">
<div class="visual"><i class="fa fa-line-chart"></i></div>
<div class="details">
<div class="number">
<asp:Literal ID="LtlUma" runat="server"></asp:Literal>
</div>
<div class="desc">
UMA
</div>
</div>
</div>
</div>
</div>
<br />
<div style="text-align: right">
<asp:Button ID="BtnRecalcular" CssClass="btn btn-primary" OnClick="BtnRecalcular_Click" runat="server" Text="Recalcular" />
</div>
<asp:GridView ID="GVCalcularAguinaldo" runat="server" GridLines="None" CssClass="table table-hover table-striped ScrollAD Widthall GVCalcularUtilidades" AutoGenerateColumns="False"
DataKeyNames="Nombre,CvePersonal" OnRowDataBound="GVCalcularAguinaldo_RowDataBound">
@@ -97,37 +137,31 @@
<asp:Label ID="lblnombreCompleto" runat="server" Text='<%# Eval("Nombre")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Días Laborados">
<asp:TemplateField HeaderText="Salario diario">
<ItemTemplate>
<asp:Label ID="lbldiasLaborados" runat="server" Text='<%# Eval("DiasLaborados")%>'> </asp:Label>
<asp:TextBox ID="TxtsueldoDiario" runat="server" Text='<%# Eval("SalarioDiario", "${0:N2}")%>'> </asp:TextBox>
</ItemTemplate>
<ItemStyle HorizontalAlign="Right" />
<ItemStyle HorizontalAlign="Right" CssClass="dSala" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Días Aguinaldo">
<asp:TemplateField HeaderText="Días laborados">
<ItemTemplate>
<asp:Label ID="lbldiasAguinaldo" runat="server" Text='<%# Eval("NumDiasAguinaldo")%>'> </asp:Label>
<asp:TextBox ID="TxtdiasLaborados" runat="server" Text='<%# Eval("DiasLaborados")%>'> </asp:TextBox>
</ItemTemplate>
<ItemStyle HorizontalAlign="Right" />
<ItemStyle HorizontalAlign="Right" CssClass="dlab" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Salario Diario">
<asp:TemplateField HeaderText="Días aguinaldo">
<ItemTemplate>
<asp:Label ID="lblsueldoDiario" runat="server" Text='<%# Eval("SalarioDiario", "${0:N2}")%>'> </asp:Label>
<asp:TextBox ID="TxtdiasAguinaldo" runat="server" Text='<%# Eval("NumDiasAguinaldo")%>'> </asp:TextBox>
</ItemTemplate>
<ItemStyle HorizontalAlign="Right" />
<ItemStyle HorizontalAlign="Right" CssClass="dlab" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Aguinaldo Completo">
<asp:TemplateField HeaderText="Aguinaldo completo">
<ItemTemplate>
<asp:Label ID="lblsueldoAguinaldoCompleto" runat="server" Text='<%# Eval("AguinaldoCompleto", "${0:N2}")%>'> </asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Right" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Aguinaldo">
<ItemTemplate>
<asp:Label ID="lblAguinaldo" runat="server" Text='<%# Eval("Aguinaldo", "${0:N2}")%>'> </asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Right" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Aguinaldo Gravado">
<asp:TemplateField HeaderText="Aguinaldo gravado">
<ItemTemplate>
<asp:Label ID="lblAguinaldoGravado" runat="server" Text='<%# Eval("AguinaldoGravado", "${0:N2}")%>'> </asp:Label>
</ItemTemplate>
@@ -135,7 +169,13 @@
</asp:TemplateField>
<asp:TemplateField HeaderText="Impuesto">
<ItemTemplate>
<asp:Label ID="lblAguinaldo" runat="server" Text='<%# Eval("ISR", "${0:N2}")%>'> </asp:Label>
<asp:Label ID="lblISRAguinaldo" runat="server" Text='<%# Eval("ISR", "${0:N2}")%>'> </asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Right" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Aguinaldo por pagar">
<ItemTemplate>
<asp:Label ID="lblAguinaldo" runat="server" Text='<%# Eval("Aguinaldo", "${0:N2}")%>'> </asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Right" />
</asp:TemplateField>
@@ -143,6 +183,7 @@
<ItemTemplate>
</ItemTemplate>
</asp:TemplateField>
<%-- <asp:TemplateField HeaderText="Gravadas">
<ItemTemplate>
<asp:Label ID="lbluGravadas" runat="server" Text='<%# Eval("ISR", "${0:N2}")%>'> </asp:Label>
@@ -174,7 +215,7 @@
<h4 class="modal-title">Autorizar</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="row">
<label class="col-md-4 ">Tipo Período:</label>
<div class="col-md-8">
<asp:DropDownList ID="DdlTipoPeriodoB" runat="server" CssClass="select2me" AutoPostBack="true" OnSelectedIndexChanged="DdlTipoPeriodoB_SelectedIndexChanged"
@@ -182,15 +223,15 @@
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
</div>
<div class="row">
<label class="col-md-4 ">Período:</label>
<div class="col-md-8">
<asp:DropDownList ID="DdlPeriodo" runat="server" CssClass="select2me" DataTextField="NominaEstatus" DataValueField="CvePeriodo" Style="width: 100% !important;" >
<asp:DropDownList ID="DdlPeriodo" runat="server" CssClass="select2me" DataTextField="NominaEstatus" DataValueField="CvePeriodo" Style="width: 100% !important;">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
</div>
</div>

View File

@@ -1,7 +1,10 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
@@ -42,6 +45,7 @@ public partial class Nomina_Aguinaldo : ClsPaginas
DdlTipoPeriodo.SelectedIndex = 0;
}
}
LtlUma.Text = "86.88";
}
@@ -58,13 +62,14 @@ public partial class Nomina_Aguinaldo : ClsPaginas
DTAguinaldos = objnom.DtResultados;
GVCalcularAguinaldo.DataSource = DTAguinaldos;
LtlTotal.Text = string.Format("{0:N2}", DTAguinaldos.SUM("Aguinaldo"));
LtlAutorizado.Text = string.Format("{0:N2}", DTAguinaldos.SUM("Aguinaldo","CveNomina>0"));
LtlAutorizado.Text = string.Format("{0:N2}", DTAguinaldos.SUM("Aguinaldo", "CveNomina>0"));
LtldiasEjercicio.Text = string.Format("{0}/12/31", ejercicio).ToDate().DayOfYear.ToString();
}
GVCalcularAguinaldo.DataBind();
LnkAutorizarModal.Visible = true;
BtnRecalcular_Click(sender, null);
upDatosPA_N.Update();
}
private void CargaPeriodos()
@@ -149,7 +154,7 @@ public partial class Nomina_Aguinaldo : ClsPaginas
{
continuar = false;
Alert("debe agregar un concepto para el calculo del aguinaldo", ModExtensiones.TipoMensaje.ToastAdventencia);
}
}
}
if (continuar)
{
@@ -169,9 +174,9 @@ public partial class Nomina_Aguinaldo : ClsPaginas
ImporteGravado = row["AguinaldoGravado"].ToString().ToDecimal();
ImporteExento = Importe - ImporteGravado;
ImporteValor = row["DiasLaborados"].ToString().ToDecimal();
if (CvePersonal > 0 && Importe>0 && row["CveNomina"].ToString().ToEntero()==0)
if (CvePersonal > 0 && Importe > 0 && row["CveNomina"].ToString().ToEntero() == 0)
{
if (objNomina.GetNom_Nominas(-1, CvePersonal, CvePeriodoSeleccionado, -1, UsuarioActual.CveEmpresa))
{
@@ -261,4 +266,466 @@ public partial class Nomina_Aguinaldo : ClsPaginas
}
}
}
}
protected void BtnRecalcular_Click(object sender, EventArgs e)
{
decimal uma = 86.88m;
decimal aguiexentogral = uma * 30;
decimal salariodiario = 0;
decimal diasanio = 366;
decimal diaslaborados = 0;
decimal diasaguinaldo = 0;
decimal diasaguipago = 0;
decimal salariomensual = 0;
decimal aguinaldo = 0;
decimal aguinaldoexcento = 0;
decimal aguinaldogravado = 0;
decimal diasmes = 30.5m;
decimal FraccionI = 0;
decimal FraccionII_1 = 0;
decimal FraccionII_2 = 0;
decimal FraccionIII_1 = 0;
decimal FraccionIII_2 = 0;
decimal FraccionV = 0;
decimal FraccionIV = 0;
decimal Aguinaldoapagar = 0;
decimal AguinaldoapagarTotal = 0;
StringBuilder str = new StringBuilder();
using (ClsClaseBaseD objbase = new ClsClaseBaseD())
{
foreach (GridViewRow gvrow in GVCalcularAguinaldo.Rows)
{
salariodiario = gvrow.FCTextBox("TxtsueldoDiario").Text.ToDecimal();
diaslaborados = gvrow.FCTextBox("TxtdiasLaborados").Text.ToDecimal();
diasaguinaldo = gvrow.FCTextBox("TxtdiasAguinaldo").Text.ToDecimal();
if (salariodiario > 0)
{
diasaguipago = (diaslaborados / diasanio) * diasaguinaldo;
salariomensual = salariodiario * 30;
aguinaldo = diasaguipago * salariodiario;
aguinaldoexcento = (aguiexentogral > aguinaldo ? aguinaldo : aguiexentogral);
aguinaldogravado = aguinaldo - aguinaldoexcento;
if (aguinaldogravado > 0) {
FraccionI = (aguinaldogravado / diasanio) * diasmes;
FraccionII_1 = salariomensual + FraccionI;
str.Clear();
str.AppendFormat("SELECT dbo.Fnc_NomValues(40, 0, 00, -1, {0}, {1}, {1}) isrFraccionII_2,", FraccionII_1, diasmes);
str.AppendFormat(" dbo.Fnc_NomValues(40, 0, 00, -1, {0}, {1}, {1}) isrFraccionIII_1", salariomensual, diasmes);
if (objbase.runQuerystr(str.ToString()))
{
DataRow drow = objbase.DtResultados.Rows[0];
FraccionII_2 = drow["isrFraccionII_2"].ToString().ToDecimal();
FraccionIII_1 = drow["isrFraccionIII_1"].ToString().ToDecimal();
}
else { break; }
FraccionIII_2 = FraccionII_2 - FraccionIII_1;
FraccionV = FraccionIII_2 / FraccionI;
FraccionIV = aguinaldogravado * FraccionV;
Aguinaldoapagar = aguinaldo - FraccionIV;
}
else
{
FraccionIV = 0;
Aguinaldoapagar = aguinaldo - FraccionIV;
}
}
else
{
aguinaldo = 0;
Aguinaldoapagar = 0;
aguinaldogravado = 0;
FraccionIV = 0;
}
AguinaldoapagarTotal += Aguinaldoapagar;
gvrow.FCLabel("lblsueldoAguinaldoCompleto").Text = string.Format("${0:N2}", aguinaldo);
gvrow.FCLabel("lblAguinaldo").Text = string.Format("${0:N2}", Aguinaldoapagar);
gvrow.FCLabel("lblAguinaldoGravado").Text = string.Format("${0:N2}", aguinaldogravado);
gvrow.FCLabel("lblISRAguinaldo").Text = string.Format("${0:N2}", FraccionIV);
}
}
LtlTotal.Text =string.Format("${0:N2}", AguinaldoapagarTotal);
/*
*
*
lblAguinaldo
lblAguinaldoGravado
lblISRAguinaldo
salario diario
dias año
Dias laborados
dias Aguinaldo
dias aguinaldo(PAGO)
UMA
Salario mensual
Aguinaldo
Aguinaldo excento
Aguinaldo gravado
dias mes
FraccionI
FraccionII
FraccionII
FraccionIII
FraccionIII
FraccionV
FraccionIV
Aguinaldoapagar
*
*/
}
}
class ClsClaseBaseD : IDisposable
{
protected SqlConnection SqlConexion;
protected SqlDataAdapter SqlAdapter;
protected DataTable datos;
protected DataSet DTSet;
public DataTable DtResultados
{
get
{
return datos;
}
}
public DataSet DTSetResultados
{
get
{
return DTSet;
}
}
protected bool disposedValue = false;
protected bool EsTransaccion = false;
public string MyCurrentError;
// REGISTRAR CONEXIÓN
private int CveConexion = 0;
public ClsClaseBaseD(ClsClaseBaseD adsObj = null)
{
if (adsObj != null && adsObj.SqlAdapter != null && adsObj.SqlAdapter.SelectCommand != null && adsObj.SqlAdapter.SelectCommand.Transaction != null)
{
SqlConexion = adsObj.SqlConexion;
SqlAdapter = adsObj.SqlAdapter;
EsTransaccion = true;
}
else
{
SqlConexion = new SqlConnection();
SqlConexion.ConnectionString = ConfigurationManager.ConnectionStrings["Conexion"].ConnectionString;
try
{
SqlConexion.Open();
SqlAdapter = new SqlDataAdapter("", SqlConexion);
ConexionAdd();
}
catch (Exception ex)
{
this.OnError("Ocurrió un error al intentar conectarse a la base de datos.", ex);
}
}
}
public void SqlDataAdapter(string StrSQL, CommandType TipoComando = CommandType.StoredProcedure)
{
if (SqlConexion.State == ConnectionState.Open)
{
SqlAdapter.SelectCommand.Parameters.Clear();
SqlAdapter.SelectCommand.CommandText = StrSQL;
SqlAdapter.SelectCommand.CommandType = TipoComando;
datos = new DataTable();
DTSet = new DataSet();
}
}
protected void DataAdapter(string StrSQL, CommandType TipoComando = CommandType.Text)
{
// if (SqlAdapter.SelectCommand == null)
// {
// if ((sqlCommand != null))
// {
// SqlAdapter.SelectCommand = sqlCommand;
// }
// else
// {
// SqlAdapter.SelectCommand = new SqlCommand();
// }
// SqlAdapter.SelectCommand.Connection = SqlConexion;
// }
if (SqlConexion.State == ConnectionState.Open)
{
SqlAdapter.SelectCommand.Parameters.Clear();
SqlAdapter.SelectCommand.CommandText = StrSQL;
SqlAdapter.SelectCommand.CommandType = TipoComando;
datos = new DataTable();
DTSet = new DataSet();
}
}
private void ConexionAdd()
{
if (ConfigurationManager.AppSettings["RegistraConexion"] != null && ConfigurationManager.AppSettings["RegistraConexion"].ToString() == "1")
{
try
{
SqlDataAdapter("PA_Sis_RegistrarConexion");
{
var withBlock = SqlAdapter.SelectCommand.Parameters;
withBlock.Add("@Clase", SqlDbType.VarChar).Value = this.GetType().Name;
withBlock.Add("@Modulo", SqlDbType.VarChar).Value = string.Format("{0}?{1}", HttpContext.Current.Request.Url.AbsolutePath.ToString(), HttpContext.Current.Request.QueryString.ToString());
withBlock.Add("@IDConexion", SqlDbType.Int).Direction = ParameterDirection.Output;
}
SqlAdapter.Fill(datos);
CveConexion = SqlAdapter.SelectCommand.Parameters["@IDConexion"].Value.ToString().ToEntero();
}
catch (Exception ex)
{
this.OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo());
}
}
}
private void ConexionClose()
{
if (CveConexion > 0 && ConfigurationManager.AppSettings["RegistraConexion"] != null && ConfigurationManager.AppSettings["RegistraConexion"].ToString() == "1")
{
SqlDataAdapter(string.Format("UPDATE Sis_Conexiones SET FechaCierre = GETDATE() WHERE CveConexion = {0}", CveConexion), CommandType.Text);
try
{
SqlAdapter.Fill(datos);
}
catch (Exception ex)
{
this.OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo());
}
CveConexion = 0;
}
}
protected void addParameters(string name, SqlDbType tipo, object valor)
{
if (SqlConexion.State == ConnectionState.Open)
SqlAdapter.SelectCommand.Parameters.Add(name, tipo).Value = valor;
}
public bool runQuerystr(string Query, List<parametroQuery> Listaparametros = null, string msgError = "", bool mostrarError = true)
{
bool retorno = false;
try
{
if (SqlConexion.State == ConnectionState.Open)
{
SqlAdapter.SelectCommand.Parameters.Clear();
SqlAdapter.SelectCommand.CommandText = Query;
SqlAdapter.SelectCommand.CommandType = CommandType.Text;
datos = new DataTable();
if (Listaparametros!= null)
{
foreach (parametroQuery pr in Listaparametros)
{
if (pr.SqlDataType != null)
{
if (pr.ParameterDirection != null)
SqlAdapter.SelectCommand.Parameters.Add(pr.ParameterName, pr.SqlDataType).Direction = pr.ParameterDirection;
else
SqlAdapter.SelectCommand.Parameters.Add(pr.ParameterName, pr.SqlDataType).Value = pr.SqlValue != null ? pr.SqlValue : DBNull.Value;
}
else
SqlAdapter.SelectCommand.Parameters.AddWithValue(pr.ParameterName, pr.SqlValue);
}
}
SqlAdapter.Fill(datos);
retorno = true;
}
else
{
string InfoAdicional = "Se intenta realizar una conexion con una conexion cerrada";
InfoAdicional = $"{InfoAdicional}{Environment.NewLine}{msgError}{Environment.NewLine}";
ModExtensiones.GuardaLog(InfoAdicional);
}
}
catch (SqlException sqEx)
{
retorno = false;
setOnError(msgError, sqEx);
}
catch (Exception ex)
{
retorno = false;
setOnError(msgError, ex);
}
return retorno;
}
public int ExecQuery(string Query, List<parametroQuery> Listaparametros = null, string msgError = "", bool mostrarError = true)
{
int retorno = -1;
try
{
if (SqlConexion.State == ConnectionState.Open)
{
SqlAdapter.SelectCommand.Parameters.Clear();
SqlAdapter.SelectCommand.CommandText = Query;
SqlAdapter.SelectCommand.CommandType = CommandType.Text;
if (Listaparametros!= null)
{
foreach (parametroQuery pr in Listaparametros)
{
if ( pr.SqlDataType != null)
{
if ( pr.ParameterDirection != null)
SqlAdapter.SelectCommand.Parameters.Add(pr.ParameterName, pr.SqlDataType).Direction = pr.ParameterDirection;
else
SqlAdapter.SelectCommand.Parameters.Add(pr.ParameterName, pr.SqlDataType).Value = pr.SqlValue != null ? pr.SqlValue : DBNull.Value;
}
else
SqlAdapter.SelectCommand.Parameters.AddWithValue(pr.ParameterName, pr.SqlValue);
}
}
retorno = SqlAdapter.SelectCommand.ExecuteNonQuery();
}
else
{
string InfoAdicional = "Se intenta realizar una conexion con una conexion cerrada";
InfoAdicional = $"{InfoAdicional}{Environment.NewLine}{msgError}{Environment.NewLine}";
this.GuardaLog(InfoAdicional);
}
}
catch (SqlException sqEx)
{
retorno = -1;
setOnError(msgError, sqEx);
}
catch (Exception ex)
{
retorno = -1;
setOnError(msgError, ex);
}
return retorno;
}
protected bool RunQuery(string msgOnError)
{
bool retorno = false;
try
{
SqlAdapter.Fill(datos);
retorno = true;
}
catch (Exception ex)
{
retorno = false;
setOnError(msgOnError, ex);
}
return retorno;
}
protected bool RunQueryDS(string msgOnError)
{
bool retorno = false;
try
{
SqlAdapter.Fill(DTSet);
retorno = true;
}
catch (Exception ex)
{
retorno = false;
setOnError(msgOnError, ex);
}
return retorno;
}
public void setOnError(string Mensaje, Exception Exeption)
{
string InfoAdicional = "";
if (SqlAdapter != null && SqlAdapter.SelectCommand != null && SqlAdapter.SelectCommand.Parameters != null)
InfoAdicional = SqlAdapter.SelectCommand.Parameters.ParametrosInfo();
MyCurrentError = string.Format("{0} DESCRIPCIÓN DETALLADA: {1} {2} {3}", Mensaje, Exeption.ToString(), "\r\n", InfoAdicional);
this.OnError(Mensaje, Exeption, InfoAdicional);
}
public void IniciaTransacSQL()
{
SqlAdapter.SelectCommand.Transaction = SqlConexion.BeginTransaction();
EsTransaccion = true;
}
public void Commit()
{
SqlAdapter.SelectCommand.Transaction.Commit();
SqlConexion.Close();
}
public void RollBack()
{
SqlAdapter.SelectCommand.Transaction.Rollback();
SqlConexion.Close();
}
public void Dispose()
{
ConexionClose();
if ((SqlConexion != null))
{
if (SqlConexion.State == ConnectionState.Open)
{
try
{
if ((SqlAdapter != null))
SqlAdapter.Dispose();
SqlConexion.Close();
}
catch (Exception ex)
{
this.OnError("Ocurrió un error al intentar cerrar la base de datos.", ex);
}
}
SqlConexion.Dispose();
}
if (datos != null)
datos.Dispose();
if (SqlAdapter != null)
SqlAdapter.Dispose();
if (DTSet != null)
DTSet.Dispose();
GC.SuppressFinalize(this);
}
}
public class parametroQuery
{
public parametroQuery(string parameterName, object sqlValue, SqlDbType sqlDataType = default(SqlDbType), ParameterDirection parameterDirection = default(ParameterDirection))
{
this.ParameterName = parameterName;
this.SqlDataType = sqlDataType;
this.ParameterDirection = parameterDirection;
this.SqlValue = sqlValue;
}
public string ParameterName { get; set; }
public SqlDbType SqlDataType { get; set; }
public ParameterDirection ParameterDirection { get; set; }
public object SqlValue { get; set; }
}