diff --git a/Ventas/Promociones.aspx.vb b/Ventas/Promociones.aspx.vb
index 0d90fe29d..e615c3279 100644
--- a/Ventas/Promociones.aspx.vb
+++ b/Ventas/Promociones.aspx.vb
@@ -1,13 +1,11 @@
Option Explicit On
Option Strict On
-Imports System.Activities.Expressions
+
Imports System.Data
-Imports DocumentFormat.OpenXml.Drawing.Diagrams
Imports Extensiones
-Imports iText.StyledXmlParser.Css.Resolve.Shorthand.Impl
-Imports Microsoft.Owin.Security.Provider
-Imports Telerik.Web.UI
+Imports Stimulsoft.Report
+
Partial Class Ventas_Promociones
Inherits ClsPaginas
@@ -162,6 +160,12 @@ Partial Class Ventas_Promociones
EmpresaFnc382 = If(UsuarioActual.Empresa.Funcionalidad(382) = "1", True, False) 'Grupo díaz
'EmpresaFnc382 = True ''Para pruebas
+ If EmpresaFnc382 Then
+ DVModalClasificacion.Visible = False
+ GvDatos.Columns(6).Visible = True
+ GvDatos.Columns(7).Visible = True
+ End If
+
CvePromocion = -1
CargaValoresIniciales()
CargaMonedas()
@@ -187,10 +191,16 @@ Partial Class Ventas_Promociones
CargaGvBitacora()
+
+
End If
End Sub
+ Private Sub RemoverClasificacion()
+
+ End Sub
+
#Region "BITACORA"
@@ -260,7 +270,7 @@ Partial Class Ventas_Promociones
DdlMarca.Items.Insert(0, New ListItem("Todos", "-1"))
If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then
- GvDatos.Columns(8).Visible = True
+ GvDatos.Columns(10).Visible = True
DivRin.Visible = True
'Dim ObjGral As New ClsGenerales
'If ObjGral.GetRinTamanios(UsuarioActual.CveEmpresa) Then
@@ -315,6 +325,7 @@ Partial Class Ventas_Promociones
TempDT.Columns.Add("UltimoCosto", GetType(Decimal))
TempDT.Columns.Add("CostoPromedio", GetType(Decimal))
+ TempDT.Columns.Add("UtilidadPorcentaje", GetType(Decimal))
TempDTOrigial = TempDT.Copy
@@ -499,6 +510,8 @@ Partial Class Ventas_Promociones
Protected Sub BtnAgregar_Click(sender As Object, e As EventArgs)
+ Dim CveTipoPromocion As Integer = DdlTipoPromocion.SelectedValue.ToEntero
+
If DdlClasificacion.SelectedValue.ToEntero <= 0 Then
If DdlPS.SelectedValue.ToEntero <= 0 Then
Alert("Debe seleccionar una clasificacion o un producto y/o servicio", TipoMensaje.MsgAdvertencia)
@@ -513,6 +526,15 @@ Partial Class Ventas_Promociones
End If
End If
+ ' validación de %minimo considerado 02580104V
+ If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
+ Dim tuc As Decimal = LblUltimoCosto.Text.ToDecimal
+ Dim tpu As Decimal = TxtPromocionConcepto.Text.ToDecimal
+ If (tpu - tuc) / tuc < UsuarioActual.Empresa.Funcionalidad(129).ToDecimal / 100 Then
+ Alert("El producto está debajo de la utilidad permitida, la promoción requerirá autorización.", TipoMensaje.MsgAdvertencia.ToastAdventencia)
+ End If
+ End If
+
If TxtCantMinima.Text.ToEntero <= 0 Then
Alert("La cantidad minima debe ser de 1", TipoMensaje.MsgAdvertencia)
Exit Sub
@@ -545,15 +567,11 @@ Partial Class Ventas_Promociones
Dr("CodigoPS") = If(String.IsNullOrEmpty(DdlPS.SelectedText), "Todos", DdlPS.SelectedText)
Dr("PUAnterior") = LbPUActual.Text.ToDecimal
- Dr("UltimoCosto") = LblUltimoCosto.Text.ToDecimal
- Dr("CostoPromedio") = LblCostoPromedio.Text.ToDecimal
-
-
- Dr("CveTipoPromocion") = DdlTipoPromocion.SelectedValue.ToEntero
+ Dr("CveTipoPromocion") = CveTipoPromocion
Dr("TipoPromocion") = DdlTipoPromocion.SelectedItem.Text
Dr("Promocion") = TxtPromocionConcepto.Text
- If DdlTipoPromocion.SelectedValue.ToEntero.Contiene(1, 3) Then
+ If CveTipoPromocion.Contiene(1, 3) Then
Dr("PUPromocion") = TxtPromocionConcepto.Text.ToDecimal
Else
Dr("PUPromocion") = LbPUActual.Text.ToDecimal - (LbPUActual.Text.ToDecimal * TxtPromocionConcepto.Text.ToDecimal / 100)
@@ -596,6 +614,39 @@ Partial Class Ventas_Promociones
Dr("CveRinTamaño") = -1
End If
+ Dim UltimoCosto As Decimal = LblUltimoCosto.Text.ToDecimal
+ Dim CostoPromedio As Decimal = LblCostoPromedio.Text.ToDecimal
+
+ Dr("UltimoCosto") = UltimoCosto
+ Dr("CostoPromedio") = CostoPromedio
+
+
+
+ If UltimoCosto > 0 Then
+
+ Dim Promocion As Decimal = TxtPromocionConcepto.Text.ToDecimal
+
+ If CveTipoPromocion = 1 Then 'importe
+ Dim porciento As Decimal = (Promocion * 100 / UltimoCosto) - 100
+ Dr("UtilidadPorcentaje") = porciento
+ ElseIf CveTipoPromocion = 2 Then '% descuento
+
+ Dim calculo As Decimal = (UltimoCosto) - (UltimoCosto * (Promocion / 100))
+ Dim porciento As Decimal = (calculo * 100 / UltimoCosto) - 100
+ Dr("UtilidadPorcentaje") = porciento
+
+ End If
+
+ Else
+ Dr("UtilidadPorcentaje") = 0.0D
+ End If
+
+
+
+
+
+
+
If CveConsecutivo >= 0 Then
Dr.AcceptChanges()
Else
@@ -1416,13 +1467,15 @@ Partial Class Ventas_Promociones
Dim DTPSUltimoCosto = New DataTable
Dim ObjInv As New ClsInventarios
- If ObjInv.GetUltimoCosto(UsuarioActual.CveEmpresa) Then
+ If ObjInv.GetUltimoCosto(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero) Then
DTPSUltimoCosto = ObjInv.DtResultados
End If
ObjInv.Dispose()
- LblUltimoCosto.Text = DTPSUltimoCosto.FiltroPrimeroValor("UltimoCosto", $"CvePS = {DdlPS.SelectedValue}").FormatoNumero
- LblCostoPromedio.Text = DTPSUltimoCosto.FiltroPrimeroValor("CostoPromedio", $"CvePS = {DdlPS.SelectedValue}").FormatoNumero
+ LblUltimoCosto.Text = DTPSUltimoCosto.FiltroPrimeroValor("UltimoCosto", "").FormatoNumero(4)
+ LblCostoPromedio.Text = DTPSUltimoCosto.FiltroPrimeroValor("CostoPromedio", "").FormatoNumero(4)
+ LbPUActual.Text = DTPSUltimoCosto.FiltroPrimeroValor("Importe", "").FormatoNumero(4)
+
UpAgregar.Update()
End Sub