Ler lista dentro de outra lista

0 respostas
willsazon

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.

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());
        }
    }
}
Criado 7 de maio de 2014
Respostas 0
Participantes 1