414 lines
29 KiB
Plaintext
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">×</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>
|
|
|