package academic.th.mMySQL;

import android.app.ProgressDialog;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.AsyncTask;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;

import academic.th.AdminSQLite;
import academic.th.mDataObject.trimestre;

/**
 * Created by Sistemas on 09/09/2016.
 */
public class DataParser extends AsyncTask<Void,Void,Integer> {

    Context c;
    Spinner spinertrimestre;
    String jsonData;
    ProgressDialog pd;
    ArrayList<String> atrimestre=new ArrayList<>();
    AdminSQLite admin;



    public DataParser(Context c, Spinner spinertrimestre, String jsonData) {
        this.c = c;
        this.spinertrimestre = spinertrimestre;
        this.jsonData = jsonData;
    }

    @Override
    protected void onPreExecute() {
        super.onPreExecute();

        pd=new ProgressDialog(c);
        pd.setTitle("Datos");
        pd.setMessage("Buscando Informacion.... Espere Por favor");
        pd.show();
    }

    @Override
    public void onPostExecute(Integer result) {
        super.onPostExecute(result);

        pd.dismiss();

        if(result==0){
            Toast.makeText(c,"No se encontro informacion.",Toast.LENGTH_SHORT).show();
        }else{
            /*Toast.makeText(c,"Parse Success",Toast.LENGTH_SHORT).show();*/
        }

        //bind
        ArrayAdapter adapter = new ArrayAdapter(c,android.R.layout.simple_list_item_1,atrimestre);
        spinertrimestre.setAdapter(adapter);

        spinertrimestre.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                String valor=atrimestre.get(position);
               // valor=valor.replace(" ","/x");
               // Toast.makeText(c,valor,Toast.LENGTH_SHORT).show();///MUESTRA EL VALOR ESCOJIDO trimestre

                ///////////7 proceso parabguardar el trimestre en BD SQLite //////



                    /*if(calumno.getText().length()==0){
                        calumno.setError("Ingresar el Codigo del Alumno");
                    }
                    if(cpadre.getText().length()==0){
                        cpadre.setError("Ingresar el Codigo del Representante");
                    }
                    else{*/

                        admin= new AdminSQLite(c,"administracion4",null,1);
                        SQLiteDatabase bd= admin.getWritableDatabase();

                        /*String alumno=calumno.getText().toString();
                        String padre=cpadre.getText().toString();
                        String colegio=spinner.getSelectedItem().toString();*/

                        ////validacion unico registro
                        Cursor numalumno= bd.rawQuery("select * from parametros",null);

                        if(!numalumno.moveToFirst()) {


                            Cursor fila = bd.rawQuery("select * from parametros where v1_par='" + valor + "'", null);

                            if (!fila.moveToFirst()) {

                                ContentValues datos = new ContentValues();

                                datos.put("v1_par", valor);
                                //datos.put("v2_par", "A");
                                //datos.put("v3_par", "B");
                                //datos.put("v4_par", "C");

                                bd.insert("parametros", null, datos);
                                bd.close();
                                //calumno.setText("");
                                //cpadre.setText("");

                                /*Toast.makeText(c, "Registrado Exitosamente Parametro", Toast.LENGTH_SHORT).show();*/
                            }
                        }
                        else{

                            //Toast.makeText(c, "Solo se puede registrar un parametro", Toast.LENGTH_SHORT).show();
                            //bd.close();

                            ContentValues datos = new ContentValues();
                            datos.put("v1_par",valor);
                           // datos.put("cpadre_alu",scpadre2);
                           // datos.put("colegio_alu",scolegio2);

                            int conteo= bd.update("parametros",datos,"",null);

                            bd.close();

                           // calumno1.setText("");
                           // calumno2.setText("");
                           // cpadre2.setText("");

                            if(conteo==1){

                               /* Toast.makeText(c,"parametro Actualizado Correctamente",Toast.LENGTH_SHORT).show();*/

                            }else{

                                Toast.makeText(c,"No se almaceno el trimestre.",Toast.LENGTH_SHORT).show();
                            }

                        }

                    //}





            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });



    }

    @Override
    protected Integer doInBackground(Void... params) {
        return this.parseData();
    }


    private int parseData(){

        try {
            JSONArray ja=new JSONArray(jsonData);
            JSONObject jo=null;

            atrimestre.clear();
            trimestre s=null;

            for(int i=0;i<ja.length();i++){

                jo=ja.getJSONObject(i);

                int serial_tri=jo.getInt("serial_tri");
                String nombre_tri=jo.getString("nombre_tri");

                s=new trimestre();
                s.setSerial_tri(serial_tri);
                s.setNombre_tri(nombre_tri);

                atrimestre.add(nombre_tri);
            }

            return 1;


        } catch (JSONException e) {
            e.printStackTrace();
        }

        return 0;

    }






}
