public List<VO_Materiais> getMateriais(VO_Materiais parametros) { List<VO_Materiais> materiais = new ArrayList<>(); String select = ajustaParametros(parametros); if (select.isEmpty()) { select = Contrato_VendasFacil.Materiais.SELECT; } else { select = Contrato_VendasFacil.Materiais.SELECT + Contrato_VendasFacil.WHERE + "1 = 1" + select; } // todo: getReadableDatabase DAO_VendasFacil dao = new DAO_VendasFacil(fragmento); SQLiteDatabase db = dao.getTabelaLeitura(); Cursor cursor = db.rawQuery(select, null); int ColCodMaterial = cursor.getColumnIndex(Contrato_VendasFacil.Materiais.C_ID_COD_MATERIAL); int ColDesMaterial = cursor.getColumnIndex(Contrato_VendasFacil.Materiais.C_DES_MATERIAL); int ColFoto = cursor.getColumnIndex(Contrato_VendasFacil.Materiais.C_FOTO); int ColQtdMin = cursor.getColumnIndex(Contrato_VendasFacil.Materiais.C_QTD_MINIMA); int ColQtdEst = cursor.getColumnIndex(Contrato_VendasFacil.Materiais.C_QTD_ESTOQUE); int ColUndMed = cursor.getColumnIndex(Contrato_VendasFacil.Materiais.C_COD_UNIDADE_MEDIDA); int ColDtaUltCompra = cursor.getColumnIndex(Contrato_VendasFacil.Materiais.C_DATA_ULTIMA_COMPRA); // Garante que pelo menos uma linha existe no cursor if (cursor.moveToFirst()) { for (int i = 0; i < cursor.getCount(); i++, cursor.moveToNext()) { VO_Materiais material = new VO_Materiais(fragmento); material.setCodMaterial(cursor.getInt(ColCodMaterial)); material.setDesMaterial(cursor.getString(ColDesMaterial)); material.setFotoByteArray(cursor.getBlob(ColFoto)); material.setQtdMinima(cursor.getFloat(ColQtdMin)); material.setQtdEstoque(cursor.getFloat(ColQtdEst)); material.setCodUnidadeMedida(cursor.getInt(ColUndMed)); material.setDataUltimaCompraLong(cursor.getLong(ColDtaUltCompra)); materiais.add(i, material); } } cursor.close(); db.close(); // todo: close() return materiais; }
public void setMateriais(VO_Materiais materiais, int operacao) { try { String queryString = null; switch (operacao) { case INSERE: queryString = Contrato_VendasFacil.Materiais.INSERT; break; case ATUALIZA: queryString = Contrato_VendasFacil.Materiais.UPDATE; break; } if (materiais.getCodMaterialString().isEmpty()) { materiais.setCodMaterial(proximoCodigoMaterial()); } // todo: getWritableDatabase DAO_VendasFacil dao = new DAO_VendasFacil(fragmento); SQLiteDatabase db = dao.getTabelaGravacao(); SQLiteStatement query = db.compileStatement(queryString); // Ambas as querys (insert e update) estão montadas com os campos na mesma sequencia // Assim é possível utilizar o mesmo trecho de código abaixo para ambos os casos. query.bindString(1, materiais.getDesMaterial()); query.bindBlob(2, materiais.getFotoByteArray()); query.bindDouble(3, materiais.getQtdMinima()); query.bindDouble(4, materiais.getQtdEstoque()); query.bindLong(5, materiais.getCodUnidadeMedida()); query.bindLong(6, materiais.getDataUltimaCompraAsLong()); query.bindLong(7, materiais.getCodMaterialInteger()); query.executeInsert(); db.close(); // todo: close() } catch (Exception e) { Toasts.mensagemErro(fragmento, e.getMessage(), "DAO_Material.setMateriais"); } }