This commit is contained in:
2024-05-29 05:23:20 -07:00
11 changed files with 205 additions and 92 deletions

View File

@@ -1,75 +1,75 @@
Option Strict Off
Imports System.Collections.Concurrent
Imports Extensiones
Imports Microsoft.AspNet.SignalR
Public Enum TipoNotificacion As Integer
ToastInformacion = 5 'succes
ToastInformacionB = 6 'info
ToastError = 7 'error
ToastAdventencia = 8 'Warning
AlertaVentana = 2
AlertaVentanaNoOcultar = 1
End Enum
Public Class Notificaciones
Option Strict Off
Imports System.Collections.Concurrent
Imports Extensiones
Imports Microsoft.AspNet.SignalR
Public Enum TipoNotificacion As Integer
ToastInformacion = 5 'succes
ToastInformacionB = 6 'info
ToastError = 7 'error
ToastAdventencia = 8 'Warning
AlertaVentana = 2
AlertaVentanaNoOcultar = 1
End Enum
Public Class Notificaciones
Inherits Hub
Public Shared UsuariosConexiones As ConcurrentDictionary(Of String, String) = New ConcurrentDictionary(Of String, String)
Public Shared UsuariosConexiones As ConcurrentDictionary(Of String, String) = New ConcurrentDictionary(Of String, String)
Public Overrides Function OnConnected() As System.Threading.Tasks.Task
NotificarConexion()
Return MyBase.OnConnected()
End Function
Public Overrides Function OnReconnected() As System.Threading.Tasks.Task
NotificarConexion()
Return MyBase.OnReconnected()
End Function
Public Overrides Function OnDisconnected(stopCalled As Boolean) As Threading.Tasks.Task
Return MyBase.OnDisconnected(stopCalled)
NotificarConexion()
Return MyBase.OnConnected()
End Function
Public Sub NotificarConexion()
If Context.User.Identity.IsAuthenticated Then
Dim ConnectionId As String = Context.ConnectionId
Dim CveUsuario As String = Context.User.Identity.Name
If UsuariosConexiones.ContainsKey(CveUsuario) Then
If UsuariosConexiones(CveUsuario) <> Context.ConnectionId Then
UsuariosConexiones.TryUpdate(CveUsuario, Context.ConnectionId, UsuariosConexiones(CveUsuario))
End If
Else
If CveUsuario.ToEntero > 0 Then
UsuariosConexiones.TryAdd(CveUsuario, ConnectionId)
End If
End If
End If
Public Overrides Function OnReconnected() As System.Threading.Tasks.Task
NotificarConexion()
Return MyBase.OnReconnected()
End Function
Public Overrides Function OnDisconnected(stopCalled As Boolean) As Threading.Tasks.Task
Return MyBase.OnDisconnected(stopCalled)
End Function
Public Sub NotificarConexion()
If Context.User.Identity.IsAuthenticated Then
Dim ConnectionId As String = Context.ConnectionId
Dim CveUsuario As String = Context.User.Identity.Name
If UsuariosConexiones.ContainsKey(CveUsuario) Then
If UsuariosConexiones(CveUsuario) <> Context.ConnectionId Then
UsuariosConexiones.TryUpdate(CveUsuario, Context.ConnectionId, UsuariosConexiones(CveUsuario))
End If
Else
If CveUsuario.ToEntero > 0 Then
UsuariosConexiones.TryAdd(CveUsuario, ConnectionId)
End If
End If
End If
End Sub
Public Sub TestMessage(message As String)
Clients.All.testMessage(message)
End Sub
Public Sub AlertaVentana(Message As String, Para As String, Optional Titulo As String = "", Optional timeoutseconds As Integer = 5, Optional Tipo As TipoNotificacion = TipoNotificacion.AlertaVentanaNoOcultar)
Dim lPara As New List(Of String)
lPara.Add(Para)
AlertaVentana(Message, lPara, Titulo, timeoutseconds, Tipo)
End Sub
Public Sub AlertaVentana(Message As String, Para As List(Of String), Optional Titulo As String = "", Optional timeoutseconds As Integer = 5, Optional Tipo As TipoNotificacion = TipoNotificacion.AlertaVentanaNoOcultar)
If (Para IsNot Nothing) AndAlso Para.Count > 0 Then
Dim Clients As Hubs.IHubConnectionContext(Of Object) = GlobalHost.ConnectionManager.GetHubContext(Of Notificaciones)().Clients
Clients.Users(Para).AlertaVentana(Titulo, Message, DirectCast(Tipo, Integer), timeoutseconds)
End If
End Sub
End Class
Public Class MyhubUserIdProvider
Implements IUserIdProvider
Private Function IUserIdProvider_GetUserId(request As IRequest) As String Implements IUserIdProvider.GetUserId
Dim userId = Decripta(request.User.Identity.Name) 'MyCustomUserClass.FindUserId(request.User.Identity.Name)
Return userId.ToString()
End Function
End Class
Public Sub TestMessage(message As String)
Clients.All.testMessage(message)
End Sub
Public Sub AlertaVentana(Message As String, Para As String, Optional Titulo As String = "", Optional timeoutseconds As Integer = 5, Optional Tipo As TipoNotificacion = TipoNotificacion.AlertaVentanaNoOcultar)
Dim lPara As New List(Of String)
lPara.Add(Para)
AlertaVentana(Message, lPara, Titulo, timeoutseconds, Tipo)
End Sub
Public Sub AlertaVentana(Message As String, Para As List(Of String), Optional Titulo As String = "", Optional timeoutseconds As Integer = 5, Optional Tipo As TipoNotificacion = TipoNotificacion.AlertaVentanaNoOcultar)
If (Para IsNot Nothing) AndAlso Para.Count > 0 Then
Dim Clients As Hubs.IHubConnectionContext(Of Object) = GlobalHost.ConnectionManager.GetHubContext(Of Notificaciones)().Clients
Clients.Users(Para).AlertaVentana(Titulo, Message, DirectCast(Tipo, Integer), timeoutseconds)
End If
End Sub
End Class
Public Class MyhubUserIdProvider
Implements IUserIdProvider
Private Function IUserIdProvider_GetUserId(request As IRequest) As String Implements IUserIdProvider.GetUserId
Dim userId = Decripta(request.User.Identity.Name) 'MyCustomUserClass.FindUserId(request.User.Identity.Name)
Return userId.ToString()
End Function
End Class

View File

@@ -289,8 +289,13 @@ Partial Class Bancos_DepositosCaja
End If
End If
Dim CveTransaccionBanco As Integer = DdlTipoDeposito.SelectedValue.ToEntero
If CveTransaccionBanco = -1 Then
CveTransaccionBanco = 13
End If
If TotalImporte < 0 Then 'que es una devolución, entonces como es negativo, se cambia el concetpo de bancos, por condición de trigger
CveTransaccionBanco = 6
End If

View File

@@ -364,7 +364,7 @@
<div class="row">
<div class="col-md-3">
<br />
<b>Detalles del pago</b>
<b>Detalles de pago</b>
<asp:GridView ID="GvP" runat="server" AutoGenerateColumns="False" GridLines="None" CssClass="table table-striped table-advance table-hover" Width="100%">
<Columns>
<asp:BoundField HeaderText="Método Pago" DataField="MetodoPago" />
@@ -385,7 +385,7 @@
</div>
<div class="col-md-3" id="DivDep" runat="server" visible="false" style="max-height: 440px; overflow: auto">
<br />
<b>Depósitos Caja</b>
<b>Depósitos de caja</b>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvDep" runat="server" AutoGenerateColumns="False" GridLines="None" CssClass="table table-striped table-advance table-hover mysmallbtn ">
@@ -406,7 +406,7 @@
</div>
<div class="col-md-4" id="DivAnexo" runat="server" visible="false">
<br />
<b>Contabilidad</b>
<b>Estado contable de la caja</b>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvAnexo" runat="server" AutoGenerateColumns="False" GridLines="None" CssClass="table table-striped table-advance table-hover" Width="100%">

View File

@@ -3594,9 +3594,14 @@ Partial Class Compras_Compras
End If
End If
<<<<<<< HEAD
CargaRetIVAConcepto(True, ObjProveedor.DIOTCveTipoOperacion)
CargaRetISRConcepto(True, ObjProveedor.DIOTCveTipoOperacion)
CargaRetIVAConcepto(True, ObjProveedor.DIOTCveTipoOperacion)
CargaRetISRConcepto(True, ObjProveedor.DIOTCveTipoOperacion)
>>>>>>> GDiaz 2024.05.21
LbAgregar.Enabled = True
UpPSS.Update()
UpPS.Update()
@@ -3642,21 +3647,31 @@ Partial Class Compras_Compras
PorcentajeProntoPago = ObjProveedor.PorcentajeProntoPago
End If
<<<<<<< HEAD
=======
>>>>>>> GDiaz 2024.05.21
Else
Alert("El Proveedor solicitado no existe, por favor intente de nuevo.", TipoMensaje.MsgAdvertencia)
End If
If UsuarioActual.Empresa.Funcionalidad(560) = "1" Then
If ObjProveedor.GetProveedoresEvaluacionPediente(Me.CveProveedor, UsuarioActual.CveEmpresa) Then
If ObjProveedor.DtResultados.Rows.Count > 0 Then
Me.RequiereEvaluacion = ObjProveedor.DtResultados.Rows(0)("RequiereEvaluacion").ToString() = "1"
Me.CveUsuarioEvaluador = ObjProveedor.DtResultados.Rows(0)("CveUsuarioEvaluador").ToString().ToEntero()
End If
End If
End If
ObjProveedor.Dispose()
<<<<<<< HEAD
=======
>>>>>>> GDiaz 2024.05.21
If UsuarioActual.Empresa.Funcionalidad(560) = "1" Then
If ObjProveedor.GetProveedoresEvaluacionPediente(Me.CveProveedor, UsuarioActual.CveEmpresa) Then
If ObjProveedor.DtResultados.Rows.Count > 0 Then
Me.RequiereEvaluacion = ObjProveedor.DtResultados.Rows(0)("RequiereEvaluacion").ToString() = "1"
Me.CveUsuarioEvaluador = ObjProveedor.DtResultados.Rows(0)("CveUsuarioEvaluador").ToString().ToEntero()
End If
End If
End If
ObjProveedor.Dispose()
End Sub
Private Sub CargaAnticipos(CveProveedor As Integer, Optional FiltroTipo As String = "-1")

View File

@@ -3380,7 +3380,7 @@ Partial Class PopUpVerFactura
If UsuarioActual.CveEmpresa.Contiene(172, 173) Then
ImprimirPDFStimul("Empresas/Grales/Formatos/EntradaSalida.mrt", DtMovimientos, params, String.Format("Salida de Almacen - {0}", Folio.ToString))
Else
ImprimirPDF("Empresas/Grales/Formatos/EntradaSalida.rdlc", DtMovimientos, params, String.Format("Salida de Almacen - {0}", Folio.ToString), RDSName:="DsInventarios")
ImprimirPDF("Empresas/Grales/Formatos/Salida.rdlc", DtMovimientos, params, String.Format("Salida de Almacen - {0}", Folio.ToString), RDSName:="DsInventarios")
End If
End If

View File

@@ -155,7 +155,7 @@
<div class="row">
<div class="col-md-12">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtConcepto" runat="server" Width="100%" CssClass="form-control" ></asp:TextBox>
<asp:TextBox ID="TxtConcepto" runat="server" Width="100%" CssClass="form-control" onkeyup="asignaConcepto()" ClientIDMode="Static"></asp:TextBox>
<label for="<%= TxtConcepto.ClientID.ToString()%>">Concepto:</label>
<asp:RequiredFieldValidator ID="RFVConcepto" runat="server" ControlToValidate="TxtConcepto" Display="None" ErrorMessage="El campo <b>''Concepto''</b> es requerido, por favor ingrese uno." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEConcepto" runat="server" HighlightCssClass="vco" TargetControlID="RFVConcepto" Width="350px"></ajax:ValidatorCalloutExtender>
@@ -335,7 +335,7 @@
<HeaderTemplate>Concepto</HeaderTemplate>
<ItemTemplate>
<%--<asp:Literal ID="LrlConcepto" runat="server" Text='<%# Eval("Concepto")%>'></asp:Literal>--%>
<asp:TextBox ID="TxtConcepto" runat="server" Text='<%# Eval("Concepto")%>' Width="100%"></asp:TextBox>
<asp:TextBox ID="TxtConcepto" runat="server" Text='<%# Eval("Concepto")%>' Width="100%" CssClass="selTxtConcepto"></asp:TextBox>
</ItemTemplate>
<ItemStyle />
</asp:TemplateField>
@@ -1203,9 +1203,17 @@
}
function valorIE() {
}
function asignaConcepto() {
let valor = $('#TxtConcepto').val();
$('input[type="text"].selTxtConcepto').val(valor);
}
</script>
</asp:Content>

View File

@@ -2601,13 +2601,16 @@ Partial Class OC_OC
End If
If Not ValidaTotales() Then
TieneError = True
End If
Return TieneError
End Function
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click
If Not ValidaTotales() Then
Exit Sub
End If
'VALIDACIONES PARA GUARDAR
If ValidaGuardar() Then Exit Sub

View File

@@ -1734,8 +1734,15 @@ Partial Class Sistemas_UsuarioDetalle
Private Sub CargaDtSubProyectos()
Dim ClsUsuarios As New ClsSisUsuarios
If ClsUsuarios.GetSubProyectos(CveUsuario) Then
DtSubProyectos = ClsUsuarios.DtResultados
If ClsUsuarios.GetSubProyectos(CveUsuario) Then
DtSubProyectos = ClsUsuarios.DtResultados
If Not CveUsuario > 0 Then
DtSubProyectos.Rows.Clear()
DtSubProyectos.AcceptChanges()
End If
Else
DtSubProyectos = Nothing
Alert("Ocurrió un Error al cargar los SubProyectos del Usuario. Por favor vuelva a intentar", TipoMensaje.MsgError)
@@ -2256,8 +2263,15 @@ Partial Class Sistemas_UsuarioDetalle
DdlCuentasBancarias.DataBind()
DdlCuentasBancarias.Items.Insert(0, New ListItem("Seleccione", "-1"))
End Sub
Private Sub CargaDtCuentasBancarias()
Private Sub CargaDtCuentasBancarias()
DtCuentasBancarias = GlobalDTBancosCuentas(CveUsuario, -1, -1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros($"CveEmpresa = {DdlEmpresaAsignaciones.SelectedValue}")
If Not CveUsuario > 0 Then
DtCuentasBancarias.Rows.Clear()
DtCuentasBancarias.AcceptChanges()
End If
DtCuentasBancarias.Columns.Add("Accion", GetType(Integer))
CargaGvCuentasBancarias()

View File

@@ -191,6 +191,12 @@
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
<asp:UpdatePanel ID="UpHB" runat="server">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkCobrosEnTranscurso" runat="server" OnClick="LnkCobrosEnTranscurso_Click"><i class="fa fa-money"></i> Cobros en Transcurso</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LkbEstadodeCaja" Visible="false" runat="server"><i class="fa fa-ad-excel"></i> Estado de Caja</asp:LinkButton>
</li>
@@ -315,7 +321,7 @@
CssClass="btn btn-circle btn-sm blue" Text="<i class='fa fa-print'></i>" ToolTip="Imprimir"
OnClick="LnkImprimir_Click" Visible="false" />
&nbsp;
<asp:LinkButton ID="BtnPagar" runat="server" CssClass="btn btn-xs btn-success" Text="Cobrar" CommandName="Cobrar" CommandArgument='<%# Eval("CveVenta") %>' />
<asp:LinkButton ID="BtnPagar" runat="server" CssClass="btn btn-xs btn-success" Text="Cobrar" CommandName="Cobrar" CommandArgument='<%# Eval("CveVenta") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
@@ -952,6 +958,46 @@
</div>
<div id="DVModalCobrosEnTranscurso" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog" runat="server" ID="UpDVModalCobrosEnTranscurso" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header ">
<h4 class="modal-title">
<asp:Label ID="Label1" runat="server">Cobros en Transcurso</asp:Label>
</h4>
</div>
<div class="modal-body">
<asp:GridView ID="GvModalCobrosEnTranscurso" runat="server" AutoGenerateColumns="False" Width="100%"
EmptyDataText="Cobros en Transcursos" data-sort="true" ToolTip="Cobros en Transcurso"
CssClass="ScrollAD table table-striped table-hover Widthall mysmallbtn" data-heighterror="320" data-freezecols="0" data-freezerows="0" GridLines="None"
DataKeyNames="CveVenta,TipoDocto,Saldo,AtencionA,CveFormaPago33,SerieFolio">
<Columns>
<asp:BoundField HeaderText="Atención" DataField="AtencionA" />
<asp:HyperLinkField HeaderText="Folio" DataNavigateUrlFields="CveVenta" DataNavigateUrlFormatString="/Ventas/Ventas.aspx?CveVenta={0}" DataTextField="SerieFolio" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField HeaderText="Fecha/Hora" DataField="Fecha" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField HeaderText="Importe" DataField="Saldo" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Usuario" DataField="UsuarioCobranza" />
</Columns>
</asp:GridView>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
<script src="/Scripts/PrintJS/print.min.js"></script>

View File

@@ -1099,4 +1099,26 @@ Partial Class Ventas_PVCobranza
#End Region
Protected Sub LnkCobrosEnTranscurso_Click(sender As Object, e As EventArgs)
Dim ObjMovtos As New ClsMovimientos()
Dim FechaI, FechaF As Date
FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim().ToDate, MinFecha)
FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim().ToDate, MaxFecha).AddDays(1)
If ObjMovtos.GetRemisionesCobranza(UsuarioActual.CveEmpresa, DdlSubProyecto.SelectedValue.ToEntero, FechaI, FechaF) Then
Dim dtt As DataTable = ObjMovtos.DtResultados.FiltraParametros($"CveVenta > 0 AND CveUsuarioCobranza > 0 ")
GvModalCobrosEnTranscurso.DataSource = dtt
End If
ObjMovtos.Dispose()
GvModalCobrosEnTranscurso.DataBind()
UpDVModalCobrosEnTranscurso.Update()
RegistraScript("$('#DVModalCobrosEnTranscurso').modal('show');")
End Sub
End Class

View File

@@ -31362,7 +31362,7 @@ Partial Class Ventas
divAnticipoMsg.Visible = False
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
If UsuarioActual.Empresa.Funcionalidad(109) = "1" OrElse UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem") AndAlso DdlTipoAmortizacionAnticipo.SelectedValue = "4" Then
Dim DtMovtos As DataTable = Me.TmpDTAnticiposNCIxCCliente.FiltraParametros($"Saldo > 0 And SaldoSubtotal > 0 {If(CveVenta < 0, $"AND Tipo IN('NC','RNC','IxC') ", "")}")
divAmortizacionTipoRelacion.Visible = False
@@ -38190,7 +38190,7 @@ Partial Class Ventas
' $get('HdnTipoDescuento').value = '3'; MuestraAnticipos();
HdnTipoDescuento.Value = "3"
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
If UsuarioActual.Empresa.Funcionalidad(109) = "1" OrElse UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
If DdlTipoAmortizacionAnticipo.Items.FindByValue("4") Is Nothing Then
DdlTipoAmortizacionAnticipo.Items.Insert(1, New ListItem("Pago con devolución", "4"))
End If