-- mejoras en actualizar precios, listas de precio

This commit is contained in:
2024-11-26 19:58:43 -07:00
parent bcee4817e4
commit 964358dd26
3 changed files with 87 additions and 55 deletions

View File

@@ -1980,7 +1980,8 @@ Public Class ClsProductosServicios
#Region "Precios Lista"
Public Function GetPSPreciosLista(CveEmpresa As Integer, CvePrecioLista As Integer, Optional CveClasificacion As Integer = -1, Optional CvePS As Integer = -1,
Optional CveProveedor As Integer = -1, Optional Estado As Integer = -1, Optional Marcas As String = "-1", Optional CveModelo As Integer = -1) As Boolean
Optional CveProveedor As Integer = -1, Optional Estado As Integer = -1, Optional Marcas As String = "-1", Optional CveModelo As Integer = -1,
Optional CodigoInicial As String = "-1", Optional CodigoFinal As String = "-1", Optional Opcion As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Vta_PSPrecioListaGet")
With SqlAdapter.SelectCommand.Parameters
@@ -1992,6 +1993,9 @@ Public Class ClsProductosServicios
.Add("@Estado", SqlDbType.Int).Value = Estado
.Add("@Marcas", SqlDbType.VarChar).Value = Marcas
.Add("@CveModelo", SqlDbType.Int).Value = CveModelo
.Add("@CodigoInicial", SqlDbType.VarChar).Value = CodigoInicial
.Add("@CodigoFinal", SqlDbType.VarChar).Value = CodigoFinal
.Add("@Opcion", SqlDbType.Int).Value = Opcion
End With
Try
SqlAdapter.Fill(Data)
@@ -2004,9 +2008,10 @@ Public Class ClsProductosServicios
End Function
Public Function GetPSMultiplesPreciosLista(CveEmpresa As Integer, Optional ListasPrecios As String = "-1", Optional CveClasificacion As Integer = -1, Optional CvePS As Integer = -1,
Optional CveProveedor As Integer = -1, Optional Estado As Integer = -1, Optional Marcas As String = "-1", Optional CveModelo As Integer = -1) As Boolean
Optional CveProveedor As Integer = -1, Optional Estado As Integer = -1, Optional Marcas As String = "-1", Optional CveModelo As Integer = -1,
Optional CodigoInicial As String = "-1", Optional CodigoFinal As String = "-1") As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Vta_PSPrecioListaMultipleGet")
DataAdapter("PA_Vta_PSPrecioListaMultipleGetRM")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@ListasPrecios", SqlDbType.VarChar).Value = ListasPrecios
@@ -2016,6 +2021,9 @@ Public Class ClsProductosServicios
.Add("@Estado", SqlDbType.Int).Value = Estado
.Add("@Marcas", SqlDbType.VarChar).Value = Marcas
.Add("@CveModelo", SqlDbType.Int).Value = CveModelo
.Add("@CodigoInicial", SqlDbType.VarChar).Value = CodigoInicial
.Add("@CodigoFinal", SqlDbType.VarChar).Value = CodigoFinal
End With
Try
SqlAdapter.Fill(Data)

View File

@@ -90,7 +90,7 @@
<asp:DropDownList ID="DDlClasificacion" runat="server" Width="100%" CssClass="select2me" OnSelectedIndexChanged="DDlClasificacion_SelectedIndexChanged" AutoPostBack="True" DataValueField="CveClasificacion" DataTextField="Clasificacion"></asp:DropDownList>
</div>
<label class="col-md-1 v-center truncate" style="width: 90px;">PS:</label>
<label class="col-md-1 v-center truncate" style="width: 90px;">Prod/Serv:</label>
<div class="col-md-2 v-center">
<ADS:Dropdownlost ID="DDlPs" AutoPostBack="false" runat="server" DataTextField="PSCodigo" DataValueField="CvePS" CssClassDdl="select2me" CssStyle="width:250px;"></ADS:Dropdownlost>
</div>
@@ -106,7 +106,7 @@
</div>
</div>
<div class="portlet-body">
<div class="row v-center" style="height: 32px;">
<div class="row" style="height: 32px;">
<label class="col-md-1 v-center truncate" style="width: 90px;">Estado:</label>
<div class="col-md-2 v-center">
<asp:DropDownList ID="DdlEstado" runat="server" Width="100%" CssClass="select2me">
@@ -129,6 +129,20 @@
<ADS:Dropdownlost CssClassDdl="select2me" ID="DdlProveedor" Width="100%" data-metodo="getproveedores" runat="server" DataTextField="RazonSocial" DataValueField="CveProveedor" CssStyle="width: 100%;"></ADS:Dropdownlost>
</div>
</div>
<div class="row">
<div class="col-md-12">
</div>
</div>
<div class="row" runat="server" visible="false" id="DVFiltroCodigo">
<label id="Label1" class="col-md-1 v-center truncate" style="width: 90px;">Código Inicio:</label>
<div class="col-md-2">
<asp:TextBox runat="server" ID="TxtCodigoInicio" Height="26px" Width="85px"></asp:TextBox>
</div>
<div class="col-md-1" style="max-width: 80px;">Código Fin:</div>
<div class="col-md-2">
<asp:TextBox runat="server" ID="TxtCodigoFinal" Height="26px" Width="85px"></asp:TextBox>
</div>
</div>
</div>
</div>
</ContentTemplate>
@@ -151,7 +165,7 @@
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body rowpadding">
<div class="portlet-body">
<div class="row">
<div class="col-md-12">
<asp:RadioButtonList AutoPostBack="true" OnSelectedIndexChanged="RblTipo_SelectedIndexChanged" RepeatDirection="Horizontal" ID="RblTipo" runat="server">
@@ -186,16 +200,19 @@
<a class="btn btn-default" onclick="CambiaPrecio();">Aplicar Precio Min.</a>
</div>
</div>
<div class="form-group form-md-line-input input-iconright" style="width: 50%">
<asp:TextBox ID="TxtPorcentaje" runat="server" CssClass="form-control" CausesValidation="true"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FTBSerie" runat="server" TargetControlID="TxtPorcentaje" FilterType="Numbers, Custom" ValidChars=".,-" />
<label for="<%= TxtPorcentaje.ClientID.ToString()%>">Porcentaje Nuevo:</label>
</div>
<div class="text-right">
<asp:LinkButton ID="BtnGuardar" runat="server" AlternateText="Actualizar" CausesValidation="True" CssClass="btn btn-primary" Text="Actualizar Seleccionadas" ValidationGroup="GrpGuardar" />
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright" >
<asp:TextBox ID="TxtPorcentaje" runat="server" CssClass="form-control" CausesValidation="true"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FTBSerie" runat="server" TargetControlID="TxtPorcentaje" FilterType="Numbers, Custom" ValidChars=".,-" />
<label for="<%= TxtPorcentaje.ClientID.ToString()%>">Porcentaje Nuevo:</label>
</div>
</div>
<div class="col-md-6 text-right">
<asp:LinkButton ID="BtnGuardar" runat="server" AlternateText="Actualizar" CausesValidation="True" CssClass="btn btn-primary" Text="Actualizar Seleccionadas" ValidationGroup="GrpGuardar" />
</div>
</div>
</div>
</div>
</div>
@@ -213,7 +230,7 @@
CssClass="table table-striped table-advance table-hover Widthall ScrollAD" AutoGenerateColumns="False" data-sort="true" EmptyDataText="No se encontraron registros"
OnRowDataBound="GVPrecios_RowDataBound" >
<Columns>
<asp:TemplateField ItemStyle-HorizontalAlign="center" ItemStyle-Width="5%">
<asp:TemplateField ItemStyle-HorizontalAlign="center" ItemStyle-Width="35px">
<ItemTemplate>
<asp:CheckBox runat="server" ID="chkPS" />
</ItemTemplate>
@@ -229,42 +246,38 @@
</asp:TemplateField>
<asp:BoundField DataField="PS" HeaderText="Producto/Servicio" />
<asp:BoundField DataField="Clasificacion" ItemStyle-Width="15%" HeaderText="Clasificación" />
<asp:BoundField DataField="PrecioLista" NullDisplayText="N/A" ItemStyle-Width="10%" HeaderText="Importe" DataFormatString="$ {0:N2}" ItemStyle-HorizontalAlign="right" />
<asp:TemplateField HeaderText="">
<asp:TemplateField HeaderText="Importe" ItemStyle-HorizontalAlign="Right" >
<ItemTemplate>
<asp:TextBox ID="TxtPrecio" runat="server" Text='<%# Eval("PrecioLista", "{0:0.######}")%>' CssClass="CssCamviaPrecio" MaxLength="39" Width="90px" onkeypress="return onlyNumberKey(event)"></asp:TextBox>
<%--<ajax:FilteredTextBoxExtender runat="server" TargetControlID="TxtPrecio" FilterType="Numbers,Custom" ValidChars="." />
<asp:RegularExpressionValidator ID="REVTxtPrecio" runat="server" ControlToValidate="TxtPrecio" Display="None" EnableClientScript="True" ErrorMessage="El campo <b>''PrecioLista''</b> no tiene el formato correcto, por favor corrija e intente de nuevo (Solo formato numérico)." ValidationGroup="GrpGuardar" ValidationExpression="^[0-9]{1,15}(?:\.[0-9]{1,4})?$" />
<ajax:ValidatorCalloutExtender ID="VCPrecio" runat="server" HighlightCssClass="vco" TargetControlID="REVTxtPrecio" Width="300px"></ajax:ValidatorCalloutExtender>--%>
<asp:TextBox ID="TxtPrecio" runat="server" Text='<%# Eval("PrecioLista", "{0:0.00####}")%>' style="text-align:right;" CssClass="CssCamviaPrecio" MaxLength="39" Width="90px" onkeypress="return onlyNumberKey(event)"></asp:TextBox>
<br />
<asp:Label ID="LtlPrecio" runat="server" Text='<%# Eval("PrecioLista", "$ {0:#,##0.00####}")%>' Font-Italic="true" Font-Size="8pt" ></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Precio Mínimo" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:LinkButton ID="LnkPrecioMinActual" OnClick="LnkPrecioMinActual_Click" runat="server" Text='<%# If(Eval("PrecioMinimo").ToString.Length = 0, "N/A", Eval("PrecioMinimo", "{0:N2}")) %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="">
</asp:TemplateField>
<asp:TemplateField HeaderText="Precio Mínimo" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right" Visible="false">
<ItemTemplate>
<asp:TextBox ID="TxtPrecioMinimo" runat="server" Text='<%# Eval("PrecioMinimo", "{0:0.######}")%>' CssClass="CssCamviaPrecio" MaxLength="39" Width="60px" onkeypress="return onlyNumberKey(event)"></asp:TextBox>
<br />
<asp:LinkButton ID="LnkPrecioMinActual" OnClick="LnkPrecioMinActual_Click" runat="server" Text='<%# If(Eval("PrecioMinimo").ToString.Length = 0, "N/A", Eval("PrecioMinimo", "{0:N2}")) %>' Font-Italic="true" Font-Size="8pt"></asp:LinkButton>
<%-- <ajax:FilteredTextBoxExtender runat="server" TargetControlID="TxtPrecioMinimo" FilterType="Numbers,Custom" ValidChars="." />
<asp:RegularExpressionValidator ID="REVTxtPrecioMinimo" runat="server" ControlToValidate="TxtPrecioMinimo" Display="None" EnableClientScript="True" ErrorMessage="El campo <b>''PrecioLista''</b> no tiene el formato correcto, por favor corrija e intente de nuevo (Solo formato numérico)." ValidationGroup="GrpGuardar" ValidationExpression="^[0-9]{1,15}(?:\.[0-9]{1,4})?$" />
<ajax:ValidatorCalloutExtender ID="VCTxtPrecioMinimo" runat="server" HighlightCssClass="vco" TargetControlID="REVTxtPrecioMinimo" Width="300px"></ajax:ValidatorCalloutExtender>--%>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="UnidadMedida" NullDisplayText="N/A" ItemStyle-Width="10%" HeaderText="U.M." />
<asp:BoundField DataField="Moneda" NullDisplayText="N/A" ItemStyle-Width="10%" HeaderText="Moneda" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="UltimoCosto" ItemStyle-Width="5%" HeaderText="Ult.Costo" DataFormatString="{0:#,##0.00}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField DataField="CostoPromedio" ItemStyle-Width="5%" HeaderText="Costo Prom." DataFormatString="{0:#,##0.00}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField DataField="UnidadMedida" NullDisplayText="N/A" ItemStyle-Width="2.5%" HeaderText="U.M." />
<asp:BoundField DataField="Moneda" NullDisplayText="N/A" ItemStyle-Width="2.5%" HeaderText="Moneda" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="CostoPromedio" NullDisplayText="-" ItemStyle-Width="5%" DataFormatString="{0:N2}" Visible="false" HeaderText="C. Promedio" ItemStyle-HorizontalAlign="right" />
<asp:BoundField DataField="VentaMinima" NullDisplayText="N/A" ItemStyle-Width="10%" HeaderText="E. Mínimo" ItemStyle-HorizontalAlign="right" />
<asp:BoundField DataField="VentaMinima" NullDisplayText="N/A" ItemStyle-Width="10%" HeaderText="E. Mínimo" ItemStyle-HorizontalAlign="right" Visible="false" />
<asp:BoundField DataField="ImporteAnterior" NullDisplayText="N/A" ItemStyle-Width="10%" HeaderText="Importe Anterior" DataFormatString="$ {0:N2}" ItemStyle-HorizontalAlign="right" />
<asp:BoundField DataField="PrecioMinimoAnterior" NullDisplayText="N/A" ItemStyle-Width="10%" HeaderText="Precio Mínimo Anterior" DataFormatString="$ {0:N2}" ItemStyle-HorizontalAlign="right" />
<asp:BoundField DataField="ImporteAnterior" NullDisplayText="N/A" ItemStyle-Width="5%" HeaderText="Imp. Anterior" DataFormatString="$ {0:N2}" ItemStyle-HorizontalAlign="right" />
<asp:BoundField DataField="PrecioMinimoAnterior" NullDisplayText="N/A" ItemStyle-Width="5%" HeaderText="Precio Mínimo Anterior" DataFormatString="$ {0:N2}" ItemStyle-HorizontalAlign="right" Visible="false" />
<asp:BoundField DataField="FechaModificacion" DataFormatString="{0:dd/MM/yyyy hh:mm:ss}" ItemStyle-Width="10%" HeaderText="Fecha Modificación" />
<asp:BoundField DataField="UsuarioModifico" DataFormatString="{0:dd/MM/yyyy}" ItemStyle-Width="10%" HeaderText="Usuario Modificó" />
<asp:BoundField DataField="Porcentaje" NullDisplayText="N/A" ItemStyle-Width="10%" DataFormatString="%{0}" HeaderText="Porcentaje" ItemStyle-HorizontalAlign="right" />
<asp:BoundField DataField="FechaIng" DataFormatString="{0:dd/MM/yyyy}" ItemStyle-Width="10%" HeaderText="Fecha Ingreso" />
<asp:BoundField DataField="Usuario" DataFormatString="{0:dd/MM/yyyy}" ItemStyle-Width="10%" HeaderText="Usuario Ingresó" />
<asp:BoundField DataField="UsuarioModifico" DataFormatString="{0:dd/MM/yyyy}" ItemStyle-Width="10%" HeaderText="Usuario Modificó" Visible="false" />
<asp:BoundField DataField="Porcentaje" NullDisplayText="N/A" ItemStyle-Width="10%" DataFormatString="%{0}" HeaderText="Porcentaje" ItemStyle-HorizontalAlign="right" Visible="false" />
<asp:BoundField DataField="FechaIng" DataFormatString="{0:dd/MM/yyyy}" ItemStyle-Width="10%" HeaderText="Fecha Ingreso" Visible="false" />
<asp:BoundField DataField="Usuario" DataFormatString="{0:dd/MM/yyyy}" ItemStyle-Width="10%" HeaderText="Usuario Ingresó" Visible="false" />
</Columns>
</asp:GridView>
@@ -616,6 +629,8 @@
<asp:TextBox ID="TxtPrecio_40" runat="server" CssClass="CssCamviaPrecio" MaxLength="39" Width="80px" onkeypress="return onlyNumberKey(event)" Style="text-align: right !important;"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="UltimoCosto" ItemStyle-Width="75px" HeaderText="Ult.Costo" DataFormatString="{0:#,##0.00}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField DataField="CostoPromedio" ItemStyle-Width="75px" HeaderText="Costo Prom." DataFormatString="{0:#,##0.00}" ItemStyle-HorizontalAlign="Right"/>
</Columns>
</asp:GridView>
</div>

View File

@@ -114,6 +114,11 @@ Partial Class Ventas_ActualizarPrecios
PermisoEdicionLista = False
DivActualizarPrecio.Visible = False
HlAgregarExcel.Visible = False
End If
If UsuarioActual.Empresa.Funcionalidad(382) = "1" OrElse UsuarioActual.Empresa.Funcionalidad(109) = "1" Then 'Empresa gdiaz
GVPrecios.Columns(2).Visible = True
DVFiltroCodigo.Visible = True
End If
CargaCombos()
@@ -202,12 +207,9 @@ Partial Class Ventas_ActualizarPrecios
End If
End Sub
Protected Sub CargarMarcas()
If UsuarioActual.Empresa.Funcionalidad(130) = "1" Then
Dim ObjMarcas As New ClsProductosServicios
If ObjMarcas.GetMarcas(UsuarioActual.CveEmpresa) Then
DdlMarca.DataSource = ObjMarcas.DtResultados.Copy
End If
ObjMarcas.Dispose()
If UsuarioActual.Empresa.Funcionalidad(130) = "1" Then
DdlMarca.DataSource = GlobalDTGralMarcas(UsuarioActual.CveEmpresa)
DdlMarca.DataBind()
LblMarca.Visible = True
@@ -248,16 +250,25 @@ Partial Class Ventas_ActualizarPrecios
If DdlModalidad.SelectedValue = "1" Then
Dim objPS As New ClsProductosServicios
If objPS.GetPSPreciosLista(UsuarioActual.CveEmpresa, DdlPrecioLista.SelectedValue.ToEntero, DDlClasificacion.SelectedValue.ToEntero, CvePS,
CveProveedor:=CveProveedor, Estado:=DdlEstado.SelectedValue.ToEntero, Marcas:=Marcas, CveModelo:=DdlModelo.SelectedValue.ToEntero) Then
CveProveedor:=CveProveedor, Estado:=DdlEstado.SelectedValue.ToEntero, Marcas:=Marcas, CveModelo:=DdlModelo.SelectedValue.ToEntero,
CodigoInicial:=TxtCodigoInicio.Text.Trim, CodigoFinal:=TxtCodigoFinal.Text.Trim) Then
DtDatosPrecios = objPS.DtResultados
GVPrecios.DataSource = DtDatosPrecios
End If
objPS.Dispose()
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then 'Empresa Acumuladores
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Or UsuarioActual.Empresa.Funcionalidad(382) = "1" Then 'Empresa Acumuladores
GVPrecios.Columns(2).Visible = True
End If
If UsuarioActual.CveEmpresa = 119 Then 'JAM
GVPrecios.Columns(5).Visible = True
GVPrecios.Columns(10).Visible = True
GVPrecios.Columns(12).Visible = True
GVPrecios.Columns(13).Visible = True
GVPrecios.Columns(14).Visible = True
End If
If UsuarioActual.CveEmpresa = 153 Then 'Empresa servec
GVPrecios.Columns(11).Visible = True
End If
@@ -281,7 +292,8 @@ Partial Class Ventas_ActualizarPrecios
Dim objPS As New ClsProductosServicios
If objPS.GetPSMultiplesPreciosLista(UsuarioActual.CveEmpresa, ListasPrecios:=ListasPrecios, CveClasificacion:=DDlClasificacion.SelectedValue.ToEntero, CvePS:=CvePS,
CveProveedor:=CveProveedor, Estado:=DdlEstado.SelectedValue.ToEntero, Marcas:=Marcas, CveModelo:=DdlModelo.SelectedValue.ToEntero) Then
CveProveedor:=CveProveedor, Estado:=DdlEstado.SelectedValue.ToEntero, Marcas:=Marcas, CveModelo:=DdlModelo.SelectedValue.ToEntero,
CodigoInicial:=TxtCodigoInicio.Text.Trim, CodigoFinal:=TxtCodigoFinal.Text.Trim) Then
DtPreciosMultiple = objPS.DtResultados.Copy()
GvMultiple.DataSource = DtPreciosMultiple
End If
@@ -291,17 +303,15 @@ Partial Class Ventas_ActualizarPrecios
dvMultiple.Visible = True
DivActualizarPrecio.Visible = False
For colIndex As Integer = 2 To GvMultiple.Columns.Count - 1
If colIndex <= DtPreciosMultiple.Columns.Count - 1 Then
For colIndex As Integer = 2 To GvMultiple.Columns.Count - 3
If colIndex <= DtPreciosMultiple.Columns.Count - 3 Then
GvMultiple.Columns(colIndex).Visible = True
Else
GvMultiple.Columns(colIndex).Visible = False
End If
Next
GvMultiple.DataBind()
End If
End If
UpDescargar.Update()
UpDatos.Update()
@@ -341,7 +351,6 @@ Partial Class Ventas_ActualizarPrecios
sbProductos.AppendFormat("{0},", row.DataKey("CvePS").ToEntero)
End If
If Not TieneError Then
TieneError = ActualizarPreciosFranquicia(ObjPS, row.DataKey("Codigo"), row.FCTextBox("TxtPrecio").Text.ToDecimal, row.FCTextBox("TxtPrecioMinimo").Text.ToDecimal, DdlPrecioLista.SelectedItem.Text)
Else