This commit is contained in:
2024-05-11 07:27:35 -07:00
4 changed files with 120 additions and 48 deletions

View File

@@ -524,6 +524,29 @@ Public Class ClsCompProveedores
Return Retorno Return Retorno
End Function End Function
Public Function UpdateProveedorLimiteCredito(CveProveedor As Integer, LimiteCredito As Decimal, PlazoPago As Integer, UsaLimiteCredito As Boolean, CveUsuario As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Comp_ProveedorLimiteCreditoUpdate")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor
.Add("@LimiteCredito", SqlDbType.Money).Value = LimiteCredito
.Add("@PlazoPago", SqlDbType.Int).Value = PlazoPago
.Add("@UsaLimiteCredito", SqlDbType.Bit).Value = UsaLimiteCredito
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
OnError("Ocurrió un error al Actualizar el limite de crédito del Proveedor.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
End Function
Public Function UpdateProveedorPagoElectronico(EstatusPagoElectronico As Boolean, CveUsuario As Integer, CveProveedor As Integer) As Boolean Public Function UpdateProveedorPagoElectronico(EstatusPagoElectronico As Boolean, CveUsuario As Integer, CveProveedor As Integer) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
DataAdapter("PA_Comp_ProveedorUpdatePagoElectronico") DataAdapter("PA_Comp_ProveedorUpdatePagoElectronico")

View File

@@ -4139,8 +4139,10 @@ Partial Class Compras_Proveedores
End Sub End Sub
Private Sub LnkAddParametros_Click(sender As Object, e As EventArgs) Handles LnkAddParametros.Click Private Sub LnkAddParametros_Click(sender As Object, e As EventArgs) Handles LnkAddParametros.Click
LblLimiteCredito.Text = TxtLimiteCredito.Text.FormatoNumero LblLimiteCredito.Text = TxtLimiteCredito.Text.FormatoNumero
LblPlazoCobranza.Text = TxtPlazoCobranza.Text LblPlazoCobranza.Text = TxtPlazoCobranza.Text
If LblLimiteCredito.Text.ToDouble > 0 Then If LblLimiteCredito.Text.ToDouble > 0 Then
TdSaldo.Visible = True TdSaldo.Visible = True
TdSaldo2.Visible = True TdSaldo2.Visible = True
@@ -4149,9 +4151,24 @@ Partial Class Compras_Proveedores
TdSaldo.Visible = False TdSaldo.Visible = False
TdSaldo2.Visible = False TdSaldo2.Visible = False
End If End If
If CveProveedor > 0 Then
Dim ObjPro As New ClsCompProveedores
If ObjPro.UpdateProveedorLimiteCredito(CveProveedor, TxtLimiteCredito.Text.ToDecimal, TxtPlazoCobranza.Text.ToEntero, ChkUsaLimiteCredito.Checked, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
Alert("Limite de crédito modificado correctamente.")
RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddParametros"))
End If
ObjPro.Dispose()
Else
RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddParametros"))
End If
UPPCxP.Update() UPPCxP.Update()
UpParametros.Update() UpParametros.Update()
RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAddParametros"))
End Sub End Sub
Private Sub LnkCuentasBancarias_Click(sender As Object, e As EventArgs) Handles LnkCuentasBancarias.Click Private Sub LnkCuentasBancarias_Click(sender As Object, e As EventArgs) Handles LnkCuentasBancarias.Click

View File

@@ -247,7 +247,7 @@ Partial Class Ventas_CatAutorizacionLimites
Dim DiasVencidosAutorizacion As Integer = gvRow.DataKey("DiasVencidosAutorizacion").ToEntero() Dim DiasVencidosAutorizacion As Integer = gvRow.DataKey("DiasVencidosAutorizacion").ToEntero()
If DiasVencidos > DiasVencidosAutorizacion Then If DiasVencidos > DiasVencidosAutorizacion Then
Alert($"No se puede autorizar, los días vencidos del cliente son mayores a la autorización. Dias Vencidos: {DiasVencidos:N0}", TipoMensaje.MsgAdvertencia) Alert($"No se puede autorizar, los días vencidos del cliente son mayores a la autorización. Dias Vencidos: {DiasVencidos:N0} . Dias autorizados. {DiasVencidosAutorizacion:N0}", TipoMensaje.MsgAdvertencia)
Exit Sub Exit Sub
End If End If

View File

@@ -7635,23 +7635,7 @@ Partial Class Ventas
Bloqueo = True Bloqueo = True
End If End If
'SI ES AUTORIZACION DEBE PERMITIR GENERARLA If Bloqueo AndAlso UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
If Bloqueo Then
BtnEmitirImprimir.Visible = False
BtnsFacturar.Visible = False
LBFacturarAnticipo.Visible = UsuarioActual.TienePermisoProceso(274)
BtnGenerarRemision.Visible = False
LnkPedido2SinFacturar.Visible = False
LnkCotizaciones.Visible = False
LnkOCs.Visible = False
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
TieneBloqueoPorCreditoVencimiento = 1
End If
End If
If DdlTipoComprobante.SelectedValue = "Cot" AndAlso UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
Dim Autorizacion As Integer = 0 Dim Autorizacion As Integer = 0
Dim ObjVentas As New ClsVentas Dim ObjVentas As New ClsVentas
@@ -7672,11 +7656,28 @@ Partial Class Ventas
'SI NO TIENE AUTORIZACION, MANTIENE EL BLOQUEO POR CONDICIONES DE CREDITO 'SI NO TIENE AUTORIZACION, MANTIENE EL BLOQUEO POR CONDICIONES DE CREDITO
If Autorizacion > 0 Then If Autorizacion > 0 Then
BtnsFacturar.Visible = True Bloqueo = False
TieneBloqueoPorCreditoVencimiento = 0 TieneBloqueoPorCreditoVencimiento = 0
Alert("El cliente tiene una autorización aprobada")
End If End If
End If End If
'SI ES AUTORIZACION DEBE PERMITIR GENERARLA
If Bloqueo Then
BtnEmitirImprimir.Visible = False
BtnsFacturar.Visible = False
LBFacturarAnticipo.Visible = UsuarioActual.TienePermisoProceso(274)
BtnGenerarRemision.Visible = False
LnkPedido2SinFacturar.Visible = False
LnkCotizaciones.Visible = False
LnkOCs.Visible = False
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
TieneBloqueoPorCreditoVencimiento = 1
End If
End If
Else Else
' el cliente tiene crédito disponible, no tiene bloqueo ' el cliente tiene crédito disponible, no tiene bloqueo
@@ -7890,6 +7891,13 @@ Partial Class Ventas
If (ValidaRemision AndAlso DdlTipoComprobante.SelectedValue = "Rem") AndAlso RBLPago.SelectedValue = "1" Then If (ValidaRemision AndAlso DdlTipoComprobante.SelectedValue = "Rem") AndAlso RBLPago.SelectedValue = "1" Then
ValidaCondicionesCredito = True ValidaCondicionesCredito = True
End If End If
Else
'SI ES VENTA NUEVA VALIDA AUNQUE NO PERMITA CREDITO
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot") Then
ValidaCondicionesCredito = True
End If
End If
End If End If
If ValidaCondicionesCredito Then If ValidaCondicionesCredito Then
@@ -7905,34 +7913,53 @@ Partial Class Ventas
Vta.Dispose() Vta.Dispose()
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
Dim Autorizacion As Integer = 0
Dim ObjVentas As New ClsVentas Dim BloquearCliente As Boolean = False
If ObjVentas.GetAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, DdlVendedor.SelectedValue.ToEntero, "Ing", CveEstatus:=1) Then
Dim RowAutorizacion As DataRow = Nothing 'CREDITO NO SUFICIENTE
'SI TIENE DIAS VENCIDOS BUSCAR POR TIPO VENCIMIENTO If Opcion = 3 Then
If TieneDiasVencidos Then 'Dim CreditoDispo As Decimal = CargaCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero())
RowAutorizacion = ObjVentas.DtResultados.FiltroPrimero($"TipoAutorizacion IN(1,2) AND CveVenta IS NULL AND CveTipoDocumento='Ing'", Orderby:="Importe DESC") 'If CreditoDispo < 0 AndAlso RBLPago.SelectedValue = "1" Then
Else ' BloquearCliente = True
RowAutorizacion = ObjVentas.DtResultados.FiltroPrimero($"TipoAutorizacion = 1 AND CveVenta IS NULL AND CveTipoDocumento='Ing'", Orderby:="Importe DESC") 'End If
BloquearCliente = True
'FACTURAS CON VENCIMIENTO
ElseIf Opcion = 2 Then
BloquearCliente = True
End If
If BloquearCliente Then
Dim Autorizacion As Integer = 0
Dim ObjVentas As New ClsVentas
If ObjVentas.GetAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, DdlVendedor.SelectedValue.ToEntero, "Ing", CveEstatus:=1) Then
Dim RowAutorizacion As DataRow = Nothing
'SI TIENE DIAS VENCIDOS BUSCAR POR TIPO VENCIMIENTO
If TieneDiasVencidos Then
RowAutorizacion = ObjVentas.DtResultados.FiltroPrimero($"TipoAutorizacion IN(1,2) AND CveVenta IS NULL AND CveTipoDocumento='Ing'", Orderby:="Importe DESC")
Else
RowAutorizacion = ObjVentas.DtResultados.FiltroPrimero($"TipoAutorizacion = 1 AND CveVenta IS NULL AND CveTipoDocumento='Ing'", Orderby:="Importe DESC")
End If
If RowAutorizacion IsNot Nothing Then
Autorizacion = RowAutorizacion("CveAutorizacion").ToString().ToEntero()
End If
End If End If
ObjVentas.Dispose()
If RowAutorizacion IsNot Nothing Then 'SI NO TIENE AUTORIZACION, MANTIENE EL BLOQUEO POR CONDICIONES DE CREDITO
Autorizacion = RowAutorizacion("CveAutorizacion").ToString().ToEntero() If Opcion > 0 AndAlso Autorizacion <= 0 Then
Alert(OpcionMsg, TipoMensaje.MsgAdvertencia)
BtnsFacturar.Visible = False
BtnGenerarRemision.Visible = False
BtnEmitirImprimir.Visible = False
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso ClienteEsDistribuidor AndAlso Opcion.Contiene(2, 3) Then
TieneBloqueoPorCreditoVencimiento = 1
End If
End If End If
End If End If
ObjVentas.Dispose()
'SI NO TIENE AUTORIZACION, MANTIENE EL BLOQUEO POR CONDICIONES DE CREDITO
If Opcion > 0 AndAlso Autorizacion <= 0 Then
Alert(OpcionMsg, TipoMensaje.MsgAdvertencia)
BtnsFacturar.Visible = False
BtnGenerarRemision.Visible = False
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso ClienteEsDistribuidor AndAlso Opcion.Contiene(2, 3) Then
TieneBloqueoPorCreditoVencimiento = 1
End If
End If
Else Else
If Opcion > 0 Then If Opcion > 0 Then
@@ -18161,18 +18188,18 @@ Partial Class Ventas
'VALIDA ESTATUS CLIENTE - SOLO SE PUEDE USAR EL CLIENTE PARA COTIZAR EN CASO DE ESTAR INACTIVO 'VALIDA ESTATUS CLIENTE - SOLO SE PUEDE USAR EL CLIENTE PARA COTIZAR EN CASO DE ESTAR INACTIVO
If EsCreaApartirDe OrElse ModalidadEdicion OrElse CveVenta <= 0 Then If EsCreaApartirDe OrElse ModalidadEdicion OrElse CveVenta <= 0 Then
If DdlTipoComprobante.SelectedValue.Contiene("Cot", "DPe") Or TipoContrato >= 0 Then 'SI VIENE DE PEDIDO DE AF DESDE CONTRATO NO BLOQUEA CUANDO EL CLIENTE ESTA INACTIVO If DdlTipoComprobante.SelectedValue.Contiene("Cot", "DPe") Or TipoContrato >= 0 Then 'SI VIENE DE PEDIDO DE AF DESDE CONTRATO NO BLOQUEA CUANDO EL CLIENTE ESTA INACTIVO
BtnEmitirImprimir.Visible = True BtnEmitirImprimir.Visible = TieneBloqueoPorCreditoVencimiento = 0
TrVistaPrevia.Visible = True TrVistaPrevia.Visible = TieneBloqueoPorCreditoVencimiento = 0
Else Else
If LblCliente.Text <> "Cliente" And Not EstatusCliente Then If LblCliente.Text <> "Cliente" And Not EstatusCliente Then
Alert("El Cliente seleccionado no esta activo", TipoMensaje.MsgAdvertencia) Alert("El Cliente seleccionado no esta activo", TipoMensaje.MsgAdvertencia)
End If End If
If Not CveEmpresaCRM > 0 Then If Not CveEmpresaCRM > 0 Then
BtnEmitirImprimir.Visible = EstatusCliente BtnEmitirImprimir.Visible = EstatusCliente AndAlso TieneBloqueoPorCreditoVencimiento = 0
TrVistaPrevia.Visible = EstatusCliente TrVistaPrevia.Visible = EstatusCliente AndAlso TieneBloqueoPorCreditoVencimiento = 0
Else Else
BtnEmitirImprimir.Visible = True BtnEmitirImprimir.Visible = TieneBloqueoPorCreditoVencimiento = 0
TrVistaPrevia.Visible = True TrVistaPrevia.Visible = TieneBloqueoPorCreditoVencimiento = 0
End If End If
End If End If
@@ -29563,6 +29590,11 @@ Partial Class Ventas
UpCliente.Update() UpCliente.Update()
End If End If
'SI NO ESTA VISIBLE, HABILITAR PARA GENERAR LA NC
If Not BtnEmitirImprimir.Visible Then
BtnEmitirImprimir.Visible = True
End If
Catch ex As Exception Catch ex As Exception
OnError("Ocurrió un error al aplicar NC", ex) OnError("Ocurrió un error al aplicar NC", ex)
End Try End Try