← Back
Show Markdown
Download Markdown
Ce module fournit des fonctionnalités pour la gestion des stocks, des ventes, des achats, des fournisseurs, des types de produits et des catégories pour une entreprise de vente au détail.
@Service
public class ExampleService {
private final SaleService saleService;
public ExampleService(SaleService saleService) {
this.saleService = saleService;
}
public void registerNewSale() {
SaleDetailsRequestDto saleDetailsRequestDto = SaleDetailsRequestDto.builder()
.productsList(List.of(ProductPatchRequestDto.builder().name("Product Name").build()))
.amount(new BigDecimal("100.00"))
.discount(new BigDecimal("0.10"))
.quantity(1L)
.build();
SaleResponseDto saleResponseDto = saleService.registerSale(saleDetailsRequestDto);
System.out.println("Sale registered with ID: " + saleResponseDto.getId());
}
}
Pour enregistrer une vente, envoyez une requête POST à /sales/register
avec la charge utile JSON suivante :
{
"productsList": [
{
"name": "Product Name"
}
],
"amount": 100.00,
"discount": 0.10,
"quantity": 1
}
Exemple utilisant curl
:
curl -X POST \
http://localhost:8080/sales/register \
-H 'Content-Type: application/json' \
-d '{
"productsList": [
{
"name": "Product Name"
}
],
"amount": 100.00,
"discount": 0.10,
"quantity": 1
}'
Pour ajouter un produit, envoyez une requête POST à /products/add
avec la charge utile JSON suivante :
{
"name": "New Product",
"description": "Product Description",
"categoryId": 1,
"buyPrice": 50.00,
"salePrice": 100.00,
"stock": 100,
"supplierId": 1,
"productTypeId": 1
}
Exemple utilisant curl
:
curl -X POST \
http://localhost:8080/products/add \
-H 'Content-Type: application/json' \
-d '{
"name": "New Product",
"description": "Product Description",
"categoryId": 1,
"buyPrice": 50.00,
"salePrice": 100.00,
"stock": 100,
"supplierId": 1,
"productTypeId": 1
}'
Le module inclut une classe CorsConfig
pour configurer le partage de ressources entre origines multiples (CORS).
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:5173")
.allowedMethods("*")
.allowedHeaders("*")
.allowCredentials(true);
}
}
Cette configuration autorise les requêtes provenant de http://localhost:5173
.
Pour utiliser ce module, vous aurez besoin des dépendances suivantes dans votre pom.xml
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
🌍 Ce README est disponible en plusieurs langues : 🔗 readme.maxpfeffer.de