{
    "type": "Ext.app.Controller",
    "reference": {
        "name": "items",
        "type": "array"
    },
    "codeClass": null,
    "userConfig": {
        "models": [
            "BuscarDni",
            "BuscarApe",
            "sexo",
            "GrabarNuevoPersonal",
            "Nivel",
            "Ugel",
            "Dre",
            "BuscarCodigoModular",
            "Modalidad",
            "colegio",
            "trabajador",
            "AsistenciaMensualModel",
            "meses",
            "cargo",
            "SituacionLaboral",
            "TipoTrabajador",
            "SubTipoTrabajador",
            "estado",
            "TardanzaMensualModel",
            "ResumenMensualModel"
        ],
        "stores": [
            "BuscarDni",
            "BuscarApe",
            "sexo",
            "GrabarNuevoPersonal",
            "Ugel",
            "Dre",
            "buscarcodmod",
            "Nivel",
            "modalidad",
            "colegio",
            "trabajador",
            "AsistenciaMensualStore",
            "meses",
            "situacionlaboral",
            "cargopersonal",
            "tipotrabajador",
            "subtipotrabajador",
            "estado",
            "TardanzaMensualStore",
            "ResumenMensualStore"
        ],
        "views": [
            "MyWindow2",
            "MyViewport1",
            "List",
            "dni",
            "ape",
            "personal",
            "NuevoPersonal",
            "EditarPersonalDni",
            "verdos",
            "EditarPersonalApe",
            "NuevoPersonalApe",
            "ConsultarPersonalDni",
            "ConsultarPersonalApe",
            "institucion",
            "nuevoie",
            "consultaie",
            "trabajador",
            "asistencia",
            "agregartrabajador",
            "gridAsistencia",
            "importar",
            "MyViewport2",
            "consultartrabajador",
            "cuentas",
            "gridResumen",
            "gridTardanza"
        ],
        "designer|userClassName": "inicio"
    },
    "designerId": "768016de-34e5-4ab8-8f0e-820bde9ce7a9",
    "cn": [
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onAgregarTrabajador",
                "implHandler": [
                    "var editWind = Ext.widget('agregartrabajador');\r",
                    "mode = 'Agregar';\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "verdos button[action='agregartrabajador']"
            },
            "designerId": "2fdb023f-11e1-4634-964e-e8d5ca271174"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onMenuitemAsistencia",
                "implHandler": [
                    "var me = this;\r",
                    "\r",
                    "var editWind = Ext.widget('asistencia');\r",
                    "editWind.show();\r",
                    "\r",
                    "var tabs = editWind.down('tabpanel');\r",
                    "\r",
                    "// PINTAR EL TAB ACTIVO AL ABRIR\r",
                    "var u = window.usuarioLogueado || {};\r",
                    "\r",
                    "me.actualizarHeaderTab(tabs.getActiveTab(), u);\r",
                    "\r",
                    "// 2 ACTUALIZAR AL CAMBIAR DE TAB (AQUÍ VA EL CÓDIGO QUE PREGUNTAS)\r",
                    "tabs.on('tabchange', function(tp, newTab) {\r",
                    "    me.actualizarHeaderTab(newTab, window.usuarioLogueado || {});\r",
                    "});\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.menu.Item",
                "designer|controlQuery": "principal menuitem[action='asistencia']"
            },
            "designerId": "4a5d842e-ab3a-471f-a9f0-05146547c716"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onButtonClickIngresar",
                "implHandler": [
                    "var win = button.up('window');\r",
                    "var c_logn = Ext.getCmp('logn').getValue();\r",
                    "var c_psw1 = Ext.getCmp('psw1').getValue();\r",
                    "if (!c_logn) {\r",
                    "    Ext.Msg.alert(\"Mensaje\", \"Ingrese Nombre de Usuario\");\r",
                    "    return;\r",
                    "}\r",
                    "if (!c_psw1) {\r",
                    "    Ext.Msg.alert(\"Mensaje\", \"Ingrese Clave\");\r",
                    "    return;\r",
                    "}\r",
                    "Ext.MessageBox.show({\r",
                    "    title: 'Por favor espere',\r",
                    "    msg: 'Validando credenciales...',\r",
                    "    wait: true,\r",
                    "    closable: false\r",
                    "});\r",
                    "Ext.Ajax.request({\r",
                    "    method: 'POST',\r",
                    "    url: 'login.php',\r",
                    "    params: {\r",
                    "        user: c_logn,\r",
                    "        pass: c_psw1\r",
                    "    },\r",
                    "    success: function (response) {\r",
                    "        Ext.MessageBox.hide();\r",
                    "        var resp;\r",
                    "        try {\r",
                    "            resp = Ext.decode(response.responseText);\r",
                    "        } catch (e) {\r",
                    "            Ext.Msg.alert('Error', 'Respuesta inválida del servidor');\r",
                    "            return;\r",
                    "        }\r",
                    "\r",
                    "        var data = resp && resp.data1 ? resp.data1[0] : null;\r",
                    "\r",
                    "       //ERROR DEVUELTO COMO TEXTO\r",
                    "        if (Ext.isString(data)) {\r",
                    "            Ext.Msg.alert('Mensaje', data);\r",
                    "            return;\r",
                    "        }\r",
                    "\r",
                    "        //LOGIN FALLIDO\r",
                    "        if (!data || data.success !== true) {\r",
                    "            Ext.Msg.alert('Mensaje', 'Usuario o contraseña incorrectos');\r",
                    "            return;\r",
                    "        }\r",
                    "\r",
                    "        //LOGIN OK\r",
                    "        win.hide();\r",
                    "\r",
                    "        // Rol\r",
                    "        window.MyApp = window.MyApp || {};\r",
                    "        switch (data.rol) {\r",
                    "            case 1: MyApp.rolUsuario = 'supervisor'; break;\r",
                    "            case 2: MyApp.rolUsuario = 'administrador'; break;\r",
                    "            case 3: MyApp.rolUsuario = 'operador'; break;\r",
                    "        }\r",
                    "\r",
                    "        // Crear viewport\r",
                    "        if (!Ext.ComponentQuery.query('viewport').length) {\r",
                    "            var vp = Ext.widget('principal');\r",
                    "            Ext.defer(function () {\r",
                    "                vp.fireEvent('rolcargado');\r",
                    "            }, 100);\r",
                    "        }\r",
                    "\r",
                    "        // Obtener datos de sesión (UNA SOLA VEZ)\r",
                    "        Ext.Ajax.request({\r",
                    "            method: 'POST',\r",
                    "            url: 'ingreso.php',\r",
                    "            success: function (res2) {\r",
                    "                var r2 = Ext.decode(res2.responseText);\r",
                    "                var datos = r2 && r2.data1 ? r2.data1[0] : null;\r",
                    "\r",
                    "                if (!datos) {\r",
                    "                    Ext.Msg.alert('Mensaje', 'No se pudieron obtener los datos del usuario');\r",
                    "                    return;\r",
                    "                }\r",
                    "\r",
                    "                window.usuarioLogueado = datos;\r",
                    "\r",
                    "                var vp = Ext.ComponentQuery.query('viewport')[0];\r",
                    "                if (vp) {\r",
                    "                    var info = vp.down('#infoUsuario');\r",
                    "                    if (info) {\r",
                    "                        info.setText(\r",
                    "                            '<b>Usuario:</b> ' +\r",
                    "                            datos.nomb + ' ' + datos.pate + ' ' + datos.mate\r",
                    "                        );\r",
                    "                    }\r",
                    "                }\r",
                    "            },\r",
                    "            failure: function () {\r",
                    "                Ext.Msg.alert('Mensaje', 'Error al obtener datos del usuario');\r",
                    "            }\r",
                    "        });\r",
                    "    },\r",
                    "\r",
                    "    failure: function () {\r",
                    "        Ext.MessageBox.hide();\r",
                    "        Ext.Msg.alert('Mensaje', 'No se pudo contactar al servidor');\r",
                    "    }\r",
                    "});\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "info button[action='ingreso']"
            },
            "designerId": "ed64e652-21f7-4e4e-a328-c5cd585d8411"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onCerrarApp",
                "implHandler": [
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "principal button[action='CerrarApp']"
            },
            "designerId": "bf312499-69b6-4b34-94f4-f4dc20eef7f3"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onMenuitemPersonal",
                "implHandler": [
                    "var editWind = Ext.widget('personal');\r",
                    "mode = 'Agregar';\r",
                    "var opcion1 = '3',\r",
                    "    opcion2 = '2',\r",
                    "    opcion3 = '1'\r",
                    "    Ext.Ajax.request({\r",
                    "        //async: true,\r",
                    "        method: 'GET',\r",
                    "        url : 'controladores/acceso1.php',\r",
                    "        params: {\r",
                    "            opcion1 : opcion1,\r",
                    "            opcion2 : opcion2,\r",
                    "            opcion3 : opcion3\r",
                    "        },\r",
                    "        failure: function(){\r",
                    "            Ext.Msg.alert('Mensaje','Error en el servidor');\r",
                    "    },\r",
                    "    success: function(response) {\r",
                    "        var resp = Ext.decode(response.responseText);\r",
                    "        var no = resp.data[0];\r",
                    "        if(no==\"sinacceso\")\r",
                    "        {\r",
                    "            alert(\"Acceso Restringido...\");\r",
                    "            editWind.close();\r",
                    "            return;\r",
                    "        }            \r",
                    "    }\r",
                    "})\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.menu.Item",
                "designer|controlQuery": "principal menuitem[action='personal']"
            },
            "designerId": "651adc1c-f19c-4613-a409-ffc633cb6dce"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onBuscarDniEnter",
                "implHandler": [
                    "if(e.getKey()==13){\r",
                    "    var c_idcont = Ext.getCmp('indiv_dni').getValue();\r",
                    "    if(c_idcont==\"\" || isNaN(c_idcont))\r",
                    "    {\r",
                    "        alert(\"Debe ingresar N°. D.N.I.\");\r",
                    "        return;\r",
                    "    }\r",
                    "    Ext.getCmp('indiv_dni').setValue(c_idcont);\r",
                    "    var store = Ext.getStore('BuscarDni');\r",
                    "    var url = Ext.getCmp('indiv_dni').getValue();\r",
                    "    var grid5 = this.getUserList();\r",
                    "    var datito = Ext.encode(url);\r",
                    "    Ext.Ajax.request({\r",
                    "        method: 'GET',\r",
                    "        url : 'controladores/BuscarDniEnter.php',\r",
                    "        params: {\r",
                    "            datito : datito\r",
                    "        },\r",
                    "        failure: function(){\r",
                    "            Ext.Msg.alert('Mensaje','Error en el servidor');\r",
                    "        },\r",
                    "        success: function(response) {\r",
                    "            var resp = Ext.decode(response.responseText);\r",
                    "            var no = resp.data[0];\r",
                    "            if(no==\"hola\")\r",
                    "            {\r",
                    "                Ext.getCmp('grid1');\r",
                    "                store.load({\r",
                    "                    params : {\r",
                    "                        datito : datito,\r",
                    "                        indiv_dni : datito\r",
                    "                    }\r",
                    "                });\r",
                    "                alert(\"N°. D.N.I. no registrado... \");\r",
                    "                return;\r",
                    "            }\r",
                    "            var indiv_id = resp.data[0].indiv_id;\r",
                    "            var indiv_dni = resp.data[0].indiv_dni;\r",
                    "            var indiv_appaterno = resp.data[0].indiv_appaterno;\r",
                    "            var indiv_apmaterno = resp.data[0].indiv_apmaterno;\r",
                    "            var indiv_nombres   = resp.data[0].indiv_nombres;\r",
                    "            Ext.getCmp('grid5');\r",
                    "            store.load({\r",
                    "                params : {\r",
                    "                    datito : datito,\r",
                    "                    indiv_dni : datito\r",
                    "                }\r",
                    "            });\r",
                    "        },\r",
                    "    });\r",
                    "}"
                ],
                "name": "keypress",
                "scope": "me",
                "designer|targetType": "Ext.form.field.Text",
                "designer|controlQuery": "dni textfield[action='BuscarDniEnter']"
            },
            "designerId": "d06254d1-c236-4fa1-ad2c-7affeb8bd839"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onButtonClick",
                "implHandler": [
                    "alert('E');\r",
                    "//agregartrabajador"
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "editartrabajador button[action='addtrabajadoriiee']"
            },
            "designerId": "c084c2da-05a5-4503-af8e-a7abda93efac"
        },
        {
            "type": "controllerref",
            "reference": {
                "name": "items",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "ref": "userList",
                "selector": "userlist"
            },
            "designerId": "52403ef0-bae5-423d-8db7-62736d099757"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onBuscarDniClick",
                "implHandler": [
                    "var c_idcont = Ext.getCmp('indiv_dni').getValue();\r",
                    "if(c_idcont==\"\" || isNaN(c_idcont))\r",
                    "{\r",
                    "    alert(\"Debe ingresar N°. D.N.I.\");\r",
                    "    return;\r",
                    "}\r",
                    "Ext.getCmp('indiv_dni').setValue(c_idcont);\r",
                    "var store = Ext.getStore('BuscarDni');\r",
                    "var url = Ext.getCmp('indiv_dni').getValue();\r",
                    "var grid5 = this.getUserList();\r",
                    "var datito = Ext.encode(url);\r",
                    "Ext.Ajax.request({\r",
                    "    method: 'GET',\r",
                    "    url : 'controladores/BuscarDniClick.php',\r",
                    "    params: {\r",
                    "        datito : datito\r",
                    "    },\r",
                    "    failure: function(){\r",
                    "        Ext.Msg.alert('Mensaje','Error en el servidor');\r",
                    "    },\r",
                    "    success: function(response) {\r",
                    "        var resp = Ext.decode(response.responseText);\r",
                    "        var no = resp.data[0];\r",
                    "        if(no==\"hola\")\r",
                    "        {\r",
                    "            Ext.getCmp('grid1');\r",
                    "            store.load({\r",
                    "                params : {\r",
                    "                    datito : datito,\r",
                    "                    indiv_dni : datito\r",
                    "                }\r",
                    "            });\r",
                    "            alert(\"Personal no registrado...\");\r",
                    "            return;\r",
                    "        }\r",
                    "        var indiv_id = resp.data[0].indiv_id;\r",
                    "        var indiv_dni = resp.data[0].indiv_dni;\r",
                    "        var indiv_appaterno = resp.data[0].indiv_appaterno;\r",
                    "        var indiv_apmaterno = resp.data[0].indiv_apmaterno;\r",
                    "        var indiv_nombres   = resp.data[0].indiv_nombres;\r",
                    "        Ext.getCmp('grid5');\r",
                    "        store.load({\r",
                    "            params : {\r",
                    "                datito : datito,\r",
                    "                indiv_dni : datito\r",
                    "            }\r",
                    "        });\r",
                    "    },\r",
                    "});\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "dni button[action='BuscarDniClick']"
            },
            "designerId": "ec0483ec-9f8c-4958-88ab-21695e265469"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onBuscarApeEnter",
                "implHandler": [
                    "if(e.getKey()==13){\r",
                    "    var c_idcont = Ext.getCmp('indiv_apellido').getValue();\r",
                    "    if(c_idcont==\"\")\r",
                    "    {\r",
                    "        alert(\"Debe ingresar Apellidos\");\r",
                    "        return;\r",
                    "    }\r",
                    "    Ext.getCmp('indiv_apellido').setValue(c_idcont);\r",
                    "    var store = Ext.getStore('BuscarApe');\r",
                    "    var url = Ext.getCmp('indiv_apellido').getValue();\r",
                    "    var grid1 = this.getUserList1();\r",
                    "    var datito1 = Ext.encode(url);\r",
                    "    Ext.Ajax.request({\r",
                    "        method: 'GET',\r",
                    "        url : 'controladores/BuscarApellidoEnter.php',\r",
                    "        params: {\r",
                    "            datito1 : datito1\r",
                    "        },\r",
                    "        failure: function(){\r",
                    "            Ext.Msg.alert('Mensaje','Error en el servidor');\r",
                    "        },\r",
                    "        success: function(response) {\r",
                    "            var resp = Ext.decode(response.responseText);\r",
                    "            var no = resp.data[0];\r",
                    "            if(no==\"hola\")\r",
                    "            {\r",
                    "                Ext.getCmp('grid1');\r",
                    "                store.load({\r",
                    "                    params : {\r",
                    "                        datito1 : datito1,\r",
                    "                        indiv_apellido : datito1\r",
                    "                    }\r",
                    "                });\r",
                    "                alert(\"Personal no registrado...\");\r",
                    "                return;\r",
                    "            }\r",
                    "            var indiv_id = resp.data[0].indiv_id;\r",
                    "            var indiv_dni = resp.data[0].indiv_dni;\r",
                    "            var indiv_appaterno = resp.data[0].indiv_appaterno;\r",
                    "            var indiv_apmaterno = resp.data[0].indiv_apmaterno;\r",
                    "            var indiv_nombres   = resp.data[0].indiv_nombres;\r",
                    "            Ext.getCmp('grid1');\r",
                    "            store.load({\r",
                    "                params : {\r",
                    "                    datito1 : datito1,\r",
                    "                    nombre_ie : datito1\r",
                    "                }\r",
                    "            });\r",
                    "        },\r",
                    "    });\r",
                    "}"
                ],
                "name": "keypress",
                "scope": "me",
                "designer|targetType": "Ext.form.field.Text",
                "designer|controlQuery": "ape textfield[action='BuscarApeEnter']"
            },
            "designerId": "e71fe2d7-3834-4c7d-a768-972945b01629"
        },
        {
            "type": "controllerref",
            "reference": {
                "name": "items",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "ref": "userList1",
                "selector": "userlist1"
            },
            "designerId": "69a729ab-d237-4faa-a24d-fd7d722c115f"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onBuscarApeClick",
                "designer|params": [
                    "textfield"
                ],
                "implHandler": [
                    "var c_idcont = Ext.getCmp('indiv_apellido').getValue();\r",
                    "if(c_idcont==\"\")\r",
                    "{\r",
                    "    alert(\"Debe ingresar Apellido\");\r",
                    "    return;\r",
                    "}\r",
                    "Ext.getCmp('indiv_apellido').setValue(c_idcont);\r",
                    "var store = Ext.getStore('BuscarApe');\r",
                    "var url = Ext.getCmp('indiv_apellido').getValue();\r",
                    "var grid6 = this.getUserList1();\r",
                    "var datito1 = Ext.encode(url);\r",
                    "Ext.Ajax.request({\r",
                    "    method: 'GET',\r",
                    "    url : 'controladores/BuscarApeClick.php',    \r",
                    "    params: {\r",
                    "        datito1 : datito1\r",
                    "    },\r",
                    "    failure: function(){\r",
                    "        Ext.Msg.alert('Mensaje','Error en el servidor');\r",
                    "    },\r",
                    "    success: function(response) {\r",
                    "        var resp = Ext.decode(response.responseText);\r",
                    "        var no = resp.data[0];\r",
                    "        if(no==\"hola\")\r",
                    "        {\r",
                    "            Ext.getCmp('grid1');\r",
                    "            store.load({\r",
                    "                params : {\r",
                    "                    datito1 : datito1,\r",
                    "                    indiv_apellido : datito1\r",
                    "                }\r",
                    "            });\r",
                    "            alert(\"Apellido no registrado...\");\r",
                    "            return;\r",
                    "        }\r",
                    "        var indiv_id = resp.data[0].indiv_id;\r",
                    "        var indiv_dni = resp.data[0].indiv_dni;\r",
                    "        var indiv_appaterno = resp.data[0].indiv_appaterno;\r",
                    "        var indiv_apmaterno = resp.data[0].indiv_apmaterno;\r",
                    "        var indiv_nombres   = resp.data[0].indiv_nombres;\r",
                    "        Ext.getCmp('grid1');\r",
                    "        store.load({\r",
                    "            params : {\r",
                    "                datito1 : datito1,\r",
                    "                indiv_apellido : datito1\r",
                    "            }\r",
                    "        });\r",
                    "    },\r",
                    "});\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.form.field.Text",
                "designer|controlQuery": "ape button[action='BuscarApeClick']"
            },
            "designerId": "fd6ef178-7e3b-4bd8-bf1e-ae81d7ee0fad"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onSalirDni",
                "implHandler": [
                    "var store  = this.getBuscarDniStore();\r",
                    "store.removeAll();\r",
                    "var win    = button.up('window');\r",
                    "win.close();"
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "dni button[action='SalirPersonalDni']"
            },
            "designerId": "9e3d65cd-994a-4bb2-8f9a-573e2ec23017"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onSalirApe",
                "implHandler": [
                    "var store  = this.getBuscarApeStore();\r",
                    "store.removeAll();\r",
                    "var win    = button.up('window');\r",
                    "win.close();"
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "ape button[action='SalirApe']"
            },
            "designerId": "6750b5ab-6ce5-4657-86e5-1500666da2ad"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onNuevoPersonalClick",
                "implHandler": [
                    "var editWind = Ext.widget('NuevoPersonal');\r",
                    "mode = 'Agregar';\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "dni button[action='NuevoPersonalDni']"
            },
            "designerId": "84f59e65-c0e0-4b98-9760-536c6171051b"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onSalirNuevoPersonalDni",
                "implHandler": [
                    "var win    = button.up('window');\r",
                    "win.close();"
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "NuevoPersonal button[action='SalirNuevoPersonalDni']"
            },
            "designerId": "fc8e68d4-cd30-474f-9725-c705e03dff21"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onEditarPersonalDni",
                "implHandler": [
                    "var editWind = Ext.widget('EditarPersonalDni');\r",
                    "var records = this.getUserList().getSelectionModel().getSelection();\r",
                    "var editForm = editWind.down('form');\r",
                    "mode = 'Actualizar';\r",
                    "if(records.length === 1){\r",
                    "    var record = records[0];\r",
                    "    editForm.loadRecord(record);\r",
                    "}else{\r",
                    "    return;\r",
                    "}    \r",
                    "\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "dni button[action='EditarPersonalDni']"
            },
            "designerId": "8f16097a-9ea3-428e-8091-6624a6895cdf"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onGrabarPersonalDni",
                "implHandler": [
                    "var win    = button.up('window'),\r",
                    "    form       = win.down('form').getForm(),\r",
                    "    values     = form.getValues();\r",
                    "valid1     = win.down('form').getForm();\r",
                    "var store  = this.getBuscarDniStore();\r",
                    "valid2     = win.down('form').getForm();\r",
                    "if (mode == 'Agregar'){\r",
                    "    if(valid2.isValid()){\r",
                    "        var c_indiv_dni2      = Ext.getCmp('indiv_dni2').getValue();\r",
                    "        var c_indiv_appaterno = Ext.getCmp('indiv_appaterno').getValue().trim().toUpperCase();\r",
                    "        var c_indiv_apmaterno = Ext.getCmp('indiv_apmaterno').getValue().trim().toUpperCase();\r",
                    "        var c_indiv_nombres   = Ext.getCmp('indiv_nombres').getValue().trim().toUpperCase();\r",
                    "        var c_indiv_sexo      = Ext.getCmp('indiv_sexo').getValue();\r",
                    "        var c_indiv_direccion1= Ext.getCmp('indiv_direccion1').getValue().trim().toUpperCase();\r",
                    "        var c_indiv_celular   = Ext.getCmp('indiv_celular').getValue();\r",
                    "        var c_indiv_email1    = Ext.getCmp('indiv_email').getValue();\r",
                    "        var c_indiv_fechanac  = Ext.getCmp('indiv_fechanac').getValue();\r",
                    "        var indiv_dni2        = Ext.encode(c_indiv_dni2);\r",
                    "        var indiv_appaterno   = Ext.encode(c_indiv_appaterno);\r",
                    "        var indiv_apmaterno   = Ext.encode(c_indiv_apmaterno);\r",
                    "        var indiv_nombres     = Ext.encode(c_indiv_nombres);\r",
                    "        var indiv_sexo        = Ext.encode(c_indiv_sexo);\r",
                    "        var indiv_direccion1  = Ext.encode(c_indiv_direccion1);\r",
                    "        var indiv_celular     = Ext.encode(c_indiv_celular);\r",
                    "        var indiv_email1      = Ext.encode(c_indiv_email1);\r",
                    "        var indiv_fechanac    = Ext.encode(c_indiv_fechanac);\r",
                    "        Ext.Ajax.request({\r",
                    "            method: 'POST',\r",
                    "            url : 'controladores/NuevoPersonal.php',\r",
                    "            params: {\r",
                    "                indiv_dni2        : indiv_dni2,\r",
                    "                indiv_appaterno   : indiv_appaterno,\r",
                    "                indiv_apmaterno   : indiv_apmaterno, \r",
                    "                indiv_nombres     : indiv_nombres,  \r",
                    "                indiv_sexo        : indiv_sexo, \r",
                    "                indiv_direccion1  : indiv_direccion1, \r",
                    "                indiv_celular     : indiv_celular,\r",
                    "                indiv_email1      : indiv_email1,\r",
                    "                indiv_fechanac    : indiv_fechanac\r",
                    "            },\r",
                    "            failure: function(){\r",
                    "                Ext.Msg.alert('Mensaje','Error en el servidor');\r",
                    "            },\r",
                    "            success: function(response) {\r",
                    "                var resp = Ext.decode(response.responseText);\r",
                    "                var no = resp.data[0];\r",
                    "                if(no == 'dupli'){\r",
                    "                    alert(\"N° D.N.I. duplicado...!!!\")\r",
                    "                    return;\r",
                    "                }\r",
                    "                if(no==\"vacio\"){\r",
                    "                    alert(\"datos_incompletos...\");\r",
                    "                    return;\r",
                    "                }\r",
                    "                if(no == 'ok'){\r",
                    "                    alert(\"Registrado Correctamente...!!!\")\r",
                    "                    win.close();\r",
                    "                    return;\r",
                    "                }\r",
                    "\r",
                    "           },\r",
                    "        });\r",
                    "    }\r",
                    "}\r",
                    "store.removeAll();\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "NuevoPersonal button[action='idgrabar']"
            },
            "designerId": "af39de67-8ecd-4e68-a5d9-54da6fb9fc9b"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onDuplicadoPersonal",
                "implHandler": [
                    "if (e.getKey() == 13) {\r",
                    "\r",
                    "    var dni = Ext.getCmp('indiv_dni2').getValue();\r",
                    "\r",
                    "    if (!dni || isNaN(dni)) {\r",
                    "        Ext.Msg.alert('Mensaje', 'Debe ingresar N° D.N.I.');\r",
                    "        return;\r",
                    "    }\r",
                    "\r",
                    "    Ext.Ajax.request({\r",
                    "        method : 'GET',\r",
                    "        url    : 'controladores/PersonalDuplicado.php',\r",
                    "        params : {\r",
                    "            dni : dni   // ← directo\r",
                    "        },\r",
                    "        failure: function () {\r",
                    "            Ext.Msg.alert('Mensaje', 'Error en el servidor');\r",
                    "        },\r",
                    "        success: function (response) {\r",
                    "\r",
                    "            var resp = Ext.decode(response.responseText);\r",
                    "\r",
                    "            if (resp.duplicado === true) {\r",
                    "                Ext.Msg.alert('Mensaje', 'N° D.N.I. duplicado');\r",
                    "                return;\r",
                    "            }\r",
                    "\r",
                    "            Ext.getCmp('indiv_appaterno').focus(true, 100);\r",
                    "        }\r",
                    "    });\r",
                    "}\r",
                    ""
                ],
                "name": "keypress",
                "scope": "me",
                "designer|targetType": "Ext.form.field.Text",
                "designer|controlQuery": "NuevoPersonal textfield[action='PersonalDuplicado']"
            },
            "designerId": "7616a49e-8a2b-4aad-aeda-0dbfe5778485"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onActualizarPersonalDni",
                "implHandler": [
                    "var win    = button.up('window'),\r",
                    "    form       = win.down('form').getForm(),\r",
                    "    values     = form.getValues();\r",
                    "valid1     = win.down('form').getForm();\r",
                    "var store7 = Ext.getStore('GrabarNuevoPersonal');\r",
                    "var store  = this.getBuscarDniStore();\r",
                    "valid2     = win.down('form').getForm();\r",
                    "if (mode  == 'Actualizar'){\r",
                    "    if(valid1.isValid()){\r",
                    "        form   = Ext.getCmp('frm2');\r",
                    "        values = form.getValues();\r",
                    "        var c_indiv_dni2      = Ext.getCmp('indiv_dni1').getValue();\r",
                    "        var c_indiv_appaterno = Ext.getCmp('indiv_appaterno1').getValue().trim().toUpperCase();\r",
                    "        var c_indiv_apmaterno = Ext.getCmp('indiv_apmaterno1').getValue().trim().toUpperCase();\r",
                    "        var c_indiv_nombres   = Ext.getCmp('indiv_nombres1').getValue().trim().toUpperCase();\r",
                    "        var c_indiv_sexo      = Ext.getCmp('indiv_sexo1').getValue();\r",
                    "        var c_indiv_direccion1= Ext.getCmp('indiv_direccion2').getValue().trim().toUpperCase();\r",
                    "        var c_indiv_celular   = Ext.getCmp('indiv_celular1').getValue();\r",
                    "        var c_indiv_email1    = Ext.getCmp('indiv_email1').getValue();\r",
                    "        var c_indiv_fechanac  = Ext.getCmp('indiv_fechanac1').getValue();\r",
                    "        var indiv_dni2        = Ext.encode(c_indiv_dni2);\r",
                    "        var indiv_appaterno   = Ext.encode(c_indiv_appaterno);\r",
                    "        var indiv_apmaterno   = Ext.encode(c_indiv_apmaterno);\r",
                    "        var indiv_nombres     = Ext.encode(c_indiv_nombres);\r",
                    "        var indiv_sexo        = Ext.encode(c_indiv_sexo);\r",
                    "        var indiv_direccion1  = Ext.encode(c_indiv_direccion1);\r",
                    "        var indiv_celular     = Ext.encode(c_indiv_celular);\r",
                    "        var indiv_email1      = Ext.encode(c_indiv_email1);\r",
                    "        var indiv_fechanac    = Ext.encode(c_indiv_fechanac);\r",
                    "        console.log(indiv_fechanac);\r",
                    "        Ext.Ajax.request({\r",
                    "            url : 'controladores/ActualizarPersonal.php',  \r",
                    "            method: 'POST',  \r",
                    "            params: {\r",
                    "                indiv_dni2        : indiv_dni2,\r",
                    "                indiv_appaterno   : indiv_appaterno,\r",
                    "                indiv_apmaterno   : indiv_apmaterno, \r",
                    "                indiv_nombres     : indiv_nombres,  \r",
                    "                indiv_sexo        : indiv_sexo, \r",
                    "                indiv_direccion1  : indiv_direccion1,\r",
                    "                indiv_celular     : indiv_celular,\r",
                    "                indiv_email1      : indiv_email1,\r",
                    "                indiv_fechanac    : indiv_fechanac\r",
                    "            },\r",
                    "            failure: function(){\r",
                    "                Ext.Msg.alert('Mensaje','Error en el servidor');\r",
                    "            },\r",
                    "            success: function(response) {\r",
                    "                var resp = Ext.decode(response.responseText);\r",
                    "                var no = resp.data[0];\r",
                    "                if(no == 'ok_sin'){\r",
                    "                    alert(\"No hubo cambios...!!!\")\r",
                    "                    return;\r",
                    "                }\r",
                    "                if(no==\"vacio\"){\r",
                    "                    alert(\"Datos incompletos...\");\r",
                    "                    return;\r",
                    "                }\r",
                    "                if(no == 'ok'){\r",
                    "                    alert(\"Modificado Correctamente...!!!\")\r",
                    "                    win.close();\r",
                    "                    return;\r",
                    "                }            \r",
                    "                Ext.getCmp('grid1');\r",
                    "                store7.load({\r",
                    "                    params : {\r",
                    "                        indiv_dni2 : indiv_dni2\r",
                    "                    }\r",
                    "                });\r",
                    "                win.close();\r",
                    "                return;\r",
                    "            },\r",
                    "        });\r",
                    "    }\r",
                    "}\r",
                    "store7.removeAll();\r",
                    "store.removeAll();"
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "EditarPersonalDni button[action='idgrabar']"
            },
            "designerId": "84ef3d53-7dc2-4f69-bb1f-138d730aa654"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onDuplicadoPersonalApe",
                "implHandler": [
                    "if(e.getKey()==13){\r",
                    "    var c_idcont = Ext.getCmp('indiv_dni4').getValue();\r",
                    "    if(c_idcont==\"\" || isNaN(c_idcont))\r",
                    "    {\r",
                    "        alert(\"Debe ingresar N° D.N.I.\");\r",
                    "        return;\r",
                    "    }\r",
                    "\r",
                    "    Ext.getCmp('indiv_dni4').setValue(c_idcont);\r",
                    "    var url = Ext.getCmp('indiv_dni4').getValue();\r",
                    "    var datito = Ext.encode(url);\r",
                    "    //var win    = Ext.widget('NuevoPersonalApe');    \r",
                    "    Ext.Ajax.request({\r",
                    "        method: 'GET',\r",
                    "        url : 'controladores/PersonalDuplicado.php',\r",
                    "        params: {\r",
                    "            datito : datito\r",
                    "        },\r",
                    "        failure: function(){\r",
                    "            Ext.Msg.alert('Mensaje','Error en el servidor');\r",
                    "        },\r",
                    "        success: function(response) {\r",
                    "            var resp = Ext.decode(response.responseText);\r",
                    "            var no = resp.data[0];\r",
                    "            if(no==\"duplicado\")\r",
                    "            {\r",
                    "                alert(\"N° D.N.I. Duplicado...\");\r",
                    "\r",
                    "                //win.hide();\r",
                    "                return;\r",
                    "            }else{\r",
                    "                Ext.getCmp('indiv_appaterno').focus(100,true);\r",
                    "\r",
                    "\r",
                    "            }\r",
                    "        },        \r",
                    "    });\r",
                    "}"
                ],
                "name": "keypress",
                "scope": "me",
                "designer|targetType": "Ext.form.field.Text",
                "designer|controlQuery": "NuevoPersonalApe textfield[action='PersonalDuplicado1']"
            },
            "designerId": "ff375dd9-0480-497d-9bbf-e1340e4d5727"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onSalirEditarDni",
                "implHandler": [
                    "var win    = button.up('window');\r",
                    "win.close();"
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "EditarPersonalDni button[action='SalirEditar1']"
            },
            "designerId": "0a318a47-8b54-46ab-afd5-ca026d30e5b8"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onConsultarPersonalDni",
                "implHandler": [
                    "var editWind = Ext.widget('ConsultarPersonalDni');\r",
                    "var records = this.getUserList().getSelectionModel().getSelection();\r",
                    "var editForm = editWind.down('form');\r",
                    "mode = 'Consultar';\r",
                    "if(records.length === 1){\r",
                    "    var record = records[0];\r",
                    "    editForm.loadRecord(record);\r",
                    "}else{\r",
                    "    return;\r",
                    "}    \r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "dni button[action='ConsultarPersonalDni']"
            },
            "designerId": "dbadc887-f2ce-4f24-a69e-7a671b51548d"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onConsultarSalrDni",
                "implHandler": [
                    "var win    = button.up('window');\r",
                    "win.close();"
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "ConsultarPersonalDni button[action='SalirConsultar']"
            },
            "designerId": "ef967115-b593-4354-b05b-00cd204b18ec"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onNuevoPersonalApeClick",
                "implHandler": [
                    "var editWind = Ext.widget('NuevoPersonalApe');\r",
                    "mode = 'Agregar';\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "ape button[action='NuevoPersonalApe']"
            },
            "designerId": "c8f5531e-2da5-4a0a-9efb-6ef1d2d44bff"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onGrabarPersonalApe",
                "implHandler": [
                    "var win    = button.up('window'),\r",
                    "    form       = win.down('form').getForm(),\r",
                    "    values     = form.getValues();\r",
                    "valid1     = win.down('form').getForm();\r",
                    "var store  = this.getBuscarApeStore();\r",
                    "valid2     = win.down('form').getForm();\r",
                    "if (mode == 'Agregar'){\r",
                    "    if(valid2.isValid()){\r",
                    "        var c_indiv_dni2      = Ext.getCmp('indiv_dni4').getValue();\r",
                    "        var c_indiv_appaterno = Ext.getCmp('indiv_appaterno3').getValue().trim().toUpperCase();\r",
                    "        var c_indiv_apmaterno = Ext.getCmp('indiv_apmaterno3').getValue().trim().toUpperCase();\r",
                    "        var c_indiv_nombres   = Ext.getCmp('indiv_nombres3').getValue().trim().toUpperCase();\r",
                    "        var c_indiv_sexo      = Ext.getCmp('indiv_sexo3').getValue();\r",
                    "        var c_indiv_direccion1= Ext.getCmp('indiv_direccion4').getValue().trim().toUpperCase();\r",
                    "        var c_indiv_celular   = Ext.getCmp('indiv_celular3').getValue();\r",
                    "        var c_indiv_email1    = Ext.getCmp('indiv_email3').getValue();\r",
                    "        var c_indiv_fechanac  = Ext.getCmp('indiv_fechanac3').getValue();\r",
                    "        var indiv_dni2        = Ext.encode(c_indiv_dni2);\r",
                    "        var indiv_appaterno   = Ext.encode(c_indiv_appaterno);\r",
                    "        var indiv_apmaterno   = Ext.encode(c_indiv_apmaterno);\r",
                    "        var indiv_nombres     = Ext.encode(c_indiv_nombres);\r",
                    "        var indiv_sexo        = Ext.encode(c_indiv_sexo);\r",
                    "        var indiv_direccion1  = Ext.encode(c_indiv_direccion1);\r",
                    "        var indiv_celular     = Ext.encode(c_indiv_celular);\r",
                    "        var indiv_email1      = Ext.encode(c_indiv_email1);\r",
                    "        var indiv_fechanac    = Ext.encode(c_indiv_fechanac);\r",
                    "        Ext.Ajax.request({\r",
                    "            method: 'POST',\r",
                    "            url : 'controladores/NuevoPersonal.php',\r",
                    "            params: {\r",
                    "                indiv_dni2        : indiv_dni2,\r",
                    "                indiv_appaterno   : indiv_appaterno,\r",
                    "                indiv_apmaterno   : indiv_apmaterno, \r",
                    "                indiv_nombres     : indiv_nombres,  \r",
                    "                indiv_sexo        : indiv_sexo, \r",
                    "                indiv_direccion1  : indiv_direccion1, \r",
                    "                indiv_celular     : indiv_celular,\r",
                    "                indiv_email1      : indiv_email1,\r",
                    "                indiv_fechanac    : indiv_fechanac\r",
                    "            },\r",
                    "            failure: function(){\r",
                    "                Ext.Msg.alert('Mensaje','Error en el servidor');\r",
                    "            },\r",
                    "            success: function(response) {\r",
                    "                var resp = Ext.decode(response.responseText);\r",
                    "                var no = resp.data[0];\r",
                    "                if(no==\"dupli\"){\r",
                    "                    alert(\"N° D.N.I. Duplicado...\");\r",
                    "                    return;\r",
                    "                }\r",
                    "                if(no==\"vacio\"){\r",
                    "                    alert(\"datos_incompletos...\");\r",
                    "                    return;\r",
                    "                }\r",
                    "                if(no==\"ok\"){\r",
                    "                    alert(\"Registrado correctamente\");\r",
                    "                    win.close();\r",
                    "                    return;\r",
                    "                }        \r",
                    "            },\r",
                    "        });\r",
                    "    }\r",
                    "}\r",
                    "store.removeAll();\r",
                    "\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "NuevoPersonalApe button[action='idgrabar3']"
            },
            "designerId": "280db080-be90-4e37-ab84-2311972367d8"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onSalirPersonalApe",
                "implHandler": [
                    "var win    = button.up('window');\r",
                    "win.close();"
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "NuevoPersonalApe button[action='SalirNuevoPersonalApe']"
            },
            "designerId": "7e57fd38-2a2b-476b-ab94-f98ffaeeaaf0"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onEditarPersonalApe",
                "implHandler": [
                    "var editWind = Ext.widget('EditarPersonalApe');\r",
                    "var records = this.getUserList1().getSelectionModel().getSelection();\r",
                    "var editForm = editWind.down('form');\r",
                    "mode = 'Actualizar';\r",
                    "if(records.length === 1){\r",
                    "    var record = records[0];\r",
                    "    editForm.loadRecord(record);\r",
                    "}else{\r",
                    "    return;\r",
                    "}    \r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "ape button[action='EditarPersonalApe']"
            },
            "designerId": "86d6f4ac-0733-426f-b456-0ad8d7292254"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onSalirEditarApe",
                "implHandler": [
                    "var win    = button.up('window');\r",
                    "win.close();"
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "EditarPersonalApe button[action='SalirEditarApe']"
            },
            "designerId": "9b72919a-807e-4413-80a0-98878f8b8020"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onActualizarPersonalApe",
                "implHandler": [
                    "var win    = button.up('window'),\r",
                    "    form       = win.down('form').getForm(),\r",
                    "    values     = form.getValues();\r",
                    "valid1     = win.down('form').getForm();\r",
                    "var store7 = Ext.getStore('GrabarNuevoPersonal');\r",
                    "var store  = this.getBuscarApeStore();\r",
                    "valid2     = win.down('form').getForm();\r",
                    "if (mode  == 'Actualizar'){\r",
                    "    if(valid1.isValid()){\r",
                    "        form   = Ext.getCmp('frm4');\r",
                    "        values = form.getValues();\r",
                    "        var c_indiv_dni2      = Ext.getCmp('indiv_dni5').getValue();\r",
                    "        var c_indiv_appaterno = Ext.getCmp('indiv_appaterno4').getValue().trim().toUpperCase();\r",
                    "        var c_indiv_apmaterno = Ext.getCmp('indiv_apmaterno4').getValue().trim().toUpperCase();\r",
                    "        var c_indiv_nombres   = Ext.getCmp('indiv_nombres4').getValue().trim().toUpperCase();\r",
                    "        var c_indiv_sexo      = Ext.getCmp('indiv_sexo4').getValue();\r",
                    "        var c_indiv_direccion1= Ext.getCmp('indiv_direccion5').getValue().trim().toUpperCase();\r",
                    "        var c_indiv_celular   = Ext.getCmp('indiv_celular4').getValue();\r",
                    "        var c_indiv_email1    = Ext.getCmp('indiv_email4').getValue();\r",
                    "        var c_indiv_fechanac  = Ext.getCmp('indiv_fechanac4').getValue();\r",
                    "        var indiv_dni2        = Ext.encode(c_indiv_dni2);\r",
                    "        var indiv_appaterno   = Ext.encode(c_indiv_appaterno);\r",
                    "        var indiv_apmaterno   = Ext.encode(c_indiv_apmaterno);\r",
                    "        var indiv_nombres     = Ext.encode(c_indiv_nombres);\r",
                    "        var indiv_sexo        = Ext.encode(c_indiv_sexo);\r",
                    "        var indiv_direccion1  = Ext.encode(c_indiv_direccion1);\r",
                    "        var indiv_celular     = Ext.encode(c_indiv_celular);\r",
                    "        var indiv_email1      = Ext.encode(c_indiv_email1);\r",
                    "        var indiv_fechanac    = Ext.encode(c_indiv_fechanac);\r",
                    "        console.log(indiv_fechanac);\r",
                    "        Ext.Ajax.request({\r",
                    "            url : 'controladores/ActualizarPersonal.php',  \r",
                    "            method: 'POST',  \r",
                    "            params: {\r",
                    "                indiv_dni2        : indiv_dni2,\r",
                    "                indiv_appaterno   : indiv_appaterno,\r",
                    "                indiv_apmaterno   : indiv_apmaterno, \r",
                    "                indiv_nombres     : indiv_nombres,  \r",
                    "                indiv_sexo        : indiv_sexo, \r",
                    "                indiv_direccion1  : indiv_direccion1,\r",
                    "                indiv_celular     : indiv_celular,\r",
                    "                indiv_email1      : indiv_email1,\r",
                    "                indiv_fechanac    : indiv_fechanac\r",
                    "            },\r",
                    "            failure: function(){\r",
                    "                Ext.Msg.alert('Mensaje','Error en el servidor');\r",
                    "            },\r",
                    "            success: function(response) {\r",
                    "                alert(\"Personal Actualizado correctamente\");\r",
                    "                Ext.getCmp('grid1');\r",
                    "                store7.load({\r",
                    "                    params : {\r",
                    "                        // indiv_appaterno : indiv_appaterno\r",
                    "                        indiv_dni2 : indiv_dni2\r",
                    "                    }\r",
                    "                });\r",
                    "                win.close();\r",
                    "                return;\r",
                    "            },\r",
                    "        });\r",
                    "    }else{\r",
                    "        Ext.ux.Msg.flash({\r",
                    "            msg: 'Existen campos incompletos o con errores agregar',\r",
                    "            type: 'error'\r",
                    "        });\r",
                    "    }  \r",
                    "}\r",
                    "store.removeAll();\r",
                    "store7.removeAll();"
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "EditarPersonalApe button[action='idgrabar4']"
            },
            "designerId": "2a29b112-599c-4917-8805-a300feb5af22"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onConsultarPersonalApe",
                "implHandler": [
                    "var editWind = Ext.widget('ConsultarPersonalApe');\r",
                    "var records = this.getUserList1().getSelectionModel().getSelection();\r",
                    "var editForm = editWind.down('form');\r",
                    "mode = 'Consultar';\r",
                    "if(records.length === 1){\r",
                    "    var record = records[0];\r",
                    "    editForm.loadRecord(record);\r",
                    "}else{\r",
                    "    return;\r",
                    "}    \r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "ape button[action='ConsultarPersonalApe']"
            },
            "designerId": "8a8fa54b-b971-4302-b804-f5bdd768ca8a"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onSalirConsultarApe",
                "implHandler": [
                    "var win    = button.up('window');\r",
                    "win.close();"
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "ConsultarPersonalApe button[action='SalirConsultarApe']"
            },
            "designerId": "5bfbdfa6-6573-45cd-9d28-a92a31aa7010"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onMenuiteminstitucion",
                "implHandler": [
                    "var editWind = Ext.widget('institucion');\r",
                    "mode = 'Agregar';\r",
                    "\r",
                    "var opcion1 = '3',\r",
                    "    opcion2 = '2',\r",
                    "    opcion3 = '1'\r",
                    "    Ext.Ajax.request({\r",
                    "        //async: true,\r",
                    "        method: 'GET',\r",
                    "        url : 'controladores/acceso1.php',\r",
                    "        params: {\r",
                    "            opcion1 : opcion1,\r",
                    "            opcion2 : opcion2,\r",
                    "            opcion3 : opcion3\r",
                    "        },\r",
                    "        failure: function(){\r",
                    "            Ext.Msg.alert('Mensaje','Error en el servidor');\r",
                    "    },\r",
                    "    success: function(response) {\r",
                    "        var resp = Ext.decode(response.responseText);\r",
                    "        var no = resp.data[0];\r",
                    "        if(no==\"sinacceso\")\r",
                    "        {\r",
                    "            alert(\"Acceso Restringido...\");\r",
                    "            editWind.close();\r",
                    "            return;\r",
                    "        }            \r",
                    "    }\r",
                    "})\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.menu.Item",
                "designer|controlQuery": "principal menuitem[action='institucion']"
            },
            "designerId": "8b007173-5670-498d-afd7-308d9abff4f7"
        },
        {
            "type": "controllerref",
            "reference": {
                "name": "items",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "ref": "userList2",
                "selector": "userlist2"
            },
            "designerId": "cb953277-2712-42e9-9efc-3c76dc05c899"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onBuscarCodigoModularEnter",
                "implHandler": [
                    "if(e.getKey()==13){\r",
                    "    var c_idcont = Ext.getCmp('codigo_modular1').getValue();\r",
                    "    if(c_idcont==\"\" || isNaN(c_idcont))\r",
                    "    {\r",
                    "        alert(\"Debe ingresar codigo Modular\");\r",
                    "        return;\r",
                    "    }\r",
                    "    Ext.getCmp('codigo_modular1').setValue(c_idcont);\r",
                    "    var store = Ext.getStore('buscarcodmod');\r",
                    "    var url = Ext.getCmp('codigo_modular1').getValue();\r",
                    "    var grid2 = this.getUserList2();\r",
                    "    var datito = Ext.encode(url);\r",
                    "    Ext.Ajax.request({\r",
                    "        method: 'GET',\r",
                    "        url : 'controladores/BuscarIiee.php',\r",
                    "        params: {\r",
                    "            datito  : datito,\r",
                    "        },\r",
                    "        failure: function(){\r",
                    "            Ext.Msg.alert('Mensaje','Error en el servidor');\r",
                    "        },\r",
                    "        success: function(response) {\r",
                    "            var resp = Ext.decode(response.responseText);\r",
                    "            var no = resp.data[0];\r",
                    "            if(no==\"hola\")\r",
                    "            {\r",
                    "                Ext.getCmp('grid2');\r",
                    "                store.load({\r",
                    "                    params : {\r",
                    "                        datito : datito,\r",
                    "                        codigo_modular : datito\r",
                    "                    }\r",
                    "                });\r",
                    "                alert(\"Codigo Modular no registrado...\");\r",
                    "                return;\r",
                    "            }\r",
                    "            var codigo_modular = resp.data[0].codigo_modular;\r",
                    "            var nombre_ie = resp.data[0].nombre_ie;\r",
                    "            var nombre_nivel = resp.data[0].nombre_nivel;\r",
                    "            var nombre_direccion = resp.data[0].direccion;\r",
                    "            var nombre_telefono = resp.data[0].telefono;\r",
                    "            Ext.getCmp('grid2');\r",
                    "            store.load({\r",
                    "                params : {\r",
                    "                    datito : datito,\r",
                    "                    codigo_modular : datito\r",
                    "                }\r",
                    "            });\r",
                    "        },\r",
                    "    });\r",
                    "}"
                ],
                "name": "keypress",
                "scope": "me",
                "designer|targetType": "Ext.form.field.Text",
                "designer|controlQuery": "institucion textfield[action='BuscarIieeEnter']"
            },
            "designerId": "92ef7d56-82b0-4a6e-b1bc-897103f3d1d7"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onBuscarCodigoModularClick",
                "implHandler": [
                    "var c_idcont = Ext.getCmp('codigo_modular1').getValue();\r",
                    "if(c_idcont==\"\" || isNaN(c_idcont))\r",
                    "{\r",
                    "    alert(\"Debe ingresar codigo Modular\");\r",
                    "    return;\r",
                    "}\r",
                    "Ext.getCmp('codigo_modular1').setValue(c_idcont);\r",
                    "var store = Ext.getStore('buscarcodmod');\r",
                    "var url = Ext.getCmp('codigo_modular1').getValue();\r",
                    "var grid2 = this.getUserList2();\r",
                    "var datito = Ext.encode(url);\r",
                    "Ext.Ajax.request({\r",
                    "    method: 'GET',\r",
                    "    url : 'controladores/BuscarIiee.php',\r",
                    "    params: {\r",
                    "        datito : datito\r",
                    "    },\r",
                    "    failure: function(){\r",
                    "        Ext.Msg.alert('Mensaje','Error en el servidor');\r",
                    "    },\r",
                    "    success: function(response) {\r",
                    "        var resp = Ext.decode(response.responseText);\r",
                    "        var no = resp.data[0];\r",
                    "        if(no==\"sinacceso\")\r",
                    "        {\r",
                    "            alert(\"Acceso restringido...\");\r",
                    "            return;\r",
                    "        }\r",
                    "\r",
                    "        if(no==\"hola\")\r",
                    "        {\r",
                    "            Ext.getCmp('grid2');\r",
                    "            store.load({\r",
                    "                params : {\r",
                    "                    datito : datito,\r",
                    "                    codigo_modular : datito\r",
                    "                }\r",
                    "            });\r",
                    "            alert(\"Codigo Modular no registrado...\");\r",
                    "            return;\r",
                    "        }\r",
                    "        var nombre_ie = resp.data[0].nombre_ie;\r",
                    "        var nombre_nivel = resp.data[0].nombre_nivel;\r",
                    "        var nombre_direccion = resp.data[0].direccion;\r",
                    "        var nombre_telefono = resp.data[0].telefono;\r",
                    "        Ext.getCmp('grid2');\r",
                    "        store.load({\r",
                    "            params : {\r",
                    "                datito : datito,\r",
                    "                codigo_modular : datito\r",
                    "            }\r",
                    "        });\r",
                    "    },\r",
                    "});\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "institucion button[action='BuscarCodigoClick']"
            },
            "designerId": "b3a95999-41fe-43c9-8e95-6bcad1b4a75c"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onSalirGrabarNuevoie",
                "implHandler": [
                    "var win = button.up('window');\r",
                    "win.close();"
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "nuevoie button[action='salirnuevoie']"
            },
            "designerId": "d3b2448e-8aa5-4b08-b0e2-c05115a05152"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onNuevoIeClick",
                "implHandler": [
                    "var editWind = Ext.widget('nuevoie');\r",
                    "mode = 'Agregar';\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "institucion button[action='nuevoie']"
            },
            "designerId": "950cb96c-7130-4065-8db9-25bbe04d2a88"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onGrabarieClick",
                "implHandler": [
                    "var win    = button.up('window'),\r",
                    "    form   = win.down('form').getForm(),\r",
                    "    values = form.getValues();\r",
                    "valid1 = win.down('form').getForm();\r",
                    "var store  = this.getBuscarcodmodStore();\r",
                    "valid2 = win.down('form').getForm();\r",
                    "if (mode == 'Actualizar'){\r",
                    "    if(valid1.isValid()){\r",
                    "        form   = Ext.getCmp('frm');\r",
                    "        values = form.getValues();\r",
                    "        var c_codigo_modular      = Ext.getCmp('codigo_modular').getValue();\r",
                    "        var c_nombre_ie           = Ext.getCmp('nombre_ie').getValue().trim().toUpperCase();\r",
                    "        var c_direccion           = Ext.getCmp('direccion').getValue().trim().toUpperCase();\r",
                    "        var c_codigo_ugel         = Ext.getCmp('nombre_ugel').getValue();\r",
                    "        var c_correo              = Ext.getCmp('correo').getValue();\r",
                    "        var codigo_modular        = Ext.encode(c_codigo_modular);\r",
                    "        var nombre_ie             = Ext.encode(c_nombre_ie);\r",
                    "        var direccion             = Ext.encode(c_direccion);\r",
                    "        var codigo_ugel           = Ext.encode(c_codigo_ugel);\r",
                    "        var correo                = Ext.encode(c_correo);\r",
                    "        Ext.Ajax.request({\r",
                    "            url : 'controladores/Actualizar_ie.php',  \r",
                    "            method: 'POST',  \r",
                    "            params: {\r",
                    "                codigo_departamento : values.nombre_departamento,\r",
                    "                codigo_modular      : codigo_modular,\r",
                    "                codigo_biometrico   : values.nombre_biometrico, \r",
                    "                codigo_ugel         : codigo_ugel,  \r",
                    "                nombre_ie           : nombre_ie, \r",
                    "                codigo_nivel        : values.nombre_nivel, \r",
                    "                codigo_modalidad    : values.nombre_modalidad,  \r",
                    "                direccion           : direccion, \r",
                    "                telefono            : values.telefono,\r",
                    "                correo              : correo\r",
                    "            },\r",
                    "            failure: function(){\r",
                    "                Ext.Msg.alert('Mensaje','Error en el servidor');\r",
                    "            },\r",
                    "            success: function(response) {\r",
                    "                var resp = Ext.decode(response.responseText);\r",
                    "                var no = resp.data[0];\r",
                    "                if(no == 'vacio'){\r",
                    "                    alert(\"Verifique existen campos vacios...!!!\")\r",
                    "                    return;\r",
                    "                }\r",
                    "                if(no == 'dupli'){\r",
                    "                    alert(\"Codigo duplicado...!!!\")\r",
                    "                    return;\r",
                    "                }\r",
                    "                if(no == 'nuevo'){\r",
                    "                    alert(\"Registrado Correctamente...!!!\")\r",
                    "                    Ext.getCmp('grid1');\r",
                    "                    store.load({\r",
                    "                        params : {\r",
                    "                            codigo_modular : codigo_modular\r",
                    "                        }\r",
                    "                    });\r",
                    "                    win.close();\r",
                    "                    return;\r",
                    "                }\r",
                    "            },\r",
                    "        });\r",
                    "    }\r",
                    "}\r",
                    "if (mode == 'Agregar'){\r",
                    "    if(valid2.isValid()){\r",
                    "        var store = Ext.getStore('buscarcodmod');\r",
                    "        var c_codigo_departamento = Ext.getCmp('codigo_departamento').getValue();\r",
                    "        var c_codigo_modular      = Ext.getCmp('codigo_modular').getValue();\r",
                    "        var c_codigo_ugel         = Ext.getCmp('nombre_ugel').getValue();\r",
                    "        var c_nombre_ie           = Ext.getCmp('nombre_ie').getValue().trim().toUpperCase();\r",
                    "        var c_codigo_nivel        = Ext.getCmp('codigo_nivel').getValue();\r",
                    "        var c_codigo_modalidad    = Ext.getCmp('codigo_modalidad').getValue();\r",
                    "        var c_direccion           = Ext.getCmp('direccion').getValue().trim().toUpperCase();\r",
                    "        var c_telefono            = Ext.getCmp('telefono').getValue(); \r",
                    "        var c_correo              = Ext.getCmp('correo').getValue(); \r",
                    "        var codigo_departamento   = Ext.encode(c_codigo_departamento);\r",
                    "        var codigo_modular        = Ext.encode(c_codigo_modular);\r",
                    "        var codigo_ugel           = Ext.encode(c_codigo_ugel);\r",
                    "        var nombre_ie             = Ext.encode(c_nombre_ie);\r",
                    "        var codigo_nivel          = Ext.encode(c_codigo_nivel);\r",
                    "        var codigo_modalidad      = Ext.encode(c_codigo_modalidad);\r",
                    "        var direccion             = Ext.encode(c_direccion);\r",
                    "        var telefono              = Ext.encode(c_telefono);\r",
                    "        var correo                = Ext.encode(c_correo);\r",
                    "        Ext.Ajax.request({\r",
                    "            method: 'GET',\r",
                    "            url : 'controladores/NuevoIe.php',\r",
                    "            params: {\r",
                    "                codigo_departamento : codigo_departamento,\r",
                    "                codigo_modular      : codigo_modular,\r",
                    "                codigo_ugel         : codigo_ugel,  \r",
                    "                nombre_ie           : nombre_ie, \r",
                    "                codigo_nivel        : codigo_nivel, \r",
                    "                codigo_modalidad    : codigo_modalidad,  \r",
                    "                direccion           : direccion, \r",
                    "                telefono            : telefono,\r",
                    "                correo              : correo\r",
                    "            },\r",
                    "            failure: function(){\r",
                    "                Ext.Msg.alert('Mensaje','Error en el servidor');\r",
                    "            },\r",
                    "            success: function(response) {\r",
                    "                var resp = Ext.decode(response.responseText);\r",
                    "                var no = resp.data[0];\r",
                    "                if(no == 'vacio'){\r",
                    "                    alert(\"Verifique existen campos vacios...!!!\")\r",
                    "                    return;\r",
                    "                }\r",
                    "                if(no == 'dupli'){\r",
                    "                    alert(\"Codigo duplicado...!!!\")\r",
                    "                    return;\r",
                    "                }\r",
                    "                if(no == 'nuevo'){\r",
                    "                    alert(\"Registrado Correctamente...!!!\")\r",
                    "                    Ext.getCmp('grid1');\r",
                    "                    store.load({\r",
                    "                        params : {\r",
                    "                            codigo_modular : codigo_modular\r",
                    "                        }\r",
                    "                    });\r",
                    "                    win.close();\r",
                    "                    return;\r",
                    "                }\r",
                    "            },\r",
                    "        });\r",
                    "    } \r",
                    "}\r",
                    "store.removeAll();\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "nuevoie button[action='grabarie']"
            },
            "designerId": "beaaef27-9145-4ad4-b7a2-fd5ce8bf55fb"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onSalirConsultaie",
                "implHandler": [
                    "var win = button.up('window');\r",
                    "win.close();"
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "institucion button[action='salirconsultaie']"
            },
            "designerId": "7bb8805f-6d7d-421e-af05-5c4b504bbcac"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onEditarieClick",
                "implHandler": [
                    "var editWind = Ext.widget('consultaie');\r",
                    "var records = this.getUserList2().getSelectionModel().getSelection();\r",
                    "var editForm = editWind.down('form');\r",
                    "mode = 'Actualizar';\r",
                    "if(records.length === 1){\r",
                    "    var record = records[0];\r",
                    "    editForm.loadRecord(record);\r",
                    "}else{\r",
                    "    return;\r",
                    "}    \r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "institucion button[action='editarie']"
            },
            "designerId": "f2a7afaa-5e54-4482-bf14-4b05b5aaf4f2"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onSalirEditarieClick",
                "implHandler": [
                    "var win = button.up('window');\r",
                    "win.close();"
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "consultaie button[action='salireditarie']"
            },
            "designerId": "e17b53f0-3f4a-4414-9b56-ad537127d15c"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onMenuitemVerdos",
                "implHandler": [
                    "var editWind = Ext.widget('verdos');\r",
                    "var store = Ext.getStore('colegio');\r",
                    "store.load({\r",
                    "    callback: function(records, operation, success) {\r",
                    "        if (!success) {\r",
                    "            Ext.Msg.alert('Mensaje', 'No se pudo cargar la información de la Institución Educativa');\r",
                    "        }\r",
                    "    }\r",
                    "});\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.menu.Item",
                "designer|controlQuery": "principal menuitem[action='verdos']"
            },
            "designerId": "19c34735-6b16-4a67-8441-2edec13ad4b1"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onGrabarieEditarClick",
                "implHandler": [
                    "var win    = button.up('window'),\r",
                    "    form   = win.down('form').getForm(),\r",
                    "    values = form.getValues();\r",
                    "valid1 = win.down('form').getForm();\r",
                    "var store  = this.getBuscarcodmodStore();\r",
                    "valid2 = win.down('form').getForm();\r",
                    "if (mode == 'Actualizar'){\r",
                    "    if(valid1.isValid()){\r",
                    "        form   = Ext.getCmp('frm1');\r",
                    "        values = form.getValues();\r",
                    "        var c_codigo_departamento = Ext.getCmp('codigo_departamento1').getValue();\r",
                    "        var c_codigo_modular      = Ext.getCmp('codigo_modular2').getValue();\r",
                    "        var c_codigo_ugel         = Ext.getCmp('nombre_ugel1').getValue();\r",
                    "        var c_nombre_ie           = Ext.getCmp('nombre_ie1').getValue().trim().toUpperCase();\r",
                    "        var c_codigo_nivel        = Ext.getCmp('codigo_nivel1').getValue();\r",
                    "        var c_codigo_modalidad    = Ext.getCmp('codigo_modalidad1').getValue();\r",
                    "        var c_direccion           = Ext.getCmp('direccion1').getValue().trim().toUpperCase();\r",
                    "        var c_telefono            = Ext.getCmp('telefono1').getValue(); \r",
                    "        var c_correo              = Ext.getCmp('correo1').getValue(); \r",
                    "        var codigo_departamento   = Ext.encode(c_codigo_departamento);\r",
                    "        var codigo_modular        = Ext.encode(c_codigo_modular);\r",
                    "        var codigo_ugel           = Ext.encode(c_codigo_ugel);\r",
                    "        var nombre_ie             = Ext.encode(c_nombre_ie);\r",
                    "        var codigo_nivel          = Ext.encode(c_codigo_nivel);\r",
                    "        var codigo_modalidad      = Ext.encode(c_codigo_modalidad);\r",
                    "        var direccion             = Ext.encode(c_direccion);\r",
                    "        var telefono              = Ext.encode(c_telefono);\r",
                    "        var correo                = Ext.encode(c_correo);\r",
                    "        Ext.Ajax.request({\r",
                    "            url : 'controladores/ActualizarIe.php',  \r",
                    "            method: 'POST',  \r",
                    "            params: {\r",
                    "                codigo_departamento : codigo_departamento,\r",
                    "                //codigo_departamento : values.nombre_departamento,\r",
                    "                codigo_modular      : codigo_modular,\r",
                    "                codigo_ugel         : codigo_ugel,  \r",
                    "                nombre_ie           : nombre_ie, \r",
                    "                codigo_nivel        : codigo_nivel,\r",
                    "                codigo_modalidad    : codigo_modalidad,  \r",
                    "                //codigo_nivel        : values.nombre_nivel, \r",
                    "                //codigo_modalidad    : values.nombre_modalidad,  \r",
                    "                direccion           : direccion, \r",
                    "                //telefono            : values.telefono,\r",
                    "                telefono            : telefono,\r",
                    "                correo              : correo\r",
                    "            },\r",
                    "            failure: function(){\r",
                    "                Ext.Msg.alert('Mensaje','Error en el servidor');\r",
                    "            },\r",
                    "            success: function(response) {\r",
                    "                var resp = Ext.decode(response.responseText);\r",
                    "                var no = resp.data[0];\r",
                    "                if(no == 'vacio'){\r",
                    "                    alert(\"Verifique existen campos vacios...!!!\")\r",
                    "                    return;\r",
                    "                }\r",
                    "                if(no == 'dupli'){\r",
                    "                    alert(\"Codigo duplicado...!!!\")\r",
                    "                    return;\r",
                    "                }\r",
                    "                if(no == 'actu'){\r",
                    "                    alert(\"Actualizado Correctamente...!!!\")\r",
                    "                    Ext.getCmp('grid1');\r",
                    "                    store.load({\r",
                    "                        params : {\r",
                    "                            codigo_modular : codigo_modular\r",
                    "                        }\r",
                    "                    });\r",
                    "                    win.close();\r",
                    "                    return;\r",
                    "                }\r",
                    "            },\r",
                    "        });\r",
                    "    }\r",
                    "}\r",
                    "store.removeAll();\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "consultaie button[action='grabarie1']"
            },
            "designerId": "da442860-67c2-4b93-ae17-1f6c91333115"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onColegioVstrabajador",
                "implHandler": [
                    "var codigo_ie = record.get('id_ie');\r",
                    "var gridTrab  = this.getTrabajador();      \r",
                    "var storeTrab = gridTrab.getStore();\r",
                    "// 1) limpiar selección y desactivar botones\r",
                    "var smTrab = gridTrab.getSelectionModel();\r",
                    "if (smTrab) smTrab.deselectAll();\r",
                    "// 2) cargar los trabajadores de la nueva IE\r",
                    "storeTrab.load({\r",
                    "    params: {\r",
                    "        datos: codigo_ie\r",
                    "    }\r",
                    "});"
                ],
                "name": "itemclick",
                "scope": "me",
                "designer|targetType": "Ext.grid.property.Grid",
                "designer|controlQuery": "colegios"
            },
            "designerId": "5fe7a45d-92c9-4a00-92d2-9c9d6c89c32e"
        },
        {
            "type": "controllerref",
            "reference": {
                "name": "items",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "ref": "trabajador",
                "selector": "trabajador"
            },
            "designerId": "ca2c63b1-a5f6-4338-87dc-2441e277cf4a"
        },
        {
            "type": "controllerref",
            "reference": {
                "name": "items",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "ref": "colegios",
                "selector": "colegios"
            },
            "designerId": "76253b26-8bee-4c0e-aa21-50776596ab4a"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onTriggerKeyUp7",
                "designer|params": [
                    "t"
                ],
                "implHandler": [
                    "console.log('You Type something!');\r",
                    "var thisRegEx = new RegExp(t.getValue(), \"i\");\r",
                    "var store = Ext.getStore('colegio');\r",
                    "var grid = this.getColegios();\r",
                    "store.filterBy(function(rec){\r",
                    "    for (var i = 0; i< grid.columns.length; i++){\r",
                    "        if (grid.omitColumns){\r",
                    "            if (grid.omitColumns.indexOf(grid.columns[i].dataIndex)=== -1) {\r",
                    "                if (thisRegEx.test(rec.get(grid.columns[i].dataIndex))) {\r",
                    "                    if (!grid.filterHidden && grid.columns[i].isHidden()) {\r",
                    "                        continue;\r",
                    "                    } else {\r",
                    "                        records.push(record);\r",
                    "                        break;\r",
                    "                    };\r",
                    "                };\r",
                    "            };\r",
                    "        }else {\r",
                    "            if (thisRegEx.test(rec.get(grid.columns[i].dataIndex))) {\r",
                    "                if (!grid.filterHidden && grid.columns[i].isHidden()) {\r",
                    "                    continue;\r",
                    "                } else {\r",
                    "                    return true;\r",
                    "                };\r",
                    "            };\r",
                    "        };\r",
                    "    }\r",
                    "    return false;\r",
                    "});\r",
                    ""
                ],
                "name": "keyup",
                "scope": "me",
                "designer|controlQuery": "colegios #gridTrigger"
            },
            "designerId": "6ab19816-8b0f-4d73-954c-c5dc0173e227"
        },
        {
            "type": "controllerref",
            "reference": {
                "name": "items",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "ref": "verdos",
                "selector": "verdos"
            },
            "designerId": "00f299b0-0a5a-4a77-aa71-a9c411a4039c"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onTriggerClear",
                "designer|params": [
                    "target"
                ],
                "implHandler": [
                    "console.log('Trigger got reset!');\r",
                    "var store = Ext.getStore('colegio');\r",
                    "store.clearFilter();"
                ],
                "name": "triggerClear",
                "scope": "me",
                "designer|controlQuery": "colegios #gridTrigger"
            },
            "designerId": "b03d2184-02dd-456f-8a44-ecdb70de1ab5"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onMenuitemImportar",
                "implHandler": [
                    "var wind = Ext.widget('importar');\r",
                    "wind.show();"
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.menu.Item",
                "designer|controlQuery": "principal menuitem[action='importar']"
            },
            "designerId": "2ff5bc64-772b-4786-8f9e-4fbb91d31ea1"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onTextfieldKeypress",
                "implHandler": [
                    "if(e.getKey()==13){\r",
                    "    var c_idcont = Ext.getCmp('indiv_dni7').getValue();\r",
                    "    if(c_idcont==\"\" || isNaN(c_idcont))\r",
                    "    {\r",
                    "        alert(\"Debe ingresar N° D.N.I.\");\r",
                    "        return;\r",
                    "    }\r",
                    "\r",
                    "    Ext.getCmp('indiv_dni7').setValue(c_idcont);\r",
                    "    var url = Ext.getCmp('indiv_dni7').getValue();\r",
                    "    var datito = Ext.encode(url);\r",
                    "    Ext.Ajax.request({\r",
                    "        method: 'GET',\r",
                    "        url : 'controladores/BuscarDniEnter.php',\r",
                    "        params: {\r",
                    "            datito : datito\r",
                    "        },\r",
                    "        failure: function(){\r",
                    "            Ext.Msg.alert('Mensaje','Error en el servidor');\r",
                    "        },\r",
                    "        success: function(response) {\r",
                    "            var resp  = Ext.decode(response.responseText);\r",
                    "            var hola = resp.data[0];\r",
                    "            if(hola==\"hola\")\r",
                    "            {\r",
                    "                alert(\"D.N.I. no registrado...\");\r",
                    "                return;\r",
                    "            }            \r",
                    "\r",
                    "            var resp = Ext.decode(response.responseText);\r",
                    "            var indiv_id           = resp.data[0].indiv_id;\r",
                    "            var indiv_dni          = resp.data[0].indiv_dni;\r",
                    "            var indiv_appaterno    = resp.data[0].indiv_appaterno;       \r",
                    "            var indiv_apmaterno    = resp.data[0].indiv_apmaterno;\r",
                    "            var indiv_nombres      = resp.data[0].indiv_nombres;\r",
                    "            Ext.getCmp('indiv_id7').setValue(indiv_id);\r",
                    "            Ext.getCmp('indiv_dni7').setValue(indiv_dni);\r",
                    "            Ext.getCmp('indiv_appaterno7').setValue(indiv_appaterno);\r",
                    "            Ext.getCmp('indiv_apmaterno7').setValue(indiv_apmaterno);\r",
                    "            Ext.getCmp('indiv_nombres7').setValue(indiv_nombres);\r",
                    "        }\r",
                    "    });\r",
                    "}"
                ],
                "name": "keypress",
                "scope": "me",
                "designer|targetType": "Ext.form.field.Text",
                "designer|controlQuery": "agregartrabajador textfield[action='nuevopersonal']"
            },
            "designerId": "7b973349-ce3e-432b-a67c-fafd7a7d6e8e"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onBuscarDniClick2",
                "implHandler": [
                    "var c_idcont = Ext.getCmp('indiv_dni7').getValue();\r",
                    "if(c_idcont==\"\" || isNaN(c_idcont))\r",
                    "{\r",
                    "    alert(\"Debe ingresar N°. D.N.I.\");\r",
                    "    return;\r",
                    "}\r",
                    "Ext.getCmp('indiv_dni7').setValue(c_idcont);\r",
                    "var url = Ext.getCmp('indiv_dni7').getValue();\r",
                    "var datito = Ext.encode(url);\r",
                    "Ext.Ajax.request({\r",
                    "    method: 'GET',\r",
                    "    url : 'controladores/BuscarDniClick.php',\r",
                    "    params: {\r",
                    "        datito : datito\r",
                    "    },\r",
                    "    failure: function(){\r",
                    "        Ext.Msg.alert('Mensaje','Error en el servidor');\r",
                    "    },\r",
                    "    success: function(response) {\r",
                    "        var resp  = Ext.decode(response.responseText);\r",
                    "        var hola = resp.data[0];\r",
                    "        if(hola==\"hola\")\r",
                    "        {\r",
                    "            alert(\"D.N.I. no registrado...\");\r",
                    "            return;\r",
                    "        }            \r",
                    "\r",
                    "        var resp = Ext.decode(response.responseText);\r",
                    "        var indiv_id           = resp.data[0].indiv_id;\r",
                    "        var indiv_dni          = resp.data[0].indiv_dni;\r",
                    "        var indiv_appaterno    = resp.data[0].indiv_appaterno;       \r",
                    "        var indiv_apmaterno    = resp.data[0].indiv_apmaterno;\r",
                    "        var indiv_nombres      = resp.data[0].indiv_nombres;\r",
                    "        Ext.getCmp('indiv_id7').setValue(indiv_id);\r",
                    "        Ext.getCmp('indiv_dni7').setValue(indiv_dni);\r",
                    "        Ext.getCmp('indiv_appaterno7').setValue(indiv_appaterno);\r",
                    "        Ext.getCmp('indiv_apmaterno7').setValue(indiv_apmaterno);\r",
                    "        Ext.getCmp('indiv_nombres7').setValue(indiv_nombres);\r",
                    "    }\r",
                    "\r",
                    "});\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "agregartrabajador button[action='BuscarDniClick2']"
            },
            "designerId": "5ab55515-4918-456f-bc7c-6246dbd147aa"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onConsultarTrabajadorClick",
                "implHandler": [
                    "var editWind = Ext.widget('consultartrabajador');\r",
                    "var records  = this.getTrabajador().getSelectionModel().getSelection();\r",
                    "mode = 'Editar';\r",
                    "if (records.length !== 1) return;\r",
                    "var record  = records[0];\r",
                    "var formCmp = editWind.down('form');\r",
                    "var form    = formCmp.getForm();\r",
                    "\r",
                    "// 1) Agarra todos los combos dentro de la ventana (o dentro del form)\r",
                    "var combos = editWind.query('combobox'); // o formCmp.query('combobox')\r",
                    "\r",
                    "// 2) Carga stores que estén vacíos\r",
                    "var pending = 0;\r",
                    "\r",
                    "Ext.Array.each(combos, function (cb) {\r",
                    "    var st = cb.getStore && cb.getStore();\r",
                    "\r",
                    "    // si no tiene store, lo saltamos\r",
                    "    if (!st) return;\r",
                    "\r",
                    "    // criterio ExtJS4: si está vacío y no está cargando => load\r",
                    "    if (st.getCount() === 0 && !st.isLoading()) {\r",
                    "        pending++;\r",
                    "        st.load({\r",
                    "            callback: function () {\r",
                    "                pending--;\r",
                    "                if (pending === 0) {\r",
                    "                    form.loadRecord(record);\r",
                    "                    // opcional: reforzar combos por si alguno tiene conflicto\r",
                    "                    Ext.Array.each(combos, function (cb2) {\r",
                    "                        var name = cb2.name;\r",
                    "                        if (name) cb2.setValue(record.get(name));\r",
                    "                    });\r",
                    "                }\r",
                    "            }\r",
                    "        });\r",
                    "    }\r",
                    "});\r",
                    "\r",
                    "// 3) Si no hubo nada que cargar, carga de frente\r",
                    "if (pending === 0) {\r",
                    "    form.loadRecord(record);\r",
                    "    Ext.Array.each(combos, function (cb2) {\r",
                    "        var name = cb2.name;\r",
                    "        if (name) cb2.setValue(record.get(name));\r",
                    "    });\r",
                    "}\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "verdos button[action='consultartrabajador']"
            },
            "designerId": "db11fff9-9f59-411d-ba07-b78602a47ace"
        },
        {
            "type": "controlleraction",
            "reference": {
                "name": "listeners",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onAddTrabajadorIieeClick",
                "implHandler": [
                    "var editWind  = Ext.widget('cuentas');\r",
                    "var formPanel = editWind.down('form');\r",
                    "var form      = formPanel.getForm();\r",
                    "\r",
                    "var selTrab = this.getTrabajador().getSelectionModel().getSelection();\r",
                    "var selCol  = this.getColegios().getSelectionModel().getSelection();\r",
                    "\r",
                    "// valida que haya 1 seleccionado en cada grid (ajusta si quieres permitir 0 en alguno)\r",
                    "if (selTrab.length !== 1 || selCol.length !== 1) return;\r",
                    "\r",
                    "var recTrab = selTrab[0];\r",
                    "var recCol  = selCol[0];\r",
                    "\r",
                    "// 1) carga campos del trabajador (usa name del form = fields del model)\r",
                    "form.loadRecord(recTrab);\r",
                    "\r",
                    "// 2) aplica campos del colegio (mapea fields → names del form)\r",
                    "form.setValues({\r",
                    "    id_ie:        recCol.get('id_ie'),\r",
                    "    nombre_ie:    recCol.get('nombre_ie'),   \r",
                    "    nombre_nivel: recCol.get('nombre_nivel'), \r",
                    "    codigo_nivel: recCol.get('codigo_nivel')\r",
                    "});\r",
                    ""
                ],
                "name": "click",
                "scope": "me",
                "designer|targetType": "Ext.button.Button",
                "designer|controlQuery": "verdos button[action='cuentastrabajador']"
            },
            "designerId": "acb9e485-3148-41b2-aef2-4dd387c5d3d7"
        },
        {
            "type": "basicfunction",
            "reference": {
                "name": "items",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "init",
                "implHandler": [
                    "this.control({\r",
                    "\r",
                    "    // todas las instancias del grid con xtype 'trabajador'\r",
                    "    'trabajador': {\r",
                    "        selectionchange: this.onTrabajadorSelectionChange,\r",
                    "        beforeselect    : this.onTrabajadorBeforeSelect\r",
                    "    }\r",
                    "\r",
                    "});\r",
                    "\r",
                    "this.callParent(arguments);"
                ]
            },
            "designerId": "4702c691-7c6e-497a-b4dc-402f0787fed1"
        },
        {
            "type": "basicfunction",
            "reference": {
                "name": "items",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "onTrabajadorSelectionChange",
                "designer|params": [
                    "selModel",
                    "selected"
                ],
                "implHandler": [
                    "var grid = selModel.view.ownerCt;\r",
                    "var hasSelection = selected && selected.length > 0;\r",
                    "\r",
                    "if (grid) {\r",
                    "    grid.down('#agregar').setDisabled(hasSelection);\r",
                    "    grid.down('#consultar').setDisabled(!hasSelection);\r",
                    "    grid.down('#cuentas').setDisabled(!hasSelection);\r",
                    "}\r",
                    "},\r",
                    "\r",
                    "onTrabajadorBeforeSelect: function (selModel, record) {\r",
                    "// bloquear filas sin tarea_id\r",
                    "if (record.get('tarea_id') === '') {\r",
                    "    return false;\r",
                    "}\r",
                    "return true;"
                ]
            },
            "designerId": "388583b8-af76-4e87-bcc9-f6dfcbbcac75"
        },
        {
            "type": "basicfunction",
            "reference": {
                "name": "items",
                "type": "array"
            },
            "codeClass": null,
            "userConfig": {
                "fn": "actualizarHeaderTab",
                "designer|params": [
                    "tab",
                    "u"
                ],
                "implHandler": [
                    "//actualizarHeaderTab: function(tab, u) {\r",
                    "if (!tab || !u) return;\r",
                    "\r",
                    "tab.down('#txtInstitucion').setText(\r",
                    "'INSTITUCION EDUCATIVA:' +\r",
                    "(u.nombre_ie || '')\r",
                    ");\r",
                    "\r",
                    "tab.down('#txtNivel').setText(\r",
                    "'NIVEL:' +\r",
                    "(u.nombre_nivel || '')\r",
                    ");\r",
                    "\r",
                    "tab.down('#txtie').setText(\r",
                    "'CODIE: ' + (u.codie || u.ie || '')\r",
                    ");\r",
                    "//}\r",
                    ""
                ]
            },
            "designerId": "e9374487-267d-4876-b5b0-815c20a10c65"
        }
    ]
}