diff --git a/Inventarios/RecepcionUsados.aspx b/Inventarios/RecepcionUsados.aspx index ba194c182..57d8499be 100644 --- a/Inventarios/RecepcionUsados.aspx +++ b/Inventarios/RecepcionUsados.aspx @@ -111,6 +111,12 @@ +
+ + Usados + Ajuste/Garantía + +
@@ -324,8 +330,8 @@ - - + + @@ -337,6 +343,185 @@
+
+
+ + + +
+
+ + Ajuste +
+
+
+
+ +
+
+ + +
+
+
+
+ + + + + +
+
+
+
+
+
+ + + +
+
+
+
+
+
+ + + + + +
+
+
+
+ + <%-- + <%----%> + <%----%> +
+
+
+
+
+
+ + + <%----% + <%----%> + +
+
+
+
+ + + + + +
+
+
+
+
+
+
+ + + <%----%> + <%----%> + +
+
+
+ +
+ + + + + + + + +
+
+
+
+
+
+ + + <%----%> + <%----%> + +
+
+
+
+ + + + + +
+
+
+
+
+
+ + + + + +
+
+
+
+ + + + + +
+
+
+
+ + + + + +
+
+
+
+
+
+ + <%----%> + <%----%> + +
+
+
+
+ + + + + +
+
+
+ <%----%> +
+
+
+
+
+
+
<%--INVENTARIO INICIAL--%> diff --git a/Inventarios/RecepcionUsados.aspx.vb b/Inventarios/RecepcionUsados.aspx.vb index 381d6ef3c..b4d73f253 100644 --- a/Inventarios/RecepcionUsados.aspx.vb +++ b/Inventarios/RecepcionUsados.aspx.vb @@ -23,6 +23,14 @@ Partial Class Inventarios_RecepcionUsados ViewState("DtMovimientos") = value End Set End Property + Private Property ConsecutivoVenta As Integer + Get + Return ViewState("ConsecutivoVenta").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("ConsecutivoVenta") = value + End Set + End Property Public Property DtTamaños() As DataTable Get Return CType(ViewState("DtTamaños"), DataTable) @@ -285,7 +293,22 @@ Partial Class Inventarios_RecepcionUsados ViewState("ObjFactura") = value End Set End Property - + Private Property IndexAjuste As Integer + Get + Return ViewState("IndexAjuste").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("IndexAjuste") = value + End Set + End Property + Private Property TmpDTAjustes As DataTable + Get + Return If(IsNothing(ViewState("TmpDTAjustes")), Nothing, CType(ViewState("TmpDTAjustes"), DataTable)) + End Get + Set(value As DataTable) + ViewState("TmpDTAjustes") = value + End Set + End Property #End Region @@ -364,8 +387,6 @@ Partial Class Inventarios_RecepcionUsados CargaTamaños() 'DdlProducto2.setEsWebService(True) 'DdlProducto2.Attributes.Add("data-metodo", "getpsusados") - - End If End Sub @@ -2382,4 +2403,204 @@ Partial Class Inventarios_RecepcionUsados objAcum.Dispose() End Sub +#Region "Ajustes" + Public Sub OnRblUsadosAjuste_Change(sender As Object, e As EventArgs) + If RblUsadosAjuste.SelectedValue = "1" Then + CargaAjuste() + DivAjuste.Visible = True + Else + DivAjuste.Visible = False + End If + End Sub + + Private Sub CargaAjuste() + CreaDTmpDTAjustes() + CargaPSAjuste() + CargaBCIAjuste() + CargaFolioAjuste() + CargaTipoDefecto() + CargaTipoDeUso() + TxtFechaAjuste.Text = Today.ToString("d") + End Sub + Private Sub CreaDTmpDTAjustes() + TmpDTAjustes = New DataTable + TmpDTAjustes.Columns.Add("CveFolioGarantia", GetType(Integer)) + TmpDTAjustes.Columns.Add("CveTipoUso", GetType(Integer)) + TmpDTAjustes.Columns.Add("CveTipoDefecto", GetType(Integer)) + TmpDTAjustes.Columns.Add("CodigoEnsamble", GetType(String)) + TmpDTAjustes.Columns.Add("CodigoLinea", GetType(String)) + TmpDTAjustes.Columns.Add("CodigoInspeccion", GetType(String)) + TmpDTAjustes.Columns.Add("Consecutivo", GetType(String)) + TmpDTAjustes.Columns.Add("ConsecutivoVenta", GetType(Integer)) + TmpDTAjustes.Columns.Add("FechaAjuste", GetType(Date)) + TmpDTAjustes.Columns.Add("Meses", GetType(String)) + TmpDTAjustes.Columns.Add("PorcentajeAjuste", GetType(Double)) + TmpDTAjustes.Columns.Add("NumPoliza", GetType(String)) + TmpDTAjustes.Columns.Add("Importe", GetType(Double)) + TmpDTAjustes.Columns.Add("CvePS", GetType(Integer)) + TmpDTAjustes.Columns.Add("PS", GetType(String)) + TmpDTAjustes.Columns.Add("Cantidad", GetType(Decimal)) + TmpDTAjustes.Columns.Add("CveUM", GetType(Integer)) + TmpDTAjustes.Columns.Add("CveVentaDetalle", GetType(Integer)) + TmpDTAjustes.Columns.Add("CveVenta", GetType(Integer)) + TmpDTAjustes.Columns.Add("PUFactura", GetType(Double)) + End Sub + Private Sub CargaAjusteDetalle() + Dim Dr As DataRow = Nothing + IndexAjuste = 0 + For Each Dr2 As DataRow In TmpDTAjustes.Rows + If Dr2("ConsecutivoVenta").ToString.ToEntero = ConsecutivoVenta Then + Dr = Dr2 + Exit For + End If + IndexAjuste += 1 + Next + If Dr IsNot Nothing Then + IndexAjuste = TmpDTAjustes.Rows.IndexOf(Dr) + DdlFolioGarantia.SelectedValueExist(Dr("CveFolioGarantia").ToString) + TxtConsecutivoAjuste.Text = Dr("Consecutivo").ToString + TxtCodEnsamble.Text = Dr("CodigoEnsamble").ToString + DdlTipoUso.SelectedValueExist(Dr("CveTipoUso").ToString) + TxtCodLinea.Text = Dr("CodigoLinea").ToString + TxtCodInspeccion.Text = Dr("CodigoInspeccion").ToString + TxtMesesUso.Text = Dr("Meses").ToString + DdlTipoDefecto.SelectedValueExist(Dr("CveTipoDefecto").ToString) + TxtPorcentajeAjuste.Text = Dr("PorcentajeAjuste").ToString + TxtPoliza.Text = Dr("NumPoliza").ToString + TxtImporteAjuste.Text = Dr("Importe").ToString + 'DdlFacturas.SelectedValueExist(Dr("CveVenta").ToString) + CargaPSAjuste() + DdlPSAjuste.SelectedValue = (Dr("CvePS").ToString) + TxtFechaAjuste.Text = Dr("FechaAjuste").ToString.ToDate.ToShortDateString + txtPrecio.Text = Dr("PUFactura").ToString.ToDecimal.FormatoNumero(2) + txtPrecio.Enabled = Not Dr("CveVenta").ToString.ToEntero > 0 + End If + End Sub + Private Sub CargaPSAjuste() + DdlPSAjuste.setEsWebService(True) + End Sub + + Protected Sub DdlPSAjuste_selectedindexchange(sender As Object, e As EventArgs) + If DdlPSAjuste.SelectedValue.ToEntero > 0 Then + Dim CvePSParametro As Integer = DdlPSAjuste.SelectedValue.ToEntero + Dim PrecioSugerido As Decimal = 0 + Dim drPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSParametro).FiltroPrimero("") + + If drPS IsNot Nothing Then + PrecioSugerido = drPS("Precio").ToString.ToDecimal + End If + + TxtPUFactura.Text = PrecioSugerido.FormatoNumero(2) + End If + End Sub + + Private Sub CargaBCIAjuste() + Dim ObjGral As New ClsGenerales + If ObjGral.BCIUsadoGet(UsuarioActual.CveEmpresa) Then + DdlBCIAjuste.DataSource = ObjGral.DtResultados + DdlBCIAjuste.Items.Insert(0, New ListItem("Seleccione", "-1")) + End If + ObjGral.Dispose() + DdlBCIAjuste.DataBind() + End Sub + + Private Sub CargaFolioAjuste() + Dim ObjAcum As New ClsAcumuladores + If ObjAcum.FoliosGarantiaGet(-1, UsuarioActual.CveEmpresa) Then + DdlFolioGarantia.DataSource = ObjAcum.DtResultados + DdlFolioGarantia.Items.Insert(0, New ListItem("Seleccione", "-1")) + End If + ObjAcum.Dispose() + DdlFolioGarantia.DataBind() + End Sub + + Protected Sub DdlFolioGarantia_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlFolioGarantia.SelectedIndexChanged + Dim ObjAcumuladores As New ClsAcumuladores + If ObjAcumuladores.GetNuevoConsecutivoFolio(DdlFolioGarantia.SelectedValue.ToEntero) Then + Dim resultado As String = ObjAcumuladores.DtResultados.FiltroPrimeroValor("NuevoConsecutivo") + TxtConsecutivoAjuste.Text = resultado + UpAjuste.Update() + End If + ObjAcumuladores.Dispose() + End Sub + + Protected Sub CargaTipoDeUso() + DdlTipoUso.DataSource = GlobalDTAcumTiposUso.FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa}") + DdlTipoUso.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlTipoUso.DataBind + End Sub + + Protected Sub DdlTipoUso_SelectedIndexChanged(sender As Object, e As EventArgs) + CalculaPorcentajeAjuste() + End Sub + + Protected Sub CargaTipoDefecto() + DdlTipoDefecto.DataSource = GlobalDTAcumTiposDefecto.FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa}") + DdlTipoDefecto.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlTipoDefecto.DataBind + End Sub + Private Sub CalculaPorcentajeAjuste() + Try + If DdlTipoUso.SelectedValue.ToEntero > 0 AndAlso DdlPSAjuste.SelectedValue.ToEntero > 0 AndAlso TxtMesesUso.Text <> "" Then + Dim CveMarca As Integer = -1 + + CveMarca = GlobalDTPS(UsuarioActual.CveEmpresa, DdlPSAjuste.SelectedValue.ToEntero).FiltroPrimeroValor("CveMarca", "").ToEntero + + Dim ObjAcum As New ClsAcumuladores + If ObjAcum.GarantiasMesesGet(-1, UsuarioActual.CveEmpresa, CveMarca, DdlTipoUso.SelectedValue.ToEntero, TxtMesesUso.Text.ToEntero) Then + If ObjAcum.DtResultados.Rows.Count > 0 Then + TxtPorcentajeAjuste.Text = (ObjAcum.DtResultados.Rows(0)("Valor").ToString.ToDouble / 100).ToString + + TxtImporteAjuste.Text = (TxtPorcentajeAjuste.Text.ToDecimal * TxtPUFactura.Text.ToDecimal).FormatoNumero + + Dim CargoVendido As Decimal = 0 + Dim CargoGarantia As Decimal = 0 + Dim CveTamaño As Integer = 0 + + If DdlPSAjuste.SelectedValue.ToEntero > 0 Then + Dim Dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, DdlPSAjuste.SelectedValue.ToEntero).FiltroPrimero("") + If Dr IsNot Nothing Then + CargoGarantia = Dr("Cargo").ToString.ToDecimal + End If + End If + + If DdlPSAjuste.SelectedValue.ToEntero > 0 Then + Dim Dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, DdlPSAjuste.SelectedValue.ToEntero).FiltroPrimero("") + If Dr IsNot Nothing Then + CveTamaño = Dr("CveTamaño").ToString.ToEntero + End If + End If + + Dim DrCargo As DataRow = GlobalDTAcumTamaños.FiltroPrimero($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveTamaño = {CveTamaño}") + If DrCargo IsNot Nothing Then + + CargoVendido = DrCargo("Cargo").ToString.ToDecimal + + End If + + 'el ajuste no puede ser mayor al precio de lo vendido de nuevo + If (txtPrecio.Text.ToDouble - ((TxtPUFactura.Text.ToDouble - TxtImporteAjuste.Text.ToDouble) - (CargoVendido - CargoGarantia))) < 0 Then + + TxtImporteAjuste.Text = "0.00" + CargoGarantia = CargoVendido + End If + TxtImporteAjuste.ToolTip = $"La diferencia de ajuste fue: {(txtPrecio.Text.ToDouble - TxtImporteAjuste.Text.ToDouble).FormatoNumero()}. La diferencia de tamaños fue: {(CargoVendido - CargoGarantia).FormatoNumero}." + TxtImporteAjuste.Text = ((TxtPUFactura.Text.ToDouble - TxtImporteAjuste.Text.ToDouble) - (CargoVendido - CargoGarantia)).FormatoNumero + + Else + 'cuando no está registrada, no da ajuste + TxtImporteAjuste.ToolTip = "El producto no tiene ajuste en ese periodo" + TxtImporteAjuste.Text = "0.00" + End If + End If + ObjAcum.Dispose() + End If + Catch ex As Exception + OnError("Ocurrió un error al recalcular el costo", ex) + End Try + + UpAjuste.Update() + End Sub +#End Region + End Class