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: Builder(
        builder: (BuildContext context) => SizedBox(
          width: context.dialogWidth(),
          child: SingleChildScrollView(
            child: UColumn(
              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(
                              spacing: 8,
                              mainAxisSize: MainAxisSize.min,
                              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(),
            ),
          ),
        ),
      ),
    ),
  );
}