@Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View view = inflater.inflate(R.layout.activity_clientes, container, false); permisos = SesionUsuario.getPermisos(getActivity()); if (savedInstanceState == null) { // Nos aseguramos que no importa desde donde nos llamen, el indicador del // tab es el correspondiente. AplicacionActivity.mTabsWidget.setCurrentTab(AplicacionActivity.posicionTagFragmentClientes); EmpresaSqliteDao empresaDao = new EmpresaSqliteDao(); EmpleadoSqliteDao empleadoDao = new EmpleadoSqliteDao(); Cursor mCursorEmpresas = empresaDao.buscarEmpresaFilter(getActivity(), null); Cursor mCursorEmpleados = empleadoDao.buscarEmpleadoFilter(getActivity(), null); // primero listamos a los empleados donde vamos a inicializar el valor de // listCursorAdapterEmpleados listarEmpleados(view, mCursorEmpleados); // por ultimo listamos a las empresas, la cual utiliza la referencia de // listCursorAdapterEmpleados dentro // del adaptador. OJO con esto. listarEmpresas(view, mCursorEmpresas); setArrSincronizados(mCursorEmpresas, "empresa"); setArrSincronizados(mCursorEmpleados, "empleado"); cambiarColorCuadroNotificacion(view); // Registro del evento OnClick del buttonActualizar Button bAct = (Button) view.findViewById(R.id.buttonActualizar); bAct.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { AplicacionActivity.dialog = new ProgressDialog(getActivity()); AplicacionActivity.onClickSincronizar(); new SincronizacionAsyncTask(getActivity()) .execute( DataBaseHelper.TABLA_ROL, DataBaseHelper.TABLA_USUARIO, DataBaseHelper.TABLA_PERMISO, DataBaseHelper.TABLA_ROL_PERMISO, DataBaseHelper.TABLA_USUARIO_ROL, DataBaseHelper.TABLA_EMPRESA, DataBaseHelper.TABLA_EMPLEADO, DataBaseHelper.TABLA_COTIZACION, DataBaseHelper.TABLA_EMPLEADO_COTIZACION, DataBaseHelper.TABLA_SERVICIO, DataBaseHelper.TABLA_COTIZACION_SERVICIO, DataBaseHelper.TABLA_TAREA, DataBaseHelper.TABLA_CHECKIN, DataBaseHelper.TABLA_HISTORICO); } }); // Registro del evento OnClick del buttonEmpresa Button bEmp = (Button) view.findViewById(R.id.buttonEmpresa); bEmp.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { DatosEmpresaActivity fragmentDatosEmpresa = new DatosEmpresaActivity(); final FragmentTransaction ft = getFragmentManager().beginTransaction(); // Cambiamos el layout de clientes por datos_empresa e indicamos el tag del frame. ft.replace( android.R.id.tabcontent, fragmentDatosEmpresa, AplicacionActivity.tagFragmentDatosEmpresa); // preservamos el estado anterior al hacer click en back button ft.addToBackStack(AplicacionActivity.tagFragmentDatosEmpresa); ft.commit(); } }); // Registro del evento OnClick del buttonCliente Button bClient = (Button) view.findViewById(R.id.buttonCliente); bClient.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { DatosClienteActivity fragmentDatosClientes = new DatosClienteActivity(); final FragmentTransaction ft = getFragmentManager().beginTransaction(); // Cambiamos el layout de clientes por datos_cliente e indicamos el tag del frame. ft.replace( android.R.id.tabcontent, fragmentDatosClientes, AplicacionActivity.tagFragmentDatosCliente); // preservamos el estado anterior al hacer click en back button ft.addToBackStack(AplicacionActivity.tagFragmentDatosCliente); ft.commit(); } }); // Registro del evento addTextChangedListener cuando utilizamos el buscador EditText etBuscar = (EditText) view.findViewById(R.id.editTextBuscar); etBuscar.addTextChangedListener( new TextWatcher() { @Override public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) { // Este if es para que este metodo no se llame automaticamente // al iniciar la actividad if (mOnTextChangedBool) { if (listCursorAdapterEmpleados != null) { listCursorAdapterEmpleados.getFilter().filter(cs); } if (listCursorAdapterEmpresas != null) { listCursorAdapterEmpresas.getFilter().filter(cs); } } else { mOnTextChangedBool = true; } } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {} @Override public void afterTextChanged(Editable arg0) {} }); } return view; }
/** * Funcion que elimina de la BD y del list view empleados o empresas. * * @param id Id del empleado o empresa * @param tipoCliente Posibles valores: empresa o empleado */ private void borrarCliente(String id, String tipoCliente) { final LayoutInflater inflater = LayoutInflater.from(getActivity()); Boolean eliminado = false; Mensaje mToast = null; String mensajeError = null; String mensajeOk = null; if (tipoCliente.equals("empresa")) { EmpresaSqliteDao empresaDao = new EmpresaSqliteDao(); eliminado = empresaDao.eliminarEmpresa(getActivity(), id); mensajeOk = "ok_eliminado_empresa"; mensajeError = "error_eliminado_empresa"; } else if (tipoCliente.equals("empleado")) { EmpleadoSqliteDao empleadoDao = new EmpleadoSqliteDao(); eliminado = empleadoDao.eliminarEmpleado(getActivity(), id); mensajeOk = "ok_eliminado_empleado"; mensajeError = "error_eliminado_empleado"; } else { Log.e( "ListaClientesCursorAdapter", "tipoCliente no soportado en funcion borrarCliente: " + tipoCliente); } if (eliminado) { mToast = new Mensaje(inflater, (AplicacionActivity) getActivity(), mensajeOk); if (tipoCliente.equals("empresa")) { // Actualizamos los valores del cursor de la lista de empresas EmpresaSqliteDao empresaDao = new EmpresaSqliteDao(); listCursorAdapterEmpresas.changeCursor(empresaDao.buscarEmpresaFilter(getActivity(), null)); // Notificamos que la lista cambio listCursorAdapterEmpresas.notifyDataSetChanged(); // Cuando eliminamos a una empresa, eliminamos tambien a sus empleados // Actualizamos los valores del cursor de la lista de empleados if (listCursorAdapterEmpleados != null) { EmpleadoSqliteDao empleadoDao = new EmpleadoSqliteDao(); listCursorAdapterEmpleados.changeCursor( empleadoDao.buscarEmpleadoFilter(getActivity(), null)); // Notificamos que la lista cambio listCursorAdapterEmpleados.notifyDataSetChanged(); } } else if (tipoCliente.equals("empleado")) { // Actualizamos los valores del cursor de la lista de empleados EmpleadoSqliteDao empleadoDao = new EmpleadoSqliteDao(); listCursorAdapterEmpleados.changeCursor( empleadoDao.buscarEmpleadoFilter(getActivity(), null)); // Notificamos que la lista cambio listCursorAdapterEmpleados.notifyDataSetChanged(); } } else { mToast = new Mensaje(inflater, getActivity(), mensajeError); } try { mToast.controlMensajesToast(); } catch (Exception e) { e.printStackTrace(); } }