diff --git a/AF/AF.aspx b/AF/AF.aspx index 9c9d4f745..f80e7a164 100644 --- a/AF/AF.aspx +++ b/AF/AF.aspx @@ -1,11 +1,17 @@ <%@ Page Title="AF - Activo Fijo" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="AF.aspx.vb" Inherits="AF_AF" ValidateRequest="false" EnableEventValidation="false" %> + +   + + + +
  • @@ -932,6 +938,101 @@ + + <%-- Documentos --%> +
    +
    +
    +
    + Documentos +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + @@ -1496,9 +1597,8 @@ - -
    IMAGEN
    -
    <%# Container.ItemIndex + 1 %>
    + +
    <%# Container.ItemIndex + 1 %> - <%# CType(Eval("FechaIng"), DateTime).ToString("dd/MM/yyyy") %>
    @@ -3658,7 +3758,108 @@ - + <%--modal parametros documentos--%> + + + <%--modalupluad doc--%> + + <%-- --%> @@ -4074,6 +4275,7 @@ setTimeout(function () { startTimer(request); }, 30000); // callback } + @@ -4088,6 +4290,9 @@ .cbp-popup-lightbox-figure { background-color: #FFF; } + .orange { + background-color: orangered; + } diff --git a/AF/AF.aspx.vb b/AF/AF.aspx.vb index 03cc2db05..32714e22c 100644 --- a/AF/AF.aspx.vb +++ b/AF/AF.aspx.vb @@ -7,8 +7,7 @@ Imports System.Data Imports Microsoft.Reporting.WebForms Imports ZXing Imports Newtonsoft.Json.Linq - -Partial Class AF_AF +Partial Class AF_AF Inherits ClsPaginas 'Configuración @@ -388,6 +387,9 @@ Partial Class AF_AF CargaPlagaEnfermedad() ModalidadesPaginaAF() + CargaDocumentacion() + + 'Configuración de Modalidad Update BtnGuardar.Text = "Guardar Cambios" LtlTitulo.Text = "Consulta del Activo Fijo:" @@ -940,7 +942,7 @@ Partial Class AF_AF TxtValorCompra.Text = ObjActivoFijo.ValorCompra.ToString.FormatoNumero TxtFechaCompra.Text = ObjActivoFijo.FechaCompra.ToShortDateString TxtValorCompraMN.Text = ObjActivoFijo.ValorCompraMN.ToString.FormatoNumero - If ObjActivoFijo.ValorCompra <> ObjActivoFijo.ValorCompraMN Then DivValorCompraMN.visible = True + If ObjActivoFijo.ValorCompra <> ObjActivoFijo.ValorCompraMN Then DivValorCompraMN.Visible = True TxtFechaBaja.Text = If(ObjActivoFijo.FechaBaja = New Date(1900, 1, 1), "", ObjActivoFijo.FechaBaja.ToString("dd/MM/yyyy")) @@ -4947,4 +4949,531 @@ Partial Class AF_AF RegistraScript("$('#ModalContaCuenta').modal('show');") End Sub +#Region "D O C U M E N T O S" + + Private Property DTDocumentacion As DataTable + Get + If ViewState("DTDocumentacion") Is Nothing Then + ViewState("DTDocumentacion") = New DataTable + End If + Return DirectCast(ViewState("DTDocumentacion"), DataTable) + End Get + Set(value As DataTable) + ViewState("DTDocumentacion") = value + End Set + End Property + + Private Property DocumentoParametros As String + Get + If ViewState("DocumentoParametros") Is Nothing Then + Return "" + Else + Return ViewState("DocumentoParametros").ToString + End If + End Get + Set(value As String) + ViewState("DocumentoParametros") = value + End Set + End Property + + + Property CveDocumentacion As Integer + Get + If ViewState("CveDocumentacion") Is Nothing Then + Return -1 + Else + Return DirectCast(ViewState("CveDocumentacion"), Integer) + End If + End Get + Set(value As Integer) + ViewState("CveDocumentacion") = value + End Set + End Property + Property CveDocumentacionElectronica As Integer + Get + If ViewState("CvePersonalClienteDocumentacion") Is Nothing Then + Return -1 + Else + Return DirectCast(ViewState("CvePersonalClienteDocumentacion"), Integer) + End If + End Get + Set(value As Integer) + ViewState("CvePersonalClienteDocumentacion") = value + End Set + End Property + Property ActualizarDocumentacion As Boolean + Get + If ViewState("ActualizarDocumentacion") Is Nothing Then + Return True + Else + Return DirectCast(ViewState("ActualizarDocumentacion"), Boolean) + End If + End Get + Set(value As Boolean) + ViewState("ActualizarDocumentacion") = value + End Set + End Property + + Property Documentacion As String + Get + If ViewState("Documentacion") Is Nothing Then + Return "-1" + Else + Return ViewState("Documentacion").ToString() + End If + End Get + Set(value As String) + ViewState("Documentacion") = value + End Set + End Property + Property AdjuntoDocumentacion As String + Get + If ViewState("AdjuntoDocumentacion") Is Nothing Then + Return "" + Else + Return ViewState("AdjuntoDocumentacion").ToString() + End If + End Get + Set(value As String) + ViewState("AdjuntoDocumentacion") = value + End Set + End Property + + Private Property FechaLimite As Date + Get + If ViewState("FechaLimite") Is Nothing Then + Return NowADS().AddDays(15) + Else + Return ViewState("FechaLimite").ToString().ToDate + End If + End Get + Set(value As Date) + ViewState("FechaLimite") = value + End Set + + End Property + + Property ObservacionDocumentacion As String + Get + If ViewState("ObservacionDocumentacion") Is Nothing Then + Return "" + Else + Return ViewState("ObservacionDocumentacion").ToString() + End If + End Get + Set(value As String) + ViewState("ObservacionDocumentacion") = value + End Set + End Property + + Private Sub CargaDocumentacion() + + If CveActivoFijo > 0 Then + Dim objRH As New ClsEdocumentacion() + + If objRH.DocumentacionElectronicaGet(-1, -1, -1, UsuarioActual.Empresa.CveEmpresa, -1, CveActivoFijo:=CveActivoFijo, Modulo:=9) Then + DTDocumentacion = objRH.DtResultados + End If + + If DTDocumentacion.Rows.Count > 0 Then + GvDocumentos.DataSource = DTDocumentacion + Else + GvDocumentos.DataSource = Nothing + End If + + objRH.Dispose() + + GvDocumentos.DataBind() + + UpGvDocumentos.Update() + + End If + + End Sub + + Protected Sub GvDocumentos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDocumentos.RowDataBound + + + If e.Row.RowType = DataControlRowType.DataRow Then + + Dim Adjunto As String = e.Row.DBCampo("Adjunto").ToString() + Dim ImgDownLoadFormato As LinkButton = e.Row.FCLinkButton("ImgDownLoadFormato") + + Dim ImgDownLoad As LinkButton = e.Row.FCLinkButton("ImgDownLoad") + Dim ImgRequired As Literal = e.Row.FCLiteral("ImgRequired") + Dim txtFechaLimite As TextBox = e.Row.FCTextBox("TxtFechaLimite") + Dim requerido As Boolean = If(e.Row.DBCampo("Requerido").ToUpper = "TRUE", True, False) + Dim chkEstatus As CheckBox = e.Row.FCCheckBox("chkEstatus") + Dim documentacionFormato As String = e.Row.DBCampo("DocumentacionFormato").ToString() + Dim Documentacion As String = e.Row.DBCampo("Documentacion").ToString() + Dim _CveDocumentacion As Integer = e.Row.DBCampo("CveDocumentacion").ToString().ToEntero() + Dim separado As Char() = ".".ToString().ToCharArray + Dim array() As String = Adjunto.Split(separado) + Dim extencion As String = "" + Dim existeAdjunto As Boolean = False + Dim TxtFechaVigencia As TextBox = e.Row.FCTextBox("TxtFechaVigencia") + ' FechaVigencia + + Dim DiasLimite As Integer = e.Row.DataKey("DiasLimite").ToString().ToEntero() + Dim AplicaDiasLimite As Boolean = If(e.Row.DataKey("AplicaDiasLimite").ToString() = "1", True, False) + Dim AplicaFechaVencimiento As Boolean = If(e.Row.DataKey("AplicaFechaVencimiento").ToString() = "1", True, False) + + txtFechaLimite.Visible = If(AplicaDiasLimite, True, False) + TxtFechaVigencia.Visible = If(AplicaFechaVencimiento, True, False) + + + + Dim scripMascara As String = " $('#" & TxtFechaVigencia.ClientID & "').mask('00/00/0000');" + RegistraScript(scripMascara) + If array.Length > 0 Then + extencion = array(array.Length - 1) + End If + + If e.Row.DBCampo("Estatus").ToString().ToEntero() = 1 Then + chkEstatus.Checked = True + Else + chkEstatus.Checked = False + End If + + If documentacionFormato = "" Then + ImgDownLoadFormato.Visible = False + Else + Dim linkDescarga As String = "/Empresas/" & UsuarioActual.Empresa.CveEmpresa & "/Formatos/" & CveDocumentacion & "" & documentacionFormato + ImgDownLoadFormato.Visible = True + ScriptManager.GetCurrent(Me.Page).RegisterPostBackControl(ImgDownLoadFormato) + End If + + txtFechaLimite.Text = e.Row.DBCampo("FechaLimite").ToString().ToDate.ToString("dd/MM/yyyy") + + If Adjunto.Trim.Length > 0 Then + + Dim linkDescarga As String = "/Empresas/" & UsuarioActual.Empresa.CveEmpresa & "/AF/" & CveActivoFijo & "/" & Adjunto + Dim linkDescargaArchivo As String = UsuarioActual.Empresa.Ruta & "AF/" & CveActivoFijo & "/" & Adjunto + + If File.Exists(linkDescargaArchivo) Then + + ImgDownLoad.Visible = True + ScriptManager.GetCurrent(Me).RegisterPostBackControl(ImgDownLoad) + + Else + ImgDownLoad.Visible = False + End If + + Else + ImgDownLoad.Visible = False + End If + + If requerido Then + ImgRequired.Text = " " + Else + ' ImgRequired.Text = " " + End If + + End If + + End Sub + + + + + Public Sub DownLoadFormato_ClickDocumentacion(sender As Object, e As EventArgs) + + Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) + + Dim CveDocumentacion As Integer = GvRow.DataKey("CveDocumentacion").ToString().ToEntero() + Dim DocumentacionFormato As String = CveDocumentacion & "_" & GvRow.DataKey("DocumentacionFormato") + + + DescarFormato(DocumentacionFormato) + + 'Dim ObjEdoc As New ClsEdocumentacion + + 'If ObjEdoc.GetDocumentacionParametros(-1, CveDocumentacion, UsuarioActual.CveEmpresa) Then + ' If ObjEdoc.DtResultados.Rows.Count > 0 Then + + ' GvParametros.DataSource = ObjEdoc.DtResultados + ' ObjEdoc.Dispose() + + ' GvParametros.DataBind() + ' UpGvParametros.Update() + + ' DocumentoParametros = DocumentacionFormato + ' RegistraScript("$('#DVDescargaDocumentoParametrosModal').modal('show')") + + ' Else + ' ObjEdoc.Dispose() + ' DescarFormato(DocumentacionFormato) + ' End If + 'Else + ' ObjEdoc.Dispose() + 'End If + + End Sub + + Public Sub DescarFormato(documento As String) + + Dim PathRoot As String = AppDomain.CurrentDomain.BaseDirectory + Dim PathSource As String + Dim pathDesti As String + + PathSource = UsuarioActual.Empresa.Ruta & "Formatos\" & documento + pathDesti = PathRoot & "Temp\" & CveActivoFijo & documento + + If File.Exists(pathDesti) Then + File.Delete(pathDesti) + End If + + File.Copy(PathSource, pathDesti) + + 'Dim objDoc As New clsGemBoxDocument(pathDesti) + 'Dim objRH As New ClsRH + 'objDoc.SustituirTags(objRH.GetDatosTagsDocumentos(CvePersonal, UsuarioActual.CveEmpresa)) + 'objRH.Dispose() + + 'objDoc.Guardar(pathDesti) + + Dim fileinfo As New FileInfo(pathDesti) + + Dim baseUrl As String = Request.Url.GetLeftPart(UriPartial.Authority) + DescargarArchivo(fileinfo.FullName) + 'baseUrl = baseUrl & "/temp/" & fileinfo.Name + 'RegistraScript("Download('" & baseUrl & "')") + + End Sub + + Public Sub UploadModal_ClickDocumentacionFirmaContrato(sender As Object, e As EventArgs) + Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) + + Dim chkEstatus As CheckBox + CveDocumentacionElectronica = GvRow.DataKey("CveDocumentacionElectronica").ToString().ToEntero() + CveDocumentacion = GvRow.DataKey("CveDocumentacion").ToString().ToEntero() + Documentacion = GvRow.DataKey("Documentacion") + AdjuntoDocumentacion = GvRow.DataKey("Adjunto").ToString() + + chkEstatus = GvRow.FCCheckBox("chkEstatus") + + + + ObservacionDocumentacion = GvRow.FCTextBox("TxtObservaciones").Text.Trim.ToUpper + FechaLimite = GvRow.FCTextBox("TxtFechaLimite").Text.ToDate + + AdjuntoDocumentacion = GvRow.DataKey("Adjunto") + + LtlTitulofirmaContrato.Text = "Subir " & Documentacion + + UpTituloFirma.Update() + + RegistraScript("$('#ModalUploadFirmaContratoDocumento').modal({ backdrop: 'static', keyboard: false});") + End Sub + Protected Sub ImgDownLoad_Click(sender As Object, e As EventArgs) + + Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) + + Dim Adjunto As String = GvRow.DataKey("Adjunto").ToString() + Dim ArchivoPath As String = UsuarioActual.Empresa.Ruta & "AF/" & CveActivoFijo & "/" & Adjunto + + DescargarArchivo(ArchivoPath) + + End Sub + + Protected Sub DescargarArchivo(rutaArchivo As String) + + If System.IO.File.Exists(rutaArchivo) Then + + Dim nombreArchivo As String = System.IO.Path.GetFileName(rutaArchivo) + Response.Clear() + Response.ContentType = "application/octet-stream" + Response.AddHeader("Content-Disposition", "attachment; filename=" & nombreArchivo) + Response.AddHeader("Content-Length", New System.IO.FileInfo(rutaArchivo).Length.ToString()) + Response.WriteFile(rutaArchivo) + Response.End() + + Else + + End If + End Sub + + Protected Sub LnkDescargaFormatoParametros_Click(sender As Object, e As EventArgs) + + 'Dim ListaTagsDocumentost As New List(Of TagsDocumentos) + 'Dim ObjRH As New ClsRH + 'ListaTagsDocumentost = ObjRH.GetDatosTagsDocumentos(CvePersonal, UsuarioActual.CveEmpresa) + 'ObjRH.Dispose() + + 'For Each GvRow As GridViewRow In GvParametros.Rows + + ' If GvRow.FCTextBox("TxtParametro").Text.Trim.Length > 0 Then + ' ListaTagsDocumentost.Add(New TagsDocumentos(GvRow.DataKey("Parametro"), GvRow.FCTextBox("TxtParametro").Text)) + ' End If + 'Next + 'Dim PathRoot As String = AppDomain.CurrentDomain.BaseDirectory + 'Dim PathSource As String + 'Dim pathDesti As String + + 'PathSource = UsuarioActual.Empresa.Ruta & "Formatos\" & DocumentoParametros + 'pathDesti = PathRoot & "Temp\" & CveActivoFijo & DocumentoParametros + + 'If File.Exists(pathDesti) Then + ' File.Delete(pathDesti) + 'End If + + 'File.Copy(PathSource, pathDesti) + + 'Dim objDoc As New clsGemBoxDocument(pathDesti) + 'objDoc.SustituirTags(ListaTagsDocumentost) + 'objDoc.Guardar(pathDesti) + + 'Dim fileinfo As New FileInfo(pathDesti) + + 'Dim baseUrl As String = Request.Url.GetLeftPart(UriPartial.Authority) + 'baseUrl = baseUrl & "/temp/" & fileinfo.Name + + 'RegistraScript("$('#DVDescargaDocumentoParametrosModal').modal('hide')", "500") + 'RegistraScript("Download('" & baseUrl & "')") + + + End Sub + + + Protected Sub BtnModalFirmaContratoDocumentoUpload_Click(sender As Object, e As EventArgs) Handles BtnModalFirmaContratoDocumentoUpload.Click + + Dim FileExtension As String = "-1" + Dim Filesgral As List(Of Archivo) = TxtFileFirmaContrato.getfiles().Archivos + Dim Filename As String = "" + + + For Each fileItem As Archivo In Filesgral + Try + + FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") + Dim tempArray() As String + tempArray = fileItem.filename.ToString().Split("-".ToCharArray()) + + Dim rutaDestino As String = UsuarioActual.Empresa.Ruta & "AF\" & CveActivoFijo & "\" & Documentacion & "." & FileExtension + Dim rutaAdjuntoAnterior As String = UsuarioActual.Empresa.Ruta & "AF\" & CveActivoFijo & "\" & AdjuntoDocumentacion + + If Not System.IO.Directory.Exists(UsuarioActual.Empresa.Ruta & "AF\" & CveActivoFijo & "\") Then + System.IO.Directory.CreateDirectory(UsuarioActual.Empresa.Ruta & "AF\" & CveActivoFijo & "\") + End If + + If File.Exists(rutaAdjuntoAnterior) And AdjuntoDocumentacion.Trim.Length > 0 Then + File.Delete(rutaAdjuntoAnterior) + End If + + If System.IO.File.Exists(rutaDestino) Then + System.IO.File.Delete(rutaDestino) + End If + + System.IO.File.Move(fileItem.FileUrl, rutaDestino) + + Dim objRH As New ClsEdocumentacion + + + If CveDocumentacionElectronica = -1 Then + If objRH.DocumentacionElectronicaAdd(CveDocumentacion, -1, -1, -1, 1, ObservacionDocumentacion, Documentacion & "." & FileExtension, UsuarioActual.CveUsuario, FechaLimite, CveActivoFijo:=CveActivoFijo) > 0 Then + + End If + Else + If objRH.DocumentacionElectronicaUpdate(CveDocumentacionElectronica, CveDocumentacion, -1, -1, -1, 1, ObservacionDocumentacion, Documentacion & "." & FileExtension, UsuarioActual.CveUsuario, FechaLimite, CveActivoFijo:=CveActivoFijo) Then + + End If + End If + + objRH.Dispose() + + GuardarDocumentosFirmaContrato(CveDocumentacion) + 'CargaDocumentacion() + + + TxtFileFirmaContrato.Text = "" + UpModalFirmaContratoDocumento.Update() + + Catch ex As Exception + OnError("Error al cargar archivo", ex) + End Try + + Next + RegistraScript("$('#ModalUploadFirmaContratoDocumento').modal('hide')", "hidemodal7") + + End Sub + + Private Sub GuardarDocumentosFirmaContrato(Optional _CveDocumentacionExcluir As Integer = -1) + + Dim hasError As Boolean = True + Dim objDocumentos As New ClsEdocumentacion + + For Each dRow As GridViewRow In GvDocumentos.Rows + + + Dim _CveDocumentacion As Integer = dRow.DataKey("CveDocumentacion").ToString().ToEntero() + Dim _Adjunto As String = dRow.DataKey("Adjunto") + 'Dim _Documentacion As String = dRow.DataKey("Documentacion") + Dim _CveDocumentacionElectronica As Integer = dRow.DataKey("CveDocumentacionElectronica").ToString().ToEntero() + Dim _txtObservaciones As TextBox = dRow.FCTextBox("TxtObservaciones") + Dim _TxtFechaLimite As TextBox = dRow.FCTextBox("TxtFechaLimite") + Dim _TxtFechaVigencia As TextBox = dRow.FCTextBox("TxtFechaVigencia") + Dim chkEstatus As CheckBox = dRow.FCCheckBox("chkEstatus") + Dim _estatus As Integer + + _estatus = If(dRow.DataKey("Estatus").ToString().ToUpper = "TRUE", 1, 0) + + Dim _FechaVigencia As Date + Dim _FechaLimite As Date + + Dim DiasLimite As Integer = dRow.DataKey("DiasLimite").ToString().ToEntero() + Dim AplicaDiasLimite As Boolean = If(dRow.DataKey("AplicaDiasLimite").ToString() = "1", True, False) + Dim AplicaFechaVencimiento As Boolean = If(dRow.DataKey("AplicaFechaVencimiento").ToString() = "1", True, False) + + If _TxtFechaVigencia.Text.Length = 10 Then + _FechaVigencia = _TxtFechaVigencia.Text.ToDate + Else + _FechaVigencia = Nothing + End If + + If Not AplicaDiasLimite Then + _FechaLimite = MinFecha + Else + _FechaLimite = _TxtFechaLimite.Text.ToDate + End If + + If Not AplicaFechaVencimiento Then + _FechaVigencia = MinFecha + End If + + + If Not _CveDocumentacionExcluir = _CveDocumentacion Then + Try + If _CveDocumentacionElectronica = -1 Then + + If objDocumentos.DocumentacionElectronicaAdd(_CveDocumentacion, -1, -1, -1, _estatus, _txtObservaciones.Text.Trim, _Adjunto, UsuarioActual.CveUsuario, _FechaLimite, _FechaVigencia, CveActivoFijo:=CveActivoFijo) > 0 Then + Else + hasError = True + Exit For + End If + + Else + If objDocumentos.DocumentacionElectronicaUpdate(_CveDocumentacionElectronica, _CveDocumentacion, -1, -1, -1, _estatus, _txtObservaciones.Text.Trim, _Adjunto, UsuarioActual.CveUsuario, _FechaLimite, _FechaVigencia, CveActivoFijo:=CveActivoFijo) Then + Else + hasError = True + Exit For + End If + End If + + + hasError = False + Catch ex As Exception + hasError = True + Exit For + End Try + End If + Next + + 'refrescar grid datos investigacion + CargaDocumentacion() + End Sub +#End Region + + + + End Class \ No newline at end of file diff --git a/AF/CatAF.aspx b/AF/CatAF.aspx index a957b310d..5feeabdb5 100644 --- a/AF/CatAF.aspx +++ b/AF/CatAF.aspx @@ -203,6 +203,16 @@ +
    +
    Tipo Grupo:
    +
    + + + + + +
    +
    diff --git a/AF/CatAF.aspx.vb b/AF/CatAF.aspx.vb index e348643a4..594d4b956 100644 --- a/AF/CatAF.aspx.vb +++ b/AF/CatAF.aspx.vb @@ -71,6 +71,9 @@ Partial Class AF_CatAF CargaPersonalizacion() + If UsuarioActual.CveEmpresa = 13 Then + DVTipoGrupo.Visible = True + End If End If @@ -291,7 +294,8 @@ Partial Class AF_CatAF Dim Cvecliente As Integer = If(DdlClientes.SelectedValue.ToEntero > 0, DdlClientes.SelectedValue.ToEntero, -1) If ObjAF.GetActivosFijos(-1, UsuarioActual.CveEmpresa, Codigo, Descripcion, DdlTipoActivo.SelectedValue.ToEntero, DdlSubTipoActivo.SelectedValue.ToEntero, NoSerie, Año, CvePersonaResponsable, DdlProyecto.SelectedValue.ToEntero, - DdlSubProyecto.SelectedValue.ToEntero, DdlEstatus.SelectedValue.ToEntero, strSQL1.ToString, CveCliente:=Cvecliente, CveGrupo:=DdlGrupo.SelectedValue.ToEntero, BuscaPorAFPadre:=DdlAFPadres.SelectedValue.ToEntero) Then + DdlSubProyecto.SelectedValue.ToEntero, DdlEstatus.SelectedValue.ToEntero, strSQL1.ToString, CveCliente:=Cvecliente, CveGrupo:=DdlGrupo.SelectedValue.ToEntero, BuscaPorAFPadre:=DdlAFPadres.SelectedValue.ToEntero, + CveTipoAFGrupo:=DdlAFTipoGrupo.SelectedValue.ToEntero) Then If ObjAF.DtResultados.Rows.Count > 0 Then DtActivosFijos = ObjAF.DtResultados 'GvDatos.DataSource = ObjAF.DtResultados diff --git a/App_Code/ClsAF.vb b/App_Code/ClsAF.vb index 45ba33114..e0edd96b6 100644 --- a/App_Code/ClsAF.vb +++ b/App_Code/ClsAF.vb @@ -296,7 +296,9 @@ Public Class ClsAF Return Retorno End Function - Public Function GetActivosFijos(CveActivoFijo As Integer, CveEmpresa As Integer, Codigo As String, Descripcion As String, CveTipoActivoFijo As Integer, CveSubTipoActivoFijo As Integer, NoSerie As String, Año As Integer, CvePersonaResponsable As Integer, CveProyecto As Integer, CveSubProyecto As Integer, CveEstadoActivoFijo As Integer, CaracteristicaValor As String, CveCliente As Integer, Optional BuscaGrupoEmpresa As Integer = -1, Optional BuscaPorAFPadre As Integer = -1, Optional CveGrupo As Integer = -1) As Boolean + Public Function GetActivosFijos(CveActivoFijo As Integer, CveEmpresa As Integer, Codigo As String, Descripcion As String, CveTipoActivoFijo As Integer, CveSubTipoActivoFijo As Integer, NoSerie As String, Año As Integer, CvePersonaResponsable As Integer, + CveProyecto As Integer, CveSubProyecto As Integer, CveEstadoActivoFijo As Integer, CaracteristicaValor As String, CveCliente As Integer, Optional BuscaGrupoEmpresa As Integer = -1, Optional BuscaPorAFPadre As Integer = -1, + Optional CveGrupo As Integer = -1, Optional CveTipoAFGrupo As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_AF_ActivosFijosGet") With SqlAdapter.SelectCommand.Parameters @@ -317,6 +319,7 @@ Public Class ClsAF .Add("@BuscaGrupoEmpresa", SqlDbType.Int).Value = BuscaGrupoEmpresa .Add("@CveAFPadre", SqlDbType.Int).Value = BuscaPorAFPadre .Add("@CveGrupo", SqlDbType.Int).Value = CveGrupo + .Add("@CveTipoAFGrupo", SqlDbType.Int).Value = CveTipoAFGrupo End With Try SqlAdapter.Fill(Data) diff --git a/App_Code/ClsEdocumentacion.vb b/App_Code/ClsEdocumentacion.vb index d2f56e68f..2786b035e 100644 --- a/App_Code/ClsEdocumentacion.vb +++ b/App_Code/ClsEdocumentacion.vb @@ -252,7 +252,8 @@ Public Class ClsEdocumentacion #Region "D O C U M E N T A C I O N - E L E C T R O N I C A" - Public Function DocumentacionElectronicaGet(CvePersonal As Integer, CveCliente As Integer, CveProveedor As Integer, CveEmpresa As Integer, CveDocumentacionTipo As Integer, Optional CveVenta As Integer = -1, Optional Modulo As Integer = 1, Optional Periodo As Integer = -1) As Boolean + Public Function DocumentacionElectronicaGet(CvePersonal As Integer, CveCliente As Integer, CveProveedor As Integer, CveEmpresa As Integer, CveDocumentacionTipo As Integer, Optional CveVenta As Integer = -1, Optional Modulo As Integer = 1, + Optional Periodo As Integer = -1, Optional CveActivoFijo As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Edoc_DocumentacionElectronicaGet") @@ -266,6 +267,7 @@ Public Class ClsEdocumentacion .Add("@CveVenta", SqlDbType.Int).Value = CveVenta .Add("@Periodo", SqlDbType.Int).Value = Periodo .Add("@Modulo", SqlDbType.Int).Value = Modulo + .Add("@CveActivoFijo", SqlDbType.Int).Value = CveActivoFijo End With Try @@ -279,7 +281,8 @@ Public Class ClsEdocumentacion End Function Public Function DocumentacionElectronicaAdd(CveDocumentacion As Integer, CvePersonal As Integer, CveCliente As Integer, CveProveedor As Integer, Estatus As Integer, Observacion As String, Adjunto As String, - CveUsuario As Integer, FechaLimite As Date, Optional FechaVigencia As Date = Nothing, Optional CveVenta As Integer = -1, Optional Observacion2 As String = "-1", Optional Periodo As Integer = 190001) As Integer + CveUsuario As Integer, FechaLimite As Date, Optional FechaVigencia As Date = Nothing, Optional CveVenta As Integer = -1, Optional Observacion2 As String = "-1", + Optional Periodo As Integer = 190001, Optional CveActivoFijo As Integer = -1) As Integer Dim Retorno As Integer = 0 @@ -299,6 +302,7 @@ Public Class ClsEdocumentacion .Add("@FechaLimite", SqlDbType.Date).Value = FechaLimite .Add("@FechaVigencia", SqlDbType.Date).Value = FechaVigencia .Add("@Periodo", SqlDbType.Int).Value = Periodo + .Add("@CveActivoFijo", SqlDbType.Int).Value = CveActivoFijo .Add("@CveDocumentacionElectronica", SqlDbType.Int).Direction = ParameterDirection.Output 'FechaVigencia End With @@ -315,7 +319,8 @@ Public Class ClsEdocumentacion Public Function DocumentacionElectronicaUpdate(CveDocumentacionElectronica As Integer, CveDocumentacion As Integer, CvePersonal As Integer, CveCliente As Integer, CveProveedor As Integer, Estatus As Integer, - Observacion As String, Adjunto As String, CveUsuario As Integer, FechaLimite As Date, Optional FechaVigencia As Date = Nothing, Optional Observacion2 As String = "-1") As Boolean + Observacion As String, Adjunto As String, CveUsuario As Integer, FechaLimite As Date, Optional FechaVigencia As Date = Nothing, Optional Observacion2 As String = "-1", + Optional CveActivoFijo As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Edoc_DocumentacionElectronicaUpdate") @@ -333,6 +338,7 @@ Public Class ClsEdocumentacion .Add("@CveUsuario", SqlDbType.VarChar).Value = CveUsuario .Add("@FechaLimite", SqlDbType.Date).Value = FechaLimite .Add("@FechaVigencia", SqlDbType.Date).Value = FechaVigencia + .Add("@CveActivoFijo", SqlDbType.Int).Value = CveActivoFijo ' End With diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index 0b28c1fba..8e050193b 100644 --- a/App_Code/ClsInventarios.vb +++ b/App_Code/ClsInventarios.vb @@ -6433,6 +6433,24 @@ Public Class ClsInventarios Return Retorno End Function + Public Function GetMovmientoDetalleReplicado(CveMovimientoDetalle As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Inv_MovmientoDetalleReplicadoGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveMovimientoDetalle", SqlDbType.Int).Value = CveMovimientoDetalle + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al replicar el movimiento.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + Public Function GetVentasRemisionesInventario(Ventas As String, CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False diff --git a/App_Code/ClsNominas.vb b/App_Code/ClsNominas.vb index 833a4b715..ab193393f 100644 --- a/App_Code/ClsNominas.vb +++ b/App_Code/ClsNominas.vb @@ -4071,6 +4071,44 @@ Public Class ClsNominas Return retorno End Function +#Region "CRUD_PersonalRefs" + Public Function PersonalCamposValoresGet(cveReferencia As Int32, cvePersonal As Int32) As Boolean + Dim retorno As Boolean = False + DataAdapter("PA_Nom_PersonalCamposValoresGet", CommandType.StoredProcedure) + addParameters("@CveReferencia", SqlDbType.Int, cveReferencia) + addParameters("@CvePersonal", SqlDbType.Int, cvePersonal) + retorno = RunQuery("Ocurrió un error al obtener el PersonalRefs.") + Return retorno + End Function + Public Function PersonalCamposValoresAddUp(cveReferencia As Int32, cvePersonal As Int32, valor As Decimal) As Boolean + Dim retorno As Boolean = False + DataAdapter("PA_Nom_PersonalCamposValoresAddUp", CommandType.StoredProcedure) + addParameters("@CveReferencia", SqlDbType.Int, cveReferencia) + addParameters("@CvePersonal", SqlDbType.Int, cvePersonal) + addParameters("@Valor", SqlDbType.Money, valor) + retorno = RunQuery("Ocurrió un error al actualizar el PersonalRefs.") + Return retorno + End Function + Public Function PersonalCamposValoresRemove(cveReferencia As Int32, cvePersonal As Int32) As Boolean + Dim retorno As Boolean = False + DataAdapter("PA_Nom_PersonalCamposValoresRemove", CommandType.StoredProcedure) + addParameters("@CveReferencia", SqlDbType.Int, cveReferencia) + addParameters("@CvePersonal", SqlDbType.Int, cvePersonal) + retorno = RunQuery("Ocurrió un error al eliminar el PersonalRefs.") + Return retorno + End Function + + Public Function PersonalCamposGET() As Boolean + Dim retorno As Boolean = False + DataAdapter("PA_Nom_PersonalCamposGET", CommandType.StoredProcedure) + retorno = RunQuery("Ocurrió un error al obtener el PersonalRefs.") + Return retorno + End Function +#End Region + + + + Public Sub addParameters(varsql As String, sqltipe As SqlDbType, valor As Object) SqlAdapter.SelectCommand.Parameters.Add(varsql, sqltipe).Value = valor End Sub diff --git a/App_Code/ClsRH.vb b/App_Code/ClsRH.vb index cd2840b87..b8bfbcca1 100644 --- a/App_Code/ClsRH.vb +++ b/App_Code/ClsRH.vb @@ -7599,6 +7599,31 @@ Public Class ClsRH End Function #End Region + Public Function ValidaFechaIngresoVSNominas(CvePersonal As Integer, CvePersonalAltas As Integer, CveEmpresa As Integer, FechaIngreso As String, FechaFin As String) As Boolean + Dim Retorno As Boolean = False + Data = New DataTable + SqlDataAdapter("[PA_ValidaFechaIngresoVSNominas]") + With SqlAdapter.SelectCommand.Parameters + .Add("@FechaIngreso", SqlDbType.VarChar).Value = FechaIngreso + .Add("@FechaFin", SqlDbType.VarChar).Value = FechaFin + .Add("@CvePersonalAltas", SqlDbType.Int).Value = CvePersonalAltas + .Add("@CvePersonal", SqlDbType.Int).Value = CvePersonal + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + If Data.Rows.Count > 0 Then + Retorno = False + Else + Retorno = True + End If + Catch Ex1 As SqlException + Me.OnError("Ocurrió un error al guardar correos nominas", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + Catch ex As Exception + OnError("Ocurrió un error al guardar correos nominas.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + Return Retorno + End Function Public Function NomBitacoraCorreoGet(CvePeriodo As Integer, CvePersonal As Integer, CveEmpresa As Integer) As Boolean diff --git a/Bancos/CuentasBancariasDetalle.aspx.vb b/Bancos/CuentasBancariasDetalle.aspx.vb index ce0870a00..83eec7caa 100644 --- a/Bancos/CuentasBancariasDetalle.aspx.vb +++ b/Bancos/CuentasBancariasDetalle.aspx.vb @@ -164,11 +164,10 @@ Partial Class Bancos_CuentasBancariasDetalle If DdlTipoCuenta.SelectedValue.ToEntero = 1 Then 'Caja Chica IdPadre = UsuarioActual.Empresa.Funcionalidad(218).ToEntero Else - Dim tesstr = UsuarioActual.Empresa.Funcionalidad(209) IdPadre = UsuarioActual.Empresa.Funcionalidad(209).ToEntero End If - If IdPadre = 0 Then IdPadre = -1 + If IdPadre = 0 Then IdPadre = 1 If Conta.GetCuentasRecursiva(IdPadre, 1) Then dt = Conta.DtResultados diff --git a/Bancos/PagoAcreedor.aspx b/Bancos/PagoAcreedor.aspx index bf3356817..1862f9bc8 100644 --- a/Bancos/PagoAcreedor.aspx +++ b/Bancos/PagoAcreedor.aspx @@ -275,7 +275,7 @@
    -
    +
    @@ -289,7 +289,7 @@
    -
    + diff --git a/Compras/eFacturas.aspx.vb b/Compras/eFacturas.aspx.vb index fcb3d3044..7176a8e4e 100644 --- a/Compras/eFacturas.aspx.vb +++ b/Compras/eFacturas.aspx.vb @@ -1612,7 +1612,7 @@ Partial Class Compras_eFacturas End Sub - Private Sub SubirFacturas(ByRef ListComprimidos As List(Of String), ByRef ListXML As List(Of String), ByRef ListPDF As List(Of String), Optional Validada As Integer = 0) + Private Sub SubirFacturas(ByRef ListComprimidos As List(Of String), ByRef ListXML As List(Of String), ByRef ListPDF As List(Of String), Optional Validada As Integer = 0, Optional SobreEscribirPDFSiExiste As Boolean = True) Dim DTLOG As New DataTable DTLOG.Columns.Add("Serie", GetType(String)) DTLOG.Columns.Add("Folio", GetType(String)) @@ -1753,11 +1753,27 @@ Partial Class Compras_eFacturas If FF IsNot Nothing AndAlso FF.CveFactura > 0 Then + Dim PDfDestino As String = $"{UsuarioActual.Empresa.Ruta}\Compras\{FF.EmisorRFC}\{FF.CveFactura}.PDF" + + If RutaPDF = "" Then - Dim Hilo As New System.Threading.Thread(Sub() ProcesarPDF(UsuarioActual, a, FF)) - Hilo.Start() + + + + 'no valida nada solo lo crea y lo pone en la carpeta, no importa si ya existe + If SobreEscribirPDFSiExiste Then + Dim Hilo As New System.Threading.Thread(Sub() ProcesarPDF(UsuarioActual, a, FF)) + Hilo.Start() + Else + 'si no existe el pdf, lo procesa + If Not File.Exists(PDfDestino) Then + Dim Hilo As New System.Threading.Thread(Sub() ProcesarPDF(UsuarioActual, a, FF)) + Hilo.Start() + End If + End If + Else - Dim PDfDestino As String = $"{UsuarioActual.Empresa.Ruta}\Compras\{FF.EmisorRFC}\{FF.CveFactura}.PDF" + If File.Exists(RutaPDF) Then If File.Exists(PDfDestino) Then File.Delete(PDfDestino) @@ -3036,7 +3052,7 @@ Partial Class Compras_eFacturas End If If SeVerifico Then - SubirFacturas(ListComprimidos, ListXML, ListPDF, Validada:=1) + SubirFacturas(ListComprimidos, ListXML, ListPDF, Validada:=1,SobreEscribirPDFSiExiste:=False) End If 'If UsuarioActual.CveRol = 1 Then diff --git a/Contabilidad/ContabilidadElectronica.aspx b/Contabilidad/ContabilidadElectronica.aspx index 54a63e6da..bae52ac34 100644 --- a/Contabilidad/ContabilidadElectronica.aspx +++ b/Contabilidad/ContabilidadElectronica.aspx @@ -39,8 +39,8 @@ - + + + +
    Tipo Reporte: - + + @@ -54,21 +54,30 @@ Periodo: - - - - - - - - - + + + + + + + + +
    Tipo Envío: + + + + +

    diff --git a/Contabilidad/ContabilidadElectronica.aspx.vb b/Contabilidad/ContabilidadElectronica.aspx.vb index 6774efaa5..e3e1494bf 100644 --- a/Contabilidad/ContabilidadElectronica.aspx.vb +++ b/Contabilidad/ContabilidadElectronica.aspx.vb @@ -1,9 +1,20 @@ Option Explicit On Option Strict On -Imports System.Data -Imports System.IO Imports Extensiones +Imports System +Imports System.IO +Imports System.Security.Cryptography +Imports System.Security.Cryptography.X509Certificates +Imports System.Text +Imports System.Xml +Imports System.Xml.Xsl +Imports System.Data +Imports CrystalDecisions.Web +Imports DocumentFormat.OpenXml.Wordprocessing +Imports Org.BouncyCastle.Asn1 +Imports Org.BouncyCastle.Tls.Crypto.Impl + Partial Class Contabilidad_ContabilidadElectronica Inherits ClsPaginas @@ -91,11 +102,11 @@ Partial Class Contabilidad_ContabilidadElectronica If UsuarioActual.Empresa.TipoContabilidad = 1 Then Dim objconta As New ClsContabilidad If objconta.GetCuentas(-1, "-1", -1, UsuarioActual.CveEmpresa) Then - DtCuentas = objconta.DtResultados + DtCuentas = objconta.DtResultados.FiltraParametros("CodigoSAT <> ''") End If objconta.Dispose() Else - Dim ObjConpaq As New ClsContPAQi(UsuarioActual.Empresa) + Dim ObjConpaq As New ClsContPAQi(UsuarioActual.Empresa) If ObjConpaq.GetCuentasElectronica(MinFecha, FechaF) Then DtCuentas = ObjConpaq.DtResultados End If @@ -108,14 +119,11 @@ Partial Class Contabilidad_ContabilidadElectronica 'CABECERA Str.Append("") - Str.Append("") + Str.Append("xmlns:catalogocuentas=""http://www.sat.gob.mx/esquemas/ContabilidadE/1_3/CatalogoCuentas"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"">") 'DETALLES For Each Dr As DataRow In DtCuentas.Rows @@ -126,7 +134,7 @@ Partial Class Contabilidad_ContabilidadElectronica Str.AppendFormat("Desc=""{0}"" ", HttpUtility.HtmlEncode(Dr("Nombre").ToString)) Str.AppendFormat("SubCtaDe=""{0}"" ", Dr("CodigoPadre").ToString) Str.AppendFormat("Nivel=""{0}"" ", Dr("Nivel").ToString) - Str.AppendFormat("Natur=""{0}"" ", Dr("Tipo").ToString) + Str.AppendFormat("Natur=""{0}"" ", If(Dr("Tipo").ToString.Contiene("A", "C", "D", "G", "H"), "D", "A")) 'Atributo requerido para expresar la naturaleza de la cuenta o subcuenta. (D - Deudora, A - Acreedora). ( Activo = D ) ( Pasivo = A ) ( Capital = A ) ( Ingreso = A ) ( Costo = D ) ( Gasto = D ) ( Resultado Integral de Financiamiento = D y/o A ) ( Cuentas de orden = D y/o A ). Existen cuentas de Activo, Pasivo y Capital que por su naturaleza pueden presentarse de manera Deudora o Acreedora. Else Str.AppendFormat("CodAgrup=""{0}"" ", Dr("CodAgrup").ToString) Str.AppendFormat("NumCta=""{0}"" ", Dr("NumCta").ToString) @@ -147,31 +155,113 @@ Partial Class Contabilidad_ContabilidadElectronica ArchivoCuentas = $"{UsuarioActual.Empresa.Ruta}/ContabilidadElectronica/{ UsuarioActual.Empresa.RFC}{DdlEjercicio.SelectedValue}{DdlPeriodo.SelectedValue.PadLeft(2, "0"c)}CT.xml" 'SOBREESCRIBE - If System.IO.File.Exists(ArchivoCuentas) Then - System.IO.File.Delete(ArchivoCuentas) - End If - + If System.IO.File.Exists(ArchivoCuentas) Then System.IO.File.Delete(ArchivoCuentas) Dim fs As FileStream = File.Create(ArchivoCuentas) Dim info As Byte() = New UTF8Encoding(True).GetBytes(Str.ToString) fs.Write(info, 0, info.Length) fs.Close() - + Dim Archivo As New System.IO.FileInfo(ArchivoCuentas) 'DESCARGA XML - Dim DescargaZIP As Ionic.Zip.ZipFile = New Ionic.Zip.ZipFile() - - If IO.File.Exists(ArchivoCuentas) Then - DescargaZIP.AddFile(ArchivoCuentas, "") - End If - - DescargaZIP.Save(Response.OutputStream) - Response.AddHeader("content-Disposition", String.Format("attachment; filename={0}{1}{2}CT.zip", UsuarioActual.Empresa.RFC, DdlEjercicio.SelectedValue, DdlPeriodo.SelectedValue.PadLeft(2, "0"c))) - Response.ContentType = "application/zip" - Response.End() + 'Dim DescargaZIP As Ionic.Zip.ZipFile = New Ionic.Zip.ZipFile() + 'If IO.File.Exists(ArchivoCuentas) Then DescargaZIP.AddFile(ArchivoCuentas, "") + 'generar el sello + 'SellarXML(Str.ToString, ArchivoCuentas, 1) + 'DescargaZIP.Save(Response.OutputStream) + 'Response.AddHeader("content-Disposition", String.Format("attachment; filename={0}{1}{2}CT.zip", UsuarioActual.Empresa.RFC, DdlEjercicio.SelectedValue, DdlPeriodo.SelectedValue.PadLeft(2, "0"c))) + 'Response.ContentType = "application/zip" + 'Response.End() + HttpContext.Current.Response.Clear() + HttpContext.Current.Response.ClearContent() + HttpContext.Current.Response.ContentType = "application/xml" + HttpContext.Current.Response.AppendHeader("Content-disposition", String.Format("attachment; filename={0}", Archivo.Name)) + HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString()) + HttpContext.Current.Response.TransmitFile(ArchivoCuentas) + 'HttpContext.Current.Response.Flush() + HttpContext.Current.Response.End() + Archivo = Nothing End If End Sub + Private Function SellarXML(xmltexto As String, ArchivoCuentas As String, Opcion As Integer) As String + Dim ArchivoLLave As String = $"{UsuarioActual.Empresa.Ruta}Certificados\{UsuarioActual.Empresa.ArchivoKey}" + Dim Archivopfx As String = $"{UsuarioActual.Empresa.Ruta}Certificados\{UsuarioActual.Empresa.FielPFX }" + Dim Clavepfx As String = UsuarioActual.Empresa.FielPassword + + Dim xsltPath As String + Select Case Opcion + Case 1 + xsltPath = $"{AppDomain.CurrentDomain.BaseDirectory}Temp\CatalogoCuentas_1_3.xslt" + Case 2 + xsltPath = $"{AppDomain.CurrentDomain.BaseDirectory}Temp\BalanzaComprobacion_1_3.xslt" + End Select + + If Not File.Exists(ArchivoLLave) Then + Alert("El archivo de llave privada no existe", TipoMensaje.MsgError) + End If + + ' 1. Cargar y transformar el XML para obtener la Cadena Original + Dim originalCadena As String = GenerarCadenaOriginal(xmltexto, xsltPath) + + ' 2. Cargar tu certificado PFX (incluye la clave privada) + Dim cert As New X509Certificate2(Archivopfx, Clavepfx, X509KeyStorageFlags.MachineKeySet) + + ' 3. Firmar la cadena con SHA256 + Dim selloBytes As Byte() + Using rsa As RSA = cert.GetRSAPrivateKey() + selloBytes = rsa.SignData( + Encoding.UTF8.GetBytes(originalCadena), + HashAlgorithmName.SHA256, + RSASignaturePadding.Pkcs1) + End Using + Dim selloBase64 As String = Convert.ToBase64String(selloBytes) + + ' 4. Obtener el certificado (público) en Base64 y el número de certificado + Dim certBase64 As String = Convert.ToBase64String(cert.RawData) + Dim noCertificado As String = cert.GetSerialNumberString() + + ' 5. Insertar atributos en el XML + Dim xmlDoc As New XmlDocument() + xmlDoc.PreserveWhitespace = True ' conserva espacios y saltos + xmlDoc.LoadXml(xmltexto) + + Dim root As XmlElement = xmlDoc.DocumentElement + root.SetAttribute("Sello", selloBase64) + root.SetAttribute("noCertificado", noCertificado) + root.SetAttribute("certificado", certBase64) + + ' 6. Guardar archivo sellado + Dim StrFinal As String = xmlDoc.OuterXml + Dim fs As FileStream = File.Create(ArchivoCuentas) + Dim info As Byte() = New UTF8Encoding(True).GetBytes(StrFinal) + fs.Write(info, 0, info.Length) + fs.Close() + 'xmlDoc.Save(ArchivoCuentas) + Return StrFinal + End Function + + ''' + ''' Aplica el XSLT para generar la Cadena Original según SAT. + ''' + Function GenerarCadenaOriginal(xmlContenido As String, xsltFile As String) As String + ' Carga la transformación XSLT + Dim xslt As New XslCompiledTransform() + xslt.Load(xsltFile) + + ' Prepara un StringReader sobre el contenido del XML + Using sr As New StringReader(xmlContenido), + xr As XmlReader = XmlReader.Create(sr), + sw As New StringWriter() + + ' Ejecuta la transformación + xslt.Transform(xr, Nothing, sw) + + ' Devuelve la cadena original (trim para quitar saltos extra) + Return sw.ToString().Trim() + End Using + End Function + Private Sub GeneraBalanza() Dim FechaI As Date = String.Format("01/{0}/{1}", DdlPeriodo.SelectedValue.PadLeft(2, "0"c), DdlEjercicio.SelectedValue).ToDate Dim FechaF As Date = FechaI.LastDayOfMonth @@ -186,10 +276,10 @@ Partial Class Contabilidad_ContabilidadElectronica If DtCuentas IsNot Nothing Then Dim Deudor As Decimal = DtCuentas.SUM("SaldoAD") Dim Acreedor As Decimal = DtCuentas.SUM("SaldoAA") - If Deudor <> Acreedor Then - Alert("los Saldos Actuales no cuadran.", TipoMensaje.MsgError) - Exit Sub - End If + 'If Deudor <> Acreedor Then + ' Alert("los Saldos Actuales no cuadran.", TipoMensaje.MsgError) + ' Exit Sub + 'End If End If Else Dim ObjConpaq As New ClsContPAQi(UsuarioActual.Empresa) @@ -204,24 +294,25 @@ Partial Class Contabilidad_ContabilidadElectronica 'CABECERA Str.Append("") - Str.Append("") - + Str.AppendFormat("TipoEnvio=""{0}"" ", DdlTipoEnvío.SelectedValue) + 'SOLO CUANDO ES COMPLEMENTARIA + If DdlTipoEnvío.SelectedValue = "C" Then Str.AppendFormat("FechaModBal=""{0}""", FechaF.ToString("yyyy-MM-dd")) + Str.AppendFormat(">") 'DETALLES - For Each Dr As DataRow In DtCuentas.Rows - Str.Append(" ''").Rows + Str.Append("") Next - DtCuentas.Dispose() 'FIN - Str.Append("") - + Str.Append("") 'GUARDA ARHIVO ArchivoBalanza = Server.MapPath(String.Format("~/Empresas/{0}/ContabilidadElectronica/{1}{2}{3}BN.xml", UsuarioActual.CveEmpresa, UsuarioActual.Empresa.RFC, DdlEjercicio.SelectedValue, DdlPeriodo.SelectedValue.PadLeft(2, "0"c))) @@ -251,30 +340,50 @@ Partial Class Contabilidad_ContabilidadElectronica 'SOBREESCRIBE If System.IO.File.Exists(ArchivoBalanza) Then System.IO.File.Delete(ArchivoBalanza) - Dim fs As FileStream = File.Create(ArchivoBalanza) Dim info As Byte() = New UTF8Encoding(True).GetBytes(Str.ToString) fs.Write(info, 0, info.Length) fs.Close() + Dim Archivo As New System.IO.FileInfo(ArchivoBalanza) - 'DESCARGA XML - Dim DescargaZIP As Ionic.Zip.ZipFile = New Ionic.Zip.ZipFile() + HttpContext.Current.Response.Clear() + HttpContext.Current.Response.ClearContent() + HttpContext.Current.Response.ContentType = "application/xml" + HttpContext.Current.Response.AppendHeader("Content-disposition", String.Format("attachment; filename={0}", Archivo.Name)) + HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString()) + HttpContext.Current.Response.TransmitFile(ArchivoBalanza) + 'HttpContext.Current.Response.Flush() + HttpContext.Current.Response.End() + Archivo = Nothing - If IO.File.Exists(ArchivoBalanza) Then - DescargaZIP.AddFile(ArchivoBalanza, "") - End If + ''SOBREESCRIBE + 'If System.IO.File.Exists(ArchivoBalanza) Then System.IO.File.Delete(ArchivoBalanza) + ''DESCARGA XML + 'Dim DescargaZIP As Ionic.Zip.ZipFile = New Ionic.Zip.ZipFile() + ''generar el sello + 'SellarXML(Str.ToString, ArchivoBalanza, 2) - DescargaZIP.Save(Response.OutputStream) - Response.AddHeader("content-Disposition", String.Format("attachment; filename={0}{1}{2}BN.zip", UsuarioActual.Empresa.RFC, DdlEjercicio.SelectedValue, DdlPeriodo.SelectedValue.PadLeft(2, "0"c))) - Response.ContentType = "application/zip" - Response.End() + 'If IO.File.Exists(ArchivoBalanza) Then + ' DescargaZIP.AddFile(ArchivoBalanza, "") + 'End If + + 'DescargaZIP.Save(Response.OutputStream) + 'Response.AddHeader("content-Disposition", String.Format("attachment; filename={0}{1}{2}BN.zip", UsuarioActual.Empresa.RFC, DdlEjercicio.SelectedValue, DdlPeriodo.SelectedValue.PadLeft(2, "0"c))) + 'Response.ContentType = "application/zip" + 'Response.End() End If End Sub #End Region + Protected Sub DdlTipoReporte_SelectedIndexChanged(sender As Object, e As EventArgs) + If DdlTipoReporte.SelectedValue = "1" Then + trTipoEnvio.Visible = False + ElseIf DdlTipoReporte.SelectedValue = "2" Then + trTipoEnvio.Visible = True + End If - + End Sub End Class diff --git a/Empresas/7/Formatos/26_CompromisoAsistenciaISSPE.docx b/Empresas/7/Formatos/26_CompromisoAsistenciaISSPE.docx deleted file mode 100644 index e4f718eb8..000000000 Binary files a/Empresas/7/Formatos/26_CompromisoAsistenciaISSPE.docx and /dev/null differ diff --git a/General/CatDocumentacionTipo.aspx b/General/CatDocumentacionTipo.aspx index c08e6c5b1..0409ab3c5 100644 --- a/General/CatDocumentacionTipo.aspx +++ b/General/CatDocumentacionTipo.aspx @@ -103,6 +103,7 @@ Catalogo Documentacion Tipo Clientes Proveedor <%-- Nota: EL tipo Tres es tipo Auditoria de documentos de proveedor usadon el portal prveedor y --%> Inicio + Activos Fijos diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb index 383615019..3ad751fca 100644 --- a/Inventarios/EntradasSalidas.aspx.vb +++ b/Inventarios/EntradasSalidas.aspx.vb @@ -1914,6 +1914,7 @@ Partial Class Inventarios_EntradasSalidas ElseIf Dr("Estatus").ToString = "U" Then If Not ObjInventario.UpdateMovimientoDetalle(Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, ImporteConcepto, Dr("CveAF").ToString.ToEntero, Dr("CveMovimientoDetalle").ToString.ToEntero, Dr("CveSeccionAlmacen").ToString.ToEntero, Dr("Serie").ToString, Dr("Observaciones").ToString, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then + Mensaje = "Error al Actualizar los movimientos" ErrorMovInv = True : Exit For End If @@ -5506,21 +5507,59 @@ Partial Class Inventarios_EntradasSalidas If CveMovimientoDetalleEdit > 0 Then + Dim ErrorMovInv As Boolean = False + Dim ObjInventario As New ClsInventarios - If Not ObjInventario.UpdateMovimientoDetalle(txtCantidad.Text.ToDecimal, DdlUnidad.SelectedValue.ToEntero, DdlProducto2.SelectedValue.ToEntero, txtPrecio.Text.ToDecimal, CveAFEdit, + ObjInventario.IniciaTransacSQL() + + If ObjInventario.UpdateMovimientoDetalle(txtCantidad.Text.ToDecimal, DdlUnidad.SelectedValue.ToEntero, DdlProducto2.SelectedValue.ToEntero, txtPrecio.Text.ToDecimal, CveAFEdit, CveMovimientoDetalleEdit, DdlSeccionAlmacen.SelectedValue.ToEntero, TxtnSerie.Text, TxtObservacionesdetalle.Text, CveUsuarioModifico:=UsuarioActual.CveUsuario, CveCultivoCuadroDetalle:=DdlModalCultivosCuadro.SelectedValue.ToEntero, Lote:=TxtnLote.Text.Trim, FechaCaducidad:=TxtnFechaCaducidad.Text.ToDate) Then - Alert("Error al Actualizar los movimientos") + + + If UsuarioActual.CveEmpresa = 199 Then + If ObjInventario.GetMovmientoDetalleReplicado(CveMovimientoDetalleEdit) Then + + If ObjInventario.DtResultados.Rows.Count > 0 Then + + Dim CveMovimientoDetalleReplicado As Integer = ObjInventario.DtResultados.Rows(0)("CveMovimientoDetalle").ToString.ToEntero + + If Not ObjInventario.UpdateMovimientoDetalle(txtCantidad.Text.ToDecimal, -1, -1, txtPrecio.Text.ToDecimal, -1, + CveMovimientoDetalleReplicado, -1, TxtnSerie.Text, TxtObservacionesdetalle.Text, + CveUsuarioModifico:=UsuarioActual.CveUsuario, CveCultivoCuadroDetalle:=-1, + Lote:=TxtnLote.Text.Trim, FechaCaducidad:=TxtnFechaCaducidad.Text.ToDate) Then + Alert("Error al Actualizar los movimientos replicados relacionados.", TipoMensaje.MsgAdvertencia) + ErrorMovInv = True + End If + + End If + + Else + Alert("Error al obtener los datos de los movimientos replicados relacionados.", TipoMensaje.MsgAdvertencia) + ErrorMovInv = True + End If + End If + + + + Else - GvM.EditIndex = -1 - 'cargar también los movimentos detalle + Alert("Error al Actualizar los movimientos", TipoMensaje.MsgAdvertencia) + ErrorMovInv = True + End If + + If Not ErrorMovInv Then + ObjInventario.Commit() + 'GvM.EditIndex = -1 If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then DtMovimientos = ObjInventario.DtResultados CargaGVM(DtMovimientos) End If Alert("Movimiento actualizado correctamente") RegistraScript("$('#ModalAgregar').modal('hide')") + Else + ObjInventario.RollBack() End If ObjInventario.Dispose() diff --git a/Inventarios/Kardex.aspx b/Inventarios/Kardex.aspx index decbb8933..e6c663354 100644 --- a/Inventarios/Kardex.aspx +++ b/Inventarios/Kardex.aspx @@ -787,7 +787,7 @@
    - Imprimir QR + Imprimir QR
    -
    -
    - +
    Activos: +
    + - - + + - -
    - Filtrar +
    Agregar @@ -1510,7 +1508,7 @@ CssClass="lnkMovotPermanente" runat="server" Text='<%# Eval("FechaInicioAplicacion", "{0:dd/MM/yyyy}")%>'> - + diff --git a/Nomina/Nomina.aspx.cs b/Nomina/Nomina.aspx.cs index 07a5da3e7..91625264d 100644 --- a/Nomina/Nomina.aspx.cs +++ b/Nomina/Nomina.aspx.cs @@ -7830,15 +7830,14 @@ public partial class Nomina_Nomina2 : ClsPaginas DdlConcepto.DataBind(); //DdlConcepto.Items.Insert(0, new ListItem("Seleccione", "-1")); } - - protected void LnkFiltro_Click(object sender, EventArgs e) + private void CargaMovtoPermanente() { int estatus = ddlmvtoperfiltroestatus.SelectedValue.ToEntero(); using (ClsNominas ObjMovt = new ClsNominas()) { ObjMovt.GetMovtoPermanente(UsuarioActual.CveEmpresa, SRCvePersonal); DataTable dt = ObjMovt.DtResultados; - if(estatus >= 0) + if (estatus >= 0) { dt = dt.FiltraParametros(string.Format("Estatus ={0}", estatus)); } @@ -7847,20 +7846,6 @@ public partial class Nomina_Nomina2 : ClsPaginas } GVMovtoPermanente.DataBind(); UpMovtosPermanentes.Update(); - - - } - private void CargaMovtoPermanente() - { - ddlmvtoperfiltroestatus.SelectedValue = "-1"; - using (ClsNominas ObjMovt = new ClsNominas()) - { - ObjMovt.GetMovtoPermanente(UsuarioActual.CveEmpresa, SRCvePersonal); - GVMovtoPermanente.DataSource = ObjMovt.DtResultados; - - } - GVMovtoPermanente.DataBind(); - UpMovtosPermanentes.Update(); } protected void DdlTipo_SelectedIndexChanged(object sender, EventArgs e) { @@ -12483,4 +12468,9 @@ public partial class Nomina_Nomina2 : ClsPaginas } + + protected void ddlmvtoperfiltroestatus_SelectedIndexChanged(object sender, EventArgs e) + { + CargaMovtoPermanente(); + } } \ No newline at end of file diff --git a/Nomina/RepMovtosPermanentes.aspx b/Nomina/RepMovtosPermanentes.aspx index 16ea51b0a..020044693 100644 --- a/Nomina/RepMovtosPermanentes.aspx +++ b/Nomina/RepMovtosPermanentes.aspx @@ -4,7 +4,7 @@ @@ -63,15 +65,15 @@ - +
  • - Formato Excel + Formato Excel
  • - - + +
    @@ -86,8 +88,8 @@
    - -
    + + - -
    + + - -
    + + - +
    <%----%> @@ -186,15 +188,16 @@ --%> - + - - + + + @@ -215,12 +218,12 @@ -<%-- + <%-- --%> - <%-- + <%-- diff --git a/Nomina/RepMovtosPermanentes.aspx.cs b/Nomina/RepMovtosPermanentes.aspx.cs index 07040324f..81e63b937 100644 --- a/Nomina/RepMovtosPermanentes.aspx.cs +++ b/Nomina/RepMovtosPermanentes.aspx.cs @@ -1,9 +1,12 @@ using System; using System.Collections.Generic; +using System.Data; +using System.IO; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; +using ClosedXML.Excel; using Extensiones; public partial class Nomina_RepMovtosPermanentes : ClsPaginas @@ -48,7 +51,7 @@ public partial class Nomina_RepMovtosPermanentes : ClsPaginas { get { return TxtRpdFechaFin.Text; } set { TxtRpdFechaFin.Text = value; } - } + } #endregion protected void Page_Load(object sender, EventArgs e) { @@ -60,7 +63,7 @@ public partial class Nomina_RepMovtosPermanentes : ClsPaginas 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"); + fechaFin = DateTime.Now.ToString("01/MM/yyyy").ToDateTime().AddMonths(1).AddDays(1).ToString("01/MM/yyyy"); CargaCombos(); cargardatos(); @@ -68,28 +71,23 @@ public partial class Nomina_RepMovtosPermanentes : ClsPaginas } protected void CargaCombos() - { - using (ClsRH orh = new ClsRH()) - { - if (orh.GetPersonal(-1, UsuarioActual.CveEmpresa)) - { - DDlPersonal.DataSource = orh.DtResultados; - } - DDlPersonal.DataBind(); - } + { + DDlPersonal.DataSource = get_GlobalDTRHPersonal(UsuarioActual.CveEmpresa); + DDlPersonal.DataBind(); + using (ClsNominas onom = new ClsNominas()) { if (onom.GetConceptos(UsuarioActual.CveEmpresa)) { - DDLConcepto.DataSource = onom.DtResultados; + DDLConcepto.DataSource = onom.DtResultados.FiltraParametros(" FormulaTotal = 'FNC.[MovimientosPermanentes]' OR Concepto like '%FONACOT%'"); } DDLConcepto.DataBind(); } - DDlPersonal.SelectedValueExist( RcvePersonal.ToString()); - DDlTipo.SelectedValueExist( RcveTipo.ToString()); - DDLSaldo.SelectedValueExist( RcveSaldo.ToString()); - DDLEstatus.SelectedValueExist( RcveEstatus.ToString()); - DDLConcepto.SelectedValueExist( RcveConcepto.ToString()); + DDlPersonal.SelectedValueExist(RcvePersonal.ToString()); + DDlTipo.SelectedValueExist(RcveTipo.ToString()); + DDLSaldo.SelectedValueExist(RcveSaldo.ToString()); + DDLEstatus.SelectedValueExist(RcveEstatus.ToString()); + DDLConcepto.SelectedValueExist(RcveConcepto.ToString()); } protected void cargardatos() { @@ -97,7 +95,7 @@ public partial class Nomina_RepMovtosPermanentes : ClsPaginas { //string fechaInicio = ""; //string fechaFin = ""; - ObjGetM.GetMovtoPermanenteRepFechas(RcvePersonal, UsuarioActual.CveEmpresa, RcveTipo, RcveSaldo, RcveEstatus, RcveConcepto, fechaInicio, fechaFin); + ObjGetM.GetMovtoPermanenteRepFechas(RcvePersonal, UsuarioActual.CveEmpresa, RcveTipo, RcveSaldo, RcveEstatus, RcveConcepto, fechaInicio.ToDateTime().ToString("yyyy-MM-dd"), fechaFin.ToDateTime().ToString("yyyy-MM-dd")); GVGetMovtoPermanenteRep.DataSource = ObjGetM.DtResultados; GVGetMovtoPermanenteRep.DataBind(); @@ -119,8 +117,8 @@ public partial class Nomina_RepMovtosPermanentes : ClsPaginas { if (e.Row.RowType == DataControlRowType.Header) - { - e.Row.CssClass = "headerHide"; + { + e.Row.CssClass = "headerHide"; } if (e.Row.RowType == DataControlRowType.DataRow) { @@ -137,7 +135,7 @@ public partial class Nomina_RepMovtosPermanentes : ClsPaginas //e.Row.Cells[1].Attributes.Add("colspan", "7"); cssclass = string.Format("{0} cvetipo0", cssclass); } - e.Row.CssClass = cssclass; + e.Row.CssClass = cssclass; } } @@ -171,7 +169,84 @@ public partial class Nomina_RepMovtosPermanentes : ClsPaginas protected void LnkFormatoxls_Click(object sender, EventArgs e) { - GVGetMovtoPermanenteRep.ExportToExcelX("Movimientos Permanente"); + using (ClsNominas ObjGetM = new ClsNominas()) + { + //string fechaInicio = ""; + //string fechaFin = ""; + ObjGetM.GetMovtoPermanenteRepFechas(RcvePersonal, UsuarioActual.CveEmpresa, RcveTipo, RcveSaldo, RcveEstatus, RcveConcepto, fechaInicio.ToDateTime().ToString("yyyy-MM-dd"), fechaFin.ToDateTime().ToString("yyyy-MM-dd")); + ExportarExcel(ObjGetM.DtResultados); + + } + } + + protected void ExportarExcel(DataTable dt) + { + using (var wb = new XLWorkbook()) + { + var ws = wb.Worksheets.Add("Descuentos"); + + // Encabezados + ws.Cell(1, 1).Value = "Código"; + ws.Cell(1, 2).Value = "Nombre Completo"; + ws.Cell(1, 3).Value = "Descuento Acordado"; + ws.Cell(1, 4).Value = "Descuento Aplicado"; + ws.Cell(1, 5).Value = "Acumulado"; + + // Estilo del encabezado + var headerRange = ws.Range("A1:E1"); + headerRange.Style.Fill.BackgroundColor = XLColor.LightGray; + headerRange.Style.Font.Bold = true; + headerRange.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; + + int row = 2; + foreach (DataRow dr in dt.Rows) + { + int cveTipo = Convert.ToInt32(dr["CveTipo"]); + + string codigo = dr["Codigo"].ToString(); + string nombre = cveTipo == 0 ? dr["Concepto"].ToString() : dr["NombreCompleto"].ToString(); + decimal valor = Convert.ToDecimal(dr["Valor"]); + decimal aplicado = Convert.ToDecimal(dr["MontoAplicado"]); + decimal acumulado = Convert.ToDecimal(dr["Acumulado"]); + + ws.Cell(row, 1).Value = codigo; + ws.Cell(row, 2).Value = nombre; + ws.Cell(row, 3).Value = valor; + ws.Cell(row, 4).Value = aplicado; + ws.Cell(row, 5).Value = acumulado; + + // Formato numérico a columnas de dinero + ws.Cell(row, 3).Style.NumberFormat.Format = "#,##0.00"; + ws.Cell(row, 4).Style.NumberFormat.Format = "#,##0.00"; + ws.Cell(row, 5).Style.NumberFormat.Format = "#,##0.00"; + + // Color especial si CveTipo = 0 + if (cveTipo == 0) + { + var range = ws.Range(row, 1, row, 5); + range.Style.Fill.BackgroundColor = XLColor.FromArgb(221, 221, 221); + range.Style.Font.Bold = true; + } + + row++; + } + + // Ajustar columnas al contenido + ws.Columns().AdjustToContents(); + + // Exportar el archivo + using (MemoryStream ms = new MemoryStream()) + { + wb.SaveAs(ms); + Response.Clear(); + Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; + Response.AddHeader("content-disposition", "attachment;filename=Movimietnospermanenetea.xlsx"); + Response.BinaryWrite(ms.ToArray()); + Response.End(); + } + } + } + } \ No newline at end of file diff --git a/Nomina/ReportedeAcumulados.aspx.cs b/Nomina/ReportedeAcumulados.aspx.cs index 46c7eaf91..76d441dfe 100644 --- a/Nomina/ReportedeAcumulados.aspx.cs +++ b/Nomina/ReportedeAcumulados.aspx.cs @@ -96,6 +96,8 @@ public partial class Nomina_ReportedeAcumulados : ClsPaginas CargaTiposPeriodo(); CargarCentrosDeCosto(DdlProyecto, null, LblProyecto, LblSubProyeccto, "");//DdlSubProyecto divddlproyeto.Visible = DdlProyecto.Visible; + DdlTurno.DataSource = get_GlobalDTTurno(UsuarioActual.CveEmpresa); + DdlTurno.DataBind(); //CargarCentrosDeCosto(DdlProyecto As DropDownList, DdlSubProyecto As DropDownList, LthProyectoP As Label, LblSubProyecto As Label, Optional AplicaTodos As String = "Todos", Optional DdlSubProyectoMultiple As ListBox = Nothing) } } diff --git a/RH/CatPersonal.aspx b/RH/CatPersonal.aspx index cdb0add16..166750fe0 100644 --- a/RH/CatPersonal.aspx +++ b/RH/CatPersonal.aspx @@ -673,7 +673,12 @@ - + + Fecha Baja + + + + @@ -868,7 +873,9 @@
    - +
    + +
    + + + + diff --git a/RH/Personal.aspx.vb b/RH/Personal.aspx.vb index 89e45b992..bd787ed99 100644 --- a/RH/Personal.aspx.vb +++ b/RH/Personal.aspx.vb @@ -971,7 +971,7 @@ Partial Class RH_Personal CargaPaises() CargaRegistroPatronal() CargaOutSourcing() - + CargaDDlPersonalRefsReference() If Request("CvePersonal") IsNot Nothing AndAlso IsNumeric(Request("CvePersonal")) AndAlso Request("CvePersonal").ToEntero() > 0 Then ViewState("CvePersonal") = Request("CvePersonal") DdlFormapagovacaciones_SelectedIndexChanged(Nothing, Nothing) @@ -1007,6 +1007,7 @@ Partial Class RH_Personal CargaGvBitacora() CarcaConceptosNomina() CargaFonacot() + CargaPersonalRefs() End If ValidaDeudorAcreedor() @@ -2193,41 +2194,41 @@ Partial Class RH_Personal Fiscalizable:=If(chkNoFiscalizar.Checked, 0, 1), CveTipoTrabajador:=DdlTipoTrabajador.SelectedValue.ToEntero(), NetoPeriodo:=TxtNetoPeriodo.Text.ToDecimal, TipoSangre:=DdlTipoSangre.SelectedValue, CveSubTipoPeriodo:=CveSubTipoPeriodo, AreaGeografica:=DdlAreageografica.SelectedValue, CodigoDispersionVale:=TxtCodigoDispersionVale.Text.Trim) Then - 'Funcion usa RH Familiares - If UsuarioActual.Empresa.Funcionalidad(568) = "1" Then - ProcesaDTFamiliares(ObjPersonal) - End If - - ObjPersonal.AgroDepartamentoPersonalUp(UsuarioActual.CveEmpresa, DDlAgroDepartamento.SelectedValue.ToEntero(), CvePersonal, If(ChkCharolaForanea.Checked, 1, 0)) - - If Archivo.Exists Then - - If Not Directory.Exists(String.Format("{0}\RH\Personal", UsuarioActual.Empresa.Ruta)) Then Directory.CreateDirectory(String.Format("{0}\RH\Personal", UsuarioActual.Empresa.Ruta)) - - If File.Exists(String.Format("{0}RH\Personal\{1}", UsuarioActual.Empresa.Ruta, URL)) Then - File.Delete(String.Format("{0}RH\Personal\{1}", UsuarioActual.Empresa.Ruta, URL)) + 'Funcion usa RH Familiares + If UsuarioActual.Empresa.Funcionalidad(568) = "1" Then + ProcesaDTFamiliares(ObjPersonal) End If - System.IO.File.Move(String.Format("{0}Temp\RH\{1}", UsuarioActual.Empresa.Ruta, URL), String.Format("{0}RH\Personal\{1}", UsuarioActual.Empresa.Ruta, URL)) - End If + ObjPersonal.AgroDepartamentoPersonalUp(UsuarioActual.CveEmpresa, DDlAgroDepartamento.SelectedValue.ToEntero(), CvePersonal, If(ChkCharolaForanea.Checked, 1, 0)) - Mensaje = "Los cambios se guardaron correctamente." - 'If ViewState("CveEstatusOriginal").ToString() <> DdlEstatusPersonal.SelectedValue Then - ' 'Manda Mail con bajas - 'End If - Else - TieneError = True - End If - 'GUARDA ORGANIGRAMA - If Not TieneError Then - If Not ObjPersonal.AddUpdatePersonalOrganigrama(CvePersonal, If(DdlSupervisorOrganigrama.SelectedValue.ToEntero() = 0, CvePersonal, DdlSupervisorOrganigrama.SelectedValue.ToEntero())) Then + If Archivo.Exists Then + + If Not Directory.Exists(String.Format("{0}\RH\Personal", UsuarioActual.Empresa.Ruta)) Then Directory.CreateDirectory(String.Format("{0}\RH\Personal", UsuarioActual.Empresa.Ruta)) + + If File.Exists(String.Format("{0}RH\Personal\{1}", UsuarioActual.Empresa.Ruta, URL)) Then + File.Delete(String.Format("{0}RH\Personal\{1}", UsuarioActual.Empresa.Ruta, URL)) + End If + System.IO.File.Move(String.Format("{0}Temp\RH\{1}", UsuarioActual.Empresa.Ruta, URL), String.Format("{0}RH\Personal\{1}", UsuarioActual.Empresa.Ruta, URL)) + + End If + + Mensaje = "Los cambios se guardaron correctamente." + 'If ViewState("CveEstatusOriginal").ToString() <> DdlEstatusPersonal.SelectedValue Then + ' 'Manda Mail con bajas + 'End If + Else TieneError = True End If + 'GUARDA ORGANIGRAMA + If Not TieneError Then + If Not ObjPersonal.AddUpdatePersonalOrganigrama(CvePersonal, If(DdlSupervisorOrganigrama.SelectedValue.ToEntero() = 0, CvePersonal, DdlSupervisorOrganigrama.SelectedValue.ToEntero())) Then + TieneError = True + End If + End If + End If - End If - - If TieneError Then + If TieneError Then ObjPersonal.RollBack() Alert("Ocurrio un error guardar el Personal. Por favor vuelva a intentar.", TipoMensaje.ToastAdventencia) Else @@ -7320,8 +7321,14 @@ Partial Class RH_Personal strfin = String.Format(",[FechaFin]='{0:yyyy-MM-dd}'", fechafin) End If + Dim finicio As String = TxtFechaInicioUA.Text.ToDateTime().ToString("yyyy-MM-dd") + Dim ffin As String = TxtFechaFinUA.Text.ToDateTime().ToString("yyyy-MM-dd") Using objrh As New ClsRH() - If (objrh.PersonalAltasUpFechas(CvePersonalAltas, TxtFechaInicioUA.Text.ToDateTime().ToString("yyyy-MM-dd"), TxtFechaFinUA.Text.ToDateTime().ToString("yyyy-MM-dd"), CvePersonal, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario)) Then + If Not (objrh.ValidaFechaIngresoVSNominas(CvePersonal, CvePersonalAltas, 0, finicio, ffin)) Then + Alert("La fecha de ingreso o de fin no puede ser modificada, ya que existen registros de nómina autorizados que se encuentran dentro del periodo definido.", TipoMensaje.MsgAdvertencia) + + End If + If (objrh.PersonalAltasUpFechas(CvePersonalAltas, finicio, ffin, CvePersonal, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario)) Then If objrh.GetPersonalAltas(CvePersonal) Then GvPersonalAltas.DataSource = objrh.DtResultados GvPersonalAltas.DataBind() @@ -8307,7 +8314,70 @@ Partial Class RH_Personal End Sub + Protected Sub CargaPersonalRefs() + Dim ObjPers As New ClsNominas() + ObjPers.PersonalCamposValoresGet(-1, CvePersonal) + GVPersonalRefs.DataSource = ObjPers.DtResultados + ObjPers.Dispose() + GVPersonalRefs.DataBind() + UPModalPers.Update() + End Sub + Protected Sub CargaDDlPersonalRefsReference() + Dim ObjPers As New ClsNominas() + ObjPers.PersonalCamposGET() + DdlPersreferencia.DataSource = ObjPers.DtResultados + ObjPers.Dispose() + DdlPersreferencia.DataBind() + UPModalPers.Update() + End Sub + Protected Sub LimpiaPersonalRefs() + DdlPersreferencia.SelectedIndex = 0 + TxtPersvalor.Text = "" + UPModalPers.Update() + End Sub + Protected Sub LnkMostrarCamposValor_Click(sender As Object, e As EventArgs) + ltlPerstitulo.Text = "Campos valores" + LimpiaPersonalRefs() + RegistraScript("$('#DModalPersonalRefs').modal()") + BtnPersADD.Visible = False + PanelMostrarpersonalcampos.Visible = True + PanelADDpersonalcampos.Visible = False + UPModalPers.Update() + End Sub + Protected Sub LnkAgregarPers_Click(sender As Object, e As EventArgs) + 'RegistraScript("$('#DModalPersonalRefs').modal()") + ltlPerstitulo.Text = "Agregar Campos Valores" + LimpiaPersonalRefs() + BtnPersADD.Visible = True + PanelADDpersonalcampos.Visible = True + PanelMostrarpersonalcampos.Visible = False + UPModalPers.Update() + End Sub + Protected Sub BtnPersADD_Click(sender As Object, e As EventArgs) + + Dim cveReferencia As Int32 = DdlPersreferencia.SelectedValue.ToEntero() + Dim valor As Decimal = TxtPersvalor.Text.ToDecimal() + Dim ObjPers As New ClsNominas() + Dim Continuar As Boolean = ObjPers.PersonalCamposValoresAddUp(cveReferencia, CvePersonal, valor) + ObjPers.Dispose() + If (Continuar) Then + LimpiaPersonalRefs() + UPModalPers.Update() + Alert("El campo valor se ha agregado") + End If + End Sub + Protected Sub LnkEliminarPers_Click(sender As Object, e As EventArgs) + Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) + Dim CcveReferencia As Integer = gvRow.DataKey("CveReferencia").ToEntero() + Dim ObjPers As New ClsNominas() + Dim Continuar As Boolean = ObjPers.PersonalCamposValoresRemove(CcveReferencia, CvePersonal) + ObjPers.Dispose() + If (Continuar) Then + CargaPersonalRefs() + Alert("El campo valor se ha eliminado") + End If + End Sub 'Protected Sub ChkPagoElectronicoGrupos_CheckedChanged(sender As Object, e As EventArgs) ' If ChkPagoElectronicoGrupos.Checked Then diff --git a/Ventas/ClientesAbonar.aspx.vb b/Ventas/ClientesAbonar.aspx.vb index c96b48497..9fea22034 100644 --- a/Ventas/ClientesAbonar.aspx.vb +++ b/Ventas/ClientesAbonar.aspx.vb @@ -8,7 +8,6 @@ Imports Extensiones Partial Class Ventas_ClientesAbonar Inherits ClsPaginas - #Region "Propiedades" Private Property CveCorte As Integer Get @@ -834,7 +833,7 @@ Partial Class Ventas_ClientesAbonar Exit Sub End If - If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso RblTipoPago.SelectedValue = "3" Then + If RblTipoPago.SelectedValue = "3" Then Dim DtSaldo As DataTable = Nothing Dim ObjMovto As New ClsMovimientos If ObjMovto.GetIngresosSaldosDetalle(CveCliente, -1, UsuarioActual.CveEmpresa) Then @@ -859,10 +858,17 @@ Partial Class Ventas_ClientesAbonar Next ImporteAbonar += TxtAnticipo.Text.ToDecimal() - If ImporteRef.RoundSQL(2) <> ImporteAbonar.RoundSQL(2) Then + If ImporteRef.RoundSQL(2) < ImporteAbonar.RoundSQL(2) Then + Alert("El importe abonado es mayor al saldo del ingreso por comprobar, especifique un valor correcto.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso ImporteRef.RoundSQL(2) <> ImporteAbonar.RoundSQL(2) Then Alert("El importe abonado es diferente al saldo del ingreso", TipoMensaje.MsgAdvertencia) Exit Sub End If + + Else Alert("No se pudieron validar los saldos", TipoMensaje.MsgError) Exit Sub diff --git a/Ventas/PV.aspx.vb b/Ventas/PV.aspx.vb index 07cea1e59..20af6ed08 100644 --- a/Ventas/PV.aspx.vb +++ b/Ventas/PV.aspx.vb @@ -6726,10 +6726,10 @@ Partial Class PV Exit Sub End If - If Not TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlRegimenFiscalCliente.SelectedValue = "11" Then - Alert("El Regimen fiscal del cliente no puede ser '616 - Sin obligaciones fiscales' si no se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If + 'If Not TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlRegimenFiscalCliente.SelectedValue = "11" Then + ' Alert("El Regimen fiscal del cliente no puede ser '616 - Sin obligaciones fiscales' si no se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia) + ' Exit Sub + 'End If If Not TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlUsoCFDICliente.SelectedValue = "23" Then Alert("El uso cfdi del cliente no puede ser 'S01 - Sin efectos fiscales' si no se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia) diff --git a/Ventas/RepVentas.aspx.vb b/Ventas/RepVentas.aspx.vb index be58e771b..00be9fcf2 100644 --- a/Ventas/RepVentas.aspx.vb +++ b/Ventas/RepVentas.aspx.vb @@ -111,14 +111,12 @@ Partial Class Ventas_RepVentas Opcion = "-1" End If - If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso UsuarioActual.TienePermisoProceso(386) Then + If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso (UsuarioActual.TienePermisoProceso(386) OrElse UsuarioActual.CveUsuario.Contiene(4159)) Then LiSabana.Visible = True - DdlProveedores.setEsWebService(True) DdlProveedores.Attributes.Add("data-metodo", "getproveedores") DdlProveedores.SelectedText = "Todos" DdlProveedores.SelectedValue = "-1" - End If If UsuarioActual.CveEmpresa = 72 AndAlso UsuarioActual.CveUsuario.Contiene(100, 1614, 1517) Then diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 6a1f26e93..a5be3fcbc 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -26324,10 +26324,10 @@ Partial Class Ventas Exit Sub End If - If Not TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlRegimenFiscalCliente.SelectedValue = "11" Then - Alert("El Regimen fiscal del cliente no puede ser '616 - Sin obligaciones fiscales' si no se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If + 'If Not TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlRegimenFiscalCliente.SelectedValue = "11" Then + ' Alert("El Regimen fiscal del cliente no puede ser '616 - Sin obligaciones fiscales' si no se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia) + ' Exit Sub + 'End If 'If Not TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlUsoCFDICliente.SelectedValue = "23" Then ' Alert("El uso cfdi del cliente no puede ser 'S01 - Sin efectos fiscales' si no se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia) @@ -39567,10 +39567,9 @@ Partial Class Ventas TxtFechaPago.Enabled = False imgCalendario.Visible = False - - TxtOrdenCompra.Text = RowLinea("LineaAdicionalComercializador").ToString() End If + TxtOrdenCompra.Text = RowLinea("LineaAdicionalComercializador").ToString() Me.CveCategoriaLineaAdicional = RowLinea("CveCategoria").ToString().ToEntero() Me.CveMonedaLineaAdicional = RowLinea("CveMoneda").ToString().ToEntero() Me.SaldoLineaAdicional = RowLinea("Saldo").ToString().ToDecimal() @@ -39693,25 +39692,15 @@ Partial Class Ventas End If End If - - Dim OrdenCompra As String = "-1" - - If UsuarioActual.CveEmpresa = 119 Then - Dim arrayStr As String() = DdlLineaAdicional.SelectedItem.Text.Split(":"c) - If arrayStr.Length > 0 Then - Dim OrdenCompraTmp As String = arrayStr(0).Replace("IMP", "").Trim - If TxtOrdenCompra.Text.Trim.Length > 0 Then - If OrdenCompraTmp.ToUpper <> TxtOrdenCompra.Text.Trim.ToUpper Then - OrdenCompra = $"{TxtOrdenCompra.Text}, {OrdenCompraTmp}" - End If - Else - OrdenCompra = $"{OrdenCompraTmp}" - End If - End If - End If + Dim OrdenCompra As String = TxtOrdenCompra.Text Using ObjVentas As New ClsVentas If ObjVentas.UpdateVentaLineaAdicional(DdlLineaAdicional.SelectedValue.ToEntero(), CveVenta, "", 1, UsuarioActual.CveEmpresa, OrdenCompra:=OrdenCompra) Then + Try + GenerarPDFVenta(CveVenta, AplicaPagare:="1", GuardarPDF:=True, RegenerarPDF:=True, DescargarArchivo:=False) + Catch ex As Exception + + End Try Alert("Se actualizó la linea adicional de crédito de la venta") End If End Using