diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb
index d1582c878..779925009 100644
--- a/Compras/Compras.aspx.vb
+++ b/Compras/Compras.aspx.vb
@@ -1667,6 +1667,12 @@ Partial Class Compras_Compras
End If
+
+ If Not CveCompra > 0 Then
+ LnkProrrateoGasolina.Visible = True
+ InicializaDTProrrateoGasolina()
+ End If
+
End If
'SE OCUPAN AFUERA DEL POSTBACK ??
@@ -22326,6 +22332,239 @@ Partial Class Compras_Compras
End Sub
+
+#Region "PRORRATEO GASOLINA"
+
+
+ Property DTProrrateoGasolina As DataTable
+ Get
+ If ViewState("DTProrrateoGasolina") Is Nothing Then
+ ViewState("DTProrrateoGasolina") = New DataTable
+ End If
+ Return DirectCast(ViewState("DTProrrateoGasolina"), DataTable)
+ End Get
+ Set(value As DataTable)
+ ViewState("DTProrrateoGasolina") = value
+ End Set
+ End Property
+
+ Private Sub InicializaDTProrrateoGasolina()
+ Dim TmpDTProrrateoGasolina As New DataTable
+ TmpDTProrrateoGasolina.Columns.Add("CvePS", GetType(Integer))
+ TmpDTProrrateoGasolina.Columns.Add("CveSubProyecto", GetType(Integer))
+ TmpDTProrrateoGasolina.Columns.Add("SubProyecto", GetType(String))
+ TmpDTProrrateoGasolina.Columns.Add("SubTotal", GetType(Decimal))
+ TmpDTProrrateoGasolina.Columns.Add("IVA", GetType(Decimal))
+ TmpDTProrrateoGasolina.Columns.Add("RetIVA", GetType(Decimal))
+ TmpDTProrrateoGasolina.Columns.Add("RetISR", GetType(Decimal))
+ TmpDTProrrateoGasolina.Columns.Add("Total", GetType(Decimal))
+ TmpDTProrrateoGasolina.Columns.Add("PorcentajeIVA", GetType(Decimal))
+
+ TmpDTProrrateoGasolina.Columns.Add("CveUM", GetType(Integer))
+ TmpDTProrrateoGasolina.Columns.Add("CveClasificacion", GetType(Integer))
+ TmpDTProrrateoGasolina.Columns.Add("UM", GetType(String))
+ TmpDTProrrateoGasolina.Columns.Add("Clasificacion", GetType(String))
+ TmpDTProrrateoGasolina.Columns.Add("PS", GetType(String))
+
+
+ DTProrrateoGasolina = TmpDTProrrateoGasolina
+ End Sub
+
+ Protected Sub LnkProrrateoGasolina_Click(sender As Object, e As EventArgs)
+
+ InicializaDTProrrateoGasolina()
+ CargarCentrosDeCosto(Nothing, Nothing, Nothing, LblSubProyectoProrrateoGasolina)
+
+ DdlSubProyectoProrrateoGasolina.Items.Clear()
+ DdlSubProyectoProrrateoGasolina.DataSource = If(Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveProyecto:=-1))
+ DdlSubProyectoProrrateoGasolina.DataBind()
+ DdlSubProyectoProrrateoGasolina.Items.Insert(0, New ListItem("Seleccione", "-1"))
+
+ LblTotalProrrateoGasolina.Text = TxtTotal.Text
+
+ CargaProrratePS(-1)
+
+ RegistraScript("$('#DVModalProrrateoGasolina').modal();")
+ UpModalProrrateoGasolina.Update()
+
+ End Sub
+
+
+ Private Sub CargaProrratePS(CveClasificacion As Integer)
+
+ DdlPSProrrateoGasolina.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
+
+ If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
+ DdlPSProrrateoGasolina.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue)
+ DdlPSProrrateoGasolina.SelectedText = ""
+ DdlPSProrrateoGasolina.SelectedValue = "-1"
+ Else
+ DdlPSProrrateoGasolina.ddl.Items.Clear()
+
+ 'DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacion)
+
+ If UsuarioActual.TienePermisoProceso(300) Or UsuarioActual.TienePermisoProceso(301) Then
+
+ Dim DTTemp As New DataTable
+ DTTemp.Columns.Add("CvePS", GetType(Integer))
+ DTTemp.Columns.Add("PSCodigo", GetType(String))
+ DTTemp.Columns.Add("CveClasificacion", GetType(Integer))
+
+ For Each dRow As DataRow In GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).Rows
+ For Each drowCla As DataRow In DTClasificacionesComprobaciones.Rows
+
+ If drowCla("CveClasificacion").ToString.ToEntero = dRow("CveClasificacion").ToString.ToEntero Then
+
+ Dim InRow As DataRow = DTTemp.NewRow
+ InRow("CvePS") = dRow("CvePS").ToString.ToEntero
+ InRow("PSCodigo") = dRow("PSCodigo").ToString
+ InRow("CveClasificacion") = dRow("CveClasificacion").ToString.ToEntero
+ DTTemp.Rows.Add(InRow)
+
+ End If
+ Next
+ Next
+ DdlPSProrrateoGasolina.DataSource = If(CveClasificacion > 0, DTTemp.FiltraParametros($"CveClasificacion = {CveClasificacion}"), DTTemp)
+ Else
+ DdlPSProrrateoGasolina.DataSource = If(CveClasificacion > 0, GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltraParametros($"CveClasificacion = {CveClasificacion}"), GlobalDTPSSimplificado(UsuarioActual.CveEmpresa))
+ End If
+
+ DdlPSProrrateoGasolina.ddl.DataBind()
+ DdlPSProrrateoGasolina.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
+ End If
+
+ End Sub
+
+ Private Sub GvProrrateoGasolinaBind()
+ GvProrrateoGasolina.DataSource = DTProrrateoGasolina
+ GvProrrateoGasolina.DataBind()
+ UpModalProrrateoGasolina.Update()
+ End Sub
+
+ Protected Sub LnkEliminarProrrateoGasolina_Click(sender As Object, e As EventArgs)
+
+ Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
+ DTProrrateoGasolina.Rows.RemoveAt(GvRow.RowIndex)
+ DTProrrateoGasolina.AcceptChanges()
+ ProrateoCalculaRestante()
+ GvProrrateoGasolinaBind()
+
+ End Sub
+
+
+
+ Protected Sub LnkAgregarProrrateoGasolina_Click(sender As Object, e As EventArgs)
+
+ Dim CvePs As Integer = DdlPSProrrateoGasolina.SelectedValue.ToEntero
+
+ If Not CvePs > 0 Then
+ Alert("Debe seleccionar un producto", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
+ Dim PsRow As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePs).FiltroPrimero("")
+
+ If PsRow Is Nothing Then
+ Alert("No se encontro el producto", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
+ Dim CveUM As Integer = PsRow("CveUM").ToString.ToEntero
+ Dim UM As String = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa).FiltroPrimeroValor("UnidadMedida", $" CveUnidadMedida = {CveUM} ")
+
+ Dim CveClasificacion As Integer = PsRow("CveClasificacion").ToString.ToEntero
+ Dim Clasificacion As String = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $" CveClasificacion = {CveClasificacion} ")
+
+
+ Dim SubTotalOriginal As Decimal = TxtSubTotal.Text.ToDecimal
+ Dim IVAOriginal As Decimal = TxtIVA.Text.ToDecimal
+ Dim RetISROriginal As Decimal = TxtRetISR.Text.ToDecimal
+ Dim RetIVAOriginal As Decimal = TxtRetIVA.Text.ToDecimal
+ Dim TotalOriginal As Decimal = TxtTotal.Text.ToDecimal
+
+ Dim totalParcialDeseado As Decimal = TxtPrecioProrrateoGasolina.Text.ToDecimal
+
+ Dim PorcentajeCalculado As Decimal = totalParcialDeseado / TotalOriginal
+
+ Dim subtotalParcial As Decimal = SubTotalOriginal * PorcentajeCalculado
+ Dim ivaParcial As Decimal = IVAOriginal * PorcentajeCalculado
+ Dim retIsrParcial As Decimal = RetISROriginal * PorcentajeCalculado
+ Dim retIvaParcial As Decimal = RetIVAOriginal * PorcentajeCalculado
+
+ Dim nRow As DataRow = DTProrrateoGasolina.NewRow
+
+ nRow("CvePS") = DdlPSProrrateoGasolina.SelectedValue.ToEntero
+ nRow("CveSubProyecto") = DdlSubProyectoProrrateoGasolina.SelectedValue.ToEntero
+ nRow("SubProyecto") = DdlSubProyectoProrrateoGasolina.SelectedItem.Text
+ nRow("SubTotal") = subtotalParcial
+
+ If CveFactura > 0 Then
+ nRow("IVA") = ivaParcial
+ nRow("RetIVA") = retIvaParcial
+ nRow("RetISR") = retIsrParcial
+ Else
+ nRow("IVA") = (ivaParcial / subtotalParcial)
+ nRow("RetIVA") = (retIvaParcial / subtotalParcial)
+ nRow("RetISR") = (retIsrParcial / subtotalParcial)
+ End If
+
+ nRow("Total") = totalParcialDeseado
+ nRow("PorcentajeIVA") = (ivaParcial / subtotalParcial)
+
+ nRow("CveUM") = CveUM
+ nRow("UM") = UM
+ nRow("CveClasificacion") = CveClasificacion
+ nRow("Clasificacion") = Clasificacion
+ nRow("PS") = DdlPSProrrateoGasolina.txtText.Value
+
+ DTProrrateoGasolina.Rows.Add(nRow)
+
+ DdlSubProyectoProrrateoGasolina.SelectedValueExist(-1)
+ TxtPrecioProrrateoGasolina.Text = ""
+ ProrateoCalculaRestante()
+ GvProrrateoGasolinaBind()
+
+ End Sub
+
+
+ Private Sub ProrateoCalculaRestante()
+ LblRestoProrrateoGasolina.Text = (TxtTotal.Text.ToDecimal - DTProrrateoGasolina.SUM("Total")).ToString("###,###,###.00")
+ End Sub
+
+
+
+ Protected Sub BtnGuardarProrrateoGasolina_Click(sender As Object, e As EventArgs)
+
+ If DTProrrateoGasolina.Rows.Count > 0 Then
+ TmpDT.Rows.Clear()
+ For Each dRow As DataRow In DTProrrateoGasolina.Rows
+
+ AddPS(1, dRow("CveUM").ToString.ToEntero, dRow("UM").ToString, dRow("CveClasificacion").ToString.ToEntero, dRow("Clasificacion").ToString, dRow("CvePS").ToString.ToEntero, dRow("PS").ToString, 1, dRow("CveSubProyecto").ToString, dRow("SubProyecto").ToString, "",
+ "-1", "", dRow("SubTotal").ToString.ToDecimal, dRow("Total").ToString.ToDecimal, dRow("PorcentajeIVA").ToString.ToDecimal, dRow("RetIVA").ToString.ToDecimal, dRow("RetISR").ToString.ToDecimal, 0, 0, 0, PorcentajeIVA:=dRow("PorcentajeIVA").ToString.ToDecimal)
+
+
+ Next
+
+ AddPS2()
+ End If
+
+ RegistraScript("$('#DVModalProrrateoGasolina').modal('hide');")
+
+
+ End Sub
+
+
+#End Region
+
+
+
+
+
+
+
+
+
+
End Class