Bom dia, tenho que fazer um relatório com os itens do pedido. Fiz assim no app, pego o numero do pedido fazendo uma consulta com rowquery, trazendo apenas os campo que preciso, tenho uma activity e um baseadapte, para mostrar, só que esta mostrando apenas a primeira linha, repetida 10 vezes.
Eu queria que mostrasse assim, pedido e a quantidade de itens no pedido, alguem pode me dar uma ideia?
manda o código
public List getItensDoPedido2(int numero1, int numero2) {
List itensSelecionados = new ArrayList<>();
SQLiteDatabase db = getOpenHelper().getWritableDatabase();
if (db.inTransaction())
db.endTransaction();
if (db.inTransaction())
db.endTransaction();
db.beginTransaction();
//Cursor c = db.query(“ITENSPEDIDOS”, new String[]{“id_pedido”,“id_produto”,“quantidade”,“vl_unitario”,“vl_total”}, “ID_PEDIDO betwwen ? and ?”, new String[]{String.valueOf(numero1),String.valueOf(numero2)}, null, null, null);
Cursor c1 = db.rawQuery(“select ip.id_pedido, ip.id_produto,(select p.nome from produtos p where p.id_produto = ip.id_produto) as nome, ip.quantidade, ip.vl_unitario, ip.vl_total from itenspedidos ip where id_pedido between ? and ?;”,new String[]{String.valueOf(numero1),String.valueOf(numero2)});
//Cursor c2 = db.query(“PRODUTOS”, new String[]{“nome”},“id_produto = ?”,new String[]{String.valueOf(c1.getInt(0))},null,null,null);
if (c1.moveToFirst()) {
do {
int idpedido = c1.getInt(0);
int idproduto = c1.getInt(1);
String nomeProduto = c1.getString(2);
double quantidade = c1.getDouble(3);
double valorUnitario = c1.getDouble(4);
double valorTotal = c1.getDouble(5);
//String dataVenda = c1.getString(6);
itensSelecionados.add(String.valueOf(idpedido));
itensSelecionados.add(String.valueOf(idproduto));
itensSelecionados.add(nomeProduto);
itensSelecionados.add(String.valueOf(quantidade));
itensSelecionados.add(String.valueOf(valorUnitario));
itensSelecionados.add(String.valueOf(valorTotal));
//itensSelecionados.add(dataVenda);
} while (c1.moveToNext());
//c.close();
c1.close();
db.setTransactionSuccessful();
db.endTransaction();
return itensSelecionados;
} else {
//c.close();
db.setTransactionSuccessful();
db.endTransaction();
return null;
}
}
public class ListaResumoProdutosVendasAdapter extends BaseAdapter {
private List<ItensPedidos> itens;
private Context contexto;
private SthmobLibrary sthMobLib;
public ListaResumoProdutosVendasAdapter(List<ItensPedidos> itens,
Context contexto, SthmobLibrary sthMobLib) {
super();
this.itens = itens;
this.contexto = contexto;
this.sthMobLib = sthMobLib;
}
@Override
public int getCount() {
return itens.size();
}
@Override
public Object getItem(int position) {
return itens.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ItensPedidos item = itens.get(position);
viewHolder v;
if (convertView == null) {
v = new viewHolder();
LayoutInflater li = (LayoutInflater) contexto.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
assert li != null;
convertView = li.inflate(R.layout.layout_lista_resumo_produtos,null);
v.codPro = (TextView) convertView.findViewById(R.id.codProdutoResumo);
v.nomePro = (TextView) convertView.findViewById(R.id.nomeProdutoResumo);
v.quant = (TextView) convertView.findViewById(R.id.quantProdutoResumo);
v.vlUni = (TextView) convertView.findViewById(R.id.valorProdutoResumo);
v.vlTo = (TextView) convertView.findViewById(R.id.totalProdutoResumo);
convertView.setTag(v);
} else {
v = (viewHolder) convertView.getTag();
}
v.codPro.setText(String.valueOf(item.getId_produto()));
v.nomePro.setText(sthMobLib.getDataManager().getProdutoById(item.getId_produto()).getNome());
v.quant.setText(String.valueOf(item.getQuantidade()));
v.vlUni.setText("R$ " +String.valueOf(item.getVl_unitario()));
v.vlTo.setText("R$ " +String.valueOf(item.getVl_total()));
return convertView;
}
private class viewHolder {
TextView codPro;
TextView nomePro;
TextView quant;
TextView vlUni;
TextView vlTo;
}
}