<commit_before><viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009"
				   xmlns:s="library://ns.adobe.com/flex/spark"
				   xmlns:mx="library://ns.adobe.com/flex/mx"
				   xmlns:viewer="com.esri.viewer.*"				   
				   xmlns:components="com.esri.viewer.components.*"
				   xmlns:esri="http://www.esri.com/2008/ags"  
				   initialize="basewidget1_initializeHandler(event)" 
				   creationComplete="basewidget1_creationCompleteHandler(event)"
				   
				   
				   >	
	
	<viewer:states>
		<s:State name="bkmInit"/>
		<s:State name="bkmConsulta"/>
		<s:State name="bkmConsultaDetalle"/>
		
	</viewer:states>
	<viewer:transitions>
		<s:Transition autoReverse="true" toState="*">
			<s:Fade targets="{[bkmInit,bkmConsulta,bkmConsultaDetalle]}"/>
		</s:Transition>
	</viewer:transitions>
	
	<fx:Declarations>
		<s:GlowFilter id="glowFilter"
					  alpha="1"
					  color="{getStyle('focusColor')}"
					  inner="true"
					  strength="2"/>
		
		<s:DateTimeFormatter id="dateFormatter" dateTimePattern="dd/MM/yyyy  HH:MM:ss"/>
		
		<esri:SimpleMarkerSymbol id="smsIdentify"
								 alpha="0.5"
								 color="0xFF9900"
								 size="20"
								 style="circle"/>
		
		<mx:WipeUp id="myWU" duration="300"/>
		<mx:WipeDown id="myWD" duration="500"/>
		<mx:WipeRight id="myWR" duration="850"/>
		<esri:GraphicsLayer id="graphicsLayer" />
		
		<esri:Map id="map">
			<esri:infoWindowContent>
				<s:TextArea id="myTextArea"
							width="250" height="75"/>
			</esri:infoWindowContent>
			
			<esri:FeatureLayer 
				id="lecturasLayer"
				outFields="*"
				mode="onDemand"	
				graphicAdd="verElemento(event)"
				url="http://gisred.chilquinta/arcgis/rest/services/Varios/Ingreso_Lectores/FeatureServer/0"
				>
			</esri:FeatureLayer>
			
		</esri:Map>
		
		
		<esri:SimpleFillSymbol id="mouseOverSymbol" alpha="0.5">
			<esri:SimpleLineSymbol width="0" color="0xFF0000"/>
		</esri:SimpleFillSymbol>
		<esri:SimpleFillSymbol id="defaultsym" alpha="0.2">
			<esri:SimpleLineSymbol width="1" color="0xEEEEEE"/>
		</esri:SimpleFillSymbol>
		
	</fx:Declarations>
	
	<fx:Script>
		<![CDATA[
			import com.as3xls.xls.ExcelFile;
			import com.as3xls.xls.Sheet;
			import com.esri.ags.FeatureSet;
			import com.esri.ags.Graphic;
			import com.esri.ags.events.GraphicEvent;
			import com.esri.ags.layers.FeatureLayer;
			import com.esri.ags.layers.GraphicsLayer;
			import com.esri.ags.portal.PopUpRenderer;
			import com.esri.ags.tasks.QueryTask;
			import com.esri.ags.tasks.supportClasses.Query;
			
			import mx.collections.ArrayCollection;
			import mx.collections.ArrayList;
			import mx.controls.Alert;
			import mx.events.FlexEvent;
			import mx.events.ListEvent;
			import mx.events.ToolTipEvent;
			import mx.messaging.messages.ErrorMessage;
			import mx.rpc.AsyncResponder;
			import mx.utils.StringUtil;
			
			import spark.events.IndexChangeEvent;
			
			import comun.Planificacion.User;
			import comun.url.URL;
			
			import widgets.AdminLectores.utilidad.urls;
			
			private var popUpRenderer:PopUpRenderer = new PopUpRenderer();
			
			
			[Bindable] public var idPosteNuevo:String;
			[Bindable] public var idDirNueva:String;
			[Bindable] public var rotNuevo:String;
			[Bindable] public var dirNueva:String;
			
			[Bindable] public var coleccionLecturas:ArrayCollection = new ArrayCollection;
			[Bindable] public var coleccionDetalle:ArrayCollection = new ArrayCollection;
			
			[Bindable] public var coleccionEstados:ArrayList =  new ArrayList;
			[Bindable] public var coleccionEstadoFinal:ArrayList =  new ArrayList;
			[Bindable] public var coleccionDenuncia:ArrayList =  new ArrayList;
			[Bindable] public var coleccionCausaDetalle:ArrayList =  new ArrayList;
			[Bindable] public var coleccionCausa:ArrayList =  new ArrayList;
			
			[Bindable] public var lecturaSelected:int;
			[Bindable] public var inspectorSelected:String;
			
			[Bindable] public var fs:FeatureSet = new FeatureSet;
			[Bindable] public var rotu:int;
			[Bindable] public var rotuloEncontrado:String;
			[Bindable] public var direccionCompleta:String;
			[Bindable] public var nisBuscado:String;
			[Bindable] public var anexo1:String;
			[Bindable] public var anexo2:String;
			[Bindable] public var tipoEdificacion:String;
			public var myGraphicsLayer:GraphicsLayer =  new GraphicsLayer;
			
			private var ColeccionUser:ArrayCollection = new ArrayCollection;
			private var text1:String;
			[Bindable] private var anchoObj:int =200;
			//public var lecturasLayer:ArcGISDynamicMapServiceLayer= new ArcGISDynamicMapServiceLayer(widgets.AdminLectores.utilidad.urls.URL_LECTURAS_DYN);
			
			import org.example.components.PanelToolTip;
			protected var ptt:PanelToolTip = new PanelToolTip();
			protected function basewidget1_initializeHandler(event:FlexEvent):void{	
				ConsultarAcceso();
				
				//llenar combos
				fillCombos();
				//DataLecturas.selectedIndex = 1;
			}
			
			public function fillCombos():void{
				coleccionEstados.removeAll();
				coleccionEstados.addItem("SI");
				coleccionEstados.addItem("NO");
				
				coleccionEstadoFinal.addItem("");
				coleccionEstadoFinal.addItem("PAGADO");
				coleccionEstadoFinal.addItem("NO APLICA");
				
				coleccionDenuncia.addItem("EN GESTION");
				coleccionDenuncia.addItem("VALIDADO");
				
				coleccionCausa.addItem("Cliente fuera de ruta");
				coleccionCausa.addItem("Medidor no existe");
				coleccionCausa.addItem("Medidor cambiado");
				coleccionCausa.addItem("Posible adulteración");
				coleccionCausa.addItem("No Aplica");
				coleccionCausaDetalle.removeAll();
			}
			
			public function openLayer():void{
				lecturasLayer.name = "Ingreso Lectores";
				map.addLayer(lecturasLayer);				
				lecturasLayer.visible = true;	
			}
			
			protected function verElemento(event:GraphicEvent):void
			{
				var graphic:Graphic = event.graphic;				
				graphic.toolTip = " ";
				graphic.addEventListener(ToolTipEvent.TOOL_TIP_CREATE, stateToolTipCreateHandler, false, 0, true);		
			}
			
			//Crea Tooltip al objeto grafico			
			protected function stateToolTipCreateHandler(event:ToolTipEvent):void
			{
				var graphic:Graphic = event.currentTarget as Graphic;
				ptt.title = "ID: " + graphic.attributes.OBJECTID;
				ptt.Poste = graphic.attributes.POSTE;
				ptt.Medidor = graphic.attributes.nro_medidor;
				ptt.Revision = graphic.attributes.estado_revision ;
				ptt.Final = graphic.attributes.estado_final ;
				
				
				/*ptt.TipoConexion = graphic.attributes.TIPO_CONEXION;
				ptt.Potencia = graphic.attributes.POTENCIA;
				ptt.Tipo = graphic.attributes.TIPO;
				ptt.Propiedad = graphic.attributes.PROPIEDAD;
				ptt.Medido = graphic.attributes.MEDIDO;
				*/
				event.toolTip = ptt;
			}
			
			
			protected function ConsultarAcceso():void{
				
				var queryTaskUserSelected:QueryTask = new QueryTask();
				queryTaskUserSelected.url = comun.url.URL.URL_ACCESO;
				queryTaskUserSelected.useAMF = false;
				var queryEquipoSelected:Query = new Query();
				queryEquipoSelected.outFields = ["*"];
				queryEquipoSelected.returnGeometry = true;     
				queryEquipoSelected.orderByFields = ["usuario"];
				queryEquipoSelected.where = "usuario = '" + User.Usuario + "' AND MODULO ='INGRESO_CLIENTES' AND widget='ADMINDENUNCIAS'" ;
				queryEquipoSelected.spatialRelationship ="esriSpatialRelIntersects";
				queryEquipoSelected.outSpatialReference = map.spatialReference;
				queryTaskUserSelected.execute(queryEquipoSelected, new AsyncResponder(onResult, onFault));
				
				function onResult(featureSet:FeatureSet, token:Object = null):void{
					
					if(featureSet.features.length == 0 ){
						//Alert.show("No tiene permisos para accesder a este modulo\n Comuniquese con el administrador de GISRED")
						//currentState = "bkmInit"; 
						currentState ="bkmInit";
						lblwarning.visible = true;
						lblwarning2.visible = true;
						pbGisred.visible = true;
						wTemplate.height = 500;
						wTemplate.width = 870;
					}
						//si hay, cuales son los permisos
					else{   
						
						ColeccionUser.addAll(new ArrayCollection(featureSet.attributes));
						
						for(var i:int=0;i<=ColeccionUser.length-1;i++){	
							
							if(ColeccionUser[i].select_ == 'FALSE'){
								btnExportarDatosClientes.enabled = false;
							}else{
								btnExportarDatosClientes.enabled = true;
							}
							
							if( ColeccionUser[i].update_ == 'FALSE'){
								//DDLEstadoCliente.enabled = false;
								//btnCambiarEstadoCliente.enabled = false;
								
								
							}else{
								//DDLEstadoCliente.enabled = true;
								//btnCambiarEstadoCliente.enabled = true;
								
							}
							
						}
						
						
						cargarLista();
						txtFilterClientes.addEventListener(Event.CHANGE,filterGridClientes);
						
						currentState ="bkmConsulta";
						wTemplate.height = 500;
						wTemplate.width = 870;
						
					}
				}
				
				
				
				function onFault(info:Object, token:Object = null):void
				{   
					Alert.show("No tiene permisos para accesder a este modulo\n Comuniquese con el administrador");
					currentState ="bkmInit";
					lblwarning.visible = true;
					lblwarning2.visible = true;
					pbGisred.visible = true;
					wTemplate.width = 870;
					wTemplate.height = 500;
				}
			}
			
			public function cargarLista():void {
				// TODO Auto-generated method stub
				coleccionLecturas.removeAll();
				// TODO Auto-generated method stub
				var queryTask:QueryTask = new QueryTask(widgets.AdminLectores.utilidad.urls.URL_LECTURA_INSPECCION);
				var query:Query = new Query();
				query.where = "1=1"; 
				query.outFields = ['*'];
				query.orderByFields = ['created_date'];
				query.returnGeometry = true;
				queryTask.execute(query, new AsyncResponder(onResultQuery, onFaultQuery));
				
				
				
				function onResultQuery(featureSet:FeatureSet, token:Object = null):void{
					
					for(var k:int=0;k<featureSet.features.length;k++){
						
						
						var recordGraphic:Graphic = featureSet.features[k];
						coleccionLecturas.addItem({OBJECTID:recordGraphic.attributes["OBJECTID"], 
							nro_medidor:recordGraphic.attributes["nro_medidor"],
							estado:recordGraphic.attributes["estado"],
							tipo_edificacion:recordGraphic.attributes["tipo_edificacion"],
							poste:recordGraphic.attributes["poste"],
							direccion:recordGraphic.attributes["direccion"],
							estado_revision:recordGraphic.attributes["estado_revision"],
							lector:recordGraphic.attributes["lector"],
							lectura_actual: recordGraphic.attributes["lectura_actual"],
							estado_final:recordGraphic.attributes["estado_final"],
							inspeccion:recordGraphic.attributes["inspeccion"],
							ot:recordGraphic.attributes["ot"],
							inspector:recordGraphic.attributes["inspector"],
							causal:recordGraphic.attributes["causal"],
							estado_denuncio:recordGraphic.attributes["estado_denuncio"],
							created_user:recordGraphic.attributes["created_user"],
							created_date:dateFormatter.format(new Date(recordGraphic.attributes["created_date"])),
							gra:recordGraphic});			
					}
					
				}
				function onFaultQuery(info:Object, token:Object = null):void
				{   
					Alert.show("Error en consulta","Carga de Lecturas");
				}
			}
			
			//Filtra Listado de Solicitudes ingresadas en Textbox
			protected function filterGridClientes(event:Event):void
			{
				/* To get this function to work, only edit variables filterText, columnArray, gridDataProvider, and dataGridName. 
				Everything else is dynamic. Do not edit variable names. */
				var filterText:String = StringUtil.trim(txtFilterClientes.text.toLowerCase()); //Trimmed text String to filter by
				var columnArray:Array = ['OBJECTID','nro_medidor','estado','tipo_edificacion','poste','direccion','estado_revision',
					'lectura_actual','created_date','lector','estado_final','inspeccion','ot','inspector','causal', 'estado_denuncio']; //Datagrid column names to filter on
				var gridDataProvider:ArrayCollection = this.coleccionLecturas as ArrayCollection; //Name of datagrid's dataprovider. In this case e.g. databases
				var dataGridName:String = 'DataLecturas'; //Name of the datagrid you are filtering by
				
				//Do not edit code past this point
				var filteredData:Array = [];
				var added:Boolean=false;
				var i:int;
				var j:int;
				
				// Loop Through Grid
				for(i=0; i < gridDataProvider.length; i++){    
					added = false;
					
					//Loop through grid column
					for(j=0; j<columnArray.length; j++){            
						if(gridDataProvider[i][columnArray[j]]!=null){
							
							//Grab datagrid cell contents, trim it, and convert to lowercase for comparison.
							var filterString:String = gridDataProvider[i][columnArray[j]].toString().toLowerCase();
							
							//Compare the datagrid string(filterString) to the user typed string(filterText).  
							if(!added){      
								//If the datagrid string matches the users string, put it into the array.
								if(filterString.indexOf(filterText) != -1){
									filteredData.push(gridDataProvider[i]);
									added = true;
								} 
							}else{
								//Do nothing, break out.
								break;
							}
						}    
					}
				}
				
				//Set datagrid dataprovider
				if(filterText.length == 0){
					this[dataGridName].dataProvider = gridDataProvider; //Display the original unfiltered data
				}else{
					this[dataGridName].dataProvider = filteredData; //Pusht he filtered data into the datagrid
				}
			}	
			
			protected function basewidget1_creationCompleteHandler(event:FlexEvent):void
			{
				// TODO Auto-generated method stub
				DataLecturas.dataProvider = coleccionLecturas;
			}
			
			public var myGraphic:Graphic;
			
			public var acPolyline:ArrayCollection = new ArrayCollection;
			
			public function DataClientesNuevos_itemClickHandler(event:ListEvent):void{
				ddlEstadoInspeccion.selectedIndex = -1;
				ddlEstadoDenuncio.selectedIndex = -1;
				ddlEstadoFinal.selectedIndex = -1;
				
				currentState ="bkmConsultaDetalle";
				wTemplate.height = 500;
				wTemplate.width = 870;
				
				//Asignar valores a los campos de la vista 2 - visuales
				var inspec:String = (DataLecturas.selectedItem['inspector']==null) ? "" : DataLecturas.selectedItem['inspector'];
				lblCurrentLecturaSelected.text = "OBJECTID: " + DataLecturas.selectedItem['OBJECTID'] 
				lblCurrentLecturaSelected2.text = "MEDIDOR: " + DataLecturas.selectedItem['nro_medidor'] 
				lblCurrentLecturaSelected3.text= "INSPECTOR: " + inspec;
				lblCurrentLecturaSelected4.text= "ESTADO: " + DataLecturas.selectedItem['estado']; 
				lecturaSelected = DataLecturas.selectedItem['OBJECTID'];
				inspectorSelected = DataLecturas.selectedItem['inspector'];
				
				//Asignar valores a los campos de la vista 2 - modificables
				if(DataLecturas.selectedItem['inspeccion'] !== null){
					( DataLecturas.selectedItem['inspeccion']=='SI')? ddlEstadoInspeccion.selectedIndex = 0 : ddlEstadoInspeccion.selectedIndex = 1;
				}
				txtOT.text = DataLecturas.selectedItem['ot'];
				
				if(DataLecturas.selectedItem['estado_denuncio'] !== null){
					( DataLecturas.selectedItem['estado_denuncio']=='EN GESTION')? ddlEstadoDenuncio.selectedIndex = 0 : ddlEstadoDenuncio.selectedIndex = 1;
				}
				
				if(DataLecturas.selectedItem['estado_final'] !== null){
					 (DataLecturas.selectedItem['estado_final']=='PAGADO')? ddlEstadoFinal.selectedIndex = 1 : ddlEstadoFinal.selectedIndex = 2;
				}else{
					ddlEstadoFinal.selectedIndex = 0;
				}
				
				
				
				buscarDetalle(lecturaSelected)
			}
			
			public function buscarDetalle(oid):void{
				coleccionDetalle.removeAll();
				// TODO Auto-generated method stub
				var queryTask:QueryTask = new QueryTask(widgets.AdminLectores.utilidad.urls.URL_LECTURAS_DETALLE);
				var query:Query = new Query();
				query.where = "OID_LECTURA="+oid; 
				query.outFields = ['*'];
				query.orderByFields = ['created_date'];
				query.returnGeometry = true;
				queryTask.execute(query, new AsyncResponder(onResultQuery, onFaultQuery));
				
				function onResultQuery(featureSet:FeatureSet, token:Object = null):void{
					
					for(var k:int=0;k<featureSet.features.length;k++){
						
						
						var recordGraphic:Graphic = featureSet.features[k];
						coleccionDetalle.addItem({
							OBJECTID:recordGraphic.attributes["OBJECTID"], 
							OID_LECTURA:recordGraphic.attributes["OID_LECTURA"],
							CAUSAL:recordGraphic.attributes["CAUSAL"],
							DETALLE_CAUSAL:recordGraphic.attributes["DETALLE_CAUSAL"],
							OBS:recordGraphic.attributes["OBS"],
							ESTADO_DENUNCIO:recordGraphic.attributes["ESTADO_DENUNCIO"],
							INSPECTOR:recordGraphic.attributes["INSPECTOR"],
							OT:recordGraphic.attributes["OT"],
							ESTADO_FINAL: recordGraphic.attributes["ESTADO_FINAL"],
							ESTADO_REVISION:recordGraphic.attributes["ESTADO_REVISION"],
							created_date:dateFormatter.format(new Date(recordGraphic.attributes["created_date"])),
							gra:recordGraphic});			
					}
					
					DataDetalle.dataProvider = coleccionDetalle;
					
				}
				function onFaultQuery(info:Object, token:Object = null):void
				{   
					Alert.show("Error en consulta","Carga de Lecturas Detalle");
				}
			}
			
			private var ef:ExcelFile;
			private var ba:ByteArray;
			private var fr:FileReference;
			private var frSave:FileReference;
			protected function btnExportarDatosClientes_clickHandler(event:MouseEvent):void
			{
				
				// TODO Auto-generated method stub
				switch(event.currentTarget.id)
				{
					case "btnExportarDatosClientes":
					{
						
						var s:Sheet = new Sheet();
						s.resize(coleccionLecturas.length+1,12);
						s.setCell(0,0,"ID");
						s.setCell(0,1,"NUMERO MEDIDOR");
						s.setCell(0,2,"ESTADO");
						s.setCell(0,3,"TIPO_EDIFICACION");
						s.setCell(0,4,"POSTE");
						s.setCell(0,5,"DIRECCION");
						s.setCell(0,6,"ESTADO_REVISION");
						s.setCell(0,7,"LECTOR");
						s.setCell(0,8,"CREADO_POR");
						s.setCell(0,9,"FECHA_CREACION");
						s.setCell(0,10,"ESTADO_FINAL");
						s.setCell(0,11,"LECTURA_ACTUAL");
						for(var j:int=0;j<coleccionLecturas.length;j++)
						{
							s.setCell(j+1,0,coleccionLecturas[j].OBJECTID);										
							s.setCell(j+1,1,coleccionLecturas[j].nro_medidor);
							s.setCell(j+1,2,coleccionLecturas[j].estado);
							s.setCell(j+1,3,coleccionLecturas[j].tipo_edificacion);
							s.setCell(j+1,4,coleccionLecturas[j].poste);
							s.setCell(j+1,5,coleccionLecturas[j].direccion);
							s.setCell(j+1,6,coleccionLecturas[j].estado_revision);
							s.setCell(j+1,7,coleccionLecturas[j].lector);
							s.setCell(j+1,8,coleccionLecturas[j].created_user);
							s.setCell(j+1,9,coleccionLecturas[j].created_date);
							s.setCell(j+1,10,coleccionLecturas[j].estado_final);
							s.setCell(j+1,11,coleccionLecturas[j].lectura_actual);
						}
						
						try {
							var fileTosave:ExcelFile = new ExcelFile();
							fileTosave.sheets.addItem(s);
							
							var fileBytes:ByteArray = fileTosave.saveToByteArray();
							frSave = new FileReference();
							frSave.save(fileBytes,"ExportacionAdmLectores.xls");
							frSave.addEventListener(Event.COMPLETE,grabadoListo);
							
						}catch(e:ErrorMessage){
							Alert.show("Error al guardar archivo" + e);
							
						}
						
						break;
					}
						
						
					default:
					{
						//Alert.show("Ningun archivo ha sido generado");
						break;
					}
				}			
			}
			
			public function grabadoListo(event:Event):void{
				Alert.show("Listo");
			}
			
			protected function bkmInit_initializeHandler(event:FlexEvent):void
			{
				// TODO Auto-generated method stub
				var verImageGISRED:Image = new Image;
				
				//imagen configuraciones
				verImageGISRED.scaleContent = true;
				verImageGISRED.maintainAspectRatio =false;
				verImageGISRED.percentWidth = 850;
				verImageGISRED.percentHeight = 500;
				verImageGISRED.source =  "assets/images/128x128.png";
				pbGisred.addChild(verImageGISRED);
				
			}
			
			private function dateChooser_init(dt:DateField):void {
				dt.text = "Desde";
				dt.dayNames=['Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab'];
				dt.monthNames=[	'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio',
					'Julio', 'Agosto', 'Septiembre', 'Octubre',
					'Noviembre', 'Diciembre'];
				dt.firstDayOfWeek = 1;
				dt.formatString = "DD/MM/YYYY";
			}
			
			private function dateChooser2_init(dt:DateField):void {
				dt.text = "Hasta";
				dt.dayNames=['Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab'];
				dt.monthNames=[	'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio',
					'Julio', 'Agosto', 'Septiembre', 'Octubre',
					'Noviembre', 'Diciembre'];
				dt.firstDayOfWeek = 1;
				dt.formatString = "DD/MM/YYYY";
			}
			
			protected function image1_clickHandler(event:MouseEvent):void
			{
				// TODO Auto-generated method stub
				coleccionLecturas.removeAll();
				cargarLista();
				DataLecturas.dataProvider = coleccionLecturas;
			}
			
			protected function wTemplate_closedHandler(event:Event):void
			{
				// TODO Auto-generated method stub
				// TODO Auto-generated method stub
				map.removeLayer(lecturasLayer);
			}
			
			protected function wTemplate_openHandler(event:Event):void
			{
				// TODO Auto-generated method stub
				openLayer();
			}
			
			protected function btnRangoFecha_clickHandler(event:MouseEvent):void
			{
				// TODO Auto-generated method stub
				// TODO Auto-generated method stub
				cargarListaRango();
			}
			
			public function cargarListaRango():void{
				coleccionLecturas.removeAll();
				// TODO Auto-generated method stub
				var queryTask:QueryTask = new QueryTask(widgets.AdminLectores.utilidad.urls.URL_LECTURA_INSPECCION);
				var query:Query = new Query();
				query.where = "created_date >=" + "'" +  dateDesde.text + "'" + "and created_date <=" + "'" + dateHasta.text + "'  AND (estado_final IS NULL OR estado_final <>'CARGADO')"; 
				
				query.outFields = ['*'];
				query.orderByFields = ['created_date'];
				query.returnGeometry = true;
				queryTask.execute(query, new AsyncResponder(onResultQuery, onFaultQuery));
				
				
				
				function onResultQuery(featureSet:FeatureSet, token:Object = null):void{
					
					for(var k:int=0;k<featureSet.features.length;k++){
						
						
						var recordGraphic:Graphic = featureSet.features[k];
						coleccionLecturas.addItem({OBJECTID:recordGraphic.attributes["OBJECTID"], 
							nro_medidor:recordGraphic.attributes["nro_medidor"],
							estado:recordGraphic.attributes["estado"],
							tipo_edificacion:recordGraphic.attributes["tipo_edificacion"],
							poste:recordGraphic.attributes["poste"],
							direccion:recordGraphic.attributes["direccion"],
							estado_revision:recordGraphic.attributes["estado_revision"],
							lector:recordGraphic.attributes["lector"],
							lectura_actual: recordGraphic.attributes["lectura_actual"],
							estado_final:recordGraphic.attributes["estado_final"],
							inspeccion:recordGraphic.attributes["inspeccion"],
							ot:recordGraphic.attributes["ot"],
							inspector:recordGraphic.attributes["inspector"],
							causal:recordGraphic.attributes["causal"],
							estado_denuncio:recordGraphic.attributes["estado_denuncio"],
							created_user:recordGraphic.attributes["created_user"],
							created_date:dateFormatter.format(new Date(recordGraphic.attributes["created_date"])),
							gra:recordGraphic});			
					}
					
				}
				function onFaultQuery(info:Object, token:Object = null):void
				{   
					Alert.show("Error en consulta","Carga de Lecturas");
				}
			}
			
			protected function BtnVolver_clickHandler(event:MouseEvent):void
			{
				// TODO Auto-generated method stub
				currentState ="bkmConsulta";
				wTemplate.height = 500;
				wTemplate.width = 870;
			}
			
			protected function ddlCausal_changeHandler(event:IndexChangeEvent):void{
				coleccionCausaDetalle.removeAll();
				
				// TODO Auto-generated method stub
				//Alert.show(ddlCausal.selectedItem.toString());
				switch(ddlCausa.selectedItem.toString())
				{
				case 'Cliente fuera de ruta':
				{
				coleccionCausaDetalle.addItem("");
				coleccionCausaDetalle.addItem("Ruta ok");
				coleccionCausaDetalle.addItem("Ruta mala");
				coleccionCausaDetalle.addItem("Ciclo malo");
				coleccionCausaDetalle.addItem("No Aplica");
				break;
				}
				case 'Medidor no existe':
				{
				coleccionCausaDetalle.addItem("");
				coleccionCausaDetalle.addItem("Medidor existe ruta ok");
				coleccionCausaDetalle.addItem("Medidor no existe");
				coleccionCausaDetalle.addItem("Medidor existe ruta mala");
				coleccionCausaDetalle.addItem("Medidor mal asociado a producto");
				coleccionCausaDetalle.addItem("No Aplica");
				break;
				}
				case 'Medidor cambiado':
				{
				coleccionCausaDetalle.addItem("");		
				coleccionCausaDetalle.addItem("Medidor no existe");
				coleccionCausaDetalle.addItem("Medido mal asociado a producto");
				coleccionCausaDetalle.addItem("No Aplica");
				
				break;
				}
				case 'Posible adulteración':
				{
				coleccionCausaDetalle.addItem("");
				coleccionCausaDetalle.addItem("Adulterado");
				coleccionCausaDetalle.addItem("No adulterado");
				coleccionCausaDetalle.addItem("No Aplica");
				break;
				}	
				case 'No Aplica':
				{	
					coleccionCausaDetalle.addItem("No Aplica");
					
					break;
				}		
					
				
				default:
				{
				break;
				}
				}
				
			}
			
			protected function btnModificarLectura_clickHandler(event:MouseEvent):void{
				// TODO Auto-generated method stub
				var Modificaciones:* = new Object;
				//Alert.show(ddlEstadoInspeccion.selectedItem.toString());
				Modificaciones["OBJECTID"]= lecturaSelected;
				Modificaciones["inspeccion"]= ddlEstadoInspeccion.selectedItem.toString();
				Modificaciones["estado_denuncio"]= ddlEstadoDenuncio.selectedItem.toString();
				
				if(ddlEstadoFinal.selectedIndex==0){
					Modificaciones["estado_final"]= null;  
				}else{
					Modificaciones["estado_final"]= ddlEstadoFinal.selectedItem.toString();  
				}
				//Modificaciones["estado_final"]= ddlEstadoFinal.selectedItem.toString();     
				Modificaciones["obs"]= txtObservacion.text;
				
				Modificaciones["causal"]= ddlCausa.selectedItem.toString(); 
				(ddlCausaDetalle.selectedIndex==0)? Modificaciones["detalle_causal"]= null : Modificaciones["detalle_causal"]= ddlCausaDetalle.selectedItem.toString();   
			 
				//Modificaciones["detalle_causal"]= ddlCausaDetalle.selectedItem.toString();   
			
				
				var graficoEditadoActual:Graphic = new Graphic;
				
				graficoEditadoActual = new Graphic(null,null,Modificaciones);
				var myDetalleActLayer:FeatureLayer = new FeatureLayer(widgets.AdminLectores.utilidad.urls.URL_LECTURA_INSPECCION);
				myDetalleActLayer.applyEdits(null,[graficoEditadoActual],null, false,new AsyncResponder(onResult, onFault));
				
				
				function onResult():void{   
					currentState ="bkmConsulta";
					wTemplate.height = 500;
					wTemplate.width = 870;
					txtFilterClientes.text= "";
					
					
					cargarLista();
					DataLecturas.dataProvider = coleccionLecturas;
					Alert.show("Lectura Modificada");
					
				}
				
				function onFault(info:Object, token:Object = null):void{
					Alert.show("Error al modificar la lectura.  Contáctese con el administrador de GISRED. "+info.toString());
				}
				
			}
			
		]]>
	</fx:Script>
	<viewer:WidgetTemplate id="wTemplate"                      
						   width="870" height="500"
						   visible="true" closed="wTemplate_closedHandler(event)" open="wTemplate_openHandler(event)">
		
		<s:Group id="bkmInit" width="100%" height="100%" initialize="bkmInit_initializeHandler(event)"
				 visible="false" visible.bkmInit="true">	
			<s:VGroup horizontalAlign="center" height="100%" width="100%" verticalAlign="middle">
				<mx:Canvas width="200" height="200" id="pbGisred" color="0x000000" horizontalScrollPolicy="off"
						   verticalScrollPolicy="off" visible="false"/>                                           
				<s:Label id="lblwarning" text="No tiene permisos para acceder a este módulo." 
						 fontSize="16" visible="false" paddingTop="10"/>
				<s:Label id="lblwarning2" text="Comuniquese con el administrador de GISRED" 
						 fontSize="16" visible="false" paddingTop="10"/>
			</s:VGroup>
		</s:Group> 
		
		<s:Group id="bkmConsulta"
				 width="100%" height="100%"
				 visible="false"
				 visible.bkmConsulta="true">
			
			
			
			<mx:Canvas id="ListadoClientes" label="Lista Lecturas" width="100%" height="100%">
				<s:VGroup width="100%" top="5" bottom="5" height="80%">
					<mx:Label id="Lblclie" text="Listado de Lecturas" fontSize="18"/>
					<s:HGroup width="100%" verticalAlign="middle">
						<mx:TextInput x="10" id="txtFilterClientes" width="100%" height="30" fontSize="14" fontWeight="bold" />
						<mx:Image x="504" y="10" width="35" height="33"  source="assets/images/lupa_40x40.png"/>
						<mx:Image x="504" y="10" width="35" height="33"  source="assets/images/refresh_1.png" click="image1_clickHandler(event)"/>
					</s:HGroup>
					<mx:DataGrid id="DataLecturas" resizableColumns="true" sortableColumns="true" editable="false"  
								 width="100%" height="100%" visible="true" selectable="true" itemClick="DataClientesNuevos_itemClickHandler(event)">
						<mx:columns>        
							<mx:DataGridColumn  dataField="OBJECTID" headerText="OBJECTID" width="30" visible="true"/>                                                         
							
							<mx:DataGridColumn dataField="nro_medidor" headerText="NUM.MEDIDOR" width="50" /> 
							<mx:DataGridColumn dataField="estado" headerText="ESTADO" visible="true" width="50" />
							<mx:DataGridColumn dataField="tipo_edificacion" headerText="EDIFICACION" width="50"/>
							<mx:DataGridColumn dataField="poste" headerText="POSTE" visible="true" width="50" />
							<mx:DataGridColumn dataField="direccion" headerText="DIRECCION" visible="true" width="50" />
							<mx:DataGridColumn dataField="estado_revision" headerText="ESTADO_REVISION" visible="true" width="50" />
							<mx:DataGridColumn dataField="lectura_actual" headerText="LECTURA_ACTUAL" visible="true" width="50" />
							<mx:DataGridColumn dataField="lector" headerText="LECTOR" visible="true" width="50" />
							<mx:DataGridColumn dataField="estado_final" headerText="ESTADO FINAL" visible="true" width="50" />
							<mx:DataGridColumn dataField="inspeccion" headerText="INSPECCION" visible="true" width="50" />
							<mx:DataGridColumn dataField="ot" headerText="OT" visible="true" width="50" />
							<mx:DataGridColumn dataField="inspector" headerText="INSPECTOR" visible="true" width="50" />
							<mx:DataGridColumn dataField="causal" headerText="CAUSAL" visible="false" width="50"  />
							<mx:DataGridColumn dataField="estado_denuncio" headerText="ESTADO DENUNCIO" visible="true" width="50" />
							
							<mx:DataGridColumn dataField="created_user" headerText="CREADO POR" visible="true" width="50" />
							<mx:DataGridColumn dataField="created_date" headerText="FECHA CREACION" visible="true" width="50" />
							
							
							
						</mx:columns><commit_msg>Agregado zoom a inspecciones y otros cambios<commit_after><viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009"
				   xmlns:s="library://ns.adobe.com/flex/spark"
				   xmlns:mx="library://ns.adobe.com/flex/mx"
				   xmlns:viewer="com.esri.viewer.*"				   
				   xmlns:components="com.esri.viewer.components.*"
				   xmlns:esri="http://www.esri.com/2008/ags"  
				   initialize="basewidget1_initializeHandler(event)" 
				   creationComplete="basewidget1_creationCompleteHandler(event)"
				   
				   
				   >	
	
	<viewer:states>
		<s:State name="bkmInit"/>
		<s:State name="bkmConsulta"/>
		<s:State name="bkmConsultaDetalle"/>
		
	</viewer:states>
	<viewer:transitions>
		<s:Transition autoReverse="true" toState="*">
			<s:Fade targets="{[bkmInit,bkmConsulta,bkmConsultaDetalle]}"/>
		</s:Transition>
	</viewer:transitions>
	
	<fx:Declarations>
		<s:GlowFilter id="glowFilter"
					  alpha="1"
					  color="{getStyle('focusColor')}"
					  inner="true"
					  strength="2"/>
		
		<s:DateTimeFormatter id="dateFormatter" dateTimePattern="dd/MM/yyyy  HH:MM:ss"/>
		
		<esri:SimpleMarkerSymbol id="smsIdentify"
								 alpha="0.5"
								 color="0xFF9900"
								 size="20"
								 style="circle"/>
		
		<mx:WipeUp id="myWU" duration="300"/>
		<mx:WipeDown id="myWD" duration="500"/>
		<mx:WipeRight id="myWR" duration="850"/>
		<esri:GraphicsLayer id="graphicsLayer" />
		
		<esri:Map id="map">
			<esri:infoWindowContent>
				<s:TextArea id="myTextArea"
							width="250" height="75"/>
			</esri:infoWindowContent>
			
			<esri:FeatureLayer 
				id="lecturasLayer"
				outFields="*"
				mode="onDemand"	
				graphicAdd="verElemento(event)"
				url="http://gisred.chilquinta/arcgis/rest/services/Varios/Ingreso_Lectores/FeatureServer/0"
				>
			</esri:FeatureLayer>
			
		</esri:Map>
		
		
		<esri:SimpleFillSymbol id="mouseOverSymbol" alpha="0.5">
			<esri:SimpleLineSymbol width="0" color="0xFF0000"/>
		</esri:SimpleFillSymbol>
		<esri:SimpleFillSymbol id="defaultsym" alpha="0.2">
			<esri:SimpleLineSymbol width="1" color="0xEEEEEE"/>
		</esri:SimpleFillSymbol>
		
	</fx:Declarations>
	
	<fx:Script>
		<![CDATA[
			import com.as3xls.xls.ExcelFile;
			import com.as3xls.xls.Sheet;
			import com.esri.ags.FeatureSet;
			import com.esri.ags.Graphic;
			import com.esri.ags.events.GraphicEvent;
			import com.esri.ags.geometry.MapPoint;
			import com.esri.ags.layers.FeatureLayer;
			import com.esri.ags.layers.GraphicsLayer;
			import com.esri.ags.portal.PopUpRenderer;
			import com.esri.ags.tasks.QueryTask;
			import com.esri.ags.tasks.supportClasses.Query;
			
			import mx.collections.ArrayCollection;
			import mx.collections.ArrayList;
			import mx.controls.Alert;
			import mx.events.FlexEvent;
			import mx.events.ListEvent;
			import mx.events.ToolTipEvent;
			import mx.messaging.messages.ErrorMessage;
			import mx.rpc.AsyncResponder;
			import mx.utils.StringUtil;
			
			import spark.events.IndexChangeEvent;
			
			import comun.Planificacion.User;
			import comun.url.URL;
			
			import widgets.AdminLectores.utilidad.urls;
			
			private var popUpRenderer:PopUpRenderer = new PopUpRenderer();
			
			
			[Bindable] public var idPosteNuevo:String;
			[Bindable] public var idDirNueva:String;
			[Bindable] public var rotNuevo:String;
			[Bindable] public var dirNueva:String;
			
			[Bindable] public var coleccionLecturas:ArrayCollection = new ArrayCollection;
			[Bindable] public var coleccionDetalle:ArrayCollection = new ArrayCollection;
			
			[Bindable] public var coleccionEstados:ArrayList =  new ArrayList;
			[Bindable] public var coleccionEstadoFinal:ArrayList =  new ArrayList;
			[Bindable] public var coleccionDenuncia:ArrayList =  new ArrayList;
			[Bindable] public var coleccionCausaDetalle:ArrayList =  new ArrayList;
			[Bindable] public var coleccionCausa:ArrayList =  new ArrayList;
			
			[Bindable] public var lecturaSelected:int;
			[Bindable] public var inspectorSelected:String;
			
			[Bindable] public var fs:FeatureSet = new FeatureSet;
			[Bindable] public var rotu:int;
			[Bindable] public var rotuloEncontrado:String;
			[Bindable] public var direccionCompleta:String;
			[Bindable] public var nisBuscado:String;
			[Bindable] public var anexo1:String;
			[Bindable] public var anexo2:String;
			[Bindable] public var tipoEdificacion:String;
			public var myGraphicsLayer:GraphicsLayer =  new GraphicsLayer;
			
			private var ColeccionUser:ArrayCollection = new ArrayCollection;
			private var text1:String;
			[Bindable] private var anchoObj:int =200;
			//public var lecturasLayer:ArcGISDynamicMapServiceLayer= new ArcGISDynamicMapServiceLayer(widgets.AdminLectores.utilidad.urls.URL_LECTURAS_DYN);
			
			import org.example.components.PanelToolTip;
			protected var ptt:PanelToolTip = new PanelToolTip();
			protected function basewidget1_initializeHandler(event:FlexEvent):void{	
				ConsultarAcceso();
				
				//llenar combos
				fillCombos();
				//DataLecturas.selectedIndex = 1;
			}
			
			public function fillCombos():void{
				coleccionEstados.removeAll();
				coleccionEstados.addItem("SI");
				coleccionEstados.addItem("NO");
				
				coleccionEstadoFinal.addItem("");
				coleccionEstadoFinal.addItem("PAGADO");
				coleccionEstadoFinal.addItem("NO APLICA");
				
				coleccionDenuncia.addItem("EN GESTION");
				coleccionDenuncia.addItem("VALIDADO");
				
				coleccionCausa.addItem("Cliente fuera de ruta");
				coleccionCausa.addItem("Medidor no existe");
				coleccionCausa.addItem("Medidor cambiado");
				coleccionCausa.addItem("Posible adulteración");
				coleccionCausa.addItem("No Aplica");
				coleccionCausaDetalle.removeAll();
			}
			
			public function openLayer():void{
				lecturasLayer.name = "Ingreso Lectores";
				map.addLayer(lecturasLayer);				
				lecturasLayer.visible = true;	
			}
			
			protected function verElemento(event:GraphicEvent):void
			{
				var graphic:Graphic = event.graphic;				
				graphic.toolTip = " ";
				graphic.addEventListener(ToolTipEvent.TOOL_TIP_CREATE, stateToolTipCreateHandler, false, 0, true);		
			}
			
			//Crea Tooltip al objeto grafico			
			protected function stateToolTipCreateHandler(event:ToolTipEvent):void
			{
				var graphic:Graphic = event.currentTarget as Graphic;
				ptt.title = "ID: " + graphic.attributes.OBJECTID;
				ptt.Poste = graphic.attributes.POSTE;
				ptt.Medidor = graphic.attributes.nro_medidor;
				ptt.Revision = graphic.attributes.estado_revision ;
				ptt.Final = graphic.attributes.estado_final ;
				
				
				/*ptt.TipoConexion = graphic.attributes.TIPO_CONEXION;
				ptt.Potencia = graphic.attributes.POTENCIA;
				ptt.Tipo = graphic.attributes.TIPO;
				ptt.Propiedad = graphic.attributes.PROPIEDAD;
				ptt.Medido = graphic.attributes.MEDIDO;
				*/
				event.toolTip = ptt;
			}
			
			
			protected function ConsultarAcceso():void{
				
				var queryTaskUserSelected:QueryTask = new QueryTask();
				queryTaskUserSelected.url = comun.url.URL.URL_ACCESO;
				queryTaskUserSelected.useAMF = false;
				var queryEquipoSelected:Query = new Query();
				queryEquipoSelected.outFields = ["*"];
				queryEquipoSelected.returnGeometry = true;     
				queryEquipoSelected.orderByFields = ["usuario"];
				queryEquipoSelected.where = "usuario = '" + User.Usuario + "' AND MODULO ='INGRESO_CLIENTES' AND widget='ADMINDENUNCIAS'" ;
				queryEquipoSelected.spatialRelationship ="esriSpatialRelIntersects";
				queryEquipoSelected.outSpatialReference = map.spatialReference;
				queryTaskUserSelected.execute(queryEquipoSelected, new AsyncResponder(onResult, onFault));
				
				function onResult(featureSet:FeatureSet, token:Object = null):void{
					
					if(featureSet.features.length == 0 ){
						//Alert.show("No tiene permisos para accesder a este modulo\n Comuniquese con el administrador de GISRED")
						//currentState = "bkmInit"; 
						currentState ="bkmInit";
						lblwarning.visible = true;
						lblwarning2.visible = true;
						pbGisred.visible = true;
						wTemplate.height = 500;
						wTemplate.width = 870;
					}
						//si hay, cuales son los permisos
					else{   
						
						ColeccionUser.addAll(new ArrayCollection(featureSet.attributes));
						
						for(var i:int=0;i<=ColeccionUser.length-1;i++){	
							
							if(ColeccionUser[i].select_ == 'FALSE'){
								btnExportarDatosClientes.enabled = false;
							}else{
								btnExportarDatosClientes.enabled = true;
							}
							
							if( ColeccionUser[i].update_ == 'FALSE'){
								//DDLEstadoCliente.enabled = false;
								//btnCambiarEstadoCliente.enabled = false;
								
								
							}else{
								//DDLEstadoCliente.enabled = true;
								//btnCambiarEstadoCliente.enabled = true;
								
							}
							
						}
						
						
						cargarLista();
						txtFilterClientes.addEventListener(Event.CHANGE,filterGridClientes);
						
						currentState ="bkmConsulta";
						wTemplate.height = 500;
						wTemplate.width = 870;
						
					}
				}
				
				
				
				function onFault(info:Object, token:Object = null):void
				{   
					Alert.show("No tiene permisos para accesder a este modulo\n Comuniquese con el administrador");
					currentState ="bkmInit";
					lblwarning.visible = true;
					lblwarning2.visible = true;
					pbGisred.visible = true;
					wTemplate.width = 870;
					wTemplate.height = 500;
				}
			}
			
			public function cargarLista():void {
				// TODO Auto-generated method stub
				coleccionLecturas.removeAll();
				// TODO Auto-generated method stub
				var queryTask:QueryTask = new QueryTask(widgets.AdminLectores.utilidad.urls.URL_LECTURA_INSPECCION);
				var query:Query = new Query();
				query.where = "1=1"; 
				query.outFields = ['*'];
				query.orderByFields = ['created_date'];
				query.returnGeometry = true;
				queryTask.execute(query, new AsyncResponder(onResultQuery, onFaultQuery));
				
				
				
				function onResultQuery(featureSet:FeatureSet, token:Object = null):void{
					
					for(var k:int=0;k<featureSet.features.length;k++){
						
						
						var recordGraphic:Graphic = featureSet.features[k];
						coleccionLecturas.addItem({OBJECTID:recordGraphic.attributes["OBJECTID"], 
							nro_medidor:recordGraphic.attributes["nro_medidor"],
							estado:recordGraphic.attributes["estado"],
							tipo_edificacion:recordGraphic.attributes["tipo_edificacion"],
							poste:recordGraphic.attributes["poste"],
							direccion:recordGraphic.attributes["direccion"],
							estado_revision:recordGraphic.attributes["estado_revision"],
							lector:recordGraphic.attributes["lector"],
							lectura_actual: recordGraphic.attributes["lectura_actual"],
							estado_final:recordGraphic.attributes["estado_final"],
							inspeccion:recordGraphic.attributes["inspeccion"],
							ot:recordGraphic.attributes["ot"],
							inspector:recordGraphic.attributes["inspector"],
							causal:recordGraphic.attributes["causal"],
							estado_denuncio:recordGraphic.attributes["estado_denuncio"],
							created_user:recordGraphic.attributes["created_user"],
							created_date:dateFormatter.format(new Date(recordGraphic.attributes["created_date"])),
							gra:recordGraphic});			
					}
					
				}
				function onFaultQuery(info:Object, token:Object = null):void
				{   
					Alert.show("Error en consulta","Carga de Lecturas");
				}
			}
			
			//Filtra Listado de Solicitudes ingresadas en Textbox
			protected function filterGridClientes(event:Event):void
			{
				/* To get this function to work, only edit variables filterText, columnArray, gridDataProvider, and dataGridName. 
				Everything else is dynamic. Do not edit variable names. */
				var filterText:String = StringUtil.trim(txtFilterClientes.text.toLowerCase()); //Trimmed text String to filter by
				var columnArray:Array = ['OBJECTID','nro_medidor','estado','tipo_edificacion','poste','direccion','estado_revision',
					'lectura_actual','created_date','lector','estado_final','inspeccion','ot','inspector','causal', 'estado_denuncio']; //Datagrid column names to filter on
				var gridDataProvider:ArrayCollection = this.coleccionLecturas as ArrayCollection; //Name of datagrid's dataprovider. In this case e.g. databases
				var dataGridName:String = 'DataLecturas'; //Name of the datagrid you are filtering by
				
				//Do not edit code past this point
				var filteredData:Array = [];
				var added:Boolean=false;
				var i:int;
				var j:int;
				
				// Loop Through Grid
				for(i=0; i < gridDataProvider.length; i++){    
					added = false;
					
					//Loop through grid column
					for(j=0; j<columnArray.length; j++){            
						if(gridDataProvider[i][columnArray[j]]!=null){
							
							//Grab datagrid cell contents, trim it, and convert to lowercase for comparison.
							var filterString:String = gridDataProvider[i][columnArray[j]].toString().toLowerCase();
							
							//Compare the datagrid string(filterString) to the user typed string(filterText).  
							if(!added){      
								//If the datagrid string matches the users string, put it into the array.
								if(filterString.indexOf(filterText) != -1){
									filteredData.push(gridDataProvider[i]);
									added = true;
								} 
							}else{
								//Do nothing, break out.
								break;
							}
						}    
					}
				}
				
				//Set datagrid dataprovider
				if(filterText.length == 0){
					this[dataGridName].dataProvider = gridDataProvider; //Display the original unfiltered data
				}else{
					this[dataGridName].dataProvider = filteredData; //Pusht he filtered data into the datagrid
				}
			}	
			
			protected function basewidget1_creationCompleteHandler(event:FlexEvent):void
			{
				// TODO Auto-generated method stub
				DataLecturas.dataProvider = coleccionLecturas;
			}
			
			public var myGraphic:Graphic;
			
			public var acPolyline:ArrayCollection = new ArrayCollection;
			
			public function DataClientesNuevos_itemClickHandler(event:ListEvent):void{
				ddlEstadoInspeccion.selectedIndex = -1;
				ddlEstadoDenuncio.selectedIndex = -1;
				ddlEstadoFinal.selectedIndex = -1;
				
				currentState ="bkmConsultaDetalle";
				wTemplate.height = 500;
				wTemplate.width = 870;
				
				//Asignar valores a los campos de la vista 2 - visuales
				var inspec:String = (DataLecturas.selectedItem['inspector']==null) ? "" : DataLecturas.selectedItem['inspector'];
				lblCurrentLecturaSelected.text = "OBJECTID: " + DataLecturas.selectedItem['OBJECTID'] 
				lblCurrentLecturaSelected2.text = "MEDIDOR: " + DataLecturas.selectedItem['nro_medidor'] 
				lblCurrentLecturaSelected3.text= "INSPECTOR: " + inspec;
				lblCurrentLecturaSelected4.text= "ESTADO: " + DataLecturas.selectedItem['estado']; 
				lecturaSelected = DataLecturas.selectedItem['OBJECTID'];
				inspectorSelected = DataLecturas.selectedItem['inspector'];
				
				//Asignar valores a los campos de la vista 2 - modificables
				if(DataLecturas.selectedItem['inspeccion'] !== null){
					( DataLecturas.selectedItem['inspeccion']=='SI')? ddlEstadoInspeccion.selectedIndex = 0 : ddlEstadoInspeccion.selectedIndex = 1;
				}
				txtOT.text = DataLecturas.selectedItem['ot'];
				
				if(DataLecturas.selectedItem['estado_denuncio'] !== null){
					( DataLecturas.selectedItem['estado_denuncio']=='EN GESTION')? ddlEstadoDenuncio.selectedIndex = 0 : ddlEstadoDenuncio.selectedIndex = 1;
				}
				
				if(DataLecturas.selectedItem['estado_final'] !== null){
					 (DataLecturas.selectedItem['estado_final']=='PAGADO')? ddlEstadoFinal.selectedIndex = 1 : ddlEstadoFinal.selectedIndex = 2;
				}else{
					ddlEstadoFinal.selectedIndex = 0;
				}
				
				
				
				var queryTask:QueryTask = new QueryTask(widgets.AdminLectores.utilidad.urls.URL_LECTURA_INSPECCION);
				var query:Query = new Query();
				query.where = "OBJECTID=" + DataLecturas.selectedItem['OBJECTID']; 
				query.outFields = ['*'];
				
				query.returnGeometry = true;
				queryTask.execute(query, new AsyncResponder(onResultQuery, onFaultQuery));
				function onResultQuery(featureSet:FeatureSet, token:Object = null):void{
					myGraphicsLayer.clear();
					map.level = 20;
					var mp:MapPoint=featureSet.features[0].geometry as MapPoint;
					
					var g:Graphic = new Graphic(mp,smsIdentify);
					
					
					myGraphicsLayer.add(g);
					map.addLayer(myGraphicsLayer);
					map.zoomTo(featureSet.features[0].geometry)
				}
				function onFaultQuery(featureSet:FeatureSet, token:Object = null):void{
					Alert.show("Error haciendo zoom en la lectura seleccionada");
				}
				
				buscarDetalle(lecturaSelected)
			}
			
			public function buscarDetalle(oid):void{
				coleccionDetalle.removeAll();
				// TODO Auto-generated method stub
				var queryTask:QueryTask = new QueryTask(widgets.AdminLectores.utilidad.urls.URL_LECTURAS_DETALLE);
				var query:Query = new Query();
				query.where = "OID_LECTURA="+oid; 
				query.outFields = ['*'];
				query.orderByFields = ['created_date'];
				query.returnGeometry = true;
				queryTask.execute(query, new AsyncResponder(onResultQuery, onFaultQuery));
				
				function onResultQuery(featureSet:FeatureSet, token:Object = null):void{
					
					for(var k:int=0;k<featureSet.features.length;k++){
						
						
						var recordGraphic:Graphic = featureSet.features[k];
						coleccionDetalle.addItem({
							OBJECTID:recordGraphic.attributes["OBJECTID"], 
							OID_LECTURA:recordGraphic.attributes["OID_LECTURA"],
							CAUSAL:recordGraphic.attributes["CAUSAL"],
							DETALLE_CAUSAL:recordGraphic.attributes["DETALLE_CAUSAL"],
							OBS:recordGraphic.attributes["OBS"],
							ESTADO_DENUNCIO:recordGraphic.attributes["ESTADO_DENUNCIO"],
							INSPECTOR:recordGraphic.attributes["INSPECTOR"],
							OT:recordGraphic.attributes["OT"],
							ESTADO_FINAL: recordGraphic.attributes["ESTADO_FINAL"],
							ESTADO_REVISION:recordGraphic.attributes["ESTADO_REVISION"],
							created_date:dateFormatter.format(new Date(recordGraphic.attributes["created_date"])),
							gra:recordGraphic});			
					}
					
					DataDetalle.dataProvider = coleccionDetalle;
					
				}
				function onFaultQuery(info:Object, token:Object = null):void
				{   
					Alert.show("Error en consulta","Carga de Lecturas Detalle");
				}
			}
			
			private var ef:ExcelFile;
			private var ba:ByteArray;
			private var fr:FileReference;
			private var frSave:FileReference;
			protected function btnExportarDatosClientes_clickHandler(event:MouseEvent):void
			{
				
				// TODO Auto-generated method stub
				switch(event.currentTarget.id)
				{
					case "btnExportarDatosClientes":
					{
						
						var s:Sheet = new Sheet();
						s.resize(coleccionLecturas.length+1,12);
						s.setCell(0,0,"ID");
						s.setCell(0,1,"NUMERO MEDIDOR");
						s.setCell(0,2,"ESTADO");
						s.setCell(0,3,"TIPO_EDIFICACION");
						s.setCell(0,4,"POSTE");
						s.setCell(0,5,"DIRECCION");
						s.setCell(0,6,"ESTADO_REVISION");
						s.setCell(0,7,"LECTOR");
						s.setCell(0,8,"CREADO_POR");
						s.setCell(0,9,"FECHA_CREACION");
						s.setCell(0,10,"ESTADO_FINAL");
						s.setCell(0,11,"LECTURA_ACTUAL");
						for(var j:int=0;j<coleccionLecturas.length;j++)
						{
							s.setCell(j+1,0,coleccionLecturas[j].OBJECTID);										
							s.setCell(j+1,1,coleccionLecturas[j].nro_medidor);
							s.setCell(j+1,2,coleccionLecturas[j].estado);
							s.setCell(j+1,3,coleccionLecturas[j].tipo_edificacion);
							s.setCell(j+1,4,coleccionLecturas[j].poste);
							s.setCell(j+1,5,coleccionLecturas[j].direccion);
							s.setCell(j+1,6,coleccionLecturas[j].estado_revision);
							s.setCell(j+1,7,coleccionLecturas[j].lector);
							s.setCell(j+1,8,coleccionLecturas[j].created_user);
							s.setCell(j+1,9,coleccionLecturas[j].created_date);
							s.setCell(j+1,10,coleccionLecturas[j].estado_final);
							s.setCell(j+1,11,coleccionLecturas[j].lectura_actual);
						}
						
						try {
							var fileTosave:ExcelFile = new ExcelFile();
							fileTosave.sheets.addItem(s);
							
							var fileBytes:ByteArray = fileTosave.saveToByteArray();
							frSave = new FileReference();
							frSave.save(fileBytes,"ExportacionAdmLectores.xls");
							frSave.addEventListener(Event.COMPLETE,grabadoListo);
							
						}catch(e:ErrorMessage){
							Alert.show("Error al guardar archivo" + e);
							
						}
						
						break;
					}
						
						
					default:
					{
						//Alert.show("Ningun archivo ha sido generado");
						break;
					}
				}			
			}
			
			public function grabadoListo(event:Event):void{
				Alert.show("Listo");
			}
			
			protected function bkmInit_initializeHandler(event:FlexEvent):void
			{
				// TODO Auto-generated method stub
				var verImageGISRED:Image = new Image;
				
				//imagen configuraciones
				verImageGISRED.scaleContent = true;
				verImageGISRED.maintainAspectRatio =false;
				verImageGISRED.percentWidth = 850;
				verImageGISRED.percentHeight = 500;
				verImageGISRED.source =  "assets/images/128x128.png";
				pbGisred.addChild(verImageGISRED);
				
			}
			
			private function dateChooser_init(dt:DateField):void {
				dt.text = "Desde";
				dt.dayNames=['Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab'];
				dt.monthNames=[	'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio',
					'Julio', 'Agosto', 'Septiembre', 'Octubre',
					'Noviembre', 'Diciembre'];
				dt.firstDayOfWeek = 1;
				dt.formatString = "DD/MM/YYYY";
			}
			
			private function dateChooser2_init(dt:DateField):void {
				dt.text = "Hasta";
				dt.dayNames=['Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab'];
				dt.monthNames=[	'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio',
					'Julio', 'Agosto', 'Septiembre', 'Octubre',
					'Noviembre', 'Diciembre'];
				dt.firstDayOfWeek = 1;
				dt.formatString = "DD/MM/YYYY";
			}
			
			protected function image1_clickHandler(event:MouseEvent):void
			{
				// TODO Auto-generated method stub
				coleccionLecturas.removeAll();
				cargarLista();
				DataLecturas.dataProvider = coleccionLecturas;
			}
			
			protected function wTemplate_closedHandler(event:Event):void
			{
				// TODO Auto-generated method stub
				// TODO Auto-generated method stub
				map.removeLayer(lecturasLayer);
			}
			
			protected function wTemplate_openHandler(event:Event):void
			{
				// TODO Auto-generated method stub
				openLayer();
			}
			
			protected function btnRangoFecha_clickHandler(event:MouseEvent):void
			{
				// TODO Auto-generated method stub
				// TODO Auto-generated method stub
				cargarListaRango();
			}
			
			public function cargarListaRango():void{
				coleccionLecturas.removeAll();
				// TODO Auto-generated method stub
				var queryTask:QueryTask = new QueryTask(widgets.AdminLectores.utilidad.urls.URL_LECTURA_INSPECCION);
				var query:Query = new Query();
				query.where = "created_date >=" + "'" +  dateDesde.text + "'" + "and created_date <=" + "'" + dateHasta.text + "'  AND (estado_final IS NULL OR estado_final <>'CARGADO')"; 
				
				query.outFields = ['*'];
				query.orderByFields = ['created_date'];
				query.returnGeometry = true;
				queryTask.execute(query, new AsyncResponder(onResultQuery, onFaultQuery));
				
				
				
				function onResultQuery(featureSet:FeatureSet, token:Object = null):void{
					
					for(var k:int=0;k<featureSet.features.length;k++){
						
						
						var recordGraphic:Graphic = featureSet.features[k];
						coleccionLecturas.addItem({OBJECTID:recordGraphic.attributes["OBJECTID"], 
							nro_medidor:recordGraphic.attributes["nro_medidor"],
							estado:recordGraphic.attributes["estado"],
							tipo_edificacion:recordGraphic.attributes["tipo_edificacion"],
							poste:recordGraphic.attributes["poste"],
							direccion:recordGraphic.attributes["direccion"],
							estado_revision:recordGraphic.attributes["estado_revision"],
							lector:recordGraphic.attributes["lector"],
							lectura_actual: recordGraphic.attributes["lectura_actual"],
							estado_final:recordGraphic.attributes["estado_final"],
							inspeccion:recordGraphic.attributes["inspeccion"],
							ot:recordGraphic.attributes["ot"],
							inspector:recordGraphic.attributes["inspector"],
							causal:recordGraphic.attributes["causal"],
							estado_denuncio:recordGraphic.attributes["estado_denuncio"],
							created_user:recordGraphic.attributes["created_user"],
							created_date:dateFormatter.format(new Date(recordGraphic.attributes["created_date"])),
							gra:recordGraphic});			
					}
					
				}
				function onFaultQuery(info:Object, token:Object = null):void
				{   
					Alert.show("Error en consulta","Carga de Lecturas");
				}
			}
			
			protected function BtnVolver_clickHandler(event:MouseEvent):void
			{
				// TODO Auto-generated method stub
				currentState ="bkmConsulta";
				wTemplate.height = 500;
				wTemplate.width = 870;
			}
			
			protected function ddlCausal_changeHandler(event:IndexChangeEvent):void{
				coleccionCausaDetalle.removeAll();
				
				// TODO Auto-generated method stub
				//Alert.show(ddlCausal.selectedItem.toString());
				switch(ddlCausa.selectedItem.toString())
				{
				case 'Cliente fuera de ruta':
				{
				coleccionCausaDetalle.addItem("");
				coleccionCausaDetalle.addItem("Ruta ok");
				coleccionCausaDetalle.addItem("Ruta mala");
				coleccionCausaDetalle.addItem("Ciclo malo");
				coleccionCausaDetalle.addItem("No Aplica");
				break;
				}
				case 'Medidor no existe':
				{
				coleccionCausaDetalle.addItem("");
				coleccionCausaDetalle.addItem("Medidor existe ruta ok");
				coleccionCausaDetalle.addItem("Medidor no existe");
				coleccionCausaDetalle.addItem("Medidor existe ruta mala");
				coleccionCausaDetalle.addItem("Medidor mal asociado a producto");
				coleccionCausaDetalle.addItem("No Aplica");
				break;
				}
				case 'Medidor cambiado':
				{
				coleccionCausaDetalle.addItem("");		
				coleccionCausaDetalle.addItem("Medidor no existe");
				coleccionCausaDetalle.addItem("Medido mal asociado a producto");
				coleccionCausaDetalle.addItem("No Aplica");
				
				break;
				}
				case 'Posible adulteración':
				{
				coleccionCausaDetalle.addItem("");
				coleccionCausaDetalle.addItem("Adulterado");
				coleccionCausaDetalle.addItem("No adulterado");
				coleccionCausaDetalle.addItem("No Aplica");
				break;
				}	
				case 'No Aplica':
				{	
					coleccionCausaDetalle.addItem("No Aplica");
					
					break;
				}		
					
				
				default:
				{
				break;
				}
				}
				
			}
			
			protected function btnModificarLectura_clickHandler(event:MouseEvent):void{
				// TODO Auto-generated method stub
				var Modificaciones:* = new Object;
				//Alert.show(ddlEstadoInspeccion.selectedItem.toString());
				Modificaciones["OBJECTID"]= lecturaSelected;
				Modificaciones["inspeccion"]= ddlEstadoInspeccion.selectedItem.toString();
				Modificaciones["estado_denuncio"]= ddlEstadoDenuncio.selectedItem.toString();
				
				if(ddlEstadoFinal.selectedIndex==0){
					Modificaciones["estado_final"]= null;  
				}else{
					Modificaciones["estado_final"]= ddlEstadoFinal.selectedItem.toString();  
				}
				//Modificaciones["estado_final"]= ddlEstadoFinal.selectedItem.toString();     
				Modificaciones["obs"]= txtObservacion.text;
				
				Modificaciones["causal"]= ddlCausa.selectedItem.toString(); 
				(ddlCausaDetalle.selectedIndex==0)? Modificaciones["detalle_causal"]= null : Modificaciones["detalle_causal"]= ddlCausaDetalle.selectedItem.toString();   
			 
				//Modificaciones["detalle_causal"]= ddlCausaDetalle.selectedItem.toString();   
			
				
				var graficoEditadoActual:Graphic = new Graphic;
				
				graficoEditadoActual = new Graphic(null,null,Modificaciones);
				var myDetalleActLayer:FeatureLayer = new FeatureLayer(widgets.AdminLectores.utilidad.urls.URL_LECTURA_INSPECCION);
				myDetalleActLayer.applyEdits(null,[graficoEditadoActual],null, false,new AsyncResponder(onResult, onFault));
				
				
				function onResult():void{   
					currentState ="bkmConsulta";
					wTemplate.height = 500;
					wTemplate.width = 870;
					txtFilterClientes.text= "";
					
					
					cargarLista();
					DataLecturas.dataProvider = coleccionLecturas;
					Alert.show("Lectura Modificada");
					
				}
				
				function onFault(info:Object, token:Object = null):void{
					Alert.show("Error al modificar la lectura.  Contáctese con el administrador de GISRED. "+info.toString());
				}
				
			}
			
		]]>
	</fx:Script>
	<viewer:WidgetTemplate id="wTemplate"                      
						   width="870" height="500"
						   visible="true" closed="wTemplate_closedHandler(event)" open="wTemplate_openHandler(event)">
		
		<s:Group id="bkmInit" width="100%" height="100%" initialize="bkmInit_initializeHandler(event)"
				 visible="false" visible.bkmInit="true">	
			<s:VGroup horizontalAlign="center" height="100%" width="100%" verticalAlign="middle">
				<mx:Canvas width="200" height="200" id="pbGisred" color="0x000000" horizontalScrollPolicy="off"
						   verticalScrollPolicy="off" visible="false"/>                                           
				<s:Label id="lblwarning" text="No tiene permisos para acceder a este módulo." 
						 fontSize="16" visible="false" paddingTop="10"/>
				<s:Label id="lblwarning2" text="Comuniquese con el administrador de GISRED" 
						 fontSize="16" visible="false" paddingTop="10"/>
			</s:VGroup>
		</s:Group> 
		
		<s:Group id="bkmConsulta"
				 width="100%" height="100%"
				 visible="false"
				 visible.bkmConsulta="true">
			
			
			
			<mx:Canvas id="ListadoClientes" label="Lista Lecturas" width="100%" height="100%">
				<s:VGroup width="100%" top="5" bottom="5" height="80%">
					<mx:Label id="Lblclie" text="Listado de Lecturas" fontSize="18"/>
					<s:HGroup width="100%" verticalAlign="middle">
						<mx:TextInput x="10" id="txtFilterClientes" width="100%" height="30" fontSize="14" fontWeight="bold" />
						<mx:Image x="504" y="10" width="35" height="33"  source="assets/images/lupa_40x40.png"/>
						<mx:Image x="504" y="10" width="35" height="33"  source="assets/images/refresh_1.png" click="image1_clickHandler(event)"/>
					</s:HGroup>
					<mx:DataGrid id="DataLecturas" resizableColumns="true" sortableColumns="true" editable="false"  
								 width="100%" height="100%" visible="true" selectable="true" itemClick="DataClientesNuevos_itemClickHandler(event)">
						<mx:columns>        
							<mx:DataGridColumn  dataField="OBJECTID" headerText="OBJECTID" width="30" visible="true"/>                                                         
							
							<mx:DataGridColumn dataField="nro_medidor" headerText="NUM.MEDIDOR" width="50" /> 
							<mx:DataGridColumn dataField="estado" headerText="ESTADO" visible="true" width="50" />
							<mx:DataGridColumn dataField="tipo_edificacion" headerText="EDIFICACION" width="50"/>
							<mx:DataGridColumn dataField="poste" headerText="POSTE" visible="true" width="50" />
							<mx:DataGridColumn dataField="direccion" headerText="DIRECCION" visible="true" width="50" />
							<mx:DataGridColumn dataField="estado_revision" headerText="ESTADO_REVISION" visible="true" width="50" />
							<mx:DataGridColumn dataField="lectura_actual" headerText="LECTURA_ACTUAL" visible="true" width="50" />
							<mx:DataGridColumn dataField="lector" headerText="LECTOR" visible="true" width="50" />
							<mx:DataGridColumn dataField="estado_final" headerText="ESTADO FINAL" visible="true" width="50" />
							<mx:DataGridColumn dataField="inspeccion" headerText="INSPECCION" visible="true" width="50" />
							<mx:DataGridColumn dataField="ot" headerText="OT" visible="true" width="50" />
							<mx:DataGridColumn dataField="inspector" headerText="INSPECTOR" visible="true" width="50" />
							<mx:DataGridColumn dataField="causal" headerText="CAUSAL" visible="false" width="50"  />
							<mx:DataGridColumn dataField="estado_denuncio" headerText="ESTADO DENUNCIO" visible="true" width="50" />
							<mx:DataGridColumn dataField="geometry" headerText="GEOMETRIA" visible="false" width="50" />
							<mx:DataGridColumn dataField="created_user" headerText="CREADO POR" visible="true" width="50" />
							<mx:DataGridColumn dataField="created_date" headerText="FECHA CREACION" visible="true" width="50" />
							
							
							
						</mx:columns>
{'fraction_non_alphanumeric': 0.12484372774603979, 'fraction_numerical': 0.010729376018736846, 'mean_word_length': 3.6085180863477246, 'pattern_counts': {'":': 2, '<': 168, '<?xml version=': 0, '>': 154, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 14}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6432634', 'n_tokens_mistral': 27310, 'n_tokens_neox': 20761, 'n_words': 3205}