private String ajustaParametros(VO_Materiais parametros) {
    String select = "";

    if (!parametros.isEmpty()) {
      if (!parametros.getCodMaterialString().isEmpty()) {
        select += Contrato_VendasFacil.AND;
        select += Contrato_VendasFacil.Materiais.C_ID_COD_MATERIAL;
        select += Contrato_VendasFacil.IGUAL;
        select += parametros.getCodMaterialString();
      }
      if (!parametros.getDesMaterial().isEmpty()) {
        select += Contrato_VendasFacil.AND;
        select += Contrato_VendasFacil.Materiais.C_DES_MATERIAL;
        select += Contrato_VendasFacil.LIKE;
        select += Contrato_VendasFacil.ASPAS;
        select += Contrato_VendasFacil.CURINGA;
        select += parametros.getDesMaterial();
        select += Contrato_VendasFacil.CURINGA;
        select += Contrato_VendasFacil.ASPAS;
      }
      if (!parametros.getDataUltimaCompraAsDate().equals(new Date(0))) {
        select += Contrato_VendasFacil.AND;
        select += Contrato_VendasFacil.Materiais.C_DATA_ULTIMA_COMPRA;
        select += Contrato_VendasFacil.IGUAL;
        select += parametros.getDataUltimaCompraAsLong();
      }
    }

    return select;
  }
  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");
    }
  }