diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index afec170f3..003dc8f57 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -10,7 +10,6 @@ Imports System.Security.Cryptography.X509Certificates
Imports ADSNetLibrary.SIGAPI.Models.CRM.Request
Imports ADSNetLibrary.SIGAPI.Services.CRM
Imports ADSTimbrado
-Imports com.itextpdf.text.pdf.languages
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Imports Modelos
@@ -8287,7 +8286,7 @@ Partial Class Ventas
End If
'SOLO HABILITAR PARA GENERAR NOTAS DE CREDITO
- If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso ClienteEsDistribuidor AndAlso Not PermiteCredito AndAlso Not LnkSolicitarCredito.Visible Then
+ If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso Not PermiteCredito AndAlso Not LnkSolicitarCredito.Visible Then
LnkSolicitarCredito.Visible = True
If DdlSolCreditoTipoDocto.Items.FindByValue("Ing") IsNot Nothing Then
@@ -9039,9 +9038,21 @@ Partial Class Ventas
Protected Sub GvPS_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GvPS.RowEditing
GvPS.EditIndex = e.NewEditIndex
GvPS.DataSource = TmpDT
- DtInv = TmpDT.Copy.FiltraParametros("CveTipoPS = 2")
+
GvPS.DataBind()
+ If GvPS.Columns(21).Visible Then
+ For Each GvRow As GridViewRow In GvPS.Rows
+ If GvRow.RowType = DataControlRowType.Header Then
+ GvRow.FCLinkButton("LnkOrdenarGvPS").Visible = False
+ End If
+
+ If GvRow.RowType = DataControlRowType.DataRow Then
+ GvRow.FCTextBox("TxtOrden").Visible = False
+ End If
+ Next
+ End If
+
If UsuarioActual.TienePermisoProceso(253) Then
GvPS.Rows(e.NewEditIndex).FCTextBox("TxtPrecio").Enabled = True
End If
@@ -9128,9 +9139,27 @@ Partial Class Ventas
End Sub
Protected Sub GvPS_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GvPS.RowCancelingEdit
GvPS.EditIndex = -1
- GvPS.DataSource = TmpDT
+
+ OrdenarPS()
+
+ If GvPS.Columns(21).Visible Then
+
+ For Each GvRow As GridViewRow In GvPS.Rows
+ If GvRow.RowType = DataControlRowType.Header Then
+ GvRow.FCLinkButton("LnkOrdenarGvPS").Visible = True
+ End If
+
+ If GvRow.RowType = DataControlRowType.DataRow Then
+ GvRow.FCTextBox("TxtOrden").Visible = True
+ End If
+ Next
+ End If
+
+
DtInv = TmpDT.Copy.FiltraParametros("CveTipoPS = 2")
- GvPS.DataBind()
+ CargaGVInv(DtInv)
+
+ UpPS.Update()
End Sub
Protected Sub GvPS_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvPS.RowUpdating
@@ -9203,6 +9232,7 @@ Partial Class Ventas
'eliminar y cargar el ps ***
Dim ConsecutivoActual As Integer = TmpDT.Rows(e.RowIndex)("Consec").ToString().ToEntero()
+ Dim OrdenOriginal As Integer = TmpDT.Rows(e.RowIndex)("Orden").ToString().ToEntero()
If DtPromociones IsNot Nothing AndAlso DtPromociones.Rows.Count > 0 Then
ObjDescuento = CalcularDescuentos(CvePSNuevo, Cantidad, PU)
@@ -9261,14 +9291,14 @@ Partial Class Ventas
CveProyecto, Proyecto,
CveSubProyecto, SubProyecto,
CuentaPredial:=CuentaPredial, CveVentaDetalle:=GvPS.Rows(e.RowIndex).DataKey("CveVentaDetalle").ToString().ToEntero(), SeActualiza:=True, CvePromocionDetalle:=ObjDescuento.CvePromocionDetalle,
- ObjDescuento:=ObjDescuento, NumTurnos:=NumTurnos, CvePrecioLista:=CvePrecioLista, PrecioLista:=PrecioLista, ConsecutivoManual:=ConsecutivoActual)
+ ObjDescuento:=ObjDescuento, NumTurnos:=NumTurnos, CvePrecioLista:=CvePrecioLista, PrecioLista:=PrecioLista, ConsecutivoManual:=ConsecutivoActual, OrdenManual:=OrdenOriginal)
' TmpDT.Rows(e.RowIndex)("CveUM") = Ddl.SelectedValue
' TmpDT.Rows(e.RowIndex)("UM") = Ddl.SelectedItem.Text
GvPS.EditIndex = -1
- GvPS.DataSource = TmpDT
+ OrdenarPS(False)
+
DtInv = TmpDT.Copy.FiltraParametros("CveTipoPS = 2")
- GvPS.DataBind()
CargaGVInv(DtInv)
If UsuarioActual.Empresa.Funcionalidad(533).ToEntero() > 0 Then
@@ -9399,13 +9429,13 @@ Partial Class Ventas
CalculaPSPromocionFiltrosLubricantes(TmpDT.Rows(e.RowIndex))
-
DrPS = Nothing
GvPS.EditIndex = -1
- GvPS.DataSource = TmpDT
+ OrdenarPS(False)
+
DtInv = TmpDT.Copy.FiltraParametros("CveTipoPS = 2")
- GvPS.DataBind()
+
CargaGVInv(DtInv)
CalculaUsados()
End If
@@ -9425,6 +9455,18 @@ Partial Class Ventas
'JJMQ 20160506: Se agrego para la validacion de pago de contado.
'CVImporteContado.ValueToCompare = TxtTotal.Text.Replace(",", "")
+ If GvPS.Columns(21).Visible Then
+ For Each GvRow As GridViewRow In GvPS.Rows
+ If GvRow.RowType = DataControlRowType.Header Then
+ GvRow.FCLinkButton("LnkOrdenarGvPS").Visible = True
+ End If
+
+ If GvRow.RowType = DataControlRowType.DataRow Then
+ GvRow.FCTextBox("TxtOrden").Visible = True
+ End If
+ Next
+ End If
+
UpPS.Update()
UpContado.Update()
@@ -20113,6 +20155,8 @@ Partial Class Ventas
TxtCantidad.Text = "1"
End If
+ OrdenarPS()
+
UpPS.Update()
Catch ex As Exception
OnError("Ocurrió un error al agregar el producto", ex)
@@ -20358,7 +20402,7 @@ Partial Class Ventas
Optional RegeneraIEPS As Boolean = True, Optional CveVentaDetallePedido2 As Integer = 0, Optional SeActualiza As Boolean = False, Optional CvePromocionDetalle As Integer = -1, Optional EsCargo As Boolean = False,
Optional ImporteProntoPago As Decimal = 0, Optional ByRef ObjDescuento As Modelos.VentaDescuentos = Nothing, Optional CvePrecioLista As Integer = -1, Optional PrecioLista As String = "",
Optional CveActivoFijo As Integer = -1, Optional AFDepreciacion As Decimal = 0D, Optional AFValorInicial As Decimal = 0D, Optional NumTurnos As Decimal = 0D, Optional CantidadConversion As Decimal = 0,
- Optional Costo As Decimal = 0, Optional PorcentajeIVAFijo As Decimal = -1, Optional ConsecutivoManual As Integer = 0) As Boolean
+ Optional Costo As Decimal = 0, Optional PorcentajeIVAFijo As Decimal = -1, Optional ConsecutivoManual As Integer = 0, Optional OrdenManual As Integer = 0) As Boolean
Dim Retorno As Boolean = False
Try
@@ -20402,17 +20446,17 @@ Partial Class Ventas
Row("Serie") = Serie
Row("TiempoEntrega") = TiempoEntrega
- If ConsecutivoManual > 0 Then
- Row("Orden") = ConsecutivoManual
+ If OrdenManual > 0 Then
+ Row("Orden") = OrdenManual
Else
If Modalidad = "U" Then
Row("Orden") = Index
Else
- Dim ConsecutivoActual As Integer = TmpDT.MAX("Consec").ToEntero()
- If ConsecutivoActual < 0 Then
- ConsecutivoActual = 0
+ Dim OrdenActual As Integer = TmpDT.MAX("Orden").ToEntero()
+ If OrdenActual < 0 Then
+ OrdenActual = 0
End If
- Row("Orden") = ConsecutivoActual + 1
+ Row("Orden") = OrdenActual + 1
End If
End If
@@ -21328,7 +21372,7 @@ Partial Class Ventas
ConfiguraTipoDocto()
End If
End Sub
- Private Sub CalculaTotalesVenta(Optional RecalculaImpuestosLocales As Boolean = True, Optional NCDescuento As Boolean = False, Optional ValidarDescuentos As Boolean = False, Optional RecalcularTotalOriginal As Boolean = True)
+ Private Sub CalculaTotalesVenta(Optional RecalculaImpuestosLocales As Boolean = True, Optional NCDescuento As Boolean = False, Optional ValidarDescuentos As Boolean = False, Optional RecalcularTotalOriginal As Boolean = True, Optional Reordenar As Boolean = False)
Dim TotalSubTotal As Decimal = TmpDT.SUMD("TotalImporte")
Dim TotalSubTotalRef As Decimal = TotalSubTotal
@@ -21454,11 +21498,15 @@ Partial Class Ventas
Alert($"Los siguientes conceptos hace falta especificar clave SAT
{MensajeCveSAT.ToString()}", TipoMensaje.MsgAdvertencia)
MensajeCveSAT.Clear()
End If
-
- Dim view As DataView = New DataView(TmpDT)
- view.Sort = "Consec"
- GvPS.DataSource = view
- GvPS.DataBind()
+ If Reordenar Then
+ Dim view As DataView = New DataView(TmpDT)
+ view.Sort = "Orden"
+ GvPS.DataSource = view
+ GvPS.DataBind()
+ Else
+ GvPS.DataSource = TmpDT
+ GvPS.DataBind()
+ End If
'RECARGA GV INVENTARIO
If (Not CveVenta > 0 Or DdlTipoComprobante.SelectedValue = "Cot") OrElse (UsuarioActual.Empresa.Funcionalidad(558) = "1" AndAlso EsCreaApartirDe) Then
@@ -23888,6 +23936,12 @@ Partial Class Ventas
LiCalcularPromociones.Visible = True
End If
+ 'NO PERMITE EDITAR FECHA DEL PAGO
+ If Not UsuarioActual.TienePermisoProceso(260) Then
+ TxtFechaPago.Enabled = False
+ imgCalendario.Visible = False
+ End If
+
TxtAtencionA.Enabled = True
UpCliente.Update()
@@ -26322,22 +26376,34 @@ Partial Class Ventas
DdlPS_SelectedIndexChanged(Nothing, Nothing)
End If
End Sub
- Protected Sub OrdenarGvPS(ByVal sender As Object, ByVal e As EventArgs)
- For Each row As GridViewRow In GvPS.Rows
- TmpDT.Rows(row.RowIndex)("Orden") = row.FCTextBox("TxtOrden").Text.ToEntero()
- Next
+ Private Sub OrdenarPS(Optional Reeordenar As Boolean = True)
- Dim resultados = From OrdenDT In TmpDT
- Order By OrdenDT("Orden").ToString().ToEntero()
- Select OrdenDT
- TmpDT = resultados.CopyToDataTable
- CalculaTotalesVenta()
+ If Reeordenar Then
+ For Each row As GridViewRow In GvPS.Rows
+ TmpDT.Rows(row.RowIndex)("Orden") = row.FCTextBox("TxtOrden").Text.ToEntero()
+ Next
+
+ TmpDT.AcceptChanges()
+ End If
+
+ 'Dim resultados = From OrdenDT In TmpDT
+ ' Order By OrdenDT("Orden").ToString().ToEntero()
+ ' Select OrdenDT
+ 'TmpDT = resultados.CopyToDataTable
+
+ TmpDT = TmpDT.FiltraParametros("", "Orden").Copy()
+
+ TmpDT.AcceptChanges()
GvPS.DataSource = TmpDT
GvPS.DataBind()
- UpPS.Update()
+ End Sub
+ Protected Sub OrdenarGvPS(ByVal sender As Object, ByVal e As EventArgs)
+ OrdenarPS()
+ CalculaTotalesVenta()
+ UpPS.Update()
End Sub
Private Sub LkCotizacionAutorizar_Click(sender As Object, e As EventArgs) Handles LkCotizacionAutorizar.Click
EsSupervisor = True
@@ -33046,6 +33112,12 @@ Partial Class Ventas
LiCalcularPromociones.Visible = True
End If
+ 'NO PERMITE EDITAR FECHA DEL PAGO
+ If Not UsuarioActual.TienePermisoProceso(260) Then
+ TxtFechaPago.Enabled = False
+ imgCalendario.Visible = False
+ End If
+
UpPS.Update()
UPPDescuento.Update()
UPObservaciones.Update()
@@ -34885,6 +34957,8 @@ Partial Class Ventas
CargaListasPrecios()
End If
+ 'BloqueaCondicionesPago()
+
BtnEditar.Visible = False
BtnEmitir.Visible = False
BtnPermisoEditarCotizacion.Visible = False
@@ -36641,6 +36715,12 @@ Partial Class Ventas
End If
End If
+ 'NO PERMITE EDITAR FECHA DEL PAGO
+ If Not UsuarioActual.TienePermisoProceso(260) Then
+ TxtFechaPago.Enabled = False
+ imgCalendario.Visible = False
+ End If
+
UpCliente.Update()
UpParametros.Update()
UPObservaciones.Update()
@@ -39890,7 +39970,7 @@ Partial Class Ventas
RegistraScript("MuestraAnticipos();", "AE")
End Sub
- Private Sub RecalculaPrecios(ByRef RecalculoPromociones As Boolean, Optional ForzarRecalculo As Boolean = False)
+ Private Sub RecalculaPrecios(ByRef RecalculoPromociones As Boolean, Optional AplicarPromociones As Boolean = False)
Dim PuedeRecalcular As Boolean = False
If CveVenta <= 0 OrElse EsCreaApartirDe OrElse (ModalidadEdicion AndAlso Not DdlTipoComprobante.SelectedValue = "Cot") Then
@@ -39902,7 +39982,7 @@ Partial Class Ventas
PuedeRecalcular = False
End If
- If ForzarRecalculo Then
+ If AplicarPromociones Then
PuedeRecalcular = True
End If
@@ -39912,7 +39992,18 @@ Partial Class Ventas
Dim CveClasificacion As Integer = Row("CveClasificacion").ToString().ToEntero
Dim CvePS As Integer = Row("CvePS").ToString().ToEntero
- Dim ObjPrecioSugerido As Modelos.MPrecioSugerido = CalculaPrecioSugerido(CvePS, CveClasificacion)
+ Dim CvePrecioListaSugerido As Integer = -1
+
+ Dim ObjPrecioSugerido As Modelos.MPrecioSugerido = Nothing
+
+ If AplicarPromociones Then
+ ObjPrecioSugerido = New Modelos.MPrecioSugerido()
+ ObjPrecioSugerido.PrecioSugerido = Row("PU").ToString().ToDecimal()
+ ObjPrecioSugerido.CvePrecioLista = Row("CvePrecioLista").ToString().ToEntero()
+ Else
+ ObjPrecioSugerido = CalculaPrecioSugerido(CvePS, CveClasificacion)
+ End If
+
If ObjPrecioSugerido.PrecioSugerido > 0 Then
Dim PU As Decimal = ObjPrecioSugerido.PrecioSugerido.RoundSQL(6)
@@ -39921,6 +40012,11 @@ Partial Class Ventas
PU = ObjDescuento.PU
End If
+ 'SI NO TIENE PROMOCION, NO MODIFICAR NADA
+ If AplicarPromociones AndAlso ObjDescuento.CvePromocionDetalle <= 0 Then
+ Continue For
+ End If
+
Row("PU") = PU
Dim TotalCalculableImpuestos As Decimal = ((Cantidad * PU) - (ObjDescuento.ImporteDescuento))
@@ -40387,12 +40483,12 @@ Partial Class Ventas
Protected Sub LnkCalcularPromociones_Click(sender As Object, e As EventArgs)
Dim Recalculo As Boolean = False
- RecalculaPrecios(Recalculo, ForzarRecalculo:=True)
+ RecalculaPrecios(Recalculo, AplicarPromociones:=True)
If Recalculo Then
Alert("Se han recalculado los precios y promociones en base a las condiciones actuales")
Else
- Alert("No se han encontrado cambios para los precios y promociones")
+ Alert("No se han encontrado cambios para las promociones")
End If
End Sub