/// <summary>
        /// Trae los pagos hechos por los proveedores.
        /// </summary>
        /// <param name="estado">Estado que queremos filtrar.</param>
        /// <returns></returns>
        public List<ProvPagoInformado> getPagosPorEstado(EstadosFact estado)
        {
            ProvPagoInformado p = new ProvPagoInformado();
            EbuySql sql = new EbuySql();
            SqlParameter[] param = new SqlParameter[1];
            param[0] = new SqlParameter("@Estado", (int)estado);

            EbuyQuery query = new EbuyQuery();
            query.Stored = "COCG_FEBUY_RecibosPorEstado";
            query.Parametros = param;
            query.ConGenerico = true;
            lector = sql.ExecuteSPReader(query);
            List<ProvPagoInformado> pagos = new List<ProvPagoInformado>();
            while (lector.Read())
            {
                pagos.Add(p.Cast(lector));
            }

            return pagos;
        }
        public ProvPagoInformado Cast(IDataReader datareader)
        {
            ProvPagoInformado p = new ProvPagoInformado();

            //ID temporal,
            // Recibo posta
            // Valor
            // retenciones
            // valor total.
            // modo pago
            // tipo de pago
            // datos del tipo de pago.
            // facturas que paga.

            Dinero din = new Dinero();
            Moneda Mon = new Moneda();
            Mon.MonId = datareader["MonId"].ToString();
            p.Rec_Docid = Convert.ToInt32(datareader["Rec_Docid"]);
            //p.Recibo = datareader["Reciboid"].ToString();
            din.Moneda = Mon;
            din.Valor = Convert.ToDecimal(datareader["Importe"]);
            p.importe = din;
            p.observaciones = datareader["Observaciones"].ToString();
            //Efectivo
            if (Convert.ToInt16(datareader["TipoPago"]) == 1)
            {
                datosEfectivo = new FEBUY_ProvPagoInformadoEfectivo();

            }
            //Cheque
            if (Convert.ToInt16(datareader["TipoPago"]) == 2)
            {
                Banco b = new Banco();
                b.bank_id = datareader["bancoIddeDeposito"].ToString();
                b.Sucursal = datareader["sucursal"].ToString();
                datosCheque = new FEBUY_ProvPagoInformadoCheque();
                datosCheque.BancoDestino = b;
                datosCheque.nroCheque = datareader["nroCheque"].ToString();

            }
            //Transferencia
            if (Convert.ToInt16(datareader["TipoPago"]) == 3)
            {
                datosTransferencia = new FEBY_ProvPagoInformadoTransferencia();
                datosTransferencia.bancoIdDestino = datareader["bancoIddeDeposito"].ToString();
                datosTransferencia.sucursal = datareader["sucursal"].ToString();
            }
            p.TipoPago =  new tipoPagos();
            p.transaccion = datareader["transaccion"].ToString();

            return p;
        }