Files
SIG/Contratos/Presupuestos.aspx
2024-09-04 12:19:13 -07:00

414 lines
29 KiB
Plaintext

<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Presupuestos.aspx.vb" Inherits="Contratos_Presupuestos" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.dashboard-stat2 .display .number h3 {
font-size: 16px;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Presupuestos
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<asp:UpdatePanel ID="UpAcciones" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkAutorizar" runat="server" data-toggle="confirmation" data-popout="true" data-original-title="¿Desea autorizar el presupuesto?" data-btn-ok-label="si"><i class="fa fa-check"></i> Autorizar</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkCargaPresupuesto" OnClick="LnkCargaPresupuesto_Click" runat="server"><i class="fa fa-upload"></i>Cargar Presupuesto</asp:LinkButton>
</li>
<li>
<asp:HyperLink ID="HlModificar" Target="_blank" Visible="false" runat="server"><i class="fa fa-edit"></i> Modificar Presupuesto</asp:HyperLink>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<div class="row">
<div class="col-md-4">
<div class="portlet light xspadding bordered">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-info-circle"></i>Datos Generales
</div>
<div class="tools">
<a href="javascript:;" class="fullscreen" data-original-title="" title=""></a>
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div>
</div>
<div class="portlet-body">
<asp:UpdatePanel ID="UpDatosG" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="rowpadding">
<div class="row">
<label class="col-md-2 truncate">Nombre:</label>
<div class="col-md-10">
<asp:TextBox ID="TxtPresupuesto" runat="server" CssClass="form-control input-sm"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVPresupuesto" runat="server" ControlToValidate="TxtPresupuesto" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Nombre''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEPresupuesto" runat="server" HighlightCssClass="vco" TargetControlID="RFVPresupuesto"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row">
<label class="col-md-2 truncate">Observaciones:</label>
<div class="col-md-10">
<asp:TextBox ID="TxtDescripcion" runat="server" CssClass="form-control" TextMode="MultiLine"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVObservacion" runat="server" ControlToValidate="TxtDescripcion" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Observación''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEObs" runat="server" HighlightCssClass="vco" TargetControlID="RFVObservacion"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
<div class="col-md-4">
<div class="portlet light xspadding bordered">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-info-circle"></i>Configuración
</div>
<div class="tools">
<a href="javascript:;" class="fullscreen" data-original-title="" title=""></a>
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div>
</div>
<div class="portlet-body">
<asp:UpdatePanel ID="UpDatosG2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="rowpadding">
<div class="row">
<label class="col-md-2 truncate">Proyecto:</label>
<div class="col-md-10">
<asp:DropDownList ID="DdlProyecto" runat="server" AutoPostBack="true" CssClass="form-control input-sm select2me" DataTextField="Proyecto" DataValueField="CveProyecto"></asp:DropDownList>
<asp:CompareValidator ID="CVProyecto" runat="server" ControlToValidate="DdlProyecto" ValueToCompare="0" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />Debe seleccionar un <b>''Proyecto''</b>, por favor seleccione uno." Operator="GreaterThan" Type="Integer" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCEProyecto" runat="server" HighlightCssClass="vco" TargetControlID="CVProyecto"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row">
<label class="col-md-2 truncate">Sub Proyecto:</label>
<div class="col-md-10">
<asp:DropDownList ID="DdlSubProyecto" runat="server" CssClass="form-control input-sm select2me" DataTextField="SubProyecto2" DataValueField="CveSubProyecto"></asp:DropDownList>
<asp:CompareValidator ID="CVSubProyeco" runat="server" ControlToValidate="DdlSubProyecto" ValueToCompare="0" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />Debe seleccionar un <b>''Proyecto''</b>, por favor seleccione uno." Operator="GreaterThan" Type="Integer" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCESubProyecto" runat="server" HighlightCssClass="vco" TargetControlID="CVSubProyeco"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="row">
<label class="col-md-4 truncate">Fecha Inicio:</label>
<div class="col-md-8">
<div style="display: inline-block; vertical-align: text-bottom;">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 100px !important; padding: 0px;">
<asp:TextBox ID="TxtFechaI" runat="server" CssClass="form-control" CausesValidation="true" Style="width: 78px" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="TxtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaI" TargetControlID="TxtFechaI" PopupButtonID="ImgFechaI" Format="dd/MM/yyyy" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFechaI" runat="server" ControlToValidate="TxtFechaI" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Inicio''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVFechaI" runat="server" ControlToValidate="TxtFechaI" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" HighlightCssClass="vco" TargetControlID="RFVFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="row">
<label class="col-md-4 truncate">Fecha Fin:</label>
<div class="col-md-8">
<div style="display: inline-block; vertical-align: text-bottom;">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 100px !important; padding: 0px;">
<asp:TextBox ID="TxtFechaF" runat="server" CssClass="form-control" CausesValidation="true" Style="width: 78px" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFecha" TargetControlID="TxtFechaF" PopupButtonID="ImgFechaF" Format="dd/MM/yyyy" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFechaF" runat="server" ControlToValidate="TxtFechaF" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVFechaF" runat="server" ControlToValidate="TxtFechaF" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCOFecha1" runat="server" HighlightCssClass="vco" TargetControlID="RFVFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="VCOFecha2" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
<div class="col-md-4" runat="server" id="DivIndicadores" visible="false">
<asp:UpdatePanel UpdateMode="Conditional" ID="UpIndicadores" runat="server">
<ContentTemplate>
<div class="row">
<div class="col-md-12">
<h3><b>Estatus: </b>
<asp:Literal ID="LtlEstatus" runat="server"></asp:Literal></h3>
</div>
</div>
<div class="row">
<div class="col-lg-4 col-md-4">
<div class="dashboard-stat2 " style="border-style: solid; border-color: whitesmoke; padding-top px;">
<div class="display" style="margin-bottom: 0px">
<div class="number">
<h3 class="font-red-haze">
<small class="font-red-haze">$</small>
<span data-counter="counterup">
<asp:Literal runat="server" ID="LtlAutorizado"></asp:Literal></span>
</h3>
<small>IMPORTE</small>
</div>
<%--<div class="icon">
<i class="fa fa-credit-card"></i>
</div>--%>
</div>
</div>
</div>
<div class="col-lg-4 col-md-4">
<div class="dashboard-stat2 " style="border-style: solid; border-color: whitesmoke; padding: 5px 5px 25px 5px;">
<div class="display">
<div class="number">
<h3 class="font-blue-sharp">
<small class="font-blue-sharp">$</small>
<span data-counter="counterup">
<asp:Literal runat="server" ID="LtlEjercido"></asp:Literal></span>
</h3>
<small>EJERCIDO</small>
</div>
<%--<div class="icon">
<i class="icon-pie-chart"></i>
</div>--%>
</div>
<div class="progress-info">
<div class="progress">
<span style="width: 50%;" id="PBEjercido" runat="server" class="progress-bar progress-bar-info blue-sharp">
<span class="sr-only">
<asp:Literal runat="server" ID="LtlPorcenEjercido"></asp:Literal></span>
</span>
</div>
<div class="status">
<div class="status-title">Porcentaje Ejercido </div>
<div class="status-number">
<asp:Literal runat="server" ID="Literal3"></asp:Literal>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-4 col-md-4">
<div class="dashboard-stat2 " style="border-style: solid; border-color: whitesmoke; padding: 5px 5px 25px 5px;">
<div class="display">
<div class="number">
<h3 class="font-green-sharp">
<small class="font-green-sharp">$</small>
<span data-counter="counterup">
<asp:Literal runat="server" ID="LtlPorEjercer"></asp:Literal></span>
</h3>
<small>POR EJERCER</small>
</div>
<%--<div class="icon">
<i class="icon-pie-chart"></i>
</div>--%>
</div>
<div class="progress-info">
<div class="progress">
<span style="width: 50%;" id="PBPorEjercer" runat="server" class="progress-bar progress-bar-success green-sharp">
<span class="sr-only">
<asp:Literal runat="server" ID="LtlPorcentPorEjer"></asp:Literal></span>
</span>
</div>
<div class="status">
<div class="status-title">Porcentaje Por Ejercer </div>
<div class="status-number">
<asp:Literal runat="server" ID="LtlPorcentaje"></asp:Literal>
</div>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<br />
<div class="row">
<div class="col-md-12">
<div class="portlet light xspadding bordered">
<div class="portlet-title">
<div class="caption" style="align-items: center">
<i class="fa fa-info-circle"></i>Presupuestos
</div>
<div class="tools">
<a href="javascript:;" class="fullscreen" data-original-title="" title=""></a>
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div>
</div>
<div class="portlet-body">
<div class="rowpadding">
<asp:UpdatePanel ID="UpGvClasificaciones" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvPresupuestos" runat="server" GridLines="None" EmptyDataText="No se encontraron presupuestos" CssClass="table table-hover table-striped Widthall ScrollAD" ShowFooter="true" data-footer="1" AutoGenerateColumns="False" data-heighterror="600"
DataKeyNames="CvePresupuestoDetalle,CveAgrupador,CveTipoGasto,Tipo">
<Columns>
<asp:BoundField HeaderText="Clasificación" DataField="Agrupador" />
<asp:TemplateField HeaderText="Importe" ItemStyle-HorizontalAlign="Right" HeaderStyle-HorizontalAlign="Right" FooterStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="LblImporteClasiTotal" runat="server" Visible="false"></asp:Label>
<asp:TextBox ID="TxtImporteClasi" runat="server" Text='<%#Eval("Importe") %>' CssClass="form-control input-sm" Width="125px" style="text-align:right;"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="SoloNumerosCantidad" runat="server" TargetControlID="TxtImporteClasi" FilterType="Custom, Numbers" ValidChars=".," />
</ItemTemplate>
<FooterTemplate>
<b>Total :</b>
<asp:Label ID="LblTotal" CssClass="LabelGVTotal" runat="server"></asp:Label>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Observaciones" HeaderStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:TextBox ID="TxtObservacion" runat="server" CssClass="form-control input-sm" Text='<%# Eval("Observacion") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Tipo Gasto" DataField="TipoGasto" />
<asp:TemplateField HeaderText="Amp/Reduc" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="125px">
<ItemTemplate>
<asp:Label ID="LblAmpReduc" CssClass="LabelGVTotal" runat="server" Text='<%# Eval("AmpReduc", "{0:###,###,###.00}") %>' ></asp:Label>
</ItemTemplate>
<FooterTemplate>
<b>Total:</b>
<asp:Label ID="LblAmpReducFoot" CssClass="LabelGVTotal" runat="server"></asp:Label>
</FooterTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle CssClass="Totales" />
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
</div>
<asp:UpdatePanel ID="UpGuardar" runat="server">
<ContentTemplate>
<div class="row">
<div class="col-md-5"></div>
<div class="col-md-2">
<asp:Button ID="BtnGuardar" runat="server" Text="Guardar" CssClass="btn btn-primary" ValidationGroup="GrpGuardar" />
</div>
<div class="col-md-5"></div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div id="ModalCargaPresupuesto" class="modal ADS fade" role="dialog">
<asp:UpdatePanel ID="UPCargaPresup" class="modal-dialog" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content rowpadding">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" runat="server" style="text-align: left">Cargar Presupuesto </h4>
</div>
<div class="modal-body">
<div class="portlet light smmallpadding bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="fa fa-upload font-green"></i>
<span class="caption-subject bold uppercase">Cargar archivo </span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div>
<div class="actions">
<div class="btn-group">
<asp:LinkButton ID="LnkFormatoPresup" OnClick="LnkFormatoPresup_Click" CssClass="btn yellow-gold" runat="server"><i class="fa fa-download"></i> Descargar Plantilla</asp:LinkButton>
</div>
</div>
</div>
<div class="portlet-body rowpadding ">
<asp:TextBox ID="TxtCargarPresup" CssClass="ADSdropzone hidden" runat="server"></asp:TextBox>
</div>
</div>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:LinkButton ID="LnkCargarPresup" OnClick="LnkCargarPresup_Click" CssClass="btn btn-primary" runat="server">Procesar</asp:LinkButton>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="LnkFormatoPresup" />
</Triggers>
</asp:UpdatePanel>
</div>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<script type="text/javascript">
function calculaTotalTipoGasto(TipoGasto) {
var total = 0;
$(".txt" + TipoGasto).each(function () {
total += ToDouble(this.value);
});
$(".LabelGVTotal" + TipoGasto).text('$ ' + formato_numero(total, 2, '.', ','));
}
function calculaTotal() {
var total = 0;
$(".sumaGV").each(function () {
total += ToDouble(this.value);
});
$(".LabelGVTotal").text('$ ' + formato_numero(total, 2, '.', ','));
}
function formato_numero(numero, decimales, separador_decimal, separador_miles) {
numero = parseFloat(numero);
if (isNaN(numero)) {
return "";
}
if (decimales !== undefined) {
// Redondeamos
numero = numero.toFixed(decimales);
}
// Convertimos el punto en separador_decimal
numero = numero.toString().replace(".", separador_decimal !== undefined ? separador_decimal : ",");
if (separador_miles) {
// Añadimos los separadores de miles
var miles = new RegExp("(-?[0-9]+)([0-9]{3})");
while (miles.test(numero)) {
numero = numero.replace(miles, "$1" + separador_miles + "$2");
}
}
return numero;
}
</script>
</asp:Content>