var localUserID = this.UsuarioID;
var Profiletype = this.Profiletype;
var Totalaccess = this.Totalaccess;

Ext.require(['*']);
Ext.onReady(function () {

    //Ext.tip.QuickTipManager.init();
    ////////////////STORES/////////////
    Ext.define('MyApp.store.StAgencyB', {
        extend: 'Ext.data.Store',

        constructor: function (cfg) {
            var me = this;
            cfg = cfg || {};
            me.callParent([Ext.apply({
                storeId: 'StAgencyB',
                proxy: {
                    type: 'ajax',
                    timeout: 0,
                    url: '../../../Backend/Adhesion/Formato.php',
                    actionMethods:
                    {
                        read: 'POST'
                    },
                    extraParams:
                    {
                        Filsc: 'ComboAgencyB',
                        IncludeAll: 'false',
                        CustomerID: '-1'
                    },
                    reader: {
                        type: 'json',
                        root: 'Data',
                        totalProperty: 'totalcount'
                    }
                },
                fields: [
                    {
                        name: 'CUSTOMERCITYID'
                    },
                    {
                        name: 'DESCRIPTION'
                    }
                ]
            }, cfg)]);
        }
    });

    var StAgencyB = Ext.create('MyApp.store.StAgencyB', {
        autoLoad: false,
        listeners: {
            load: function (store, records, o) {
                if (store.getCount() < 1) {
                    //debugger;
                    Ext.Msg.show({ title: '.::Mensaje del Sistema::.', msg: "No existen Agencias para este producto...Por Favor Verifique" + "<br>...Gracias!!!", buttons: Ext.Msg.OK, icon: Ext.MessageBox.WARNING });
                }
                else {
                    //Ext.getCmp('cbAgencyB').setValue(Ext.getCmp('cbCustomerB').getValue()); // asigna el valor del producto selected
                }
            },
            loadexception: function () {

                Ext.Msg.show({ title: '.::Mensaje del Sistema::.', msg: "Error al Cargar Agencias para este producto...Por Favor Verifique" + "<br>...Gracias!!!", buttons: Ext.Msg.OK, icon: Ext.MessageBox.WARNING });
            }
        }
    });

    Ext.define('MyApp.store.StCustomerB', {
        extend: 'Ext.data.Store',

        constructor: function (cfg) {
            var me = this;
            cfg = cfg || {};
            me.callParent([Ext.apply({
                storeId: 'StCustomerB',
                proxy: {
                    type: 'ajax',
                    autoLoad: true,
                    timeout: 0,
                    url: '../../../Backend/Adhesion/Formato.php',
                    actionMethods:
                    {
                        read: 'POST'
                    },
                    extraParams:
                    {
                        Filsc: 'ComboCustomerB',
                        IncludeAll: 'false'
                    },
                    reader: {
                        type: 'json',
                        root: 'Data',
                        totalProperty: 'totalcount'
                    }
                },
                fields: [
                    {
                        name: 'CUSTOMERID', type: 'string'
                    },
                    {
                        name: 'DESCRIPTION'
                    }
                ]
            }, cfg)]);
        }
    });

    var StCustomerB = Ext.create('MyApp.store.StCustomerB', {
        autoLoad: true,
        listeners: {
            load: function (store, records, o) {
                if (store.getCount() < 1) {
                    //debugger;
                    Ext.Msg.show({ title: '.::Mensaje del Sistema::.', msg: "No existen Categorias...Por Favor Verifique" + "<br>...Gracias!!!", buttons: Ext.Msg.OK, icon: Ext.MessageBox.WARNING });
                }
                else {
                    Ext.getCmp('cbCustomerB').setValue('-1');
                }
            },
            loadexception: function () {
                Ext.Msg.show({ title: '.::Mensaje del Sistema::.', msg: "Error al Cargar Customers...Por Favor Verifique" + "<br>...Gracias!!!", buttons: Ext.Msg.OK, icon: Ext.MessageBox.WARNING });
            }
        }
    });

    Ext.define('MyApp.store.StFormatoB', {
        extend: 'Ext.data.Store',

        constructor: function (cfg) {
            var me = this;
            cfg = cfg || {};
            me.callParent([Ext.apply({
                storeId: 'StFormatoB',
                proxy: {
                    type: 'ajax',
                    timeout: 0,
                    url: '../../../Backend/Adhesion/Formato.php',
                    actionMethods:
                    {
                        read: 'POST'
                    },
                    extraParams:
                    {
                        Filsc: 'ComboFormatoB'
                    },
                    reader: {
                        type: 'json',
                        root: 'Data',
                        totalProperty: 'totalcount'
                    }
                },
                fields: [
                    {
                        name: 'TRUSTTYPEID'
                    },
                    {
                        name: 'DESCRIPTION'
                    }
                ]
            }, cfg)]);
        }
    });

    var StFormatoB = Ext.create('MyApp.store.StFormatoB', {
        autoLoad: true,
        listeners: {
            load: function (store, records, o) {
                if (store.getCount() < 1) {
                    //debugger;
                    Ext.Msg.show({ title: '.::Mensaje del Sistema::.', msg: "No existen Formatos...Por Favor Verifique" + "<br>...Gracias!!!", buttons: Ext.Msg.OK, icon: Ext.MessageBox.WARNING });
                }
                else {
                    //Ext.getCmp('cbCategoriaB').setValue('-1');
                }
            },
            loadexception: function () {
                Ext.Msg.show({ title: '.::Mensaje del Sistema::.', msg: "Error al Cargar Formatos...Por Favor Verifique" + "<br>...Gracias!!!", buttons: Ext.Msg.OK, icon: Ext.MessageBox.WARNING });
            }
        }
    });

    Ext.define('Contratos', {
        extend: 'Ext.data.Model',
        fields: [
            {
                name: 'CEDULARUC'
            },
            {
                name: 'CONTRATOID'
            },
            {
                name: 'NOMBRE'
            },
            {
                name: 'VEHICULO'
            },
            {
                name: 'FECHA'
            },
            {
                name: 'MOTOR'
            }
            ,
            {
                name: 'ESTADO'
            },
            {
                name: 'VER'
            }
        ]
    });

    Ext.define('MyApp.store.StContratoB', {
        extend: 'Ext.data.Store',

        constructor: function (cfg) {
            var me = this;
            cfg = cfg || {};
            me.callParent([Ext.apply({
                storeId: 'StContratoB',
                proxy: {
                    type: 'ajax',
                    timeout: 0,
                    url: '../../../Backend/Adhesion/Formato.php',
                    actionMethods:
                    {
                        read: 'POST'
                    },
                    extraParams:
                    {
                        Filsc: 'GridCcontratoB'
                        //loadCall: false
                    },
                    reader: {
                        type: 'json',
                        root: 'Data',
                        totalProperty: 'totalcount'
                    }

                }

            }, cfg)]);
        }
    });

    var StContratoB = Ext.create('MyApp.store.StContratoB', {
        model: 'Contratos',
        autoLoad: false
    });

    var gridContratoB = Ext.create('Ext.ux.LiveSearchGridPanel', {
        store: StContratoB,
        columnLines: true,
        title: 'Live Search Grid',
        width: Ext.themeName === 'neptune-touch' || Ext.themeName === 'crisp' ? 700 : 670,
        defaults: {
            width: 50
        },
        viewConfig: {
            stripeRows: true
        },
        columns: [
            {
                xtype: 'rownumberer',
                width: 50,
                show: false
            },
            {
                dataIndex: 'CEDULARUC',
                text: 'Cedula/RUC',
                width: 100
                //hidden: true
            },
            {
                dataIndex: 'CONTRATOID',
                text: '# Contr.',
                width: 60
            },
            {
                dataIndex: 'NOMBRE',
                text: 'Cliente',
                width: 250
                //hidden: true
            },
            {

                dataIndex: 'VEHICULO',
                text: 'Vehiculo',
                width: 100
            },
            {
                dataIndex: 'FECHA',
                text: 'Fecha',
                //renderer: Ext.util.Format.usMoney,
                width: 100
            },
            {
                dataIndex: 'MOTOR',
                text: 'Motor',
                width: 100
            },
            {
                dataIndex: 'ESTADO',
                text: 'Estado',
                width: 100
            },
            {
                xtype: 'actioncolumn',
                width: 30,
                handler: function (grid, rowIndex, colIndex) {
                    var rec = grid.getStore().getAt(rowIndex);
                    var idContrato = rec.get('CONTRATOID');
                    winHistory.setTitle("HISTORICO CONTRATOS ID[" + idContrato + "]");
                    StEstadoB.load({
                        params: {
                            Filsc: 'HistoricoEstados',
                            ContractID: idContrato
                        }
                    });
                    winHistory.show();
                    
                },
                items: [{
                    tooltip: 'Hist.Estados',
                    iconCls: 'ticket'
                }]
            }
        ],
        listeners: {
            selectionchange: function (selModel, selected) {
                if (selected.length == 0) {
                    return;
                }
                
                //DobleClick(selected[0].data['CONTRATOID']);
            },
            itemdblclick: function (node, rec, item, index, e) {
                showContract(node, rec, item, index, e);
                //addTab(true, node, rec, item, index, e);
            }
        },
        stateful: false
    });

    ////////////// HISTORICO DE ESTADOS ///////////////

    Ext.define('Estados', {
        extend: 'Ext.data.Model',
        fields: [
            {
                name: 'FECHA'
            },
            {
                name: 'USUARIO'
            },
            {
                name: 'ESTADO'
            },
            {
                name: 'COMENTARIO'
            }
        ]
    });

    Ext.define('MyApp.store.StEstadoB', {
        extend: 'Ext.data.Store',

        constructor: function (cfg) {
            var me = this;
            cfg = cfg || {};
            me.callParent([Ext.apply({
                storeId: 'StEstadoB',
                proxy: {
                    type: 'ajax',
                    timeout: 0,
                    url: '../../../Backend/Adhesion/Formato.php',
                    actionMethods:
                    {
                        read: 'POST'
                    },
                    extraParams:
                    {
                        Filsc: 'HistoricoEstados'
                        //loadCall: false
                    },
                    reader: {
                        type: 'json',
                        root: 'Data',
                        totalProperty: 'totalcount'
                    }

                }

            }, cfg)]);
        }
    });

    var StEstadoB = Ext.create('MyApp.store.StEstadoB', {
        model: 'Estados',
        autoLoad: false
    });

    var gridEstadoB = Ext.create('Ext.grid.Panel', {
        store: StEstadoB,
        columnLines: true,
        //height: 400,
        width: 600,
        layout: {
            type: 'fit'
        },
        defaults: {
            width: 50
        },
        columns: [

            {
                dataIndex: 'FECHA',
                text: 'Fecha',
                width: 100
                //hidden: true
            },
            {
                dataIndex: 'USUARIO',
                text: 'Usuario',
                width: 100
            },
            {
                dataIndex: 'ESTADO',
                text: 'Estado',
                width: 120
                //hidden: true
            },
            {

                dataIndex: 'COMENTARIO',
                text: 'Comentario',
                width: 280
            }
        ],
        listeners: {
            selectionchange: function (selModel, selected) {
                if (selected.length == 0) {
                    return;
                }
                //DobleClick(selected[0].data['CONTRATOID']);
            }
        },
        stateful: false
    });

    //////////////FIN STORES//////////
    function DobleClick(idContrato) {
        StEstadoB.load({
            params: {
                Filsc: 'HistoricoEstados',
                ContractID: idContrato
            }
        });
        /* Ext.Ajax.request({
             url: '../../../Backend/Adhesion/Formato.php',
             method: 'POST',
             params: {
                 Filsc: 'HistoricoEstado',
                 ContratoID: idContrato
             },
             success: function (result, request) {
                 var jsonData = Ext.decode(result.responseText);
                 if (jsonData.success == true) {
                     Ext.getCmp('txConceptoID').setValue(jsonData.Data[0].ConceptID);
                     Ext.getCmp('chStatus').setValue(jsonData.Data[0].Status != '1' ? false : true);
                     Ext.getCmp('txDescripcion').setValue(jsonData.Data[0].Description);
                     Ext.getCmp('cbCategoria').setValue(jsonData.Data[0].CategoryID);
                     Ext.getCmp('cbAgency').setValue(jsonData.Data[0].UnitID);
                     Ext.getCmp('txCosto').setValue(jsonData.Data[0].Cost);
                     Ext.getCmp('txSource').setValue(jsonData.Data[0].Source);
                     Ext.getCmp('txUsuarioI').setValue(jsonData.Data[0].UsuarioCrea);
                     Ext.getCmp('txFechaI').setValue(jsonData.Data[0].CreateDate);
                     Ext.getCmp('txUsuarioM').setValue(jsonData.Data[0].UsuarioModifica);
                     Ext.getCmp('txFechaM').setValue(jsonData.Data[0].UpdateDate);
                     btEliminar.setDisabled(jsonData.Data[0].Special == '1');
                 }
 
             },
             failure: function (result, request) {
                 resultado = false;
                 if (result.failureType == 'server') {
                     Ext.Msg.alert('.::Mensaje del Sistema::.!', "Problemas con el Servidor...Consulte con el Administrador");
                 }
                 else {
                     Ext.Msg.alert('Problemas con el Servidor...', "Error no Identificado...Consulte con el Administrador");
                 }
             }
         });*/
    }


    //////////////BOTONES //////////////////
    var btNuevo = new Ext.Button({
        id: 'btNuevo',
        text: 'Nuevo',
        //hidden: (localMaintenance == '1' ? true : false),
        //hidden: (localUserType == '1' ? false : true),
        handler: function () {
            LimpiarConcepto();
            showContract(null, null, null, null, null);
        }
    })
    var btGrabar = new Ext.Button({
        id: 'btGrabar',
        text: 'Grabar',
        //hidden: (localMaintenance == '1' ? true : false),
        //hidden: (localUserType == '1' ? false : true),
        handler: function () {
            Grabar();
        }
    })
    var btEliminar = new Ext.Button({
        id: 'btEliminar',
        text: 'Eliminar',
        //hidden: (localMaintenance == '1' ? true : false),
        //hidden: (localUserType == '1' ? false : true),
        handler: function () {
            Ext.Msg.confirm('Confirmación', 'Esta seguro de Eliminar el concepto?', EliminarConcepto);
        }
    })

    var winHistory = Ext.create('Ext.window.Window', {
        id: 'winHistory',
        height: 400, 
        width: 600,
        layout : 'fit',
        title: "HISTORICO DE ESTADOS",
        closeAction: 'hide',
        //modal:true,
        //layout: 'border',
         //modal: true,
        //border: false,
         
        //bodyBorder: false,
        items: [gridEstadoB]
    });

    Ext.define('MyApp.view.ui.MyViewport', {
        extend: 'Ext.container.Viewport',

        layout: {
            type: 'fit'
        },
        initComponent: function () {
            var me = this;
            me.items = [
                {
                    xtype: 'tabpanel',
                    id: 'tabContenedor',
                    activeTab: 0,
                    items: [
                        {
                            xtype: 'panel',
                            layout: {
                                type: 'vbox',
                                align: 'stretch',
                                pack: 'start',
                            },
                            title: 'BUSQUEDA',
                            items: [
                                {
                                    xtype: 'panel',
                                    height: 140,
                                    defaults: {
                                        enableKeyEvents: true,
                                        listeners: {
                                            specialKey: function (field, el) {
                                                if (el.getKey() == Ext.EventObject.ENTER) {
                                                    Ext.getCmp('btBuscar').handler.call(Ext.getCmp('btBuscar').scope);
                                                }
                                            }
                                        }
                                    },
                                    items: [
                                        {
                                            xtype: 'fieldset',
                                            height: 130,
                                            //width: 300,                                                                            
                                            //margin: '1 1 1 1',
                                            padding: '0 3',
                                            layout: {
                                                columns: 3,
                                                type: 'table'
                                            },
                                            title: 'Busqueda de Contratos de Adhesión',
                                            items: [
                                                {
                                                    xtype: 'fieldcontainer',
                                                    height: 15,
                                                    width: 900,
                                                    layout: {
                                                        columns: 3,
                                                        rows: 2,
                                                        // padding: 4,
                                                        type: 'table'
                                                    },
                                                    items: [
                                                        {
                                                            xtype: 'combobox',
                                                            id: 'cbCustomerB',
                                                            width: 400,
                                                            //margin: '0 0 0 10',
                                                            labelAlign: 'right',
                                                            fieldLabel: 'Producto',
                                                            ////labelStyle: 'font-familia:calibri;font-size:10px;font-weight:bold;color:black',
                                                            labelWidth: 55,
                                                            displayField: 'DESCRIPTION',
                                                            valueField: 'CUSTOMERID',
                                                            queryMode: 'local',
                                                            typeAhead: true,
                                                            //editable: false,
                                                            emptyText: 'Ingrese o Selecciones producto',
                                                            forceSelection: true,
                                                            store: StCustomerB,
                                                            listeners: {
                                                                'select': selectCustomer
                                                            }
                                                        },
                                                        {
                                                            xtype: 'combobox',
                                                            id: 'cbAgencyB',
                                                            //margin: '0 0 0 10',
                                                            width: 300,
                                                            fieldLabel: 'Agencia',
                                                            labelAlign: 'right',
                                                            //labelStyle: 'font-familia:tahoma;font-size:10px;font-weight:bold;color:black',
                                                            labelWidth: 60,
                                                            displayField: 'DESCRIPTION',
                                                            valueField: 'CUSTOMERCITYID',
                                                            queryMode: 'local',
                                                            //editable: false,
                                                            typeAhead: true,
                                                            //selectOnFocus: true,
                                                            forceSelection: true,
                                                            lazyRender: true,
                                                            store: StAgencyB
                                                        },
                                                        {
                                                            xtype: 'button',
                                                            id: 'btNuevo',
                                                            text: 'Nuevo',
                                                            width: 80,
                                                            handler: function () {
                                                                showContract(null, null, null, null, null);
                                                                return;
                                                                if (Ext.getCmp('cbCustomerB').getValue() == null || Ext.getCmp('cbAgencyB').getValue() == null || Ext.getCmp('cbFormatoB').getValue() == null) {
                                                                    Ext.Msg.show({
                                                                        title: 'Aviso',
                                                                        msg: 'No se puede consultar contratos. Debe escoger un producto, una agencia y un formato!',
                                                                        buttons: Ext.Msg.OK,
                                                                        icon: Ext.MessageBox.ERROR
                                                                    });
                                                                    return;
                                                                }
                                                                loadStore();
                                                            }
                                                        },
                                                        {
                                                            xtype: 'combobox',
                                                            id: 'cbFormatoB',
                                                            width: 380,
                                                            margin: '0 0 0 20',
                                                            labelAlign: 'left',
                                                            fieldLabel: 'Formato',
                                                            labelAlign: 'right',
                                                            //labelStyle: 'font-familia:calibri;font-size:10px;font-weight:bold;color:black',
                                                            labelWidth: 55,
                                                            displayField: 'DESCRIPTION',
                                                            valueField: 'TRUSTTYPEID',
                                                            queryMode: 'local',
                                                            typeAhead: true,
                                                            //editable: false,
                                                            emptyText: 'Ingrese o Selecciones producto',
                                                            forceSelection: true,
                                                            store: StFormatoB
                                                        },
                                                        {
                                                            xtype: 'fieldcontainer',
                                                            height: 15,
                                                            width: 400,
                                                            layout: {
                                                                columns: 3,
                                                                rows: 2,
                                                                padding: 0,
                                                                type: 'table'
                                                            },
                                                            items: [
                                                                {
                                                                    xtype: 'combobox',
                                                                    id: 'cbSearchB',
                                                                    width: 120,
                                                                    forceSelection: true,
                                                                    value: 1,
                                                                    queryMode: 'local',
                                                                    displayField: 'searchby',
                                                                    valueField: 'id',

                                                                    store: [
                                                                        { id: '1', searchby: 'Cedula/RUC' },
                                                                        { id: '2', searchby: 'Chasis' },
                                                                        { id: '3', searchby: 'Nombre/Razon Soc.' }
                                                                    ]
                                                                }
                                                                ,
                                                                {
                                                                    xtype: 'textfield',
                                                                    id: 'txDescripcionB',
                                                                    fieldLabel: '',

                                                                    labelStyle: 'font-familia:tahoma;font-size:10px;font-weight:bold;color:black',
                                                                    width: 180,
                                                                    labelWidth: 0,
                                                                    listeners: {
                                                                        specialKey: function (field, el) {
                                                                            if (el.getKey() == Ext.EventObject.ENTER) {
                                                                                //Ext.getCmp('btnSubmit').fireEvent('click');
                                                                                Ext.getCmp('btBuscar').handler.call(Ext.getCmp('btBuscar').scope);
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            ]
                                                        },
                                                        {
                                                            xtype: 'button',
                                                            id: 'btBuscar',
                                                            text: 'Buscar',
                                                            width: 80,
                                                            handler: function () {
                                                                if (Ext.getCmp('cbCustomerB').getValue() == null || Ext.getCmp('cbAgencyB').getValue() == null || Ext.getCmp('cbFormatoB').getValue() == null) {
                                                                    Ext.Msg.show({
                                                                        title: 'Aviso',
                                                                        msg: 'No se puede consultar contratos. Debe escoger un producto, una agencia y un formato!',
                                                                        buttons: Ext.Msg.OK,
                                                                        icon: Ext.MessageBox.ERROR
                                                                    });
                                                                    return;
                                                                }
                                                                loadStore();
                                                            }
                                                        }
                                                    ]
                                                }
                                            ]
                                        }
                                    ]
                                },
                                {
                                    xtype: 'panel',
                                    //height: 400,
                                    //anchor: '-10, -10',
                                    flex: 2,
                                    // region: 'center',
                                    items: [
                                        {

                                            xtype: 'panel',
                                            layout: {
                                                type: 'fit'
                                            },
                                            //title: 'Resultado de la Busqueda',
                                            //collapsed: false,
                                            //region: 'west',
                                            //split: true,
                                            //width: 600,
                                            //region: 'center',
                                            items: [gridContratoB/*,
                                                {
                                                    xtype: 'panel',
                                                    width: 400,
                                                    title: 'Historico estados',
                                                    items: [gridEstadoB]
                                                }*/
                                            ]
                                        }
                                    ]
                                }

                            ]
                        },
                        {
                            xtype: 'panel',
                            id:'contractPanelID',
                            title: 'CONTRATO',
                            disabled: true,
                            items: [formatoUI
                            ]
                        }
                    ]
                }
            ];
            me.callParent(arguments);
        }
    })


    var formatoUI = Ext.create('Ext.Panel', {
        id: 'formatoPnl',
        layout: 'auto',
        //autoScroll: true,
        autoScroll: 'true',
        height: 900,
        //overflowY: 'scroll',
        tbar: [
            {
                text: 'Extorno',
                handler: function () { }
            },
            {
                text: 'Nuevo',
                handler: function () { }
            },
            {
                text: 'Grabar',
                handler: function () { }
            },
            {
                text: 'Genera Contrato',
                handler: function () { }
            },
            {
                text: 'Imprimir',
                handler: function () { }
            }],
        items: [
            {
                title: 'GENERALES CONTRATO',
                height: 90,
                //border: true,
                //margin: ' 2 2 2 2',
                //style: 'border: 1px solid;',
                anchor: '50%',
                layout: 'column',
                items: [
                    {
                        columnWidth: .10,
                        xtype: 'textfield',
                        id: 'EjecucionLbl',
                        fieldLabel: 'EJECUCION',
                        labelAlign:'right',
                        labelWidth: 70,
                        value: "OFF",
                        readOnly: true,
                        fieldStyle: 'background-color: red; background-image: none; bold:true'
                        
                    },
                    {
                        columnWidth: .15,
                        xtype: 'textfield',
                        id: 'EjecucionStatus',
                        fieldLabel: 'Estado Ejec.',
                        labelAlign: 'right',
                        labelWidth: 80,
                        readOnly: true
                    },
                    
                    {
                        //title: 'Width = 25%',
                        columnWidth: .10,
                        xtype: 'textfield',
                        id:'ContractAdhID',
                        fieldLabel: 'Contrato ID',
                        labelAlign: 'right',
                        labelWidth: 80,
                        readOnly: true
                        //html: 'Content'
                    }, {
                        //title: 'Width = 25%',
                        columnWidth: .20,
                        xtype: 'combobox',
                        id: 'ContractStatusID',
                        fieldLabel: 'Estado',
                        labelAlign: 'right',
                        labelWidth: 50
                        //html: 'Content'
                    }, {
                        //title: 'Width = 25%',
                        columnWidth: .15,
                        xtype: 'textfield',
                        id: 'FechaProceso',
                        labelAlign: 'right',
                        fieldLabel: 'F.PROCESO',
                        fieldStyle: 'color: red; background-image: none; bold:true',
                        style: 'color: red; background-image: none; bold:true',
                        labelWidth: 70,
                        value: new Date()
                        //html: 'Content'
                    }
                ]
            }, {
                //title: 'Panel 2',
                width: '100%',
                height: 130,
                
                //title: "HBoxLayout Panel",
                layout: {
                    type: 'hbox',
                    align: 'stretch',
                },
                //renderTo: document.body,
                items: [{
                    xtype: 'panel',
                    title: 'Formato',
                    width: '50%',
                    border: true,
                    layout: {
                        type: 'table',
                        columns: 2
                    },
                    style: 'border: 1px white;',
                    flex: 1,
                    items: [
                        {
                            width:'95%',
                            xtype: 'textfield',
                            id: 'txtProducto',
                            fieldLabel: 'PRODUCTO',
                            labelAlign: 'right',
                            labelWidth: 80,
                            readOnly: true
                        },
                        {
                            width: '95%',
                            xtype: 'textfield',
                            id: 'txtAgencia',
                            fieldLabel: 'AGENCIA',
                            labelAlign: 'right',
                            labelWidth: 80,
                            readOnly: true
                        },
                        {
                            width: '95%',
                            xtype: 'textfield',
                            id: 'txtFormato',
                            fieldLabel: 'FORMATO',
                            labelAlign: 'right',
                            labelWidth: 80,
                            readOnly: true},
                        {
                            width: '95%',
                            xtype: 'datefield',
                            id: 'txtFechaContrato',
                            fieldLabel: 'FECHA',
                            labelAlign: 'right',
                            labelWidth: 80}
                    ]

                }, {
                    xtype: 'panel',
                    title: 'Fiduciaria',
                    width:'50%',
                    border: true,
                    style: 'border: 1px white;',
                    flex: 1,
                    layout: {
                        type: 'table',
                        columns: 1
                    }, items: [{
                        width: '80%',
                        xtype: 'combobox',
                        id: 'cboRepresentanteLegal',
                        fieldLabel: 'REPRESENTANTE LEGAL',
                        labelAlign: 'right',
                        labelWidth: 150
                    },
                        {
                            xtype: 'panel',
                            width: '100%',
                            layout: 'column',
                            items: [{
                                width: '70%',
                                xtype: 'textfield',
                                id: 'txtNumeroOperacionSearch',
                                fieldLabel: 'NUMERO DE OPERACION',
                                labelAlign: 'right',
                                labelWidth: 150,
                            }, {
                                xtype: 'button',
                                id: 'btConsultaWS',
                                text: 'Consultar',
                                width: 80,
                                handler: function () {
                                    //consultar al WS por AJAX desde el servidor
                                }
                                }
                            ]
                        }
                        

                    ]
                }]
            }, {
                title: 'Panel 3',
                height: 400,
                layout: {
                    type: 'table',
                    columns: 1
                },
                flex: 1,
                items: [
                    gridFideicomitentes
                ]
            },
            {
                title: 'Panel 4',
                height: 300,
            }
        ]
    });

    /* Store Fideicomitentes*/
    Ext.define('Fideicomitente', {
        extend: 'Ext.data.Model',
        fields: [
            {
                name: 'APPLICANTID'
            },
            {
                name: 'APPLICANTNAME'
            },
            {
                name: 'PROFESION'
            },
            {
                name: 'TELEFONO'
            },
            {
                name: 'ESTADOCIVIL'
            },
            {
                name: 'DIRECCION'
            }
            ,
            {
                name: 'CIUDAD'
            },
            {
                name: 'EDITAR'
            },
            {
                name: 'ELIMINAR'
            }
        ]
    });

    Ext.define('MyApp.store.StFideicomitente', {
        extend: 'Ext.data.Store',

        constructor: function (cfg) {
            var me = this;
            cfg = cfg || {};
            me.callParent([Ext.apply({
                storeId: 'StFideicomitente',
                proxy: {
                    type: 'ajax',
                    timeout: 0,
                    url: '../../../Backend/Adhesion/Formato.php',
                    actionMethods:
                    {
                        read: 'POST'
                    },
                    extraParams:
                    {
                        Filsc: 'Fideicomitente'
                        //loadCall: false
                    },
                    reader: {
                        type: 'json',
                        root: 'Data',
                        totalProperty: 'totalcount'
                    }

                }

            }, cfg)]);
        }
    });

    var StFideicomitente = Ext.create('MyApp.store.StFideicomitente', {
        model: 'Contratos',
        autoLoad: false
    });
    /**/ 

    var gridFideicomitentes = Ext.create('Ext.grid.Panel', {
        store: StFideicomitente,
        columnLines: true,
        title: 'Fideicomitentes',
        width: Ext.themeName === 'neptune-touch' || Ext.themeName === 'crisp' ? 700 : 670,
        defaults: {
            width: 50
        },
        viewConfig: {
            stripeRows: true
        },
        columns: [
            {
                xtype: 'rownumberer',
                width: 50,
                show: false
            },
            {
                dataIndex: 'APPLICANTID',
                text: 'App ID',
                width: 60
                //hidden: true
            },
            {
                dataIndex: 'APPLICANTNAME',
                text: 'Fideicomitente',
                width: 300
            },
            {
                dataIndex: 'PROFESION',
                text: 'Profesión',
                width: 100
                //hidden: true
            },
            {

                dataIndex: 'TELEFONO',
                text: 'Telefono',
                width: 100
            },
            {
                dataIndex: 'ESTADOCIVIL',
                text: 'Estado Civil',
                //renderer: Ext.util.Format.usMoney,
                width: 100
            },
            {
                dataIndex: 'DIRECCION',
                text: 'Dirección',
                width: 250
            },
            {
                dataIndex: 'CIUDAD',
                text: 'Ciudad',
                width: 100
            },
            {
                xtype: 'actioncolumn',
                width: 30,
                handler: function (grid, rowIndex, colIndex) {
                    var rec = grid.getStore().getAt(rowIndex);
                    var idApplicant = rec.get('APPLICANTID');
                    /*winHistory.setTitle("HISTORICO CONTRATOS ID[" + idContrato + "]");
                    StEstadoB.load({
                        params: {
                            Filsc: 'HistoricoEstados',
                            ContractID: idContrato
                        }
                    });*/
                    //winHistory.show();

                },
                items: [{
                    tooltip: 'Hist.Estados',
                    iconCls: 'ticket'
                }]
            },
            {
                xtype: 'actioncolumn',
                width: 30,
                handler: function (grid, rowIndex, colIndex) {
                    var rec = grid.getStore().getAt(rowIndex);
                    var idApplicant= rec.get('APPLICANTID');
                    /*winHistory.setTitle("HISTORICO CONTRATOS ID[" + idContrato + "]");
                    StEstadoB.load({
                        params: {
                            Filsc: 'HistoricoEstados',
                            ContractID: idContrato
                        }
                    });
                    winHistory.show();*/

                },
                items: [{
                    tooltip: 'Hist.Estados',
                    iconCls: 'ticket'
                }]
            }
        ],
        listeners: {
            selectionchange: function (selModel, selected) {
                if (selected.length == 0) {
                    return;
                }

                //DobleClick(selected[0].data['CONTRATOID']);
            },
            itemdblclick: function (node, rec, item, index, e) {
                showContract(node, rec, item, index, e);
                //addTab(true, node, rec, item, index, e);
            }
        },
        stateful: false
    });
    var f = Ext.create('MyApp.view.ui.MyViewport', {
        renderTo: Ext.getBody()

    });

    function selectCustomer() {
        //alert(Ext.getCmp('cbCustomerB').getValue());
        StAgencyB.load({
            params: {
                CustomerID: Ext.getCmp('cbCustomerB').getValue(),
                Filsc: 'ComboAgencyB',
                IncludeAll: 'false'
            }
        });
    }
   
    function showFormato(contratoID) {
        Ext.getCmp('contractPanelID').setTitle("CONTRATO[" + contratoID + "]");

    }
    function showContract(node, rec, item, index, e) {
        Ext.getCmp('contractPanelID').enable();
        Ext.getCmp('tabContenedor').setActiveTab('contractPanelID');
        if (rec!=null)
            showFormato(record.data.CONTRATOID);
        else
            showFormato("-1");
        //var tabContract = Ext.getCmp('contractPanelID');
        //tabContract.disabled = false
        //tabContract.show();
    }
    /*  function Grabar() {
  
          ponerMayuscula(Ext.getCmp('frmConcept'));
          if (Ext.getCmp('txDescripcion').getValue() == null || Ext.getCmp('txDescripcion').getValue() == '') {
              Ext.Msg.show({ title: 'Error', msg: 'La descripción no puede ser vacio', buttons: Ext.Msg.OK, icon: Ext.MessageBox.ERROR });
              return;
          }
          if (Ext.getCmp('cbCategoria').getValue() == null || Ext.getCmp('cbCategoria').getValue() == '-1') {
              Ext.Msg.show({ title: 'Error', msg: 'Por Favor Seleccione una Categoria', buttons: Ext.Msg.OK, icon: Ext.MessageBox.ERROR });
              return;
          }
          if (Ext.getCmp('cbAgency').getValue() == null || Ext.getCmp('cbAgency').getValue() == '-1') {
              Ext.Msg.show({ title: 'Error', msg: 'Por Favor Seleccione Agency', buttons: Ext.Msg.OK, icon: Ext.MessageBox.ERROR });
              return;
          }
          Ext.getCmp('btGrabar').disable();
          Ext.Ajax.request({
              url: '../ModuloBase/ConceptosClass.php',
              method: 'POST',
              params: {
                  Opcion: 'GRABAR',
                  ConceptID: Ext.getCmp('txConceptoID').getValue(),
                  CategoryID: Ext.getCmp('cbCategoria').getValue(),
                  UnitID: Ext.getCmp('cbAgency').getValue(),
                  Description: Ext.getCmp('txDescripcion').getValue(),
                  Cost: Ext.getCmp('txCosto').getValue(),
                  Source: Ext.getCmp('txSource').getValue(),
                  Status: Ext.getCmp('chStatus').getValue()
  
              },
              success: function (result, request) {
                  Ext.getCmp('btGrabar').enable();
                  var jsonData = Ext.decode(result.responseText);
                  if (jsonData.success == true) {
                      Ext.Msg.show({ title: '.::Mensaje del Sistema', msg: 'Concepto Ingresado Correctamente', buttons: Ext.Msg.OK, icon: Ext.MessageBox.WARNING });
                      DobleClick(jsonData.LastCode);
                  }
                  else {
                      Ext.Msg.show({ title: '.::Mensaje del Sistema', msg: 'Fallo Ingresar Concepto', buttons: Ext.Msg.OK, icon: Ext.MessageBox.ERROR });
                  }
                  loadStore();
              },
              failure: function (result, request) {
                  Ext.getCmp('btGrabar').enable();
                  resultado = false;
                  if (result.failureType == 'server') {
                      Ext.Msg.alert('.::Mensaje del Sistema::.!', "Problemas con el Servidor...Consulte con el Administrador");
                  }
                  else {
                      Ext.Msg.alert('Problemas con el Servidor...', "Error no Identificado...Consulte con el Administrador");
                  }
              }
          })
      }*/
    function loadStore() {
        StContratoB.data.removeAll();
        StContratoB.load({
            params: {
                CustomerID: Ext.getCmp('cbCustomerB').getValue(),
                AgencyID: Ext.getCmp('cbAgencyB').getValue(),
                TrustFormatID: Ext.getCmp('cbFormatoB').getValue(),
                SearchBy: Ext.getCmp('cbSearchB').getValue(),
                txtSearch: Ext.getCmp('txDescripcionB').getValue(),
                Filsc: 'GridCcontratoB'
            }
        });
    }

    function addTab(closable, node, rec, item, index, e) {

        //debugger;
        var sn = node.selModel.selNode || {}; // selNode is null on initial selection
        if (rec.data.leaf && rec.data.id != sn.id) {
            var open = tabs.items.findBy(
                function (aba) {
                    return aba.title === rec.data.text;
                }
            );

            if (!open) {
                tabs.add({
                    id: rec.data.id,
                    title: rec.data.text,
                    iconCls: 'tabs',
                    closable: true,
                    bodyStyle: 'background-color: transparent;',
                    loadScripts: true,
                    layout: 'fit',
                    items: [{
                        xtype: "component",
                        autoEl: {
                            tag: "iframe",
                            src: rec.data.url
                        }
                    }]


                }).show();

            }
            else {
                tabs.setActiveTab(rec.data.id);
            }
        }
    }
    /* function LimpiarConcepto() {
         Ext.getCmp('txConceptoID').setValue('-1');
         Ext.getCmp('chStatus').setValue(true);
         Ext.getCmp('txDescripcion').setValue('');
         Ext.getCmp('cbCategoria').setValue('0');
         Ext.getCmp('cbAgency').setValue('0');
         Ext.getCmp('txCosto').setValue('');
         Ext.getCmp('txSource').setValue('');
         Ext.getCmp('txUsuarioI').setValue('');
         Ext.getCmp('txFechaI').setValue('');
         Ext.getCmp('txUsuarioM').setValue('');
         Ext.getCmp('txFechaM').setValue('');
         Ext.getCmp('txDescripcion').focus();
     }
 
     var ponerMayuscula = function (obj) {
         obj.items.each(function (item, index, length) {
             if (item instanceof Ext.form.TextField) {
                 if (item.xtype == 'textfield')
                     item.setValue(item.getValue().toUpperCase());
             }
             if (item.items)
                 ponerMayuscula(item);
         });
     };
     */
    /* function EliminarConcepto(result) {
         if (result != 'yes') return;
         Ext.Ajax.request({
             url: '../ModuloBase/ConceptosClass.php',
             method: 'POST',
             params: {
                 Opcion: 'DELETECONCEPT',
                 ConceptID: Ext.getCmp('txConceptoID').getValue()
             },
             success: function (result, request) {
                 var jsonData = Ext.decode(result.responseText);
                 if (jsonData.success == true) {
                     loadStore();
                     LimpiarConcepto();
                     //DobleClick(Ext.getCmp('txConceptoID').getValue());
                     Ext.Msg.show({
                         title: '.::Mensaje del Sistema',
                         msg: 'Concepto eliminado correctamente',
                         buttons: Ext.Msg.OK,
                         icon: Ext.MessageBox.WARNING
                     });
                 }
                 else {
                     Ext.Msg.show({
                         title: '.::Mensaje del Sistema',
                         msg: 'Fallo al eliminar Concepto',
                         buttons: Ext.Msg.OK,
                         icon: Ext.MessageBox.ERROR
                     });
                 }
             },
             failure: function (result, request) {
                 resultado = false;
                 if (result.failureType == 'server') {
                     Ext.Msg.alert('.::Mensaje del Sistema::.!', "Problemas con el Servidor...Consulte con el Administrador");
                 }
                 else {
                     Ext.Msg.alert('Problemas con el Servidor...', "Error no Identificado...Consulte con el Administrador");
                 }
             }
         });
     }*/
})