Saltearse al contenido

FinanceProvider

Provider para gestionar conceptos de pago, facturas y métodos de pago. Incluye funcionalidades para inicialización, obtención de servicios de pago, proceso del pago de conceptos, y registro de tarjetas de crédito mediante servicios externos.

Importación

import 'package:togie/providers/finance_provider.dart';

Métodos

MétodoDescripción
init() Inicializa el proveedor, limpiando listas y cargando facturas pendientes y/o extras.
getPaymentsServices() Obtiene y actualiza la lista de servicios de pago disponibles vía API.
payConcepts(int serviceId) Procesa el pago de los conceptos seleccionados solicitando un enlace de pago a la API, retornando la URL generada en caso de éxito.
createCard(CreditCard card) Registra una nueva tarjeta de crédito utilizando el servicio de pago seleccionado (por ejemplo, Kushki) y retorna un valor booleano que indica el éxito del proceso.
isPaymentAdded(Concept payment) Verifica si un concepto de pago ya está agregado en la lista de pagos a realizar.
addPayment(Concept payment) Agrega o remueve un concepto de pago de la lista de pagos a realizar, según si ya se encuentra agregado.
addNextPayment() Reemplaza la lista de pagos a realizar con los conceptos de pago pendientes correspondientes al próximo vencimiento.
removePayment(Concept payment) Elimina un concepto de pago de la lista de pagos a realizar.
clearConcepts() Limpia la lista de conceptos de pago seleccionados.

Propoiedades

PropiedadTipoDescripción
isLoadingboolIndica si el proveedor está en proceso de carga de datos.
onErrorboolIndica si ocurrió un error durante la carga de datos.
paymentServicesList<PaymentService>Lista de servicios de pago disponibles.
cardsListList<CreditCard>Lista de tarjetas de crédito registradas.
hasSelectedPaymentServiceboolIndica si se ha seleccionado un servicio de pago.
selectedPaymentServicePaymentService?Servicio de pago actualmente seleccionado.
nextToPayList<Concept> Lista de conceptos de pago pendientes, filtrados para aquellos con vencimiento próximo (antes del siguiente mes).
totalNextToPaydouble Total a pagar de los conceptos con vencimiento próximo.
pendingPaymentsList<Concept> Lista de conceptos de pago pendientes, ordenados por fecha de vencimiento.
aditionalPaymentsList<Concept> Lista de conceptos de pago adicionales.
toPayList<Concept> Lista de conceptos de pago seleccionados para procesar.
totalToPaydouble Total acumulado de los conceptos seleccionados para pagar.
example.dart
FinanceProvider financeProvider = context.read<FinanceProvider>();
await financeProvider.getPaymentsServices();