From 8f4f3ca7c8ee04c9d3d65ebff445e80fc7b36731 Mon Sep 17 00:00:00 2001
From: aichatou <aichatou.coulibaly@etu.univ-amu.fr>
Date: Sun, 23 Mar 2025 15:09:19 +0100
Subject: [PATCH] Facture

---
 build.gradle                                  |  2 ++
 .../projet/projetIndu/entities/Invoice.java   | 29 -------------------
 .../projet/projetIndu/entities/Patient.java   |  1 -
 .../projetIndu/entities/PaymentStatus.java    |  4 +++
 .../com/projet/projetIndu/entities/User.java  |  2 ++
 .../projetIndu/services/PatientService.java   | 11 +++++++
 src/main/resources/application.properties     | 11 ++++---
 .../resources/templates/doctor-invoices.html  | 10 +++++++
 src/main/resources/templates/invoices.html    | 10 +++++++
 9 files changed, 46 insertions(+), 34 deletions(-)
 create mode 100644 src/main/java/com/projet/projetIndu/entities/PaymentStatus.java
 create mode 100644 src/main/resources/templates/doctor-invoices.html
 create mode 100644 src/main/resources/templates/invoices.html

diff --git a/build.gradle b/build.gradle
index f30e17c..d09963f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -32,6 +32,8 @@ dependencies {
 	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
 	implementation 'org.springframework.boot:spring-boot-starter-mail'
 	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
+	implementation 'org.springframework.boot:spring-boot-starter:3.2.1'
+
 	implementation 'org.springframework.boot:spring-boot-starter-web'
 	implementation 'org.springframework.boot:spring-boot-starter-webflux'
 	implementation 'org.springframework.ai:spring-ai-tika-document-reader'
diff --git a/src/main/java/com/projet/projetIndu/entities/Invoice.java b/src/main/java/com/projet/projetIndu/entities/Invoice.java
index af8b413..7cef425 100644
--- a/src/main/java/com/projet/projetIndu/entities/Invoice.java
+++ b/src/main/java/com/projet/projetIndu/entities/Invoice.java
@@ -1,33 +1,4 @@
 package com.projet.projetIndu.entities;
 
-import jakarta.persistence.*;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-import java.time.LocalDateTime;
-
-@Entity
-@Table(name = "invoices")
-@Getter
-@Setter
-@NoArgsConstructor
 public class Invoice {
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    private Long id;
-
-    @Column(nullable = false)
-    private double amount;
-
-    @Column(nullable = false, updatable = false)
-    private LocalDateTime issue_date = LocalDateTime.now();
-
-    @Enumerated(EnumType.STRING)
-    @Column(nullable = false)
-    private InvoiceStatus status;
-
-    @Column(nullable = false, updatable = false)
-    private LocalDateTime createdAt = LocalDateTime.now();
 }
diff --git a/src/main/java/com/projet/projetIndu/entities/Patient.java b/src/main/java/com/projet/projetIndu/entities/Patient.java
index 047a237..51be87c 100644
--- a/src/main/java/com/projet/projetIndu/entities/Patient.java
+++ b/src/main/java/com/projet/projetIndu/entities/Patient.java
@@ -30,5 +30,4 @@ public class Patient extends User {
         this.dateOfBirth = dateOfBirth;
     }
 
-
 }
diff --git a/src/main/java/com/projet/projetIndu/entities/PaymentStatus.java b/src/main/java/com/projet/projetIndu/entities/PaymentStatus.java
new file mode 100644
index 0000000..65cc0e5
--- /dev/null
+++ b/src/main/java/com/projet/projetIndu/entities/PaymentStatus.java
@@ -0,0 +1,4 @@
+package com.projet.projetIndu.entities;
+
+public class PaymentStatus {
+}
diff --git a/src/main/java/com/projet/projetIndu/entities/User.java b/src/main/java/com/projet/projetIndu/entities/User.java
index 709f0de..bfc67a3 100644
--- a/src/main/java/com/projet/projetIndu/entities/User.java
+++ b/src/main/java/com/projet/projetIndu/entities/User.java
@@ -63,4 +63,6 @@ public abstract class User {
     }
 
 
+    public void setId(Long id) {
+    }
 }
diff --git a/src/main/java/com/projet/projetIndu/services/PatientService.java b/src/main/java/com/projet/projetIndu/services/PatientService.java
index 0edbe55..b234e8d 100644
--- a/src/main/java/com/projet/projetIndu/services/PatientService.java
+++ b/src/main/java/com/projet/projetIndu/services/PatientService.java
@@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 import java.util.Optional;
@@ -21,6 +22,7 @@ public class PatientService {
     }
 
     public List<Patient> getAllPatients() {
+
         return patientRepository.findAll();
     }
 
@@ -49,4 +51,13 @@ public class PatientService {
                 .map(Patient::getId)
                 .orElseThrow(() -> new RuntimeException("Patient non trouvé"));
     }
+
+    @Transactional
+    public Patient mettreAJourPatient(Long id, Patient patient) {
+        if (patientRepository.existsById(id)) {
+            patient.setId(id);
+            return patientRepository.save(patient);
+        }
+        return null;
+    }
 }
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 95add08..fb7cb50 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,15 +1,18 @@
 spring.application.name=projetIndu
-spring.datasource.url=jdbc:mysql://localhost:3306/projet
+spring.datasource.url=jdbc:mysql://localhost:3307/projet
 spring.datasource.username=root
-spring.datasource.password=jessie
+spring.datasource.password=241001
 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
 spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
-spring.jpa.hibernate.ddl-auto=create-drop
+spring.jpa.hibernate.ddl-auto=create
 spring.jpa.show-sql=true
+spring.jpa.properties.hibernate.format_sql=true
 spring.thymeleaf.prefix=classpath:/templates/
 spring.thymeleaf.suffix=.html
 spring.thymeleaf.cache=false
 spring.servlet.multipart.max-file-size=100MB
 spring.servlet.multipart.max-request-size=100MB
-spring.mvc.hiddenmethod.filter.enabled=true
+sprin.g.mvc.hiddenmethod.filter.enabled=true
+
 spring.banner.location=banner.txt
+
diff --git a/src/main/resources/templates/doctor-invoices.html b/src/main/resources/templates/doctor-invoices.html
new file mode 100644
index 0000000..4bdcfcb
--- /dev/null
+++ b/src/main/resources/templates/doctor-invoices.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8">
+  <title>$Title$</title>
+</head>
+<body>
+$END$
+</body>
+</html>
\ No newline at end of file
diff --git a/src/main/resources/templates/invoices.html b/src/main/resources/templates/invoices.html
new file mode 100644
index 0000000..4bdcfcb
--- /dev/null
+++ b/src/main/resources/templates/invoices.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8">
+  <title>$Title$</title>
+</head>
+<body>
+$END$
+</body>
+</html>
\ No newline at end of file
-- 
GitLab