This commit is contained in:
2025-05-24 00:46:54 -07:00
32 changed files with 1465 additions and 236 deletions

View File

@@ -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" %>
<asp:Content ID="Content1" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="E" runat="Server">
<asp:Literal ID="LtlTitulo" runat="server" Text="Registro de Activos Fijos"></asp:Literal>&nbsp;<asp:Literal ID="LtlActivoFijo" runat="server"></asp:Literal>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HB" runat="Server">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<li>
@@ -932,6 +938,101 @@
</div>
</div>
<%-- Documentos --%>
<div>
<div class="portlet box blue-hoki" style="width: 100%;">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-clock-o"></i>Documentos
</div>
</div>
<asp:UpdatePanel ID="UpGvDocumentos" class="portlet-body" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvDocumentos" runat="server" AutoGenerateColumns="False" DataKeyNames="CveDocumentacion,Documentacion,Orden,CveDocumentacionElectronica,Adjunto,Estatus,Observacion,Fecha,FechaIng,Usuario,FechaLimite,DocumentacionFormato,FechaVigencia,DiasLimite,AplicaDiasLimite,AplicaFechaVencimiento"
EmptyDataText="No se encontraron registros de documentos" CssClass="table table-hover table-advance Widthall" GridLines="None">
<Columns>
<asp:TemplateField ItemStyle-HorizontalAlign="center" ItemStyle-Width="30px">
<ItemTemplate>
<asp:Literal ID="ImgRequired" runat="server"></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ControlStyle-CssClass="template" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="275" HeaderText="Documento">
<ItemTemplate>
<asp:Literal ID="LtlDocumentacion" runat="server" Text='<%# Eval("Documentacion") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Completo" ItemStyle-Width="40px" Visible="false">
<ItemTemplate>
<asp:CheckBox ID="chkEstatus" runat="server" CssClass="make-switchsd"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Left" HeaderText="Observaciones" ItemStyle-Width="100">
<ItemTemplate>
<asp:TextBox ID="TxtObservaciones" Width="300" MaxLength="100" runat="server" Text='<%# Eval("Observacion") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Left" HeaderText="Vigencia" ItemStyle-Width="100">
<ItemTemplate>
<asp:TextBox ID="TxtFechaVigencia" Width="100" MaxLength="10" runat="server" Text='<%# Eval("FechaVigencia") %>'></asp:TextBox>
<ajax:CalendarExtender runat="server" ID="Calendario7" TargetControlID="TxtFechaVigencia" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="cvTxtFechaVigencia" runat="server" ControlToValidate="TxtFechaVigencia" Display="None" ErrorMessage="El campo <b>''Fecha Limite''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpRL"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoCvFI5" runat="server" HighlightCssClass="vco" TargetControlID="cvTxtFechaVigencia" Width="350px"></ajax:ValidatorCalloutExtender>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Left" HeaderText="Fecha limite" ItemStyle-Width="100" Visible="true">
<ItemTemplate>
<asp:TextBox ID="TxtFechaLimite" Width="100" onKeyPress="return handleInput(this.value)" MaxLength="100" runat="server" Text='<%# Eval("FechaLimite") %>'></asp:TextBox>
<ajax:CalendarExtender runat="server" ID="Calendario6" TargetControlID="TxtFechaLimite" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="rfvFechaI6" Enabled="false" runat="server" ControlToValidate="TxtFechaLimite" Display="None" ErrorMessage="El campo <b>''Fecha limite''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="GrpRL"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="cvFechaI6" runat="server" ControlToValidate="TxtFechaLimite" Display="None" ErrorMessage="El campo <b>''Fecha Limite''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpRL"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoFfvFI4" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaI6" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="vcoCvFI4" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaI6" Width="350px"></ajax:ValidatorCalloutExtender>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Left" ItemStyle-Width="50px">
<ItemTemplate>
<asp:LinkButton ID="ImgDownLoadFormato" CssClass="btn btn-circle btn-sm orange" OnClick="DownLoadFormato_ClickDocumentacion" runat="server"
Text="<i class='fa fa-download' style='color:white' title='Descargar formato'></i>" CausesValidation="False" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Right" ItemStyle-Width="50px">
<ItemTemplate>
<asp:LinkButton ID="ImgUpload" runat="server" OnClick="UploadModal_ClickDocumentacionFirmaContrato" AlternateText="Editar" CausesValidation="False"
CssClass="btn btn-circle btn-sm green" Text="<i title='Subir documento' class='fa fa-upload' title='Subir documento' ></i>" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Right" ItemStyle-Width="50px">
<ItemTemplate>
<asp:LinkButton ID="ImgDownLoad" CssClass="btn btn-circle btn-sm blue" OnClick="ImgDownLoad_Click" runat="server"
Text="<i class='fa fa-download' style='color:white' title='Descargar formato'></i>" CausesValidation="False" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</ContentTemplate>
</ajax:TabPanel>
@@ -1496,9 +1597,8 @@
</div>
</div>
</div>
</div>
<div class="cbp-l-grid-projects-title uppercase text-center">IMAGEN</div>
<div class="cbp-l-grid-projects-desc uppercase text-center"><%# Container.ItemIndex + 1 %></div>
</div>
<div class="cbp-l-grid-projects-desc uppercase text-center"><%# Container.ItemIndex + 1 %> - <%# CType(Eval("FechaIng"), DateTime).ToString("dd/MM/yyyy") %> </div>
</div>
</ItemTemplate>
</asp:Repeater>
@@ -3658,7 +3758,108 @@
</div>
</div>
<script src="/Metronic/assets/global/plugins/dropzone/dropzone.js"></script>
<%--modal parametros documentos--%>
<div id="DVDescargaDocumentoParametrosModal" class="modal ADS fade" role="dialog">
<asp:UpdatePanel ID="UpdatePanel6" class="modal-dialog" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content rowpadding">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span >&times;</span>
</button>
<h4 class="modal-title" runat="server" style="text-align: left">Parametros</h4>
</div>
<div class="modal-body">
<asp:UpdatePanel ID="UpGvParametros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvParametros" runat="server" AutoGenerateColumns="False"
DataKeyNames="CveDocumentacionParametro,CveDocumentacion,Parametro,Descripcion " CssClass="table table-hover table-advance Widthall" GridLines="None">
<Columns>
<asp:TemplateField ItemStyle-HorizontalAlign="Left" ItemStyle-Width="60px" HeaderText="Parametro">
<ItemTemplate>
<asp:Literal ID="LtlParametro" runat="server" Text='<%# Eval("Parametro") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ControlStyle-CssClass="template" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="275" HeaderText="Descripción">
<ItemTemplate>
<asp:Literal ID="LtlDescripcion" runat="server" Text='<%# Eval("Descripcion") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ControlStyle-CssClass="template" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="275" HeaderText="Valor">
<ItemTemplate>
<asp:TextBox ID="TxtParametro" runat="server" Text="" Width="150px" ValidationGroup="GrpDescargaFormato"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVTxtParametro" runat="server" ControlToValidate="TxtParametro" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Parametro''</b> es necesario, por favor ingréselo." ValidationGroup="GrpDescargaFormato"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="CERFVTxtParametro" runat="server" HighlightCssClass="vco" TargetControlID="RFVTxtParametro" Width="300px"></ajax:ValidatorCalloutExtender>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<%--<asp:LinkButton ID="LnkDescargaFormatoParametros" OnClick="LnkDescargaFormatoParametros_Click" ValidationGroup="GrpDescargaFormato" CssClass="btn btn-primary" runat="server">Descargar</asp:LinkButton>--%>
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<%--modalupluad doc--%>
<div id="ModalUploadFirmaContratoDocumento" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">
<asp:UpdatePanel ID="UpTituloFirma" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Literal ID="LtlTitulofirmaContrato" runat="server">Documentación Firma de Contrato </asp:Literal>
</ContentTemplate>
</asp:UpdatePanel>
</h4>
</div>
<div class="modal-body">
<asp:UpdatePanel runat="server" ID="UpModalFirmaContratoDocumento" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<div class="col-md-12">
<asp:TextBox ID="TxtFileFirmaContrato" CssClass="ADSdropzone hidden" data-maxFile="1" Text="" runat="server"></asp:TextBox>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Button ID="BtnModalFirmaContratoDocumentoUpload" runat="server" ClientIDMode="Static" Text="Aceptar" CssClass="btn btn-primary" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
<script src="/Metronic/assets/global/plugins/dropzone/dropzone.js"></script>
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="JS" runat="Server">
<%-- <link href="/Metronic/assets/global/plugins/dropzone/css/dropzone.css" rel="stylesheet"/>--%>
@@ -4074,6 +4275,7 @@
setTimeout(function () { startTimer(request); }, 30000); // callback
}
</script>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="Css" runat="Server">
@@ -4088,6 +4290,9 @@
.cbp-popup-lightbox-figure {
background-color: #FFF;
}
.orange {
background-color: orangered;
}
</style>
</asp:Content>

View File

@@ -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 = " <a class='btn btn-circle btn-sm yelow' href='#' data-toggle='tooltip' title=' Requerido!' ><i class='fa fa-asterisk '></i></a>"
Else
' ImgRequired.Text = " <a class='btn btn-circle btn-sm grey-salt' href='#' data-toggle='tooltip' title='No obligatorio' ><i class='fa fa-asterisk '></i></a>"
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

View File

@@ -203,6 +203,16 @@
<asp:DropDownList ID="DdlAFPadres" runat="server" AppendDataBoundItems="true" DataTextField="CodigoDescripcion" DataValueField="CveActivoFijo" Class="table-group-action-input form-control input-inline input-sm select2me" Width="200px"></asp:DropDownList>
</div>
</div>
<div class="row" id="DVTipoGrupo" runat="server" visible="false">
<div class="col-md-1">Tipo Grupo:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlAFTipoGrupo" CssClass="form-control input-sm select2me" AppendDataBoundItems="true" Width="100%" runat="server" DataTextField="NombreCompleto" DataValueField="CvePersonal">
<asp:ListItem Selected="True" Text="Todos" Value="-1"></asp:ListItem>
<asp:ListItem Text="Mayores" Value="1"></asp:ListItem>
<asp:ListItem Text="Menores" Value="2"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
</div>
</div>
<div class="row ">

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -275,7 +275,7 @@
</div>
</div>
</div>
<div class="row" runat="server" id="rowComisiones" visible="false">
<div class="row" runat="server" id="rowComisiones" visible="false">
<label class="col-md-2" runat="server" id="lblpagocomisiones">Comisiones:</label>
<div class="col-md-3">
<asp:DropDownList ID="DdlOtrosPagos" Width="100%" CssClass="form-control input-sm select2me" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DdlOtrosPagos_SelectedIndexChanged">
@@ -289,7 +289,7 @@
<ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" runat="server" TargetControlID="TxtDDImporte" FilterType="Custom, Numbers" ValidChars="+-.," />
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>

View File

@@ -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

View File

@@ -39,8 +39,8 @@
<table width="100%">
<tr>
<td>Tipo Reporte:</td>
<td>
<asp:DropDownList ID="DdlTipoReporte" CssClass="form-control input-sm select2me" runat="server">
<td colspan="2">
<asp:DropDownList ID="DdlTipoReporte" CssClass="form-control input-sm select2me" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DdlTipoReporte_SelectedIndexChanged">
<asp:ListItem Text="Catálogo Cuentas" Value="1"></asp:ListItem>
<asp:ListItem Text="Balanza Comprobación" Value="2"></asp:ListItem>
</asp:DropDownList>
@@ -54,21 +54,30 @@
<td>Periodo: </td>
<td>
<asp:DropDownList ID="DdlPeriodo" CssClass="form-control input-sm select2me" runat="server">
<asp:ListItem Text="Enero" Value="1"></asp:ListItem>
<asp:ListItem Text="Febrero" Value="2"></asp:ListItem>
<asp:ListItem Text="Marzo" Value="3"></asp:ListItem>
<asp:ListItem Text="Abril" Value="4"></asp:ListItem>
<asp:ListItem Text="Mayo" Value="5"></asp:ListItem>
<asp:ListItem Text="Junio" Value="6"></asp:ListItem>
<asp:ListItem Text="Julio" Value="7"></asp:ListItem>
<asp:ListItem Text="Agosto" Value="8"></asp:ListItem>
<asp:ListItem Text="Septiembre" Value="9"></asp:ListItem>
<asp:ListItem Text="Enero" Value="01"></asp:ListItem>
<asp:ListItem Text="Febrero" Value="02"></asp:ListItem>
<asp:ListItem Text="Marzo" Value="03"></asp:ListItem>
<asp:ListItem Text="Abril" Value="04"></asp:ListItem>
<asp:ListItem Text="Mayo" Value="05"></asp:ListItem>
<asp:ListItem Text="Junio" Value="06"></asp:ListItem>
<asp:ListItem Text="Julio" Value="07"></asp:ListItem>
<asp:ListItem Text="Agosto" Value="08"></asp:ListItem>
<asp:ListItem Text="Septiembre" Value="09"></asp:ListItem>
<asp:ListItem Text="Octubre" Value="10"></asp:ListItem>
<asp:ListItem Text="Noviembre" Value="11"></asp:ListItem>
<asp:ListItem Text="Diciembre" Value="12"></asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr id="trTipoEnvio" runat="server" visible="false">
<td>Tipo Envío:</td>
<td colspan="2">
<asp:DropDownList ID="DdlTipoEnvío" CssClass="form-control input-sm select2me" runat="server">
<asp:ListItem Text="Normal" Value="N"></asp:ListItem>
<asp:ListItem Text="Complementaria" Value="C"></asp:ListItem>
</asp:DropDownList>
</td>
</tr>
</table>
<hr />

View File

@@ -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("<?xml version=""1.0"" encoding=""UTF-8""?>")
Str.Append("<catalogocuentas:Catalogo xsi:schemaLocation=""www.sat.gob.mx/esquemas/ContabilidadE/1_3/CatalogoCuentas/CatalogoCuentas_1_3.xsd"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" Version=""1.3"" ")
Str.Append("<catalogocuentas:Catalogo xsi:schemaLocation=""http://www.sat.gob.mx/esquemas/ContabilidadE/1_3/CatalogoCuentas http://www.sat.gob.mx/esquemas/ContabilidadE/1_3/CatalogoCuentas/CatalogoCuentas_1_3.xsd"" 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("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"">")
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
''' <summary>
''' Aplica el XSLT para generar la Cadena Original según SAT.
''' </summary>
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("<?xml version=""1.0"" encoding=""UTF-8""?>")
Str.Append("<BCE:Balanza xsi:schemaLocation=""www.sat.gob.mx/esquemas/ContabilidadE/1_3/BalanzaComprobacion/BalanzaComprobacion_1_3.xsd"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" Version=""1.3"" ")
Str.Append("<bnc:Balanza ")
Str.Append("xmlns:bnc =""http://www.sat.gob.mx/esquemas/ContabilidadE/1_3/BalanzaComprobacion"" ")
Str.Append("xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" ")
Str.Append("xsi:schemaLocation=""http://www.sat.gob.mx/esquemas/ContabilidadE/1_3/BalanzaComprobacion http://www.sat.gob.mx/esquemas/ContabilidadE/1_3/BalanzaComprobacion/BalanzaComprobacion_1_3.xsd"" ")
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("Sello=""{0}"" ", "123")
Str.AppendFormat("noCertificado=""{0}"" ", "123")
Str.AppendFormat("Certificado=""{0}"" ", "1234567890")
Str.Append("xmlns:BCE=""www.sat.gob.mx/esquemas/ContabilidadE/1_3/BalanzaComprobacion"">")
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("<BCE:Ctas ")
For Each Dr As DataRow In DtCuentas.FiltraParametros("Codigo <> ''").Rows
Str.Append("<bnc:Ctas ")
If UsuarioActual.Empresa.TipoContabilidad = 1 Then
Str.AppendFormat("NumCta=""{0}"" ", Dr("Codigo").ToString)
Str.AppendFormat("NumCta=""{0}"" ", Dr("Codigo").ToString.Replace("-", ""))
Str.AppendFormat("SaldoIni=""{0}"" ", Dr("SaldoInicial").ToString)
Str.AppendFormat("Debe=""{0}"" ", Dr("Cargos").ToString)
Str.AppendFormat("Haber=""{0}"" ", Dr("Abonos").ToString)
@@ -236,12 +327,10 @@ Partial Class Contabilidad_ContabilidadElectronica
Str.Append("/>")
Next
DtCuentas.Dispose()
'FIN
Str.Append("</BCE:Balanza>")
Str.Append("</bnc:Balanza>")
'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

View File

@@ -103,6 +103,7 @@ Catalogo Documentacion Tipo
<asp:ListItem Value="2">Clientes</asp:ListItem>
<asp:ListItem Value="4">Proveedor</asp:ListItem> <%-- Nota: EL tipo Tres es tipo Auditoria de documentos de proveedor usadon el portal prveedor y --%>
<asp:ListItem Value="8">Inicio</asp:ListItem>
<asp:ListItem Value="9">Activos Fijos</asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RfvEdocmodulo" InitialValue="-1" runat="server" ControlToValidate="DdlEdocmodulo" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Modulo''</b> es necesario, por favor ingréselo." ValidationGroup="VGMEdoc"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VcoEdocmodulo" runat="server" HighlightCssClass="vco" TargetControlID="RfvEdocmodulo"></ajax:ValidatorCalloutExtender>

View File

@@ -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()

View File

@@ -787,7 +787,7 @@
<asp:UpdatePanel ID="UpProductoCaducidad" runat="server" UpdateMode="Conditional" RenderMode="Inline">
<ContentTemplate>
<div runat="server" id="DivImprimir" style="text-align: right" visible="false">
<asp:HyperLink ID="ImprimirQR" runat="server"><i class="fa fa-file-pdf-o" style="font-weight: bold;"></i>Imprimir QR</asp:HyperLink>
<asp:HyperLink ID="HplImprimirQR" runat="server"><i class="fa fa-file-pdf-o" style="font-weight: bold;"></i> Imprimir QR</asp:HyperLink>
</div>
<asp:GridView ID="GvProductoCaducidad" Width="98%" runat="server" ShowHeader="true" EmptyDataText="No hay registros." AutoGenerateColumns="False" AllowPaging="False"

View File

@@ -261,11 +261,6 @@ Partial Class Inventarios_Kardex
#Region " CARGA DATOS "
Protected Sub btConsultar_Click(sender As Object, e As EventArgs) Handles btConsultar.Click
CargaDatos()
Dim almacenes As String = ddlAlmacen.GetSelectedValues()
If almacenes = "" Then
almacenes = "-1"
End If
ImprimirQR.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=Etiqueta2&CvePS={0}&PS={1}&CveAlmacen={2}&Modalidad={3}", ddlProducto2.SelectedValue.ToEntero, ddlProducto2.SelectedText.ToString, almacenes, "Individual")))
End Sub
Private Sub CargaDatos()
@@ -412,10 +407,6 @@ Partial Class Inventarios_Kardex
DivIndicadorL2.Visible = True
End If
End Sub
Private Function CargarKardex(CvePS As Integer) As DataTable
@@ -441,7 +432,6 @@ Partial Class Inventarios_Kardex
LtIndicador_UCPesos.Text = dr("UltimoCosto").ToString.FormatoNumero()
LtIndicador_UCDolares.Text = (dr("UltimoCosto").ToString.ToDecimal / TC).FormatoNumero
End If
End If
Dim CveTiposAlmacen As String = ""
@@ -493,6 +483,12 @@ Partial Class Inventarios_Kardex
UpOCS.Update()
End If
Dim almacenes As String = ddlAlmacen.GetSelectedValues()
If almacenes = "" Then
almacenes = "-1"
End If
HplImprimirQR.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=Etiqueta2&CvePS={0}&PS={1}&CveAlmacen={2}&Modalidad={3}", ddlProducto2.SelectedValue.ToEntero, ddlProducto2.SelectedText.ToString, almacenes, "Individual")))
UpIndicadores.Update()
GvM.Attributes.Add("data-heighterror", "430")

View File

@@ -1446,16 +1446,14 @@
<div class="actions">
<div style="display:inline-block;width:296px">
<div style="display:inline-block;width:186px">
<asp:DropDownList ID="ddlmvtoperfiltroestatus" runat="server" Class="form-control input-sm select2me" Width="100%" ValidationGroup="GrpGuardar">
<div style="display:inline-block;width:296px">Activos:
<div style="display:inline-block;width:125px">
<asp:DropDownList ID="ddlmvtoperfiltroestatus" AutoPostBack="true" OnSelectedIndexChanged="ddlmvtoperfiltroestatus_SelectedIndexChanged" runat="server" Class="form-control input-sm select2me" Width="100%" ValidationGroup="GrpGuardar">
<asp:ListItem Value="-1" Text="Todos"></asp:ListItem>
<asp:ListItem Value="1" Text="Activo"></asp:ListItem>
<asp:ListItem Value="0" Text="Inactivo"></asp:ListItem>
<asp:ListItem Value="1" Text="Si" Selected="True"></asp:ListItem>
<asp:ListItem Value="0" Text="No"></asp:ListItem>
</asp:DropDownList>
</div>
<asp:LinkButton ID="LnkFiltro" OnClick="LnkFiltro_Click" CssClass="btn btn-primary" runat="server">Filtrar</asp:LinkButton>
</div>
</div>
<div class="btn-group">
<asp:LinkButton ID="LnkAddMovtoPermanente" OnClick="LnkAddMovtoPermanente_Click" CssClass="btn yellow-gold" runat="server">Agregar</asp:LinkButton>
@@ -1510,7 +1508,7 @@
CssClass="lnkMovotPermanente" runat="server" Text='<%# Eval("FechaInicioAplicacion", "{0:dd/MM/yyyy}")%>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Activo">
<asp:TemplateField HeaderText="Activo" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton data-toggle="tooltip" title="Editar" OnClick="LnkEditarMovtoPermanente_Click"
CssClass="lnkMovotPermanente" runat="server" Text='<%# (Eval("Estatus").ToString()=="1" ? "Si" : "No") %>'></asp:LinkButton>

View File

@@ -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();
}
}

View File

@@ -4,7 +4,7 @@
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
/* .GVGetMovtoPermanenteRep .headerHide:not(Titulos) th:nth-child(2) {
/* .GVGetMovtoPermanenteRep .headerHide:not(Titulos) th:nth-child(2) {
display: none;
}
*/
@@ -15,17 +15,18 @@
.GVGetMovtoPermanenteRep tr.cvetipo0 {
background-color: #ddd;
}
/*.GVGetMovtoPermanenteRep tr:not(.cvetipo0) td:nth-child(1) {
display: none;
}
.GVGetMovtoPermanenteRep tr:.cvetipo0 td:nth-child(2) {
display: none;
}*/
.GVGetMovtoPermanenteRep tr:not(.cvetipo0) td .lblconcepto {
display: none;
}
.GVGetMovtoPermanenteRep tr.cvetipo0 td .lblcodigo {
display: none;
}
@@ -51,8 +52,9 @@
.GVGetMovtoPermanenteRep td:nth-child(14) {
text-align: right
}
.GVGetMovtoPermanenteRep td:nth-child(14) {
white-space:nowrap;
white-space: nowrap;
}
</style>
</asp:Content>
@@ -63,15 +65,15 @@
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<asp:UpdatePanel ID="UpAccciones" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkFormatoxls" OnClick="LnkFormatoxls_Click" CssClass="" runat="server"><i class="fa fa-file-excel"></i> Formato Excel</asp:LinkButton>
<asp:LinkButton ID="LnkFormatoxls" OnClick="LnkFormatoxls_Click" CssClass="" runat="server"><i class="fa fa-file-excel"></i> Formato Excel</asp:LinkButton>
</li>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="LnkFormatoxls" />
<Triggers>
<asp:PostBackTrigger ControlID="LnkFormatoxls" />
</Triggers>
</asp:UpdatePanel>
</asp:Content>
@@ -86,8 +88,8 @@
<div class="portlet-title portlet-filterT smalltitle">
<div class="titlefiltros caption">
<div class="row">
<label class="col-md-1 compoonenlabel" style="max-width: 65px; display:none;">Tipo: </label>
<div class="col-md-1" style=" display:none;">
<label class="col-md-1 compoonenlabel" style="max-width: 65px; display: none;">Tipo: </label>
<div class="col-md-1" style="display: none;">
<asp:DropDownList ID="DDlTipo" runat="server" Style="width: 100% !important;" CssClass="select2me">
<asp:ListItem Text="Todos" Value="-1" Selected="True"></asp:ListItem>
<asp:ListItem Text="Movimientos Permanentes" Value="1"></asp:ListItem>
@@ -95,16 +97,16 @@
<asp:ListItem Text="Infonavit" Value="3"></asp:ListItem>
</asp:DropDownList>
</div>
<label class="col-md-1 compoonenlabel" style="max-width: 65px; display:none;">Saldo: </label>
<div class="col-md-1" style=" display:none;">
<label class="col-md-1 compoonenlabel" style="max-width: 65px; display: none;">Saldo: </label>
<div class="col-md-1" style="display: none;">
<asp:DropDownList ID="DDLSaldo" runat="server" Style="width: 100% !important;" CssClass="select2me">
<asp:ListItem Text="Todos" Value="-1" Selected="True"></asp:ListItem>
<asp:ListItem Text="Pendiente" Value="1"></asp:ListItem>
<asp:ListItem Text="Pagado" Value="2"></asp:ListItem>
</asp:DropDownList>
</div>
<label class="col-md-1 compoonenlabel" style="max-width: 65px; display:none;">Estatus: </label>
<div class="col-md-1" style=" display:none;">
<label class="col-md-1 compoonenlabel" style="max-width: 65px; display: none;">Estatus: </label>
<div class="col-md-1" style="display: none;">
<asp:DropDownList ID="DDLEstatus" runat="server" Style="width: 100% !important;" CssClass="select2me">
<asp:ListItem Text="Todos" Value="-1" Selected="True"></asp:ListItem>
<asp:ListItem Text="Activo" Value="1"></asp:ListItem>
@@ -125,7 +127,7 @@
<asp:ListItem Text="Todos" Value="-1" Selected="True"></asp:ListItem>
</asp:DropDownList>
</div>
<label class="col-md-1 mediocol">del:</label>
<div class="col-md-1">
<%--<asp:TextBox ID="TxtPeriodoInicio" Text="0" CssClass="form-control" runat="server"></asp:TextBox>--%>
@@ -186,15 +188,16 @@
</asp:TemplateField>--%>
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:Label ID="lblcodigo" runat="server" Text='<%# Eval("Codigo")%>'> </asp:Label>
<asp:HyperLink ID="lblcodigo" runat="server" Text='<%# Eval("Codigo")%>' NavigateUrl='<%# string.Format("/RH/Personal.aspx?CvePersonal={0}",Eval("CvePersonal"))%>' ></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Nombre Completo">
<ItemTemplate>
<asp:Label ID="lblnombreCompleto" CssClass="lblcodigo" runat="server" Text='<%# Eval("NombreCompleto")%>'> </asp:Label>
<asp:Label ID="lblconcepto" CssClass="lblconcepto" runat="server" Text='<%# Eval("Concepto")%>'> </asp:Label>
<asp:HyperLink ID="lblnombreCompleto" CssClass="lblcodigo" runat="server" Text='<%# Eval("NombreCompleto")%>' NavigateUrl='<%# string.Format("/RH/Personal.aspx?CvePersonal={0}",Eval("CvePersonal"))%>' ></asp:HyperLink>
<asp:Label ID="lblconcepto" CssClass="lblconcepto" runat="server" Text='<%# Eval("Concepto")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha">
<ItemTemplate>
<asp:Label ID="lblFecha" runat="server" Text='<%# Eval("FechaInicioAplicacion","{0:d}")%>'> </asp:Label>
@@ -215,12 +218,12 @@
<asp:Label ID="lblsaldo" runat="server" Text='<%# Eval("Acumulado","{0:N2}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<%-- <asp:TemplateField HeaderText="Tipo">
<%-- <asp:TemplateField HeaderText="Tipo">
<ItemTemplate>
<asp:Label ID="lbltipo" runat="server" Text='<%# Eval("Tipo")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>--%>
<%-- <asp:TemplateField HeaderText="# Credito">
<%-- <asp:TemplateField HeaderText="# Credito">
<ItemTemplate>
<asp:Label ID="lblnumeroCredito" runat="server" Text='<%# Eval("NumeroCredito")%>'> </asp:Label>
</ItemTemplate>

View File

@@ -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();
}
}
}
}

View File

@@ -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)
}
}

View File

@@ -673,7 +673,12 @@
<asp:Literal ID="LtlCorreo" runat="server" Text='<%# Eval("Correo") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Left" Visible="false">
<HeaderTemplate>Fecha Baja</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlFechaBaja" runat="server" Text='<%# Eval("FechaBaja", "{0:d}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle CssClass="Texto" />
<AlternatingRowStyle CssClass="TextoAlterno" />
@@ -868,7 +873,9 @@
<div class="col-md-3">
<asp:CheckBox ID="ChkCLABE" runat="server" Text="CLABE" />
</div>
<div class="col-md-3">
<asp:CheckBox ID="ChkFechaBaja" runat="server" Text="Fecha Baja" />
</div>
</div>
</div>
<div class="modal-footer">

View File

@@ -399,6 +399,7 @@ Partial Class RH_CatPersonal
GvDatos.Columns(47).Visible = ChkCuentaBancaria.Checked
GvDatos.Columns(48).Visible = ChkCLABE.Checked
GvDatos.Columns(49).Visible = ChkCorreo.Checked
GvDatos.Columns(50).Visible = ChkFechaBaja.Checked
If (GvDatos.Rows.Count > 0) Then
GvDatos.UseAccessibleHeader = True

View File

@@ -70,6 +70,9 @@
</asp:UpdatePanel>
<li>
<asp:LinkButton ID="LnkMostrarCamposValores" OnClick="LnkMostrarCamposValor_Click" Visible="true" runat="server"> <i class="fa fa-sticky-note"></i> Mostrar Campos Valores</asp:LinkButton>
</li>
<asp:UpdatePanel ID="UpBuzon" runat="server">
<ContentTemplate>
@@ -1689,7 +1692,87 @@
</div>
<div class="col-md-8">
<div id="DModalPersonalRefs" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog" runat="server" ID="UPModalPers" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content" >
<div class="modal-header ">
<h4 class="modal-title"><asp:Literal ID="ltlPerstitulo" runat="server"> </asp:Literal></h4>
</div>
<div class="modal-body">
<asp:Panel runat="server" ID="PanelMostrarpersonalcampos">
<div class="portlet light xspadding bordered " id="pnlListrefs">
<div class="portlet-title">
<div class="caption ">
<i class="icon-pin font-yellow-gold"></i>
<span class="caption-subject font-yellow-gold bold uppercase">Referenca Nomina</span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div>
<div class="actions">
<div class="btn-group">
<asp:LinkButton ID="LnkAgregarPersonalRefs" OnClick="LnkAgregarPers_Click" CssClass="btn yellow-gold" runat="server">Agregar</asp:LinkButton>
</div>
</div>
</div>
<div class="portlet-body ">
<asp:GridView ID="GVPersonalRefs" runat="server" GridLines="None" CssClass ="table table-hover table-striped ScrollAD Widthall" AutoGenerateColumns="False" ShowHeaderWhenEmpty ="True"
datakeynames="CveReferencia,CvePersonal,Valor">
<Columns>
<asp:TemplateField HeaderText="Referencia">
<ItemTemplate>
<asp:Label ID="lblreferencia" runat="server" Text='<%# Eval("Referencia")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Valor">
<ItemTemplate>
<asp:Label ID="lblvalor" runat="server" Text='<%# Eval("Valor")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="36">
<ItemTemplate>
<asp:LinkButton ID="LnkEliminarPers" runat="server" OnClick="LnkEliminarPers_Click" CssClass="btn btn-circle btn-sm btn-xs red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea eliminar el PersonalRefs?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</asp:Panel>
<asp:Panel runat="server" ID="PanelADDpersonalcampos">
<div class="row">
<div class="col-md-4 truncate ">Referencia</div>
<div class="col-md-8">
<asp:DropDownList ID="DdlPersreferencia" CssClass="form-control input-sm select2me " runat="server" DataTextField="Referencia" DataValueField="CveReferencia" style="width: 100%" ></asp:DropDownList>
</div>
</div>
<div class="row">
<div class="col-md-4 truncate ">Valor</div>
<div class="col-md-8">
<asp:TextBox ID="TxtPersvalor" CssClass="form-control input-sm " runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvPersvalor" runat="server" ControlToValidate="TxtPersvalor" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Valor''</b> es necesario, por favor ingréselo." ValidationGroup="VGMPers"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VcoPersvalor" runat="server" HighlightCssClass="vco" TargetControlID="RfvPersvalor"></ajax:ValidatorCalloutExtender>
</div>
</div>
</asp:Panel>
</div>
<div class="modal-footer ">
<div class="modal-btn">
<asp:Button ID="BtnPersADD" OnClick="BtnPersADD_Click" runat="server" Text="Agregar" CssClass="btn btn-primary" ValidationGroup="VGMPers" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<asp:UpdatePanel ID="UpMovtosPermanentes" UpdateMode="Conditional" runat="server">
<ContentTemplate>

View File

@@ -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

View File

@@ -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

View File

@@ -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 <b>'616 - Sin obligaciones fiscales'</b> 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 <b>'616 - Sin obligaciones fiscales'</b> 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 <b>'S01 - Sin efectos fiscales'</b> si no se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia)

View File

@@ -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

View File

@@ -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 <b>'616 - Sin obligaciones fiscales'</b> 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 <b>'616 - Sin obligaciones fiscales'</b> 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 <b>'S01 - Sin efectos fiscales'</b> 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