<?php

function spai_bit_config_form($form, &$form_state){
  global $base_path;

  $form = array();

  $form['url'] = array(
    '#type'          => 'textfield',
    '#title'         => t('URL'),
    '#default_value' => variable_get('spai_bit_url', ''),
    '#description'   => t('La URL del servicio web del CRTM.'),
    //'#required'      => TRUE,
  );
  $form['submiturl'] = array(
		'#type'          => 'submit',
		'#value'         => 'Guardar URL',
    //'#validate' => array('valida_url'),
    '#submit' => array('guarda_url'),
	);
  $form['festivos'] = array(
    '#type' => 'file',
    '#title' => t('Fichero de festivos'),
    '#description' => 'Seleccione fichero "<strong>.gnl</strong>"',
);
$form['submitfile'] = array(
'#type' => 'submit',
'#value' => t('Actualizar Festivos'),
'#validate' => array('valida_fichero'),
'#submit' => array('guarda_fichero'),
);

  return $form;
}


function guarda_url($form, &$form_state){
  variable_set('spai_bit_url',$form_state['values']['url']);
  drupal_set_message(t('@c',array('@c'=>variable_get('spai_bit_url'))));
}

function valida_fichero($form, &$form_state) {
  $file = file_save_upload('festivos', array(
       'file_validate_extensions' => array('gnl'),
   ));
   if ($file) {
     if ($file = file_move($file, 'public://')) {
       $form_state['values']['festivos'] = $file;
     }
     else {
       form_set_error('festivos', t('Fallo al escribir el fichero en la carpeta site\'s.'));
     }
   }
   else {
     form_set_error('festivos', t('Fichero no actualizado.'));
   }
   
 }

 function guarda_fichero($form, &$form_state) {
  $file=$form_state['values']['festivos'];
  unset($form_state['values']['festivos']);
  $file->status = FILE_STATUS_PERMANENT;
  file_save($file);
  
  $num_deleted = db_delete('spai_bit_festivos')
  ->execute();
	drupal_set_message(t('Registros elimados: @ndel',array('@ndel'=>$num_deleted)));
  //$fila = 0;
  $reg = 0;
  $fichero = getcwd().'/sites/default/files/'.str_replace('public://','',$file->uri);
	//drupal_set_message(t('Fichero a abrir: @fia',array('@fia'=>$fichero)));
	
	if (($gestor = fopen($fichero, "r")) !== FALSE) {
	    while (($datos = fgets($gestor, 1000)) !== FALSE) {
	        //$numero = count($datos);
	        //drupal_set_message(t('@num de campos en la l�nea @fi:',array('@num' => $numero, '@fi' => $fila)));
	        
       		//if (($fila > 0) && (strval($datos[1]) > 1) && (strval($datos[0]) < 10000)) {
       		
       		if (strlen($datos) > 0){
            if (substr($datos,1,3)=="001"){
       			
       			$query = db_insert('spai_bit_festivos')
			  		->fields(array(
			    		'fecha'	=> '20'.substr($datos,10,2).'-'.substr($datos,7,2).'-'.substr($datos,4,2)
			  			))
	  				->execute();
	  				$reg++;
            }
	  			}
					/*$fila++;
	        /*for ($c=0; $c < $numero; $c++) {
	            drupal_set_message(t('@dato',array('@dato' => $datos[$c])));
	        }*/
	    }
	    fclose($gestor);
	    
	}
	
  drupal_set_message(t('Procesado correctamente: @filename.', array('@filename' => $file->filename)));
  drupal_set_message(t('Registros actualizados: @reg.',array('@reg' => $reg)));
  
  file_delete($file);
}
