When going through the second my sqlite table starts from the second android record

1

Good morning

I'm just finishing developing an app in android studio, I just have a problem, I save data in a bd in sqlite, only when I make a select from my table I do it well, but I try to go back to my table but it does from the second record and not from the first, I leave the code where I made the journey.

I leave the code where I first made the selection and that if I go through the table well from the first record but then try to return to the beginning of the table to go through it again but only runs through me from the second record

Cursor aIds = querySql("SELECT DISTINCT CLiente, FechaCobro FROM " + SqliteDB.DBhelper.TABLE_NAME_DETALLECLIENTE + " WHERE " + SqliteDB.DBhelper.COLUMN_NAME_Status + " = " + " '" + true + "'", null);
        SimpleDateFormat DateFormatterd = new SimpleDateFormat("E MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH);
        int cont = aIds.getCount();
        if (aIds.getCount() > 0) {
            while (aIds.moveToNext()) {
                int _Cliente = aIds.getInt(aIds.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_CLiente));
                Date _Fecha = null;
                try {
                    _Fecha = (DateFormatterd.parse(aIds.getString(aIds.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_FechaCobro))));
                } catch (ParseException e) {
                    e.printStackTrace();
                }

                Cursor aRs = querySql("SELECT * FROM " + SqliteDB.DBhelper.TABLE_NAME_DETALLECLIENTE + " WHERE " + SqliteDB.DBhelper.COLUMN_NAME_Status + " = " + " '" + true + "'" + " AND CLiente=" + _Cliente +  " AND FechaCobro " + "=" + "'" + _Fecha + "'" , null);
                SimpleDateFormat DateFormatterD  = new SimpleDateFormat("E MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH);

                if (aRs.getCount() > 0  || aRs.getCount() == _Cliente)  {
                    while (aRs.moveToNext()) {

                        Id = aRs.getInt(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_ID));
                        Folio = aRs.getString(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Folio));
                        ClientClave = aRs.getInt(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_CLiente));
                        try {
                            Date Fecha = DateFormatterD.parse(aRs.getString(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Fecha)));
                        } catch (ParseException e) {
                            e.printStackTrace();
                        }
                        DocumentoD = aRs.getInt(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Documento));
                        DocumentoDescripcion = aRs.getString(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_DocumentoDescripcion));
                        IdCliente = aRs.getInt(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_CLiente));
                        MonedaD = aRs.getInt(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_MonedaD));
                        ImporteD = aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Importe));
                        DescuentoD = aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Descuento));
                        SubTotalD = aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_SubTotal));
                        Retencion1D = aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Retencion1));
                        Retencion2D = aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Retencion2));
                        IEPSD = aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_IEPS));
                        IVAD = aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_IVA));
                        TotalD = aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Total));
                        Saldo = aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_SaldoD));
                        Double SaldoVencido = aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_SaldovencidoD));
                        String ParcialidadD = aRs.getString(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Parcialidad));
                        Double ParcialidadTotal = aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_ParcialidadTotal));
                        String PagoCondicionDescripcion = aRs.getString(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_PagoCondicionDescripcion));
                        UltimoCobroObservacion = aRs.getString(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_UltimoCobroObservacion));
                        TotalAplicado += aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_TotalApli));
                        TotalApli =  aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_TotalApli));
                        UrlD = aRs.getString(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_URL));
                        DireccionD = aRs.getString(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Direccion));

                    }
                    if (aRs.getCount() > 1)
                    {
                        if (TotalAplicado > 0 || TotalAplicado == 0 ) {
                            Factor = TotalAplicado / TotalD;

                            Importe += ImporteD * Factor;
                            Descuento += DescuentoD * Factor;
                            SubTotal += SubTotalD * Factor;
                            IVA += IVAD * Factor;
                            Retencion1 += Retencion1D * Factor;
                            Retencion2 += Retencion2D * Factor;
                            IEPS += IEPSD * Factor;
                            Total += TotalD * Factor;
                            Url = UrlD;
                            Direccion = DireccionD;
                            Cliente = IdCliente;
                            Moneda = MonedaD;
                            Observaciones = UltimoCobroObservacion;

                            O_ResultadoEncabezado = O_WS.LLenarEncabezadoCXCP("I",    //Accion I
                                    0,      //Id = 0
                                    "",
                                    new Date(),
                                    Cliente,
                                    0,
                                    Moneda,
                                    1.0,      //Tipo de Cambio por default 1
                                    0,      //Cuenta Bancaria
                                    1,          //Pago Forma
                                    Total,          //Saldo
                                    Importe,    //Importe
                                    0,          //Financiamiento
                                    Descuento,
                                    SubTotal,
                                    Retencion1,
                                    Retencion2,
                                    IEPS,
                                    IVA,
                                    0,          //ISH,
                                    Total,      //Total
                                    Total,      //totalaplicado,
                                    "A",        //status,
                                    "",         //usucariocancela,
                                    0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,   //Numero1...Numero10
                                    Url, //Texto1
                                    Direccion,  //Texto2
                                    "", "", "", "", "", "", "", "",                      //Texto1...Texto10
                                    new Date(), new Date(), new Date(), new Date(), new Date(), new Date(),  //Fecha1...Texto6
                                    Observaciones,         //Observacion
                                    0, 0, 0, 0, 0, 0,         //Catalogo1...Catalogo6
                                    "",         //ordencompra
                                    0,          //concepto
                                    "",         //observacioncancelacion
                                    0,          //origenventacompra,
                                    0           //origeninventario
                            );

                        }
                    }else{
                        if (TotalApli > 0 || TotalApli == 0) {
                            Factor = TotalApli / TotalD;

                            Importe += ImporteD * Factor;
                            Descuento += DescuentoD * Factor;
                            SubTotal += SubTotalD * Factor;
                            IVA += IVAD * Factor;
                            Retencion1 += Retencion1D * Factor;
                            Retencion2 += Retencion2D * Factor;
                            IEPS += IEPSD * Factor;
                            Total += TotalD * Factor;
                            Url = UrlD;
                            Direccion = DireccionD;
                            Cliente = IdCliente;
                            Moneda = MonedaD;
                            Observaciones = UltimoCobroObservacion;

                            O_ResultadoEncabezado = O_WS.LLenarEncabezadoCXCP("I",    //Accion I
                                    0,      //Id = 0
                                    "",
                                    new Date(),
                                    Cliente,
                                    0,
                                    Moneda,
                                    1.0,      //Tipo de Cambio por default 1
                                    0,      //Cuenta Bancaria
                                    1,          //Pago Forma
                                    Total,          //Saldo
                                    Importe,    //Importe
                                    0,          //Financiamiento
                                    Descuento,
                                    SubTotal,
                                    Retencion1,
                                    Retencion2,
                                    IEPS,
                                    IVA,
                                    0,          //ISH,
                                    Total,      //Total
                                    Total,      //totalaplicado,
                                    "A",        //status,
                                    "",         //usucariocancela,
                                    0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,   //Numero1...Numero10
                                    Url, //Texto1
                                    Direccion,  //Texto2
                                    "", "", "", "", "", "", "", "",                      //Texto1...Texto10
                                    new Date(), new Date(), new Date(), new Date(), new Date(), new Date(),  //Fecha1...Texto6
                                    Observaciones,         //Observacion
                                    0, 0, 0, 0, 0, 0,         //Catalogo1...Catalogo6
                                    "",         //ordencompra
                                    0,          //concepto
                                    "",         //observacioncancelacion
                                    0,          //origenventacompra,
                                    0           //origeninventario
                            );

                        }

                    }


                }

                if (O_ResultadoEncabezado.ErrorId == 0) {
                    aRs.moveToFirst();

                        while (aRs.moveToNext()) {

                            if (aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_TotalApli)) > 0 || aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_TotalApli)) == 0)
                            {
                                DFactor = aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_TotalApli)) / aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Total));


                                Resultado = Integer.parseInt(O_WS.LLenarDetalleCXCP

                                        ("I", //Accion
                                                0, //id
                                                Id,  //Origen
                                                aRs.getInt(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Documento)),  //OrigenDocumento
                                                aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Importe)) * DFactor,   //Importe
                                                (Double) 0.0,  //Financiamiento
                                                aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Descuento)), //Descuento
                                                aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_SubTotal)) * DFactor,   //Subtotal
                                                aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Retencion1)) * DFactor, //Retencion1
                                                aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Retencion2)) * DFactor,  //Retencion2
                                                aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_IEPS)) * DFactor,   //IEPS
                                                aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_IVA)) * DFactor, //IVA
                                                (Double) 0.0, //ISH
                                                aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Total)) * DFactor,  //Total
                                                aRs.getDouble(aRs.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_SaldoD)),//Saldo
                                                "Android App Desconectado"      //Referencia
                                        ));
                            }

                        }
                }

                webService.STR_Resultado O_Resultado = null;

                if (Resultado == 0) {

                    ArrayList<DetalleMenu> ArrayMenu = new ArrayList<DetalleMenu>();
                    Cursor arS = querySql("SELECT * FROM " + SqliteDB.DBhelper.TABLE_NAME_Menu , null);
                    if (arS.getCount() > 0) {

                        while (arS.moveToNext()) {

                            DetalleMenu newDetalle = new DetalleMenu(
                                    (arS.getInt(arS.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_IdMenu))),
                                    (arS.getInt(arS.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_EmpresaM))),
                                    (arS.getString(arS.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_DescripcionMenu))),
                                    (arS.getString(arS.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Evento))),
                                    (arS.getInt(arS.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Modulo))),
                                    (arS.getInt(arS.getColumnIndex(SqliteDB.DBhelper.COLUMN_NAME_Operacion))),
                                    (arS.getInt(arS.getColumnIndex(SqliteDB.DBhelper.COLIMN_NAME_Documento))));
                            ArrayMenu.add(newDetalle);
                        }

                    }

                    for (int i=0; i< ArrayMenu.size();i++)
                    {
                        Modulo = ((DetalleMenu)ArrayMenu.get(i)).getModulo();
                        Operacion =  ((DetalleMenu)ArrayMenu.get(i)).getOperacion();
                        Documento =  ((DetalleMenu)ArrayMenu.get(i)).getDocumento();
                    }


                    O_Resultado = O_WS.GrabarCxCP(Modulo,      //Modulo
                            Operacion,      //Operacion
                            Documento,      //Documento
                            0,      //OrigenId
                            0);     //OrigenDocumento

                }

                //Se inicializan Variables
                ImporteD = 0.0;
                DescuentoD = 0.0;
                SubTotalD = 0.0;
                IVAD = 0.0;
                TotalD = 0.0;
                Importe = 0.0;
                Descuento = 0.0;
                SubTotal = 0.0;
                IVA = 0.0;
                Total = 0.0;
                TotalAplicado = 0.0;
            }
    
asked by Hugo Rodriguez 28.12.2016 в 16:38
source

1 answer

0

Sqlite has a method for this case. Replace this if.

if (aIds.getCount() > 0) {

}

with this if;

 if (fila.moveToFirst()) {

 }
  

Calling moveToFirst () does two things: it allows you to test whether the query returned an empty set (by testing the return value) and moves the cursor to the first result (when the set is not empty).

    
answered by 03.10.2018 в 14:37