trabajando en la vista de peiddos

This commit is contained in:
2025-11-17 22:52:35 +01:00
parent 6ff5250d1b
commit 997741c3c9
17 changed files with 4119 additions and 34 deletions

View File

@ -9,11 +9,14 @@ import java.util.Map;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.imprimelibros.erp.common.Utils;
import com.imprimelibros.erp.direcciones.Direccion;
import com.imprimelibros.erp.presupuesto.PresupuestoRepository;
import com.imprimelibros.erp.presupuesto.dto.Presupuesto;
import com.imprimelibros.erp.presupuesto.service.PresupuestoService;
import com.imprimelibros.erp.users.UserService;
import com.imprimelibros.erp.direcciones.DireccionService;
import com.imprimelibros.erp.pedidos.PedidoLinea.Estado;
@Service
public class PedidoService {
@ -24,22 +27,25 @@ public class PedidoService {
private final PedidoDireccionRepository pedidoDireccionRepository;
private final DireccionService direccionService;
private final UserService userService;
private final PresupuestoService presupuestoService;
public PedidoService(PedidoRepository pedidoRepository, PedidoLineaRepository pedidoLineaRepository,
PresupuestoRepository presupuestoRepository, PedidoDireccionRepository pedidoDireccionRepository,
DireccionService direccionService, UserService userService) {
DireccionService direccionService, UserService userService, PresupuestoService presupuestoService) {
this.pedidoRepository = pedidoRepository;
this.pedidoLineaRepository = pedidoLineaRepository;
this.presupuestoRepository = presupuestoRepository;
this.pedidoDireccionRepository = pedidoDireccionRepository;
this.direccionService = direccionService;
this.userService = userService;
this.presupuestoService = presupuestoService;
}
public int getDescuentoFidelizacion() {
public int getDescuentoFidelizacion(Long userId) {
// descuento entre el 1% y el 6% para clientes fidelidad (mas de 1500€ en el
// ultimo año)
double totalGastado = 1600.0; // Ejemplo, deberías obtenerlo del historial del cliente
LocalDateTime haceUnAno = LocalDateTime.now().minusYears(1);
double totalGastado = pedidoRepository.sumTotalByCreatedByAndCreatedAtAfter(userId, haceUnAno);
if (totalGastado < 1200) {
return 0;
} else if (totalGastado >= 1200 && totalGastado < 1999) {
@ -106,7 +112,7 @@ public class PedidoService {
linea.setPresupuesto(presupuesto);
linea.setCreatedBy(userId);
linea.setCreatedAt(LocalDateTime.now());
linea.setEstado(PedidoLinea.Estado.aprobado);
linea.setEstado(getEstadoInicial(presupuesto));
linea.setEstadoManual(false);
pedidoLineaRepository.save(linea);
@ -226,4 +232,13 @@ public class PedidoService {
}
private Estado getEstadoInicial(Presupuesto p){
if(presupuestoService.hasMaquetacion(p)){
return Estado.maquetacion;
} else {
return Estado.haciendo_ferro;
}
}
}