Fail to calculate input data when editing a page, it only works when creating

1

I am using symfony 2.8 with php7.0 and I have a form that calculates a data with javascript. The detail is that it works well when creating a new record but if I am going to edit a record already saved the function of calculating does not work here the code:

<br>
{% extends 'SonataAdminBundle:CRUD:edit.html.twig' %}

{% block javascripts %}
    {{ parent() }}

    <script type="text/javascript">
        jQuery(document).ready(function ($) {
            $idDepartamento = $('#{{ admin.uniqid }}_idDepartamento');
            $idMunicipio = $('#{{ admin.uniqid }}_idMunicipio');
            $idEstablecimiento = $('#{{ admin.uniqid }}_idEstablecimiento');
            $idCanton = $('#{{ admin.uniqid }}_idCanton');
            $localidad = $('#{{ admin.uniqid }}_localidad');
            $casaInspeccionada = $('#{{ admin.uniqid }}_casaInspecionada');
            $casaPositiva = $('#{{ admin.uniqid }}_casaPositiva');
            $indiceCasa = $('#{{ admin.uniqid }}_indiceCasa');


        {#funcion que convierte a mayusculas lo ingresado en localidad#}
            $localidad.on('keyup', function () {
                this.value = this.value.toUpperCase()
            });


            {% if object.idMunicipio %}
                $idDepartamento = '{{object.idMunicipio.idDepartamento.id}}';
                $idMunicipio    = '{{object.idMunicipio.id}}';
            {% endif %}






            var select2Options = {
                placeholder: 'Seleccionar..',
                allowClear: true

            };


            select2Options['placeholder'] = 'Seleccionar Departamento...';
            initializeSelect2($idDepartamento, true, false, select2Options);


            select2Options['placeholder'] = 'Seleccionar Municipio...';
            initializeSelect2($idMunicipio, true, true, select2Options);

            select2Options['placeholder'] = 'Seleccionar Establecimiento...';
            initializeSelect2($idEstablecimiento, true, true, select2Options);

            select2Options['placeholder'] = 'Seleccionar Departamento...';
            initializeSelect2($idCanton, true, true, select2Options);

  {# operando las variables para calcular el indice de casa#}
            $casaPositiva.on('keyup', function() {
                calcularIndice(); 
            });

            $casaInspeccionada.on('keyup', function() {
                calcularIndice(); 
            });


            $idDepartamento.on('change', function () {
             select2Options['placeholder'] = 'Seleccionar Municipio...';
             initializeSelect2($idMunicipio, true, true, select2Options);


            var idDepartamento = $(this).select2('val');
            console.log(idDepartamento);
            if (idDepartamento != '') 
                {
                    $.ajax({
                        url: Routing.generate('obtener_municipios', {idDepartamento: idDepartamento}),
                        async: true,
                        dataType: 'json',
                        success: function (data) 
                        {
                            $.each(data, function (idx, municipio) 
                            {
                                $idMunicipio.append($('<option>', {value: municipio.id, text: municipio.nombre}));
                            });

                        },
                        error: function (xhr, textStatus, errorThrown) 
                        {
                            showDialogMsg('Error...', 'Hubo un error al intentar obtener los municpios', 'dialog-error');
                        }
                    });
                }
            });

                $idMunicipio.on('change', function () {
                    select2Options['placeholder'] = 'Seleccionar Establecimiento...';
                    initializeSelect2($idEstablecimiento, true, true, select2Options);


                    var idMunicipio = $(this).select2('val');
                    console.log(idMunicipio);
                    if (idMunicipio != '') {
                        $.ajax({
                            url: Routing.generate('obtener_establecimiento', {idMunicipio: idMunicipio}),
                            async: true,
                            dataType: 'json',
                            success: function (data) {
                                $.each(data, function (idx, establecimiento) {
                                    $idEstablecimiento.append($('<option>', {value: establecimiento.id, text: establecimiento.nombre}));
                                });

                            },
                            error: function (xhr, textStatus, errorThrown) {
                                showDialogMsg('Error...', 'Hubo un error al intentar obtener los establecimientos', 'dialog-error');
                            }
                        });
                    }
                });

                $idMunicipio.on('change', function () {
                    select2Options['placeholder'] = 'Seleccionar Canton...';
                    initializeSelect2($idCanton, true, true, select2Options);


                    var idMunicipio = $(this).select2('val');
                    console.log(idMunicipio);
                    if (idMunicipio != '') {
                        $.ajax({
                            url: Routing.generate('obtener_canton', {idMunicipio: idMunicipio}),
                            async: true,
                            dataType: 'json',
                            success: function (data) {
                                $.each(data, function (idx, canton) {
                                    $idCanton.append($('<option>', {value: canton.id, text: canton.nombre}));
                                });

                            },
                            error: function (xhr, textStatus, errorThrown) {
                                showDialogMsg('Error...', 'Hubo un error al intentar obtener los cantones', 'dialog-error');
                            }
                        });
                    }
                });
                {#funcion que me calcula el indie de casa en porcentaje#}
            function calcularIndice() {
                var indiceCasa = 0;
                var casaInspeccionada = $casaInspeccionada.val();
                var casaPositiva = $casaPositiva.val();

                casaInspeccionada = casaInspeccionada != '' && parseInt(casaInspeccionada) >= 0 ? parseInt(casaInspeccionada) : 0;
                casaPositiva      = casaPositiva != '' && parseInt(casaPositiva) >= 0 ? parseInt(casaPositiva) : 0;

                if( casaInspeccionada <= 0 ) {
                   alert("El numero ingresado debe ser mayor a cero")
                } else {
                    indiceCasa = ( casaPositiva / casaInspeccionada ) * 100;
                }

                $indiceCasa.val( indiceCasa.toFixed(2) );
            }
        });
    </script>
{% endblock%}
    
asked by noe 05.12.2017 в 04:05
source

0 answers