Funcionalidad para limite de credito y restricciones de venta
This commit is contained in:
@@ -2243,7 +2243,7 @@ Partial Class Ventas
|
|||||||
|
|
||||||
CargaClasificaciones()
|
CargaClasificaciones()
|
||||||
CargaPS(-1, DdlPS)
|
CargaPS(-1, DdlPS)
|
||||||
CargaPSRemision(-1, DdlPSRemision)
|
'CargaPSRemision(-1, DdlPSRemision)
|
||||||
CargaPSPyME(-1, DdlPSPyME)
|
CargaPSPyME(-1, DdlPSPyME)
|
||||||
|
|
||||||
CreaDTVentas()
|
CreaDTVentas()
|
||||||
@@ -5181,7 +5181,8 @@ Partial Class Ventas
|
|||||||
AgregarProductoServicio(dr("Cantidad").ToString().ToDecimal, dr("CveUM").ToString().ToEntero(), dr("UM").ToString(), dr("CveClasificacion").ToString().ToEntero(), dr("Clasificacion").ToString(),
|
AgregarProductoServicio(dr("Cantidad").ToString().ToDecimal, dr("CveUM").ToString().ToEntero(), dr("UM").ToString(), dr("CveClasificacion").ToString().ToEntero(), dr("Clasificacion").ToString(),
|
||||||
dr("CvePS").ToString().ToEntero(), dr("PS").ToString(), dr("Obs").ToString(), dr("PU").ToString().ToDecimal, dr("Descuento").ToString().ToDecimal,
|
dr("CvePS").ToString().ToEntero(), dr("PS").ToString(), dr("Obs").ToString(), dr("PU").ToString().ToDecimal, dr("Descuento").ToString().ToDecimal,
|
||||||
dr("CveProyecto").ToString().ToEntero(), dr("Proyecto").ToString(), dr("CveSubProyecto").ToString().ToEntero(), dr("SubProyecto").ToString(),
|
dr("CveProyecto").ToString().ToEntero(), dr("Proyecto").ToString(), dr("CveSubProyecto").ToString().ToEntero(), dr("SubProyecto").ToString(),
|
||||||
CveContratoDetalle:=dr("CveContratoDetalle").ToString().ToEntero(), CveVentaDetalleCotizacion:=dr("CveVentaDetalleCotizacion").ToString().ToEntero(), RegeneraIEPS:=False, SeActualiza:=True)
|
CveContratoDetalle:=dr("CveContratoDetalle").ToString().ToEntero(), CveVentaDetalleCotizacion:=dr("CveVentaDetalleCotizacion").ToString().ToEntero(),
|
||||||
|
CveVentaDetalle:=dr("CveVentaDetalle").ToString().ToEntero(), RegeneraIEPS:=False, SeActualiza:=True)
|
||||||
|
|
||||||
|
|
||||||
Next
|
Next
|
||||||
@@ -5595,15 +5596,11 @@ Partial Class Ventas
|
|||||||
ViewState("Vendedor") = ObjCliente.Vendedor
|
ViewState("Vendedor") = ObjCliente.Vendedor
|
||||||
ViewState("CtaContable") = ObjCliente.CuentaContable
|
ViewState("CtaContable") = ObjCliente.CuentaContable
|
||||||
ViewState("IdCtaContClientes") = ObjCliente.IdCtaContClientes
|
ViewState("IdCtaContClientes") = ObjCliente.IdCtaContClientes
|
||||||
ViewState("CveCuentaClientes") = ObjCliente.CveCuentaClientes
|
|
||||||
ViewState("IdCtaContMonedaExtranjera") = ObjCliente.IdCtaContMonedaExtranjera
|
ViewState("IdCtaContMonedaExtranjera") = ObjCliente.IdCtaContMonedaExtranjera
|
||||||
ViewState("IdCtaContComplementaria") = ObjCliente.IdCtaContComplementaria
|
ViewState("IdCtaContComplementaria") = ObjCliente.IdCtaContComplementaria
|
||||||
ViewState("IdCtaContAnticipos") = ObjCliente.IdCtaContAnticipos
|
ViewState("IdCtaContAnticipos") = ObjCliente.IdCtaContAnticipos
|
||||||
ViewState("CveCuentaAnticipos") = ObjCliente.CveCuentaAnticipos
|
|
||||||
ViewState("IdCtaContRetIVA") = ObjCliente.IdCtaContRetIVA
|
ViewState("IdCtaContRetIVA") = ObjCliente.IdCtaContRetIVA
|
||||||
ViewState("CveCuentaRetIVA") = ObjCliente.CveCuentaRetIVA
|
|
||||||
ViewState("IdCtaContRetISR") = ObjCliente.IdCtaContRetISR
|
ViewState("IdCtaContRetISR") = ObjCliente.IdCtaContRetISR
|
||||||
ViewState("CveCuentaRetISR") = ObjCliente.CveCuentaRetISR
|
|
||||||
ViewState("CodCliente") = ObjCliente.Codigo
|
ViewState("CodCliente") = ObjCliente.Codigo
|
||||||
|
|
||||||
ViewState("CvePrecioLista") = ObjCliente.CvePrecioLista
|
ViewState("CvePrecioLista") = ObjCliente.CvePrecioLista
|
||||||
@@ -6148,25 +6145,10 @@ Partial Class Ventas
|
|||||||
End Sub
|
End Sub
|
||||||
Private Sub CargaRestriccionesCreditoCliente(Optional Alertas As Boolean = False, Optional CveVenta As Integer = -1)
|
Private Sub CargaRestriccionesCreditoCliente(Optional Alertas As Boolean = False, Optional CveVenta As Integer = -1)
|
||||||
|
|
||||||
'RMF. validacion temporal
|
Dim ValorAutorizacion As String = UsuarioActual.Empresa.Funcionalidad(595)
|
||||||
'verifica si tiene autorizaciones de Nota de crédito autorizadas
|
|
||||||
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then ' si es empresa de acumuladores
|
|
||||||
Dim ObjVentas As New ClsVentas
|
|
||||||
|
|
||||||
If ObjVentas.GetAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, -1, CveEstatus:=1) Then
|
|
||||||
Dim RowAutorizacion As DataRow = ObjVentas.DtResultados.FiltroPrimero($"CveVenta IS NULL AND CveTipoDocumento='Egs'", Orderby:="TipoAutorizacion")
|
|
||||||
|
|
||||||
If RowAutorizacion IsNot Nothing Then
|
|
||||||
DdlTipoComprobante.SelectedValueExistInsert("Egs", "Egresos")
|
|
||||||
End If
|
|
||||||
|
|
||||||
End If
|
|
||||||
|
|
||||||
ObjVentas.Dispose()
|
|
||||||
End If
|
|
||||||
|
|
||||||
'OBLIGAR PAGO DE CONTADO SI EL CLIENTE NO PERMITE CREDITO
|
'OBLIGAR PAGO DE CONTADO SI EL CLIENTE NO PERMITE CREDITO
|
||||||
If UsuarioActual.Empresa.Funcionalidad(570) = "1" AndAlso Me.PermiteCredito = False AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") AndAlso CveVenta < 1 Then
|
If UsuarioActual.Empresa.Funcionalidad(570) = "1" AndAlso Me.PermiteCredito = False AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") AndAlso CveVenta <= 0 Then
|
||||||
RBLPago.SelectedValue = "2"
|
RBLPago.SelectedValue = "2"
|
||||||
RBLPago.Items(0).Enabled = False
|
RBLPago.Items(0).Enabled = False
|
||||||
RBLPago_SelectedIndexChanged(Nothing, Nothing)
|
RBLPago_SelectedIndexChanged(Nothing, Nothing)
|
||||||
@@ -6187,19 +6169,22 @@ Partial Class Ventas
|
|||||||
End If
|
End If
|
||||||
UPCondicionesPago.Update()
|
UPCondicionesPago.Update()
|
||||||
'CARGAR CREDITO DISPONIBLE AL GENERAR UNA FACTURA
|
'CARGAR CREDITO DISPONIBLE AL GENERAR UNA FACTURA
|
||||||
ElseIf UsuarioActual.Empresa.Funcionalidad(596) = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot", "PA") AndAlso CveVenta < 1 Then
|
End If
|
||||||
|
|
||||||
|
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot", "PA") AndAlso CveVenta <= 0 AndAlso RBLPago.SelectedValue = "1" AndAlso PermiteCredito Then
|
||||||
|
If Not UsuarioActual.Empresa.Funcionalidad(702) = "1" Then
|
||||||
RBLPago.SelectedValue = "1"
|
RBLPago.SelectedValue = "1"
|
||||||
RBLPago_SelectedIndexChanged(Nothing, Nothing)
|
RBLPago_SelectedIndexChanged(Nothing, Nothing)
|
||||||
UPCondicionesPago.Update()
|
UPCondicionesPago.Update()
|
||||||
|
|
||||||
Dim CreditoDispo As Decimal = CargaCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero())
|
Dim CreditoDispo As Decimal = CargaCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero())
|
||||||
|
|
||||||
If CreditoDispo > 0 Then
|
If CreditoDispo > 0 Then
|
||||||
TrCreditoDisponible.Visible = True
|
TrCreditoDisponible.Visible = True
|
||||||
LblCreditoDisponible.Text = CreditoDispo.FormatoNumero
|
LblCreditoDisponible.Text = CreditoDispo.FormatoNumero
|
||||||
If PorcentajeCredito > 80 Then TrPorcentajeCredito.Visible = True : LblPorcentajeCredito.Text = $"{PorcentajeCredito.FormatoNumero}%"
|
If PorcentajeCredito > 80 Then TrPorcentajeCredito.Visible = True : LblPorcentajeCredito.Text = $"{PorcentajeCredito.FormatoNumero}%"
|
||||||
If UsuarioActual.Empresa.Funcionalidad(597) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(268) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "PA") Then
|
|
||||||
|
|
||||||
|
|
||||||
|
If Not UsuarioActual.TienePermisoProceso(268) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "PA") Then
|
||||||
Dim Vta As New ClsVentas
|
Dim Vta As New ClsVentas
|
||||||
Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa)
|
Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa)
|
||||||
Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón: <br> <br> {0}", Vta.SerieVenta)
|
Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón: <br> <br> {0}", Vta.SerieVenta)
|
||||||
@@ -6242,19 +6227,15 @@ Partial Class Ventas
|
|||||||
TxtFechaPago.Text = If(DdlTipoComprobante.SelectedValue = "Rem", Now.AddDays(PlazoCobranzaRemision), Now.AddDays(PlazoCobranza)).ToShortDateString
|
TxtFechaPago.Text = If(DdlTipoComprobante.SelectedValue = "Rem", Now.AddDays(PlazoCobranzaRemision), Now.AddDays(PlazoCobranza)).ToShortDateString
|
||||||
End If
|
End If
|
||||||
|
|
||||||
'Else
|
|
||||||
' 'que no de crédito, solo contado
|
|
||||||
' RBLPago.SelectedValue = "2"
|
|
||||||
' RBLPago.Items(0).Enabled = False
|
|
||||||
'End If
|
|
||||||
|
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
'GENERAR AUTORIZACION SI TIENE EXCEDIO EL LIMITE DE CREDITO
|
'GENERAR AUTORIZACION SI TIENE EXCEDIO EL LIMITE DE CREDITO
|
||||||
If UsuarioActual.Empresa.Funcionalidad(595) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(268) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "Ant", "PA") Then
|
Select Case ValorAutorizacion
|
||||||
|
Case "1" 'CREAR DOCUMENTO DE AUTORIZACION PA
|
||||||
|
If Not UsuarioActual.TienePermisoProceso(268) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "Ant", "PA") Then
|
||||||
|
|
||||||
'VERIFICAR CANDADOS DE VENTA, REMISIONES SIN FACTURAR, FACTURAS QUE NO TENGAN VENCIDAS
|
'VERIFICAR CANDADOS DE VENTA, REMISIONES SIN FACTURAR, FACTURAS QUE NO TENGAN VENCIDAS
|
||||||
If UsuarioActual.Empresa.Funcionalidad(597) = "1" Then
|
|
||||||
Dim Vta As New ClsVentas
|
Dim Vta As New ClsVentas
|
||||||
Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa)
|
Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa)
|
||||||
Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón: <br> <br> {0}", Vta.SerieVenta)
|
Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón: <br> <br> {0}", Vta.SerieVenta)
|
||||||
@@ -6265,8 +6246,7 @@ Partial Class Ventas
|
|||||||
End If
|
End If
|
||||||
If Alertas Then Alert(OpcionMsg, TipoMensaje.MsgAdvertencia)
|
If Alertas Then Alert(OpcionMsg, TipoMensaje.MsgAdvertencia)
|
||||||
Else
|
Else
|
||||||
If Alertas AndAlso UsuarioActual.Empresa.Funcionalidad(518) = "1" Then Alert("El cliente tiene su límite de crédito agotado.", TipoMensaje.MsgAdvertencia)
|
If Alertas Then Alert("El cliente tiene su límite de crédito agotado.", TipoMensaje.MsgAdvertencia)
|
||||||
End If
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
'RBLPago.SelectedValue = "2"
|
'RBLPago.SelectedValue = "2"
|
||||||
@@ -6289,8 +6269,19 @@ Partial Class Ventas
|
|||||||
LnkPedido2SinFacturar.Visible = False
|
LnkPedido2SinFacturar.Visible = False
|
||||||
LnkCotizaciones.Visible = False
|
LnkCotizaciones.Visible = False
|
||||||
LnkOCs.Visible = False
|
LnkOCs.Visible = False
|
||||||
|
End If
|
||||||
Else
|
Case "2" 'Autorizacion desde una solicitud del catalogo de autorizaciones
|
||||||
|
'RMF. validacion temporal
|
||||||
|
'verifica si tiene autorizaciones de Nota de crédito autorizadas
|
||||||
|
Dim ObjVentas As New ClsVentas
|
||||||
|
If ObjVentas.GetAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, -1, CveEstatus:=1) Then
|
||||||
|
Dim RowAutorizacion As DataRow = ObjVentas.DtResultados.FiltroPrimero($"CveVenta IS NULL AND CveTipoDocumento='Egs'", Orderby:="TipoAutorizacion")
|
||||||
|
If RowAutorizacion IsNot Nothing Then
|
||||||
|
DdlTipoComprobante.SelectedValueExistInsert("Egs", "Egresos")
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
ObjVentas.Dispose()
|
||||||
|
Case Else 'SI NO TIENE NINGUN TIPO DE AUTORIZACION CONFIGURADO
|
||||||
'RMF. codigo temporal para pruebas
|
'RMF. codigo temporal para pruebas
|
||||||
If Alertas AndAlso UsuarioActual.CveEmpresa = 140 AndAlso UsuarioActual.CveUsuario.Contiene(100, 1937, 2275) AndAlso Now.Hour > 5 AndAlso Now.Hour < 9 Then
|
If Alertas AndAlso UsuarioActual.CveEmpresa = 140 AndAlso UsuarioActual.CveUsuario.Contiene(100, 1937, 2275) AndAlso Now.Hour > 5 AndAlso Now.Hour < 9 Then
|
||||||
Dim Vta As New ClsVentas
|
Dim Vta As New ClsVentas
|
||||||
@@ -6310,7 +6301,7 @@ Partial Class Ventas
|
|||||||
UPCondicionesPago.Update()
|
UPCondicionesPago.Update()
|
||||||
Else
|
Else
|
||||||
'este codigo no es temporal
|
'este codigo no es temporal
|
||||||
If Alertas AndAlso UsuarioActual.Empresa.Funcionalidad(518) = "1" Then Alert("El cliente tiene su límite de crédito agotado.", TipoMensaje.MsgAdvertencia)
|
If Alertas Then Alert("El cliente tiene su límite de crédito agotado.", TipoMensaje.MsgAdvertencia)
|
||||||
If UsuarioActual.CveEmpresa = 140 Then
|
If UsuarioActual.CveEmpresa = 140 Then
|
||||||
LnkSolicitarCredito.Visible = True
|
LnkSolicitarCredito.Visible = True
|
||||||
DdlTipoAutorizacion.SelectedValueExist("1")
|
DdlTipoAutorizacion.SelectedValueExist("1")
|
||||||
@@ -6319,77 +6310,12 @@ Partial Class Ventas
|
|||||||
|
|
||||||
|
|
||||||
End If
|
End If
|
||||||
End If
|
End Select
|
||||||
End If
|
|
||||||
UPPCreditoDisponible.Update()
|
|
||||||
'Si tiene credito disponible, Verificar limites de (verificar candados de venta, remisiones sin facturar, facturas que no tengan vencidas)
|
|
||||||
ElseIf UsuarioActual.Empresa.Funcionalidad(597) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(268) AndAlso CveVenta > 0 AndAlso (DdlTipoComprobante.SelectedValue.Contiene("Pd2", "Cot") Or (DdlTipoComprobante.SelectedValue = "Rem" And ModalidadEdicion And ViewState("CveClienteAnterior").ToString().ToEntero() > 0 And LblRFC.Text.Trim <> "XAXX010101000")) Then
|
|
||||||
Dim CreditoDispo As Decimal = CargaCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero())
|
|
||||||
If CreditoDispo > 0 Then
|
|
||||||
Dim Vta As New ClsVentas
|
|
||||||
Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa)
|
|
||||||
Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón: <br> <br> {0}", Vta.SerieVenta)
|
|
||||||
Vta.Dispose()
|
|
||||||
If Opcion > 0 Then
|
|
||||||
If ModalidadEdicion AndAlso ViewState("CveCliente").ToString().ToEntero() <> ViewState("CveClienteAnterior").ToString().ToEntero() And DdlTipoComprobante.SelectedValue = "Rem" And ViewState("CveClienteAnterior").ToString().ToEntero() > 0 And LblRFC.Text.Trim <> "XAXX010101000" Then
|
|
||||||
ViewState("CveCliente") = ViewState("CveClienteAnterior").ToString().ToEntero()
|
|
||||||
|
|
||||||
CargaCliente(ViewState("CveCliente").ToString().ToEntero())
|
|
||||||
If Opcion > 0 Then
|
|
||||||
If Alertas Then Alert(OpcionMsg, TipoMensaje.MsgAdvertencia)
|
|
||||||
Else
|
|
||||||
If Alertas Then Alert("El cliente tiene su límite de crédito agotado.", TipoMensaje.MsgAdvertencia)
|
|
||||||
End If
|
|
||||||
BtnEmitirImprimir.Visible = False
|
|
||||||
BtnVistaPrevia.Visible = False
|
|
||||||
UpFacturar.Update()
|
|
||||||
Exit Sub
|
|
||||||
ElseIf DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso EsCreaApartirDe Then
|
|
||||||
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ing"))
|
|
||||||
If Not UsuarioActual.TienePermisoProceso(325) Then
|
|
||||||
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ant"))
|
|
||||||
End If
|
|
||||||
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Rem"))
|
|
||||||
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Pd2"))
|
|
||||||
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Egs"))
|
|
||||||
BtnGenerarRemision.Visible = False
|
|
||||||
BtnGenerarOS.Visible = False
|
|
||||||
BtnEmitirImprimir.Visible = True
|
|
||||||
BtnsFacturar.Visible = False
|
|
||||||
LBFacturarAnticipo.Visible = UsuarioActual.TienePermisoProceso(274)
|
|
||||||
Else
|
|
||||||
If DdlTipoComprobante.SelectedValue.Contiene("Pd2") Then
|
|
||||||
BtnGeneraAutorizacion.Visible = If(CveEstatus <> 21, True, False)
|
|
||||||
End If
|
|
||||||
BtnGenerarRemision.Visible = False
|
|
||||||
BtnGenerarOS.Visible = False
|
|
||||||
BtnEmitirImprimir.Visible = False
|
|
||||||
BtnsFacturar.Visible = False
|
|
||||||
LBFacturarAnticipo.Visible = UsuarioActual.TienePermisoProceso(274)
|
|
||||||
If ViewState("CveCliente").ToString().ToEntero() <> ViewState("CveClienteAnterior").ToString().ToEntero() Then
|
|
||||||
If Opcion > 0 Then
|
|
||||||
If Alertas Then Alert(OpcionMsg, TipoMensaje.MsgAdvertencia)
|
|
||||||
Else
|
|
||||||
If Alertas Then Alert("El cliente tiene límite de crédito agotado.", TipoMensaje.MsgAdvertencia)
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
BtnGeneraAutorizacion.Visible = False
|
|
||||||
If DdlTipoComprobante.SelectedValue.Contiene("Pd2") Then
|
|
||||||
If UsuarioActual.TienePermisoProceso(199) Then
|
|
||||||
BtnGenerarRemision.Visible = If(CveEstatus <> 21, True, False)
|
|
||||||
Else
|
|
||||||
BtnGenerarRemision.Visible = False
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
BtnGenerarRemision.Visible = False
|
|
||||||
If DdlTipoComprobante.SelectedValue.Contiene("Pd2") Then
|
|
||||||
BtnGeneraAutorizacion.Visible = If(CveEstatus <> 21, True, False)
|
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
UPPCreditoDisponible.Update()
|
||||||
End If
|
End If
|
||||||
|
|
||||||
'Puede hacer pedido
|
'Puede hacer pedido
|
||||||
@@ -6556,8 +6482,6 @@ Partial Class Ventas
|
|||||||
End Sub
|
End Sub
|
||||||
Private Function CargaCreditoDisponible(tCveCliente As Integer, tCveSucursalCliente As Integer, Optional ByRef ObjVentas As ClsVentas = Nothing) As Decimal
|
Private Function CargaCreditoDisponible(tCveCliente As Integer, tCveSucursalCliente As Integer, Optional ByRef ObjVentas As ClsVentas = Nothing) As Decimal
|
||||||
Dim Retorno As Decimal = 0
|
Dim Retorno As Decimal = 0
|
||||||
If UsuarioActual.Empresa.Funcionalidad(518) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(185) Then
|
|
||||||
|
|
||||||
Dim ObjVentasAplciar As ClsVentas = Nothing
|
Dim ObjVentasAplciar As ClsVentas = Nothing
|
||||||
If ObjVentas IsNot Nothing Then
|
If ObjVentas IsNot Nothing Then
|
||||||
ObjVentasAplciar = ObjVentas
|
ObjVentasAplciar = ObjVentas
|
||||||
@@ -6598,8 +6522,6 @@ Partial Class Ventas
|
|||||||
If ObjVentas Is Nothing Then
|
If ObjVentas Is Nothing Then
|
||||||
ObjVentasAplciar.Dispose()
|
ObjVentasAplciar.Dispose()
|
||||||
End If
|
End If
|
||||||
|
|
||||||
End If
|
|
||||||
Return Retorno
|
Return Retorno
|
||||||
End Function
|
End Function
|
||||||
Private Sub CargaDdlSubProyectos()
|
Private Sub CargaDdlSubProyectos()
|
||||||
@@ -7635,7 +7557,7 @@ Partial Class Ventas
|
|||||||
|
|
||||||
'No exceder el limite de credito, Si no tiene contrato limita el credito, si tiene no hace nada. Si no tiene remisiones tampoco hace nada.
|
'No exceder el limite de credito, Si no tiene contrato limita el credito, si tiene no hace nada. Si no tiene remisiones tampoco hace nada.
|
||||||
If (Not CveContrato > 0 Or CveContratoTipo.Contiene(28)) AndAlso (Not NuevaFactura = 1) AndAlso RBLPago.SelectedValue = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Ant") AndAlso RemisionesLista.Count <= 0 AndAlso TxtTotal.Text.ToDecimal > 0 AndAlso Not CvePedidoA > 0 Then
|
If (Not CveContrato > 0 Or CveContratoTipo.Contiene(28)) AndAlso (Not NuevaFactura = 1) AndAlso RBLPago.SelectedValue = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Ant") AndAlso RemisionesLista.Count <= 0 AndAlso TxtTotal.Text.ToDecimal > 0 AndAlso Not CvePedidoA > 0 Then
|
||||||
If UsuarioActual.Empresa.Funcionalidad(518) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(185) Then
|
'If UsuarioActual.Empresa.Funcionalidad(518) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(185) Then
|
||||||
Dim ObjVentas As New ClsVentas
|
Dim ObjVentas As New ClsVentas
|
||||||
|
|
||||||
If ObjVentas.ObtenerCreditoRestante(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero()) Then
|
If ObjVentas.ObtenerCreditoRestante(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero()) Then
|
||||||
@@ -7666,7 +7588,7 @@ Partial Class Ventas
|
|||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
ObjVentas.Dispose()
|
ObjVentas.Dispose()
|
||||||
End If
|
'End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
@@ -8239,15 +8161,17 @@ Partial Class Ventas
|
|||||||
Dim DtMovDetalles As DataTable = Nothing
|
Dim DtMovDetalles As DataTable = Nothing
|
||||||
If ObjInventario.GetSaldoVentaDetalle(CveDevolucion, UsuarioActual.CveEmpresa) Then
|
If ObjInventario.GetSaldoVentaDetalle(CveDevolucion, UsuarioActual.CveEmpresa) Then
|
||||||
DtMovDetalles = ObjInventario.DtResultados.Copy()
|
DtMovDetalles = ObjInventario.DtResultados.Copy()
|
||||||
|
Else
|
||||||
|
ErrorList.Add("No se pudo verificar los movimientos de almacen de la factura")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If DtMovDetalles IsNot Nothing Then
|
If DtMovDetalles IsNot Nothing Then
|
||||||
For Each Row As DataRow In DtMovDetalles.Rows
|
For Each Row As DataRow In DtMovDetalles.Rows
|
||||||
Dim SaldoAlmacen As Decimal = Row("SaldoAlmacen").ToString().ToEntero()
|
Dim SaldoAlmacen As Decimal = Row("SaldoAlmacen").ToString().ToDecimal()
|
||||||
If SaldoAlmacen < 0 Then
|
If SaldoAlmacen < 0 Then
|
||||||
ObjInventario.UpdateEstatusAlmacen(Row("CveVentaDetalleNueva").ToString().ToEntero(), 1)
|
If Not ObjInventario.UpdateEstatusAlmacen(Row("CveVentaDetalleNueva").ToString().ToEntero(), 1) Then
|
||||||
ElseIf SaldoAlmacen = 0 Then
|
ErrorList.Add("No se pudo actualizar el movimiento de almacen de la factura")
|
||||||
ObjInventario.UpdateEstatusAlmacen(Row("CveVentaDetalleNueva").ToString().ToEntero(), 0)
|
End If
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
@@ -14158,6 +14082,9 @@ Partial Class Ventas
|
|||||||
saldo = e.Row.DataKey("SaldoSubTotal").ToString().ToDecimal
|
saldo = e.Row.DataKey("SaldoSubTotal").ToString().ToDecimal
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
e.Row.FCLiteral("LtlAnticipos").Text = saldo.FormatoNumero
|
||||||
|
ElseIf CveVenta > 0 AndAlso e.Row.DBCampo("Tipo").ToString() = "Ant" Then
|
||||||
|
saldo = e.Row.DataKey("SaldoConImpuestos").ToString().ToDecimal
|
||||||
e.Row.FCLiteral("LtlAnticipos").Text = saldo.FormatoNumero
|
e.Row.FCLiteral("LtlAnticipos").Text = saldo.FormatoNumero
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -15019,7 +14946,6 @@ Partial Class Ventas
|
|||||||
|
|
||||||
If IdCtaContRetIVA <> 0 Then
|
If IdCtaContRetIVA <> 0 Then
|
||||||
IdCtaContable = IdCtaContRetIVA
|
IdCtaContable = IdCtaContRetIVA
|
||||||
CveCuenta = CveCuentaRetIVA
|
|
||||||
Else
|
Else
|
||||||
If ObjConta.GetRetCuenta(8, UsuarioActual.CveEmpresa) Then
|
If ObjConta.GetRetCuenta(8, UsuarioActual.CveEmpresa) Then
|
||||||
If ObjConta.DtResultados.Rows.Count > 0 Then
|
If ObjConta.DtResultados.Rows.Count > 0 Then
|
||||||
@@ -20592,9 +20518,9 @@ Partial Class Ventas
|
|||||||
DdlMetodoPago33.Enabled = False
|
DdlMetodoPago33.Enabled = False
|
||||||
|
|
||||||
If UsuarioActual.CveEmpresa.Contiene(72, 80, 146) Then
|
If UsuarioActual.CveEmpresa.Contiene(72, 80, 146) Then
|
||||||
|
CargaFormaPago(DdlMetodoPago33.SelectedValue.ToEntero())
|
||||||
DdlFormaPago33.Enabled = False
|
DdlFormaPago33.Enabled = False
|
||||||
DdlFormaPago33.SelectedValueExist("20")
|
DdlFormaPago33.SelectedValueExist("20")
|
||||||
CargaFormaPago(DdlMetodoPago33.SelectedValue.ToEntero())
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
@@ -20978,7 +20904,7 @@ Partial Class Ventas
|
|||||||
Dim AmortizacionNC As Decimal = 0
|
Dim AmortizacionNC As Decimal = 0
|
||||||
|
|
||||||
'SI ES AMORTIZACION POR NOTA DE CREDITO DEBE SUMAR LA TOTALIDAD PARA COMPARAR EL PAGO
|
'SI ES AMORTIZACION POR NOTA DE CREDITO DEBE SUMAR LA TOTALIDAD PARA COMPARAR EL PAGO
|
||||||
If DdlTipoAmortizacionAnticipo.SelectedValue = "2" Then
|
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant") AndAlso DdlTipoAmortizacionAnticipo.SelectedValue = "2" Then
|
||||||
For Each gvr As GridViewRow In GVAnticipos.Rows
|
For Each gvr As GridViewRow In GVAnticipos.Rows
|
||||||
If gvr.FCCheckBox("Chk" & gvr.RowIndex) IsNot Nothing AndAlso gvr.FCCheckBox("Chk" & gvr.RowIndex).Checked AndAlso gvr.DataKey("CveConceptoContable").ToEntero().Contiene(3) Then
|
If gvr.FCCheckBox("Chk" & gvr.RowIndex) IsNot Nothing AndAlso gvr.FCCheckBox("Chk" & gvr.RowIndex).Checked AndAlso gvr.DataKey("CveConceptoContable").ToEntero().Contiene(3) Then
|
||||||
AmortizacionNC += gvr.FCTextBox(String.Format("TxtAnticipo{0}", gvr.RowIndex)).Text.ToDecimal
|
AmortizacionNC += gvr.FCTextBox(String.Format("TxtAnticipo{0}", gvr.RowIndex)).Text.ToDecimal
|
||||||
@@ -25198,6 +25124,7 @@ Partial Class Ventas
|
|||||||
|
|
||||||
Me.TmpDTRNCBonificacionesSeleccionadas = Nothing
|
Me.TmpDTRNCBonificacionesSeleccionadas = Nothing
|
||||||
|
|
||||||
|
If DtNC IsNot Nothing Then
|
||||||
Me.TmpDTRNCBonificacionesCliente = DtNC.FiltraParametros("TipoRNC = 2")
|
Me.TmpDTRNCBonificacionesCliente = DtNC.FiltraParametros("TipoRNC = 2")
|
||||||
Me.TmpDTRNCBonificacionesCliente.Columns.Add("ImporteBonificacion", GetType(Decimal))
|
Me.TmpDTRNCBonificacionesCliente.Columns.Add("ImporteBonificacion", GetType(Decimal))
|
||||||
Me.TmpDTRNCBonificacionesCliente.Columns.Add("IVABonificacion", GetType(Decimal))
|
Me.TmpDTRNCBonificacionesCliente.Columns.Add("IVABonificacion", GetType(Decimal))
|
||||||
@@ -25246,6 +25173,10 @@ Partial Class Ventas
|
|||||||
End If
|
End If
|
||||||
ObjAcum.Dispose()
|
ObjAcum.Dispose()
|
||||||
End If
|
End If
|
||||||
|
Else
|
||||||
|
HdnSaldoMaximoUsados.Value = "0"
|
||||||
|
LtlSMU.Text = "0"
|
||||||
|
End If
|
||||||
|
|
||||||
UpModalRemisionesNC.Update()
|
UpModalRemisionesNC.Update()
|
||||||
UpDescNC.Update()
|
UpDescNC.Update()
|
||||||
@@ -25261,6 +25192,7 @@ Partial Class Ventas
|
|||||||
|
|
||||||
Me.TmpDTRNCBonificacionesSeleccionadas = Nothing
|
Me.TmpDTRNCBonificacionesSeleccionadas = Nothing
|
||||||
|
|
||||||
|
If DtNC IsNot Nothing Then
|
||||||
Me.TmpDTRNCBonificacionesCliente = DtNC.FiltraParametros("TipoRNC = 2")
|
Me.TmpDTRNCBonificacionesCliente = DtNC.FiltraParametros("TipoRNC = 2")
|
||||||
Me.TmpDTRNCBonificacionesCliente.Columns.Add("ImporteBonificacion", GetType(Decimal))
|
Me.TmpDTRNCBonificacionesCliente.Columns.Add("ImporteBonificacion", GetType(Decimal))
|
||||||
Me.TmpDTRNCBonificacionesCliente.Columns.Add("IVABonificacion", GetType(Decimal))
|
Me.TmpDTRNCBonificacionesCliente.Columns.Add("IVABonificacion", GetType(Decimal))
|
||||||
@@ -25281,6 +25213,10 @@ Partial Class Ventas
|
|||||||
Dim SaldoMaximoUsados As Decimal = Me.TmpDT.SUM("Total", "EsCargo = True").ToDecimal() + Me.TmpDT.SUM("ImporteIVA", "EsCargo = True").ToDecimal()
|
Dim SaldoMaximoUsados As Decimal = Me.TmpDT.SUM("Total", "EsCargo = True").ToDecimal() + Me.TmpDT.SUM("ImporteIVA", "EsCargo = True").ToDecimal()
|
||||||
HdnSaldoMaximoUsados.Value = SaldoMaximoUsados.ToString()
|
HdnSaldoMaximoUsados.Value = SaldoMaximoUsados.ToString()
|
||||||
LblSaldoMaximoUsados.Text = String.Format("{0:N2}", SaldoMaximoUsados)
|
LblSaldoMaximoUsados.Text = String.Format("{0:N2}", SaldoMaximoUsados)
|
||||||
|
Else
|
||||||
|
HdnSaldoMaximoUsados.Value = "0"
|
||||||
|
LblSaldoMaximoUsados.Text = "0"
|
||||||
|
End If
|
||||||
|
|
||||||
UpDescNC.Update()
|
UpDescNC.Update()
|
||||||
End Sub
|
End Sub
|
||||||
@@ -28471,7 +28407,7 @@ Partial Class Ventas
|
|||||||
ChkRemProductos.Visible = True
|
ChkRemProductos.Visible = True
|
||||||
Else
|
Else
|
||||||
'DivPSRemision.Visible = True
|
'DivPSRemision.Visible = True
|
||||||
CargaPSRemision(-1, DdlPSRemision)
|
'CargaPSRemision(-1, DdlPSRemision)
|
||||||
ChkRemProductos.Visible = False
|
ChkRemProductos.Visible = False
|
||||||
ChkRemProductos.Checked = False
|
ChkRemProductos.Checked = False
|
||||||
End If
|
End If
|
||||||
|
|||||||
Reference in New Issue
Block a user