diff --git a/App_Code/ClsNominas.vb b/App_Code/ClsNominas.vb index c5f13c430..3a7756ca7 100644 --- a/App_Code/ClsNominas.vb +++ b/App_Code/ClsNominas.vb @@ -1568,7 +1568,7 @@ Public Class ClsNominas End Function Public Function UpdateConcepto(Codigo As String, Concepto As String, Tipo As String, Formula As String, Sistema As Boolean, Estado As Boolean, CveConceptoPadre As Integer, CveConcepto As Integer, - EsRetencion As Boolean, CveClasificacion As Integer, CveTipoGasto As Integer, TipoCalculo As Boolean, CveConceptoContable As Integer, AplicaFiniquito As Integer, + EsRetencion As Boolean, CveClasificacion As Integer, CveTipoGasto As Integer, TipoCalculo As Boolean, CveConceptoContable As Integer, CveCuenta As Integer, AplicaFiniquito As Integer, AutomaticoGlobal As Integer, Especie As Integer, Imprimir As Integer, CveSATConcepto As Integer, CveEmpresa As Integer, CveUsuario As Integer, ctaImporteNegativoProv As Integer, contabiliza As Integer, CargoOAbono As Integer, cveConceptoContableB As Integer, CveCuentaB As Integer, CveConceptoContablePasivo As Integer, Optional AplicaEfectivale As Integer = 0, Optional EsFormula As Integer = -1) As Boolean @@ -1590,6 +1590,7 @@ Public Class ClsNominas .Add("CveTipoGasto", SqlDbType.Int).Value = CveTipoGasto .Add("TipoCalculo", SqlDbType.Bit).Value = TipoCalculo .Add("CveConceptoContable", SqlDbType.Int).Value = CveConceptoContable + .Add("CveCuenta", SqlDbType.Int).Value = CveCuenta .Add("AplicaFiniquito", SqlDbType.Bit).Value = AplicaFiniquito .Add("AutomaticoGlobal", SqlDbType.Bit).Value = AutomaticoGlobal .Add("Especie", SqlDbType.Bit).Value = Especie @@ -3380,6 +3381,31 @@ Public Class ClsNominas End Function #Region "MovtosPermanentes" + Public Function GetMovtoPermanenteRepFechas(cvePersonal As Int32, cveEmpresa As Int32, cveTipo As Int32, cveSaldo As Int32, cveEstatus As Int32, cveConcepto As Int32, STRFechaInicio As String, STRFechaFin As String) As Boolean + Dim retorno As Boolean = False + DataAdapter("PA_GetMovtoPermanenteRepFechas", CommandType.StoredProcedure) + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEmpresa", SqlDbType.Int).Value = cveEmpresa + .Add("@CvePersonal", SqlDbType.Int).Value = cvePersonal + .Add("@CveTipo", SqlDbType.Int).Value = cveTipo + .Add("@CveSaldo", SqlDbType.Int).Value = cveSaldo + .Add("@CveEstatus", SqlDbType.Int).Value = cveEstatus + .Add("@CveConcepto", SqlDbType.Int).Value = cveConcepto + .Add("@STRFechaInicio", SqlDbType.VarChar).Value = STRFechaInicio + .Add("@STRFechaFin", SqlDbType.VarChar).Value = STRFechaFin + End With + Try + SqlAdapter.Fill(Data) + retorno = True + Catch sqEx As SqlException + retorno = False + OnError("Ocurrió un error al obtener los Movtos Permanentes.", sqEx, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + Catch ex As Exception + retorno = False + OnError("Ocurrió un error al obtener los Movtos Permanentes.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return retorno + End Function Public Function GetMovtoPermanenteRep(cvePersonal As Int32, cveEmpresa As Int32, cveTipo As Int32, cveSaldo As Int32, cveEstatus As Int32, cveConcepto As Int32) As Boolean Dim retorno As Boolean = False DataAdapter("PA_GetMovtoPermanenteRep", CommandType.StoredProcedure) diff --git a/Inicio.aspx b/Inicio.aspx index 6c15b06db..9cf4159cd 100644 --- a/Inicio.aspx +++ b/Inicio.aspx @@ -553,7 +553,7 @@
Opción:
-
+
diff --git a/Inicio.aspx.vb b/Inicio.aspx.vb index 142d887d8..96ba681cf 100644 --- a/Inicio.aspx.vb +++ b/Inicio.aspx.vb @@ -10,66 +10,27 @@ Partial Class Inicio Private Dias() As String = {"Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"} - - Public Function GetFacturasCanceladasPendientesWS(objventas As ClsVentas, RFC As String, CveEmpresa As Integer, Optional showalert As Boolean = True) As Boolean - Dim retorno As Boolean = False - Try - - Dim objServicio As New Cancelacion2022.CancelacionSoapClient() - Dim resp As Cancelacion2022.StructCancel = objServicio.ObtienePendientes(RFC, "UserTest", "1234567890") - If resp.Estado = 0 Then - Dim XmlPendientes As String = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(resp.Xml)) - Dim theReader As IO.StringReader = New IO.StringReader(XmlPendientes) - Dim theDataSet As DataSet = New DataSet() - theDataSet.ReadXml(theReader) - - If theDataSet.Tables(0).Rows(0)("Uuid").ToString() <> "null" Then - Dim sb As New StringBuilder() - - For Each item As DataRow In theDataSet.Tables(0).Rows - sb.AppendFormat("{0};", item("Uuid").ToString()) - Next - If objventas.GetFacturasCanceladasPendientes(sb.ToString(), CveEmpresa) Then - retorno = True - End If - gvCancelaPendiente.DataSource = objventas.DtResultados - Else - If showalert Then - Alert("No se encontraron cancelaciones pendientes", ModExtensiones.TipoMensaje.MsgError) - End If - End If - Else - Alert("Los servicios del SAT presentan intermitencia y no se puede obtener la información de cancelaciones pendientes: " & resp.Descripcion, ModExtensiones.TipoMensaje.MsgError) - End If - Catch ex As Exception - retorno = False - Me.OnError("Los servicios del SAT presentan intermitencia y no se puede obtener la información: ", ex, "") - End Try - gvCancelaPendiente.DataBind() - Return retorno - End Function - - Private Sub cargaUnuaUno() - GVPA_OI_UnoAUnoTableroGet.DataSource = New System.Data.DataTable() - - Using ObjPA_O As ClsOIEventos = New ClsOIEventos() - If ObjPA_O.UnoAUnoTableroGet(UsuarioActual.CveEmpresa, NowADS().ToString("yyyy/MM/dd"), UsuarioActual.CveUsuario) Then - - If ObjPA_O.DtResultados.COUNT("CveUnoaUno", "CveUnoaUno = -1") > 0 Then - RegistraScript("$('#DvUnoaUno').modal();") - End If - End If - GVPA_OI_UnoAUnoTableroGet.DataSource = ObjPA_O.DtResultados - End Using - - GVPA_OI_UnoAUnoTableroGet.DataBind() - End Sub Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then 'Using objnoti = New ClsSisNotificaciones() ' objnoti.ContadorCampana("Mi Mensaje", UsuarioActual.CveUsuario.ToString()) 'End Using + Dim clientIp As String = (If(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), + Request.ServerVariables("REMOTE_ADDR"))).Split(","c)(0).Trim() + ' Ruta del archivo con las IP bloqueadas + Dim path As String = Server.MapPath("/Utilerias/IPBloqueadas.txt") + + If System.IO.File.Exists(path) Then + ' Leer el contenido del archivo y separarlo por ";" + Dim contenido As String = System.IO.File.ReadAllText(path) + Dim ipBloqueadas As String() = contenido.Split(";"c) + ' Verificar si la IP está en la lista + If ipBloqueadas.Any(Function(ip) ip.Trim() = clientIp) Then + Response.Redirect("/LogIn.aspx") + End If + End If + If Not IsNothing(Request("logout")) AndAlso Request("logout").ToString() = "1" Then Usuario.CerrarSession() Exit Sub @@ -267,6 +228,59 @@ Partial Class Inicio End Sub + Public Function GetFacturasCanceladasPendientesWS(objventas As ClsVentas, RFC As String, CveEmpresa As Integer, Optional showalert As Boolean = True) As Boolean + Dim retorno As Boolean = False + Try + + Dim objServicio As New Cancelacion2022.CancelacionSoapClient() + Dim resp As Cancelacion2022.StructCancel = objServicio.ObtienePendientes(RFC, "UserTest", "1234567890") + If resp.Estado = 0 Then + Dim XmlPendientes As String = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(resp.Xml)) + Dim theReader As IO.StringReader = New IO.StringReader(XmlPendientes) + Dim theDataSet As DataSet = New DataSet() + theDataSet.ReadXml(theReader) + + If theDataSet.Tables(0).Rows(0)("Uuid").ToString() <> "null" Then + Dim sb As New StringBuilder() + + For Each item As DataRow In theDataSet.Tables(0).Rows + sb.AppendFormat("{0};", item("Uuid").ToString()) + Next + If objventas.GetFacturasCanceladasPendientes(sb.ToString(), CveEmpresa) Then + retorno = True + End If + gvCancelaPendiente.DataSource = objventas.DtResultados + Else + If showalert Then + Alert("No se encontraron cancelaciones pendientes", ModExtensiones.TipoMensaje.MsgError) + End If + End If + Else + Alert("Los servicios del SAT presentan intermitencia y no se puede obtener la información de cancelaciones pendientes: " & resp.Descripcion, ModExtensiones.TipoMensaje.MsgError) + End If + Catch ex As Exception + retorno = False + Me.OnError("Los servicios del SAT presentan intermitencia y no se puede obtener la información: ", ex, "") + End Try + gvCancelaPendiente.DataBind() + Return retorno + End Function + + Private Sub cargaUnuaUno() + GVPA_OI_UnoAUnoTableroGet.DataSource = New System.Data.DataTable() + + Using ObjPA_O As ClsOIEventos = New ClsOIEventos() + If ObjPA_O.UnoAUnoTableroGet(UsuarioActual.CveEmpresa, NowADS().ToString("yyyy/MM/dd"), UsuarioActual.CveUsuario) Then + + If ObjPA_O.DtResultados.COUNT("CveUnoaUno", "CveUnoaUno = -1") > 0 Then + RegistraScript("$('#DvUnoaUno').modal();") + End If + End If + GVPA_OI_UnoAUnoTableroGet.DataSource = ObjPA_O.DtResultados + End Using + + GVPA_OI_UnoAUnoTableroGet.DataBind() + End Sub Private Sub CargaCalendarioGraficas() If (UsuarioActual.CveRol = 1062) Or (UsuarioActual.CveUsuario = 100) Then CargaGraficas() diff --git a/Nomina/ConceptoNomina.aspx.cs b/Nomina/ConceptoNomina.aspx.cs index 1361b2a74..dd21edd51 100644 --- a/Nomina/ConceptoNomina.aspx.cs +++ b/Nomina/ConceptoNomina.aspx.cs @@ -342,6 +342,7 @@ public partial class Nomina_CatConcepto : ClsPaginas int CveConceptoPadre = DdlConceptoPadre.SelectedValue.ToEntero(); int CveConceptoContable = DdlConceptoContable.SelectedValue.ToEntero(); + int CveCuenta = (DdlCtaContable.DataValueField == "Id" ? 0 : DdlCtaContable.SelectedValue.ToEntero()); bool estado; if (ChkEstado.Checked) estado = true; @@ -378,8 +379,8 @@ public partial class Nomina_CatConcepto : ClsPaginas if (EsEditar) { TieneError = !ObjNomina.UpdateConcepto(codigo, concepto, tipo, formula, sistema, estado, CveConceptoPadre, CveConcepto, retencion, CveClasificacion, CveTipoGasto, - tipoCalculo, CveConceptoContable, AplicaFiniquito, AutomaticoGlobal, Especie, Imprimir, CveSATConcepto, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, - ctaImporteNegativoProv, contabiliza, CargoOAbono, cveConceptoContableB , CveCuentaB, CveConceptoContablePasivo, AplicaEfectivale, EsFormula); + tipoCalculo, CveConceptoContable, CveCuenta, AplicaFiniquito, AutomaticoGlobal, Especie, Imprimir, CveSATConcepto, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, + ctaImporteNegativoProv, contabiliza, CargoOAbono, cveConceptoContableB, CveCuentaB, CveConceptoContablePasivo, AplicaEfectivale, EsFormula); if (!TieneError) { diff --git a/Nomina/Nomina.aspx b/Nomina/Nomina.aspx index cf02a5045..e2b86eaf9 100644 --- a/Nomina/Nomina.aspx +++ b/Nomina/Nomina.aspx @@ -64,7 +64,9 @@ max-width: 80px; text-align: right; } - + .ltlzip{ + display:none !important; + } a.sline { white-space: nowrap; } @@ -5294,10 +5296,7 @@ - - - - + @@ -5371,6 +5370,14 @@ document.body.removeChild(elem); } } + function SavezipB64(filename, base64Content) { + var link = document.createElement('a'); + link.href = 'data:application/zip;base64,' + base64Content; + link.download = filename; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + } function Savezip(filename, data) { var blob = new Blob([data], { type: 'application/zip' }); if (window.navigator.msSaveOrOpenBlob) { diff --git a/Nomina/Nomina.aspx.cs b/Nomina/Nomina.aspx.cs index c69d515b8..4d27e3f08 100644 --- a/Nomina/Nomina.aspx.cs +++ b/Nomina/Nomina.aspx.cs @@ -9780,7 +9780,7 @@ public partial class Nomina_Nomina2 : ClsPaginas FileInfo file = new FileInfo(PathXML); if (!descargaZIP.Any(x => x.FileName.Contains(file.Name))) { - descargaZIP.AddFile(PathXML); + descargaZIP.AddFile(PathXML,""); } } @@ -9790,7 +9790,7 @@ public partial class Nomina_Nomina2 : ClsPaginas FileInfo file = new FileInfo(PathXMLF); if (!descargaZIP.Any(x => x.FileName.Contains(file.Name))) { - descargaZIP.AddFile(PathXMLF); + descargaZIP.AddFile(PathXMLF, ""); } } @@ -9801,8 +9801,10 @@ public partial class Nomina_Nomina2 : ClsPaginas descargaZIP.Save(PathZIP); if (!string.IsNullOrEmpty(PathZIP) && System.IO.File.Exists(PathZIP)) { - LtlZip.Text = System.IO.File.ReadAllText(PathZIP); - script = string.Format("Savezip(\"{0}.zip\", $('.ltlzip').html());", DdlPeriodo.SelectedItem.Text); + byte[] fileBytes = System.IO.File.ReadAllBytes(PathZIP); + string base64 = Convert.ToBase64String(fileBytes); + LtlZip.Text = base64; + script = string.Format("SavezipB64(\"{0}.zip\", $('.ltlzip').html());", DdlPeriodo.SelectedItem.Text); System.IO.File.Delete(PathZIP); } @@ -9870,7 +9872,7 @@ public partial class Nomina_Nomina2 : ClsPaginas { if (objnom.DTSetResultados.Tables.Count > 1) { - ContaConceptossource = get_GlobalDTContaConceptosContables(-1).FiltraParametros("AplicaPersonal = 1"); + ContaConceptossource = get_GlobalDTContaConceptosContables(-1).FiltraParametros("AplicaNomina = 1 OR AplicaPersonal = 1"); //using (ClsContabilidad ObjContaz = new ClsContabilidad()) //{ // if (ObjContaz.GetConta_ConceptosContables()) @@ -9881,7 +9883,6 @@ public partial class Nomina_Nomina2 : ClsPaginas if (UsuarioActual.Empresa.TipoContabilidad == 1) { - using (ClsContabilidad ObjConta = new ClsContabilidad()) { if (ObjConta.GetCuentas(-1, "-1", 1, UsuarioActual.CveEmpresa)) @@ -9910,7 +9911,7 @@ public partial class Nomina_Nomina2 : ClsPaginas GVProvision.DataSource = objnom.DTSetResultados.Tables[1]; GVProvision.DataBind(); RegistraScript("$('#ModalRegistraProvision').modal();"); - Alert("no se pudo registrar la provisión, existen cuentas sin vincular", TipoMensaje.MsgAdvertencia); + Alert("La Provisión no se pudo registrar porque existen conceptos sin vincular a su cuenta.", TipoMensaje.MsgAdvertencia); UpRegistroProvision.Update(); } diff --git a/Nomina/RepMovtosPermanentes.aspx b/Nomina/RepMovtosPermanentes.aspx index 32e59cbbb..c7bbd6231 100644 --- a/Nomina/RepMovtosPermanentes.aspx +++ b/Nomina/RepMovtosPermanentes.aspx @@ -4,10 +4,10 @@ + Reporte de Movimientos Permanentes @@ -67,8 +74,8 @@
- -
+ +
@@ -76,16 +83,16 @@
- -
+ +
- -
+ +
@@ -106,7 +113,36 @@
+ + +
+ <%----%> +
+ + + + + + + + +
+
+ +
+ <%----%> +
+ + + + + + + + +
+
@@ -132,27 +168,43 @@ AutoGenerateColumns="False" OnRowDataBound="GVGetMovtoPermanenteRep_RowDataBound" DataKeyNames="CvePersonal,Codigo,NombreCompleto,CveTipo,Tipo,CveMovtoPermanente,CveFonacot,CveConcepto,Concepto,NumeroCredito,FechaInicio,TipoAplicacion,EsAcumulado,Estatus,Valor,VecesAplicar,MontoLimite,Saldo"> + <%-- + + + --%> - + - + + - + + + + + + + + + + + + + + + + +<%-- - - - - - - - + --%> + <%-- @@ -212,7 +264,7 @@ CssClass="btn btn-circle btn-xs green" Text="" OnClick="LnkPagar_Click" /> - + --%> @@ -242,7 +294,7 @@ `; // Insertar la nueva fila antes de la fila con la clase "headerHide" - $headerHideRow.before(newRow); + //$headerHideRow.before(newRow); } // Limpiar el intervalo después de agregar la fila clearInterval(checkInterval); diff --git a/Nomina/RepMovtosPermanentes.aspx.cs b/Nomina/RepMovtosPermanentes.aspx.cs index 8b51859e1..b38be5aa2 100644 --- a/Nomina/RepMovtosPermanentes.aspx.cs +++ b/Nomina/RepMovtosPermanentes.aspx.cs @@ -39,6 +39,16 @@ public partial class Nomina_RepMovtosPermanentes : ClsPaginas get { return ViewState["RcveConcepto"] != null ? (int)ViewState["RcveConcepto"] : 0; } set { ViewState["RcveConcepto"] = value; } } + private string fechaInicio + { + get { return TxtRpdFechaInicio.Text; } + set { TxtRpdFechaInicio.Text = value; } + } + private string fechaFin + { + get { return TxtRpdFechaFin.Text; } + set { TxtRpdFechaFin.Text = value; } + } #endregion protected void Page_Load(object sender, EventArgs e) { @@ -49,7 +59,8 @@ public partial class Nomina_RepMovtosPermanentes : ClsPaginas RcveSaldo = Request["cveSaldo"] != null ? Convert.ToInt32(Request["cveSaldo"]) : -1; RcveEstatus = Request["cveEstatus"] != null ? Convert.ToInt32(Request["cveEstatus"]) : -1; RcveConcepto = Request["cveConcepto"] != null ? Convert.ToInt32(Request["cveConcepto"]) : -1; - + fechaInicio = DateTime.Now.ToString("01/MM/yyyy"); + fechaFin=DateTime.Now.ToString("01/MM/yyyy").ToDateTime().AddMonths(1).AddDays(1).ToString("01/MM/yyyy"); CargaCombos(); cargardatos(); @@ -84,7 +95,9 @@ public partial class Nomina_RepMovtosPermanentes : ClsPaginas { using (ClsNominas ObjGetM = new ClsNominas()) { - ObjGetM.GetMovtoPermanenteRep(RcvePersonal, UsuarioActual.CveEmpresa, RcveTipo, RcveSaldo, RcveEstatus, RcveConcepto); + //string fechaInicio = ""; + //string fechaFin = ""; + ObjGetM.GetMovtoPermanenteRepFechas(RcvePersonal, UsuarioActual.CveEmpresa, RcveTipo, RcveSaldo, RcveEstatus, RcveConcepto, fechaInicio, fechaFin); GVGetMovtoPermanenteRep.DataSource = ObjGetM.DtResultados; GVGetMovtoPermanenteRep.DataBind(); @@ -121,7 +134,7 @@ public partial class Nomina_RepMovtosPermanentes : ClsPaginas e.Row.Attributes.Add("data-cvepersonal", cvepersonal); if (cvetipoValue == "0") { - e.Row.Cells[1].Attributes.Add("colspan", "7"); + //e.Row.Cells[1].Attributes.Add("colspan", "7"); cssclass = string.Format("{0} cvetipo0", cssclass); } e.Row.CssClass = cssclass;