dormBedInvoiceList static method

void dormBedInvoiceList(
  1. UDormBedContractResponse contract, {
  2. Future<void> onClosed()?,
})

Implementation

static void dormBedInvoiceList(UDormBedContractResponse contract, {Future<void> Function()? onClosed}) {
  final List<UDormBedInvoiceResponse> invoices = contract.invoices ?? <UDormBedInvoiceResponse>[];
  if (invoices.isEmpty) {
    UToast.error(message: U.s.noItemsFound(U.s.invoice));
    return;
  }
  UNavigator.dialog(
    AlertDialog(
      title: Text(U.s.payment),
      content: SizedBox(
        width: 420,
        child: UColumn(
          spacing: 0,
          mainAxisSize: MainAxisSize.min,
          children: invoices
              .map(
                (UDormBedInvoiceResponse i) => ListTile(
                  dense: true,
                  title: UTextBodyMedium(i.netDue.rial()),
                  subtitle: UTextBodySmall(i.dueDate.toJalaliDate()),
                  trailing: i.isPaid
                      ? UTextBodySmall(U.s.paid, color: UAdminTheme.green)
                      : URow(
                          mainAxisSize: MainAxisSize.min,
                          spacing: 0,
                          children: <Widget>[
                            IconButton(
                              icon: const Icon(Icons.copy_rounded),
                              tooltip: "${U.s.copy} ${U.s.link}",
                              onPressed: () => copyDormBedInvoiceLink(i),
                            ),
                            IconButton(
                              icon: const Icon(Icons.payments_rounded),
                              tooltip: U.s.payment,
                              onPressed: () => dormBedInvoice(i, onClosed: onClosed),
                            ),
                          ],
                        ),
                ),
              )
              .toList(),
        ),
      ),
    ),
  );
}