package com.ramos.munoz.tesis;

import java.util.ArrayList;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;

public class HistorialDetalleActivity extends Activity {

    private HistorialDetalle historialDetalle;
    private int idCliente;
    private int idEstacionamiento;
    private TextView txtNombre;
    private TextView txtFechaEntrada;
    private TextView txtFechaSalida;
    private TextView txtMontoPagado;
    private TextView txtPatenteVehiculo;
    private TextView txtObservacion;
    private TextView txtMontoAPagar;
    public CharSequence nombreEstacionamiento;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.historial_detalle);
	inicializarComponentes();
    }

    private void inicializarComponentes() {
	idCliente = getIntent().getExtras().getInt("idCliente");
	idEstacionamiento = getIntent().getExtras().getInt("idEstacionamiento");
	nombreEstacionamiento = getIntent().getExtras().getString("nombre");

	CargarDetalleTask task = new CargarDetalleTask();
	task.execute();

	txtNombre = (TextView) findViewById(R.id.txtNombre);
	txtFechaEntrada = (TextView) findViewById(R.id.txtFechaEntrada);
	txtFechaEntrada = (TextView) findViewById(R.id.txtFechaEntrada);
	txtFechaSalida = (TextView) findViewById(R.id.txtFechaSalida);
	txtMontoPagado = (TextView) findViewById(R.id.txtMontoPagado);
	txtPatenteVehiculo = (TextView) findViewById(R.id.txtPatenteVehiculo);
	txtObservacion = (TextView) findViewById(R.id.txtObservacion);
	txtMontoAPagar = (TextView) findViewById(R.id.txtMontoTotal);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
	return true;
    }

    // INNER CLASS
    class CargarDetalleTask extends AsyncTask<String, Integer, Boolean> {

	private ArrayList<Historial> estacionamientosVisitados;
	private ProgressDialog barraEstado;

	@Override
	protected Boolean doInBackground(String... params) {
	    historialDetalle = Historial.verDetalle(idCliente, idEstacionamiento);
	    return true;
	}

	@Override
	protected void onPostExecute(Boolean result) {
	    iniciarVistas();
	    barraEstado.dismiss();

	}

	private void iniciarVistas() {
	    txtNombre.setText(nombreEstacionamiento);
	    String[] fechaYHoraEntrada = historialDetalle.getFechaEntrada().split(" ");
	    String[] fechaYHoraSalida = historialDetalle.getFechaSalida().split(" ");
	    String fEntrada = String.format(getString(R.string.msgeFechaCalificacion), fechaYHoraEntrada[1],fechaYHoraEntrada[0] );
	    String fSalida = String.format(getString(R.string.msgeFechaCalificacion), fechaYHoraSalida[1],fechaYHoraSalida[0]);
	    txtFechaEntrada.setText("Entrada: " + fEntrada );
	    txtFechaSalida.setText("Salida: " + fSalida );
	    txtMontoPagado.setText("Pagado: " + historialDetalle.getMontoPagado());
	    txtMontoAPagar.setText("Valor total: " + historialDetalle.getMontoAPagar());
	    txtObservacion.setText("Observaciones: " + historialDetalle.getObservacion());
	    txtPatenteVehiculo.setText("Vehículo: " + historialDetalle.getPatente());
	    ArrayList<ServicioAdicional> servicios = historialDetalle.getServicios();
	    TextView servA = (TextView) findViewById(R.id.txtServiciosAdicionales);
	    LinearLayout padre = (LinearLayout) findViewById(R.id.llHistorialDetalle);

	    if (servicios.size() >= 1) {
		LayoutInflater li = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
		for (int i = 0; i < servicios.size(); i++) {
		    View v = li.inflate(R.layout.historial_detalle_adicionales, null);

		    TextView nombreServicio = (TextView) v.findViewById(R.id.txtNombreServicioAdicional);
		    TextView valorServicio = (TextView) v.findViewById(R.id.txtValorAdicional);

		    nombreServicio.setText("Servicio: " + servicios.get(i).getNombre());
		    valorServicio.setText("Valor: " + servicios.get(i).getValor());
		    padre.addView(v);
		}
		servA.setVisibility(View.VISIBLE);

	    } else {
		padre.removeView(servA);
	    }

	}

	@Override
	protected void onPreExecute() {
	    barraEstado = new ProgressDialog(HistorialDetalleActivity.this);
	    barraEstado.setProgressStyle(R.style.spinnerStyle);
	    barraEstado.setMessage(getString(R.string.cargandoHistorial));

	    barraEstado.show();
	    barraEstado.setCanceledOnTouchOutside(false);
	}
    }

}
