/*
 * JSMin
 * Javascript Compressor
 * http://www.crockford.com/
 * http://www.smallsharptools.com/Projects/Packer/
*/

// V:\1.1.007\js\form\QA\Ext.ux.Namirial.form.QA.js

Ext.ns('Ext.ux');Ext.ns('Ext.ux.Namirial');Ext.ns('Ext.ux.Namirial.form');Ext.ux.Namirial.form.QA=Ext.extend(Ext.Window,{constructor:function(c){try{this.selKey='';this.cfisc=dichiarazione.getCurrentCfisc();this.modificato=false;this.tb_salva_quadro=new Ext.Toolbar.Button({text:'Applica',icon:IMG_OK,scope:this,iconCls:'x-btn-text-icon',tooltip:{title:'Applica',text:'Applica le modifiche apportare al quadro'},handler:this.functionTbSalvaQuadro,scope:this});this.tb_annulla_quadro=new Ext.Toolbar.Button({text:'Chiudi',icon:IMG_CANCEL,scope:this,iconCls:'x-btn-text-icon',tooltip:{title:'Chiudi',text:'Annulla le modifiche e chiude la finestra'},handler:this.functionTbAnnullaQuadro,scope:this});this.tb_annulla=new Ext.Toolbar.Button({text:'Annulla',icon:IMG_UNDO,scope:this,iconCls:'x-btn-text-icon',disabled:true,tooltip:{title:'Annulla',text:'Annulla modifiche'},handler:this.annulla_record});this.tb_nuovo=new Ext.Toolbar.Button({text:'Nuovo',icon:IMG_NUOVO,iconCls:'x-btn-text-icon',tooltip:{title:'Nuovo',text:'Aggiunge un nuovo terreno'},handler:this.functionTbNuovo,scope:this});this.tb_nuovo.on('click',function(e){this.tb_salva.enable();this.tb_annulla.enable();this.tb_modifica.disable();this.tb_cancella.disable();},this);this.tb_salva=new Ext.Toolbar.Button({text:'Salva',icon:IMG_SALVA,disabled:true,iconCls:'x-btn-text-icon',tooltip:{title:'Salva',text:'Salva le modifiche apportare al familiare selezionato'},handler:this.functionTbSalva,scope:this});this.tb_modifica=new Ext.Toolbar.Button({text:'Modifica',iconCls:'x-btn-text-icon',disabled:true,tooltip:{title:'Modifica',text:'Modifica del terreno selezionato'},icon:IMG_EDIT,handler:this.functionTbModifica,scope:this});this.tb_modifica.on('click',function(){this.tb_salva.enable();this.tb_annulla.enable();},this);this.tb_cancella=new Ext.Toolbar.Button({text:'Cancella',iconCls:'x-btn-text-icon',disabled:true,tooltip:{title:'Cancella',text:'Cancella il familiare selezionato'},icon:IMG_CANCEL,handler:this.functionTbCancella,scope:this});this.importato=new Ext.form.NumberField({name:'IMPORTATO',value:0,hidden:true,hideLabel:true,labelSeparator:''});this.codFisc=new Ext.ux.Namirial.form.TextField({name:'CFISC',value:this.cfisc,hidden:true,labelSeparator:''});this.editor_A1=new Ext.ux.Namirial.form.NumberField({labelAlign:'top',name:'A1',width:120,fieldLabel:'Redd. dom',allowBlank:true,asString:true,decimalPrecision:2,qtip:{title:'Redd.dom',text:'(solo per reddito dom. proveniente da mod. UNICO)'}});this.editor_A2=new Ext.ux.Namirial.form.ComboBox({name:'A2',width:120,forceSelection:true,fieldLabel:'Titolo',allowBlank:false,store:Ext.ux.Namirial.Terreni.titolo,tpl:COMBO_QTIP(45),mode:'local',triggerAction:'all',selectOnFocus:true,listWidth:250,showValue:true});this.editor_A2.on('select',function(combo,rec,index){this.setRestrizioniCampi();},this);this.editor_A3=new Ext.ux.Namirial.form.NumberField({name:'A3',width:120,fieldLabel:'Redd. agrario',allowBlank:true,asString:true,decimalPrecision:0,qtip:{title:'Redd. agrario',text:'(solo per reddito agr. proveniente da mod. UNICO)'}});this.editor_A6=new Ext.ux.Namirial.form.NumberField({name:'A6',width:120,fieldLabel:'Giorni',allowDecimals:false,allowBlank:false,validateOnBlur:true,maxValue:365,autoCreate:MAX_LENGHT(3)});this.editor_A6.on('change',function(e){if(this.editor_A6.isValid()){if(this.editor_A6.getValue()==365){this.checkCBICI.setValue(true);}else{Ext.MessageBox.confirm('Info','Immobile posseduto al 31/12/'+ANNO_DICHIARAZIONE,function(button){(button=='yes')?this.checkCBICI.setValue(true):this.checkCBICI.setValue(false);this.editor_A6.focus(false,0.5);},this);}
this.editor_poss_da.setValue('');this.editor_poss_al.setValue('');}},this);this.editor_A5=new Ext.ux.Namirial.form.NumberField({name:'A5',width:120,fieldLabel:'% Possesso',allowBlank:false,minValue:0,maxValue:100,decimalPrecision:2});this.editor_A7=new Ext.ux.Namirial.form.NumberField({name:'A7',disabled:true,width:120,fieldLabel:'Canone Affitto',asString:true,blankText:'Titolo 2 e assente Canone Affitto'});this.editor_A9=new Ext.ux.Namirial.form.ComboBox({name:'A9',width:120,forceSelection:true,fieldLabel:'Casi p.',allowBlank:true,store:Ext.ux.Namirial.Terreni.casip,tpl:COMBO_WRAP,mode:'local',triggerAction:'all',selectOnFocus:true,listWidth:250,showValue:true,validateOnBlur:true,validator:controllaTerreniA9.createDelegate(this)});this.editor_A10=new Ext.ux.Namirial.form.Checkbox({name:'A10',labelSeparator:'',hideLabel:true,boxLabel:'Continuazione',hidden:true,scope:this,handler:function(checkbox,val){if(val){var lastRecord;if(Ext.isEmpty(this.listaTerreni.getSelectionModel().getSelected())){lastRecord=this.store_terreni.getAt(this.store_terreni.getCount()-1);}else{var sel=this.listaTerreni.getSelectionModel().getSelected();lastRecord=this.store_terreni.getAt(this.store_terreni.indexOf(sel)-1);}
this.loadDatiContinuazione(lastRecord);}}})
this.editor_comune=new Ext.ux.Namirial.form.TextField({name:'COMUNE',fieldLabel:'Comune',width:120,ptip:{title:'Premere F2 per visualizzare la lista dei comuni',align:'b-t'},validateOnBlur:false,validationEvent:'change',validator:controllaComune.createDelegate(this.lookupComune)});this.editor_prov=new Ext.ux.Namirial.form.TextField({name:'PROVINCIA',fieldLabel:'Prov.',width:40,readOnly:true});this.editor_indirizzo=new Ext.ux.Namirial.form.TextField({name:'INDIRIZZO',fieldLabel:'Indirizzo',width:140});this.editor_poss_da=new Ext.ux.Namirial.form.DateField({name:'POSS_DAL',fieldLabel:'Possesso dal',showToday:false,openDate:MIN_DATA_DICHIARAZIONE});this.editor_poss_da.on('change',function(){this.checkCBICI.setValue(false);var data1=(!Ext.isEmpty(this.editor_poss_da.getValue()))?this.editor_poss_da.getValue():MIN_DATA_DICHIARAZIONE;var data2=(!Ext.isEmpty(this.editor_poss_al.getValue()))?this.editor_poss_al.getValue():MAX_DATA_DICHIARAZIONE;var giorni=giorni_differenza(data1,data2)
if(giorni<0){this.editor_poss_da.markInvalid();this.editor_poss_al.markInvalid();}else{if(giorni==365)this.checkCBICI.setValue(true);else this.checkCBICI.setValue(false);this.editor_A6.setValue(giorni);}},this);this.editor_poss_al=new Ext.ux.Namirial.form.DateField({name:'POSS_AL',fieldLabel:'Possesso al',showToday:false,openDate:MIN_DATA_DICHIARAZIONE});this.editor_poss_al.on('change',function(){this.checkCBICI.setValue(false);var data1=(!Ext.isEmpty(this.editor_poss_da.getValue()))?this.editor_poss_da.getValue():MIN_DATA_DICHIARAZIONE;var data2=(!Ext.isEmpty(this.editor_poss_al.getValue()))?this.editor_poss_al.getValue():MAX_DATA_DICHIARAZIONE;var giorni=giorni_differenza(data1,data2);if(giorni<0){this.editor_poss_da.markInvalid();this.editor_poss_al.markInvalid();}else{if(giorni==365)this.checkCBICI.setValue(true);else this.checkCBICI.setValue(false);this.editor_A6.setValue(giorni);}},this);this.lookupComune=new Ext.ux.Namirial.form.Lookup({layout:'form',name:'lookupComuneEstero',width:300,cod:this.editor_comune,idx_cod:2,output:[{descr:this.editor_prov,idx:6}],tab:'Comuni',selectFilter:filtraComuniEsistenti,obj_tab:obj_comuni,columnToSearchFor:'COMUNE',updateDescriptionOnLoad:false});this.panelInfoTerr=new Ext.Panel({name:'panelInfoTerr',height:105,frame:true,bodyStyle:'background:transparent;',layout:'form',labelAlign:'top',items:[{layout:'column',items:[{width:130,layout:'form',items:[this.editor_comune]},{width:50,layout:'form',items:[this.editor_prov]},{width:150,layout:'form',items:[this.editor_indirizzo]}]},{layout:'column',items:[{width:110,layout:'form',items:[this.editor_poss_da]},{width:110,layout:'form',items:[this.editor_poss_al]}]}]});this.checkCBICI=new Ext.form.Checkbox({name:'ICI',labelSeparator:'',hideLabel:true,boxLabel:'Posseduto al 31/12/'+ANNO_DICHIARAZIONE});this.ID=new Ext.form.NumberField({name:'ID',labelSeparator:'',hideLabel:true,hidden:true})
this.formPanel=new Ext.form.FormPanel({name:'formPanel',border:false,frame:true,disabled:true,maskDisabled:false,height:360,items:[{layout:'column',border:false,bodyStyle:'background:transparent;',items:[{border:false,layout:'form',bodyStyle:'background:transparent;',columnWidth:1,items:[this.ID,this.editor_A1,this.editor_A2,this.editor_A3,this.editor_A6,this.editor_A5,this.editor_A7,this.editor_A9,this.editor_A10,this.checkCBICI,this.panelInfoTerr,this.codFisc,this.importato]}]}]});this.store_terreni=new Ext.ux.Namirial.data.GearsStore({gearsConn:conn,dbname:GDATABASE,selectFrom:TERRENI_TAB,selectFilter:'CFISC = '+"'"+this.cfisc+"' ORDER BY ID ASC",name:'hy_store',fields:structStore.getFields(TERRENI_TAB)});this.rowSelAction=function(rec){this.formPanel.getForm().loadRecord(rec);this.selKey=rec.get('keyId');this.formPanel.disable();this.tb_cancella.enable();this.tb_modifica.enable();this.tb_salva.disable();if(this.store_terreni.indexOf(rec)>0){this.abilita_continuazione(true);}else{this.abilita_continuazione(false);}
this.tb_salva_quadro.enable();this.tb_annulla.disable();}
this.listaTerreni=new Ext.grid.GridPanel({name:'listaTerreni',width:390,height:298,stripeRows:true,store:this.store_terreni,border:false,columns:header_terreni,sm:new Ext.grid.RowSelectionModel({singleSelect:true,listeners:{rowselect:{fn:function(sm,row,rec){this.rowSelAction(rec);},scope:this}}})});Ext.ux.Namirial.form.QA.superclass.constructor.call(this,{id:WINDOW_TERRENI,draggable:true,title:'Quadro A - Redditi dei terreni',width:850,resizable:false,constrain:true,height:460,items:[{layout:'column',border:false,bodyStyle:'background:transparent;',width:850,items:[{width:400,style:'padding: 10px',items:[this.listaTerreni]},{width:420,border:false,style:'padding-top: 10px',items:[this.formPanel]}]}],tbar:[this.tb_nuovo,this.tb_salva,this.tb_modifica,this.tb_cancella,this.tb_annulla],bbar:['->',this.tb_salva_quadro,this.tb_annulla_quadro]});this.on('beforeshow',function(e){chiudiFinestre();});this.on('show',function(e){hideLoading();this.store_terreni.load();conn.openTransaction();(function(){this.listaTerreni.getSelectionModel().selectFirstRow();}).defer(110,this);},this)
this.on('close',function(){conn.rollbackTransaction();},this)}catch(e){getToastMsg(MSG_TEXT,'QA');log.error("Ext.ux.Namirial.form.QA -> ",e);}},functionTbSalvaQuadro:function(){var checkTerr=controllaTerreni.call(this);if(checkTerr){conn.commitTransaction();addActionTerreno();getToastMsg(MSG_SAVE_OK);chiudiFinestre();}},functionTbAnnullaQuadro:function(){if(this.formPanel.getForm().isDirty()||this.modificato){Ext.MessageBox.confirm('Attenzione','Con la chiusura della finestra si perderanno i dati non salvati, continuare?',function(button){if(button=='yes'){this.close();}},this);}else{this.close();}},functionTbSalva:function(){chiudiInfo();if(this.formPanel.getForm().isValid()){this.setID();this.tb_salva.disable();this.tb_annulla.disable();this.tb_modifica.disable();this.tb_cancella.disable();var sql;if(this.listaTerreni.getSelectionModel().getSelections().length==0){sql=generateQueryFromForm(TERRENI_TAB,this.formPanel,'INSERT');}
else{var whereCl="keyId="+"'"+this.selKey+"'";sql=generateQueryFromForm(TERRENI_TAB,this.formPanel,'UPDATE',whereCl);}
conn.exec(sql);this.store_terreni.reload();this.formPanel.disable();this.modificato=false;this.tb_salva_quadro.enable();}else{getToastMsg(MSG_INVALID_FIELD);}},functionTbNuovo:function(){this.tb_salva_quadro.disable();this.formPanel.enable();this.modificato=true;var nRec=this.store_terreni.getCount();if(nRec>0){this.editor_A10.setVisible(true);}
this.listaTerreni.getSelectionModel().clearSelections();clearAllFieldsInForm(this.formPanel,['CFISC']);this.editor_A7.disable();this.editor_A1.focus(false,100);},functionTbCancella:function(){Ext.MessageBox.confirm('Cancella Terreno','Procedere con la cancellazione del terreno?',function(button){if(button=='yes'){var sel=this.listaTerreni.getSelectionModel().getSelected();if(!Ext.isEmpty(sel)){record=this.store_terreni.getAt(this.store_terreni.indexOf(sel)+1);if(!Ext.isEmpty(record)&&record.get('A10')=='X'){conn.exec(getQuery(UPD_CONT_TERRENO,['',record.get('keyId')]));}}
conn.exec(getQuery(DEL_TERRENO,[this.selKey]));this.store_terreni.reload();clearAllFieldsInForm(this.formPanel,['CFISC']);}
this.tb_modifica.disable();this.tb_cancella.disable();this.listaTerreni.getSelectionModel().selectFirstRow();},this);},functionTbModifica:function(){this.tb_salva_quadro.disable();this.formPanel.enable();this.modificato=true;this.setRestrizioniCampi();},annulla_record:function(){var rec=this.listaTerreni.getSelections()[0];if(rec){this.formPanel.getForm().loadRecord(rec);this.selKey=rec.get('keyId');this.tb_cancella.enable();this.tb_modifica.enable();}
this.formPanel.disable();this.tb_salva.disable();this.tb_annulla.disable();this.tb_salva_quadro.enable();},formShow:function(){if(Ext.isEmpty(Ext.WindowMgr.get(WINDOW_TERRENI))){this.show();}},abilita_continuazione:function(val){this.editor_A10.setVisible(val);},loadDatiContinuazione:function(record){if(!this.editor_A6.disabled){this.editor_A6.setValue(365-record.get('A6'));this.editor_comune.setValue(record.get('COMUNE'));this.editor_prov.setValue(record.get('PROVINCIA'));this.editor_indirizzo.setValue(record.get('INDIRIZZO'));}},setID:function(){if(this.ID.getValue()==''){var nRec=this.store_terreni.getCount();if(nRec>0){var lastRec=this.store_terreni.getAt(nRec-1);this.ID.setValue(parseInt(lastRec.get('ID'))+1);}else{this.ID.setValue(1);}}},setRestrizioniCampi:function(){switch(this.editor_A2.getValue()){case'1':case'3':case'4':case'7':this.editor_A7.disable()
this.editor_A9.enable()
break;case'2':this.editor_A7.enable()
this.editor_A9.enable()
this.editor_A7.allowBlank=false;this.editor_A7.validate();break;case'5':case'6':this.editor_A7.disable()
this.editor_A9.disable()
break;}
this.editor_A9.validate();}})

