diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx
index efbe26a43..967500655 100644
--- a/Ventas/Ventas.aspx
+++ b/Ventas/Ventas.aspx
@@ -969,7 +969,7 @@
- | Motivo devolución: |
+ Motivo de devolución: |
|
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index c51b13eb9..886952b47 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -8884,11 +8884,20 @@ Partial Class Ventas
Dim DatarowPS As DataRow = Nothing
DatarowPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=TmpDT.Rows(e.RowIndex)("CvePS").ToString().ToEntero()).FiltroPrimero("") ' Estado = -1
+ If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
+ If DdlTipoComprobante.SelectedValue = "Cot" Then
+ If PU < DatarowPS("PrecioMinimo").ToString().ToDecimal() Then
+ Alert($"El precio no puede ser menor al precio mínimo. Precio Mínimo: {DatarowPS("PrecioMinimo"):N2}", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+ End If
- If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso DdlTipoComprobante.SelectedValue = "Cot" Then
- If PU < DatarowPS("PrecioMinimo").ToString().ToDecimal() Then
- Alert($"El precio no puede ser menor al precio mínimo. Precio Mínimo: {DatarowPS("PrecioMinimo"):N2}", TipoMensaje.MsgAdvertencia)
- Exit Sub
+ If DdlTipoComprobante.SelectedValue = "Ant" Then
+ Dim PSCodigoSAT As String = DatarowPS("SATClavePS").ToString
+ If PSCodigoSAT <> "84111506" Then
+ Alert($"El producto y/o servicio no es valido para generar anticipos", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
End If
End If
@@ -9755,13 +9764,13 @@ Partial Class Ventas
Dim CveVendedor As Integer = DdlVendedor.SelectedValue.ToEntero()
Dim ObjVentas As New ClsVentas
- If ObjVentas.GetAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, CveVendedor, If(DdlTipoComprobante.SelectedValue = "Egs", "Egs", "Ing"), CveEstatus:=1) Then
+ If ObjVentas.GetAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, CveVendedor, "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='{If(DdlTipoComprobante.SelectedValue = "Egs", "Egs", "Ing")}'", Orderby:="Importe DESC")
+ 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='{If(DdlTipoComprobante.SelectedValue = "Egs", "Egs", "Ing")}'", Orderby:="Importe DESC")
+ RowAutorizacion = ObjVentas.DtResultados.FiltroPrimero($"TipoAutorizacion = 1 AND CveVenta IS NULL AND CveTipoDocumento='{"Ing"}'", Orderby:="Importe DESC")
End If
If RowAutorizacion IsNot Nothing Then
@@ -9809,14 +9818,6 @@ Partial Class Ventas
End If
- 'If TipoAutorizacion = 2 Then
- ' If DiasVencidosCliente > DiasVencidosAutorizacion Then
- ' CveAutorizacion = -1
- ' Alert($"El crédito no esta autorizado. Los días vencidos del cliente son mayores a lo autorizado", TipoMensaje.MsgAdvertencia)
- ' Exit Sub
- ' End If
- 'End If
-
'SI NO SE ENCONTRO NINGUA AUTORIZACION
If TipoAutorizacion = 0 Then
If TieneDiasVencidos Then
@@ -9827,21 +9828,57 @@ Partial Class Ventas
End If
End If
- 'If TieneDiasVencidos AndAlso DdlTipoComprobante.SelectedValue = "Egs" AndAlso CveAutorizacion <= 0 Then
- ' CveAutorizacion = -1
- ' Alert($"El crédito no esta autorizado. No tiene autorización para generar notas de crédito. El cliente tiene días vencidos", TipoMensaje.MsgAdvertencia)
- ' Exit Sub
- 'End If
+ End If
- 'If TipoDocumentoAutorizacion = "Egs" Then
- ' If TipoAutorizacion = 1 Then
- ' If ImporteAutorizacion < TxtTotal.Text.ToDecimal() Then
- ' CveAutorizacion = -1
- ' Alert($"El crédito autorizado es insuficiente. Crédito Disponible:{ImporteAutorizacion:N2}", TipoMensaje.MsgAdvertencia)
- ' Exit Sub
- ' End If
- ' End If
- 'End If
+ 'VALIDACION DE AUTORIZACION PARA NC, POR AHORA SOLO BDH
+ If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso CveCliente > 0 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Egs") Then
+ PermiteAutorizacion = False
+ 'SI NO ES GENERADA CON REMISIONES DE NC, UTILIZAR LA AUTORIZACION
+ If (ListaRemisionesNC Is Nothing OrElse ListaRemisionesNC.Count = 0) Then
+ PermiteAutorizacion = True
+ End If
+
+ If PermiteAutorizacion Then
+
+ Dim ImporteAutorizacion As Decimal = 0
+ Dim TipoAutorizacion As Integer = 0
+
+ Dim CveVendedor As Integer = DdlVendedor.SelectedValue.ToEntero()
+
+ Dim ObjVentas As New ClsVentas
+
+ If ObjVentas.GetAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, CveVendedor, "Egs", CveEstatus:=1) Then
+ Dim RowAutorizacion As DataRow = Nothing
+ 'SI TIENE DIAS VENCIDOS BUSCAR POR TIPO VENCIMIENTO
+ RowAutorizacion = ObjVentas.DtResultados.FiltroPrimero($"TipoAutorizacion = 1 AND CveVenta IS NULL AND CveTipoDocumento='Egs'", Orderby:="Importe DESC")
+
+ If RowAutorizacion IsNot Nothing Then
+ ImporteAutorizacion = RowAutorizacion("Importe").ToString().ToDecimal()
+ CveAutorizacion = RowAutorizacion("CveAutorizacion").ToString().ToEntero()
+ TipoAutorizacion = RowAutorizacion("TipoAutorizacion").ToString().ToEntero()
+ End If
+
+ End If
+
+ ObjVentas.Dispose()
+
+ If TipoAutorizacion = 1 Then
+ If ImporteAutorizacion < TxtTotal.Text.ToDecimal() Then
+ Dim BloquearCredito As Boolean = True
+ CveAutorizacion = -1
+
+ If BloquearCredito Then
+ Alert($"El importe autorizado es insuficiente. Importe autorizado:{ImporteAutorizacion:N2}", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+ End If
+ Else
+ CveAutorizacion = -1
+ Alert($"No se encontro una autorización de crédito.", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
+ End If
End If
'VALIDAR LINEAS ADICIONALES
@@ -16710,6 +16747,13 @@ Partial Class Ventas
HdnTieneAnticipos.Value = "0"
If CveCliente > 0 Then
+ 'QUE NO SE PUEDA REALIZAR AMORTIZACIÓN DE ANTICIPO POR DESCUENTO
+ If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
+ If DdlTipoAmortizacionAnticipo.Items.FindByValue("1") IsNot Nothing Then
+ DdlTipoAmortizacionAnticipo.Items.Remove(DdlTipoAmortizacionAnticipo.Items.FindByValue("1"))
+ End If
+ End If
+
HdnIVACalculado.Value = "0"
'SI ES REFACTURACION NO LIMPIAR EL FOLIO FISCAL
If NuevaFactura <> 1 Then
@@ -18810,13 +18854,24 @@ Partial Class Ventas
Return False
End If
- If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso DdlTipoComprobante.SelectedValue = "Cot" Then
+ If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
Dim DatarowPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("")
If DatarowPS IsNot Nothing Then
- If PU < DatarowPS("PrecioMinimo").ToString().ToDecimal() Then
- Alert($"El precio no puede ser menor al precio mínimo. Precio Mínimo: {DatarowPS("PrecioMinimo"):N2}", TipoMensaje.MsgAdvertencia)
- Return False
+ If DdlTipoComprobante.SelectedValue = "Cot" Then
+ If PU < DatarowPS("PrecioMinimo").ToString().ToDecimal() Then
+ Alert($"El precio no puede ser menor al precio mínimo. Precio Mínimo: {DatarowPS("PrecioMinimo"):N2}", TipoMensaje.MsgAdvertencia)
+ Return False
+ End If
End If
+
+ If DdlTipoComprobante.SelectedValue = "Ant" Then
+ Dim PSCodigoSAT As String = DatarowPS("SATClavePS").ToString
+ If PSCodigoSAT <> "84111506" Then
+ Alert($"El producto y/o servicio '{DatarowPS("CodigoPS").ToString}' no es valido para generar anticipos", TipoMensaje.MsgAdvertencia)
+ Return False
+ End If
+ End If
+
End If
End If
@@ -38448,9 +38503,12 @@ Partial Class Ventas
DdlTipoAmortizacionAnticipo.Items.Remove(DdlTipoAmortizacionAnticipo.Items.FindByValue("2"))
End If
Else
- If DdlTipoAmortizacionAnticipo.Items.FindByValue("1") Is Nothing Then
- DdlTipoAmortizacionAnticipo.Items.Add(New ListItem("Amortización anticipo en descuento", "1"))
+ If Not (UsuarioActual.Empresa.Funcionalidad(382) = "1") Then
+ If DdlTipoAmortizacionAnticipo.Items.FindByValue("1") Is Nothing Then
+ DdlTipoAmortizacionAnticipo.Items.Add(New ListItem("Amortización anticipo en descuento", "1"))
+ End If
End If
+
If DdlTipoAmortizacionAnticipo.Items.FindByValue("2") Is Nothing Then
DdlTipoAmortizacionAnticipo.Items.Add(New ListItem("Amortización anticipo con nota de crédito", "2"))
End If