selecaoDeDataPorPeriodo method

  1. @action
Map<String, dynamic> selecaoDeDataPorPeriodo({
  1. required String periodo,
  2. required bool isDataPadrao,
})

Implementation

@action
Map<String, dynamic> selecaoDeDataPorPeriodo({required String periodo, required bool isDataPadrao}) {
  var today = DateTime.now().toLocal();
  int mes, ano;

  mes = int.parse(today.toString().substring(5, 7));
  ano = int.parse(today.toString().substring(0, 4));

  initializeDateFormatting('pt_BR', null);

  String weekday = DateFormat.E('pt_BR').format(DateTime.now().toLocal());

  int diaDaSemana = SettingsReports.diaDaSemanaConverte(dia: weekday);

  String dtinicioFiltro = '';
  String dtfimFiltro = '';

  switch (periodo) {
    case 'Hoje':
      dtinicioFiltro = SettingsReports.formatarDataPadraoBR(data: "${DateTime.now().toLocal()}");
      dtfimFiltro = SettingsReports.formatarDataPadraoBR(data: "${DateTime.now().toLocal()}");
    break;

    case 'Ontem':
      dtinicioFiltro = SettingsReports.formatarDataPadraoBR(data: "${today.add(const Duration(days: -1))}");
      dtfimFiltro = SettingsReports.formatarDataPadraoBR(data: "${today.add(const Duration(days: -1))}");
    break;

    case 'Semanaatual':
      dtinicioFiltro = SettingsReports.formatarDataPadraoBR(data: "${today.add(Duration(days: -1 * diaDaSemana))}");
      dtfimFiltro = SettingsReports.formatarDataPadraoBR(data: "${today.add(Duration(days: (6 - diaDaSemana)))}");
    break;

    case 'Semanaanterior':
      dtinicioFiltro = SettingsReports.formatarDataPadraoBR(data: "${today.add(Duration(days: (6 - diaDaSemana) - 7 - 6))}");
      dtfimFiltro = SettingsReports.formatarDataPadraoBR(data: "${today.add(Duration(days: -1 * (diaDaSemana + 1)))}");
    break;

    case 'Últimos15dias':
      dtinicioFiltro = SettingsReports.formatarDataPadraoBR(data: "${today.add(const Duration(days: -15))}");
      dtfimFiltro = SettingsReports.formatarDataPadraoBR(data: "${today.add(const Duration(days: 0))}");
    break;

    case 'Mêsatual':
      dtinicioFiltro = '01/${today.toString().substring(5, 7)}/${today.toString().substring(0, 4)}';
      dtfimFiltro = '${SettingsReports.qtdDiasDoMes(mes, ano)}/${today.toString().substring(5, 7)}/${today.toString().substring(0, 4)}';
    break;

    case 'Mêsanterior':
      ano = (mes - 1 == 0 ? ano - 1 : ano);
      mes = (mes - 1 == 0 ? mes = 12 : mes - 1);
      if (mes < 10) {
        dtinicioFiltro = '01/0$mes/$ano';
        dtfimFiltro = '${SettingsReports.qtdDiasDoMes(mes, ano)}/${'0$mes'}/$ano';
      } else {
        dtinicioFiltro = '01/$mes/$ano';
        dtfimFiltro = '${SettingsReports.qtdDiasDoMes(mes, ano)}/$mes/$ano';
      }
    break;

    case 'Anoatual':
      dtinicioFiltro = '01/01/$ano';
      dtfimFiltro = '31/12/$ano';
    break;

    case 'Anoanterior':
      dtinicioFiltro = '01/01/${ano - 1}';
      dtfimFiltro = '31/12/${ano - 1}';
    break;

    default:
      dtinicioFiltro = '01/01/${periodo.toString().replaceAll('Ano', '')}';
      dtfimFiltro = '31/12/${periodo.toString().replaceAll('Ano', '')}';
    break;
  }

  if(isDataPadrao){
    dtinicio = dtinicioFiltro;
    dtfim = dtfimFiltro;
  }

  return {'dtinicioFiltro': dtinicioFiltro, 'dtfimFiltro': dtfimFiltro};
}