-- funcionalidad para comparar ultimo costo vs precio lista

-- funcionalidad para validar conceptos 85111506 en anticipos
This commit is contained in:
2024-12-22 09:19:16 -07:00
parent 1711e1378f
commit 5417e97e52
2 changed files with 81 additions and 51 deletions

View File

@@ -1266,7 +1266,7 @@
<asp:TemplateField> <asp:TemplateField>
<ItemTemplate> <ItemTemplate>
<div class="row"> <div class="row">
<div class="col-md-3" id="TagPromocion" runat="server" visible='<%# If(UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso CInt(Extensiones.IfNull(Eval("CvePromocionDetalle"), 0)) > 0, "true", "false") %>'> <div class="col-md-3" id="TagPromocion" runat="server" visible='<%# If(CInt(Extensiones.IfNull(Eval("CvePromocionDetalle"), 0)) > 0, "true", "false") %>'>
<i class="fa fa-tag" aria-hidden="true" style="color: #E43A45"></i> <i class="fa fa-tag" aria-hidden="true" style="color: #E43A45"></i>
</div> </div>
<div class="col-md-9"> <div class="col-md-9">

View File

@@ -3789,7 +3789,7 @@ Partial Class Ventas
If UsuarioActual.TienePermisoProceso(384) Then If UsuarioActual.TienePermisoProceso(384) Then
Dt = ObjVta.DtResultados.Copy() Dt = ObjVta.DtResultados.Copy()
Else Else
Dt = ObjVta.DtResultados.FiltraParametros("Restringuida = 'False'") Dt = ObjVta.DtResultados '.FiltraParametros("Restringuida = 'False'")
End If End If
DdlPrecioLista.DataSource = Dt DdlPrecioLista.DataSource = Dt
@@ -8921,7 +8921,7 @@ Partial Class Ventas
e.Row.FCLinkButton("imgE").Visible = True e.Row.FCLinkButton("imgE").Visible = True
End If End If
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then If UsuarioActual.Empresa.Funcionalidad(109) = "1" AndAlso Not UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
e.Row.FCLinkButton("LnkDescuentos").Visible = True e.Row.FCLinkButton("LnkDescuentos").Visible = True
If e.Row.DBCampo("TipoDocto") = "Cot" AndAlso CveVenta > 0 AndAlso Not EsCreaApartirDe Then If e.Row.DBCampo("TipoDocto") = "Cot" AndAlso CveVenta > 0 AndAlso Not EsCreaApartirDe Then
e.Row.FCLinkButton("imgClone").Visible = False e.Row.FCLinkButton("imgClone").Visible = False
@@ -9095,6 +9095,16 @@ Partial Class Ventas
Dim DatarowPS As DataRow = Nothing Dim DatarowPS As DataRow = Nothing
DatarowPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=TmpDT.Rows(e.RowIndex)("CvePS").ToString().ToEntero()).FiltroPrimero("") ' Estado = -1 DatarowPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=TmpDT.Rows(e.RowIndex)("CvePS").ToString().ToEntero()).FiltroPrimero("") ' Estado = -1
If UsuarioActual.Empresa.Funcionalidad(601) = "1" Then 'valida anticipo que tenga conceptos válidos
If DdlTipoComprobante.SelectedValue = "Ant" Then
Dim PSCodigoSAT As String = DatarowPS("SATClavePS").ToString
If PSCodigoSAT <> "84111506" Then
Alert($"El producto y/o servicio no es válido para generar anticipos.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
End If
Dim PrecioLibre As Boolean = False Dim PrecioLibre As Boolean = False
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
If DdlTipoComprobante.SelectedValue = "Cot" Then If DdlTipoComprobante.SelectedValue = "Cot" Then
@@ -9105,14 +9115,6 @@ Partial Class Ventas
End If End If
PrecioLibre = CBool(DatarowPS("PrecioLibre")) PrecioLibre = CBool(DatarowPS("PrecioLibre"))
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 End If
'verifica si tiene ventaminima 'verifica si tiene ventaminima
@@ -9124,7 +9126,6 @@ Partial Class Ventas
End If End If
End If End If
'si es remisión, ingreso, anticipo debe de considerar el preciominimo 'si es remisión, ingreso, anticipo debe de considerar el preciominimo
If Not UsuarioActual.TienePermisoProceso(169) Then ' NO VALIDA EXISTENCIAS NI COSTO - PERMISO PARA NO VALIDAR If Not UsuarioActual.TienePermisoProceso(169) Then ' NO VALIDA EXISTENCIAS NI COSTO - PERMISO PARA NO VALIDAR
@@ -9159,12 +9160,21 @@ Partial Class Ventas
Dim BuscarEnTabla As Boolean = If(UsuarioActual.Empresa.Funcionalidad(715) = "1", True, False) Dim BuscarEnTabla As Boolean = If(UsuarioActual.Empresa.Funcionalidad(715) = "1", True, False)
Existencia = ObjInventarios.GetExistenciasPS(CvePS, CveUM, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=1, PendientePorSurtir:=1, RestringirAlmacenes:=1, ExcluyeApartados:=-1, BuscarEnTabla:=BuscarEnTabla) Existencia = ObjInventarios.GetExistenciasPS(CvePS, CveUM, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=1, PendientePorSurtir:=1, RestringirAlmacenes:=1, ExcluyeApartados:=-1, BuscarEnTabla:=BuscarEnTabla)
End If End If
Dim Costo As Decimal
Dim Costo As Decimal = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1) If UsuarioActual.Empresa.Funcionalidad(602) = "UC" Then 'validación sobre el último costo
'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal
If Costo <= 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
If ObjInventarios.GetUltimoCosto(UsuarioActual.CveEmpresa, CvePS) Then
Dim dr As DataRow = ObjInventarios.DtResultados.FiltroPrimero("")
If dr IsNot Nothing Then
Costo = dr("UltimoCosto").ToString.ToDecimal
End If
End If
Else
Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal
If Costo <= 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
End If
ObjInventarios.Dispose() ObjInventarios.Dispose()
Dim PrecioMinimo As Decimal = 0 Dim PrecioMinimo As Decimal = 0
'RMF. condicion temporal, para reubicación, precio mínimo 'RMF. condicion temporal, para reubicación, precio mínimo
@@ -9183,7 +9193,7 @@ Partial Class Ventas
If ValidaExistencia AndAlso DdlTipoComprobante.SelectedValue <> "Cot" And ChkSinExistencia.Checked = False AndAlso Not RegistroxOC Then If ValidaExistencia AndAlso DdlTipoComprobante.SelectedValue <> "Cot" And ChkSinExistencia.Checked = False AndAlso Not RegistroxOC Then
'VALIDA EXISTENCIA 'VALIDA EXISTENCIA
If UsuarioActual.CveEmpresa.Contiene({72, 80, 119, 140, 153, 190, 192, 197}) Then If UsuarioActual.CveEmpresa.Contiene({72, 80, 119, 140, 153, 190, 192, 197, 189}) Then
'SI ES VENTA NUEVA TOMA EN CUENTA LO DEL TMPDT 'SI ES VENTA NUEVA TOMA EN CUENTA LO DEL TMPDT
If CveVenta <= 0 Then If CveVenta <= 0 Then
If Existencia - TmpDT.SUM("Cantidad", $"CvePS = {CvePS} AND (EntregaDirecta IS NULL OR EntregaDirecta < 1)") < TxtCantidad.Text.ToDouble Then If Existencia - TmpDT.SUM("Cantidad", $"CvePS = {CvePS} AND (EntregaDirecta IS NULL OR EntregaDirecta < 1)") < TxtCantidad.Text.ToDouble Then
@@ -9276,7 +9286,7 @@ Partial Class Ventas
If Not PrecioLibre Then If Not PrecioLibre Then
If Not EsValido Then If Not EsValido Then
MensajeCosto.AppendFormat("El Producto <b>{0}</b>. No se puede vender a un precio menor de su Costo <br/>", DatarowPS("PS").ToString()) MensajeCosto.AppendFormat("El Producto <b>{0}</b>. No se puede vender a un precio menor de su Costo <br/>", DatarowPS("CodigoPS").ToString())
If TienePermisoImportes Then If TienePermisoImportes Then
MensajeCosto.AppendFormat("El costo del producto es: <b>${0:#,###.00}</b> <br/>", Costo) MensajeCosto.AppendFormat("El costo del producto es: <b>${0:#,###.00}</b> <br/>", Costo)
MensajeCosto.AppendFormat("El rango menor aceptado es: {0:#,###.00}% <b>${1}</b> <br/>", PorcentajeMinimoCostoEmpresa, CostoMenor) MensajeCosto.AppendFormat("El rango menor aceptado es: {0:#,###.00}% <b>${1}</b> <br/>", PorcentajeMinimoCostoEmpresa, CostoMenor)
@@ -10247,8 +10257,18 @@ Partial Class Ventas
EsValidoMayor = False EsValidoMayor = False
EsValidoPU = True EsValidoPU = True
PU = dr("PU").ToString().ToDecimal * If(DdlMoneda.SelectedValue.ToEntero() = 1, 1, TxtTipoCambio.Text.ToDecimal) PU = dr("PU").ToString().ToDecimal * If(DdlMoneda.SelectedValue.ToEntero() = 1, 1, TxtTipoCambio.Text.ToDecimal)
Costo = ObjInventarios.GetCostoPS(dr("CvePS").ToString().ToEntero(), dr("Cantidad").ToString().ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
If UsuarioActual.Empresa.Funcionalidad(602) = "UC" Then 'validación sobre el último costo
If ObjInventarios.GetUltimoCosto(UsuarioActual.CveEmpresa, dr("CvePS").ToString().ToEntero()) Then
Dim drps As DataRow = ObjInventarios.DtResultados.FiltroPrimero("")
If drps IsNot Nothing Then
Costo = drps("UltimoCosto").ToString.ToDecimal
End If
End If
Else
Costo = ObjInventarios.GetCostoPS(dr("CvePS").ToString().ToEntero(), dr("Cantidad").ToString().ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
End If
Dim PrecioMinimo As Decimal = 0 Dim PrecioMinimo As Decimal = 0
'RMF. condicion temporal, para reubicación, precio mínimo 'RMF. condicion temporal, para reubicación, precio mínimo
If UsuarioActual.CveEmpresa = 119 Then If UsuarioActual.CveEmpresa = 119 Then
@@ -10320,7 +10340,7 @@ Partial Class Ventas
Dim TienePermisoImportes As Boolean = UsuarioActual.TienePermisoProceso(201) Dim TienePermisoImportes As Boolean = UsuarioActual.TienePermisoProceso(201)
If Not EsValido Then If Not EsValido Then
MensajeCosto.AppendFormat("El Producto <b>{0}</b>. No se puede vender a un precio menor de su Costo ni a un precio mayor de su rango aceptado<br/>", dr("PS").ToString()) MensajeCosto.AppendFormat("El Producto <b>{0}</b>. No se puede vender a un precio menor de su Costo ni a un precio mayor de su rango aceptado<br/>", dr("CodigoPS").ToString())
If TienePermisoImportes Then If TienePermisoImportes Then
MensajeCosto.AppendFormat("El costo del producto es: <b>{0:#,###.00}$</b> <br/>", Costo) MensajeCosto.AppendFormat("El costo del producto es: <b>{0:#,###.00}$</b> <br/>", Costo)
MensajeCosto.AppendFormat("El rango menor aceptado es: {0} <b>{1:#,###.00}$</b> <br/>", PorcentajeMinimoCostoEmpresa, CostoMenor) MensajeCosto.AppendFormat("El rango menor aceptado es: {0} <b>{1:#,###.00}$</b> <br/>", PorcentajeMinimoCostoEmpresa, CostoMenor)
@@ -10484,22 +10504,24 @@ Partial Class Ventas
If ValidaPagosContado(TipoDoctoViejo:=TipoDoctoViejo) Then If ValidaPagosContado(TipoDoctoViejo:=TipoDoctoViejo) Then
Exit Sub Exit Sub
End If End If
'validaciones, si es Anticipo solo permitir "servicios de facturación" y si es ingreso todos menos serv. factu 'validaciones, si es Anticipo solo permitir "servicios de facturación" y si es ingreso todos menos serv. factu
If UsuarioActual.CveEmpresa = 119 Then If UsuarioActual.Empresa.Funcionalidad(601) <> "" Then
If DdlTipoComprobante.SelectedValue = "Ing" Then If UsuarioActual.Empresa.Funcionalidad(601) = "1" AndAlso DdlTipoComprobante.SelectedValue = "Ant" Then 'valida anticipo que tenga conceptos válidos
Dim tCont As Integer = TmpDT.FiltraParametros("SATClaveProdServ='84111506'").Rows.Count
If tCont > 0 Then
Alert("Existen productos con código SAT '84111506' no permitido al facturar ingresos.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
If DdlTipoComprobante.SelectedValue = "Ant" Then
Dim tCont As Integer = TmpDT.FiltraParametros("SATClaveProdServ<>'84111506'").Rows.Count Dim tCont As Integer = TmpDT.FiltraParametros("SATClaveProdServ<>'84111506'").Rows.Count
If tCont > 0 Then If tCont > 0 Then
Alert("Al facturar 'Anticipos' solo son permitidos código SAT '84111506'.", TipoMensaje.MsgAdvertencia) Alert("Al facturar 'Anticipos' solo son permitidos código SAT '84111506'.", TipoMensaje.MsgAdvertencia)
Exit Sub Exit Sub
End If End If
End If End If
If UsuarioActual.Empresa.Funcionalidad(601) = "2" AndAlso DdlTipoComprobante.SelectedValue = "Ing" Then
Dim tCont As Integer = TmpDT.FiltraParametros("SATClaveProdServ='84111506'").Rows.Count
If tCont > 0 Then
Alert("Existen productos con código SAT '84111506' no permitido al facturar ingresos.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
End If End If
'CREA UNA COPIA DE SEGURIDAD PARA LOS DATOS DEL TMPDT 'CREA UNA COPIA DE SEGURIDAD PARA LOS DATOS DEL TMPDT
@@ -19365,8 +19387,8 @@ Partial Class Ventas
DdlVendedor.DataBind() DdlVendedor.DataBind()
DdlVendedorSucursal.DataBind() DdlVendedorSucursal.DataBind()
DdlVendedor.Items.Insert(0, New ListItem("Sin Asignar")) DdlVendedor.Items.Insert(0, New ListItem("Sin Asignar", "-1"))
DdlVendedorSucursal.Items.Insert(0, New ListItem("Sin Asignar")) DdlVendedorSucursal.Items.Insert(0, New ListItem("Sin Asignar", "-1"))
DdlVendedor.SelectedValueExist("0") DdlVendedor.SelectedValueExist("0")
DdlVendedorSucursal.SelectedValueExist("0") DdlVendedorSucursal.SelectedValueExist("0")
@@ -19478,6 +19500,8 @@ Partial Class Ventas
Dim PrecioLibre As Boolean = False Dim PrecioLibre As Boolean = False
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
Dim DatarowPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") Dim DatarowPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("")
If DatarowPS IsNot Nothing Then If DatarowPS IsNot Nothing Then
@@ -19548,13 +19572,23 @@ Partial Class Ventas
End If End If
If ValidaExistenciasCosto Then If ValidaExistenciasCosto Then
Dim ObjInventarios As New ClsInventarios Dim Costo As Decimal
If UsuarioActual.Empresa.Funcionalidad(602) = "UC" Then 'validación sobre el último costo
Dim Costo As Decimal = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1) Dim ObjInventarios As New ClsInventarios
'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal If ObjInventarios.GetUltimoCosto(UsuarioActual.CveEmpresa, CvePS) Then
If Costo <= 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1) Dim dr As DataRow = ObjInventarios.DtResultados.FiltroPrimero("")
If dr IsNot Nothing Then
ObjInventarios.Dispose() Costo = dr("UltimoCosto").ToString.ToDecimal
End If
End If
ObjInventarios.Dispose()
Else
Dim ObjInventarios As New ClsInventarios
Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal
If Costo <= 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
ObjInventarios.Dispose()
End If
Dim PrecioMinimo As Decimal = 0 Dim PrecioMinimo As Decimal = 0
'RMF. condicion temporal, para reubicación, precio mínimo 'RMF. condicion temporal, para reubicación, precio mínimo
@@ -19563,12 +19597,8 @@ Partial Class Ventas
Dim objPS As New ClsProductosServicios Dim objPS As New ClsProductosServicios
If objPS.GetPSSucursalesALL(CvePS, UsuarioActual.CveEmpresa, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero()) Then If objPS.GetPSSucursalesALL(CvePS, UsuarioActual.CveEmpresa, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero()) Then
PrecioMinimo = objPS.DtResultados.FiltroPrimeroValor("PrecioMinimo", "").ToDecimal PrecioMinimo = objPS.DtResultados.FiltroPrimeroValor("PrecioMinimo", "").ToDecimal
'If PrecioMinimo > 0 Then
' Costo = PrecioMinimo
'End If
End If End If
objPS.Dispose() objPS.Dispose()
End If End If
Dim ValidaExistencia As Boolean = (DdlTipoComprobante.SelectedValue <> "Cot" And ChkSinExistencia.Checked = False) Or UsuarioActual.Empresa.Funcionalidad(578).ToEntero = 1 Dim ValidaExistencia As Boolean = (DdlTipoComprobante.SelectedValue <> "Cot" And ChkSinExistencia.Checked = False) Or UsuarioActual.Empresa.Funcionalidad(578).ToEntero = 1
@@ -19576,10 +19606,9 @@ Partial Class Ventas
If ValidaExistencia Then If ValidaExistencia Then
'VALIDA EXISTENCIA 'VALIDA EXISTENCIA
If UsuarioActual.CveEmpresa.Contiene({72, 80, 119, 153, 140, 186, 190, 192, 197}) Then If UsuarioActual.CveEmpresa.Contiene({72, 80, 119, 153, 140, 186, 190, 192, 197, 189}) Then
Dim BuscarEnTabla As Boolean = If(UsuarioActual.Empresa.Funcionalidad(715) = "1", True, False) Dim BuscarEnTabla As Boolean = If(UsuarioActual.Empresa.Funcionalidad(715) = "1", True, False)
Dim Existencia As Decimal = 0D Dim Existencia As Decimal = 0D
Using ObjInv2 As New ClsInventarios Using ObjInv2 As New ClsInventarios
@@ -19614,7 +19643,6 @@ Partial Class Ventas
StrAlmacen.AppendFormat("<br/>Almacén: {0}", Almacen) StrAlmacen.AppendFormat("<br/>Almacén: {0}", Almacen)
End If End If
End If End If
Alert("No cuenta con la cantidad suficiente en inventario. Cuenta con " + Existencia.FormatoNumero(2) + "." + StrAlmacen.ToString(), TipoMensaje.MsgAdvertencia) Alert("No cuenta con la cantidad suficiente en inventario. Cuenta con " + Existencia.FormatoNumero(2) + "." + StrAlmacen.ToString(), TipoMensaje.MsgAdvertencia)
Return False Return False
End If End If
@@ -19842,7 +19870,6 @@ Partial Class Ventas
If CantMinima > 0 Then If CantMinima > 0 Then
Cant = Math.Floor(Cantidad / CantMinima).ToEntero() Cant = Math.Floor(Cantidad / CantMinima).ToEntero()
End If End If
End If End If
TotalPromocion = Math.Round(PUPromocion * Cant / (1 + If(IncluyeImpuestos, PorcentajeIVA, 0)), 6) TotalPromocion = Math.Round(PUPromocion * Cant / (1 + If(IncluyeImpuestos, PorcentajeIVA, 0)), 6)
@@ -19857,16 +19884,21 @@ Partial Class Ventas
End If End If
ElseIf TipoPromo = 2 Then 'Promocion por % ElseIf TipoPromo = 2 Then 'Promocion por %
Descuento = Descuento + ((PU * PromocionPorcentaje / 100) * Cantidad) If TipoAplicacion = 2 Then
Descuento = 0
SeAjustoPU = True
PUModificado = Math.Round((PU - (PU * PromocionPorcentaje / 100D)) / (1 + If(IncluyeImpuestos, PorcentajeIVA, 0)), 6)
Else
Descuento = Descuento + ((PU * PromocionPorcentaje / 100) * Cantidad)
End If
ElseIf TipoPromo = 3 Then 'Promocion por Cantidad ElseIf TipoPromo = 3 Then 'Promocion por Cantidad
If Cantidad >= CantMinima Then If Cantidad >= CantMinima Then
Descuento = Descuento + TotalPromocion Descuento = Descuento + TotalPromocion
Else Else
CvePromocionDetalle = -1 CvePromocionDetalle = -1
End If End If
End If End If
'VERIFICA SI APLICAN CONDICIONES COMERCIALES 'VERIFICA SI APLICAN CONDICIONES COMERCIALES
If ValidaCondicionesComerciales AndAlso DtPorcentajeMarcas IsNot Nothing AndAlso DtPorcentajeMarcas.Rows.Count > 0 Then If ValidaCondicionesComerciales AndAlso DtPorcentajeMarcas IsNot Nothing AndAlso DtPorcentajeMarcas.Rows.Count > 0 Then
'VERIFICA SI EL PRODUCTO TIENE ESPECIFICADA UNA MARCA 'VERIFICA SI EL PRODUCTO TIENE ESPECIFICADA UNA MARCA
@@ -19919,7 +19951,6 @@ Partial Class Ventas
ObjDescuento.ImporteProntoPago = (TotalProntoPago * PorcentajeProntoPago).RoundSQL(2) ObjDescuento.ImporteProntoPago = (TotalProntoPago * PorcentajeProntoPago).RoundSQL(2)
End If End If
End If End If
End If End If
End If End If
@@ -19953,7 +19984,6 @@ Partial Class Ventas
'YOKOHAMA 'YOKOHAMA
If UsuarioActual.Empresa.Funcionalidad(558) = "1" AndAlso CveRinTamañoPS > 0 AndAlso CveMarcaPromocion.Contiene(800, 912, 1238, 1381, 1456, 1528, 1600, 1672, 1807) Then If UsuarioActual.Empresa.Funcionalidad(558) = "1" AndAlso CveRinTamañoPS > 0 AndAlso CveMarcaPromocion.Contiene(800, 912, 1238, 1381, 1456, 1528, 1600, 1672, 1807) Then
If CveMarcaPromocion > 0 Then If CveMarcaPromocion > 0 Then
ObjDescuento.NombrePromo = "YOKOHAMA VERANO" 'dr("NombrePromocion").ToString() ObjDescuento.NombrePromo = "YOKOHAMA VERANO" 'dr("NombrePromocion").ToString()
ObjDescuento.CveMarca = CveMarcaPromocion ObjDescuento.CveMarca = CveMarcaPromocion