diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index a267bb624..962040392 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -128,6 +128,20 @@ + + + <%--2021-04-15 contratos de obra--%> + + + +
  • + + Prorrateo Gasolina + +
  • +
    + +
    @@ -4576,7 +4590,6 @@ -
    @@ -5703,6 +5716,120 @@
    + + + +
    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