selecaoDeDataPorPeriodo method
Map<String, dynamic>
selecaoDeDataPorPeriodo(
{ - required String periodo,
- 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};
}