selecaoDePeriodo method

Widget selecaoDePeriodo({
  1. required FiltrosWidgetModel filtrosDados,
  2. required FiltroController controller,
  3. required BuildContext context,
  4. required String tipo,
})

Implementation

Widget selecaoDePeriodo({
  required FiltrosWidgetModel filtrosDados,
  required FiltroController controller,
  required BuildContext context,
  required String tipo,
}) {
  return Builder(
    builder: (context) {
      if (tipo == 'datapickerfaturamento') {
        controller.validarSeDataSeraDeFaturamento();
      }
      return Card(
        child: Padding(
          padding: const EdgeInsets.fromLTRB(10, 15, 10, 10),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            mainAxisAlignment: MainAxisAlignment.start,
            children: [
              tituloCards(
                titulo: filtrosDados.titulo.toUpperCase(),
                context: context,
              ),
              SizedBox(
                width: 250,
                child: Observer(
                  builder: (_) => Visibility(
                    visible: tipo == 'datapickerfaturamento',
                    child: CheckboxListTile(
                      value: controller.isDataFaturamento,
                      title: const Text('Data faturamento'),
                      controlAffinity: ListTileControlAffinity.leading,
                      onChanged: (c) {
                        controller.isDataFaturamento = !controller.isDataFaturamento;
                        controller.validarSeDataSeraDeFaturamento();
                      },
                    ),
                  ),
                ),
              ),
              ButtonBar(
                alignment: MainAxisAlignment.start,
                mainAxisSize: MainAxisSize.max,
                buttonPadding: const EdgeInsets.all(10),
                children: [
                  TextButton.icon(
                    icon: const Icon(Icons.calendar_today),
                    label: Observer(
                      builder: (_) => Text(
                        controller.dtinicio,
                        style: const TextStyle(fontSize: 17),
                      ),
                    ),
                    onPressed: () async {
                      controller.dtinicio = await SettingsReports().selectDate(
                        context: context,
                      );
                    },
                  ),
                  TextButton.icon(
                    icon: const Icon(Icons.calendar_today),
                    label: Observer(
                      builder: (_) => Text(
                        controller.dtfim,
                        style: const TextStyle(fontSize: 17),
                      ),
                    ),
                    onPressed: () async {
                      controller.dtfim = await SettingsReports().selectDate(
                        context: context,
                      );
                    },
                  ),
                  PopupMenuButton(
                    itemBuilder: (context) {
                      return controller.listaDePeriodos.map(
                        (valor) {
                          return PopupMenuItem(
                            value: valor.replaceAll(' ', ''),
                            child: Text(valor),
                          );
                        },
                      ).toList();
                    },
                    onSelected: (value) {
                      controller.selecaoDeDataPorPeriodo(periodo: value.toString(), isDataPadrao: true);
                    },
                  )
                ],
              ),
            ],
          ),
        ),
      );
    },
  );
}