Advertisement
AleOlivera

DataSolicitudes.java

Nov 14th, 2022
880
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.87 KB | None | 0 0
  1. package com.example.comedores.conexion;
  2.  
  3. import android.content.Context;
  4. import android.os.AsyncTask;
  5. import android.widget.ListView;
  6. import android.widget.Toast;
  7.  
  8. import com.example.comedores.R;
  9. import com.example.comedores.adapters.ListViewSolicitudesAdapter;
  10. import com.example.comedores.entidades.Comedor;
  11. import com.example.comedores.entidades.Estado;
  12. import com.example.comedores.entidades.Solicitud;
  13.  
  14. import java.sql.Connection;
  15. import java.sql.DriverManager;
  16. import java.sql.PreparedStatement;
  17. import java.sql.ResultSet;
  18. import java.time.LocalDate;
  19. import java.util.ArrayList;
  20. import java.util.List;
  21.  
  22. public class DataSolicitudes extends AsyncTask<String,Void,String> {
  23.     private Context context;
  24.     private List<Solicitud> solicitudes;
  25.     private ListView lvSolicitudes;
  26.     private String mensaje="";
  27.     private Solicitud solicitud;
  28.     private Comedor comedor;
  29.  
  30.     public DataSolicitudes(Context context, List<Solicitud> solicitudes, ListView lvSolicitudes) {
  31.         this.context = context;
  32.         this.solicitudes = solicitudes;
  33.         this.lvSolicitudes = lvSolicitudes;
  34.     }
  35.  
  36.     public DataSolicitudes(Context context, Solicitud solicitud, Comedor comedor) {
  37.         this.context = context;
  38.         this.solicitud = solicitud;
  39.         this.comedor = comedor;
  40.     }
  41.  
  42.     @Override
  43.     protected String doInBackground(String... strings) {
  44.  
  45.  
  46.         switch(strings[0]){
  47.             case "listarSolicitudes":
  48.                 listarSolicitudes(strings[1]);
  49.                 break;
  50.  
  51.             case "modificarSolicitud":
  52.                 modificarSolicitud();
  53.                 if(mensaje=="")
  54.                     modificarComedor();
  55.                 break;
  56.  
  57.             default:
  58.                 break;
  59.         }
  60.         return mensaje;
  61.     }
  62.  
  63.     private void listarSolicitudes(String estado) {
  64.  
  65.         String query="SELECT s.id,s.fecha_alta,s.estado,c.id,c.renacom,c.nombre,c.direccion, "+
  66.                 "c.localidad,c.provincia,c.telefono,c.nombre_responsable, "+
  67.                 "c.apellido_responsable,c.estado_id,c.usuario_id,s.supervisor_id "+
  68.                 "FROM solicitudes s "+
  69.                 "INNER JOIN comedores c ON c.id=s.comedor_id "+
  70.                 "WHERE s.estado= ?";
  71.  
  72.         try{
  73.             Class.forName(DataDB.DRIVER);
  74.             Connection con = DriverManager.getConnection(DataDB.URLMYSQL,DataDB.USER,DataDB.PASS);
  75.             PreparedStatement pst= con.prepareStatement(query);
  76.             pst.setBoolean(1,Boolean.parseBoolean(estado));
  77.             solicitudes=new ArrayList<Solicitud>();
  78.             ResultSet rs= pst.executeQuery();
  79.  
  80.  
  81.             while(rs.next()){
  82.                 Solicitud s= new Solicitud();
  83.                 Comedor c= new Comedor();
  84.  
  85.                 s.setId(rs.getLong(1));
  86.                 s.setFechaAlta(LocalDate.parse(rs.getString(2)));
  87.                 s.setEstado(rs.getBoolean(3));
  88.                 c.setId(rs.getLong(4));
  89.                 c.setRenacom(rs.getLong(5));
  90.                 c.setNombre(rs.getString(6));
  91.                 c.setDireccion(rs.getString(7));
  92.                 c.setLocalidad(rs.getString(8));
  93.                 c.setProvincia(rs.getString(9));
  94.                 c.setTelefono(rs.getString(10));
  95.                 c.setNombreResponsable(rs.getString(11));
  96.                 c.setApellidoResponsable(rs.getString(12));
  97.                 c.setEstado(new Estado(rs.getInt(13),null));
  98.                 c.setIdResponsable(rs.getLong(14));
  99.                 s.setIdSupervisor(rs.getLong(15));
  100.  
  101.                 s.setComedor(c);
  102.                 solicitudes.add(s);
  103.             }
  104.             if(solicitudes.size()>0)
  105.                 mensaje="solicitudes cargadas";
  106.             rs.close();
  107.             con.close();
  108.         }
  109.         catch (Exception e) {
  110.             e.printStackTrace();
  111.             mensaje="Error al cargar las solicitudes";
  112.         }
  113.     }
  114.  
  115.     private void modificarSolicitud() {
  116.         String query="UPDATE solicitudes s SET s.estado= ? ,  s.supervisor_id= ? WHERE s.id= ?";
  117.         try{
  118.             Class.forName(DataDB.DRIVER);
  119.             Connection con = DriverManager.getConnection(DataDB.URLMYSQL,DataDB.USER,DataDB.PASS);
  120.             PreparedStatement pst= con.prepareStatement(query);
  121.             pst.setBoolean(1,solicitud.isEstado());
  122.             pst.setLong(2,solicitud.getIdSupervisor());
  123.             pst.setLong(3,solicitud.getId());
  124.             int filas= pst.executeUpdate();
  125.  
  126.             if(filas<1)
  127.                 mensaje="No se pudo modificar la solicitud";
  128.             con.close();
  129.         }
  130.         catch (Exception e) {
  131.             e.printStackTrace();
  132.             mensaje="Error de conexion al modificar la solicitud";
  133.         }
  134.     }
  135.  
  136.     private void modificarComedor() {
  137.         String query="UPDATE comedores c SET c.estado_id= ? WHERE c.id= ?";
  138.         try{
  139.             Class.forName(DataDB.DRIVER);
  140.             Connection con = DriverManager.getConnection(DataDB.URLMYSQL,DataDB.USER,DataDB.PASS);
  141.             PreparedStatement pst= con.prepareStatement(query);
  142.             pst.setInt(1,solicitud.getComedor().getEstado().getId());
  143.             pst.setLong(2,solicitud.getComedor().getId());
  144.             int filas= pst.executeUpdate();
  145.  
  146.             if(filas<1)
  147.                 mensaje="No se pudo modificar el comedor";
  148.             con.close();
  149.         }
  150.         catch (Exception e) {
  151.             e.printStackTrace();
  152.             mensaje="Error de conexion al modificar el comedor";
  153.         }
  154.     }
  155.  
  156.     @Override
  157.     protected void onPostExecute(String s) {
  158.         if(mensaje.compareTo("")!=0)
  159.             Toast.makeText(context, mensaje, Toast.LENGTH_SHORT).show();
  160.  
  161.         if(mensaje.compareTo("solicitudes cargadas")==0){
  162.             ListViewSolicitudesAdapter adapter= new ListViewSolicitudesAdapter(context, R.layout.item_row_solicitudes,solicitudes);
  163.             lvSolicitudes.setAdapter(adapter);
  164.         }
  165.  
  166.     }
  167. }
  168.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement