Projeto

Geral

Perfil

Bug #7800

aberto

Relatório de venda operador x turno

Adicionado por Rodrigues Gustavo4 meses atrás. Alterado há aproximadamente 1 mês atrás.

Estado:
Resolved
Prioridade:
Immediate
Atribuído a:
Data de início:
09/12/2024
Data de fim:
24/02/2025 (Atrasado 37 dias)
% Completo:

0%

Tempo estimado:
Module:
PhizClip Shop

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 王莉君4 meses

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 Gustavo4 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 Gustavo4 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 崔敬仪3 meses

Hi, hope you are doing well
Received. We will organizing with 7581(point 3) together. If there is a deadline, I will update here immediately.
Thanks a lot.

Actions #5

Atualizado por Cissy 崔敬仪aproximadamente 1 mês

  • Data de fim configurado como 24/02/2025

Atualizado por Cissy 崔敬仪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 Gustavoaproximadamente 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

Também disponível em: Atom PDF