From a3add6893c0462fcc3bf4119f21094d3dfd70c5c Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 20 May 2025 17:14:02 -0700 Subject: [PATCH 01/21] - mejora --- Contabilidad/ContabilidadElectronica.aspx.vb | 155 ++++++++++++++----- 1 file changed, 113 insertions(+), 42 deletions(-) diff --git a/Contabilidad/ContabilidadElectronica.aspx.vb b/Contabilidad/ContabilidadElectronica.aspx.vb index 6774efaa5..126988874 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 @@ -95,7 +106,7 @@ Partial Class Contabilidad_ContabilidadElectronica 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 @@ -112,9 +123,6 @@ Partial Class Contabilidad_ContabilidadElectronica Str.AppendFormat("RFC=""{0}"" ", UsuarioActual.Empresa.RFC) Str.AppendFormat("Mes=""{0}"" ", DdlPeriodo.SelectedValue) Str.AppendFormat("Anio=""{0}"" ", DdlEjercicio.SelectedValue) - Str.AppendFormat("Sello=""{0}"" ", "123") - Str.AppendFormat("noCertificado=""{0}"" ", "123") - Str.AppendFormat("Certificado=""{0}"" ", "1234567890") Str.Append("xmlns:catalogocuentas=""www.sat.gob.mx/esquemas/ContabilidadE/1_3/CatalogoCuentas"">") 'DETALLES @@ -147,21 +155,15 @@ 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 - - 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() + If System.IO.File.Exists(ArchivoCuentas) Then System.IO.File.Delete(ArchivoCuentas) 'DESCARGA XML Dim DescargaZIP As Ionic.Zip.ZipFile = New Ionic.Zip.ZipFile() - If IO.File.Exists(ArchivoCuentas) Then - DescargaZIP.AddFile(ArchivoCuentas, "") - End If + 'generar el sello + SellarXML(Str.ToString, ArchivoCuentas, 1) + + If IO.File.Exists(ArchivoCuentas) Then DescargaZIP.AddFile(ArchivoCuentas, "") 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))) @@ -172,6 +174,84 @@ Partial Class Contabilidad_ContabilidadElectronica 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 +266,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 +284,23 @@ Partial Class Contabilidad_ContabilidadElectronica 'CABECERA Str.Append("") - Str.Append("") - + Str.AppendFormat("FechaModBal=""{0}"" >", FechaF.ToString("yyyy-MM-dd")) 'DETALLES For Each Dr As DataRow In DtCuentas.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,14 +328,10 @@ 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() - 'DESCARGA XML Dim DescargaZIP As Ionic.Zip.ZipFile = New Ionic.Zip.ZipFile() + 'generar el sello + SellarXML(Str.ToString, ArchivoBalanza, 2) If IO.File.Exists(ArchivoBalanza) Then DescargaZIP.AddFile(ArchivoBalanza, "") @@ -275,6 +348,4 @@ Partial Class Contabilidad_ContabilidadElectronica #End Region - - End Class From e6a85ef2ba4a02675804634af407ed5fbe7cbc5d Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 20 May 2025 17:14:13 -0700 Subject: [PATCH 02/21] - personalizar fecha de baja --- RH/CatPersonal.aspx | 11 +++++++++-- RH/CatPersonal.aspx.vb | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) 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 @@
- +
+ +
-
+
@@ -289,7 +289,7 @@
-
+ From cd28b863f3fc03af6ede7f58d8f9d380ba2eef8c Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 21 May 2025 14:45:46 -0700 Subject: [PATCH 04/21] - --- Ventas/Ventas.aspx.vb | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) 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 From 423d8fd60d0796b04ce42245879e852672efa706 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Thu, 22 May 2025 11:06:18 -0700 Subject: [PATCH 05/21] AF Documentos, AF fecha iamgen, Correciones eFacturas solicitudes pdf sobre escritura --- AF/AF.aspx | 120 +++- AF/AF.aspx.vb | 546 +++++++++++++++++- AF/CatAF.aspx | 2 +- AF/CatAF.aspx.vb | 3 + App_Code/ClsEdocumentacion.vb | 12 +- Bancos/CuentasBancariasDetalle.aspx.vb | 3 +- Compras/eFacturas.aspx.vb | 8 +- .../26_CompromisoAsistenciaISSPE.docx | Bin 12283 -> 0 bytes General/CatDocumentacionTipo.aspx | 1 + 9 files changed, 655 insertions(+), 40 deletions(-) delete mode 100644 Empresas/7/Formatos/26_CompromisoAsistenciaISSPE.docx diff --git a/AF/AF.aspx b/AF/AF.aspx index 16220043b..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" %> + +   + + + +
  • @@ -1012,7 +1018,7 @@ - @@ -1591,9 +1597,8 @@ - -
    IMAGEN
    -
    <%# Container.ItemIndex + 1 %>
    + +
    <%# Container.ItemIndex + 1 %> - <%# CType(Eval("FechaIng"), DateTime).ToString("dd/MM/yyyy") %>
    @@ -3753,7 +3758,108 @@ - + <%--modal parametros documentos--%> + + + <%--modalupluad doc--%> + + <%-- --%> @@ -4169,6 +4275,7 @@ setTimeout(function () { startTimer(request); }, 30000); // callback } + @@ -4183,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 45d284ece..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,39 +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 - 'Private Sub CargaDocumentacion() + 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 - ' If CveActivoFijo > 0 Then - ' Dim objRH As New ClsEdocumentacion() + 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 - ' If objRH.DocumentacionElectronicaGet(CvePersonal, -1, -1, UsuarioActual.Empresa.CveEmpresa, -1) Then - ' DTDocumentacion = objRH.DtResultados - ' End If + 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 - ' If DTDocumentacion.FiltraParametros(" CveDocumentacionTipo = 7 ").Rows.Count > 0 Then - ' GvDocumentosFirma.DataSource = DTDocumentacion.FiltraParametros(" CveDocumentacionTipo = 7 ") - ' Else - ' GvDocumentosFirma.DataSource = Nothing - ' End If + 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 DTDocumentacion.FiltraParametros(" Modulo = 7 ").Rows.Count > 0 Then - ' GVMaterialidad.DataSource = DTDocumentacion.FiltraParametros(" Modulo = 7 ") - ' Else - ' GVMaterialidad.DataSource = Nothing - ' End If + If e.Row.RowType = DataControlRowType.DataRow Then - ' GVMaterialidad.DataBind() - ' GvDocumentosFirma.DataBind() + 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 - ' UpMaterialidad.Update() - ' UPGvDocumentosFirma.Update() - ' UpGvDocumentosFirma2.Update() - ' End If - 'End Sub End Class \ No newline at end of file diff --git a/AF/CatAF.aspx b/AF/CatAF.aspx index 93612f568..5feeabdb5 100644 --- a/AF/CatAF.aspx +++ b/AF/CatAF.aspx @@ -203,7 +203,7 @@ -
    +
    Tipo Grupo:
    diff --git a/AF/CatAF.aspx.vb b/AF/CatAF.aspx.vb index c35689853..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 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/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/Compras/eFacturas.aspx.vb b/Compras/eFacturas.aspx.vb index eda8a2cb2..7176a8e4e 100644 --- a/Compras/eFacturas.aspx.vb +++ b/Compras/eFacturas.aspx.vb @@ -1758,14 +1758,16 @@ Partial Class Compras_eFacturas If RutaPDF = "" Then - Dim Hilo As New System.Threading.Thread(Sub() ProcesarPDF(UsuarioActual, a, FF)) + '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(RutaPDF) Then + If Not File.Exists(PDfDestino) Then + Dim Hilo As New System.Threading.Thread(Sub() ProcesarPDF(UsuarioActual, a, FF)) Hilo.Start() End If End If @@ -3050,7 +3052,7 @@ Partial Class Compras_eFacturas End If If SeVerifico Then - SubirFacturas(ListComprimidos, ListXML, ListPDF, Validada:=1, SobreEscribirPDFSiExiste:=False) + SubirFacturas(ListComprimidos, ListXML, ListPDF, Validada:=1,SobreEscribirPDFSiExiste:=False) End If 'If UsuarioActual.CveRol = 1 Then diff --git a/Empresas/7/Formatos/26_CompromisoAsistenciaISSPE.docx b/Empresas/7/Formatos/26_CompromisoAsistenciaISSPE.docx deleted file mode 100644 index e4f718eb82f7b76454ef5eca2afd7035d92c259c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12283 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 U0j9^#{9!~u2bk0p^gr+Z4?R7Clientes Proveedor <%-- Nota: EL tipo Tres es tipo Auditoria de documentos de proveedor usadon el portal prveedor y --%> Inicio + Activos Fijos From 2b642d2872442d6403642c505f5ce16a291dc1c5 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 23 May 2025 08:59:20 -0700 Subject: [PATCH 06/21] =?UTF-8?q?--=20ajustes=20para=20validaci=C3=B3n=20y?= =?UTF-8?q?=20carga=20de=20txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Contabilidad/ContabilidadElectronica.aspx | 31 ++++-- Contabilidad/ContabilidadElectronica.aspx.vb | 100 +++++++++++++------ 2 files changed, 89 insertions(+), 42 deletions(-) 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 126988874..e3e1494bf 100644 --- a/Contabilidad/ContabilidadElectronica.aspx.vb +++ b/Contabilidad/ContabilidadElectronica.aspx.vb @@ -102,7 +102,7 @@ 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 @@ -119,11 +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 @@ -134,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) @@ -156,20 +156,30 @@ Partial Class Contabilidad_ContabilidadElectronica 'SOBREESCRIBE 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() + '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) - - If IO.File.Exists(ArchivoCuentas) Then DescargaZIP.AddFile(ArchivoCuentas, "") - - 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() - + '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 @@ -291,13 +301,15 @@ Partial Class Contabilidad_ContabilidadElectronica Str.Append("Version=""1.3"" ") Str.AppendFormat("RFC=""{0}"" ", UsuarioActual.Empresa.RFC) - Str.AppendFormat("Mes=""{0}"" ", DdlPeriodo.SelectedValue) + Str.AppendFormat("Mes=""{0}"" ", DdlPeriodo.SelectedValue.PadLeft(2, "0"c)) Str.AppendFormat("Anio=""{0}"" ", DdlEjercicio.SelectedValue) - Str.AppendFormat("TipoEnvio=""{0}"" ", "C") - Str.AppendFormat("FechaModBal=""{0}"" >", FechaF.ToString("yyyy-MM-dd")) + 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 + For Each Dr As DataRow In DtCuentas.FiltraParametros("Codigo <> ''").Rows Str.Append(" Date: Fri, 23 May 2025 09:00:10 -0700 Subject: [PATCH 07/21] =?UTF-8?q?--=20mejora=20para=20aplicaci=C3=B3n=20de?= =?UTF-8?q?=20ixc,=20que=20no=20se=20paguen=20en=20exceso?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/ClientesAbonar.aspx.vb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Ventas/ClientesAbonar.aspx.vb b/Ventas/ClientesAbonar.aspx.vb index dc316c96b..76f76bf2b 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 @@ -805,7 +804,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 @@ -830,10 +829,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 From 1aa65d951df82b596cc45476351639ab3197d602 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 23 May 2025 09:00:26 -0700 Subject: [PATCH 08/21] -- unificar criterios --- Ventas/PV.aspx.vb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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) From bca08d89e94eab2f5b1b076f52fa9c714c597e45 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 23 May 2025 09:00:51 -0700 Subject: [PATCH 09/21] =?UTF-8?q?--=20mejoras=20en=20c=C3=B3digo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Inventarios/Kardex.aspx | 2 +- Inventarios/Kardex.aspx.vb | 16 ++++++---------- 2 files changed, 7 insertions(+), 11 deletions(-) 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
    Date: Fri, 23 May 2025 09:01:36 -0700 Subject: [PATCH 10/21] -- mejora en movtos permanentes --- Nomina/Nomina.aspx | 16 +++++++--------- Nomina/Nomina.aspx.cs | 24 +++++++----------------- 2 files changed, 14 insertions(+), 26 deletions(-) diff --git a/Nomina/Nomina.aspx b/Nomina/Nomina.aspx index 8b7549e3f..753f2e6f5 100644 --- a/Nomina/Nomina.aspx +++ b/Nomina/Nomina.aspx @@ -1446,16 +1446,14 @@
    -
    -
    - +
    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 From 6dc3b8ee227e37b51b5be196aff784adf808a549 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 23 May 2025 09:01:55 -0700 Subject: [PATCH 11/21] -- carga de turnos --- Nomina/ReportedeAcumulados.aspx.cs | 2 ++ 1 file changed, 2 insertions(+) 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) } } From e49f6e0bd45b768552ac85aaefa5db2acfe36f58 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 23 May 2025 09:17:37 -0700 Subject: [PATCH 12/21] -- cambio a globaldtrhpersonal --- Nomina/RepMovtosPermanentes.aspx.cs | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/Nomina/RepMovtosPermanentes.aspx.cs b/Nomina/RepMovtosPermanentes.aspx.cs index 07040324f..0cb5b1d2c 100644 --- a/Nomina/RepMovtosPermanentes.aspx.cs +++ b/Nomina/RepMovtosPermanentes.aspx.cs @@ -68,20 +68,15 @@ 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(); } From f73455c3d7058a9a4d5d546124f02b85d1226044 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 23 May 2025 09:17:52 -0700 Subject: [PATCH 13/21] -- usuario fijo --- Ventas/RepVentas.aspx.vb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) 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 From bbba47da95d30331d96ae95c96f9629cf04dd68a Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 23 May 2025 10:45:35 -0700 Subject: [PATCH 14/21] -- usuarios JM,RM,OI,JP,JC, que se cambie al Asistencia.. --- LogIn.aspx.vb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/LogIn.aspx.vb b/LogIn.aspx.vb index 373b95ad4..9668b363a 100644 --- a/LogIn.aspx.vb +++ b/LogIn.aspx.vb @@ -201,6 +201,14 @@ Partial Class LogIn Usuario = Nothing End If + If Usuario IsNot Nothing Then '' consideración especial, para el Grupo Adsistemas + If Usuario.CveUsuario.Contiene(2, 93, 1537, 1538, 1360) Then 'JM,RM,OI,JP,JC cambia la cuenta por la de un admin + Dim tUsuario As Usuario = ObjUsuario.GetUsuarioDetalle(100, Usuario.CveEmpresa) 'ObjUsuario.ValidaUsuario(txtUsuario.Text, Encripta(TxtContraseña.Text.Trim), GrupoEmpresa:=tGrupoEmpresa) + tUsuario = ObjUsuario.ValidaUsuario(tUsuario.Usuario, tUsuario.Contraseña, GrupoEmpresa:=tGrupoEmpresa) + If tUsuario IsNot Nothing Then Usuario = tUsuario + End If + End If + ADSSessionConfig.sessionUser = Usuario ADSSessionConfig.sessionDpage = False ObjUsuario.Dispose() From 88c58205d90830a4bba9490c98ae6531d93965e9 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 23 May 2025 12:18:07 -0700 Subject: [PATCH 15/21] =?UTF-8?q?--=20edici=C3=B3n=20de=20SMS=20-=20ed=20m?= =?UTF-8?q?=C3=A9dica?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/Ventas.aspx.vb | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index a5be3fcbc..086decbcd 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -6043,7 +6043,11 @@ Partial Class Ventas 'ACTIVA EDITAR 'SOLO LA PUEDE EDITAR CON PROCESO | DEBE TENER CONCEPTOS PENDIENTES DE FACTURAR - If (UsuarioActual.TienePermisoProceso(202) OrElse UsuarioActual.TienePermisoProceso(302)) And TmpDT.SUM("CantidadFacturadaRem") < TmpDT.SUM("Cantidad") Then + If DbRowVenta("TipoDocto").ToString = "Rem" AndAlso (UsuarioActual.TienePermisoProceso(202) OrElse UsuarioActual.TienePermisoProceso(302)) AndAlso TmpDT.SUM("CantidadFacturadaRem") < TmpDT.SUM("Cantidad") Then + BtnPermisoEditarRemision.Visible = True + End If + + If DbRowVenta("TipoDocto").ToString = "Rem" AndAlso (UsuarioActual.TienePermisoProceso(302)) Then BtnPermisoEditarRemision.Visible = True End If @@ -8857,7 +8861,7 @@ Partial Class Ventas If Not EsCreaApartirDe Then 'Si es una devolucion - If NuevaFactura = 0 Then + If NuevaFactura <= 0 Then e.Row.FCDropDownList("DdlUnidadMedida").Enabled = False e.Row.FCDropDownList("DdlClasificacion").Enabled = False e.Row.FCDropDownLost("DdlPS").Enabled = False @@ -8969,10 +8973,14 @@ Partial Class Ventas End If 'cuando ya tiene una salida, no se puede cambiar el producto - If e.Row.DBCampo("CantidadInventario").ToDouble > 0 Then + If e.Row.DBCampo("CantidadInventario").ToDouble > 0 OrElse e.Row.DBCampo("CantidadFacturadaRem").ToDecimal > 0 Then e.Row.FCDropDownList("DdlClasificacion").Enabled = False e.Row.FCDropDownLost("DdlPS").Enabled = False e.Row.FCDropDownLost("DdlPS").ddlWS.Attributes.Add("disabled", "disabled") + If e.Row.DBCampo("CantidadFacturadaRem").ToDecimal > 0 AndAlso SaldoVenta = 0 Then + e.Row.FCTextBox("TxtPrecio").Enabled = False + e.Row.FCTextBox("TxtDescuento").Enabled = False + End If End If e.Row.FCTextBox("TxtTiempoEntrega").Enabled = False @@ -9075,6 +9083,16 @@ Partial Class Ventas e.Row.FCLinkButton("imgD").Visible = False End If End If + 'EN SMS NO DEBE PODER EDITAR LOS PS + If UsuarioActual.Empresa.Funcionalidad(578) = "1" Then + If ModalidadEdicion Then + e.Row.FCLinkButton("imgE").Visible = True + e.Row.FCLinkButton("imgD").Visible = False + Else + e.Row.FCLinkButton("imgE").Visible = False + e.Row.FCLinkButton("imgD").Visible = False + End If + End If End If If (UsuarioActual.Empresa.Funcionalidad(360) = "1" OrElse UsuarioActual.Empresa.Funcionalidad(109) = "1") AndAlso e.Row.DBCampo("CvePrecioLista").ToEntero() > 0 Then From c2476adadaddb0d648fb5b02b11d39816057b77b Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Fri, 23 May 2025 19:22:11 -0700 Subject: [PATCH 16/21] --Validacion Tipo Operacion --- Contabilidad/RepIVA.aspx | 34 +++-- Contabilidad/RepIVA.aspx.cs | 240 +++++++++++++++++++----------------- 2 files changed, 151 insertions(+), 123 deletions(-) diff --git a/Contabilidad/RepIVA.aspx b/Contabilidad/RepIVA.aspx index 334824b57..1ce1ea9f3 100644 --- a/Contabilidad/RepIVA.aspx +++ b/Contabilidad/RepIVA.aspx @@ -30,9 +30,9 @@
  • Generar DIOT
  • -
  • - Excel DIOT -
  • +
  • + Excel DIOT +
  • @@ -174,7 +174,7 @@

    IEPS por Porcentaje

    + OnRowDataBound="GvIEPSA_RowDataBound" DataKeyNames="PorcentajeIEPS"> @@ -187,8 +187,8 @@

    IVA por Porcentaje

    - + OnRowDataBound="GvIVAA_RowDataBound" DataKeyNames="PorcentajeIVA"> + @@ -213,7 +213,7 @@ - <%-- --%> + <%-- --%> SubTotal
    16%
    @@ -222,7 +222,7 @@
    - + SubTotal
    Imp. 16%
    @@ -231,16 +231,16 @@
    - <%-- --%> + <%-- --%> SubTotal
    8%
    - +
    - <%-- --%> + <%-- --%> SubTotal
    0%
    @@ -318,6 +318,14 @@
    + + + SubTotal
    Imp. No Tan.16%
    +
    + + + +
    @@ -325,7 +333,7 @@

    IVA por Porcentaje

    + OnRowDataBound="GvIVA2_RowDataBound" DataKeyNames="PorcentajeIVA"> @@ -337,7 +345,7 @@

    Ret IVA

    + OnRowDataBound="GvRetIVA_RowDataBound" DataKeyNames="TipoRetIVA"> diff --git a/Contabilidad/RepIVA.aspx.cs b/Contabilidad/RepIVA.aspx.cs index b78bd060f..8b761791e 100644 --- a/Contabilidad/RepIVA.aspx.cs +++ b/Contabilidad/RepIVA.aspx.cs @@ -333,124 +333,152 @@ public partial class Contabilidad_RepIVA : ClsPaginas protected void LnkTxtDIOT_Click(object sender, EventArgs e) { - ClsContabilidad Objconta = new ClsContabilidad(); StringBuilder SBDIOT = new StringBuilder(); - int Conciliado = DdlTipoMovto.SelectedValue.ToEntero(); + int Conciliado = DdlTipoMovto.SelectedValue.ToEntero(); - if (Objconta.GetRepIVA(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), 2, UsuarioActual.CveUsuario, -1, Conciliado, UsuarioActual.CveEmpresa, TipoCambio, TCEspecifico)) + using (var Objconta = new ClsContabilidad()) { - if (txtFechaI.Text.ToDate() < "2024/12/31".ToDate()) // años anteriores al enero 2025 + if (Objconta.GetRepIVA(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), 2, UsuarioActual.CveUsuario, -1, Conciliado, UsuarioActual.CveEmpresa, TipoCambio, TCEspecifico)) { - foreach (DataRow Drow in Objconta.DtResultados.FiltraParametros("CveCompra is null and CveProveedor > 0 and SubTotal >= 1 ").Rows) // and(IVA > 1 OR IEPS > 0) + if (txtFechaI.Text.ToDate() < "2024/12/31".ToDate()) // años anteriores al enero 2025 { - SBDIOT.AppendLine( - Drow["TipoTercero"].ToString() + "|" + - Drow["TipoOperacion"].ToString() + "|" + - Drow["RFC"].ToString() + "|" + - Drow["NumeroIDFiscal"].ToString() + "|" + - Drow["NombreExtranjero"].ToString() + "|" + - Drow["PaisResidencia"].ToString() + "|" + - Drow["Nacionalidad"].ToString() + "|" + - LV(Drow["valorActos1516"].ToString()) + "|" + - LV(Drow["valorActos15"].ToString()) + "|" + - LV(Drow["ValorIvaNo1516"].ToString()) + "|" + + foreach (DataRow Drow in Objconta.DtResultados.FiltraParametros("CveCompra is null and CveProveedor > 0 and SubTotal >= 1 ").Rows) // and(IVA > 1 OR IEPS > 0) + { + SBDIOT.AppendLine( + Drow["TipoTercero"].ToString() + "|" + + Drow["TipoOperacion"].ToString() + "|" + + Drow["RFC"].ToString() + "|" + + Drow["NumeroIDFiscal"].ToString() + "|" + + Drow["NombreExtranjero"].ToString() + "|" + + Drow["PaisResidencia"].ToString() + "|" + + Drow["Nacionalidad"].ToString() + "|" + + LV(Drow["valorActos1516"].ToString()) + "|" + + LV(Drow["valorActos15"].ToString()) + "|" + + LV(Drow["ValorIvaNo1516"].ToString()) + "|" + - LV(Drow["valorActos1011"].ToString()) + "|" + - LV(Drow["valorActos10"].ToString()) + "|" + - LV(Drow["valorActosImp8"].ToString()) + "|" + - LV(Drow["ValorIvaNo10"].ToString()) + "|" + - LV(Drow["ValorIvaNo08"].ToString()) + "|" + + LV(Drow["valorActos1011"].ToString()) + "|" + + LV(Drow["valorActos10"].ToString()) + "|" + + LV(Drow["valorActosImp8"].ToString()) + "|" + + LV(Drow["ValorIvaNo10"].ToString()) + "|" + + LV(Drow["ValorIvaNo08"].ToString()) + "|" + - LV(Drow["valorActosImp1516"].ToString()) + "|" + - LV(Drow["ValorIvaNoImp16"].ToString()) + "|" + + LV(Drow["valorActosImp1516"].ToString()) + "|" + + LV(Drow["ValorIvaNoImp16"].ToString()) + "|" + - LV(Drow["valorActosImp10"].ToString()) + "|" + - LV(Drow["ValorIvaNoImp10"].ToString()) + "|" + + LV(Drow["valorActosImp10"].ToString()) + "|" + + LV(Drow["ValorIvaNoImp10"].ToString()) + "|" + - LV(Drow["IvaExentoImpo"].ToString()) + "|" + - LV(Drow["IVACero"].ToString()) + "|" + - LV(Drow["IvaExento"].ToString()) + "|" + - LV(Drow["IvaRetenido"].ToString()) + "|" + - LV(Drow["IvaDevoluciones"].ToString()) + "|"); + LV(Drow["IvaExentoImpo"].ToString()) + "|" + + LV(Drow["IVACero"].ToString()) + "|" + + LV(Drow["IvaExento"].ToString()) + "|" + + LV(Drow["IvaRetenido"].ToString()) + "|" + + LV(Drow["IvaDevoluciones"].ToString()) + "|"); + } } - } - else - { - DataTable dtt = new DataTable(); - dtt = Objconta.DtResultados.FiltraParametros("CveCompra is null and CveProveedor > 0 AND ( ActosFN > 0 OR ActosFS > 0 OR Actos16 > 0 OR ActosImp16 > 0 OR ActosImpNotan16 > 0 OR DATasa0 > 0 OR DANoObjetoTN > 0 OR DANoObjetoNoTN > 0 OR NoAcredFN > 0 OR NoAcredNoFN > 0 OR NoAcredNo16 > 0 )"); - //acumula los prov, globales en un solo registro - dtt = AcumularYReemplazar(dtt); - - foreach (DataRow Drow in dtt.Rows) + else { - SBDIOT.AppendLine( - Drow["TipoTercero"].ToString() + "|" + - Drow["TipoOperacion"].ToString() + "|" + - Drow["RFC_DIOT"].ToString() + "|" + - Drow["NumeroIDFiscal"].ToString() + "|" + - Drow["NombreExtranjero"].ToString() + "|" + - Drow["PaisResidenciaFiscal"].ToString() + "|" + - Drow["Jurisdiccion"].ToString() + "|" + - // 3.2 valor de los actos o actividades - LV(Drow["ActosFN"].ToString()) + "|" + // actos norte - LV(Drow["ActosDevFN"].ToString()) + "|" + // desc norte - LV(Drow["ActosFS"].ToString()) + "|" + // actos sur - LV(Drow["ActosDevFS"].ToString()) + "|" + // desc sur - LV(Drow["Actos16"].ToString()) + "|" + // 16% - LV(Drow["ActosDev16"].ToString()) + "|" + // desc 16% - LV(Drow["ActosImp16"].ToString()) + "|" + // importacion 16% - LV(Drow["ActosImpDev16"].ToString()) + "|" + // desc importacion 16% - LV(Drow["ActosImpNotan16"].ToString()) + "|" + // importacion intangibles 16% - LV(Drow["ActosImpNotanDev16"].ToString()) + "|" + // desc intangibles 16% - // 3.3 IVA Acreditable - LV(Drow["AcredFN"].ToString()) + "|" + // actos norte - LV(Drow["AcreNoFN"].ToString()) + "|" + // proporcion actos norte - LV(Drow["AcredFS"].ToString()) + "|" + // actos sur - LV(Drow["AcredNoFS"].ToString()) + "|" + // proporcion actos sur - LV(Drow["Acred16"].ToString()) + "|" + // 16% - LV(Drow["AcredIva16"].ToString()) + "|" + // proporcion 16% - LV(Drow["AcredImp16"].ToString()) + "|" + // importacion 16% - LV(Drow["AcredNoImp16"].ToString()) + "|" + // proporción importacion 16% - LV(Drow["AcredImpIntan16"].ToString()) + "|" + // intangibles 16% - LV(Drow["AcredNoImpIntan16"].ToString()) + "|" + // proporcion intangibles 16% - // 3.4 IVA NO Acreditable - LV(Drow["NoAcredFN"].ToString()) + "|" + - LV(Drow["NoAcredNoFN"].ToString()) + "|" + - LV(Drow["NoAcredExentaFN"].ToString()) + "|" + - LV(Drow["NoAcredNoObjetoFN"].ToString()) + "|" + - LV(Drow["NoAcredFS"].ToString()) + "|" + - LV(Drow["NoAcredNoFS"].ToString()) + "|" + - LV(Drow["NoAcredExentaFS"].ToString()) + "|" + - LV(Drow["NoAcredNoObjetoFS"].ToString()) + "|" + - LV(Drow["NoAcred16"].ToString()) + "|" + - LV(Drow["NoAcredNo16"].ToString()) + "|" + - LV(Drow["NoAcredExenta16"].ToString()) + "|" + - LV(Drow["NoAcredNoObjeto16"].ToString()) + "|" + + DataTable dtt = new DataTable(); + dtt = Objconta.DtResultados.FiltraParametros("CveCompra is null and CveProveedor > 0 AND ( ActosFN > 0 OR ActosFS > 0 OR Actos16 > 0 OR ActosImp16 > 0 OR ActosImpNotan16 > 0 OR DATasa0 > 0 OR DANoObjetoTN > 0 OR DANoObjetoNoTN > 0 OR NoAcredFN > 0 OR NoAcredNoFN > 0 OR NoAcredNo16 > 0 )"); + //acumula los prov, globales en un solo registro + dtt = AcumularYReemplazar(dtt); - LV(Drow["NoAcredTan16"].ToString()) + "|" + - LV(Drow["NoAcredTanNo16"].ToString()) + "|" + - LV(Drow["NoAcredTanExenta16"].ToString()) + "|" + - LV(Drow["NoAcredTanNoObjeto16"].ToString()) + "|" + - LV(Drow["NoAcredImpIntan16"].ToString()) + "|" + - LV(Drow["NoAcredImpIntanNo16"].ToString()) + "|" + - LV(Drow["NoAcredImpIntanExenta16"].ToString()) + "|" + - LV(Drow["NoAcredImpIntanNoObjeto16"].ToString()) + "|" + - // 3.5 datos adicionales - LV(Drow["DAIvaRetenido"].ToString()) + "|" + // VA retenido por el contribuyente - LV(Drow["DAIvaExentoImpo"].ToString()) + "|" + //Actos o actividades pagados en la importación de bienes y servicios por los que no se pagara el IVA (Exentos) - LV(Drow["DAIvaExento"].ToString()) + "|" + // Actos o actividades pagados por los que no se pagará el IVA(Exentos) - LV(Drow["DATasa0"].ToString()) + "|" + // Demás actos o actividades pagados a la tasa del 0% - LV(Drow["DANoObjetoTN"].ToString()) + "|" + // Actos o actividades no objeto del IVA realizados en - LV(Drow["DANoObjetoNoTN"].ToString()) + "|" + // Actos o actividades no objeto del IVA por no contar on establecimiento en territorio nacion - (Drow["DAManifiesto"].ToString())); // Manifiesto que se dio efectos fiscales a los comprobantes que amparan las operaciones realizadas con el proveedor - + var dtSinTipoOperacion = dtt.FiltraParametros("GrpId = 1 AND ISNULL(TipoOperacion,'') = ''"); + + if (dtSinTipoOperacion != null && dtSinTipoOperacion.Rows.Count > 0) + { + var SbSinTipo = new StringBuilder(); + SbSinTipo.Append("Los siguientes proveedores no tienen especificado el tipo de operación:
    "); + foreach (DataRow row in dtSinTipoOperacion.Rows) + { + SbSinTipo.AppendFormat("{0}-{1}
    ", row["RFC"], row["RazonSocial"]); + } + Alert(SbSinTipo.ToString(), TipoMensaje.MsgAdvertencia); + } + else + { + foreach (DataRow Drow in dtt.Rows) + { + SBDIOT.AppendLine( + Drow["TipoTercero"].ToString() + "|" + + Drow["TipoOperacion"].ToString() + "|" + + Drow["RFC_DIOT"].ToString() + "|" + + Drow["NumeroIDFiscal"].ToString() + "|" + + Drow["NombreExtranjero"].ToString() + "|" + + Drow["PaisResidenciaFiscal"].ToString() + "|" + + Drow["Jurisdiccion"].ToString() + "|" + + // 3.2 valor de los actos o actividades + LV(Drow["ActosFN"].ToString()) + "|" + // actos norte + LV(Drow["ActosDevFN"].ToString()) + "|" + // desc norte + LV(Drow["ActosFS"].ToString()) + "|" + // actos sur + LV(Drow["ActosDevFS"].ToString()) + "|" + // desc sur + LV(Drow["Actos16"].ToString()) + "|" + // 16% + LV(Drow["ActosDev16"].ToString()) + "|" + // desc 16% + LV(Drow["ActosImp16"].ToString()) + "|" + // importacion 16% + LV(Drow["ActosImpDev16"].ToString()) + "|" + // desc importacion 16% + LV(Drow["ActosImpNotan16"].ToString()) + "|" + // importacion intangibles 16% + LV(Drow["ActosImpNotanDev16"].ToString()) + "|" + // desc intangibles 16% + // 3.3 IVA Acreditable + LV(Drow["AcredFN"].ToString()) + "|" + // actos norte + LV(Drow["AcreNoFN"].ToString()) + "|" + // proporcion actos norte + LV(Drow["AcredFS"].ToString()) + "|" + // actos sur + LV(Drow["AcredNoFS"].ToString()) + "|" + // proporcion actos sur + LV(Drow["Acred16"].ToString()) + "|" + // 16% + LV(Drow["AcredIva16"].ToString()) + "|" + // proporcion 16% + LV(Drow["AcredImp16"].ToString()) + "|" + // importacion 16% + LV(Drow["AcredNoImp16"].ToString()) + "|" + // proporción importacion 16% + LV(Drow["AcredImpIntan16"].ToString()) + "|" + // intangibles 16% + LV(Drow["AcredNoImpIntan16"].ToString()) + "|" + // proporcion intangibles 16% + // 3.4 IVA NO Acreditable + LV(Drow["NoAcredFN"].ToString()) + "|" + + LV(Drow["NoAcredNoFN"].ToString()) + "|" + + LV(Drow["NoAcredExentaFN"].ToString()) + "|" + + LV(Drow["NoAcredNoObjetoFN"].ToString()) + "|" + + LV(Drow["NoAcredFS"].ToString()) + "|" + + LV(Drow["NoAcredNoFS"].ToString()) + "|" + + LV(Drow["NoAcredExentaFS"].ToString()) + "|" + + LV(Drow["NoAcredNoObjetoFS"].ToString()) + "|" + + LV(Drow["NoAcred16"].ToString()) + "|" + + LV(Drow["NoAcredNo16"].ToString()) + "|" + + LV(Drow["NoAcredExenta16"].ToString()) + "|" + + LV(Drow["NoAcredNoObjeto16"].ToString()) + "|" + + + LV(Drow["NoAcredTan16"].ToString()) + "|" + + LV(Drow["NoAcredTanNo16"].ToString()) + "|" + + LV(Drow["NoAcredTanExenta16"].ToString()) + "|" + + LV(Drow["NoAcredTanNoObjeto16"].ToString()) + "|" + + LV(Drow["NoAcredImpIntan16"].ToString()) + "|" + + LV(Drow["NoAcredImpIntanNo16"].ToString()) + "|" + + LV(Drow["NoAcredImpIntanExenta16"].ToString()) + "|" + + LV(Drow["NoAcredImpIntanNoObjeto16"].ToString()) + "|" + + // 3.5 datos adicionales + LV(Drow["DAIvaRetenido"].ToString()) + "|" + // VA retenido por el contribuyente + LV(Drow["DAIvaExentoImpo"].ToString()) + "|" + //Actos o actividades pagados en la importación de bienes y servicios por los que no se pagara el IVA (Exentos) + LV(Drow["DAIvaExento"].ToString()) + "|" + // Actos o actividades pagados por los que no se pagará el IVA(Exentos) + LV(Drow["DATasa0"].ToString()) + "|" + // Demás actos o actividades pagados a la tasa del 0% + LV(Drow["DANoObjetoTN"].ToString()) + "|" + // Actos o actividades no objeto del IVA realizados en + LV(Drow["DANoObjetoNoTN"].ToString()) + "|" + // Actos o actividades no objeto del IVA por no contar on establecimiento en territorio nacion + (Drow["DAManifiesto"].ToString())); // Manifiesto que se dio efectos fiscales a los comprobantes que amparan las operaciones realizadas con el proveedor + + } + + Response.Clear(); + Response.ClearHeaders(); + + Response.AppendHeader("Content-Length", SBDIOT.ToString().Length.ToString()); + Response.ContentType = "text/plain"; + Response.AppendHeader("Content-Disposition", $"attachment;filename=DIOT_{txtFechaI.Text.ToDate().ToString("ddMMyyyy")}_{txtFechaI.Text.ToDate().ToString("ddMMyyyy")}.txt"); + + Response.Write(SBDIOT.ToString()); + Response.End(); + } } - + } - + } - Objconta.Dispose(); + + //MemoryStream ms = new MemoryStream(); //TextWriter tw = new StreamWriter(ms, System.Text.Encoding.UTF8); @@ -469,15 +497,7 @@ public partial class Contabilidad_RepIVA : ClsPaginas //Response.BinaryWrite(bytes); //Response.End(); - Response.Clear(); - Response.ClearHeaders(); - Response.AppendHeader("Content-Length", SBDIOT.ToString().Length.ToString()); - Response.ContentType = "text/plain"; - Response.AppendHeader("Content-Disposition", $"attachment;filename=DIOT_{ txtFechaI.Text.ToDate().ToString("ddMMyyyy") }_{txtFechaI.Text.ToDate().ToString("ddMMyyyy") }.txt"); - - Response.Write(SBDIOT.ToString()); - Response.End(); } static DataTable AcumularYReemplazar(DataTable dt) From b04241187fda7b337630f35910aa8f2c81b72b38 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Sat, 24 May 2025 00:46:35 -0700 Subject: [PATCH 17/21] --Obs en factura global --- Ventas/FacturacionGlobal.aspx.vb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Ventas/FacturacionGlobal.aspx.vb b/Ventas/FacturacionGlobal.aspx.vb index 4673a443c..efd517756 100644 --- a/Ventas/FacturacionGlobal.aspx.vb +++ b/Ventas/FacturacionGlobal.aspx.vb @@ -228,6 +228,16 @@ Partial Class Ventas_FacturacionGlobal CveProyecto:=Dr("CveProyecto").ToString().ToEntero(), CveSubProyecto:=Dr("CveSubProyecto").ToString().ToEntero(), CveVentaDetallePadre:=Dr("CveVentaDetalle").ToString().ToEntero(), CveVentaDetalleRemision:=Dr("CveVentaDetalle").ToString().ToEntero()) Next + Dim SbObs As New StringBuilder + + If txtFechaI.Text.Trim() <> txtFechaF.Text.Trim() Then + SbObs.AppendFormat("Periodo: {0} al {1}", txtFechaI.Text, txtFechaF.Text) + ElseIf txtFechaI.Text.Trim() = txtFechaF.Text.Trim() Then + SbObs.AppendFormat("Periodo: {0}", txtFechaI.Text) + End If + + ObjFactura.Observaciones = SbObs.ToString() + ObjFactura.CalculaTotales() ObjFactura.PreparaTimbre() From 3126589b132333bb8d39f0a497ba7e56155acaed Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Sat, 24 May 2025 00:46:43 -0700 Subject: [PATCH 18/21] --Validacion de solicitud --- App_Code/ClsVentas.vb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index 9250bda95..8b83de472 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -6096,8 +6096,14 @@ Public Class ClsVentas Try SqlAdapter.Fill(Data) Retorno = True + Catch Ex1 As SqlException + If Ex1.Message.Contains("vigente") Then + Alert("Ya existe una solicitud vigente", TipoMensaje.MsgAdvertencia) + Else + Me.OnError("Ocurrió un error al guardar la autorización.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End If Catch ex As Exception - OnError("Ocurrió un error al obtener los limites.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + OnError("Ocurrió un error al guardar la autorización.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) End Try Return Retorno End Function From 5156f33bfa3d19bb6e1391b3cc3047a0cb75fc29 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 24 May 2025 07:06:33 -0700 Subject: [PATCH 19/21] =?UTF-8?q?--=20cambio=20en=20validaci=C3=B3n=20de?= =?UTF-8?q?=20kilometraje?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/Ventas.aspx | 37 ++++++++++++++++++------------------- Ventas/Ventas.aspx.vb | 24 ++++++++++-------------- 2 files changed, 28 insertions(+), 33 deletions(-) diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index b6b2b0452..35fc95342 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -4322,10 +4322,24 @@ - - Kilometraje  - - + + +
    +
    + Kilometraje  + + + <%----%> +
    +
    + Próxima Rotación y Balanceo:
    + +
    +
    + Próxima Alineación:
    + +
    +
    @@ -4350,21 +4364,6 @@ Tipo de Entrega: Entrega Directa - - Próxima Rotación y Balanceo:  - - - - - - - Próxima Alineación:  - - - - - - <%-- Médico:  diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 086decbcd..cff95b633 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -3487,7 +3487,7 @@ Partial Class Ventas DivContadoOtros.Visible = True End If - If UsuarioActual.Empresa.Funcionalidad(558).ToEntero() = 1 Then + If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then DivMesesSinIntereses.Visible = True DivDdlCuentaTarjetaCredito.Attributes.Add("class", "col-md-4") @@ -3591,10 +3591,6 @@ Partial Class Ventas 'End If If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then - trRotacion.Visible = True - trRotacionlbl.Visible = True - trAlineacion.Visible = True - trAlineacionlbl.Visible = True Dim FechaRotaAlinea As Date = TxtFecha.Text.ToDate LblRotacion.Text = FechaRotaAlinea.AddMonths(6).ToShortDateString @@ -10038,9 +10034,9 @@ Partial Class Ventas End If End If - If UsuarioActual.Empresa.Funcionalidad(558).ToEntero() = 1 AndAlso TrKilometraje.Visible Then - If TxtKilometraje.Text.Length < 6 Then - Alert("El kilometraje debe tener 6 digitos.", TipoMensaje.MsgAdvertencia) + If UsuarioActual.Empresa.Funcionalidad(558) = "1" AndAlso TrKilometraje.Visible Then + If TxtKilometraje.Text.Length < 4 OrElse TxtKilometraje.Text.Length > 6 Then + Alert("El kilometraje debe tener de 4 a 6 dígitos.", TipoMensaje.MsgAdvertencia) Exit Sub End If End If @@ -13347,7 +13343,7 @@ Partial Class Ventas ObjFactura.EsGarantia = Me.EsGarantia ObjFactura.Bloqueada = Me.Bloqueada - If UsuarioActual.Empresa.Funcionalidad(558).ToEntero() = 1 AndAlso TrKilometraje.Visible Then + If UsuarioActual.Empresa.Funcionalidad(558) = "1" AndAlso TrKilometraje.Visible Then ObjFactura.Kilometraje = TxtKilometraje.Text.Trim.ToDecimal() End If @@ -18797,7 +18793,7 @@ Partial Class Ventas End If Else If drPS("CveTipoPS").ToString() = "1" Then 'Si es servicio - If UsuarioActual.Empresa.Funcionalidad(558).ToString() = "1" Then 'Si es Empresa llantera + If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then 'Si es Empresa llantera TxtPrecio.Enabled = True Else 'TxtPrecio.Enabled = False @@ -25240,7 +25236,7 @@ Partial Class Ventas End If Case 2 'CONTADO - If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") OrElse (UsuarioActual.Empresa.Funcionalidad(558).ToEntero() = 1 And DdlTipoComprobante.SelectedValue = "Cot") OrElse (CveVenta > 0 AndAlso DdlTipoComprobante.SelectedValue = "Cot" AndAlso Not UsuarioActual.CveEmpresa.Contiene(119, 158)) Then + If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") OrElse (UsuarioActual.Empresa.Funcionalidad(558) = "1" And DdlTipoComprobante.SelectedValue = "Cot") OrElse (CveVenta > 0 AndAlso DdlTipoComprobante.SelectedValue = "Cot" AndAlso Not UsuarioActual.CveEmpresa.Contiene(119, 158)) Then DivContado.Visible = True If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then DivTransferencia.Visible = False @@ -25514,7 +25510,7 @@ Partial Class Ventas DrCredito("Tipo") = "Tarjeta de Crédito" DrCredito("CveMetodoPago") = 4 - If UsuarioActual.Empresa.Funcionalidad(558).ToEntero() = 1 Then + If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then DrCredito("MesesSinIntereses") = DDlMesesSinIntereses.SelectedValue.ToEntero() Else DrCredito("MesesSinIntereses") = -1 @@ -25610,7 +25606,7 @@ Partial Class Ventas DrCredito("Observaciones") = "" DrCredito("Tipo") = "Tarjeta de Crédito" DrCredito("CveMetodoPago") = 4 - If UsuarioActual.Empresa.Funcionalidad(558).ToEntero() = 1 Then + If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then DrCredito("MesesSinIntereses") = DdlMesesSinIntereses2.SelectedValue.ToEntero() Else DrCredito("MesesSinIntereses") = -1 @@ -36017,7 +36013,7 @@ Partial Class Ventas SeEstaFActurandoVentaMedica = True End If - If GvPagos.Rows.Count = 0 And UsuarioActual.Empresa.Funcionalidad(558).ToEntero() = 1 And RBLPago.SelectedValue.ToEntero() = 2 Then + If GvPagos.Rows.Count = 0 And UsuarioActual.Empresa.Funcionalidad(558) = "1" And RBLPago.SelectedValue.ToEntero() = 2 Then Alert("No se puede facturar hasta que se haya especificado detalladamente la forma de pago", TipoMensaje.MsgAdvertencia) Else Dim FolioFijo As Integer = 0 From d6fd4990b85b1f685cd08c98f41a6f9171e37356 Mon Sep 17 00:00:00 2001 From: Luis Carlos Quijada Date: Sat, 24 May 2025 15:03:07 -0600 Subject: [PATCH 20/21] =?UTF-8?q?Correcciones=20Cancelaci=C3=B3n=20OP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/BundleConfig.vb | 4 +- General/Dashboard.aspx | 11 +- OP/OP.aspx | 254 +++++++++++++++++++-------------- OP/OP.aspx.vb | 301 ++++++++++++++++++++++++++------------- 4 files changed, 360 insertions(+), 210 deletions(-) diff --git a/App_Code/BundleConfig.vb b/App_Code/BundleConfig.vb index 540abb2ea..1ab0657f9 100644 --- a/App_Code/BundleConfig.vb +++ b/App_Code/BundleConfig.vb @@ -7,7 +7,7 @@ Public Class BundleConfig bundles.Add(New ScriptBundle("~/bundles/jquery").Include( "~/Metronic/assets/global/plugins/jquery.min.js" )) - ScriptManager.ScriptResourceMapping.AddDefinition("jquery", Nothing, New ScriptResourceDefinition with {.Path = "~/bundles/jquery"}) + ScriptManager.ScriptResourceMapping.AddDefinition("jquery", Nothing, New ScriptResourceDefinition With {.Path = "~/bundles/jquery"}) @@ -170,7 +170,7 @@ Public Class BundleConfig "~/Scripts/WebForms/TreeView.js", "~/Scripts/WebForms/WebParts.js")) - ScriptManager.ScriptResourceMapping.AddDefinition("WebFormsBundle", new ScriptResourceDefinition With {.Path = "~/bundles/WebFormsJs"}) + ScriptManager.ScriptResourceMapping.AddDefinition("WebFormsBundle", New ScriptResourceDefinition With {.Path = "~/bundles/WebFormsJs"}) ' Order is very important for these files to work, they have explicit dependencies bundles.Add(New ScriptBundle("~/bundles/MsAjaxJs").Include( diff --git a/General/Dashboard.aspx b/General/Dashboard.aspx index 7f2ab1c75..213c8a410 100644 --- a/General/Dashboard.aspx +++ b/General/Dashboard.aspx @@ -813,6 +813,16 @@ /*---------------------------------------- ANCHO DE COLUMNAS DE IMPORTES (AÑO, MES, ETC) -----------------------------------------*/ + + /* Ancho libre para primeras columnas (Sucursal, Vendedor, etc.) */ + .custom-grid td:first-child, + .custom-grid th:first-child { + width: auto !important; + min-width: auto !important; + max-width: none !important; + + } + .custom-grid td:nth-child(2), .custom-grid td:nth-child(3), .custom-grid td:nth-child(4), @@ -830,7 +840,6 @@ .custom-grid th:nth-child(4), .custom-grid th:nth-child(5) { text-align: center !important; - } /* Asegurar ancho libre para primera columna */ diff --git a/OP/OP.aspx b/OP/OP.aspx index 82f0c1184..dfdc3300f 100644 --- a/OP/OP.aspx +++ b/OP/OP.aspx @@ -309,6 +309,19 @@ background: #f8f9fa; cursor: pointer; } + /* Alinear celda y contenido a la derecha */ +.celda-derecha { + text-align: right !important; + +} + +.txt-merma { + /* Ancho reducido al 50% */ + margin-left: 30px !important; /* Mueve el TextBox a la derecha dentro de la celda */ + display: block !important; /* Permite que margin-left:auto funcione */ + /* Alinea el texto interno a la derecha */ +} + @@ -338,7 +351,7 @@
    -
    +
    -
    - -
    -
    -
    -
    -
    - - - -
    - -
    - - - -
    - -
    -
    -
    -
    -
    -
    - - - - -
    -
    -
    - - - -
    -
    -
    - - - - - -
    -
    + +
    -
    - + + +
    + + + +
    -
    -
    - - - - + + + + + + +
    +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + +
    + +
    + + + +
    +
    - - - - - -
    + + + +
    +
    +
    + + + +
    +
    +
    - +
    @@ -437,23 +447,17 @@
    - - + +
    -
    - +
    @@ -466,13 +470,15 @@
    - +
    +
    +
    + + + +
    +
    + + - -
    - -
    + -
    -
    - -
    -
    - -
    -
    - -
    -
    + + +
    +
    +
    +