Bom dia,
Tenho um classe que envia meus dados salvos no Sqlite do Android para um webservice.
Faço uma consulta no banco e retorno uma lista de Objetos de pedidos.
Dentro do meu objeto pedido tem uma lista de itens.
Quando envio a lista de Objetos pedidos para a classe que envia para o webservice eu preciso ler a lista e separar os cabeçalhos e os itens referentes a cada um?
Como fazer isso?
Minha classe de envio.
[code]package br.com.loadmobile.utilits;
import java.math.BigDecimal;
import java.util.ArrayList;
import br.com.loadmobile.DAO.BuscaPedidoDAO;
import br.com.loadmobile.Single.PedidoSingle;
import br.com.loadmobile.serealizar.CaixaSerial;
import br.com.loadmobile.serealizar.ClienteSerial;
import br.com.loadmobile.serealizar.PedidoCabrecSerial;
import br.com.loadmobile.serealizar.PedidoItemSerial;
import br.com.loadmobile.serealizar.ProdutoSerial;
import br.com.loadmobile.serealizar.RecebimentoSerial;
import br.com.loadmobile.serealizar.VendedorSerial;
import br.com.loadmobile.serealizar.tpSaidaSerial;
import com.embarcadero.javaandroid.DSProxy.TServerMethodos1;
import com.embarcadero.javaandroid.DSRESTConnection;
import com.embarcadero.javaandroid.TJSONArray;
import com.embarcadero.javaandroid.TJSONObject;
import android.app.ProgressDialog;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.AsyncTask;
import android.util.Log;
public class EnviaPedido extends AsyncTask<Void, String, Void> {
/* Context */
private Context context;
/* Objetos de conexao */
private DSRESTConnection conn;
private TServerMethodos1 serv;
/* ProgressDialog */
private ProgressDialog dialog;
private String retorno = "";
private DB dbh;
private SQLiteDatabase bancoDados;
private Context ctx;
private CaixaSerial caixa;
private ArrayList<PedidoCabrecSerial> pedido;
public EnviaPedido(Context ctx) {
Log.d("SisBarMobile - AtEnviaPedido", "AtEnviaPedido");
this.context = ctx;
conn = Salva_Preferences.getConnection(ctx);
serv = new TServerMethodos1(conn);
//pedido = new PedidoCabrecSerial();
//pedido = new BuscaPedidoDAO(ctx).buscaPedido();
caixa = new CaixaSerial();
}
@Override
protected void onPreExecute() {
super.onPreExecute();
Log.d("LoadSystem - AtEnviaPedido", "onPreExecute");
dialog = ProgressDialog.show(context, "Aguarde", "Salvando dados...");
}
@Override
protected Void doInBackground(Void... arg0) {
Log.d("LoadSystem - AtEnviaPedido", "doInBackground");
salvarDados();
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
Log.d("SisBarMobile - AtEnviaPedido", "onPostExecute");
finalizaDialog();
/*
* Exibir um alerta ao usuário
*/
if (!retorno.equals("")) {
if (!retorno.contains("ERRO")) {
Salva_Preferences.alert(context, "Informação",
"Pedido Gravado com sucesso!!!");
PedidoSingle.getInstance().setUpdating(false);
} else {
Salva_Preferences.alert(context, "Atenção", "Erro: " + retorno);
}
}
}
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
Log.d("LoadSystem - AtEnviaPedido", "onProgressUpdate");
}
private void finalizaDialog() {
Log.d("LoadSystem - AtEnviaPedido", "finalizaDialog");
if (dialog != null) {
dialog.hide();
dialog.dismiss();
dialog = null;
}
}
/*
* Preenche os Objetos JSON e envia para o servidor
*/
private void salvarDados() {
Log.d("LoadSystem - AtEnviaPedido", "salvarDados");
/*
* Receber o cabeçalho e os itens do pedido
*/
//ArrayList<PedidoItemSerial> aItens = pedido.getItens();
CaixaSerial aCaixa = caixa;
try {
pedido = new BuscaPedidoDAO(context).buscaPedido();
for (PedidoCabrecSerial cab : pedido) {
//for (int i = 0; i < pedido.size(); i++) {
// PedidoCabrecSerial cab = pe
// cab = pedido;
ArrayList<PedidoItemSerial> aItens = new ArrayList<PedidoItemSerial>();
/*
* #########################################################
* ****************** Cabeçalho ****************************
* #########################################################
*/
TJSONObject jsCabec = new TJSONObject();
jsCabec.addPairs("CODMOVENDA", cab.getCodmovenda());
jsCabec.addPairs("DATA", cab.getData());
jsCabec.addPairs("HORA", cab.getHora());
jsCabec.addPairs("CODTIPOSAI", cab.getTipoSaida().getCodSaida());
jsCabec.addPairs("CODREC", cab.getRecebimento().getCodRec());
jsCabec.addPairs("CODVENDED", cab.getVendedor().getCodigo());
jsCabec.addPairs("CODCLI",cab.getCliente().getCodigoCli());
jsCabec.addPairs("TABVEND",cab.getTabVenda());
jsCabec.addPairs("NOMECLI", cab.getCliente().getNomeCli());
jsCabec.addPairs("NUMPED",cab.getNumped());
jsCabec.addPairs("TOTVENDA", cab.getTotalPagar().doubleValue());
jsCabec.addPairs("STATUS",cab.getStatus());
/*
* #########################################################
* ********************** Itens ****************************
* #########################################################
*/
TJSONArray aItem = new TJSONArray();
aItens = cab.getItens();
for (int e = 0; e < aItens.size(); e++) {
PedidoItemSerial pi = aItens.get(e);
TJSONObject item = new TJSONObject();
item.addPairs("CODMOVENDA", cab.getCodmovenda());
item.addPairs("CODMOVPROD", pi.getCodmovprod());
item.addPairs("CODPROD", pi.getProduto().getcodProd());
item.addPairs("QUANTIDADE", pi.getQtde().doubleValue());
item.addPairs("TOTVENDA", pi.getValorTotal().doubleValue());
item.addPairs("ICMS", pi.getIcms().doubleValue());
item.addPairs("VIPI", pi.getVipi().doubleValue());
item.addPairs("TOTAL", pi.getTotal().doubleValue() );
aItem.add(item);
}
/*
* #########################################################
* ********************** Caixa ****************************
* #########################################################
*/
TJSONObject jsCaixa = new TJSONObject();
jsCaixa.addPairs("CODCAIXA", aCaixa.getCodcaixa());
jsCaixa.addPairs("DATA", aCaixa.getData());
jsCaixa.addPairs("HISTORICO", aCaixa.getHistorico());
jsCaixa.addPairs("NUMDOC", cab.getNumped());
jsCaixa.addPairs("VALOR", String.format("%.2f", aCaixa.getValor().doubleValue()));
jsCaixa.addPairs("OPERACAO", aCaixa.getOperacao());
jsCaixa.addPairs("CODPC",aCaixa.getCodpc());
jsCaixa.addPairs("CODUSER",aCaixa.getCoduser());
jsCaixa.addPairs("CODCAIXAS", aCaixa.getCodcaixas());
jsCaixa.addPairs("CODMOVENDA", cab.getCodmovenda());
jsCaixa.addPairs("IDREC", aCaixa.getIdrec());
jsCaixa.addPairs("DATALAN", aCaixa.getDatlan());
jsCaixa.addPairs("VISTO", aCaixa.getVisto());
jsCaixa.addPairs("CODSC", aCaixa.getCodsc());
jsCaixa.addPairs("CODEMPRESA", aCaixa.getCodempresa());
jsCaixa.addPairs("OBS", aCaixa.getObs());
jsCaixa.addPairs("CODFORN", aCaixa.getCodforn());
/*
* Enviar o pedido para o WebService
*/
retorno = serv.SetPedido(jsCabec, aItem);
if (retorno!= "" ){
}
Log.d("Retnoro", retorno.toString());
//retorno = serv.setCaixa(caixa);
}
} catch (Exception e) {
//onProgressUpdate("Erro: " + e.getMessage());
Log.d("Erro ao Enviar pedido", e.toString());
}
}
}[/code]