Bug #7800
abertoRelatório de venda operador x turno
0%
Descrição
Boa noite a todos,
Precisamos que os relatório de fluxo de pagamento sejam atrelados ao operador do dia e turno em que foi efetuada a venda.
Exemplo:
1 Comerciante que tem 3 turnos (manha, tarde e noite) só que o último turno so finaliza quando o último cliente sai (não há horário fixo para finalizar),
2 Quando for emitir um relatório do dia x este tem que mostrar toda venda deste dia x (inclusive as que foram feitas após as 00:00h)
Hoje o sistema se eu for emitir um relatório do dia x ele só mostra o que foi vendido entre 00:00 às 23:59, dessa maneira o relatório do dia fica errado.
Falo isso porque aqui no Brasil funciona assim, se preciso emitir um relatório do dia x o sistema verifica se o ultimo operador efetuou uma venda após as 00:00 (dia Y) e soma essa venda ao dia x (logo a competência de venda é do dia x e não dia Y).
Segue imgem explicando
@Lucas Lisboa @Cissy 崔敬仪 @henry 吴健
Obrigado
Ficheiros
Sub-tarefa
Tarefas relacionadas
Atualizado por Lilia 王莉君 há 4 meses
- Ficheiro 1733815322209.jpg 1733815322209.jpg adicionado
Olá Gustavo,
tudo bem?
Primeiro, precisamos entender qual é o objetivo desse design. É para acompanhar relatórios do fluxo de pagamento diário ou para saber o fluxo exato de cada operador durante os três turnos? Se você deseja acompanhar o fluxo diário, basta registrar o horário exato de término do trabalho do último operador como o horário final para gerar o relatório.
Na verdade, como um padrão de exibição no Shop back-end, atualmente não conseguimos realizar a associação que você mencionou, ligando ao operador e, em seguida, atribuindo automaticamente os pagamentos gerados após as 24h do último operador ao dia anterior.
Agurdamos a sua resposta
Atualizado por Rodrigues Gustavo há 4 meses
Lilia 王莉君 escreveu (#note-1):
Olá Gustavo,
tudo bem?
Primeiro, precisamos entender qual é o objetivo desse design. É para acompanhar relatórios do fluxo de pagamento diário ou para saber o fluxo exato de cada operador durante os três turnos? Se você deseja acompanhar o fluxo diário, basta registrar o horário exato de término do trabalho do último operador como o horário final para gerar o relatório.
Na verdade, como um padrão de exibição no Shop back-end, atualmente não conseguimos realizar a associação que você mencionou, ligando ao operador e, em seguida, atribuindo automaticamente os pagamentos gerados após as 24h do último operador ao dia anterior.
Agurdamos a sua resposta
ENVIAR FLUXOGRAMA
Atualizado por Rodrigues Gustavo há 4 meses
Rodrigues Gustavo escreveu (#note-2):
Lilia 王莉君 escreveu (#note-1):
Olá Gustavo,
tudo bem?
Primeiro, precisamos entender qual é o objetivo desse design. É para acompanhar relatórios do fluxo de pagamento diário ou para saber o fluxo exato de cada operador durante os três turnos? Se você deseja acompanhar o fluxo diário, basta registrar o horário exato de término do trabalho do último operador como o horário final para gerar o relatório.
Na verdade, como um padrão de exibição no Shop back-end, atualmente não conseguimos realizar a associação que você mencionou, ligando ao operador e, em seguida, atribuindo automaticamente os pagamentos gerados após as 24h do último operador ao dia anterior.
Agurdamos a sua resposta
Bom dia a todos,
Fiz uma pesquisa rápida e encontrei este exemplo para nosso chamado:
Java
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
// ... (Suponha uma classe Transacao com atributos dataHora e valor)
public class RelatorioCaixa {
public static Map<String, Double> gerarRelatorio(List<Transacao> transacoes, LocalDateTime dataInicio, LocalDateTime dataFim) {
// Formatador para exibir a data no formato desejado (ex: dd/MM/yyyy)
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
// Função para determinar o "dia de trabalho"
return transacoes.stream()
.collect(Collectors.groupingBy(
t -> formatter.format(t.getDataHora().withHour(0).withMinute(0).withSecond(0)),
Collectors.summingDouble(Transacao::getValor)
));
}
public static void main(String[] args) {
// ... (Exemplo de uso)
List<Transacao> transacoes = ...; // Carregar as transações
LocalDateTime dataInicio = LocalDateTime.of(2023, 11, 1, 0, 0);
LocalDateTime dataFim = LocalDateTime.of(2023, 11, 30, 23, 59);
Map<String, Double> relatorio = gerarRelatorio(transacoes, dataInicio, dataFim);
// Imprimir o relatório
relatorio.forEach((data, valorTotal) -> {
System.out.println("Data: " + data + ", Valor Total: " + valorTotal);
});
}
}
LocalDateTime : Utilizada para representar data e hora com alta precisão.
DateTimeFormatter : Formata a data de acordo com o padrão desejado.
groupingBy : Agrupa as transações por "dia de trabalho", definido como a data com a hora zerada.
summingDouble : Calcula a soma dos valores para cada grupo.
Dia de Trabalho : Ao zerar as horas, minutos e segundos da data da transação, estamos essencialmente definindo o "dia de trabalho" como o dia em que a transação ocorreu, independentemente da hora.
Essa abordagem permite definir diferentes critérios para determinar o "dia de trabalho" se necessário.
Formatação: O DateTimeFormatter oferece controle sobre como a data é apresentada no relatório.
A classe LocalDateTime oferece diversas outras funções para manipulação de datas e horas, como adição de dias, horas, etc.
Com base no exemplo a dica é determinar o dia de trabalho para gerar nossos relatórios.
@Lucas Lisboa @Cissy 崔敬仪 @henry 吴健
Me sinalize se este exemplo esclareceu as dúvidas.
Obrigado
Atualizado por Cissy 崔敬仪 há aproximadamente 1 mês
- Data de fim configurado como 24/02/2025
Atualizado por Cissy 崔敬仪 há aproximadamente 1 mês
- Estado alterado de New para Follow up from Brazil
- Atribuído a alterado de Wonder 黄德亮 para Rodrigues Gustavo
Hi, hope you are doing well
We explained this issue in the last meeting 26th. If there is no problem, please "Resolved" it. Feel free to contact me.
Thanks a lot.
Atualizado por Rodrigues Gustavo há aproximadamente 1 mês
- Estado alterado de Follow up from Brazil para Resolved
Cissy 崔敬仪 escreveu (#note-6):
Hi, hope you are doing well
We explained this issue in the last meeting 26th. If there is no problem, please "Resolved" it. Feel free to contact me.
Thanks a lot.
Boa tarde a todos
Teste realizado com sucesso, parabéns a todos os envolvidos.
@Lucas Lisboa @henry 吴健 @Cissy 崔敬仪
Obrigado