public RecibosEbuy castDR(IDataReader dr)
        {
            RecibosEbuy item = new RecibosEbuy();
               docImputados docs = new docImputados();
               try
               {

               if (dr["conRetenciones"] is System.DBNull)
               {
                   item.conRetenciones = 0;
               }
               else
               {
                   item.conRetenciones = (decimal)dr["conRetenciones"];
               }
               if (!(dr["estado"] is System.DBNull))
               {
                   item.estado = (EstadosFact) Convert.ToInt16(dr["estado"]);
               }

               if (dr["fechaInforme"] is System.DBNull)
               {
                   item.fechaInforme = DateTime.Parse("01/01/1900");
               }
               else
               {
                   item.fechaInforme = (DateTime)dr["fechaInforme"];
               }
               if (dr["Importe"] is System.DBNull)
               {
                   item.Importe = 0;
               }
               else
               {
                   item.Importe = (decimal)dr["Importe"];
               }
               if (dr["monid"] is System.DBNull)
               {
                   item.monid = "";
               }
               else
               {
                   item.monid = (string)dr["monid"];
               }
               if (dr["pagoTipo"] is System.DBNull)
               {
                   item.pagoTipo = "";
               }
               else
               {
                   item.pagoTipo = (string)dr["pagoTipo"];
               }
               if (dr["Importe_Parcial"] is System.DBNull)
               {
                   item.Importe_Parcial = 0;
               }
               else
               {
                   item.Importe_Parcial = (decimal)dr["Importe_Parcial"];
               }
               if (dr["ReciboId"] is System.DBNull)
               {
                   item.ReciboId = "";
               }
               else
               {
                   item.ReciboId = (string)dr["ReciboId"];
               }
               if (dr["Rec_Docid"] is System.DBNull)
               {
                   item.Rec_Docid = 0;
               }
               else
               {
                   item.Rec_Docid = (decimal)dr["Rec_Docid"];
               }

               //Nuevos campos.
                if (dr["ModoPago"] is System.DBNull)
                {
                    item.ModoPago.ID = 0;
                    item.ModoPago.descripcion = "";

                }
                else
                {
                    item.ModoPago.ID = (int)dr["ModoPago"];
                    item.ModoPago.descripcion = (string)dr["ModoPagoDescripcion"];

                }

                if (dr["Factura_DocId"] is System.DBNull)
                {
                    docs.idFactura = "0";

                }
                else
                {
                    docs.idFactura = dr["Factura_DocId"].ToString();
                }
                if (dr["RetencionFactura"] is System.DBNull)
                {
                    docs.importeRetenciones = 0;

                }
                else
                {
                    docs.importeRetenciones = Convert.ToDecimal(dr["RetencionFactura"]);
                }

                List<docImputados> listaDocs = new List<docImputados>();
                listaDocs.Add(docs);
                item.Docid_imputados = listaDocs;

               }
               catch (Exception e)
               {

               throw new Exception(e.Message);
               }

               return item;
        }
        public List<docImputados> listaFacturasNoElegidas(ref decimal totalaPagar)
        {
            lFCnoElegidas = new List<docImputados>();

            docImputados doc;
            if (lbl_facturasApagar.Text == "")
            {

                return null;
            }
            else
            {
                //foreach (GridViewRow item in GrillaCtaCte.Rows)
               // totalaPagar = 0;
                for (int i = 0; i <= GrillaCtaCte.Rows.Count - 1; i++)
                {
                    doc = new docImputados();
                    CheckBox cb;
                    cb = (CheckBox)GrillaCtaCte.Rows[i].FindControl("CheckBox1");
                    if (!cb.Checked && cb.Enabled)
                    {
                        Decimal aPagar = 0;
                        doc.numFactura = GrillaCtaCte.Rows[i].Cells[3].Text;
                        doc.idFactura = GrillaCtaCte.Rows[i].Cells[1].Text;
                        doc.importeF = decimal.Parse(GrillaCtaCte.Rows[i].Cells[4].Text);
                        Literal saldofact = (Literal)GrillaCtaCte.Rows[i].FindControl("PagadoFactura");
                        doc.Pagado = decimal.Parse(saldofact.Text);
                        aPagar = doc.importeF - doc.Pagado;

                        if (aPagar > 0)
                        {
                            doc.importeF = aPagar;

                            //totalaPagar += aPagar; // doc.importeF;
                            lFCnoElegidas.Add(doc);
                        }
                        doc.importePagado = 0;

                    }
                }

            }

            return lFCnoElegidas;
        }
        public List<Factura_cabecera> getCFacturaConRecibos(BusquedaFiltroCuentaCorriente filtro, string socio)
        {
            SqlParameter[] param = new SqlParameter[6];
            Factura_cabecera item = new Factura_cabecera();

            param[0] = new SqlParameter("@Proveedor", filtro.Proveedor);
            param[1] = new SqlParameter("@TipoFiltro", (int)filtro.TipoFiltro);
            param[2] = new SqlParameter("@FechaDesde", filtro.FechaDesde);
            param[3] = new SqlParameter("@FechaHasta", filtro.FechaHasta);
            param[4] = new SqlParameter("@OrderBy", filtro.Ordenamiento);
            param[5] = new SqlParameter("@Socio", socio);
            List<Factura_cabecera> lista = new List<Factura_cabecera>();

            datosSQL.ConGenerico = true;
            datosSQL.Parametros = param;
            datosSQL.Stored = "COCG_FEBUY_CFacturas";
            lector = ebSQL.ExecuteSPReader(datosSQL);
            while (lector.Read())
            {
                lista.Add(item.castDR(lector));
            }

            lector.Close();

            List<RecibosEbuy> recibos;

            docImputados doc = new docImputados();

            recibos = getRecibosdeUnaFact(lista);

            foreach (Factura_cabecera f in lista)
            {
                List<RecibosEbuy> elegidos = new List<RecibosEbuy>();
                doc.idFactura =  f.docid.ToString();
                elegidos = recibos.FindAll(delegate(RecibosEbuy r) { return r.Docid_imputados.Exists  (delegate (docImputados d) { return d.idFactura ==  f.docid.ToString() ;})  ; });
                f.recibosEbuy = elegidos;
            }

            //EbuySqlFact.ExecuteSP(out lista,"COCG_FEBUY_CFacturas", param, false);
            return lista;
        }